From 503296ee655cf7f45855ee1970dbdfddf52b4801 Mon Sep 17 00:00:00 2001 From: "Adnan.qaops" Date: Wed, 20 Nov 2024 13:01:10 +0500 Subject: [PATCH 01/88] Components changes --- .../examples/presentationComp/divider.tsx | 29 ++++--- .../examples/presentationComp/image.tsx | 16 +++- .../examples/presentationComp/table.tsx | 83 +++++++++++++++++++ .../examples/presentationComp/text.tsx | 47 +++++++++++ 4 files changed, 161 insertions(+), 14 deletions(-) diff --git a/client/packages/lowcoder/src/pages/ComponentDoc/examples/presentationComp/divider.tsx b/client/packages/lowcoder/src/pages/ComponentDoc/examples/presentationComp/divider.tsx index 282ea94bc..10c65f83b 100644 --- a/client/packages/lowcoder/src/pages/ComponentDoc/examples/presentationComp/divider.tsx +++ b/client/packages/lowcoder/src/pages/ComponentDoc/examples/presentationComp/divider.tsx @@ -19,7 +19,7 @@ export default function DividerExample() { @@ -30,10 +30,9 @@ export default function DividerExample() { title={trans("componentDoc.left")} nameMap={nameMap} config={{ + style: {borderStyle: "solid", border: "#000",borderWidth: "2px"}, title: trans("componentDoc.imADivider"), align: "left", - color: "#222222", - style: {border: "#000", borderWidth: "2px"}, }} compFactory={DividerComp} /> @@ -43,7 +42,7 @@ export default function DividerExample() { config={{ title: trans("componentDoc.imADivider"), align: "center", - color: "#222222", + style: {borderStyle: "solid", border: "#000",borderWidth: "2px"}, }} compFactory={DividerComp} /> @@ -53,7 +52,7 @@ export default function DividerExample() { config={{ title: trans("componentDoc.imADivider"), align: "right", - color: "#222222", + style: {borderStyle: "solid", border: "#000",borderWidth: "2px"}, }} compFactory={DividerComp} /> @@ -61,23 +60,31 @@ export default function DividerExample() { + diff --git a/client/packages/lowcoder/src/pages/ComponentDoc/examples/presentationComp/image.tsx b/client/packages/lowcoder/src/pages/ComponentDoc/examples/presentationComp/image.tsx index 7bbf43127..f9836f559 100644 --- a/client/packages/lowcoder/src/pages/ComponentDoc/examples/presentationComp/image.tsx +++ b/client/packages/lowcoder/src/pages/ComponentDoc/examples/presentationComp/image.tsx @@ -11,16 +11,16 @@ export default function ImageExample() { description={trans("componentDoc.basicDemoDescription")} > + ); diff --git a/client/packages/lowcoder/src/pages/ComponentDoc/examples/presentationComp/table.tsx b/client/packages/lowcoder/src/pages/ComponentDoc/examples/presentationComp/table.tsx index 17d1b525c..4a050d0a7 100644 --- a/client/packages/lowcoder/src/pages/ComponentDoc/examples/presentationComp/table.tsx +++ b/client/packages/lowcoder/src/pages/ComponentDoc/examples/presentationComp/table.tsx @@ -50,6 +50,7 @@ export default function TableExample() { compFactory={TableComp} /> + + + + + + + + + + + + + + + + + + + ); } diff --git a/client/packages/lowcoder/src/pages/ComponentDoc/examples/presentationComp/text.tsx b/client/packages/lowcoder/src/pages/ComponentDoc/examples/presentationComp/text.tsx index a836f3cc9..16f3ee3f4 100644 --- a/client/packages/lowcoder/src/pages/ComponentDoc/examples/presentationComp/text.tsx +++ b/client/packages/lowcoder/src/pages/ComponentDoc/examples/presentationComp/text.tsx @@ -2,6 +2,7 @@ import { TextComp } from "comps/comps/textComp"; import { trans } from "i18n"; import Example from "../../common/Example"; import ExampleGroup from "../../common/ExampleGroup"; +import { Left } from "icons"; export default function TextExample() { const nameMap: Record = { @@ -33,6 +34,52 @@ export default function TextExample() { compFactory={TextComp} /> + + + + + + + ); } From b0a63f721e01daa80459fd80a69068184ca09b3c Mon Sep 17 00:00:00 2001 From: "Adnan.qaops" Date: Wed, 4 Dec 2024 15:20:07 +0500 Subject: [PATCH 02/88] Changes on Existing Components --- .../examples/ButtonComp/FloatButton.tsx | 43 +++++++ .../examples/ButtonComp/IconButton.tsx | 68 +++++++++++ .../examples/ButtonComp/ToggleButton.tsx | 110 ++++++++++++++++++ .../src/pages/ComponentDoc/examples/index.ts | 4 + .../examples/presentationComp/chart.tsx | 23 ++++ 5 files changed, 248 insertions(+) create mode 100644 client/packages/lowcoder/src/pages/ComponentDoc/examples/ButtonComp/FloatButton.tsx create mode 100644 client/packages/lowcoder/src/pages/ComponentDoc/examples/ButtonComp/IconButton.tsx create mode 100644 client/packages/lowcoder/src/pages/ComponentDoc/examples/ButtonComp/ToggleButton.tsx diff --git a/client/packages/lowcoder/src/pages/ComponentDoc/examples/ButtonComp/FloatButton.tsx b/client/packages/lowcoder/src/pages/ComponentDoc/examples/ButtonComp/FloatButton.tsx new file mode 100644 index 000000000..c89a3e307 --- /dev/null +++ b/client/packages/lowcoder/src/pages/ComponentDoc/examples/ButtonComp/FloatButton.tsx @@ -0,0 +1,43 @@ +import { FloatButtonComp } from "comps/comps/buttonComp/floatButtonComp" +import { trans } from "i18n"; +import Example from "../../common/Example"; +import ExampleGroup from "../../common/ExampleGroup"; + +export default function FloatButtonExample() { + return ( + <> + + + + + + + + ); +} diff --git a/client/packages/lowcoder/src/pages/ComponentDoc/examples/ButtonComp/IconButton.tsx b/client/packages/lowcoder/src/pages/ComponentDoc/examples/ButtonComp/IconButton.tsx new file mode 100644 index 000000000..666e1ab68 --- /dev/null +++ b/client/packages/lowcoder/src/pages/ComponentDoc/examples/ButtonComp/IconButton.tsx @@ -0,0 +1,68 @@ +import { IconComp } from "comps/comps/iconComp"; +import { trans } from "i18n"; +import Example from "../../common/Example"; +import ExampleGroup from "../../common/ExampleGroup"; + +export default function IconButtonExample() { + return ( + <> + + + + + + + + + + + + + ); +} diff --git a/client/packages/lowcoder/src/pages/ComponentDoc/examples/ButtonComp/ToggleButton.tsx b/client/packages/lowcoder/src/pages/ComponentDoc/examples/ButtonComp/ToggleButton.tsx new file mode 100644 index 000000000..e9e65cf74 --- /dev/null +++ b/client/packages/lowcoder/src/pages/ComponentDoc/examples/ButtonComp/ToggleButton.tsx @@ -0,0 +1,110 @@ +import { ToggleButtonComp } from "comps/comps/buttonComp/toggleButtonComp" +import { trans } from "i18n"; +import Example from "../../common/Example"; +import ExampleGroup from "../../common/ExampleGroup"; + +export default function ToggleButtonExample() { + return ( + <> + + + + + + + + + + + + + + + + + ); +} diff --git a/client/packages/lowcoder/src/pages/ComponentDoc/examples/index.ts b/client/packages/lowcoder/src/pages/ComponentDoc/examples/index.ts index 3dda7577c..e9abb3104 100644 --- a/client/packages/lowcoder/src/pages/ComponentDoc/examples/index.ts +++ b/client/packages/lowcoder/src/pages/ComponentDoc/examples/index.ts @@ -1,5 +1,7 @@ import { UICompType } from "comps/uiCompRegistry"; import ButtonExample from "./ButtonComp/Button"; +import IconButtonExample from "./ButtonComp/IconButton"; +import ToggleButtonExample from "./ButtonComp/ToggleButton"; import InputExample from "./textInputComp/Input"; import PasswordExample from "./textInputComp/Password"; import TextAreaExample from "./textInputComp/TextArea"; @@ -36,6 +38,8 @@ import IFrameExample from "./IFrame"; const examples: { [key in UICompType]?: React.FunctionComponent } = { button: ButtonExample, + controlButton: IconButtonExample, + toggleButton: ToggleButtonExample, input: InputExample, textArea: TextAreaExample, password: PasswordExample, diff --git a/client/packages/lowcoder/src/pages/ComponentDoc/examples/presentationComp/chart.tsx b/client/packages/lowcoder/src/pages/ComponentDoc/examples/presentationComp/chart.tsx index 4ae6fcda9..b7c85bfe1 100644 --- a/client/packages/lowcoder/src/pages/ComponentDoc/examples/presentationComp/chart.tsx +++ b/client/packages/lowcoder/src/pages/ComponentDoc/examples/presentationComp/chart.tsx @@ -171,6 +171,7 @@ export default function ChartExample() { compFactory={ChartCompWithDefault} /> + + + + + + + ); } From 8e2b1be07769ae23dd519c298642757bf6be097c Mon Sep 17 00:00:00 2001 From: Thomasr Date: Thu, 5 Dec 2024 04:07:13 -0500 Subject: [PATCH 03/88] Modify app constant names to match frontend --- .../domain/application/model/ApplicationType.java | 8 ++++++-- .../api/application/ApplicationApiServiceImpl.java | 2 +- .../org/lowcoder/api/home/UserHomeApiServiceImpl.java | 2 +- 3 files changed, 8 insertions(+), 4 deletions(-) diff --git a/server/api-service/lowcoder-domain/src/main/java/org/lowcoder/domain/application/model/ApplicationType.java b/server/api-service/lowcoder-domain/src/main/java/org/lowcoder/domain/application/model/ApplicationType.java index 9a953cc3f..981fd39d7 100644 --- a/server/api-service/lowcoder-domain/src/main/java/org/lowcoder/domain/application/model/ApplicationType.java +++ b/server/api-service/lowcoder-domain/src/main/java/org/lowcoder/domain/application/model/ApplicationType.java @@ -6,10 +6,14 @@ @Getter public enum ApplicationType { + ALL(0), APPLICATION(1), MODULE(2), - COMPOUND_APPLICATION(3), - FOLDER(4); + NAV_LAYOUT(3), + FOLDER(4), + MOBILE_TAB_LAYOUT(6), + NAVIGATION(7), + BUNDLE(8); private final int value; diff --git a/server/api-service/lowcoder-server/src/main/java/org/lowcoder/api/application/ApplicationApiServiceImpl.java b/server/api-service/lowcoder-server/src/main/java/org/lowcoder/api/application/ApplicationApiServiceImpl.java index e7ae4e0dd..3724cc69b 100644 --- a/server/api-service/lowcoder-server/src/main/java/org/lowcoder/api/application/ApplicationApiServiceImpl.java +++ b/server/api-service/lowcoder-server/src/main/java/org/lowcoder/api/application/ApplicationApiServiceImpl.java @@ -300,7 +300,7 @@ public Mono getPublishedApplication(String applicationId, Appli .build(); }) .delayUntil(applicationView -> { - if (applicationView.getApplicationInfoView().getApplicationType() == ApplicationType.COMPOUND_APPLICATION.getValue()) { + if (applicationView.getApplicationInfoView().getApplicationType() == ApplicationType.NAV_LAYOUT.getValue()) { return compoundApplicationDslFilter.removeSubAppsFromCompoundDsl(applicationView.getApplicationDSL()); } return Mono.empty(); diff --git a/server/api-service/lowcoder-server/src/main/java/org/lowcoder/api/home/UserHomeApiServiceImpl.java b/server/api-service/lowcoder-server/src/main/java/org/lowcoder/api/home/UserHomeApiServiceImpl.java index 421e451cc..4fe04695f 100644 --- a/server/api-service/lowcoder-server/src/main/java/org/lowcoder/api/home/UserHomeApiServiceImpl.java +++ b/server/api-service/lowcoder-server/src/main/java/org/lowcoder/api/home/UserHomeApiServiceImpl.java @@ -202,7 +202,7 @@ public Flux getAllAuthorisedApplications4CurrentOrgMember(@ } return applicationService.findByOrganizationIdWithoutDsl(currentOrgId); }) - .filter(application -> (isNull(applicationType) || application.getApplicationType() == applicationType.getValue()) + .filter(application -> (isNull(applicationType) || applicationType == ApplicationType.ALL || application.getApplicationType() == applicationType.getValue()) && (isNull(applicationStatus) || application.getApplicationStatus() == applicationStatus) && (isNull(name) || StringUtils.containsIgnoreCase(application.getName(), name)) && (isNull(category) || StringUtils.containsIgnoreCase(application.getCategory(), category))) From efef81ca640cdb76b5e06b4f1ab65215dbd71837 Mon Sep 17 00:00:00 2001 From: Imiss-U1025 Date: Thu, 5 Dec 2024 04:52:56 -0500 Subject: [PATCH 04/88] Fixed app type. --- client/packages/lowcoder/src/util/pagination/type.ts | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/client/packages/lowcoder/src/util/pagination/type.ts b/client/packages/lowcoder/src/util/pagination/type.ts index f16bfcb80..3c449b7e1 100644 --- a/client/packages/lowcoder/src/util/pagination/type.ts +++ b/client/packages/lowcoder/src/util/pagination/type.ts @@ -5,13 +5,14 @@ type ApplicationType = { }; export const ApplicationPaginationType: ApplicationType = { - 0: "", + 0: "ALL", 1: "APPLICATION", 2: "MODULE", - 3: "NAVLAYOUT", + 3: "NAVIGATION", 4: "FOLDER", - 6: "MOBILETABLAYOUT", - 7: "COMPOUND_APPLICATION", + 6: "MOBILE_TAB_LAYOUT", //mobile navigation. + 7: "NAV_LAYOUT", //pc navigation + 8: "BUNDLE" }; export interface GenericApiPaginationResponse { From 318d736f0488fdc63f254d36d7df83c9e8f65567 Mon Sep 17 00:00:00 2001 From: Thomasr Date: Thu, 5 Dec 2024 11:52:10 -0500 Subject: [PATCH 05/88] #1331: Populate folderId for app list endpoint --- .../application/ApplicationController.java | 35 ++++++++++--------- .../application/view/ApplicationInfoView.java | 5 ++- 2 files changed, 23 insertions(+), 17 deletions(-) diff --git a/server/api-service/lowcoder-server/src/main/java/org/lowcoder/api/application/ApplicationController.java b/server/api-service/lowcoder-server/src/main/java/org/lowcoder/api/application/ApplicationController.java index 1fe9788e2..4b2386011 100644 --- a/server/api-service/lowcoder-server/src/main/java/org/lowcoder/api/application/ApplicationController.java +++ b/server/api-service/lowcoder-server/src/main/java/org/lowcoder/api/application/ApplicationController.java @@ -1,22 +1,10 @@ package org.lowcoder.api.application; -import static org.apache.commons.collections4.SetUtils.emptyIfNull; -import static org.lowcoder.plugin.api.event.LowcoderEvent.EventType.APPLICATION_CREATE; -import static org.lowcoder.plugin.api.event.LowcoderEvent.EventType.APPLICATION_DELETE; -import static org.lowcoder.plugin.api.event.LowcoderEvent.EventType.APPLICATION_RECYCLED; -import static org.lowcoder.plugin.api.event.LowcoderEvent.EventType.APPLICATION_RESTORE; -import static org.lowcoder.plugin.api.event.LowcoderEvent.EventType.APPLICATION_UPDATE; -import static org.lowcoder.plugin.api.event.LowcoderEvent.EventType.APPLICATION_VIEW; -import static org.lowcoder.sdk.exception.BizError.INVALID_PARAMETER; -import static org.lowcoder.sdk.util.ExceptionUtils.ofError; - -import java.util.List; - +import lombok.RequiredArgsConstructor; import org.lowcoder.api.application.view.ApplicationInfoView; import org.lowcoder.api.application.view.ApplicationPermissionView; import org.lowcoder.api.application.view.ApplicationView; import org.lowcoder.api.application.view.MarketplaceApplicationInfoView; -// should we not have a AgencyApplicationInfoView import org.lowcoder.api.framework.view.PageResponseView; import org.lowcoder.api.framework.view.ResponseView; import org.lowcoder.api.home.SessionUserService; @@ -28,15 +16,21 @@ import org.lowcoder.domain.application.model.ApplicationRequestType; import org.lowcoder.domain.application.model.ApplicationStatus; import org.lowcoder.domain.application.model.ApplicationType; +import org.lowcoder.domain.folder.service.FolderElementRelationService; import org.lowcoder.domain.permission.model.ResourceRole; import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.RestController; - -import lombok.RequiredArgsConstructor; import reactor.core.publisher.Mono; +import java.util.List; + +import static org.apache.commons.collections4.SetUtils.emptyIfNull; +import static org.lowcoder.plugin.api.event.LowcoderEvent.EventType.*; +import static org.lowcoder.sdk.exception.BizError.INVALID_PARAMETER; +import static org.lowcoder.sdk.util.ExceptionUtils.ofError; + @RequiredArgsConstructor @RestController public class ApplicationController implements ApplicationEndpoints { @@ -46,6 +40,7 @@ public class ApplicationController implements ApplicationEndpoints { private final BusinessEventPublisher businessEventPublisher; private final SessionUserService sessionUserService; private final GidService gidService; + private final FolderElementRelationService folderElementRelationService; @Override public Mono> create(@RequestBody CreateApplicationRequest createApplicationRequest) { @@ -166,7 +161,15 @@ public Mono>> getApplications(@RequestPar @RequestParam(required = false, defaultValue = "1") Integer pageNum, @RequestParam(required = false, defaultValue = "0") Integer pageSize) { ApplicationType applicationTypeEnum = applicationType == null ? null : ApplicationType.fromValue(applicationType); - var flux = userHomeApiService.getAllAuthorisedApplications4CurrentOrgMember(applicationTypeEnum, applicationStatus, withContainerSize, name, category).cache(); + var flux = userHomeApiService.getAllAuthorisedApplications4CurrentOrgMember(applicationTypeEnum, applicationStatus, withContainerSize, name, category) + .delayUntil(applicationInfoView -> { + String applicationId = applicationInfoView.getApplicationId(); + return folderElementRelationService.getByElementIds(List.of(applicationId)) + .doOnNext(folderElement -> { + applicationInfoView.setFolderId(folderElement.folderId()); + }).then(); + }) + .cache(); Mono countMono = flux.count(); var flux1 = flux.skip((long) (pageNum - 1) * pageSize); if(pageSize > 0) flux1 = flux1.take(pageSize); diff --git a/server/api-service/lowcoder-server/src/main/java/org/lowcoder/api/application/view/ApplicationInfoView.java b/server/api-service/lowcoder-server/src/main/java/org/lowcoder/api/application/view/ApplicationInfoView.java index e4bc664a7..82fec6a07 100644 --- a/server/api-service/lowcoder-server/src/main/java/org/lowcoder/api/application/view/ApplicationInfoView.java +++ b/server/api-service/lowcoder-server/src/main/java/org/lowcoder/api/application/view/ApplicationInfoView.java @@ -28,7 +28,7 @@ public class ApplicationInfoView { @JsonInclude(Include.NON_NULL) private final Object containerSize; // for module size @Nullable - private final String folderId; + private String folderId; @Nullable private final Instant lastViewTime; // user last visit time for this app @@ -61,4 +61,7 @@ public long getLastEditedAt() { public boolean isFolder() { return false; } + public void setFolderId(@Nullable String folderId) { + this.folderId = folderId; + } } From 2b84758fcc8e3377a2fbc2ff24c9aff1420b45a9 Mon Sep 17 00:00:00 2001 From: FalkWolsky Date: Fri, 6 Dec 2024 11:46:11 +0100 Subject: [PATCH 06/88] Cleaning up the AppTypeEnum --- .../packages/lowcoder/src/constants/applicationConstants.ts | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/client/packages/lowcoder/src/constants/applicationConstants.ts b/client/packages/lowcoder/src/constants/applicationConstants.ts index 22a134da6..6e8fafa5e 100644 --- a/client/packages/lowcoder/src/constants/applicationConstants.ts +++ b/client/packages/lowcoder/src/constants/applicationConstants.ts @@ -9,10 +9,11 @@ export enum AppTypeEnum { Application = 1, Module = 2, NavLayout = 3, - // 4 folder, 5 mobile MobileTabLayout = 6, + // Folder = 4, + // Mobile = 5, // WorkflowScreen = 7, - // Slide = 8, + // Bundle = 8, } export enum ApplicationCategoriesEnum { From f06eb34e34967fd8b4f86b48c7bbbcd9d09c46c6 Mon Sep 17 00:00:00 2001 From: Thomasr Date: Fri, 6 Dec 2024 09:52:36 -0500 Subject: [PATCH 07/88] #1337: Make super admin have admin rights. --- .../java/org/lowcoder/api/usermanagement/OrgApiServiceImpl.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/server/api-service/lowcoder-server/src/main/java/org/lowcoder/api/usermanagement/OrgApiServiceImpl.java b/server/api-service/lowcoder-server/src/main/java/org/lowcoder/api/usermanagement/OrgApiServiceImpl.java index 1b1036c24..e155f75da 100644 --- a/server/api-service/lowcoder-server/src/main/java/org/lowcoder/api/usermanagement/OrgApiServiceImpl.java +++ b/server/api-service/lowcoder-server/src/main/java/org/lowcoder/api/usermanagement/OrgApiServiceImpl.java @@ -161,7 +161,7 @@ public Mono updateRoleForMember(String orgId, UpdateRoleRequest updateR private Mono checkVisitorAdminRole(String orgId) { return sessionUserService.getVisitorId() .flatMap(visitor -> orgMemberService.getOrgMember(orgId, visitor)) - .filter(it -> it.getRole() == MemberRole.ADMIN) + .filter(it -> it.getRole() == MemberRole.ADMIN || it.getRole() == MemberRole.SUPER_ADMIN) .switchIfEmpty(deferredError(BizError.NOT_AUTHORIZED, "NOT_AUTHORIZED")); } From 8bfb6c1dd9ff95cab8ab3c6ec093f4e60ad32032 Mon Sep 17 00:00:00 2001 From: Thomasr Date: Fri, 6 Dec 2024 11:18:54 -0500 Subject: [PATCH 08/88] organization/byuser endpoint issue fixed --- .../runner/migrations/DatabaseChangelog.java | 26 +++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/server/api-service/lowcoder-server/src/main/java/org/lowcoder/runner/migrations/DatabaseChangelog.java b/server/api-service/lowcoder-server/src/main/java/org/lowcoder/runner/migrations/DatabaseChangelog.java index a51a74e09..ff7e33e25 100644 --- a/server/api-service/lowcoder-server/src/main/java/org/lowcoder/runner/migrations/DatabaseChangelog.java +++ b/server/api-service/lowcoder-server/src/main/java/org/lowcoder/runner/migrations/DatabaseChangelog.java @@ -396,6 +396,32 @@ public void addTimeSeriesSnapshotHistory(MongockTemplate mongoTemplate, CommonCo makeIndex("createdAt")); } + @ChangeSet(order = "027", id = "populate-email-in-user-connections", author = "Thomas") + public void populateEmailInUserConnections(MongockTemplate mongoTemplate, CommonConfig commonConfig) { + Query query = new Query(Criteria.where("connections.authId").is("EMAIL") + .and("connections.email").is(null)); + + // Get the collection directly and use a cursor for manual iteration + MongoCursor cursor = mongoTemplate.getCollection("user").find(query.getQueryObject()).iterator(); + + while (cursor.hasNext()) { + Document document = cursor.next(); + + // Retrieve connections array + List connections = (List) document.get("connections"); + for (Document connection : connections) { + if ("EMAIL".equals(connection.getString("authId")) && !connection.containsKey("email")) { + // Set the email field with the value of the name field + connection.put("email", connection.getString("name")); + } + } + + // Save the updated document back to the collection + mongoTemplate.getCollection("user").replaceOne(new Document("_id", document.get("_id")), document); + } + + } + private void addGidField(MongockTemplate mongoTemplate, String collectionName) { // Create a query to match all documents From 0838e42a0ed37bad8753c70d275e5ee172180662 Mon Sep 17 00:00:00 2001 From: Thomasr Date: Mon, 9 Dec 2024 11:42:32 -0500 Subject: [PATCH 09/88] Fix issue that gid api blocked --- .../application/ApplicationController.java | 107 ++++++++-------- .../lowcoder/api/bundle/BundleController.java | 114 +++++++++--------- .../api/datasource/DatasourceController.java | 53 ++++---- .../lowcoder/api/home/FolderController.java | 56 ++++----- .../api/query/LibraryQueryController.java | 18 +-- .../api/usermanagement/GroupController.java | 42 +++---- .../OrganizationController.java | 72 +++++------ .../org/lowcoder/api/util/GidService.java | 63 +++++----- 8 files changed, 258 insertions(+), 267 deletions(-) diff --git a/server/api-service/lowcoder-server/src/main/java/org/lowcoder/api/application/ApplicationController.java b/server/api-service/lowcoder-server/src/main/java/org/lowcoder/api/application/ApplicationController.java index 4b2386011..55a23edb6 100644 --- a/server/api-service/lowcoder-server/src/main/java/org/lowcoder/api/application/ApplicationController.java +++ b/server/api-service/lowcoder-server/src/main/java/org/lowcoder/api/application/ApplicationController.java @@ -58,18 +58,18 @@ public Mono> createFromTemplate(@RequestParam Stri @Override public Mono> recycle(@PathVariable String applicationId) { - String appId = gidService.convertApplicationIdToObjectId(applicationId); - return applicationApiService.recycle(appId) - .delayUntil(__ -> businessEventPublisher.publishApplicationCommonEvent(applicationId, null, APPLICATION_RECYCLED)) - .map(ResponseView::success); + return gidService.convertApplicationIdToObjectId(applicationId).flatMap(appId -> + applicationApiService.recycle(appId) + .delayUntil(__ -> businessEventPublisher.publishApplicationCommonEvent(applicationId, null, APPLICATION_RECYCLED)) + .map(ResponseView::success)); } @Override public Mono> restore(@PathVariable String applicationId) { - String appId = gidService.convertApplicationIdToObjectId(applicationId); - return applicationApiService.restore(appId) + return gidService.convertApplicationIdToObjectId(applicationId).flatMap(appId -> + applicationApiService.restore(appId) .delayUntil(__ -> businessEventPublisher.publishApplicationCommonEvent(applicationId, null, APPLICATION_RESTORE)) - .map(ResponseView::success); + .map(ResponseView::success)); } @Override @@ -81,68 +81,68 @@ public Mono>> getRecycledApplications(@Re @Override public Mono> delete(@PathVariable String applicationId) { - String appId = gidService.convertApplicationIdToObjectId(applicationId); - return applicationApiService.delete(appId) + return gidService.convertApplicationIdToObjectId(applicationId).flatMap(appId -> + applicationApiService.delete(appId) .delayUntil(applicationView -> businessEventPublisher.publishApplicationCommonEvent(applicationView, APPLICATION_DELETE)) - .map(ResponseView::success); + .map(ResponseView::success)); } @Override public Mono> getEditingApplication(@PathVariable String applicationId) { - String appId = gidService.convertApplicationIdToObjectId(applicationId); - return applicationApiService.getEditingApplication(appId) + return gidService.convertApplicationIdToObjectId(applicationId).flatMap(appId -> + applicationApiService.getEditingApplication(appId) .delayUntil(__ -> applicationApiService.updateUserApplicationLastViewTime(appId)) - .map(ResponseView::success); + .map(ResponseView::success)); } @Override public Mono> getPublishedApplication(@PathVariable String applicationId) { - String appId = gidService.convertApplicationIdToObjectId(applicationId); - return applicationApiService.getPublishedApplication(appId, ApplicationRequestType.PUBLIC_TO_ALL) + return gidService.convertApplicationIdToObjectId(applicationId).flatMap(appId -> + applicationApiService.getPublishedApplication(appId, ApplicationRequestType.PUBLIC_TO_ALL) .delayUntil(applicationView -> applicationApiService.updateUserApplicationLastViewTime(appId)) .delayUntil(applicationView -> businessEventPublisher.publishApplicationCommonEvent(applicationView, APPLICATION_VIEW)) - .map(ResponseView::success); + .map(ResponseView::success)); } @Override public Mono> getPublishedMarketPlaceApplication(@PathVariable String applicationId) { - String appId = gidService.convertApplicationIdToObjectId(applicationId); - return applicationApiService.getPublishedApplication(appId, ApplicationRequestType.PUBLIC_TO_MARKETPLACE) + return gidService.convertApplicationIdToObjectId(applicationId).flatMap(appId -> + applicationApiService.getPublishedApplication(appId, ApplicationRequestType.PUBLIC_TO_MARKETPLACE) .delayUntil(applicationView -> applicationApiService.updateUserApplicationLastViewTime(appId)) .delayUntil(applicationView -> businessEventPublisher.publishApplicationCommonEvent(applicationView, APPLICATION_VIEW)) - .map(ResponseView::success); + .map(ResponseView::success)); } @Override public Mono> getAgencyProfileApplication(@PathVariable String applicationId) { - String appId = gidService.convertApplicationIdToObjectId(applicationId); - return applicationApiService.getPublishedApplication(appId, ApplicationRequestType.AGENCY_PROFILE) + return gidService.convertApplicationIdToObjectId(applicationId).flatMap(appId -> + applicationApiService.getPublishedApplication(appId, ApplicationRequestType.AGENCY_PROFILE) .delayUntil(applicationView -> applicationApiService.updateUserApplicationLastViewTime(appId)) .delayUntil(applicationView -> businessEventPublisher.publishApplicationCommonEvent(applicationView, APPLICATION_VIEW)) - .map(ResponseView::success); + .map(ResponseView::success)); } @Override public Mono> update(@PathVariable String applicationId, @RequestBody Application newApplication) { - String appId = gidService.convertApplicationIdToObjectId(applicationId); - return applicationApiService.update(appId, newApplication) + return gidService.convertApplicationIdToObjectId(applicationId).flatMap(appId -> + applicationApiService.update(appId, newApplication) .delayUntil(applicationView -> businessEventPublisher.publishApplicationCommonEvent(applicationView, APPLICATION_UPDATE)) - .map(ResponseView::success); + .map(ResponseView::success)); } @Override public Mono> publish(@PathVariable String applicationId) { - String appId = gidService.convertApplicationIdToObjectId(applicationId); - return applicationApiService.publish(appId) - .map(ResponseView::success); + return gidService.convertApplicationIdToObjectId(applicationId).flatMap(appId -> + applicationApiService.publish(appId) + .map(ResponseView::success)); } @Override public Mono> updateEditState(@PathVariable String applicationId, @RequestBody UpdateEditStateRequest updateEditStateRequest) { - String appId = gidService.convertApplicationIdToObjectId(applicationId); - return applicationApiService.updateEditState(appId, updateEditStateRequest) - .map(ResponseView::success); + return gidService.convertApplicationIdToObjectId(applicationId).flatMap(appId -> + applicationApiService.updateEditState(appId, updateEditStateRequest) + .map(ResponseView::success)); } @Override @@ -197,72 +197,71 @@ public Mono>> getAgencyProfile public Mono> updatePermission(@PathVariable String applicationId, @PathVariable String permissionId, @RequestBody UpdatePermissionRequest updatePermissionRequest) { - String appId = gidService.convertApplicationIdToObjectId(applicationId); + ResourceRole role = ResourceRole.fromValue(updatePermissionRequest.role()); if (role == null) { return ofError(INVALID_PARAMETER, "INVALID_PARAMETER", updatePermissionRequest); } - - return applicationApiService.updatePermission(appId, permissionId, role) - .map(ResponseView::success); + return gidService.convertApplicationIdToObjectId(applicationId).flatMap(appId -> + applicationApiService.updatePermission(appId, permissionId, role) + .map(ResponseView::success)); } @Override public Mono> removePermission( @PathVariable String applicationId, @PathVariable String permissionId) { - String appId = gidService.convertApplicationIdToObjectId(applicationId); - - return applicationApiService.removePermission(appId, permissionId) - .map(ResponseView::success); + return gidService.convertApplicationIdToObjectId(applicationId).flatMap(appId -> + applicationApiService.removePermission(appId, permissionId) + .map(ResponseView::success)); } @Override public Mono> grantPermission( @PathVariable String applicationId, @RequestBody BatchAddPermissionRequest request) { - String appId = gidService.convertApplicationIdToObjectId(applicationId); ResourceRole role = ResourceRole.fromValue(request.role()); if (role == null) { return ofError(INVALID_PARAMETER, "INVALID_PARAMETER", request.role()); } - return applicationApiService.grantPermission(appId, + return gidService.convertApplicationIdToObjectId(applicationId).flatMap(appId -> + applicationApiService.grantPermission(appId, emptyIfNull(request.userIds()), emptyIfNull(request.groupIds()), role) - .map(ResponseView::success); + .map(ResponseView::success)); } @Override public Mono> getApplicationPermissions(@PathVariable String applicationId) { - String appId = gidService.convertApplicationIdToObjectId(applicationId); - return applicationApiService.getApplicationPermissions(appId) - .map(ResponseView::success); + return gidService.convertApplicationIdToObjectId(applicationId).flatMap(appId -> + applicationApiService.getApplicationPermissions(appId) + .map(ResponseView::success)); } @Override public Mono> setApplicationPublicToAll(@PathVariable String applicationId, @RequestBody ApplicationPublicToAllRequest request) { - String appId = gidService.convertApplicationIdToObjectId(applicationId); - return applicationApiService.setApplicationPublicToAll(appId, request.publicToAll()) - .map(ResponseView::success); + return gidService.convertApplicationIdToObjectId(applicationId).flatMap(appId -> + applicationApiService.setApplicationPublicToAll(appId, request.publicToAll()) + .map(ResponseView::success)); } @Override public Mono> setApplicationPublicToMarketplace(@PathVariable String applicationId, @RequestBody ApplicationPublicToMarketplaceRequest request) { - String appId = gidService.convertApplicationIdToObjectId(applicationId); - return applicationApiService.setApplicationPublicToMarketplace(appId, request) - .map(ResponseView::success); + return gidService.convertApplicationIdToObjectId(applicationId).flatMap(appId -> + applicationApiService.setApplicationPublicToMarketplace(appId, request) + .map(ResponseView::success)); } @Override public Mono> setApplicationAsAgencyProfile(@PathVariable String applicationId, @RequestBody ApplicationAsAgencyProfileRequest request) { - String appId = gidService.convertApplicationIdToObjectId(applicationId); - return applicationApiService.setApplicationAsAgencyProfile(appId, request.agencyProfile()) - .map(ResponseView::success); + return gidService.convertApplicationIdToObjectId(applicationId).flatMap(appId -> + applicationApiService.setApplicationAsAgencyProfile(appId, request.agencyProfile()) + .map(ResponseView::success)); } diff --git a/server/api-service/lowcoder-server/src/main/java/org/lowcoder/api/bundle/BundleController.java b/server/api-service/lowcoder-server/src/main/java/org/lowcoder/api/bundle/BundleController.java index cb0df9241..bc156b4d3 100644 --- a/server/api-service/lowcoder-server/src/main/java/org/lowcoder/api/bundle/BundleController.java +++ b/server/api-service/lowcoder-server/src/main/java/org/lowcoder/api/bundle/BundleController.java @@ -50,10 +50,10 @@ public Mono> create(@RequestBody CreateBundleReques @Override public Mono> delete(@PathVariable("id") String bundleId) { - String objectId = gidService.convertBundleIdToObjectId(bundleId); - return bundleApiService.delete(objectId) + return gidService.convertBundleIdToObjectId(bundleId).flatMap(objectId -> + bundleApiService.delete(objectId) // .delayUntil(f -> businessEventPublisher.publishBundleCommonEvent(f.getId(), f.getName(), EventType.BUNDLE_DELETE)) - .then(Mono.fromSupplier(() -> ResponseView.success(null))); + .then(Mono.fromSupplier(() -> ResponseView.success(null)))); } /** @@ -73,24 +73,24 @@ public Mono> update(@RequestBody Bundle bundle) { @Override public Mono> publish(@PathVariable String bundleId) { - String objectId = gidService.convertBundleIdToObjectId(bundleId); - return bundleApiService.publish(objectId).map(ResponseView::success); + return gidService.convertBundleIdToObjectId(bundleId).flatMap(objectId -> + bundleApiService.publish(objectId).map(ResponseView::success)); } @Override public Mono> recycle(@PathVariable String bundleId) { - String objectId = gidService.convertBundleIdToObjectId(bundleId); - return bundleApiService.recycle(objectId) + return gidService.convertBundleIdToObjectId(bundleId).flatMap(objectId -> + bundleApiService.recycle(objectId) // .delayUntil(__ -> businessEventPublisher.publishBundleCommonEvent(bundleId, null, BUNDLE_RECYCLED)) - .map(ResponseView::success); + .map(ResponseView::success)); } @Override public Mono> restore(@PathVariable String bundleId) { - String objectId = gidService.convertBundleIdToObjectId(bundleId); - return bundleApiService.restore(objectId) + return gidService.convertBundleIdToObjectId(bundleId).flatMap(objectId -> + bundleApiService.restore(objectId) // .delayUntil(__ -> businessEventPublisher.publishBundleCommonEvent(bundleId, null, BUNDLE_RESTORE)) - .map(ResponseView::success); + .map(ResponseView::success)); } @Override @@ -108,8 +108,7 @@ public Mono> getElements(@PathVariable String bundleId, @RequestParam(value = "applicationType", required = false) ApplicationType applicationType, @RequestParam(required = false, defaultValue = "1") Integer pageNum, @RequestParam(required = false, defaultValue = "0") Integer pageSize) { - String objectId = gidService.convertBundleIdToObjectId(bundleId); - var flux = bundleApiService.getElements(objectId, applicationType).cache(); + var flux = gidService.convertBundleIdToObjectId(bundleId).flatMapMany(objectId -> bundleApiService.getElements(objectId, applicationType)).cache(); return fluxToPageResponseView(pageNum, pageSize, flux); } @@ -117,97 +116,96 @@ public Mono> getElements(@PathVariable String bundleId, public Mono> moveApp(@PathVariable("id") String applicationId, @RequestParam(value = "fromBundleId") String fromBundleId, @RequestParam(value = "toBundleId") String toBundleId) { - String objectIdFrom = gidService.convertBundleIdToObjectId(fromBundleId); - String objectIdTo = gidService.convertBundleIdToObjectId(toBundleId); - String appId = gidService.convertApplicationIdToObjectId(applicationId); - return bundleApiService.moveApp(appId, objectIdFrom, objectIdTo) - //TODO: Event Type not defined yet -// .then(businessEventPublisher.publishBundleCommonEvent(applicationLikeId, targetBundleId, BUNDLE_MOVE)) - .then(Mono.fromSupplier(() -> ResponseView.success(null))); + return gidService.convertBundleIdToObjectId(fromBundleId).flatMap(objectIdFrom -> + gidService.convertBundleIdToObjectId(toBundleId).flatMap(objectIdTo -> + gidService.convertApplicationIdToObjectId(applicationId).flatMap(appId -> + bundleApiService.moveApp(appId, objectIdFrom, objectIdTo) + //TODO: Event Type not defined yet + // .then(businessEventPublisher.publishBundleCommonEvent(applicationLikeId, targetBundleId, BUNDLE_MOVE)) + .then(Mono.fromSupplier(() -> ResponseView.success(null)))))); } @Override public Mono> addApp(@PathVariable("id") String applicationId, @RequestParam(value = "toBundleId") String toBundleId) { - String objectIdTo = gidService.convertBundleIdToObjectId(toBundleId); - String appId = gidService.convertApplicationIdToObjectId(applicationId); - return bundleApiService.addApp(appId, objectIdTo) - .then(Mono.fromSupplier(() -> ResponseView.success(null))); + return gidService.convertBundleIdToObjectId(toBundleId).flatMap(objectIdTo -> + gidService.convertApplicationIdToObjectId(applicationId).flatMap(appId -> + bundleApiService.addApp(appId, objectIdTo) + .then(Mono.fromSupplier(() -> ResponseView.success(null))))); } @Override public Mono> reorder(@PathVariable("bundleId") String bundleId, @RequestParam(value = "elementIds", required = true) List elementIds) { - String objectId = gidService.convertBundleIdToObjectId(bundleId); - return bundleApiService.reorder(objectId, elementIds) - .then(Mono.fromSupplier(() -> ResponseView.success(null))); + return gidService.convertBundleIdToObjectId(bundleId).flatMap(objectId -> + bundleApiService.reorder(objectId, elementIds) + .then(Mono.fromSupplier(() -> ResponseView.success(null)))); } @Override public Mono> updatePermission(@PathVariable String bundleId, @PathVariable String permissionId, @RequestBody UpdatePermissionRequest updatePermissionRequest) { - String objectId = gidService.convertBundleIdToObjectId(bundleId); ResourceRole role = ResourceRole.fromValue(updatePermissionRequest.role()); if (role == null) { return ofError(INVALID_PARAMETER, "INVALID_PARAMETER", updatePermissionRequest); } - return bundleApiService.updatePermission(objectId, permissionId, role) - .then(Mono.fromSupplier(() -> ResponseView.success(null))); + return gidService.convertBundleIdToObjectId(bundleId).flatMap(objectId -> + bundleApiService.updatePermission(objectId, permissionId, role) + .then(Mono.fromSupplier(() -> ResponseView.success(null)))); } @Override public Mono> removePermission( @PathVariable String bundleId, @PathVariable String permissionId) { - String objectId = gidService.convertBundleIdToObjectId(bundleId); - - return bundleApiService.removePermission(objectId, permissionId) - .then(Mono.fromSupplier(() -> ResponseView.success(null))); + return gidService.convertBundleIdToObjectId(bundleId).flatMap(objectId -> + bundleApiService.removePermission(objectId, permissionId) + .then(Mono.fromSupplier(() -> ResponseView.success(null)))); } @Override public Mono> grantPermission( @PathVariable String bundleId, @RequestBody BatchAddPermissionRequest request) { - String objectId = gidService.convertBundleIdToObjectId(bundleId); ResourceRole role = ResourceRole.fromValue(request.role()); if (role == null) { return ofError(INVALID_PARAMETER, "INVALID_PARAMETER", request.role()); } - return bundleApiService.grantPermission(objectId, request.userIds(), request.groupIds(), role) - .then(Mono.fromSupplier(() -> ResponseView.success(null))); + return gidService.convertBundleIdToObjectId(bundleId).flatMap(objectId -> + bundleApiService.grantPermission(objectId, request.userIds(), request.groupIds(), role) + .then(Mono.fromSupplier(() -> ResponseView.success(null)))); } @Override public Mono> getBundlePermissions(@PathVariable String bundleId) { - String objectId = gidService.convertBundleIdToObjectId(bundleId); - return bundleApiService.getPermissions(objectId) - .map(ResponseView::success); + return gidService.convertBundleIdToObjectId(bundleId).flatMap(objectId -> + bundleApiService.getPermissions(objectId) + .map(ResponseView::success)); } @Override public Mono> getPublishedBundle(@PathVariable String bundleId) { - String objectId = gidService.convertBundleIdToObjectId(bundleId); - return bundleApiService.getPublishedBundle(objectId, BundleRequestType.PUBLIC_TO_ALL) + return gidService.convertBundleIdToObjectId(bundleId).flatMap(objectId -> + bundleApiService.getPublishedBundle(objectId, BundleRequestType.PUBLIC_TO_ALL) // .delayUntil(bundleView -> businessEventPublisher.publishBundleCommonEvent(bundleView, BUNDLE_VIEW)) - .map(ResponseView::success); + .map(ResponseView::success)); } @Override public Mono> getPublishedMarketPlaceBundle(@PathVariable String bundleId) { - String objectId = gidService.convertBundleIdToObjectId(bundleId); - return bundleApiService.getPublishedBundle(objectId, BundleRequestType.PUBLIC_TO_MARKETPLACE) + return gidService.convertBundleIdToObjectId(bundleId).flatMap(objectId -> + bundleApiService.getPublishedBundle(objectId, BundleRequestType.PUBLIC_TO_MARKETPLACE) // .delayUntil(bundleView -> businessEventPublisher.publishBundleCommonEvent(bundleView, BUNDLE_VIEW)) - .map(ResponseView::success); + .map(ResponseView::success)); } @Override public Mono> getAgencyProfileBundle(@PathVariable String bundleId) { - String objectId = gidService.convertBundleIdToObjectId(bundleId); - return bundleApiService.getPublishedBundle(objectId, BundleRequestType.AGENCY_PROFILE) + return gidService.convertBundleIdToObjectId(bundleId).flatMap(objectId -> + bundleApiService.getPublishedBundle(objectId, BundleRequestType.AGENCY_PROFILE) // .delayUntil(bundleView -> businessEventPublisher.publishBundleCommonEvent(bundleView, BUNDLE_VIEW)) - .map(ResponseView::success); + .map(ResponseView::success)); } @Override @@ -234,24 +232,24 @@ public Mono>> getAgencyProfileBundl @Override public Mono> setBundlePublicToAll(@PathVariable String bundleId, @RequestBody BundleEndpoints.BundlePublicToAllRequest request) { - String objectId = gidService.convertBundleIdToObjectId(bundleId); - return bundleApiService.setBundlePublicToAll(objectId, request.publicToAll()) - .map(ResponseView::success); + return gidService.convertBundleIdToObjectId(bundleId).flatMap(objectId -> + bundleApiService.setBundlePublicToAll(objectId, request.publicToAll()) + .map(ResponseView::success)); } @Override public Mono> setBundlePublicToMarketplace(@PathVariable String bundleId, @RequestBody BundleEndpoints.BundlePublicToMarketplaceRequest request) { - String objectId = gidService.convertBundleIdToObjectId(bundleId); - return bundleApiService.setBundlePublicToMarketplace(objectId, request) - .map(ResponseView::success); + return gidService.convertBundleIdToObjectId(bundleId).flatMap(objectId -> + bundleApiService.setBundlePublicToMarketplace(objectId, request) + .map(ResponseView::success)); } @Override public Mono> setBundleAsAgencyProfile(@PathVariable String bundleId, @RequestBody BundleEndpoints.BundleAsAgencyProfileRequest request) { - String objectId = gidService.convertBundleIdToObjectId(bundleId); - return bundleApiService.setBundleAsAgencyProfile(objectId, request.agencyProfile()) - .map(ResponseView::success); + return gidService.convertBundleIdToObjectId(bundleId).flatMap(objectId -> + bundleApiService.setBundleAsAgencyProfile(objectId, request.agencyProfile()) + .map(ResponseView::success)); } } diff --git a/server/api-service/lowcoder-server/src/main/java/org/lowcoder/api/datasource/DatasourceController.java b/server/api-service/lowcoder-server/src/main/java/org/lowcoder/api/datasource/DatasourceController.java index 695245c41..a87f5a78b 100644 --- a/server/api-service/lowcoder-server/src/main/java/org/lowcoder/api/datasource/DatasourceController.java +++ b/server/api-service/lowcoder-server/src/main/java/org/lowcoder/api/datasource/DatasourceController.java @@ -58,34 +58,34 @@ public Mono> create(@Valid @RequestBody UpsertDatasourc @Override public Mono> getById(@PathVariable String id) { - String objectId = gidService.convertDatasourceIdToObjectId(id); - return datasourceApiService.findByIdWithPermission(objectId) + return gidService.convertDatasourceIdToObjectId(id).flatMap(objectId -> + datasourceApiService.findByIdWithPermission(objectId) .delayUntil(datasourceService::removePasswordTypeKeysFromJsDatasourcePluginConfig) - .map(ResponseView::success); + .map(ResponseView::success)); } @Override public Mono> update(@PathVariable String id, @RequestBody UpsertDatasourceRequest request) { - String objectId = gidService.convertDatasourceIdToObjectId(id); Datasource resolvedDatasource = upsertDatasourceRequestMapper.resolve(request); - return datasourceApiService.update(objectId, resolvedDatasource) + return gidService.convertDatasourceIdToObjectId(id).flatMap(objectId -> + datasourceApiService.update(objectId, resolvedDatasource) .delayUntil(datasourceService::removePasswordTypeKeysFromJsDatasourcePluginConfig) .delayUntil(datasource -> businessEventPublisher.publishDatasourceEvent(datasource, DATA_SOURCE_UPDATE)) - .map(ResponseView::success); + .map(ResponseView::success)); } @Override public Mono> delete(@PathVariable String id) { - String objectId = gidService.convertDatasourceIdToObjectId(id); - return datasourceApiService.delete(objectId) + return gidService.convertDatasourceIdToObjectId(id).flatMap(objectId -> + datasourceApiService.delete(objectId) .delayUntil(result -> { if (BooleanUtils.isTrue(result)) { return businessEventPublisher.publishDatasourceEvent(objectId, DATA_SOURCE_DELETE); } return Mono.empty(); }) - .map(ResponseView::success); + .map(ResponseView::success)); } @Override @@ -108,9 +108,9 @@ private ResponseView toResponseView(DatasourceTestResult datasourceTest @Override public Mono> getStructure(@PathVariable String datasourceId, @RequestParam(required = false, defaultValue = "false") boolean ignoreCache) { - String objectId = gidService.convertDatasourceIdToObjectId(datasourceId); - return datasourceStructureService.getStructure(objectId, ignoreCache) - .map(ResponseView::success); + return gidService.convertDatasourceIdToObjectId(datasourceId).flatMap(objectId -> + datasourceStructureService.getStructure(objectId, ignoreCache) + .map(ResponseView::success)); } /** @@ -121,8 +121,8 @@ public Mono> getStructure(@PathVariable String public Mono> listJsDatasourcePlugins(@RequestParam("appId") String applicationId, @RequestParam(required = false) String name, @RequestParam(required = false) String type, @RequestParam(required = false, defaultValue = "1") int pageNum, @RequestParam(required = false, defaultValue = "0") int pageSize) { - String objectId = gidService.convertApplicationIdToObjectId(applicationId); - return fluxToPageResponseView(pageNum, pageSize, datasourceApiService.listJsDatasourcePlugins(objectId, name, type)); + return gidService.convertApplicationIdToObjectId(applicationId).flatMap(appId -> + fluxToPageResponseView(pageNum, pageSize, datasourceApiService.listJsDatasourcePlugins(appId, name, type))); } /** @@ -147,8 +147,8 @@ public Mono> listOrgDataSources(@RequestParam(name = "orgId" if (StringUtils.isBlank(orgId)) { return ofError(BizError.INVALID_PARAMETER, "ORG_ID_EMPTY"); } - String objectId = gidService.convertOrganizationIdToObjectId(orgId); - return fluxToPageResponseView(pageNum, pageSize, datasourceApiService.listOrgDataSources(objectId, name, type)); + return gidService.convertOrganizationIdToObjectId(orgId).flatMap(objectId -> + fluxToPageResponseView(pageNum, pageSize, datasourceApiService.listOrgDataSources(objectId, name, type))); } @Override @@ -158,27 +158,26 @@ public Mono> listAppDataSources(@RequestParam(name = "appId" if (StringUtils.isBlank(applicationId)) { return ofError(BizError.INVALID_PARAMETER, "INVALID_APP_ID"); } - String objectId = gidService.convertApplicationIdToObjectId(applicationId); - - return fluxToPageResponseView(pageNum, pageSize, datasourceApiService.listAppDataSources(objectId, name, type)); + return gidService.convertApplicationIdToObjectId(applicationId).flatMap(appId -> + fluxToPageResponseView(pageNum, pageSize, datasourceApiService.listAppDataSources(appId, name, type))); } @Override public Mono> getPermissions(@PathVariable("datasourceId") String datasourceId) { - String objectId = gidService.convertDatasourceIdToObjectId(datasourceId); - return datasourceApiService.getPermissions(objectId) - .map(ResponseView::success); + return gidService.convertDatasourceIdToObjectId(datasourceId).flatMap(objectId -> + datasourceApiService.getPermissions(objectId) + .map(ResponseView::success)); } @Override public Mono> grantPermission(@PathVariable String datasourceId, @RequestBody BatchAddPermissionRequest request) { - String objectId = gidService.convertDatasourceIdToObjectId(datasourceId); ResourceRole role = ResourceRole.fromValue(request.role()); if (role == null) { return ofError(INVALID_PARAMETER, "INVALID_PARAMETER", request.role()); } - return datasourceApiService.grantPermission(objectId, request.userIds(), request.groupIds(), role) + return gidService.convertDatasourceIdToObjectId(datasourceId).flatMap(objectId -> + datasourceApiService.grantPermission(objectId, request.userIds(), request.groupIds(), role) .delayUntil(result -> { if (BooleanUtils.isTrue(result)) { return businessEventPublisher.publishDatasourcePermissionEvent(objectId, request.userIds(), @@ -186,7 +185,7 @@ public Mono> grantPermission(@PathVariable String datasour } return Mono.empty(); }) - .map(ResponseView::success); + .map(ResponseView::success)); } @Override @@ -214,8 +213,8 @@ public Mono> deletePermission(@PathVariable("permissionId" @Override public Mono> info(@RequestParam(required = false) String datasourceId) { - String objectId = gidService.convertDatasourceIdToObjectId(datasourceId); - return Mono.just(ResponseView.success(datasourceApiService.info(objectId))); + return gidService.convertDatasourceIdToObjectId(datasourceId).flatMap(objectId -> + Mono.just(ResponseView.success(datasourceApiService.info(objectId)))); } } diff --git a/server/api-service/lowcoder-server/src/main/java/org/lowcoder/api/home/FolderController.java b/server/api-service/lowcoder-server/src/main/java/org/lowcoder/api/home/FolderController.java index 1eb541567..5dbc047c5 100644 --- a/server/api-service/lowcoder-server/src/main/java/org/lowcoder/api/home/FolderController.java +++ b/server/api-service/lowcoder-server/src/main/java/org/lowcoder/api/home/FolderController.java @@ -42,10 +42,10 @@ public Mono> create(@RequestBody Folder folder) { @Override public Mono> delete(@PathVariable("id") String folderId) { - String objectId = gidService.convertFolderIdToObjectId(folderId); - return folderApiService.delete(objectId) + return gidService.convertFolderIdToObjectId(folderId).flatMap(objectId -> + folderApiService.delete(objectId) .delayUntil(f -> businessEventPublisher.publishFolderCommonEvent(f.getId(), f.getName(), EventType.FOLDER_DELETE)) - .then(Mono.fromSupplier(() -> ResponseView.success(null))); + .then(Mono.fromSupplier(() -> ResponseView.success(null)))); } /** @@ -73,67 +73,67 @@ public Mono> getElements(@RequestParam(value = "id", require @RequestParam(required = false) String category, @RequestParam(required = false, defaultValue = "1") Integer pageNum, @RequestParam(required = false, defaultValue = "0") Integer pageSize) { - String objectId = gidService.convertFolderIdToObjectId(folderId); - var flux = folderApiService.getElements(objectId, applicationType, name, category).cache(); - var countMono = flux.count(); - var flux1 = flux.skip((long) (pageNum - 1) * pageSize); - if(pageSize > 0) flux1 = flux1.take(pageSize); - return flux1.collectList() - .delayUntil(__ -> folderApiService.upsertLastViewTime(objectId)) - .zipWith(countMono) - .map(tuple -> PageResponseView.success(tuple.getT1(), pageNum, pageSize, Math.toIntExact(tuple.getT2()))); + return gidService.convertFolderIdToObjectId(folderId).flatMap(objectId -> { + var flux = folderApiService.getElements(objectId, applicationType, name, category).cache(); + var countMono = flux.count(); + var flux1 = flux.skip((long) (pageNum - 1) * pageSize); + if (pageSize > 0) flux1 = flux1.take(pageSize); + return flux1.collectList() + .delayUntil(__ -> folderApiService.upsertLastViewTime(objectId)) + .zipWith(countMono) + .map(tuple -> PageResponseView.success(tuple.getT1(), pageNum, pageSize, Math.toIntExact(tuple.getT2()))); + }); } @Override public Mono> move(@PathVariable("id") String applicationLikeId, @RequestParam(value = "targetFolderId", required = false) String targetFolderId) { - String objectId = gidService.convertFolderIdToObjectId(targetFolderId); - return folderApiService.move(applicationLikeId, objectId) + return gidService.convertFolderIdToObjectId(targetFolderId).flatMap(objectId -> + folderApiService.move(applicationLikeId, objectId) .then(businessEventPublisher.publishApplicationCommonEvent(applicationLikeId, objectId, APPLICATION_MOVE)) - .then(Mono.fromSupplier(() -> ResponseView.success(null))); + .then(Mono.fromSupplier(() -> ResponseView.success(null)))); } @Override public Mono> updatePermission(@PathVariable String folderId, @PathVariable String permissionId, @RequestBody UpdatePermissionRequest updatePermissionRequest) { - String objectId = gidService.convertFolderIdToObjectId(folderId); ResourceRole role = ResourceRole.fromValue(updatePermissionRequest.role()); if (role == null) { return ofError(INVALID_PARAMETER, "INVALID_PARAMETER", updatePermissionRequest); } - return folderApiService.updatePermission(objectId, permissionId, role) - .then(Mono.fromSupplier(() -> ResponseView.success(null))); + return gidService.convertFolderIdToObjectId(folderId).flatMap(objectId -> + folderApiService.updatePermission(objectId, permissionId, role) + .then(Mono.fromSupplier(() -> ResponseView.success(null)))); } @Override public Mono> removePermission( @PathVariable String folderId, @PathVariable String permissionId) { - String objectId = gidService.convertFolderIdToObjectId(folderId); - - return folderApiService.removePermission(objectId, permissionId) - .then(Mono.fromSupplier(() -> ResponseView.success(null))); + return gidService.convertFolderIdToObjectId(folderId).flatMap(objectId -> + folderApiService.removePermission(objectId, permissionId) + .then(Mono.fromSupplier(() -> ResponseView.success(null)))); } @Override public Mono> grantPermission( @PathVariable String folderId, @RequestBody BatchAddPermissionRequest request) { - String objectId = gidService.convertFolderIdToObjectId(folderId); ResourceRole role = ResourceRole.fromValue(request.role()); if (role == null) { return ofError(INVALID_PARAMETER, "INVALID_PARAMETER", request.role()); } - return folderApiService.grantPermission(objectId, request.userIds(), request.groupIds(), role) - .then(Mono.fromSupplier(() -> ResponseView.success(null))); + return gidService.convertFolderIdToObjectId(folderId).flatMap(objectId -> + folderApiService.grantPermission(objectId, request.userIds(), request.groupIds(), role) + .then(Mono.fromSupplier(() -> ResponseView.success(null)))); } @Override public Mono> getApplicationPermissions(@PathVariable String folderId) { - String objectId = gidService.convertFolderIdToObjectId(folderId); - return folderApiService.getPermissions(objectId) - .map(ResponseView::success); + return gidService.convertFolderIdToObjectId(folderId).flatMap(objectId -> + folderApiService.getPermissions(objectId) + .map(ResponseView::success)); } } diff --git a/server/api-service/lowcoder-server/src/main/java/org/lowcoder/api/query/LibraryQueryController.java b/server/api-service/lowcoder-server/src/main/java/org/lowcoder/api/query/LibraryQueryController.java index a7a5a320d..d1e3bc2f5 100644 --- a/server/api-service/lowcoder-server/src/main/java/org/lowcoder/api/query/LibraryQueryController.java +++ b/server/api-service/lowcoder-server/src/main/java/org/lowcoder/api/query/LibraryQueryController.java @@ -65,29 +65,29 @@ public Mono> create(@RequestBody LibraryQuery lib @Override public Mono> update(@PathVariable String libraryQueryId, @RequestBody UpsertLibraryQueryRequest upsertLibraryQueryRequest) { - String objectId = gidService.convertLibraryQueryIdToObjectId(libraryQueryId); - return libraryQueryApiService.update(objectId, upsertLibraryQueryRequest) - .map(ResponseView::success); + return gidService.convertLibraryQueryIdToObjectId(libraryQueryId).flatMap(objectId -> + libraryQueryApiService.update(objectId, upsertLibraryQueryRequest) + .map(ResponseView::success)); } @Override public Mono> delete(@PathVariable String libraryQueryId) { - String objectId = gidService.convertLibraryQueryIdToObjectId(libraryQueryId); - return libraryQueryService.getById(objectId) + return gidService.convertLibraryQueryIdToObjectId(libraryQueryId).flatMap(objectId -> + libraryQueryService.getById(objectId) .delayUntil(__ -> libraryQueryApiService.delete(objectId)) .delayUntil(libraryQuery -> businessEventPublisher.publishLibraryQueryEvent(libraryQuery.getId(), libraryQuery.getName(), EventType.LIBRARY_QUERY_DELETE)) - .thenReturn(ResponseView.success(true)); + .thenReturn(ResponseView.success(true))); } @Override public Mono> publish(@PathVariable String libraryQueryId, @RequestBody LibraryQueryPublishRequest libraryQueryPublishRequest) { - String objectId = gidService.convertLibraryQueryIdToObjectId(libraryQueryId); - return libraryQueryApiService.publish(objectId, libraryQueryPublishRequest) + return gidService.convertLibraryQueryIdToObjectId(libraryQueryId).flatMap(objectId -> + libraryQueryApiService.publish(objectId, libraryQueryPublishRequest) .delayUntil(__ -> libraryQueryService.getById(objectId) .flatMap(libraryQuery -> businessEventPublisher.publishLibraryQuery(libraryQuery, EventType.LIBRARY_QUERY_PUBLISH))) - .map(ResponseView::success); + .map(ResponseView::success)); } } diff --git a/server/api-service/lowcoder-server/src/main/java/org/lowcoder/api/usermanagement/GroupController.java b/server/api-service/lowcoder-server/src/main/java/org/lowcoder/api/usermanagement/GroupController.java index a7adcb6ec..110a83837 100644 --- a/server/api-service/lowcoder-server/src/main/java/org/lowcoder/api/usermanagement/GroupController.java +++ b/server/api-service/lowcoder-server/src/main/java/org/lowcoder/api/usermanagement/GroupController.java @@ -58,20 +58,20 @@ public Mono> create(@Valid @RequestBody CreateGroupReque @Override public Mono> update(@PathVariable String groupId, @Valid @RequestBody UpdateGroupRequest updateGroupRequest) { - String objectId = gidService.convertGroupIdToObjectId(groupId); - return groupService.getById(objectId) + return gidService.convertGroupIdToObjectId(groupId).flatMap(objectId -> + groupService.getById(objectId) .zipWhen(group -> groupApiService.update(objectId, updateGroupRequest)) .delayUntil(tuple -> businessEventPublisher.publishGroupUpdateEvent(tuple.getT2(), tuple.getT1(), updateGroupRequest.getGroupName())) - .map(tuple -> ResponseView.success(tuple.getT2())); + .map(tuple -> ResponseView.success(tuple.getT2()))); } @Override public Mono> delete(@PathVariable String groupId) { - String objectId = gidService.convertGroupIdToObjectId(groupId); - return groupService.getById(objectId) + return gidService.convertGroupIdToObjectId(groupId).flatMap(objectId -> + groupService.getById(objectId) .zipWhen(group -> groupApiService.deleteGroup(objectId)) .delayUntil(tuple -> businessEventPublisher.publishGroupDeleteEvent(tuple.getT2(), tuple.getT1())) - .map(tuple -> ResponseView.success(tuple.getT2())); + .map(tuple -> ResponseView.success(tuple.getT2()))); } @Override @@ -121,9 +121,9 @@ public Mono>> getOrgGroups(@RequestParam(r public Mono> getGroupMembers(@PathVariable String groupId, @RequestParam(required = false, defaultValue = "1") int pageNum, @RequestParam(required = false, defaultValue = "100") int pageSize) { - String objectId = gidService.convertGroupIdToObjectId(groupId); - return groupApiService.getGroupMembers(objectId, pageNum, pageSize) - .map(ResponseView::success); + return gidService.convertGroupIdToObjectId(groupId).flatMap(objectId -> + groupApiService.getGroupMembers(objectId, pageNum, pageSize) + .map(ResponseView::success)); } @Override @@ -138,33 +138,33 @@ public Mono> addGroupMember(@PathVariable String groupId, if (StringUtils.isBlank(addMemberRequest.getRole())) { return ofError(BizError.INVALID_PARAMETER, "INVALID_USER_ROLE"); } - String objectId = gidService.convertGroupIdToObjectId(groupId); - return groupApiService.addGroupMember(objectId, addMemberRequest.getUserId(), addMemberRequest.getRole()) + return gidService.convertGroupIdToObjectId(groupId).flatMap(objectId -> + groupApiService.addGroupMember(objectId, addMemberRequest.getUserId(), addMemberRequest.getRole()) .delayUntil(result -> businessEventPublisher.publishGroupMemberAddEvent(result, objectId, addMemberRequest)) - .map(ResponseView::success); + .map(ResponseView::success)); } @Override public Mono> updateRoleForMember(@RequestBody UpdateRoleRequest updateRoleRequest, @PathVariable String groupId) { - String objectId = gidService.convertGroupIdToObjectId(groupId); - return groupMemberService.getGroupMember(objectId, updateRoleRequest.getUserId()) + return gidService.convertGroupIdToObjectId(groupId).flatMap(objectId -> + groupMemberService.getGroupMember(objectId, updateRoleRequest.getUserId()) .zipWhen(tuple -> groupApiService.updateRoleForMember(objectId, updateRoleRequest)) .delayUntil( tuple -> businessEventPublisher.publishGroupMemberRoleUpdateEvent(tuple.getT2(), objectId, tuple.getT1(), updateRoleRequest)) .map(Tuple2::getT2) - .map(ResponseView::success); + .map(ResponseView::success)); } @Override public Mono> leaveGroup(@PathVariable String groupId) { - String objectId = gidService.convertGroupIdToObjectId(groupId); - return sessionUserService.getVisitorOrgMemberCache() + return gidService.convertGroupIdToObjectId(groupId).flatMap(objectId -> + sessionUserService.getVisitorOrgMemberCache() .flatMap(orgMember -> groupMemberService.getGroupMember(objectId, orgMember.getUserId())) .zipWhen(tuple -> groupApiService.leaveGroup(objectId)) .delayUntil(tuple -> businessEventPublisher.publishGroupMemberLeaveEvent(tuple.getT2(), tuple.getT1())) .map(Tuple2::getT2) - .map(ResponseView::success); + .map(ResponseView::success)); } @Override @@ -173,11 +173,11 @@ public Mono> removeUser(@PathVariable String groupId, if (StringUtils.isBlank(userId)) { return ofError(BizError.INVALID_PARAMETER, "INVALID_USER_ID"); } - String objectId = gidService.convertGroupIdToObjectId(groupId); - return groupMemberService.getGroupMember(objectId, userId) + return gidService.convertGroupIdToObjectId(groupId).flatMap(objectId -> + groupMemberService.getGroupMember(objectId, userId) .zipWhen(groupMember -> groupApiService.removeUser(objectId, userId)) .delayUntil(tuple -> businessEventPublisher.publishGroupMemberRemoveEvent(tuple.getT2(), tuple.getT1())) .map(Tuple2::getT2) - .map(ResponseView::success); + .map(ResponseView::success)); } } diff --git a/server/api-service/lowcoder-server/src/main/java/org/lowcoder/api/usermanagement/OrganizationController.java b/server/api-service/lowcoder-server/src/main/java/org/lowcoder/api/usermanagement/OrganizationController.java index d43676ba5..0825fb0e6 100644 --- a/server/api-service/lowcoder-server/src/main/java/org/lowcoder/api/usermanagement/OrganizationController.java +++ b/server/api-service/lowcoder-server/src/main/java/org/lowcoder/api/usermanagement/OrganizationController.java @@ -68,74 +68,74 @@ public Mono> create(@Valid @RequestBody Organization organ @Override public Mono> update(@PathVariable String orgId, @Valid @RequestBody UpdateOrgRequest updateOrgRequest) { - String id = gidService.convertOrganizationIdToObjectId(orgId); - return orgApiService.update(id, updateOrgRequest) - .map(ResponseView::success); + return gidService.convertOrganizationIdToObjectId(orgId).flatMap(id -> + orgApiService.update(id, updateOrgRequest) + .map(ResponseView::success)); } @Override public Mono> uploadLogo(@PathVariable String orgId, @RequestPart("file") Mono fileMono) { - String id = gidService.convertOrganizationIdToObjectId(orgId); - return orgApiService.uploadLogo(id, fileMono) - .map(ResponseView::success); + return gidService.convertOrganizationIdToObjectId(orgId).flatMap(id -> + orgApiService.uploadLogo(id, fileMono) + .map(ResponseView::success)); } @Override public Mono> deleteLogo(@PathVariable String orgId) { - String id = gidService.convertOrganizationIdToObjectId(orgId); - return orgApiService.deleteLogo(id) - .map(ResponseView::success); + return gidService.convertOrganizationIdToObjectId(orgId).flatMap(id -> + orgApiService.deleteLogo(id) + .map(ResponseView::success)); } @Override public Mono> getOrgMembers(@PathVariable String orgId, @RequestParam(required = false, defaultValue = "1") int pageNum, @RequestParam(required = false, defaultValue = "1000") int pageSize) { - String id = gidService.convertOrganizationIdToObjectId(orgId); - return orgApiService.getOrganizationMembers(id, pageNum, pageSize) - .map(ResponseView::success); + return gidService.convertOrganizationIdToObjectId(orgId).flatMap(id -> + orgApiService.getOrganizationMembers(id, pageNum, pageSize) + .map(ResponseView::success)); } @Override public Mono> updateRoleForMember(@RequestBody UpdateRoleRequest updateRoleRequest, @PathVariable String orgId) { - String id = gidService.convertOrganizationIdToObjectId(orgId); - return orgApiService.updateRoleForMember(id, updateRoleRequest) - .map(ResponseView::success); + return gidService.convertOrganizationIdToObjectId(orgId).flatMap(id -> + orgApiService.updateRoleForMember(id, updateRoleRequest) + .map(ResponseView::success)); } @Override public Mono> setCurrentOrganization(@PathVariable String orgId, ServerWebExchange serverWebExchange) { - String id = gidService.convertOrganizationIdToObjectId(orgId); - return businessEventPublisher.publishUserLogoutEvent() + return gidService.convertOrganizationIdToObjectId(orgId).flatMap(id -> + businessEventPublisher.publishUserLogoutEvent() .then(orgApiService.switchCurrentOrganizationTo(id)) .delayUntil(result -> businessEventPublisher.publishUserLoginEvent(null)) .flatMap(result -> orgApiService.checkOrganizationDomain() .flatMap(OrganizationDomainCheckResult::buildOrganizationDomainCheckView) - .defaultIfEmpty(ResponseView.success(result))); + .defaultIfEmpty(ResponseView.success(result)))); } @Override public Mono> removeOrg(@PathVariable String orgId) { - String id = gidService.convertOrganizationIdToObjectId(orgId); - return orgApiService.removeOrg(id) - .map(ResponseView::success); + return gidService.convertOrganizationIdToObjectId(orgId).flatMap(id -> + orgApiService.removeOrg(id) + .map(ResponseView::success)); } @Override public Mono> leaveOrganization(@PathVariable String orgId) { - String id = gidService.convertOrganizationIdToObjectId(orgId); - return orgApiService.leaveOrganization(id) - .map(ResponseView::success); + return gidService.convertOrganizationIdToObjectId(orgId).flatMap(id -> + orgApiService.leaveOrganization(id) + .map(ResponseView::success)); } @Override public Mono> removeUserFromOrg(@PathVariable String orgId, @RequestParam String userId) { - String id = gidService.convertOrganizationIdToObjectId(orgId); - return orgApiService.removeUserFromOrg(id, userId) - .map(ResponseView::success); + return gidService.convertOrganizationIdToObjectId(orgId).flatMap(id -> + orgApiService.removeUserFromOrg(id, userId) + .map(ResponseView::success)); } @Override @@ -147,23 +147,23 @@ public Mono>> getSupportedDatasourceTypes( @Override public Mono> getOrgCommonSettings(@PathVariable String orgId) { - String id = gidService.convertOrganizationIdToObjectId(orgId); - return orgApiService.getOrgCommonSettings(id) - .map(ResponseView::success); + return gidService.convertOrganizationIdToObjectId(orgId).flatMap(id -> + orgApiService.getOrgCommonSettings(id) + .map(ResponseView::success)); } @Override public Mono> updateOrgCommonSettings(@PathVariable String orgId, @RequestBody UpdateOrgCommonSettingsRequest request) { - String id = gidService.convertOrganizationIdToObjectId(orgId); - return orgApiService.updateOrgCommonSettings(id, request.key(), request.value()) - .map(ResponseView::success); + return gidService.convertOrganizationIdToObjectId(orgId).flatMap(id -> + orgApiService.updateOrgCommonSettings(id, request.key(), request.value()) + .map(ResponseView::success)); } @Override public Mono> getOrgApiUsageCount(String orgId, Boolean lastMonthOnly) { - String id = gidService.convertOrganizationIdToObjectId(orgId); - return orgApiService.getApiUsageCount(id, lastMonthOnly) - .map(ResponseView::success); + return gidService.convertOrganizationIdToObjectId(orgId).flatMap(id -> + orgApiService.getApiUsageCount(id, lastMonthOnly) + .map(ResponseView::success)); } } \ No newline at end of file diff --git a/server/api-service/lowcoder-server/src/main/java/org/lowcoder/api/util/GidService.java b/server/api-service/lowcoder-server/src/main/java/org/lowcoder/api/util/GidService.java index b247e90a7..1f20187de 100644 --- a/server/api-service/lowcoder-server/src/main/java/org/lowcoder/api/util/GidService.java +++ b/server/api-service/lowcoder-server/src/main/java/org/lowcoder/api/util/GidService.java @@ -15,8 +15,10 @@ import org.lowcoder.domain.query.model.LibraryQuery; import org.lowcoder.domain.query.repository.LibraryQueryRepository; import org.lowcoder.sdk.constants.FieldName; +import org.lowcoder.sdk.models.HasIdAndAuditing; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; +import reactor.core.publisher.Mono; @Component public class GidService { @@ -35,59 +37,52 @@ public class GidService { @Autowired private BundleRepository bundleRepository; - public String convertApplicationIdToObjectId(String applicationId) { - if(FieldName.isGID(applicationId)) { - Application app = applicationRepository.findByGid(applicationId).blockFirst(); - return app!=null?app.getId():""; + public Mono convertApplicationIdToObjectId(String id) { + if(FieldName.isGID(id)) { + return applicationRepository.findByGid(id).next().mapNotNull(HasIdAndAuditing::getId); } - return applicationId; + return Mono.just(id); } - public String convertDatasourceIdToObjectId(String id) { + public Mono convertDatasourceIdToObjectId(String id) { if(FieldName.isGID(id)) { - DatasourceDO datasourceDO = datasourceDORepository.findByGid(id).blockFirst(); - return datasourceDO!=null?datasourceDO.getId():""; + return datasourceDORepository.findByGid(id).next().mapNotNull(HasIdAndAuditing::getId); } - return id; + return Mono.just(id); } - public String convertOrganizationIdToObjectId(String Id) { - if(FieldName.isGID(Id)) { - Organization org = organizationRepository.findByGid(Id).blockFirst(); - return org!=null?org.getId():""; + public Mono convertOrganizationIdToObjectId(String id) { + if(FieldName.isGID(id)) { + return organizationRepository.findByGid(id).next().mapNotNull(HasIdAndAuditing::getId); } - return Id; + return Mono.just(id); } - public String convertGroupIdToObjectId(String Id) { - if(FieldName.isGID(Id)) { - Group group = groupRepository.findByGid(Id).blockFirst(); - return group!=null?group.getId():""; + public Mono convertGroupIdToObjectId(String id) { + if(FieldName.isGID(id)) { + return groupRepository.findByGid(id).next().mapNotNull(HasIdAndAuditing::getId); } - return Id; + return Mono.just(id); } - public String convertLibraryQueryIdToObjectId(String Id) { - if(FieldName.isGID(Id)) { - LibraryQuery libraryQuery = libraryQueryRepository.findByGid(Id).blockFirst(); - return libraryQuery!=null?libraryQuery.getId():""; + public Mono convertLibraryQueryIdToObjectId(String id) { + if(FieldName.isGID(id)) { + return libraryQueryRepository.findByGid(id).next().mapNotNull(HasIdAndAuditing::getId); } - return Id; + return Mono.just(id); } - public String convertFolderIdToObjectId(String Id) { - if(FieldName.isGID(Id)) { - Folder folder = folderRepository.findByGid(Id).blockFirst(); - return folder!=null?folder.getId():""; + public Mono convertFolderIdToObjectId(String id) { + if(FieldName.isGID(id)) { + return folderRepository.findByGid(id).next().mapNotNull(HasIdAndAuditing::getId); } - return Id; + return Mono.just(id); } - public String convertBundleIdToObjectId(String Id) { - if(FieldName.isGID(Id)) { - Bundle bundle = bundleRepository.findByGid(Id).blockFirst(); - return bundle!=null?bundle.getId():""; + public Mono convertBundleIdToObjectId(String id) { + if(FieldName.isGID(id)) { + return bundleRepository.findByGid(id).next().mapNotNull(HasIdAndAuditing::getId); } - return Id; + return Mono.just(id); } } From ebdc0317852f46cf9dfb1cb491a172528ca8acc0 Mon Sep 17 00:00:00 2001 From: Thomasr Date: Tue, 10 Dec 2024 10:29:03 -0500 Subject: [PATCH 10/88] Fix issue when folderId of getElements is null --- .../lowcoder/api/home/FolderController.java | 19 ++++++++++--------- .../org/lowcoder/api/util/GidService.java | 8 +++++--- 2 files changed, 15 insertions(+), 12 deletions(-) diff --git a/server/api-service/lowcoder-server/src/main/java/org/lowcoder/api/home/FolderController.java b/server/api-service/lowcoder-server/src/main/java/org/lowcoder/api/home/FolderController.java index 5dbc047c5..e55b2ba69 100644 --- a/server/api-service/lowcoder-server/src/main/java/org/lowcoder/api/home/FolderController.java +++ b/server/api-service/lowcoder-server/src/main/java/org/lowcoder/api/home/FolderController.java @@ -43,7 +43,7 @@ public Mono> create(@RequestBody Folder folder) { @Override public Mono> delete(@PathVariable("id") String folderId) { return gidService.convertFolderIdToObjectId(folderId).flatMap(objectId -> - folderApiService.delete(objectId) + folderApiService.delete(objectId.orElse(null)) .delayUntil(f -> businessEventPublisher.publishFolderCommonEvent(f.getId(), f.getName(), EventType.FOLDER_DELETE)) .then(Mono.fromSupplier(() -> ResponseView.success(null)))); } @@ -73,8 +73,9 @@ public Mono> getElements(@RequestParam(value = "id", require @RequestParam(required = false) String category, @RequestParam(required = false, defaultValue = "1") Integer pageNum, @RequestParam(required = false, defaultValue = "0") Integer pageSize) { - return gidService.convertFolderIdToObjectId(folderId).flatMap(objectId -> { - var flux = folderApiService.getElements(objectId, applicationType, name, category).cache(); + return gidService.convertFolderIdToObjectId(folderId).flatMap(optionalObjectId -> { + String objectId = optionalObjectId.orElse(null); + var flux = folderApiService.getElements(optionalObjectId.orElse(null), applicationType, name, category).cache(); var countMono = flux.count(); var flux1 = flux.skip((long) (pageNum - 1) * pageSize); if (pageSize > 0) flux1 = flux1.take(pageSize); @@ -89,8 +90,8 @@ public Mono> getElements(@RequestParam(value = "id", require public Mono> move(@PathVariable("id") String applicationLikeId, @RequestParam(value = "targetFolderId", required = false) String targetFolderId) { return gidService.convertFolderIdToObjectId(targetFolderId).flatMap(objectId -> - folderApiService.move(applicationLikeId, objectId) - .then(businessEventPublisher.publishApplicationCommonEvent(applicationLikeId, objectId, APPLICATION_MOVE)) + folderApiService.move(applicationLikeId, objectId.orElse(null)) + .then(businessEventPublisher.publishApplicationCommonEvent(applicationLikeId, objectId.orElse(null), APPLICATION_MOVE)) .then(Mono.fromSupplier(() -> ResponseView.success(null)))); } @@ -104,7 +105,7 @@ public Mono> updatePermission(@PathVariable String folderId, } return gidService.convertFolderIdToObjectId(folderId).flatMap(objectId -> - folderApiService.updatePermission(objectId, permissionId, role) + folderApiService.updatePermission(objectId.orElse(null), permissionId, role) .then(Mono.fromSupplier(() -> ResponseView.success(null)))); } @@ -113,7 +114,7 @@ public Mono> removePermission( @PathVariable String folderId, @PathVariable String permissionId) { return gidService.convertFolderIdToObjectId(folderId).flatMap(objectId -> - folderApiService.removePermission(objectId, permissionId) + folderApiService.removePermission(objectId.orElse(null), permissionId) .then(Mono.fromSupplier(() -> ResponseView.success(null)))); } @@ -126,14 +127,14 @@ public Mono> grantPermission( return ofError(INVALID_PARAMETER, "INVALID_PARAMETER", request.role()); } return gidService.convertFolderIdToObjectId(folderId).flatMap(objectId -> - folderApiService.grantPermission(objectId, request.userIds(), request.groupIds(), role) + folderApiService.grantPermission(objectId.orElse(null), request.userIds(), request.groupIds(), role) .then(Mono.fromSupplier(() -> ResponseView.success(null)))); } @Override public Mono> getApplicationPermissions(@PathVariable String folderId) { return gidService.convertFolderIdToObjectId(folderId).flatMap(objectId -> - folderApiService.getPermissions(objectId) + folderApiService.getPermissions(objectId.orElse(null)) .map(ResponseView::success)); } } diff --git a/server/api-service/lowcoder-server/src/main/java/org/lowcoder/api/util/GidService.java b/server/api-service/lowcoder-server/src/main/java/org/lowcoder/api/util/GidService.java index 1f20187de..2b9e0ecfc 100644 --- a/server/api-service/lowcoder-server/src/main/java/org/lowcoder/api/util/GidService.java +++ b/server/api-service/lowcoder-server/src/main/java/org/lowcoder/api/util/GidService.java @@ -20,6 +20,8 @@ import org.springframework.stereotype.Component; import reactor.core.publisher.Mono; +import java.util.Optional; + @Component public class GidService { @Autowired @@ -72,11 +74,11 @@ public Mono convertLibraryQueryIdToObjectId(String id) { return Mono.just(id); } - public Mono convertFolderIdToObjectId(String id) { + public Mono> convertFolderIdToObjectId(String id) { if(FieldName.isGID(id)) { - return folderRepository.findByGid(id).next().mapNotNull(HasIdAndAuditing::getId); + return folderRepository.findByGid(id).next().mapNotNull(HasIdAndAuditing::getId).map(Optional::ofNullable).switchIfEmpty(Mono.just(Optional.empty())); } - return Mono.just(id); + return Mono.just(Optional.ofNullable(id)); } public Mono convertBundleIdToObjectId(String id) { From fd643d0fddcc76df90f4fe53052657f667d9d8c2 Mon Sep 17 00:00:00 2001 From: RAHEEL Date: Wed, 11 Dec 2024 21:04:29 +0500 Subject: [PATCH 11/88] fix infinite loading on component docs and playground --- client/packages/lowcoder/src/pages/ComponentDoc/index.tsx | 2 ++ .../packages/lowcoder/src/pages/ComponentPlayground/index.tsx | 2 ++ 2 files changed, 4 insertions(+) diff --git a/client/packages/lowcoder/src/pages/ComponentDoc/index.tsx b/client/packages/lowcoder/src/pages/ComponentDoc/index.tsx index 0d1cc8656..6a055f5a3 100644 --- a/client/packages/lowcoder/src/pages/ComponentDoc/index.tsx +++ b/client/packages/lowcoder/src/pages/ComponentDoc/index.tsx @@ -14,6 +14,7 @@ import { import { ExampleContext } from "./ExampleContext"; import { trans } from "i18n"; import { Helmet } from "react-helmet"; +import { LoadingBarHideTrigger } from "@lowcoder-ee/util/hideLoading"; type CompInfo = UICompManifest & { key: string }; const groups: Partial> = {}; @@ -109,6 +110,7 @@ export default function ComponentDoc() { , +
diff --git a/client/packages/lowcoder/src/pages/ComponentPlayground/index.tsx b/client/packages/lowcoder/src/pages/ComponentPlayground/index.tsx index d9ed1083a..50bd0935a 100644 --- a/client/packages/lowcoder/src/pages/ComponentPlayground/index.tsx +++ b/client/packages/lowcoder/src/pages/ComponentPlayground/index.tsx @@ -8,6 +8,7 @@ import { EditorContext, EditorState } from "comps/editorState"; import { RootComp } from "comps/comps/rootComp"; import { useMemo } from "react"; import { lazyLoadComp } from "@lowcoder-ee/comps/comps/lazyLoadComp/lazyLoadComp"; +import { LoadingBarHideTrigger } from "@lowcoder-ee/util/hideLoading"; type CompInfo = UICompManifest & { key: string }; const groups: Partial> = {}; @@ -72,6 +73,7 @@ export default function ComponentPlayground() { return ( +
Date: Wed, 11 Dec 2024 21:04:59 +0500 Subject: [PATCH 12/88] fix normal comps not loading in theme --- .../lowcoder/src/pages/setting/theme/ThemeCompPanel.tsx | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/client/packages/lowcoder/src/pages/setting/theme/ThemeCompPanel.tsx b/client/packages/lowcoder/src/pages/setting/theme/ThemeCompPanel.tsx index 351f0df8f..99a57434a 100644 --- a/client/packages/lowcoder/src/pages/setting/theme/ThemeCompPanel.tsx +++ b/client/packages/lowcoder/src/pages/setting/theme/ThemeCompPanel.tsx @@ -194,7 +194,9 @@ export const ThemeCompPanel = (props: any) => { } }, }) as any; - await newComp.load(); + if (compInfo.lazyLoad) { + await newComp.load(); + } } if (newComp) { From 0ecdab776b4f5f04fb3242ec04961bb855080b59 Mon Sep 17 00:00:00 2001 From: RAHEEL Date: Fri, 13 Dec 2024 00:03:19 +0500 Subject: [PATCH 13/88] fixed default values of lazy comps inside list view doesn't map properly --- .../src/comps/generators/withMultiContext.tsx | 25 +++++++++++-------- 1 file changed, 15 insertions(+), 10 deletions(-) diff --git a/client/packages/lowcoder/src/comps/generators/withMultiContext.tsx b/client/packages/lowcoder/src/comps/generators/withMultiContext.tsx index 41088108b..a8bcd8f44 100644 --- a/client/packages/lowcoder/src/comps/generators/withMultiContext.tsx +++ b/client/packages/lowcoder/src/comps/generators/withMultiContext.tsx @@ -2,12 +2,14 @@ import _ from "lodash"; import { Comp, CompAction, + CompActionTypes, CompParams, ConstructorToComp, ConstructorToNodeType, customAction, deferAction, isChildAction, + isCustomAction, isMyCustomAction, MultiBaseComp, MultiCompConstructor, @@ -23,6 +25,7 @@ import { JSONValue } from "util/jsonTypes"; import { setFieldsNoTypeCheck } from "util/objectUtils"; import { map } from "./map"; import { paramsEqual, withParamsWithDefault } from "./withParams"; +import { LazyCompReadyAction } from "../comps/lazyLoadComp/lazyLoadComp"; export const COMP_KEY = "__comp__"; export const MAP_KEY = "__map__"; @@ -160,8 +163,11 @@ export function withMultiContext(VariantComp } else if ( isChildAction(action) && action.path[0] === MAP_KEY && - !_.isNil(action.path[1]) && - !thisCompMap.hasOwnProperty(action.path[1]) + !_.isNil(action.path[1]) + && ( + !thisCompMap.hasOwnProperty(action.path[1]) + || isCustomAction(action, "LazyCompReady") + ) ) { /** * a virtual path is activated, should generate a new comp in __map__ @@ -171,17 +177,16 @@ export function withMultiContext(VariantComp const params = comp.cacheParamsMap.get(key); if (params) { const childComp = comp - .getOriginalComp() + .getComp(key)! .setParams(params) .changeDispatch(wrapDispatch(wrapDispatch(comp.dispatch, MAP_KEY), key)); const newChildComp = childComp.reduce(childAction); - if (childComp !== newChildComp) { - const comps = { [key]: newChildComp }; - comp = comp.setChild( - MAP_KEY, - comp.children[MAP_KEY].reduce(MapCtor.batchSetCompAction(comps)) - ); - } + + const comps = { [key]: newChildComp }; + comp = comp.setChild( + MAP_KEY, + comp.children[MAP_KEY].reduce(MapCtor.batchSetCompAction(comps)) + ); } } else { comp = super.reduce(action); From a59626bba63ceae79970b51d7acb984acd8e48d8 Mon Sep 17 00:00:00 2001 From: RAHEEL Date: Fri, 13 Dec 2024 00:40:35 +0500 Subject: [PATCH 14/88] sync calendar event updates with change eventhandler --- .../src/comps/calendarComp/calendarComp.tsx | 73 +++++++++++++++---- 1 file changed, 57 insertions(+), 16 deletions(-) diff --git a/client/packages/lowcoder-comps/src/comps/calendarComp/calendarComp.tsx b/client/packages/lowcoder-comps/src/comps/calendarComp/calendarComp.tsx index da34b5610..fb379a968 100644 --- a/client/packages/lowcoder-comps/src/comps/calendarComp/calendarComp.tsx +++ b/client/packages/lowcoder-comps/src/comps/calendarComp/calendarComp.tsx @@ -306,7 +306,7 @@ let CalendarBasicComp = (function () { ...(item.groupId ? { groupId: item.groupId } : {}), backgroundColor: item.backgroundColor, extendedProps: { // Ensure color is in extendedProps - color: isValidColor(item.color || "") ? item.color : theme?.theme?.primary, + color: isValidColor(item.color || "") ? item.color : theme?.theme?.primary, detail: item.detail, titleColor:item.titleColor, detailColor:item.detailColor, @@ -324,22 +324,13 @@ let CalendarBasicComp = (function () { }, [currentEvents, theme]) useEffect(() => { + if (initData.current) return; + const mapData: Record = {}; events?.forEach((item: any, index: number) => { mapData[`${item.id}`] = index; }) - if (initData.current) { - const difference = differenceWith(events, props.initialData, isEqual); - const inserted = differenceBy(difference, Object.keys(initDataMap)?.map(id => ({ id })), 'id') - const updated = filter(difference, obj => includes(Object.keys(initDataMap), String(obj.id))); - const deleted = differenceBy(props.initialData, Object.keys(mapData)?.map(id => ({ id })), 'id') - - comp.children?.comp.children?.updatedEvents.dispatchChangeValueAction(updated); - comp.children?.comp.children?.insertedEvents.dispatchChangeValueAction(inserted); - comp.children?.comp.children?.deletedEvents.dispatchChangeValueAction(deleted); - } - if (!initData.current && events?.length && comp?.children?.comp?.children?.initialData) { setInitDataMap(mapData); comp?.children?.comp?.children?.initialData?.dispatch?.( @@ -407,7 +398,54 @@ let CalendarBasicComp = (function () { } }, [slotLabelFormat, slotLabelFormatWeek, slotLabelFormatMonth]); - const handleEventDataChange = useCallback((data: Array>) => { + const findUpdatedInsertedDeletedEvents = useCallback((data: Array) => { + if (!initData.current) return; + + let eventsData: Array> = currentView == "resourceTimelineDay" || currentView == "resourceTimeGridDay" + ? data.filter((event: { resourceId?: string; }) => Boolean(event.resourceId)) + : data.filter((event: { resourceId?: string; }) => !Boolean(event.resourceId)); + + eventsData = eventsData.map((item) => ({ + title: item.label, + id: item.id, + start: dayjs(item.start, DateParser).format(), + end: dayjs(item.end, DateParser).format(), + allDay: item.allDay, + ...(item.resourceId ? { resourceId: item.resourceId } : {}), + ...(item.groupId ? { groupId: item.groupId } : {}), + backgroundColor: item.backgroundColor, + extendedProps: { // Ensure color is in extendedProps + color: isValidColor(item.color || "") ? item.color : theme?.theme?.primary, + detail: item.detail, + titleColor:item.titleColor, + detailColor:item.detailColor, + titleFontWeight:item.titleFontWeight, + titleFontStyle:item.titleFontStyle, + detailFontWeight:item.detailFontWeight, + detailFontStyle:item.detailFontStyle, + animation:item?.animation, + animationDelay:item?.animationDelay, + animationDuration:item?.animationDuration, + animationIterationCount:item?.animationIterationCount + } + })); + + const mapData: Record = {}; + eventsData?.forEach((item: any, index: number) => { + mapData[`${item.id}`] = index; + }) + + const difference = differenceWith(eventsData, props.initialData, isEqual); + const inserted = differenceBy(difference, Object.keys(initDataMap)?.map(id => ({ id })), 'id') + const updated = filter(difference, obj => includes(Object.keys(initDataMap), String(obj.id))); + const deleted = differenceBy(props.initialData, Object.keys(mapData)?.map(id => ({ id })), 'id') + + comp?.children?.comp?.children?.updatedEvents.dispatchChangeValueAction(updated); + comp?.children?.comp?.children?.insertedEvents.dispatchChangeValueAction(inserted); + comp?.children?.comp?.children?.deletedEvents.dispatchChangeValueAction(deleted); + }, [initDataMap, currentView, props.initialData, initData.current]); + + const handleEventDataChange = useCallback((data: Array) => { comp?.children?.comp.children.events.children.manual.children.manual.dispatch( comp?.children?.comp.children.events.children.manual.children.manual.setChildrensAction( data @@ -416,6 +454,9 @@ let CalendarBasicComp = (function () { comp?.children?.comp.children.events.children.mapData.children.data.dispatchChangeValueAction( JSON.stringify(data) ); + + findUpdatedInsertedDeletedEvents(data); + props.onEvent("change"); }, [comp, props.onEvent]); @@ -955,9 +996,9 @@ let CalendarBasicComp = (function () { changeEvents.push(event); } }); - if (needChange) { - props.onEvent("change"); - } + // if (needChange) { + // props.onEvent("change"); + // } }} eventDragStart={() => { if (typeof props.onDropEvent === 'function') { From 90030079dbadece3b38dfa15712e6ae36a12c2f6 Mon Sep 17 00:00:00 2001 From: RAHEEL Date: Fri, 13 Dec 2024 21:06:09 +0500 Subject: [PATCH 15/88] fixed global data variables lost while navigating apps --- .../packages/lowcoder/src/comps/generators/hookToComp.tsx | 7 +++++-- .../lowcoder/src/pages/editor/appEditorInternal.tsx | 6 ++++-- 2 files changed, 9 insertions(+), 4 deletions(-) diff --git a/client/packages/lowcoder/src/comps/generators/hookToComp.tsx b/client/packages/lowcoder/src/comps/generators/hookToComp.tsx index bd9059413..9556a7564 100644 --- a/client/packages/lowcoder/src/comps/generators/hookToComp.tsx +++ b/client/packages/lowcoder/src/comps/generators/hookToComp.tsx @@ -13,6 +13,7 @@ export function hookToComp(useHookFn: () => JSONObject) { }), (comp) => { const hookValue = useHookFn(); + useEffect(() => { comp.children.value.dispatchChangeValueAction(hookValue); }, [hookValue]); @@ -33,8 +34,10 @@ export function hookToStateComp(useHookFn: () => JSONObject) { (comp) => { const hookValue = useHookFn(); useEffect(() => { - comp.children.stateValue.dispatchChangeValueAction(hookValue); - }, [hookValue]); + if (hookValue !== comp.children.stateValue.getView()) { + comp.children.stateValue.dispatchChangeValueAction(hookValue); + } + }, []); return null; } ); diff --git a/client/packages/lowcoder/src/pages/editor/appEditorInternal.tsx b/client/packages/lowcoder/src/pages/editor/appEditorInternal.tsx index f80f3fd47..545e508a5 100644 --- a/client/packages/lowcoder/src/pages/editor/appEditorInternal.tsx +++ b/client/packages/lowcoder/src/pages/editor/appEditorInternal.tsx @@ -44,6 +44,7 @@ function useSaveComp( const dispatch = useDispatch(); const [prevComp, setPrevComp] = useState(); const [prevJsonStr, setPrevJsonStr] = useState(); + const [prevAppId, setPrevAppId] = useState(); useEffect(() => { if (readOnly || blockEditing) { @@ -54,7 +55,7 @@ function useSaveComp( } const curJson = comp.toJsonValue(); const curJsonStr = JSON.stringify(curJson); - if (prevJsonStr === curJsonStr) { + if (prevJsonStr === curJsonStr || (Boolean(prevAppId) && prevAppId !== applicationId)) { return; } // the first time is a normal change, the latter is the manual update @@ -70,7 +71,8 @@ function useSaveComp( } setPrevComp(comp); setPrevJsonStr(curJsonStr); - }, [comp, applicationId, prevComp, prevJsonStr, readOnly, dispatch]); + setPrevAppId(applicationId); + }, [comp, prevAppId, applicationId, prevComp, prevJsonStr, readOnly, dispatch]); } interface AppEditorInternalViewProps { From 335b5134d3320d0c107ad28c5c70657b7039edc0 Mon Sep 17 00:00:00 2001 From: Thomasr Date: Fri, 13 Dec 2024 10:39:06 -0500 Subject: [PATCH 16/88] Fix issue in searching app inside folder. --- .../java/org/lowcoder/api/home/FolderApiServiceImpl.java | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/server/api-service/lowcoder-server/src/main/java/org/lowcoder/api/home/FolderApiServiceImpl.java b/server/api-service/lowcoder-server/src/main/java/org/lowcoder/api/home/FolderApiServiceImpl.java index 0d93a2e3b..ff8c6dce0 100644 --- a/server/api-service/lowcoder-server/src/main/java/org/lowcoder/api/home/FolderApiServiceImpl.java +++ b/server/api-service/lowcoder-server/src/main/java/org/lowcoder/api/home/FolderApiServiceImpl.java @@ -234,7 +234,7 @@ public Mono upsertLastViewTime(@Nullable String folderId) { */ @Override public Flux getElements(@Nullable String folderId, @Nullable ApplicationType applicationType, @Nullable String name, @Nullable String category) { - return buildApplicationInfoViewTree(applicationType, name, category) + return buildApplicationInfoViewTree(applicationType, name, category, folderId) .flatMap(tree -> { FolderNode folderNode = tree.get(folderId); if (folderNode == null) { @@ -278,7 +278,7 @@ private Mono> buildFolderTree(String orgId) { .map(folders -> new Tree<>(folders, Folder::getId, Folder::getParentFolderId, Collections.emptyList(), null, null)); } - private Mono> buildApplicationInfoViewTree(@Nullable ApplicationType applicationType, @Nullable String name, @Nullable String category) { + private Mono> buildApplicationInfoViewTree(@Nullable ApplicationType applicationType, @Nullable String name, @Nullable String category, @Nullable String folderId) { Mono orgMemberMono = sessionUserService.getVisitorOrgMemberCache() .cache(); @@ -296,7 +296,8 @@ private Mono> buildApplicationInfoView Flux folderFlux = orgMemberMono.flatMapMany(orgMember -> folderService.findByOrganizationId(orgMember.getOrgId())) .filter(folder -> name == null || StringUtils.containsIgnoreCase(folder.getName(), name) || StringUtils.containsIgnoreCase(folder.getType(), name) - || StringUtils.containsIgnoreCase(folder.getDescription(), name)) + || StringUtils.containsIgnoreCase(folder.getDescription(), name) + || StringUtils.containsIgnoreCase(folder.getId(), folderId)) .cache(); Mono> folderId2LastViewTimeMapMono = orgMemberMono From 9fa2474cbf0d574834b96a1388c9dabdf9c80b5f Mon Sep 17 00:00:00 2001 From: RAHEEL Date: Sun, 15 Dec 2024 14:34:19 +0500 Subject: [PATCH 17/88] fixed app dsl saved again another app on rapid navigation + fixed global data variables lost b/w app navigation --- .../src/comps/generators/hookToComp.tsx | 13 +++++---- .../lowcoder/src/comps/hooks/themeComp.tsx | 23 +++++++++++++-- .../lowcoder/src/pages/editor/AppEditor.tsx | 29 ++++++++++++------- .../src/pages/editor/appEditorInternal.tsx | 14 ++++++++- 4 files changed, 59 insertions(+), 20 deletions(-) diff --git a/client/packages/lowcoder/src/comps/generators/hookToComp.tsx b/client/packages/lowcoder/src/comps/generators/hookToComp.tsx index 9556a7564..40e92bf4b 100644 --- a/client/packages/lowcoder/src/comps/generators/hookToComp.tsx +++ b/client/packages/lowcoder/src/comps/generators/hookToComp.tsx @@ -1,7 +1,8 @@ import { JSONObject } from "util/jsonTypes"; import { simpleMultiComp, stateComp, valueComp, withViewFn } from "comps/generators"; import { withSimpleExposing } from "comps/generators/withExposing"; -import { useEffect } from "react"; +import { useEffect, useMemo } from "react"; +import { isEqual } from "lodash"; /** * Enter a react hook and return a comp that exposes the data and methods provided by the hook @@ -33,11 +34,11 @@ export function hookToStateComp(useHookFn: () => JSONObject) { }), (comp) => { const hookValue = useHookFn(); - useEffect(() => { - if (hookValue !== comp.children.stateValue.getView()) { - comp.children.stateValue.dispatchChangeValueAction(hookValue); - } - }, []); + const stateValue = useMemo(() => comp.children.stateValue.getView(), [comp.children.stateValue]); + + if (!isEqual(hookValue, stateValue)) { + comp.children.stateValue.dispatchChangeValueAction(hookValue); + } return null; } ); diff --git a/client/packages/lowcoder/src/comps/hooks/themeComp.tsx b/client/packages/lowcoder/src/comps/hooks/themeComp.tsx index ff83c5e20..7fdff5ed0 100644 --- a/client/packages/lowcoder/src/comps/hooks/themeComp.tsx +++ b/client/packages/lowcoder/src/comps/hooks/themeComp.tsx @@ -6,6 +6,7 @@ import { withMethodExposing } from "comps/generators/withMethodExposing"; import { getGlobalSettings } from "comps/utils/globalSettings"; import { getCurrentTheme } from "comps/utils/themeUtil"; import { trans } from "i18n"; +import { isEqual } from "lodash"; import { useContext, useEffect, useMemo } from "react"; import { getThemeList } from "redux/selectors/commonSettingSelectors"; import { useSelector } from "redux/store/store"; @@ -47,12 +48,28 @@ let ThemeTempComp = withViewFn( const editorState = useContext(EditorContext); const appThemeId = editorState?.getAppSettings().themeId; const currentTheme = getCurrentTheme(themeList, appThemeId); - useEffect(() => { + const stateValue = useMemo(() => comp.children.stateValue.getView(), [comp.children.stateValue]); + + const themeValue = useMemo(() => { + if ( + currentTheme?.id !== stateValue.id + || currentTheme?.id !== stateValue.name + || !isEqual(themeList, stateValue.allThemes) + ) { + return { + ...exposingTheme(currentTheme), + allThemes: themeList.map((t) => exposingTheme(t)), + } + } + return stateValue; + }, [themeList, currentTheme, stateValue]) + + if (!isEqual(themeValue, stateValue)) { comp.children.stateValue.dispatchChangeValueAction({ ...exposingTheme(currentTheme), allThemes: themeList.map((t) => exposingTheme(t)), - }); - }, [themeList, currentTheme]); + }) + } return null; } ); diff --git a/client/packages/lowcoder/src/pages/editor/AppEditor.tsx b/client/packages/lowcoder/src/pages/editor/AppEditor.tsx index 512e2d8d1..76183556d 100644 --- a/client/packages/lowcoder/src/pages/editor/AppEditor.tsx +++ b/client/packages/lowcoder/src/pages/editor/AppEditor.tsx @@ -88,6 +88,7 @@ const AppEditor = React.memo(() => { const [isDataSourcePluginRegistered, setIsDataSourcePluginRegistered] = useState(false); const [appError, setAppError] = useState(''); const [blockEditing, setBlockEditing] = useState(false); + const [fetchingAppDetails, setFetchingAppDetails] = useState(false); setGlobalSettings({ applicationId, isViewMode: paramViewMode === "view" }); @@ -174,6 +175,7 @@ const AppEditor = React.memo(() => { }, [dispatch, fetchOrgGroupsFinished, orgId]); const fetchApplication = useCallback(() => { + setFetchingAppDetails(true); dispatch( fetchApplicationInfo({ type: viewMode, @@ -190,9 +192,11 @@ const AppEditor = React.memo(() => { }); setAppInfo(info); fetchJSDataSourceByApp(); + setFetchingAppDetails(false); }, onError: (errorMessage) => { setAppError(errorMessage); + setFetchingAppDetails(false); } }) ); @@ -249,16 +253,21 @@ const AppEditor = React.memo(() => { ) : ( }> - + {fetchingAppDetails + ? + : ( + + ) + } )} diff --git a/client/packages/lowcoder/src/pages/editor/appEditorInternal.tsx b/client/packages/lowcoder/src/pages/editor/appEditorInternal.tsx index 545e508a5..c699c5712 100644 --- a/client/packages/lowcoder/src/pages/editor/appEditorInternal.tsx +++ b/client/packages/lowcoder/src/pages/editor/appEditorInternal.tsx @@ -55,9 +55,21 @@ function useSaveComp( } const curJson = comp.toJsonValue(); const curJsonStr = JSON.stringify(curJson); - if (prevJsonStr === curJsonStr || (Boolean(prevAppId) && prevAppId !== applicationId)) { + + + if (!Boolean(prevAppId) && Boolean(applicationId)) { + return setPrevAppId(applicationId); + } + if (prevAppId !== applicationId) { + return setPrevAppId(applicationId); + } + if (!Boolean(prevJsonStr) && Boolean(curJsonStr)) { + return setPrevJsonStr(curJsonStr); + } + if (prevJsonStr === curJsonStr) { return; } + // the first time is a normal change, the latter is the manual update if (prevComp) { dispatch( From 9ae213cd862ac1c57ec81eb3fbd9058be7d746d5 Mon Sep 17 00:00:00 2001 From: Thomasr Date: Mon, 4 Nov 2024 10:33:05 -0500 Subject: [PATCH 18/88] App version initial classes --- .../model/ApplicationCombineId.java | 14 +++ .../application/model/ApplicationRecord.java | 27 +++++ .../ApplicationRecordRepository.java | 23 ++++ .../service/ApplicationRecordService.java | 23 ++++ .../service/ApplicationRecordServiceImpl.java | 72 +++++++++++++ .../service/ApplicationService.java | 1 + .../service/ApplicationServiceImpl.java | 12 +++ .../org/lowcoder/sdk/exception/BizError.java | 1 + .../src/main/resources/locale_en.properties | 1 + .../ApplicationRecordApiService.java | 16 +++ .../ApplicationRecordApiServiceImpl.java | 101 ++++++++++++++++++ .../view/ApplicationRecordMetaView.java | 30 ++++++ 12 files changed, 321 insertions(+) create mode 100644 server/api-service/lowcoder-domain/src/main/java/org/lowcoder/domain/application/model/ApplicationCombineId.java create mode 100644 server/api-service/lowcoder-domain/src/main/java/org/lowcoder/domain/application/model/ApplicationRecord.java create mode 100644 server/api-service/lowcoder-domain/src/main/java/org/lowcoder/domain/application/repository/ApplicationRecordRepository.java create mode 100644 server/api-service/lowcoder-domain/src/main/java/org/lowcoder/domain/application/service/ApplicationRecordService.java create mode 100644 server/api-service/lowcoder-domain/src/main/java/org/lowcoder/domain/application/service/ApplicationRecordServiceImpl.java create mode 100644 server/api-service/lowcoder-server/src/main/java/org/lowcoder/api/application/ApplicationRecordApiService.java create mode 100644 server/api-service/lowcoder-server/src/main/java/org/lowcoder/api/application/ApplicationRecordApiServiceImpl.java create mode 100644 server/api-service/lowcoder-server/src/main/java/org/lowcoder/api/application/view/ApplicationRecordMetaView.java diff --git a/server/api-service/lowcoder-domain/src/main/java/org/lowcoder/domain/application/model/ApplicationCombineId.java b/server/api-service/lowcoder-domain/src/main/java/org/lowcoder/domain/application/model/ApplicationCombineId.java new file mode 100644 index 000000000..c07344f3a --- /dev/null +++ b/server/api-service/lowcoder-domain/src/main/java/org/lowcoder/domain/application/model/ApplicationCombineId.java @@ -0,0 +1,14 @@ +package org.lowcoder.domain.application.model; + +import org.apache.commons.lang.StringUtils; + +public record ApplicationCombineId(String applicationId, String applicationRecordId) { + + public boolean isUsingLiveRecord() { + return "latest".equals(applicationRecordId); + } + + public boolean isUsingEditingRecord() { + return StringUtils.isBlank(applicationRecordId) || "editing".equals(applicationRecordId); + } +} diff --git a/server/api-service/lowcoder-domain/src/main/java/org/lowcoder/domain/application/model/ApplicationRecord.java b/server/api-service/lowcoder-domain/src/main/java/org/lowcoder/domain/application/model/ApplicationRecord.java new file mode 100644 index 000000000..d6f57893f --- /dev/null +++ b/server/api-service/lowcoder-domain/src/main/java/org/lowcoder/domain/application/model/ApplicationRecord.java @@ -0,0 +1,27 @@ +package org.lowcoder.domain.application.model; + +import lombok.Getter; +import lombok.NoArgsConstructor; +import lombok.experimental.SuperBuilder; +import lombok.extern.jackson.Jacksonized; +import org.lowcoder.sdk.models.HasIdAndAuditing; +import org.springframework.data.mongodb.core.mapping.Document; + +import java.util.Map; + +@Document +@Getter +@SuperBuilder +@Jacksonized +@NoArgsConstructor +public class ApplicationRecord extends HasIdAndAuditing { + + private String applicationId; + private String tag; + private String commitMessage; + private Map applicationDSL; + + public long getCreateTime() { + return createdAt.toEpochMilli(); + } +} diff --git a/server/api-service/lowcoder-domain/src/main/java/org/lowcoder/domain/application/repository/ApplicationRecordRepository.java b/server/api-service/lowcoder-domain/src/main/java/org/lowcoder/domain/application/repository/ApplicationRecordRepository.java new file mode 100644 index 000000000..dc333f9ed --- /dev/null +++ b/server/api-service/lowcoder-domain/src/main/java/org/lowcoder/domain/application/repository/ApplicationRecordRepository.java @@ -0,0 +1,23 @@ +package org.lowcoder.domain.application.repository; + + +import org.lowcoder.domain.application.model.ApplicationRecord; +import org.springframework.data.mongodb.repository.ReactiveMongoRepository; +import org.springframework.stereotype.Repository; +import reactor.core.publisher.Flux; +import reactor.core.publisher.Mono; + +import java.util.List; + +@Repository +public interface ApplicationRecordRepository extends ReactiveMongoRepository { + + Mono deleteByApplicationId(String applicationId); + + Flux findByApplicationId(String applicationId); + + Flux findByApplicationIdIn(List ids); + + Mono findTop1ByApplicationIdOrderByCreatedAtDesc(String applicationId); + +} diff --git a/server/api-service/lowcoder-domain/src/main/java/org/lowcoder/domain/application/service/ApplicationRecordService.java b/server/api-service/lowcoder-domain/src/main/java/org/lowcoder/domain/application/service/ApplicationRecordService.java new file mode 100644 index 000000000..2afe65d8e --- /dev/null +++ b/server/api-service/lowcoder-domain/src/main/java/org/lowcoder/domain/application/service/ApplicationRecordService.java @@ -0,0 +1,23 @@ +package org.lowcoder.domain.application.service; + +import org.lowcoder.domain.application.model.ApplicationRecord; +import reactor.core.publisher.Mono; + +import java.util.List; +import java.util.Map; + +public interface ApplicationRecordService { + Mono insert(ApplicationRecord applicationRecord); + + Mono> getByApplicationId(String applicationId); + + Mono>> getByApplicationIdIn(List applicationIdList); + + Mono getById(String id); + + Mono getLatestRecordByApplicationId(String applicationId); + + Mono deleteAllApplicationTagByApplicationId(String applicationId); + + Mono deleteById(String id); +} diff --git a/server/api-service/lowcoder-domain/src/main/java/org/lowcoder/domain/application/service/ApplicationRecordServiceImpl.java b/server/api-service/lowcoder-domain/src/main/java/org/lowcoder/domain/application/service/ApplicationRecordServiceImpl.java new file mode 100644 index 000000000..9c7bcb482 --- /dev/null +++ b/server/api-service/lowcoder-domain/src/main/java/org/lowcoder/domain/application/service/ApplicationRecordServiceImpl.java @@ -0,0 +1,72 @@ +package org.lowcoder.domain.application.service; + +import lombok.RequiredArgsConstructor; +import org.lowcoder.domain.application.model.ApplicationRecord; +import org.lowcoder.domain.application.repository.ApplicationRecordRepository; +import org.springframework.stereotype.Service; +import reactor.core.publisher.Mono; + +import java.util.Comparator; +import java.util.List; +import java.util.Map; +import java.util.stream.Collectors; + +import static org.lowcoder.sdk.exception.BizError.APPLICATION_NOT_FOUND; +import static org.lowcoder.sdk.util.ExceptionUtils.deferredError; + +@RequiredArgsConstructor +@Service +public class ApplicationRecordServiceImpl implements ApplicationRecordService { + + private final ApplicationRecordRepository applicationRecordRepository; + + @Override + public Mono insert(ApplicationRecord applicationRecord) { + return applicationRecordRepository.save(applicationRecord); + } + + /** + * get all published versions + */ + @Override + public Mono> getByApplicationId(String applicationId) { + return applicationRecordRepository.findByApplicationId(applicationId) + .sort(Comparator.comparing(ApplicationRecord::getCreatedAt).reversed()) + .collectList(); + } + + @Override + public Mono>> getByApplicationIdIn(List applicationIdList) { + return applicationRecordRepository.findByApplicationIdIn(applicationIdList) + .sort(Comparator.comparing(ApplicationRecord::getCreatedAt).reversed()) + .collectList() + .map(applicationRecords -> applicationRecords.stream() + .collect(Collectors.groupingBy(ApplicationRecord::getApplicationId))); + } + + @Override + public Mono getById(String id) { + return applicationRecordRepository.findById(id) + .switchIfEmpty(deferredError(APPLICATION_NOT_FOUND, "APPLICATION_NOT_FOUND")); + } + + /** + * get the latest published version + */ + @Override + public Mono getLatestRecordByApplicationId(String applicationId) { + return applicationRecordRepository.findTop1ByApplicationIdOrderByCreatedAtDesc(applicationId); + } + + @Override + public Mono deleteAllApplicationTagByApplicationId(String applicationId) { + return applicationRecordRepository.deleteByApplicationId(applicationId); + } + + @Override + public Mono deleteById(String id) { + return applicationRecordRepository.deleteById(id); + } + + +} diff --git a/server/api-service/lowcoder-domain/src/main/java/org/lowcoder/domain/application/service/ApplicationService.java b/server/api-service/lowcoder-domain/src/main/java/org/lowcoder/domain/application/service/ApplicationService.java index 85cf28dc5..0683a4718 100644 --- a/server/api-service/lowcoder-domain/src/main/java/org/lowcoder/domain/application/service/ApplicationService.java +++ b/server/api-service/lowcoder-domain/src/main/java/org/lowcoder/domain/application/service/ApplicationService.java @@ -76,4 +76,5 @@ public interface ApplicationService { Flux findAll(); Mono updateLastEditedAt(String applicationId, Instant time, String visitorId); + Mono> getLiveDSLByApplicationId(String applicationId); } diff --git a/server/api-service/lowcoder-domain/src/main/java/org/lowcoder/domain/application/service/ApplicationServiceImpl.java b/server/api-service/lowcoder-domain/src/main/java/org/lowcoder/domain/application/service/ApplicationServiceImpl.java index 50d6898dd..cafd287f7 100644 --- a/server/api-service/lowcoder-domain/src/main/java/org/lowcoder/domain/application/service/ApplicationServiceImpl.java +++ b/server/api-service/lowcoder-domain/src/main/java/org/lowcoder/domain/application/service/ApplicationServiceImpl.java @@ -18,6 +18,9 @@ import org.lowcoder.domain.permission.model.ResourceRole; import org.lowcoder.domain.permission.model.ResourceType; import org.lowcoder.domain.permission.service.ResourcePermissionService; +import org.lowcoder.domain.query.model.LibraryQuery; +import org.lowcoder.domain.query.model.LibraryQueryRecord; +import org.lowcoder.domain.query.service.LibraryQueryRecordService; import org.lowcoder.domain.user.repository.UserRepository; import org.lowcoder.domain.user.service.UserService; import org.lowcoder.infra.annotation.NonEmptyMono; @@ -45,6 +48,7 @@ public class ApplicationServiceImpl implements ApplicationService { private final ResourcePermissionService resourcePermissionService; private final ApplicationRepository repository; private final UserRepository userRepository; + private final LibraryQueryRecordService applicationRecordService; @Override public Mono findById(String id) { @@ -355,4 +359,12 @@ public Mono updateLastEditedAt(String applicationId, Instant time, Stri .flatMap(repository::save) .hasElements(); } + + @Override + public Mono> getLiveDSLByApplicationId(String applicationId) { + return applicationRecordService.getLatestRecordByLibraryQueryId(applicationId) + .map(LibraryQueryRecord::getLibraryQueryDSL) + .switchIfEmpty(findById(applicationId) + .map(Application::getPublishedApplicationDSL)); + } } diff --git a/server/api-service/lowcoder-sdk/src/main/java/org/lowcoder/sdk/exception/BizError.java b/server/api-service/lowcoder-sdk/src/main/java/org/lowcoder/sdk/exception/BizError.java index fa280173d..3b92146aa 100644 --- a/server/api-service/lowcoder-sdk/src/main/java/org/lowcoder/sdk/exception/BizError.java +++ b/server/api-service/lowcoder-sdk/src/main/java/org/lowcoder/sdk/exception/BizError.java @@ -63,6 +63,7 @@ public enum BizError { INVALID_HISTORY_SNAPSHOT(500, 5307), NO_PERMISSION_TO_REQUEST_APP(403, 5308), + APPLICATION_AND_ORG_NOT_MATCH(400, 5309), // datasource related, code range 5500 - 5600 DATASOURCE_NOT_FOUND(500, 5500), diff --git a/server/api-service/lowcoder-sdk/src/main/resources/locale_en.properties b/server/api-service/lowcoder-sdk/src/main/resources/locale_en.properties index 78601b9a7..1c24e43d8 100644 --- a/server/api-service/lowcoder-sdk/src/main/resources/locale_en.properties +++ b/server/api-service/lowcoder-sdk/src/main/resources/locale_en.properties @@ -60,6 +60,7 @@ TEMPLATE_NOT_CORRECT=Sorry, the template has some errors. EXCEED_QUERY_REQUEST_SIZE=Sorry, it exceeds query request limit size, please contact administrator. EXCEED_QUERY_RESPONSE_SIZE=Sorry, it exceeds query response limit size, please contact administrator. LIBRARY_QUERY_AND_ORG_NOT_MATCH=Query library does not match the workspace. +APPLICATION_AND_ORG_NOT_MATCH=Application does not match the workspace. LIBRARY_QUERY_NOT_FOUND=Sorry, query library has no such query, please check again. INVALID_USER_STATUS=Sorry, the user status is illegal: {0}. FOLDER_OPERATE_NO_PERMISSION=Oops! It appears you don''t have operation permissions of the folder. diff --git a/server/api-service/lowcoder-server/src/main/java/org/lowcoder/api/application/ApplicationRecordApiService.java b/server/api-service/lowcoder-server/src/main/java/org/lowcoder/api/application/ApplicationRecordApiService.java new file mode 100644 index 000000000..9ea29e9c8 --- /dev/null +++ b/server/api-service/lowcoder-server/src/main/java/org/lowcoder/api/application/ApplicationRecordApiService.java @@ -0,0 +1,16 @@ +package org.lowcoder.api.application; + +import org.lowcoder.api.application.view.ApplicationRecordMetaView; +import org.lowcoder.domain.application.model.ApplicationCombineId; +import reactor.core.publisher.Mono; + +import java.util.List; +import java.util.Map; + +public interface ApplicationRecordApiService { + Mono> getRecordDSLFromApplicationCombineId(ApplicationCombineId applicationCombineId); + + Mono delete(String id); + + Mono> getByApplicationId(String applicationId); +} diff --git a/server/api-service/lowcoder-server/src/main/java/org/lowcoder/api/application/ApplicationRecordApiServiceImpl.java b/server/api-service/lowcoder-server/src/main/java/org/lowcoder/api/application/ApplicationRecordApiServiceImpl.java new file mode 100644 index 000000000..8d40e0e5d --- /dev/null +++ b/server/api-service/lowcoder-server/src/main/java/org/lowcoder/api/application/ApplicationRecordApiServiceImpl.java @@ -0,0 +1,101 @@ +package org.lowcoder.api.application; + +import lombok.RequiredArgsConstructor; +import org.lowcoder.api.home.SessionUserService; +import org.lowcoder.api.application.ApplicationApiServiceImpl; +import org.lowcoder.api.application.view.ApplicationRecordMetaView; +import org.lowcoder.api.usermanagement.OrgDevChecker; +import org.lowcoder.domain.organization.model.OrgMember; +import org.lowcoder.domain.application.model.Application; +import org.lowcoder.domain.application.model.ApplicationCombineId; +import org.lowcoder.domain.application.model.ApplicationRecord; +import org.lowcoder.domain.application.service.ApplicationRecordService; +import org.lowcoder.domain.application.service.ApplicationService; +import org.lowcoder.domain.user.service.UserService; +import org.springframework.stereotype.Service; +import reactor.core.publisher.Mono; + +import java.util.List; +import java.util.Map; + +import static org.lowcoder.api.util.ViewBuilder.multiBuild; +import static org.lowcoder.sdk.exception.BizError.APPLICATION_AND_ORG_NOT_MATCH; +import static org.lowcoder.sdk.util.ExceptionUtils.ofError; + +@RequiredArgsConstructor +@Service +public class ApplicationRecordApiServiceImpl implements ApplicationRecordApiService { + + private final ApplicationService applicationService; + private final ApplicationRecordService applicationRecordService; + private final ApplicationApiServiceImpl applicationApiService; + private final SessionUserService sessionUserService; + private final OrgDevChecker orgDevChecker; + private final UserService userService; + + @Override + public Mono> getRecordDSLFromApplicationCombineId(ApplicationCombineId applicationCombineId) { + return checkApplicationRecordViewPermission(applicationCombineId) + .then(Mono.defer(() -> { + if (applicationCombineId.isUsingLiveRecord()) { + return applicationService.getLiveDSLByApplicationId(applicationCombineId.applicationId()); + } + return applicationRecordService.getById(applicationCombineId.applicationRecordId()) + .map(ApplicationRecord::getApplicationDSL); + })); + } + + @Override + public Mono delete(String id) { + return checkApplicationRecordManagementPermission(id) + .then(applicationRecordService.deleteById(id)); + } + + @Override + public Mono> getByApplicationId(String applicationId) { + return applicationRecordService.getByApplicationId(applicationId) + .flatMap(applicationRecords -> multiBuild(applicationRecords, + ApplicationRecord::getCreatedBy, + userService::getByIds, + ApplicationRecordMetaView::from + )); + } + + + Mono checkApplicationRecordManagementPermission(String applicationRecordId) { + return orgDevChecker.checkCurrentOrgDev() + .then(sessionUserService.getVisitorOrgMemberCache()) + .zipWith(applicationRecordService.getById(applicationRecordId) + .flatMap(applicationRecord -> applicationService.findById(applicationRecord.getApplicationId()))) + .flatMap(tuple2 -> { + OrgMember orgMember = tuple2.getT1(); + Application application = tuple2.getT2(); + if (!orgMember.getOrgId().equals(application.getOrganizationId())) { + return ofError(APPLICATION_AND_ORG_NOT_MATCH, "APPLICATION_AND_ORG_NOT_MATCH"); + } + return Mono.empty(); + }); + } + + Mono checkApplicationRecordViewPermission(ApplicationCombineId applicationCombineId) { + return sessionUserService.getVisitorOrgMemberCache() + .zipWith(Mono.defer(() -> { + if (applicationCombineId.isUsingLiveRecord()) { + return applicationService.findById(applicationCombineId.applicationId()); + } + return applicationRecordService.getById(applicationCombineId.applicationRecordId()) + .flatMap(applicationRecord -> applicationService.findById(applicationRecord.getApplicationId())); + + })) + .flatMap(tuple2 -> { + OrgMember orgMember = tuple2.getT1(); + Application application = tuple2.getT2(); + if (!orgMember.getOrgId().equals(application.getOrganizationId())) { + return ofError(APPLICATION_AND_ORG_NOT_MATCH, "APPLICATION_AND_ORG_NOT_MATCH"); + } + return Mono.empty(); + }); + } + + +} diff --git a/server/api-service/lowcoder-server/src/main/java/org/lowcoder/api/application/view/ApplicationRecordMetaView.java b/server/api-service/lowcoder-server/src/main/java/org/lowcoder/api/application/view/ApplicationRecordMetaView.java new file mode 100644 index 000000000..8b6ab4369 --- /dev/null +++ b/server/api-service/lowcoder-server/src/main/java/org/lowcoder/api/application/view/ApplicationRecordMetaView.java @@ -0,0 +1,30 @@ +package org.lowcoder.api.application.view; + +import org.lowcoder.domain.application.model.ApplicationRecord; +import org.lowcoder.domain.user.model.User; + +public record ApplicationRecordMetaView(String id, + String applicationId, + String tag, + String commitMessage, + long createTime, + String creatorName) { + + public static ApplicationRecordMetaView from(ApplicationRecord applicationRecord) { + return new ApplicationRecordMetaView(applicationRecord.getId(), + applicationRecord.getApplicationId(), + applicationRecord.getTag(), + applicationRecord.getCommitMessage(), + applicationRecord.getCreatedAt().toEpochMilli(), + null); + } + + public static ApplicationRecordMetaView from(ApplicationRecord applicationRecord, User applicationRecordCreator) { + return new ApplicationRecordMetaView(applicationRecord.getId(), + applicationRecord.getApplicationId(), + applicationRecord.getTag(), + applicationRecord.getCommitMessage(), + applicationRecord.getCreatedAt().toEpochMilli(), + applicationRecordCreator.getName()); + } +} From 4581ddcccc6d1563592b060efcfb17e838152237 Mon Sep 17 00:00:00 2001 From: Thomasr Date: Tue, 5 Nov 2024 14:14:20 -0500 Subject: [PATCH 19/88] Application Record API Endpoints --- .../org/lowcoder/infra/constant/NewUrl.java | 1 + .../ApplicationRecordController.java | 41 ++++++++++++++++ .../ApplicationRecordEndpoints.java | 48 +++++++++++++++++++ 3 files changed, 90 insertions(+) create mode 100644 server/api-service/lowcoder-server/src/main/java/org/lowcoder/api/application/ApplicationRecordController.java create mode 100644 server/api-service/lowcoder-server/src/main/java/org/lowcoder/api/application/ApplicationRecordEndpoints.java diff --git a/server/api-service/lowcoder-infra/src/main/java/org/lowcoder/infra/constant/NewUrl.java b/server/api-service/lowcoder-infra/src/main/java/org/lowcoder/infra/constant/NewUrl.java index 01eb05ccf..ba5d39975 100644 --- a/server/api-service/lowcoder-infra/src/main/java/org/lowcoder/infra/constant/NewUrl.java +++ b/server/api-service/lowcoder-infra/src/main/java/org/lowcoder/infra/constant/NewUrl.java @@ -18,6 +18,7 @@ private NewUrl() { public static final String CUSTOM_AUTH = PREFIX + "/auth"; public static final String INVITATION_URL = PREFIX + "/invitation"; public static final String APPLICATION_URL = PREFIX + "/applications"; + public static final String APPLICATION_RECORD_URL = PREFIX + "/application-records"; public static final String APPLICATION_HISTORY_URL = PREFIX + "/application/history-snapshots"; public static final String QUERY_URL = PREFIX + "/query"; diff --git a/server/api-service/lowcoder-server/src/main/java/org/lowcoder/api/application/ApplicationRecordController.java b/server/api-service/lowcoder-server/src/main/java/org/lowcoder/api/application/ApplicationRecordController.java new file mode 100644 index 000000000..5addbe8d1 --- /dev/null +++ b/server/api-service/lowcoder-server/src/main/java/org/lowcoder/api/application/ApplicationRecordController.java @@ -0,0 +1,41 @@ +package org.lowcoder.api.application; + +import lombok.RequiredArgsConstructor; +import org.lowcoder.api.framework.view.ResponseView; +import org.lowcoder.api.application.ApplicationRecordApiService; +import org.lowcoder.api.application.view.ApplicationRecordMetaView; +import org.lowcoder.domain.application.model.ApplicationCombineId; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.RestController; +import reactor.core.publisher.Mono; + +import java.util.List; +import java.util.Map; + +@RequiredArgsConstructor +@RestController +public class ApplicationRecordController implements ApplicationRecordEndpoints +{ + private final ApplicationRecordApiService applicationRecordApiService; + + @Override + public Mono delete(@PathVariable String applicationRecordId) { + return applicationRecordApiService.delete(applicationRecordId); + } + + @Override + public Mono>> getByApplicationId(@RequestParam(name = "applicationId") String applicationId) { + return applicationRecordApiService.getByApplicationId(applicationId) + .map(ResponseView::success); + } + + @Override + public Mono>> dslById(@RequestParam(name = "applicationId") String applicationId, + @RequestParam(name = "applicationRecordId") String applicationRecordId) { + ApplicationCombineId applicationCombineId = new ApplicationCombineId(applicationId, applicationRecordId); + return applicationRecordApiService.getRecordDSLFromApplicationCombineId(applicationCombineId) + .map(ResponseView::success); + } + +} diff --git a/server/api-service/lowcoder-server/src/main/java/org/lowcoder/api/application/ApplicationRecordEndpoints.java b/server/api-service/lowcoder-server/src/main/java/org/lowcoder/api/application/ApplicationRecordEndpoints.java new file mode 100644 index 000000000..818e1cb4a --- /dev/null +++ b/server/api-service/lowcoder-server/src/main/java/org/lowcoder/api/application/ApplicationRecordEndpoints.java @@ -0,0 +1,48 @@ +package org.lowcoder.api.application; + +import io.swagger.v3.oas.annotations.Operation; +import org.lowcoder.api.framework.view.ResponseView; +import org.lowcoder.api.application.view.ApplicationRecordMetaView; +import org.springframework.web.bind.annotation.*; +import reactor.core.publisher.Mono; + +import java.util.List; +import java.util.Map; + +import static org.lowcoder.infra.constant.NewUrl.APPLICATION_RECORD_URL; + +@RestController +@RequestMapping(value = APPLICATION_RECORD_URL) +public interface ApplicationRecordEndpoints +{ + public static final String TAG_APPLICATION_RECORDS = "Application Record APIs"; + + @Operation( + tags = TAG_APPLICATION_RECORDS, + operationId = "deleteApplicationRecord", + summary = "Delete Application Record", + description = "Permanently remove a specific Application Record from Lowcoder using its unique record ID." + ) + @DeleteMapping("/{ApplicationRecordId}") + public Mono delete(@PathVariable String ApplicationRecordId); + + @Operation( + tags = TAG_APPLICATION_RECORDS, + operationId = "getApplicationRecord", + summary = "Get Application Record", + description = "Retrieve a specific Application Record within Lowcoder using the associated application ID." + ) + @GetMapping("/listByApplicationId") + public Mono>> getByApplicationId(@RequestParam(name = "ApplicationId") String ApplicationId); + + @Operation( + tags = TAG_APPLICATION_RECORDS, + operationId = "listApplicationRecords", + summary = "Get Application Records", + description = "Retrieve a list of Application Records, which store information related to executed queries within Lowcoder and the current Organization / Workspace by the impersonated User" + ) + @GetMapping + public Mono>> dslById(@RequestParam(name = "ApplicationId") String ApplicationId, + @RequestParam(name = "ApplicationRecordId") String ApplicationRecordId); + +} From 142c46bfdc90d591ee124e75a374128a8ecfc0cb Mon Sep 17 00:00:00 2001 From: Thomasr Date: Tue, 10 Dec 2024 14:52:22 -0500 Subject: [PATCH 20/88] Publish application --- .../api/application/ApplicationApiService.java | 3 ++- .../api/application/ApplicationApiServiceImpl.java | 13 ++++++++++++- .../api/application/ApplicationController.java | 10 ++++------ .../api/application/ApplicationEndpoints.java | 9 ++++----- .../application/view/ApplicationPublishRequest.java | 5 +++++ .../api/application/ApplicationApiServiceTest.java | 3 ++- 6 files changed, 29 insertions(+), 14 deletions(-) create mode 100644 server/api-service/lowcoder-server/src/main/java/org/lowcoder/api/application/view/ApplicationPublishRequest.java diff --git a/server/api-service/lowcoder-server/src/main/java/org/lowcoder/api/application/ApplicationApiService.java b/server/api-service/lowcoder-server/src/main/java/org/lowcoder/api/application/ApplicationApiService.java index e0990e134..0bc50ffc2 100644 --- a/server/api-service/lowcoder-server/src/main/java/org/lowcoder/api/application/ApplicationApiService.java +++ b/server/api-service/lowcoder-server/src/main/java/org/lowcoder/api/application/ApplicationApiService.java @@ -3,6 +3,7 @@ import jakarta.annotation.Nonnull; import org.lowcoder.api.application.view.ApplicationInfoView; import org.lowcoder.api.application.view.ApplicationPermissionView; +import org.lowcoder.api.application.view.ApplicationPublishRequest; import org.lowcoder.api.application.view.ApplicationView; import org.lowcoder.domain.application.model.Application; import org.lowcoder.domain.application.model.ApplicationRequestType; @@ -33,7 +34,7 @@ public interface ApplicationApiService { Mono update(String applicationId, Application application); - Mono publish(String applicationId); + Mono publish(String applicationId, ApplicationPublishRequest applicationPublishRequest); Mono updateEditState(String applicationId, ApplicationEndpoints.UpdateEditStateRequest updateEditStateRequest); diff --git a/server/api-service/lowcoder-server/src/main/java/org/lowcoder/api/application/ApplicationApiServiceImpl.java b/server/api-service/lowcoder-server/src/main/java/org/lowcoder/api/application/ApplicationApiServiceImpl.java index 3724cc69b..e15cd8b24 100644 --- a/server/api-service/lowcoder-server/src/main/java/org/lowcoder/api/application/ApplicationApiServiceImpl.java +++ b/server/api-service/lowcoder-server/src/main/java/org/lowcoder/api/application/ApplicationApiServiceImpl.java @@ -13,6 +13,7 @@ import org.lowcoder.api.application.ApplicationEndpoints.CreateApplicationRequest; import org.lowcoder.api.application.view.ApplicationInfoView; import org.lowcoder.api.application.view.ApplicationPermissionView; +import org.lowcoder.api.application.view.ApplicationPublishRequest; import org.lowcoder.api.application.view.ApplicationView; import org.lowcoder.api.bizthreshold.AbstractBizThresholdChecker; import org.lowcoder.api.home.FolderApiService; @@ -23,6 +24,7 @@ import org.lowcoder.api.usermanagement.OrgDevChecker; import org.lowcoder.domain.application.model.*; import org.lowcoder.domain.application.service.ApplicationHistorySnapshotService; +import org.lowcoder.domain.application.service.ApplicationRecordService; import org.lowcoder.domain.application.service.ApplicationService; import org.lowcoder.domain.datasource.model.Datasource; import org.lowcoder.domain.datasource.service.DatasourceService; @@ -91,6 +93,7 @@ public class ApplicationApiServiceImpl implements ApplicationApiService { private final PermissionHelper permissionHelper; private final DatasourceService datasourceService; private final ApplicationHistorySnapshotService applicationHistorySnapshotService; + private final ApplicationRecordService applicationRecordService; @Override public Mono create(CreateApplicationRequest createApplicationRequest) { @@ -352,11 +355,19 @@ private Mono doUpdateApplication(String applicationId, Application } @Override - public Mono publish(String applicationId) { + public Mono publish(String applicationId, ApplicationPublishRequest applicationPublishRequest) { return checkApplicationStatus(applicationId, NORMAL) .then(sessionUserService.getVisitorId()) .flatMap(userId -> resourcePermissionService.checkAndReturnMaxPermission(userId, applicationId, PUBLISH_APPLICATIONS)) + .delayUntil(__ -> applicationService.findById(applicationId) + .map(application -> ApplicationRecord.builder() + .tag(applicationPublishRequest.tag()) + .commitMessage(applicationPublishRequest.commitMessage()) + .applicationId(application.getId()) + .applicationDSL(application.getEditingApplicationDSL()) + .build()) + .map(applicationRecordService::insert)) .flatMap(permission -> applicationService.publish(applicationId) .map(applicationUpdated -> ApplicationView.builder() .applicationInfoView(buildView(applicationUpdated, permission.getResourceRole().getValue())) diff --git a/server/api-service/lowcoder-server/src/main/java/org/lowcoder/api/application/ApplicationController.java b/server/api-service/lowcoder-server/src/main/java/org/lowcoder/api/application/ApplicationController.java index 55a23edb6..085088f17 100644 --- a/server/api-service/lowcoder-server/src/main/java/org/lowcoder/api/application/ApplicationController.java +++ b/server/api-service/lowcoder-server/src/main/java/org/lowcoder/api/application/ApplicationController.java @@ -1,10 +1,7 @@ package org.lowcoder.api.application; import lombok.RequiredArgsConstructor; -import org.lowcoder.api.application.view.ApplicationInfoView; -import org.lowcoder.api.application.view.ApplicationPermissionView; -import org.lowcoder.api.application.view.ApplicationView; -import org.lowcoder.api.application.view.MarketplaceApplicationInfoView; +import org.lowcoder.api.application.view.*; import org.lowcoder.api.framework.view.PageResponseView; import org.lowcoder.api.framework.view.ResponseView; import org.lowcoder.api.home.SessionUserService; @@ -132,9 +129,10 @@ public Mono> update(@PathVariable String applicati } @Override - public Mono> publish(@PathVariable String applicationId) { + public Mono> publish(@PathVariable String applicationId, + @RequestBody ApplicationPublishRequest applicationPublishRequest) { return gidService.convertApplicationIdToObjectId(applicationId).flatMap(appId -> - applicationApiService.publish(appId) + applicationApiService.publish(appId, applicationPublishRequest) .map(ResponseView::success)); } diff --git a/server/api-service/lowcoder-server/src/main/java/org/lowcoder/api/application/ApplicationEndpoints.java b/server/api-service/lowcoder-server/src/main/java/org/lowcoder/api/application/ApplicationEndpoints.java index 78121eec4..52ff40af6 100644 --- a/server/api-service/lowcoder-server/src/main/java/org/lowcoder/api/application/ApplicationEndpoints.java +++ b/server/api-service/lowcoder-server/src/main/java/org/lowcoder/api/application/ApplicationEndpoints.java @@ -4,12 +4,10 @@ import io.swagger.v3.oas.annotations.Operation; import jakarta.annotation.Nullable; import org.apache.commons.lang3.BooleanUtils; -import org.lowcoder.api.application.view.ApplicationInfoView; -import org.lowcoder.api.application.view.ApplicationPermissionView; -import org.lowcoder.api.application.view.ApplicationView; -import org.lowcoder.api.application.view.MarketplaceApplicationInfoView; +import org.lowcoder.api.application.view.*; import org.lowcoder.api.framework.view.ResponseView; import org.lowcoder.api.home.UserHomepageView; +import org.lowcoder.api.query.view.LibraryQueryPublishRequest; import org.lowcoder.domain.application.model.Application; import org.lowcoder.domain.application.model.ApplicationStatus; import org.lowcoder.infra.constant.NewUrl; @@ -135,7 +133,8 @@ public Mono> update(@PathVariable String applicati description = "Set a Lowcoder Application identified by its ID as available to all selected Users or User-Groups. This is similar to the classic deployment. The Lowcoder Apps gets published in production mode." ) @PostMapping("/{applicationId}/publish") - public Mono> publish(@PathVariable String applicationId); + public Mono> publish(@PathVariable String applicationId, + @RequestBody ApplicationPublishRequest applicationPublishRequest); @Operation( tags = TAG_APPLICATION_MANAGEMENT, diff --git a/server/api-service/lowcoder-server/src/main/java/org/lowcoder/api/application/view/ApplicationPublishRequest.java b/server/api-service/lowcoder-server/src/main/java/org/lowcoder/api/application/view/ApplicationPublishRequest.java new file mode 100644 index 000000000..f69cf3bb9 --- /dev/null +++ b/server/api-service/lowcoder-server/src/main/java/org/lowcoder/api/application/view/ApplicationPublishRequest.java @@ -0,0 +1,5 @@ +package org.lowcoder.api.application.view; + +public record ApplicationPublishRequest(String commitMessage, String tag) { + +} diff --git a/server/api-service/lowcoder-server/src/test/java/org/lowcoder/api/application/ApplicationApiServiceTest.java b/server/api-service/lowcoder-server/src/test/java/org/lowcoder/api/application/ApplicationApiServiceTest.java index f08b60759..cc414ec6c 100644 --- a/server/api-service/lowcoder-server/src/test/java/org/lowcoder/api/application/ApplicationApiServiceTest.java +++ b/server/api-service/lowcoder-server/src/test/java/org/lowcoder/api/application/ApplicationApiServiceTest.java @@ -8,6 +8,7 @@ import org.junit.jupiter.api.TestInstance; import org.lowcoder.api.application.ApplicationEndpoints.CreateApplicationRequest; import org.lowcoder.api.application.view.ApplicationPermissionView; +import org.lowcoder.api.application.view.ApplicationPublishRequest; import org.lowcoder.api.application.view.ApplicationView; import org.lowcoder.api.common.InitData; import org.lowcoder.api.common.mockuser.WithMockUser; @@ -152,7 +153,7 @@ public void testPublishApplication() { // publish applicationIdMono = applicationIdMono - .delayUntil(id -> applicationApiService.publish(id)); + .delayUntil(id -> applicationApiService.publish(id, new ApplicationPublishRequest("Test Publish", "1.0.0"))); // edit dsl after publish StepVerifier.create(applicationIdMono.flatMap(id -> applicationApiService.getEditingApplication(id))) From 42b41854e8d15bbea171a4ab2de3cad2d6598de6 Mon Sep 17 00:00:00 2001 From: Thomasr Date: Thu, 12 Dec 2024 06:55:20 -0500 Subject: [PATCH 21/88] Use app record for published dsl --- .../domain/application/model/Application.java | 60 ++++++++----------- .../service/ApplicationService.java | 4 -- .../service/ApplicationServiceImpl.java | 36 ++++------- .../TemplateSolutionServiceImpl.java | 54 +++++++++-------- .../ApplicationApiServiceImpl.java | 51 +++++++++------- .../ApplicationHistorySnapshotController.java | 37 +++++++----- .../ApplicationRecordEndpoints.java | 10 ++-- .../api/home/UserHomeApiServiceImpl.java | 45 +++++++------- .../query/ApplicationQueryApiServiceImpl.java | 4 +- 9 files changed, 150 insertions(+), 151 deletions(-) diff --git a/server/api-service/lowcoder-domain/src/main/java/org/lowcoder/domain/application/model/Application.java b/server/api-service/lowcoder-domain/src/main/java/org/lowcoder/domain/application/model/Application.java index 57ad9d720..593ba78fc 100644 --- a/server/api-service/lowcoder-domain/src/main/java/org/lowcoder/domain/application/model/Application.java +++ b/server/api-service/lowcoder-domain/src/main/java/org/lowcoder/domain/application/model/Application.java @@ -11,6 +11,8 @@ import lombok.extern.jackson.Jacksonized; import org.apache.commons.collections4.MapUtils; import org.apache.commons.lang3.BooleanUtils; +import org.lowcoder.domain.application.ApplicationUtil; +import org.lowcoder.domain.application.service.ApplicationRecordService; import org.lowcoder.domain.query.model.ApplicationQuery; import org.lowcoder.sdk.exception.BizError; import org.lowcoder.sdk.exception.BizException; @@ -19,6 +21,7 @@ import org.springframework.data.annotation.Transient; import org.springframework.data.mongodb.core.mapping.Document; import org.springframework.util.StringUtils; +import reactor.core.publisher.Mono; import java.time.Instant; import java.util.*; @@ -41,7 +44,6 @@ public class Application extends HasIdAndAuditing { private Integer applicationType; private ApplicationStatus applicationStatus; - private Map publishedApplicationDSL; private Map editingApplicationDSL; @Setter @@ -63,7 +65,6 @@ public Application( @JsonProperty("name") String name, @JsonProperty("applicationType") Integer applicationType, @JsonProperty("applicationStatus") ApplicationStatus applicationStatus, - @JsonProperty("publishedApplicationDSL") Map publishedApplicationDSL, @JsonProperty("editingApplicationDSL") Map editingApplicationDSL, @JsonProperty("publicToAll") Boolean publicToAll, @JsonProperty("publicToMarketplace") Boolean publicToMarketplace, @@ -76,7 +77,6 @@ public Application( this.name = name; this.applicationType = applicationType; this.applicationStatus = applicationStatus; - this.publishedApplicationDSL = publishedApplicationDSL; this.publicToAll = publicToAll; this.publicToMarketplace = publicToMarketplace; this.agencyProfile = agencyProfile; @@ -87,43 +87,28 @@ public Application( @Transient private final Supplier> editingQueries = - memoize(() -> Optional.ofNullable(editingApplicationDSL) + memoize(() -> ofNullable(editingApplicationDSL) .map(map -> map.get("queries")) .map(queries -> JsonUtils.fromJsonSet(JsonUtils.toJson(queries), ApplicationQuery.class)) .orElse(Collections.emptySet())); - @Transient - private final Supplier> liveQueries = - memoize(() -> JsonUtils.fromJsonSet(JsonUtils.toJson(getLiveApplicationDsl().get("queries")), ApplicationQuery.class)); - @Transient private final Supplier> editingModules = memoize(() -> getDependentModulesFromDsl(editingApplicationDSL)); - @Transient - private final Supplier> liveModules = memoize(() -> getDependentModulesFromDsl(getLiveApplicationDsl())); - - @Transient - private final Supplier liveContainerSize = memoize(() -> { - if (ApplicationType.APPLICATION.getValue() == getApplicationType()) { - return null; - } - return getContainerSizeFromDSL(getLiveApplicationDsl()); - }); - public Set getEditingQueries() { return editingQueries.get(); } - public Set getLiveQueries() { - return liveQueries.get(); + public Mono> getLiveQueries(ApplicationRecordService applicationRecordService) { + return getLiveApplicationDsl(applicationRecordService).mapNotNull(liveApplicationDSL -> JsonUtils.fromJsonSet(JsonUtils.toJson(liveApplicationDSL.get("queries")), ApplicationQuery.class)); } public Set getEditingModules() { return editingModules.get(); } - public Set getLiveModules() { - return liveModules.get(); + public Mono> getLiveModules(ApplicationRecordService applicationRecordService) { + return getLiveApplicationDsl(applicationRecordService).map(ApplicationUtil::getDependentModulesFromDsl); } public boolean isPublicToAll() { @@ -138,12 +123,12 @@ public boolean agencyProfile() { return BooleanUtils.toBooleanDefaultIfNull(agencyProfile, false); } - public ApplicationQuery getQueryByViewModeAndQueryId(boolean isViewMode, String queryId) { - return (isViewMode ? getLiveQueries() : getEditingQueries()) + public Mono getQueryByViewModeAndQueryId(boolean isViewMode, String queryId, ApplicationRecordService applicationRecordService) { + return getLiveQueries(applicationRecordService).map(liveQueries -> (isViewMode ? liveQueries : getEditingQueries()) .stream() .filter(query -> queryId.equals(query.getId()) || queryId.equals(query.getGid())) .findFirst() - .orElseThrow(() -> new BizException(BizError.QUERY_NOT_FOUND, "LIBRARY_QUERY_NOT_FOUND")); + .orElseThrow(() -> new BizException(BizError.QUERY_NOT_FOUND, "LIBRARY_QUERY_NOT_FOUND"))); } /** @@ -151,10 +136,12 @@ public ApplicationQuery getQueryByViewModeAndQueryId(boolean isViewMode, String */ @Transient @JsonIgnore - public Map getLiveApplicationDsl() { - var dsl = MapUtils.isEmpty(publishedApplicationDSL) ? editingApplicationDSL : publishedApplicationDSL; - if (dsl == null) dsl = new HashMap<>(); - return dsl; + public Mono> getLiveApplicationDsl(ApplicationRecordService applicationRecordService) { + return applicationRecordService.getLatestRecordByApplicationId(this.getId()).map(applicationRecord -> { + Map dsl = applicationRecord == null ? editingApplicationDSL : applicationRecord.getApplicationDSL(); + if(dsl == null) dsl = new HashMap<>(); + return dsl; + }); } public String getOrganizationId() { @@ -193,12 +180,17 @@ public String getCategory() { public Map getEditingApplicationDSLOrNull() {return editingApplicationDSL; } - public Object getLiveContainerSize() { - return liveContainerSize.get(); + public Mono getLiveContainerSize(ApplicationRecordService applicationRecordService) { + return getLiveApplicationDsl(applicationRecordService).flatMap(dsl -> { + if (ApplicationType.APPLICATION.getValue() == getApplicationType()) { + return Mono.empty(); + } + return Mono.just(getContainerSizeFromDSL(dsl)); + }); } - public Map getPublishedApplicationDSL() { - return publishedApplicationDSL; + public Mono> getPublishedApplicationDSL(ApplicationRecordService applicationRecordService) { + return applicationRecordService.getLatestRecordByApplicationId(this.getId()).map(ApplicationRecord::getApplicationDSL); } } diff --git a/server/api-service/lowcoder-domain/src/main/java/org/lowcoder/domain/application/service/ApplicationService.java b/server/api-service/lowcoder-domain/src/main/java/org/lowcoder/domain/application/service/ApplicationService.java index 0683a4718..f399a13d1 100644 --- a/server/api-service/lowcoder-domain/src/main/java/org/lowcoder/domain/application/service/ApplicationService.java +++ b/server/api-service/lowcoder-domain/src/main/java/org/lowcoder/domain/application/service/ApplicationService.java @@ -20,10 +20,6 @@ public interface ApplicationService { Mono updateById(String applicationId, Application application); - Mono updatePublishedApplicationDSL(String applicationId, Map applicationDSL); - - Mono publish(String applicationId); - Mono updateEditState(String applicationId, Boolean editingFinished); Mono create(Application newApplication, String visitorId); diff --git a/server/api-service/lowcoder-domain/src/main/java/org/lowcoder/domain/application/service/ApplicationServiceImpl.java b/server/api-service/lowcoder-domain/src/main/java/org/lowcoder/domain/application/service/ApplicationServiceImpl.java index cafd287f7..5934e1617 100644 --- a/server/api-service/lowcoder-domain/src/main/java/org/lowcoder/domain/application/service/ApplicationServiceImpl.java +++ b/server/api-service/lowcoder-domain/src/main/java/org/lowcoder/domain/application/service/ApplicationServiceImpl.java @@ -10,6 +10,7 @@ import lombok.RequiredArgsConstructor; import org.apache.commons.lang3.StringUtils; import org.lowcoder.domain.application.model.Application; +import org.lowcoder.domain.application.model.ApplicationRecord; import org.lowcoder.domain.application.model.ApplicationRequestType; import org.lowcoder.domain.application.model.ApplicationStatus; import org.lowcoder.domain.application.repository.ApplicationRepository; @@ -48,7 +49,7 @@ public class ApplicationServiceImpl implements ApplicationService { private final ResourcePermissionService resourcePermissionService; private final ApplicationRepository repository; private final UserRepository userRepository; - private final LibraryQueryRecordService applicationRecordService; + private final ApplicationRecordService applicationRecordService; @Override public Mono findById(String id) { @@ -81,23 +82,6 @@ public Mono updateById(String applicationId, Application application) { return mongoUpsertHelper.updateById(application, applicationId); } - - @Override - public Mono updatePublishedApplicationDSL(String applicationId, Map applicationDSL) { - Application application = Application.builder().publishedApplicationDSL(applicationDSL).build(); - return mongoUpsertHelper.updateById(application, applicationId); - } - - @Override - public Mono publish(String applicationId) { - return findById(applicationId) - .flatMap(newApplication -> { // copy editingApplicationDSL to publishedApplicationDSL - Map editingApplicationDSL = newApplication.getEditingApplicationDSL(); - return updatePublishedApplicationDSL(applicationId, editingApplicationDSL) - .thenReturn(newApplication); - }); - } - @Override public Mono updateEditState(String applicationId, Boolean editingFinished) { return findById(applicationId) @@ -157,8 +141,10 @@ public Mono> getAllDependentModulesFromApplicationId(String ap @Override public Mono> getAllDependentModulesFromApplication(Application application, boolean viewMode) { - Map dsl = viewMode ? application.getLiveApplicationDsl() : application.getEditingApplicationDSL(); - return getAllDependentModulesFromDsl(dsl); + return application.getLiveApplicationDsl(applicationRecordService).flatMap(liveApplicationDsl -> { + Map dsl = viewMode ? liveApplicationDsl : application.getEditingApplicationDSL(); + return getAllDependentModulesFromDsl(dsl); + }); } @Override @@ -173,12 +159,12 @@ public Mono> getAllDependentModulesFromDsl(Map } private Flux getDependentModules(Application module, Set circularDependencyCheckSet) { - return Flux.fromIterable(module.getLiveModules()) + return module.getLiveModules(applicationRecordService).flatMapMany(modules -> Flux.fromIterable(modules) .filter(moduleId -> !circularDependencyCheckSet.contains(moduleId)) .doOnNext(circularDependencyCheckSet::add) .collectList() .flatMapMany(this::findByIdIn) - .onErrorContinue((e, i) -> log.warn("get dependent modules on error continue , {}", e.getMessage())); + .onErrorContinue((e, i) -> log.warn("get dependent modules on error continue , {}", e.getMessage()))); } @Override @@ -362,9 +348,9 @@ public Mono updateLastEditedAt(String applicationId, Instant time, Stri @Override public Mono> getLiveDSLByApplicationId(String applicationId) { - return applicationRecordService.getLatestRecordByLibraryQueryId(applicationId) - .map(LibraryQueryRecord::getLibraryQueryDSL) + return applicationRecordService.getLatestRecordByApplicationId(applicationId) + .map(ApplicationRecord::getApplicationDSL) .switchIfEmpty(findById(applicationId) - .map(Application::getPublishedApplicationDSL)); + .map(Application::getEditingApplicationDSL)); } } diff --git a/server/api-service/lowcoder-domain/src/main/java/org/lowcoder/domain/solutions/TemplateSolutionServiceImpl.java b/server/api-service/lowcoder-domain/src/main/java/org/lowcoder/domain/solutions/TemplateSolutionServiceImpl.java index d30e03fd2..e2d4d3db4 100644 --- a/server/api-service/lowcoder-domain/src/main/java/org/lowcoder/domain/solutions/TemplateSolutionServiceImpl.java +++ b/server/api-service/lowcoder-domain/src/main/java/org/lowcoder/domain/solutions/TemplateSolutionServiceImpl.java @@ -7,6 +7,7 @@ import org.apache.commons.lang3.tuple.Pair; import org.lowcoder.domain.application.model.Application; import org.lowcoder.domain.application.model.ApplicationStatus; +import org.lowcoder.domain.application.service.ApplicationRecordService; import org.lowcoder.domain.application.service.ApplicationService; import org.lowcoder.domain.datasource.model.Datasource; import org.lowcoder.domain.datasource.model.DatasourceCreationSource; @@ -44,6 +45,7 @@ public class TemplateSolutionServiceImpl implements TemplateSolutionService { private final DatasourceService datasourceService; @Lazy private final ApplicationService applicationService; + private final ApplicationRecordService applicationRecordService; @Override public Mono createFromTemplate(String templateId, String orgId, String visitorId) { @@ -59,20 +61,21 @@ public Mono createFromTemplate(String templateId, String orgId, Str String organizationId = tuple.getT2(); Application templateApplication = tuple.getT3(); List> datasourceIdMap = tuple.getT4(); - String dsl = JsonUtils.toJson(templateApplication.getLiveApplicationDsl()); - for (Pair stringStringPair : datasourceIdMap) { - dsl = dsl.replace(stringStringPair.getLeft(), stringStringPair.getRight()); - } - Map applicationDSL = JsonUtils.fromJsonMap(dsl); - Application application = Application.builder() - .applicationStatus(ApplicationStatus.NORMAL) - .gid(UuidCreator.getTimeOrderedEpoch().toString()) - .organizationId(organizationId) - .name(template.getName()) - .editingApplicationDSL(applicationDSL) - .publishedApplicationDSL(applicationDSL) - .build(); - return applicationService.create(application, visitorId); + return templateApplication.getLiveApplicationDsl(applicationRecordService).flatMap(liveApplicationDsl -> { + String dsl = JsonUtils.toJson(liveApplicationDsl); + for (Pair stringStringPair : datasourceIdMap) { + dsl = dsl.replace(stringStringPair.getLeft(), stringStringPair.getRight()); + } + Map applicationDSL = JsonUtils.fromJsonMap(dsl); + Application application = Application.builder() + .applicationStatus(ApplicationStatus.NORMAL) + .gid(UuidCreator.getTimeOrderedEpoch().toString()) + .organizationId(organizationId) + .name(template.getName()) + .editingApplicationDSL(applicationDSL) + .build(); + return applicationService.create(application, visitorId); + }); }); } @@ -91,17 +94,18 @@ public Mono> getTemplateApplicationIds(Collection applicatio */ private Mono>> copyDatasourceFromTemplateToCurrentOrganization(String currentOrganizationId, Application application, String visitorId) { - Set queries = application.getLiveQueries(); - if (isNull(queries)) { - return ofError(TEMPLATE_NOT_CORRECT, "TEMPLATE_NOT_CORRECT"); - } - Set datasourceIds = queries.stream() - .map(query -> query.getBaseQuery().getDatasourceId()) - .collect(Collectors.toSet()); - return Flux.fromIterable(datasourceIds) - .flatMap(datasourceId -> doCopyDatasource(currentOrganizationId, datasourceId, visitorId) - .map(copiedDatasourceId -> Pair.of(datasourceId, copiedDatasourceId))) - .collectList(); + return application.getLiveQueries(applicationRecordService).flatMap(queries -> { + if (isNull(queries)) { + return ofError(TEMPLATE_NOT_CORRECT, "TEMPLATE_NOT_CORRECT"); + } + Set datasourceIds = queries.stream() + .map(query -> query.getBaseQuery().getDatasourceId()) + .collect(Collectors.toSet()); + return Flux.fromIterable(datasourceIds) + .flatMap(datasourceId -> doCopyDatasource(currentOrganizationId, datasourceId, visitorId) + .map(copiedDatasourceId -> Pair.of(datasourceId, copiedDatasourceId))) + .collectList(); + }); } /** diff --git a/server/api-service/lowcoder-server/src/main/java/org/lowcoder/api/application/ApplicationApiServiceImpl.java b/server/api-service/lowcoder-server/src/main/java/org/lowcoder/api/application/ApplicationApiServiceImpl.java index e15cd8b24..d3092264e 100644 --- a/server/api-service/lowcoder-server/src/main/java/org/lowcoder/api/application/ApplicationApiServiceImpl.java +++ b/server/api-service/lowcoder-server/src/main/java/org/lowcoder/api/application/ApplicationApiServiceImpl.java @@ -103,7 +103,6 @@ public Mono create(CreateApplicationRequest createApplicationRe createApplicationRequest.name(), createApplicationRequest.applicationType(), NORMAL, - createApplicationRequest.publishedApplicationDSL(), createApplicationRequest.editingApplicationDSL(), false, false, false, "", Instant.now()); @@ -265,15 +264,18 @@ public Mono getEditingApplication(String applicationId) { List dependentModules = tuple.getT3(); Map commonSettings = tuple.getT4(); - Map> dependentModuleDsl = dependentModules.stream() - .collect(Collectors.toMap(Application::getId, Application::getLiveApplicationDsl, (a, b) -> b)); - return applicationService.updateById(applicationId, application).map(__ -> - ApplicationView.builder() - .applicationInfoView(buildView(application, permission.getResourceRole().getValue())) - .applicationDSL(application.getEditingApplicationDSL()) - .moduleDSL(dependentModuleDsl) - .orgCommonSettings(commonSettings) - .build()); + return Flux.fromIterable(dependentModules) + .flatMap(app -> app.getLiveApplicationDsl(applicationRecordService) + .map(dsl -> Map.entry(app.getId(), sanitizeDsl(dsl)))) + .collectMap(Map.Entry::getKey, Map.Entry::getValue) + .flatMap(dependentModuleDsl -> + applicationService.updateById(applicationId, application).map(__ -> + ApplicationView.builder() + .applicationInfoView(buildView(application, permission.getResourceRole().getValue())) + .applicationDSL(application.getEditingApplicationDSL()) + .moduleDSL(dependentModuleDsl) + .orgCommonSettings(commonSettings) + .build())); }); } @@ -286,21 +288,26 @@ public Mono getPublishedApplication(String applicationId, Appli .zipWhen(tuple -> applicationService.getAllDependentModulesFromApplication(tuple.getT2(), true), TupleUtils::merge) .zipWhen(tuple -> organizationService.getOrgCommonSettings(tuple.getT2().getOrganizationId()), TupleUtils::merge) .zipWith(getTemplateIdFromApplicationId(applicationId), TupleUtils::merge) - .map(tuple -> { + .flatMap(tuple -> { ResourcePermission permission = tuple.getT1(); Application application = tuple.getT2(); List dependentModules = tuple.getT3(); Map commonSettings = tuple.getT4(); String templateId = tuple.getT5(); - Map> dependentModuleDsl = dependentModules.stream() - .collect(Collectors.toMap(Application::getId, app -> sanitizeDsl(app.getLiveApplicationDsl()), (a, b) -> b)); - return ApplicationView.builder() - .applicationInfoView(buildView(application, permission.getResourceRole().getValue())) - .applicationDSL(sanitizeDsl(application.getLiveApplicationDsl())) - .moduleDSL(dependentModuleDsl) - .orgCommonSettings(commonSettings) - .templateId(templateId) - .build(); + return Flux.fromIterable(dependentModules) + .flatMap(app -> app.getLiveApplicationDsl(applicationRecordService) + .map(dsl -> Map.entry(app.getId(), sanitizeDsl(dsl)))) + .collectMap(Map.Entry::getKey, Map.Entry::getValue) + .flatMap(dependentModuleDsl -> + application.getLiveApplicationDsl(applicationRecordService).map(liveDsl -> + ApplicationView.builder() + .applicationInfoView(buildView(application, permission.getResourceRole().getValue())) + .applicationDSL(sanitizeDsl(liveDsl)) + .moduleDSL(dependentModuleDsl) + .orgCommonSettings(commonSettings) + .templateId(templateId) + .build()) + ); }) .delayUntil(applicationView -> { if (applicationView.getApplicationInfoView().getApplicationType() == ApplicationType.NAV_LAYOUT.getValue()) { @@ -368,10 +375,10 @@ public Mono publish(String applicationId, ApplicationPublishReq .applicationDSL(application.getEditingApplicationDSL()) .build()) .map(applicationRecordService::insert)) - .flatMap(permission -> applicationService.publish(applicationId) + .flatMap(permission -> applicationService.findById(applicationId) .map(applicationUpdated -> ApplicationView.builder() .applicationInfoView(buildView(applicationUpdated, permission.getResourceRole().getValue())) - .applicationDSL(applicationUpdated.getLiveApplicationDsl()) + .applicationDSL(applicationUpdated.getEditingApplicationDSL()) .build())); } diff --git a/server/api-service/lowcoder-server/src/main/java/org/lowcoder/api/application/ApplicationHistorySnapshotController.java b/server/api-service/lowcoder-server/src/main/java/org/lowcoder/api/application/ApplicationHistorySnapshotController.java index b5a6381d7..b637f576e 100644 --- a/server/api-service/lowcoder-server/src/main/java/org/lowcoder/api/application/ApplicationHistorySnapshotController.java +++ b/server/api-service/lowcoder-server/src/main/java/org/lowcoder/api/application/ApplicationHistorySnapshotController.java @@ -10,6 +10,7 @@ import org.lowcoder.domain.application.model.ApplicationHistorySnapshot; import org.lowcoder.domain.application.model.ApplicationHistorySnapshotTS; import org.lowcoder.domain.application.service.ApplicationHistorySnapshotService; +import org.lowcoder.domain.application.service.ApplicationRecordService; import org.lowcoder.domain.application.service.ApplicationService; import org.lowcoder.domain.permission.model.ResourceAction; import org.lowcoder.domain.permission.service.ResourcePermissionService; @@ -19,6 +20,7 @@ import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.RestController; +import reactor.core.publisher.Flux; import reactor.core.publisher.Mono; import java.time.Instant; @@ -38,6 +40,7 @@ public class ApplicationHistorySnapshotController implements ApplicationHistoryS private final SessionUserService sessionUserService; private final UserService userService; private final ApplicationService applicationService; + private final ApplicationRecordService applicationRecordService; @Override public Mono> create(@RequestBody ApplicationHistorySnapshotRequest request) { @@ -136,15 +139,18 @@ public Mono> getHistorySnapshotDsl(@PathVar .flatMap(__ -> applicationHistorySnapshotService.getHistorySnapshotDetail(snapshotId)) .map(ApplicationHistorySnapshot::getDsl) .zipWhen(applicationService::getAllDependentModulesFromDsl) - .map(tuple -> { + .flatMap(tuple -> { Map applicationDsl = tuple.getT1(); List dependentModules = tuple.getT2(); - Map> dependentModuleDsl = dependentModules.stream() - .collect(Collectors.toMap(Application::getId, Application::getLiveApplicationDsl, (a, b) -> b)); - return HistorySnapshotDslView.builder() - .applicationsDsl(applicationDsl) - .moduleDSL(dependentModuleDsl) - .build(); + return Flux.fromIterable(dependentModules) + .flatMap(app -> app.getLiveApplicationDsl(applicationRecordService) + .map(dsl -> Map.entry(app.getId(), dsl))) + .collectMap(Map.Entry::getKey, Map.Entry::getValue) + .map(dependentModuleDsl -> + HistorySnapshotDslView.builder() + .applicationsDsl(applicationDsl) + .moduleDSL(dependentModuleDsl) + .build()); }) .map(ResponseView::success); } @@ -158,15 +164,18 @@ public Mono> getHistorySnapshotDslArchived( .flatMap(__ -> applicationHistorySnapshotService.getHistorySnapshotDetailArchived(snapshotId)) .map(ApplicationHistorySnapshotTS::getDsl) .zipWhen(applicationService::getAllDependentModulesFromDsl) - .map(tuple -> { + .flatMap(tuple -> { Map applicationDsl = tuple.getT1(); List dependentModules = tuple.getT2(); - Map> dependentModuleDsl = dependentModules.stream() - .collect(Collectors.toMap(Application::getId, Application::getLiveApplicationDsl, (a, b) -> b)); - return HistorySnapshotDslView.builder() - .applicationsDsl(applicationDsl) - .moduleDSL(dependentModuleDsl) - .build(); + return Flux.fromIterable(dependentModules) + .flatMap(app -> app.getLiveApplicationDsl(applicationRecordService) + .map(dsl -> Map.entry(app.getId(), dsl))) + .collectMap(Map.Entry::getKey, Map.Entry::getValue) + .map(dependentModuleDsl -> + HistorySnapshotDslView.builder() + .applicationsDsl(applicationDsl) + .moduleDSL(dependentModuleDsl) + .build()); }) .map(ResponseView::success); } diff --git a/server/api-service/lowcoder-server/src/main/java/org/lowcoder/api/application/ApplicationRecordEndpoints.java b/server/api-service/lowcoder-server/src/main/java/org/lowcoder/api/application/ApplicationRecordEndpoints.java index 818e1cb4a..d1c760341 100644 --- a/server/api-service/lowcoder-server/src/main/java/org/lowcoder/api/application/ApplicationRecordEndpoints.java +++ b/server/api-service/lowcoder-server/src/main/java/org/lowcoder/api/application/ApplicationRecordEndpoints.java @@ -23,8 +23,8 @@ public interface ApplicationRecordEndpoints summary = "Delete Application Record", description = "Permanently remove a specific Application Record from Lowcoder using its unique record ID." ) - @DeleteMapping("/{ApplicationRecordId}") - public Mono delete(@PathVariable String ApplicationRecordId); + @DeleteMapping("/{applicationRecordId}") + public Mono delete(@PathVariable String applicationRecordId); @Operation( tags = TAG_APPLICATION_RECORDS, @@ -33,7 +33,7 @@ public interface ApplicationRecordEndpoints description = "Retrieve a specific Application Record within Lowcoder using the associated application ID." ) @GetMapping("/listByApplicationId") - public Mono>> getByApplicationId(@RequestParam(name = "ApplicationId") String ApplicationId); + public Mono>> getByApplicationId(@RequestParam(name = "applicationId") String applicationId); @Operation( tags = TAG_APPLICATION_RECORDS, @@ -42,7 +42,7 @@ public interface ApplicationRecordEndpoints description = "Retrieve a list of Application Records, which store information related to executed queries within Lowcoder and the current Organization / Workspace by the impersonated User" ) @GetMapping - public Mono>> dslById(@RequestParam(name = "ApplicationId") String ApplicationId, - @RequestParam(name = "ApplicationRecordId") String ApplicationRecordId); + public Mono>> dslById(@RequestParam(name = "applicationId") String applicationId, + @RequestParam(name = "applicationRecordId") String applicationRecordId); } diff --git a/server/api-service/lowcoder-server/src/main/java/org/lowcoder/api/home/UserHomeApiServiceImpl.java b/server/api-service/lowcoder-server/src/main/java/org/lowcoder/api/home/UserHomeApiServiceImpl.java index 4fe04695f..afa08b036 100644 --- a/server/api-service/lowcoder-server/src/main/java/org/lowcoder/api/home/UserHomeApiServiceImpl.java +++ b/server/api-service/lowcoder-server/src/main/java/org/lowcoder/api/home/UserHomeApiServiceImpl.java @@ -14,6 +14,7 @@ import org.lowcoder.domain.application.model.Application; import org.lowcoder.domain.application.model.ApplicationStatus; import org.lowcoder.domain.application.model.ApplicationType; +import org.lowcoder.domain.application.service.ApplicationRecordService; import org.lowcoder.domain.application.service.ApplicationService; import org.lowcoder.domain.bundle.model.Bundle; import org.lowcoder.domain.bundle.model.BundleElement; @@ -69,6 +70,7 @@ public class UserHomeApiServiceImpl implements UserHomeApiService { private final CommonConfig config; private final BundleElementRelationServiceImpl bundleElementRelationServiceImpl; private final BundleService bundleService; + private final ApplicationRecordService applicationRecordService; @Override public Mono buildUserProfileView(User user, ServerWebExchange exchange) { @@ -252,8 +254,8 @@ public Flux getAllAuthorisedApplications4CurrentOrgMember(@ .flatMap(positions -> { long position = positions.isEmpty() ? 0 : positions.get(0); ResourceRole resourceRole = resourcePermissionMap.get(application.getId()).getResourceRole(); - return Mono.just(buildView(application, resourceRole, userMap, applicationLastViewTimeMap.get(application.getId()), - position, withContainerSize)); + return buildView(application, resourceRole, userMap, applicationLastViewTimeMap.get(application.getId()), + position, withContainerSize); }); }); }); @@ -359,7 +361,7 @@ public Flux getAllMarketplaceApplications(@Nulla return applicationFlux .flatMap(application -> Mono.zip(Mono.just(application), userMapMono, orgMapMono)) - .map(tuple2 -> { + .flatMap(tuple2 -> { // build view Application application = tuple2.getT1(); Map userMap = tuple2.getT2(); @@ -379,19 +381,17 @@ public Flux getAllMarketplaceApplications(@Nulla .build(); // marketplace specific fields - Map settings = new HashMap<>(); - if (application.getPublishedApplicationDSL() != null) - { - settings.putAll((Map)application.getPublishedApplicationDSL().getOrDefault("settings", new HashMap<>())); - } - - marketplaceApplicationInfoView.setTitle((String)settings.getOrDefault("title", application.getName())); - marketplaceApplicationInfoView.setCategory((String)settings.get("category")); - marketplaceApplicationInfoView.setDescription((String)settings.get("description")); - marketplaceApplicationInfoView.setImage((String)settings.get("icon")); - - return marketplaceApplicationInfoView; - + return application.getPublishedApplicationDSL(applicationRecordService) + .map(pubishedApplicationDSL -> + (Map) new HashMap((Map) pubishedApplicationDSL.getOrDefault("settings", new HashMap<>()))) + .switchIfEmpty(Mono.just(new HashMap<>())) + .map(settings -> { + marketplaceApplicationInfoView.setTitle((String)settings.getOrDefault("title", application.getName())); + marketplaceApplicationInfoView.setCategory((String)settings.get("category")); + marketplaceApplicationInfoView.setDescription((String)settings.get("description")); + marketplaceApplicationInfoView.setImage((String)settings.get("icon")); + return marketplaceApplicationInfoView; + }); }); }); @@ -561,7 +561,7 @@ public Flux getAllAgencyProfileBundles() { }); } - private ApplicationInfoView buildView(Application application, ResourceRole maxRole, Map userMap, @Nullable Instant lastViewTime, + private Mono buildView(Application application, ResourceRole maxRole, Map userMap, @Nullable Instant lastViewTime, Long bundlePosition, boolean withContainerSize) { ApplicationInfoViewBuilder applicationInfoViewBuilder = ApplicationInfoView.builder() .applicationId(application.getId()) @@ -582,11 +582,14 @@ private ApplicationInfoView buildView(Application application, ResourceRole maxR .publicToMarketplace(application.isPublicToMarketplace()) .agencyProfile(application.agencyProfile()); if (withContainerSize) { - return applicationInfoViewBuilder - .containerSize(application.getLiveContainerSize()) - .build(); + return application.getLiveContainerSize(applicationRecordService).map(size -> applicationInfoViewBuilder + .containerSize(size) + .build()) + .switchIfEmpty(Mono.just(applicationInfoViewBuilder + .containerSize(null) + .build())); } - return applicationInfoViewBuilder.build(); + return Mono.just(applicationInfoViewBuilder.build()); } } diff --git a/server/api-service/lowcoder-server/src/main/java/org/lowcoder/api/query/ApplicationQueryApiServiceImpl.java b/server/api-service/lowcoder-server/src/main/java/org/lowcoder/api/query/ApplicationQueryApiServiceImpl.java index 8bc3270c4..773ebe1e2 100644 --- a/server/api-service/lowcoder-server/src/main/java/org/lowcoder/api/query/ApplicationQueryApiServiceImpl.java +++ b/server/api-service/lowcoder-server/src/main/java/org/lowcoder/api/query/ApplicationQueryApiServiceImpl.java @@ -7,6 +7,7 @@ import org.lowcoder.api.home.SessionUserService; import org.lowcoder.api.query.view.QueryExecutionRequest; import org.lowcoder.domain.application.model.Application; +import org.lowcoder.domain.application.service.ApplicationRecordService; import org.lowcoder.domain.application.service.ApplicationService; import org.lowcoder.domain.datasource.model.Datasource; import org.lowcoder.domain.datasource.service.DatasourceService; @@ -62,6 +63,7 @@ public class ApplicationQueryApiServiceImpl implements ApplicationQueryApiServic private final DatasourceService datasourceService; private final QueryExecutionService queryExecutionService; private final CommonConfig commonConfig; + private final ApplicationRecordService applicationRecordService; @Value("${server.port}") private int port; @@ -79,7 +81,7 @@ public Mono executeApplicationQuery(ServerWebExchange exch String queryId = queryExecutionRequest.getQueryId(); Mono appMono = applicationService.findById(appId).cache(); Mono appQueryMono = appMono - .map(app -> app.getQueryByViewModeAndQueryId(viewMode, queryId)) + .flatMap(app -> app.getQueryByViewModeAndQueryId(viewMode, queryId, applicationRecordService)) .cache(); Mono baseQueryMono = appQueryMono.flatMap(this::getBaseQuery).cache(); From aaa62c497597ccb3a73a9b8c60feff8225ad57a8 Mon Sep 17 00:00:00 2001 From: Thomasr Date: Thu, 12 Dec 2024 09:21:02 -0500 Subject: [PATCH 22/88] fix reactive errors (null exception) --- .../lowcoder/domain/application/model/Application.java | 8 +++----- .../application/service/ApplicationServiceImpl.java | 2 +- 2 files changed, 4 insertions(+), 6 deletions(-) diff --git a/server/api-service/lowcoder-domain/src/main/java/org/lowcoder/domain/application/model/Application.java b/server/api-service/lowcoder-domain/src/main/java/org/lowcoder/domain/application/model/Application.java index 593ba78fc..0dc3e3043 100644 --- a/server/api-service/lowcoder-domain/src/main/java/org/lowcoder/domain/application/model/Application.java +++ b/server/api-service/lowcoder-domain/src/main/java/org/lowcoder/domain/application/model/Application.java @@ -137,11 +137,9 @@ public Mono getQueryByViewModeAndQueryId(boolean isViewMode, S @Transient @JsonIgnore public Mono> getLiveApplicationDsl(ApplicationRecordService applicationRecordService) { - return applicationRecordService.getLatestRecordByApplicationId(this.getId()).map(applicationRecord -> { - Map dsl = applicationRecord == null ? editingApplicationDSL : applicationRecord.getApplicationDSL(); - if(dsl == null) dsl = new HashMap<>(); - return dsl; - }); + return applicationRecordService.getLatestRecordByApplicationId(this.getId()) + .map(ApplicationRecord::getApplicationDSL) + .switchIfEmpty(Mono.just(editingApplicationDSL)); } public String getOrganizationId() { diff --git a/server/api-service/lowcoder-domain/src/main/java/org/lowcoder/domain/application/service/ApplicationServiceImpl.java b/server/api-service/lowcoder-domain/src/main/java/org/lowcoder/domain/application/service/ApplicationServiceImpl.java index 5934e1617..c65fef8e0 100644 --- a/server/api-service/lowcoder-domain/src/main/java/org/lowcoder/domain/application/service/ApplicationServiceImpl.java +++ b/server/api-service/lowcoder-domain/src/main/java/org/lowcoder/domain/application/service/ApplicationServiceImpl.java @@ -141,7 +141,7 @@ public Mono> getAllDependentModulesFromApplicationId(String ap @Override public Mono> getAllDependentModulesFromApplication(Application application, boolean viewMode) { - return application.getLiveApplicationDsl(applicationRecordService).flatMap(liveApplicationDsl -> { + return application.getLiveApplicationDsl(applicationRecordService).switchIfEmpty(Mono.just(new HashMap<>())).flatMap(liveApplicationDsl -> { Map dsl = viewMode ? liveApplicationDsl : application.getEditingApplicationDSL(); return getAllDependentModulesFromDsl(dsl); }); From 5af0bebadcf89e4cda6b8a764342b3969576016c Mon Sep 17 00:00:00 2001 From: Thomasr Date: Thu, 12 Dec 2024 09:37:25 -0500 Subject: [PATCH 23/88] fix test errors --- .../org/lowcoder/api/application/ApplicationEndpoints.java | 1 - .../api/application/ApplicationApiServiceIntegrationTest.java | 4 +--- .../lowcoder/api/application/ApplicationApiServiceTest.java | 4 ++-- .../java/org/lowcoder/api/service/FolderApiServiceTest.java | 2 +- 4 files changed, 4 insertions(+), 7 deletions(-) diff --git a/server/api-service/lowcoder-server/src/main/java/org/lowcoder/api/application/ApplicationEndpoints.java b/server/api-service/lowcoder-server/src/main/java/org/lowcoder/api/application/ApplicationEndpoints.java index 52ff40af6..cd5285109 100644 --- a/server/api-service/lowcoder-server/src/main/java/org/lowcoder/api/application/ApplicationEndpoints.java +++ b/server/api-service/lowcoder-server/src/main/java/org/lowcoder/api/application/ApplicationEndpoints.java @@ -294,7 +294,6 @@ public record UpdatePermissionRequest(String role) { public record CreateApplicationRequest(@JsonProperty("orgId") String organizationId, String name, Integer applicationType, - Map publishedApplicationDSL, Map editingApplicationDSL, @Nullable String folderId) { } diff --git a/server/api-service/lowcoder-server/src/test/java/org/lowcoder/api/application/ApplicationApiServiceIntegrationTest.java b/server/api-service/lowcoder-server/src/test/java/org/lowcoder/api/application/ApplicationApiServiceIntegrationTest.java index dc18765df..cb4d81808 100644 --- a/server/api-service/lowcoder-server/src/test/java/org/lowcoder/api/application/ApplicationApiServiceIntegrationTest.java +++ b/server/api-service/lowcoder-server/src/test/java/org/lowcoder/api/application/ApplicationApiServiceIntegrationTest.java @@ -73,7 +73,6 @@ public void testCreateApplicationSuccess() { "org01", "app05", ApplicationType.APPLICATION.getValue(), - Map.of("comp", "table"), Map.of("comp", "list", "queries", Set.of(Map.of("datasourceId", datasource.getId()))), null)) .delayUntil(__ -> deleteMono) @@ -108,7 +107,6 @@ public void testUpdateApplicationFailedDueToLackOfDatasourcePermissions() { "org01", "app03", ApplicationType.APPLICATION.getValue(), - Map.of("comp", "table"), Map.of("comp", "list", "queries", Set.of(Map.of("datasourceId", datasource.getId()))), null)) .delayUntil(__ -> deleteMono) @@ -131,7 +129,7 @@ public void testUpdateApplicationFailedDueToLackOfDatasourcePermissions() { @Test @WithMockUser public void testUpdateEditingStateSuccess() { - Mono applicationViewMono = applicationApiService.create(new CreateApplicationRequest("org01", "app1", ApplicationType.APPLICATION.getValue(), Map.of("comp", "table"), Map.of("comp", "list"), null)); + Mono applicationViewMono = applicationApiService.create(new CreateApplicationRequest("org01", "app1", ApplicationType.APPLICATION.getValue(), Map.of("comp", "list"), null)); Mono updateEditStateMono = applicationViewMono.delayUntil(app -> applicationApiService.updateEditState(app.getApplicationInfoView().getApplicationId(), new ApplicationEndpoints.UpdateEditStateRequest(true))); Mono app = updateEditStateMono.flatMap(applicationView -> applicationApiService.getEditingApplication(applicationView.getApplicationInfoView().getApplicationId())); StepVerifier.create(app) diff --git a/server/api-service/lowcoder-server/src/test/java/org/lowcoder/api/application/ApplicationApiServiceTest.java b/server/api-service/lowcoder-server/src/test/java/org/lowcoder/api/application/ApplicationApiServiceTest.java index cc414ec6c..1c60d36da 100644 --- a/server/api-service/lowcoder-server/src/test/java/org/lowcoder/api/application/ApplicationApiServiceTest.java +++ b/server/api-service/lowcoder-server/src/test/java/org/lowcoder/api/application/ApplicationApiServiceTest.java @@ -130,7 +130,7 @@ public void testDeleteNormalApplicationWithError() { private Mono createApplication(String name, String folderId) { CreateApplicationRequest createApplicationRequest = new CreateApplicationRequest("org01", name, ApplicationType.APPLICATION.getValue(), - Map.of("comp", "table"), Map.of("comp", "list"), folderId); + Map.of("comp", "list"), folderId); return applicationApiService.create(createApplicationRequest); } @@ -148,7 +148,7 @@ public void testPublishApplication() { // published dsl before publish StepVerifier.create(applicationIdMono.flatMap(id -> applicationApiService.getPublishedApplication(id, ApplicationRequestType.PUBLIC_TO_ALL))) - .assertNext(applicationView -> Assertions.assertEquals(Map.of("comp", "table"), applicationView.getApplicationDSL())) + .assertNext(applicationView -> Assertions.assertEquals(Map.of("comp", "list"), applicationView.getApplicationDSL())) .verifyComplete(); // publish diff --git a/server/api-service/lowcoder-server/src/test/java/org/lowcoder/api/service/FolderApiServiceTest.java b/server/api-service/lowcoder-server/src/test/java/org/lowcoder/api/service/FolderApiServiceTest.java index 09fa8a2b9..38bd7b044 100644 --- a/server/api-service/lowcoder-server/src/test/java/org/lowcoder/api/service/FolderApiServiceTest.java +++ b/server/api-service/lowcoder-server/src/test/java/org/lowcoder/api/service/FolderApiServiceTest.java @@ -28,7 +28,7 @@ import static org.junit.jupiter.api.Assertions.assertTrue; @SpringBootTest -@ActiveProfiles("test") +@ActiveProfiles("testFolder") //@RunWith(SpringRunner.class) @TestInstance(TestInstance.Lifecycle.PER_CLASS) public class FolderApiServiceTest { From 0dfebdd40dbb8c457a64e7bf8429971b7c97cacb Mon Sep 17 00:00:00 2001 From: Thomasr Date: Thu, 12 Dec 2024 11:41:55 -0500 Subject: [PATCH 24/88] fix publish errors and make back compatible --- .../ApplicationApiServiceImpl.java | 2 +- .../application/ApplicationController.java | 26 +++++++++++++++++-- .../api/application/ApplicationEndpoints.java | 2 +- 3 files changed, 26 insertions(+), 4 deletions(-) diff --git a/server/api-service/lowcoder-server/src/main/java/org/lowcoder/api/application/ApplicationApiServiceImpl.java b/server/api-service/lowcoder-server/src/main/java/org/lowcoder/api/application/ApplicationApiServiceImpl.java index d3092264e..8f26aec99 100644 --- a/server/api-service/lowcoder-server/src/main/java/org/lowcoder/api/application/ApplicationApiServiceImpl.java +++ b/server/api-service/lowcoder-server/src/main/java/org/lowcoder/api/application/ApplicationApiServiceImpl.java @@ -374,7 +374,7 @@ public Mono publish(String applicationId, ApplicationPublishReq .applicationId(application.getId()) .applicationDSL(application.getEditingApplicationDSL()) .build()) - .map(applicationRecordService::insert)) + .flatMap(applicationRecordService::insert)) .flatMap(permission -> applicationService.findById(applicationId) .map(applicationUpdated -> ApplicationView.builder() .applicationInfoView(buildView(applicationUpdated, permission.getResourceRole().getValue())) diff --git a/server/api-service/lowcoder-server/src/main/java/org/lowcoder/api/application/ApplicationController.java b/server/api-service/lowcoder-server/src/main/java/org/lowcoder/api/application/ApplicationController.java index 085088f17..6edddcb2d 100644 --- a/server/api-service/lowcoder-server/src/main/java/org/lowcoder/api/application/ApplicationController.java +++ b/server/api-service/lowcoder-server/src/main/java/org/lowcoder/api/application/ApplicationController.java @@ -1,5 +1,6 @@ package org.lowcoder.api.application; +import io.sentry.protocol.App; import lombok.RequiredArgsConstructor; import org.lowcoder.api.application.view.*; import org.lowcoder.api.framework.view.PageResponseView; @@ -13,6 +14,7 @@ import org.lowcoder.domain.application.model.ApplicationRequestType; import org.lowcoder.domain.application.model.ApplicationStatus; import org.lowcoder.domain.application.model.ApplicationType; +import org.lowcoder.domain.application.service.ApplicationRecordService; import org.lowcoder.domain.folder.service.FolderElementRelationService; import org.lowcoder.domain.permission.model.ResourceRole; import org.springframework.web.bind.annotation.PathVariable; @@ -22,6 +24,7 @@ import reactor.core.publisher.Mono; import java.util.List; +import java.util.Objects; import static org.apache.commons.collections4.SetUtils.emptyIfNull; import static org.lowcoder.plugin.api.event.LowcoderEvent.EventType.*; @@ -38,6 +41,7 @@ public class ApplicationController implements ApplicationEndpoints { private final SessionUserService sessionUserService; private final GidService gidService; private final FolderElementRelationService folderElementRelationService; + private final ApplicationRecordService applicationRecordService; @Override public Mono> create(@RequestBody CreateApplicationRequest createApplicationRequest) { @@ -130,9 +134,27 @@ public Mono> update(@PathVariable String applicati @Override public Mono> publish(@PathVariable String applicationId, - @RequestBody ApplicationPublishRequest applicationPublishRequest) { + @RequestBody(required = false) ApplicationPublishRequest applicationPublishRequest) { return gidService.convertApplicationIdToObjectId(applicationId).flatMap(appId -> - applicationApiService.publish(appId, applicationPublishRequest) + applicationRecordService.getLatestRecordByApplicationId(applicationId) + .map(applicationRecord -> { + String tag = applicationRecord.getTag(); // Assuming format is 1.0.0 + String newtag = "1.0.0"; + + if (tag != null && tag.matches("\\d+\\.\\d+\\.\\d+")) { // Validate tag format + String[] parts = tag.split("\\."); // Split by "." + int major = Integer.parseInt(parts[0]); + int minor = Integer.parseInt(parts[1]); + int patch = Integer.parseInt(parts[2]); + + patch++; // Increment the patch version + newtag = String.format("%d.%d.%d", major, minor, patch); + } + + return newtag; + }) + .switchIfEmpty(Mono.just("1.0.0")) + .flatMap(newtag -> applicationApiService.publish(appId, Objects.requireNonNullElse(applicationPublishRequest, new ApplicationPublishRequest("", newtag)))) .map(ResponseView::success)); } diff --git a/server/api-service/lowcoder-server/src/main/java/org/lowcoder/api/application/ApplicationEndpoints.java b/server/api-service/lowcoder-server/src/main/java/org/lowcoder/api/application/ApplicationEndpoints.java index cd5285109..a7f09da7d 100644 --- a/server/api-service/lowcoder-server/src/main/java/org/lowcoder/api/application/ApplicationEndpoints.java +++ b/server/api-service/lowcoder-server/src/main/java/org/lowcoder/api/application/ApplicationEndpoints.java @@ -134,7 +134,7 @@ public Mono> update(@PathVariable String applicati ) @PostMapping("/{applicationId}/publish") public Mono> publish(@PathVariable String applicationId, - @RequestBody ApplicationPublishRequest applicationPublishRequest); + @RequestBody(required = false) ApplicationPublishRequest applicationPublishRequest); @Operation( tags = TAG_APPLICATION_MANAGEMENT, From 5840b52fdee1922ec8d0919736540bc8ff850df3 Mon Sep 17 00:00:00 2001 From: Thomasr Date: Thu, 12 Dec 2024 14:52:24 -0500 Subject: [PATCH 25/88] create migration --- .../authentication/util/AdvancedMapUtils.java | 22 ++++++++++++++ .../runner/migrations/DatabaseChangelog.java | 29 +++++++++++++++++++ 2 files changed, 51 insertions(+) diff --git a/server/api-service/lowcoder-server/src/main/java/org/lowcoder/api/authentication/util/AdvancedMapUtils.java b/server/api-service/lowcoder-server/src/main/java/org/lowcoder/api/authentication/util/AdvancedMapUtils.java index 7f2bf4c36..6fe769f73 100644 --- a/server/api-service/lowcoder-server/src/main/java/org/lowcoder/api/authentication/util/AdvancedMapUtils.java +++ b/server/api-service/lowcoder-server/src/main/java/org/lowcoder/api/authentication/util/AdvancedMapUtils.java @@ -1,5 +1,8 @@ package org.lowcoder.api.authentication.util; +import org.bson.Document; + +import java.util.HashMap; import java.util.Map; public class AdvancedMapUtils { @@ -52,4 +55,23 @@ public static String getString(Map map, String key) { return current!=null?current.toString():null; } + + public static Map documentToMap(Document document) { + if (document == null) { + return new HashMap<>(); + } + + Map map = new HashMap<>(); + for (Map.Entry entry : document.entrySet()) { + Object value = entry.getValue(); + if (value instanceof Document) { + // Recursively convert nested Document + map.put(entry.getKey(), documentToMap((Document) value)); + } else { + map.put(entry.getKey(), value); + } + } + return map; + } + } \ No newline at end of file diff --git a/server/api-service/lowcoder-server/src/main/java/org/lowcoder/runner/migrations/DatabaseChangelog.java b/server/api-service/lowcoder-server/src/main/java/org/lowcoder/runner/migrations/DatabaseChangelog.java index ff7e33e25..e502dbedc 100644 --- a/server/api-service/lowcoder-server/src/main/java/org/lowcoder/runner/migrations/DatabaseChangelog.java +++ b/server/api-service/lowcoder-server/src/main/java/org/lowcoder/runner/migrations/DatabaseChangelog.java @@ -9,9 +9,11 @@ import com.mongodb.client.result.DeleteResult; import lombok.extern.slf4j.Slf4j; import org.bson.Document; +import org.bson.types.ObjectId; import org.lowcoder.domain.application.model.Application; import org.lowcoder.domain.application.model.ApplicationHistorySnapshot; import org.lowcoder.domain.application.model.ApplicationHistorySnapshotTS; +import org.lowcoder.domain.application.model.ApplicationRecord; import org.lowcoder.domain.bundle.model.Bundle; import org.lowcoder.domain.datasource.model.Datasource; import org.lowcoder.domain.datasource.model.DatasourceStructureDO; @@ -49,8 +51,10 @@ import java.time.temporal.ChronoUnit; import java.util.Arrays; import java.util.List; +import java.util.Map; import java.util.Set; +import static org.lowcoder.api.authentication.util.AdvancedMapUtils.documentToMap; import static org.lowcoder.domain.util.QueryDslUtils.fieldName; import static org.lowcoder.sdk.util.IDUtils.generate; @@ -422,6 +426,31 @@ public void populateEmailInUserConnections(MongockTemplate mongoTemplate, Common } + @ChangeSet(order = "028", id = "published-to-record", author = "Thomas") + public void publishedToRecord(MongockTemplate mongoTemplate, CommonConfig commonConfig) { + Query query = new Query(Criteria.where("publishedApplicationDSL").exists(true)); + + MongoCursor cursor = mongoTemplate.getCollection("application").find(query.getQueryObject()).iterator(); + + while (cursor.hasNext()) { + Document document = cursor.next(); + Document dsl = (Document) document.get("publishedApplicationDSL"); + ObjectId id = document.getObjectId("_id"); + String createdBy = document.getString("createdBy"); + Map dslMap = documentToMap(dsl); + ApplicationRecord record = ApplicationRecord.builder() + .applicationId(id.toHexString()) + .applicationDSL(dslMap) + .commitMessage("") + .tag("1.0.0") + .createdBy(createdBy) + .modifiedBy(createdBy) + .createdAt(Instant.now()) + .updatedAt(Instant.now()) + .build(); + mongoTemplate.insert(record); + } + } private void addGidField(MongockTemplate mongoTemplate, String collectionName) { // Create a query to match all documents From e8dba1e3172262912f832e6568bfcd21966816d3 Mon Sep 17 00:00:00 2001 From: Thomasr Date: Thu, 12 Dec 2024 15:33:35 -0500 Subject: [PATCH 26/88] Update test case --- .../ApplicationApiServiceTest.java | 30 ++++++++++++++++++- 1 file changed, 29 insertions(+), 1 deletion(-) diff --git a/server/api-service/lowcoder-server/src/test/java/org/lowcoder/api/application/ApplicationApiServiceTest.java b/server/api-service/lowcoder-server/src/test/java/org/lowcoder/api/application/ApplicationApiServiceTest.java index 1c60d36da..ede7ed95a 100644 --- a/server/api-service/lowcoder-server/src/test/java/org/lowcoder/api/application/ApplicationApiServiceTest.java +++ b/server/api-service/lowcoder-server/src/test/java/org/lowcoder/api/application/ApplicationApiServiceTest.java @@ -153,7 +153,7 @@ public void testPublishApplication() { // publish applicationIdMono = applicationIdMono - .delayUntil(id -> applicationApiService.publish(id, new ApplicationPublishRequest("Test Publish", "1.0.0"))); + .delayUntil(id -> applicationApiService.publish(id, new ApplicationPublishRequest("Test Publish", "1.0.0"))).cache(); // edit dsl after publish StepVerifier.create(applicationIdMono.flatMap(id -> applicationApiService.getEditingApplication(id))) @@ -164,6 +164,34 @@ public void testPublishApplication() { StepVerifier.create(applicationIdMono.flatMap(id -> applicationApiService.getPublishedApplication(id, ApplicationRequestType.PUBLIC_TO_ALL))) .assertNext(applicationView -> Assertions.assertEquals(Map.of("comp", "list"), applicationView.getApplicationDSL())) .verifyComplete(); + + // update + applicationIdMono = applicationIdMono + .delayUntil(id -> applicationApiService.update(id, Application.builder().editingApplicationDSL(Map.of("comp", "table")).build())).cache(); + + // edit dsl after publish + StepVerifier.create(applicationIdMono.flatMap(id -> applicationApiService.getEditingApplication(id))) + .assertNext(applicationView -> Assertions.assertEquals(Map.of("comp", "table"), applicationView.getApplicationDSL())) + .verifyComplete(); + + // published dsl after publish + StepVerifier.create(applicationIdMono.flatMap(id -> applicationApiService.getPublishedApplication(id, ApplicationRequestType.PUBLIC_TO_ALL))) + .assertNext(applicationView -> Assertions.assertEquals(Map.of("comp", "list"), applicationView.getApplicationDSL())) + .verifyComplete(); + + // publish + applicationIdMono = applicationIdMono + .delayUntil(id -> applicationApiService.publish(id, new ApplicationPublishRequest("Test Publish 2", "2.0.0"))).cache(); + + // edit dsl after publish + StepVerifier.create(applicationIdMono.flatMap(id -> applicationApiService.getEditingApplication(id))) + .assertNext(applicationView -> Assertions.assertEquals(Map.of("comp", "table"), applicationView.getApplicationDSL())) + .verifyComplete(); + + // published dsl after publish + StepVerifier.create(applicationIdMono.flatMap(id -> applicationApiService.getPublishedApplication(id, ApplicationRequestType.PUBLIC_TO_ALL))) + .assertNext(applicationView -> Assertions.assertEquals(Map.of("comp", "table"), applicationView.getApplicationDSL())) + .verifyComplete(); } @Test From 730d794cad9d7266d01a50f38646059524cb88b6 Mon Sep 17 00:00:00 2001 From: Thomasr Date: Thu, 5 Dec 2024 13:44:45 -0500 Subject: [PATCH 27/88] #923: Add title, description, category to the application list endpoint --- .../domain/application/model/Application.java | 33 +++++++++++++++++-- .../repository/ApplicationRepository.java | 6 ++-- .../application/view/ApplicationInfoView.java | 7 ++++ .../api/home/UserHomeApiServiceImpl.java | 3 ++ 4 files changed, 43 insertions(+), 6 deletions(-) diff --git a/server/api-service/lowcoder-domain/src/main/java/org/lowcoder/domain/application/model/Application.java b/server/api-service/lowcoder-domain/src/main/java/org/lowcoder/domain/application/model/Application.java index 0dc3e3043..4760dbfdf 100644 --- a/server/api-service/lowcoder-domain/src/main/java/org/lowcoder/domain/application/model/Application.java +++ b/server/api-service/lowcoder-domain/src/main/java/org/lowcoder/domain/application/model/Application.java @@ -165,17 +165,44 @@ public Map getEditingApplicationDSL() { } public String getCategory() { - if(editingApplicationDSL == null || editingApplicationDSL.get("settings") == null) return ""; - Object settingsObject = editingApplicationDSL.get("settings"); + var liveDSL = getLiveApplicationDsl(); + if(liveDSL == null || liveDSL.get("settings") == null) return ""; + Object settingsObject = liveDSL.get("settings"); if (settingsObject instanceof Map) { @SuppressWarnings("unchecked") - Map settings = (Map) editingApplicationDSL.get("settings"); + Map settings = (Map) liveDSL.get("settings"); return (String) settings.get("category"); } else { return ""; } } + public String getTitle() { + var liveDSL = getLiveApplicationDsl(); + if(liveDSL == null || liveDSL.get("settings") == null) return ""; + Object settingsObject = liveDSL.get("settings"); + if (settingsObject instanceof Map) { + @SuppressWarnings("unchecked") + Map settings = (Map) liveDSL.get("settings"); + return (String) settings.get("title"); + } else { + return ""; + } + } + + public String getDescription() { + var liveDSL = getLiveApplicationDsl(); + if(liveDSL == null || liveDSL.get("settings") == null) return ""; + Object settingsObject = liveDSL.get("settings"); + if (settingsObject instanceof Map) { + @SuppressWarnings("unchecked") + Map settings = (Map) liveDSL.get("settings"); + return (String) settings.get("description"); + } else { + return ""; + } + } + public Map getEditingApplicationDSLOrNull() {return editingApplicationDSL; } public Mono getLiveContainerSize(ApplicationRecordService applicationRecordService) { diff --git a/server/api-service/lowcoder-domain/src/main/java/org/lowcoder/domain/application/repository/ApplicationRepository.java b/server/api-service/lowcoder-domain/src/main/java/org/lowcoder/domain/application/repository/ApplicationRepository.java index 9197d6bb4..5cac07fdc 100644 --- a/server/api-service/lowcoder-domain/src/main/java/org/lowcoder/domain/application/repository/ApplicationRepository.java +++ b/server/api-service/lowcoder-domain/src/main/java/org/lowcoder/domain/application/repository/ApplicationRepository.java @@ -17,16 +17,16 @@ public interface ApplicationRepository extends ReactiveMongoRepository, CustomApplicationRepository { // publishedApplicationDSL : 0 -> excludes publishedApplicationDSL from the return - @Aggregation(pipeline = {"{ $match: { organizationId: ?0 } }", "{ $project: { 'editingApplicationDSL.settings.category': 1, _id: 1, gid: 1, organizationId: 1, name: 1, applicationType: 1, applicationStatus: 1, publicToAll: 1, publicToMarketplace: 1, agencyProfile: 1, editingUserId: 1, lastEditedAt: 1, createdAt: 1, updatedAt: 1, createdBy: 1, modifiedBy: 1, _class: 1}}"}) + @Aggregation(pipeline = {"{ $match: { organizationId: ?0 } }", "{ $project: { 'editingApplicationDSL.settings': 1, _id: 1, gid: 1, organizationId: 1, name: 1, applicationType: 1, applicationStatus: 1, publicToAll: 1, publicToMarketplace: 1, agencyProfile: 1, editingUserId: 1, lastEditedAt: 1, createdAt: 1, updatedAt: 1, createdBy: 1, modifiedBy: 1, _class: 1}}"}) Flux findByOrganizationId(String organizationId); @Override @Nonnull - @Aggregation(pipeline = {"{ $match: { _id: ?0 } }", "{ $project: { 'editingApplicationDSL.settings.category': 1, _id: 1, gid: 1, organizationId: 1, name: 1, applicationType: 1, applicationStatus: 1, publicToAll: 1, publicToMarketplace: 1, agencyProfile: 1, editingUserId: 1, lastEditedAt: 1, createdAt: 1, updatedAt: 1, createdBy: 1, modifiedBy: 1, _class: 1}}"}) + @Aggregation(pipeline = {"{ $match: { _id: ?0 } }", "{ $project: { 'editingApplicationDSL.settings': 1, _id: 1, gid: 1, organizationId: 1, name: 1, applicationType: 1, applicationStatus: 1, publicToAll: 1, publicToMarketplace: 1, agencyProfile: 1, editingUserId: 1, lastEditedAt: 1, createdAt: 1, updatedAt: 1, createdBy: 1, modifiedBy: 1, _class: 1}}"}) Mono findById(@Nonnull String id); - @Aggregation(pipeline = {"{ $match: { gid: ?0 } }", "{ $project: { 'editingApplicationDSL.settings.category': 1, _id: 1, gid: 1, organizationId: 1, name: 1, applicationType: 1, applicationStatus: 1, publicToAll: 1, publicToMarketplace: 1, agencyProfile: 1, editingUserId: 1, lastEditedAt: 1, createdAt: 1, updatedAt: 1, createdBy: 1, modifiedBy: 1, _class: 1}}"}) + @Aggregation(pipeline = {"{ $match: { gid: ?0 } }", "{ $project: { 'editingApplicationDSL.settings': 1, _id: 1, gid: 1, organizationId: 1, name: 1, applicationType: 1, applicationStatus: 1, publicToAll: 1, publicToMarketplace: 1, agencyProfile: 1, editingUserId: 1, lastEditedAt: 1, createdAt: 1, updatedAt: 1, createdBy: 1, modifiedBy: 1, _class: 1}}"}) Flux findByGid(@Nonnull String gid); Mono countByOrganizationIdAndApplicationStatus(String organizationId, ApplicationStatus applicationStatus); diff --git a/server/api-service/lowcoder-server/src/main/java/org/lowcoder/api/application/view/ApplicationInfoView.java b/server/api-service/lowcoder-server/src/main/java/org/lowcoder/api/application/view/ApplicationInfoView.java index 82fec6a07..5270625ab 100644 --- a/server/api-service/lowcoder-server/src/main/java/org/lowcoder/api/application/view/ApplicationInfoView.java +++ b/server/api-service/lowcoder-server/src/main/java/org/lowcoder/api/application/view/ApplicationInfoView.java @@ -41,6 +41,13 @@ public class ApplicationInfoView { private final String editingUserId; + @JsonInclude(Include.NON_NULL) + private final String title; + @JsonInclude(Include.NON_NULL) + private final String description; + @JsonInclude(Include.NON_NULL) + private final String category; + public long getLastViewTime() { return lastViewTime == null ? 0 : lastViewTime.toEpochMilli(); } diff --git a/server/api-service/lowcoder-server/src/main/java/org/lowcoder/api/home/UserHomeApiServiceImpl.java b/server/api-service/lowcoder-server/src/main/java/org/lowcoder/api/home/UserHomeApiServiceImpl.java index afa08b036..5e019199b 100644 --- a/server/api-service/lowcoder-server/src/main/java/org/lowcoder/api/home/UserHomeApiServiceImpl.java +++ b/server/api-service/lowcoder-server/src/main/java/org/lowcoder/api/home/UserHomeApiServiceImpl.java @@ -568,6 +568,9 @@ private Mono buildView(Application application, ResourceRol .applicationGid(application.getGid()) .orgId(application.getOrganizationId()) .name(application.getName()) + .title(application.getTitle()) + .description(application.getDescription()) + .category(application.getCategory()) .createBy(Optional.ofNullable(userMap.get(application.getCreatedBy())) .map(User::getName) .orElse("")) From d3b3de9e5818641abfe04cd9bd8d34049ff214e0 Mon Sep 17 00:00:00 2001 From: Thomasr Date: Mon, 16 Dec 2024 14:18:24 -0500 Subject: [PATCH 28/88] Add icon, published, publishedVersion, lastPublishedTime field to the application list api --- .../domain/application/model/Application.java | 93 +++++++++++-------- .../application/view/ApplicationInfoView.java | 7 ++ .../api/home/UserHomeApiServiceImpl.java | 87 ++++++++++------- 3 files changed, 115 insertions(+), 72 deletions(-) diff --git a/server/api-service/lowcoder-domain/src/main/java/org/lowcoder/domain/application/model/Application.java b/server/api-service/lowcoder-domain/src/main/java/org/lowcoder/domain/application/model/Application.java index 4760dbfdf..883e4b9d3 100644 --- a/server/api-service/lowcoder-domain/src/main/java/org/lowcoder/domain/application/model/Application.java +++ b/server/api-service/lowcoder-domain/src/main/java/org/lowcoder/domain/application/model/Application.java @@ -164,43 +164,62 @@ public Map getEditingApplicationDSL() { return dsl; } - public String getCategory() { - var liveDSL = getLiveApplicationDsl(); - if(liveDSL == null || liveDSL.get("settings") == null) return ""; - Object settingsObject = liveDSL.get("settings"); - if (settingsObject instanceof Map) { - @SuppressWarnings("unchecked") - Map settings = (Map) liveDSL.get("settings"); - return (String) settings.get("category"); - } else { - return ""; - } - } - - public String getTitle() { - var liveDSL = getLiveApplicationDsl(); - if(liveDSL == null || liveDSL.get("settings") == null) return ""; - Object settingsObject = liveDSL.get("settings"); - if (settingsObject instanceof Map) { - @SuppressWarnings("unchecked") - Map settings = (Map) liveDSL.get("settings"); - return (String) settings.get("title"); - } else { - return ""; - } - } - - public String getDescription() { - var liveDSL = getLiveApplicationDsl(); - if(liveDSL == null || liveDSL.get("settings") == null) return ""; - Object settingsObject = liveDSL.get("settings"); - if (settingsObject instanceof Map) { - @SuppressWarnings("unchecked") - Map settings = (Map) liveDSL.get("settings"); - return (String) settings.get("description"); - } else { - return ""; - } + public Mono getCategory(ApplicationRecordService applicationRecordService) { + return getLiveApplicationDsl(applicationRecordService).map(liveDSL -> { + if (liveDSL == null || liveDSL.get("settings") == null) return ""; + Object settingsObject = liveDSL.get("settings"); + if (settingsObject instanceof Map) { + @SuppressWarnings("unchecked") + Map settings = (Map) liveDSL.get("settings"); + return (String) settings.get("category"); + } else { + return ""; + } + }); + } + + public Mono getTitle(ApplicationRecordService applicationRecordService) { + return getLiveApplicationDsl(applicationRecordService).map(liveDSL -> { + if (liveDSL == null || liveDSL.get("settings") == null) return ""; + Object settingsObject = liveDSL.get("settings"); + if (settingsObject instanceof Map) { + @SuppressWarnings("unchecked") + Map settings = (Map) liveDSL.get("settings"); + return (String) settings.get("title"); + } else { + return ""; + } + }); + } + + public Mono getDescription(ApplicationRecordService applicationRecordService) { + return getLiveApplicationDsl(applicationRecordService).map(liveDSL -> { + if (liveDSL == null || liveDSL.get("settings") == null) return ""; + Object settingsObject = liveDSL.get("settings"); + if (settingsObject instanceof Map) { + @SuppressWarnings("unchecked") + Map settings = (Map) liveDSL.get("settings"); + return (String) settings.get("description"); + } else { + return ""; + } + } + ); + } + + public Mono getIcon(ApplicationRecordService applicationRecordService) { + return getLiveApplicationDsl(applicationRecordService).map(liveDSL -> { + if (liveDSL == null || liveDSL.get("settings") == null) return ""; + Object settingsObject = liveDSL.get("settings"); + if (settingsObject instanceof Map) { + @SuppressWarnings("unchecked") + Map settings = (Map) liveDSL.get("settings"); + return (String) settings.get("icon"); + } else { + return ""; + } + } + ); } public Map getEditingApplicationDSLOrNull() {return editingApplicationDSL; } diff --git a/server/api-service/lowcoder-server/src/main/java/org/lowcoder/api/application/view/ApplicationInfoView.java b/server/api-service/lowcoder-server/src/main/java/org/lowcoder/api/application/view/ApplicationInfoView.java index 5270625ab..c8d8bfd1b 100644 --- a/server/api-service/lowcoder-server/src/main/java/org/lowcoder/api/application/view/ApplicationInfoView.java +++ b/server/api-service/lowcoder-server/src/main/java/org/lowcoder/api/application/view/ApplicationInfoView.java @@ -47,6 +47,13 @@ public class ApplicationInfoView { private final String description; @JsonInclude(Include.NON_NULL) private final String category; + @JsonInclude(Include.NON_NULL) + private final String icon; + private final boolean published; + @JsonInclude(Include.NON_NULL) + private final String publishedVersion; + @JsonInclude(Include.NON_NULL) + private final Instant lastPublishedTime; public long getLastViewTime() { return lastViewTime == null ? 0 : lastViewTime.toEpochMilli(); diff --git a/server/api-service/lowcoder-server/src/main/java/org/lowcoder/api/home/UserHomeApiServiceImpl.java b/server/api-service/lowcoder-server/src/main/java/org/lowcoder/api/home/UserHomeApiServiceImpl.java index 5e019199b..ce20a0c17 100644 --- a/server/api-service/lowcoder-server/src/main/java/org/lowcoder/api/home/UserHomeApiServiceImpl.java +++ b/server/api-service/lowcoder-server/src/main/java/org/lowcoder/api/home/UserHomeApiServiceImpl.java @@ -12,6 +12,7 @@ import org.lowcoder.api.usermanagement.view.OrgAndVisitorRoleView; import org.lowcoder.api.usermanagement.view.UserProfileView; import org.lowcoder.domain.application.model.Application; +import org.lowcoder.domain.application.model.ApplicationRecord; import org.lowcoder.domain.application.model.ApplicationStatus; import org.lowcoder.domain.application.model.ApplicationType; import org.lowcoder.domain.application.service.ApplicationRecordService; @@ -35,7 +36,9 @@ import org.lowcoder.domain.user.service.UserService; import org.lowcoder.domain.user.service.UserStatusService; import org.lowcoder.infra.util.NetworkUtils; +import org.lowcoder.infra.util.TupleUtils; import org.lowcoder.sdk.config.CommonConfig; +import org.lowcoder.sdk.models.VersionedModel; import org.springframework.stereotype.Component; import org.springframework.web.server.ServerWebExchange; import reactor.core.publisher.Flux; @@ -203,11 +206,13 @@ public Flux getAllAuthorisedApplications4CurrentOrgMember(@ return applicationService.findByOrganizationIdWithDsl(currentOrgId); } return applicationService.findByOrganizationIdWithoutDsl(currentOrgId); - }) - .filter(application -> (isNull(applicationType) || applicationType == ApplicationType.ALL || application.getApplicationType() == applicationType.getValue()) - && (isNull(applicationStatus) || application.getApplicationStatus() == applicationStatus) - && (isNull(name) || StringUtils.containsIgnoreCase(application.getName(), name)) - && (isNull(category) || StringUtils.containsIgnoreCase(application.getCategory(), category))) + }).flatMap(application -> application.getCategory(applicationRecordService) + .map(categoryValue -> Map.entry(application, categoryValue))) + .filter(entry -> (isNull(applicationType) || applicationType == ApplicationType.ALL || entry.getKey().getApplicationType() == applicationType.getValue()) + && (isNull(applicationStatus) || entry.getKey().getApplicationStatus() == applicationStatus) + && (isNull(name) || StringUtils.containsIgnoreCase(entry.getKey().getName(), name)) + && (isNull(category) || StringUtils.containsIgnoreCase(entry.getValue(), category))) + .map(Map.Entry::getKey) .cache() .collectList() .flatMapIterable(Function.identity()); @@ -563,36 +568,48 @@ public Flux getAllAgencyProfileBundles() { private Mono buildView(Application application, ResourceRole maxRole, Map userMap, @Nullable Instant lastViewTime, Long bundlePosition, boolean withContainerSize) { - ApplicationInfoViewBuilder applicationInfoViewBuilder = ApplicationInfoView.builder() - .applicationId(application.getId()) - .applicationGid(application.getGid()) - .orgId(application.getOrganizationId()) - .name(application.getName()) - .title(application.getTitle()) - .description(application.getDescription()) - .category(application.getCategory()) - .createBy(Optional.ofNullable(userMap.get(application.getCreatedBy())) - .map(User::getName) - .orElse("")) - .createAt(application.getCreatedAt().toEpochMilli()) - .role(maxRole.getValue()) - .applicationType(application.getApplicationType()) - .applicationStatus(application.getApplicationStatus()) - .lastModifyTime(application.getUpdatedAt()) - .lastViewTime(lastViewTime) - .lastEditedAt(application.getLastEditedAt()) - .publicToAll(application.isPublicToAll()) - .publicToMarketplace(application.isPublicToMarketplace()) - .agencyProfile(application.agencyProfile()); - if (withContainerSize) { - return application.getLiveContainerSize(applicationRecordService).map(size -> applicationInfoViewBuilder - .containerSize(size) - .build()) - .switchIfEmpty(Mono.just(applicationInfoViewBuilder - .containerSize(null) - .build())); - } - return Mono.just(applicationInfoViewBuilder.build()); + return application.getTitle(applicationRecordService) + .zipWith(application.getDescription(applicationRecordService)) + .zipWith(application.getCategory(applicationRecordService), TupleUtils::merge) + .zipWith(application.getIcon(applicationRecordService), TupleUtils::merge) + .zipWith(applicationRecordService.getLatestRecordByApplicationId(application.getId()).map(Optional::of).switchIfEmpty(Mono.just(Optional.empty())), TupleUtils::merge) + .flatMap(tuple -> { + Optional lastAppRecord = tuple.getT5(); + ApplicationInfoView.ApplicationInfoViewBuilder applicationInfoViewBuilder = ApplicationInfoView.builder() + .applicationId(application.getId()) + .applicationGid(application.getGid()) + .orgId(application.getOrganizationId()) + .name(application.getName()) + .title(tuple.getT1()) + .description(tuple.getT2()) + .category(tuple.getT3()) + .icon(tuple.getT4()) + .published(lastAppRecord.isPresent()) + .publishedVersion(lastAppRecord.map(ApplicationRecord::version).orElse(null)) + .lastPublishedTime(lastAppRecord.map(ApplicationRecord::getCreatedAt).orElse(null)) + .createBy(Optional.ofNullable(userMap.get(application.getCreatedBy())) + .map(User::getName) + .orElse("")) + .createAt(application.getCreatedAt().toEpochMilli()) + .role(maxRole.getValue()) + .applicationType(application.getApplicationType()) + .applicationStatus(application.getApplicationStatus()) + .lastModifyTime(application.getUpdatedAt()) + .lastViewTime(lastViewTime) + .lastEditedAt(application.getLastEditedAt()) + .publicToAll(application.isPublicToAll()) + .publicToMarketplace(application.isPublicToMarketplace()) + .agencyProfile(application.agencyProfile()); + if (withContainerSize) { + return application.getLiveContainerSize(applicationRecordService).map(size -> applicationInfoViewBuilder + .containerSize(size) + .build()) + .switchIfEmpty(Mono.just(applicationInfoViewBuilder + .containerSize(null) + .build())); + } + return Mono.just(applicationInfoViewBuilder.build()); + }); } } From 936d3b6ca565f9c37e875d401b8f44d57678ebdf Mon Sep 17 00:00:00 2001 From: Thomasr Date: Mon, 16 Dec 2024 14:29:04 -0500 Subject: [PATCH 29/88] null error on map --- .../java/org/lowcoder/domain/application/model/Application.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/server/api-service/lowcoder-domain/src/main/java/org/lowcoder/domain/application/model/Application.java b/server/api-service/lowcoder-domain/src/main/java/org/lowcoder/domain/application/model/Application.java index 883e4b9d3..0c7d9aae0 100644 --- a/server/api-service/lowcoder-domain/src/main/java/org/lowcoder/domain/application/model/Application.java +++ b/server/api-service/lowcoder-domain/src/main/java/org/lowcoder/domain/application/model/Application.java @@ -219,7 +219,7 @@ public Mono getIcon(ApplicationRecordService applicationRecordService) { return ""; } } - ); + ).onErrorReturn(""); } public Map getEditingApplicationDSLOrNull() {return editingApplicationDSL; } From 470776b7e37212384ff59ebac5351b3c8527d0f3 Mon Sep 17 00:00:00 2001 From: martkaczmarek <31852710+martkaczmarek@users.noreply.github.com> Date: Wed, 11 Dec 2024 11:52:25 +0100 Subject: [PATCH 30/88] Add healthchecks to docker-compose-multi.yaml Added healthchecks and conditions for dependant containers to start only when container's healthy state is confirmed --- deploy/docker/docker-compose-multi.yaml | 56 ++++++++++++++++++++++--- 1 file changed, 50 insertions(+), 6 deletions(-) diff --git a/deploy/docker/docker-compose-multi.yaml b/deploy/docker/docker-compose-multi.yaml index 6e79ebea3..63bbf421d 100644 --- a/deploy/docker/docker-compose-multi.yaml +++ b/deploy/docker/docker-compose-multi.yaml @@ -1,4 +1,3 @@ -version: "3" services: ## @@ -14,11 +13,30 @@ services: volumes: - ./lowcoder-stacks/data/mongodb:/data/db restart: unless-stopped + healthcheck: # https://github.com/rodrigobdz/docker-compose-healthchecks?tab=readme-ov-file#mongo + test: + [ + "CMD", + "mongosh", + "--quiet", + "127.0.0.1/test", + "--eval", + "'quit(db.runCommand({ ping: 1 }).ok ? 0 : 2)'", + ] + interval: 5s + timeout: 10s + retries: 10 + start_period: 40s redis: image: redis:7-alpine container_name: redis restart: unless-stopped + healthcheck: # https://stackoverflow.com/a/71504657 + test: ["CMD-SHELL", "redis-cli ping | grep PONG"] + interval: 1s + timeout: 3s + retries: 10 ## @@ -82,11 +100,20 @@ services: LOWCODER_SUPERUSER_PASSWORD: restart: unless-stopped depends_on: - - mongodb - - redis + mongodb: + condition: service_healthy + restart: true + redis: + condition: service_healthy + restart: true volumes: - ./lowcoder-stacks:/lowcoder-stacks - ./lowcoder-stacks/assets:/lowcoder/assets + healthcheck: #https://stackoverflow.com/questions/71101967/how-should-i-use-grep-in-docker-compose-healthcheck + test: curl -sS http://lowcoder-api-service:8080 | grep -c "Lowcoder API is up and runnig" > /dev/null + interval: 3s + timeout: 5s + retries: 10 lowcoder-node-service: @@ -101,7 +128,14 @@ services: LOWCODER_API_SERVICE_URL: "http://lowcoder-api-service:8080" restart: unless-stopped depends_on: - - lowcoder-api-service + lowcoder-api-service: + condition: service_healthy + restart: true + healthcheck: #https://stackoverflow.com/questions/71101967/how-should-i-use-grep-in-docker-compose-healthcheck + test: curl -sS http://lowcoder-node-service:6060 | grep -c "Lowcoder Node Service is up and running" > /dev/null + interval: 3s + timeout: 5s + retries: 10 ## ## Start Lowcoder web frontend @@ -120,8 +154,18 @@ services: LOWCODER_NODE_SERVICE_URL: "http://lowcoder-node-service:6060" restart: unless-stopped depends_on: - - lowcoder-node-service - - lowcoder-api-service + lowcoder-node-service: + condition: service_healthy + restart: true + lowcoder-api-service: + condition: service_healthy + restart: true volumes: - ./lowcoder-stacks/assets:/lowcoder/assets + healthcheck: + test: curl --fail http://lowcoder-frontend:3000 || exit 1 + interval: 5s + retries: 10 + start_period: 10s + timeout: 10s From 359885461a5861bb65bc166730f70e598ed7e22e Mon Sep 17 00:00:00 2001 From: martkaczmarek <31852710+martkaczmarek@users.noreply.github.com> Date: Wed, 11 Dec 2024 12:16:31 +0100 Subject: [PATCH 31/88] Update docker compose syntax to Compose V2 Update docker compose syntax to Compose V2 --- docs/.gitbook/assets/upgrade-mongo-4x-to-5x.yaml | 1 - docs/.gitbook/assets/upgrade-mongo-5x-to-6x.yaml | 1 - docs/.gitbook/assets/upgrade-mongo-6x-to-7x.yaml | 1 - docs/setup-and-run/self-hosting/README.md | 16 ++++++++-------- .../self-hosting/lowcoder-version-update.md | 8 ++++---- .../self-hosting/migration-from-openblocks.md | 8 ++++---- .../self-hosting/update-mongodb-versions.md | 14 +++++++------- 7 files changed, 23 insertions(+), 26 deletions(-) diff --git a/docs/.gitbook/assets/upgrade-mongo-4x-to-5x.yaml b/docs/.gitbook/assets/upgrade-mongo-4x-to-5x.yaml index 6eb2593b0..86f3fa110 100644 --- a/docs/.gitbook/assets/upgrade-mongo-4x-to-5x.yaml +++ b/docs/.gitbook/assets/upgrade-mongo-4x-to-5x.yaml @@ -1,4 +1,3 @@ -version: "3" services: ## diff --git a/docs/.gitbook/assets/upgrade-mongo-5x-to-6x.yaml b/docs/.gitbook/assets/upgrade-mongo-5x-to-6x.yaml index ba270f6ba..ed0d4aa2e 100644 --- a/docs/.gitbook/assets/upgrade-mongo-5x-to-6x.yaml +++ b/docs/.gitbook/assets/upgrade-mongo-5x-to-6x.yaml @@ -1,4 +1,3 @@ -version: "3" services: ## diff --git a/docs/.gitbook/assets/upgrade-mongo-6x-to-7x.yaml b/docs/.gitbook/assets/upgrade-mongo-6x-to-7x.yaml index 92ea70420..d76a1a908 100644 --- a/docs/.gitbook/assets/upgrade-mongo-6x-to-7x.yaml +++ b/docs/.gitbook/assets/upgrade-mongo-6x-to-7x.yaml @@ -1,4 +1,3 @@ -version: "3" services: ## diff --git a/docs/setup-and-run/self-hosting/README.md b/docs/setup-and-run/self-hosting/README.md index f5bf14e39..e0af49869 100644 --- a/docs/setup-and-run/self-hosting/README.md +++ b/docs/setup-and-run/self-hosting/README.md @@ -1,6 +1,6 @@ # Self-hosting -In this article, you will be guided through how to host Lowcoder on your own server using Docker-Compose or Docker. +In this article, you will be guided through how to host Lowcoder on your own server using Docker Compose or Docker. There are multiple ways of installation. We directly support: @@ -22,7 +22,7 @@ For easy setup and deployment, we provide an [all-in-one image](https://hub.dock #### Prerequisites * [Docker](https://docs.docker.com/get-docker/) (version 20.10.7 or above) -* [Docker-Compose](https://docs.docker.com/compose/install/) (version 1.29.2 or above) +* [Docker Compose](https://docs.docker.com/compose/install/) (version 1.29.2 or above) {% hint style="info" %} Recommended system spec: 1-core CPU and 2 GB RAM. @@ -40,7 +40,7 @@ cd lowcoder #### Deploy {% tabs %} -{% tab title="Docker-Compose (Recommended)" %} +{% tab title="Docker Compose (Recommended)" %} Follow the steps below: 1. Download the configuration file by clicking [docker-compose.yml](https://github.com/lowcoder-org/lowcoder/blob/main/deploy/docker/docker-compose.yaml) or running the curl command: @@ -54,7 +54,7 @@ curl https://raw.githubusercontent.com/lowcoder-org/lowcoder/main/deploy/docker/ 2. Start the Docker container by running this command: ```bash - docker-compose up -d + docker compose up -d ``` \ @@ -85,13 +85,13 @@ docker run -d --name lowcoder -p 3000:3000 -v "$PWD/stacks:/lowcoder-stacks" low #### Update to the latest version {% tabs %} -{% tab title="Docker-Compose" %} +{% tab title="Docker Compose" %} Run the following commands to update to the latest Lowcoder image: ```bash -docker-compose pull -docker-compose rm -fsv lowcoder -docker-compose up -d +docker compose pull +docker compose rm -fsv lowcoder +docker compose up -d ``` {% endtab %} diff --git a/docs/setup-and-run/self-hosting/lowcoder-version-update.md b/docs/setup-and-run/self-hosting/lowcoder-version-update.md index 43c25022c..5833a1f8c 100644 --- a/docs/setup-and-run/self-hosting/lowcoder-version-update.md +++ b/docs/setup-and-run/self-hosting/lowcoder-version-update.md @@ -75,11 +75,11 @@ With Docker Compose {% tabs %} {% tab title="All-in-one Docker image" %} -`docker-compose down` +`docker compose down` {% endtab %} {% tab title="Multi-Image Deployment" %} -`docker-compose -f docker-compose-multi.yaml down` +`docker compose -f docker-compose-multi.yaml down` {% endtab %} {% endtabs %} @@ -141,11 +141,11 @@ Mind to re-connect (mount) the /lowcoder-stacks folder {% tabs %} {% tab title="All-in-one Docker image" %} -`docker-compose up -d` +`docker compose up -d` {% endtab %} {% tab title="Multi-Image Deployment" %} -`docker-compose -f docker-compose-multi.yaml up -d` +`docker compose -f docker-compose-multi.yaml up -d` {% endtab %} {% endtabs %} diff --git a/docs/setup-and-run/self-hosting/migration-from-openblocks.md b/docs/setup-and-run/self-hosting/migration-from-openblocks.md index c1f1bfc94..f89ee2772 100644 --- a/docs/setup-and-run/self-hosting/migration-from-openblocks.md +++ b/docs/setup-and-run/self-hosting/migration-from-openblocks.md @@ -15,11 +15,11 @@ if not using Lowcoder v1.1.8 or the latest Openblocks released version (v1.1.8), {% tabs %} {% tab title="All-in-one Docker image" %} -`docker-compose down` +`docker compose down` {% endtab %} {% tab title="Multi-Image Deployment" %} -`docker-compose -f docker-compose-multi.yaml down` +`docker compose -f docker-compose-multi.yaml down` {% endtab %} {% endtabs %} @@ -49,10 +49,10 @@ MONGODB_URL: {% tabs %} {% tab title="All-in-one Docker image" %} -`docker-compose up -d` +`docker compose up -d` {% endtab %} {% tab title="Multi-Image Deployment" %} -`docker-compose -f docker-compose-multi.yaml up -d` +`docker compose -f docker-compose-multi.yaml up -d` {% endtab %} {% endtabs %} diff --git a/docs/setup-and-run/self-hosting/update-mongodb-versions.md b/docs/setup-and-run/self-hosting/update-mongodb-versions.md index 1958931c3..f62a43786 100644 --- a/docs/setup-and-run/self-hosting/update-mongodb-versions.md +++ b/docs/setup-and-run/self-hosting/update-mongodb-versions.md @@ -17,7 +17,7 @@ Suppose you currently run v4 and want to update to v7- these are the necessary s Stop your Lowcoder instance and wait for it to completely stop the service. ```bash -docker-compose down +docker compose down ``` ### 2) Create a Backup Copy of the **lowcoder-stacks** folder @@ -33,7 +33,7 @@ Update MongoDB from v4 to v5 {% endfile %} ```bash -docker-compose -f upgrade-mongo-4x-to-5x.yaml up -d && sleep 30 +docker compose -f upgrade-mongo-4x-to-5x.yaml up -d && sleep 30 ``` ### 4) Set MongoDB Compatibility-Version to 5 @@ -45,7 +45,7 @@ docker exec mongodb-5 /usr/bin/mongosh --eval 'use admin' --eval 'db.adminComman ### 5) Stop and remove MongoDB 5 Update-Container ```bash -docker-compose -f upgrade-mongo-4x-to-5x.yaml down +docker compose -f upgrade-mongo-4x-to-5x.yaml down ``` ### 6) Run upgrade-mongo-5x-to-6x docker compose file @@ -55,7 +55,7 @@ Update MongoDB from v5 to v6 {% endfile %} ```bash -docker-compose -f upgrade-mongo-5x-to-6x.yaml up -d && sleep 30 +docker compose -f upgrade-mongo-5x-to-6x.yaml up -d && sleep 30 ``` ### 7) Set MongoDB Compatibility-Version to 6 @@ -67,7 +67,7 @@ docker exec mongodb-6 /usr/bin/mongosh --eval 'use admin' --eval 'db.adminComman ### 8) Stop and remove MongoDB 6 Update-Container ```bash -docker-compose -f upgrade-mongo-5x-to-6x.yaml down +docker compose -f upgrade-mongo-5x-to-6x.yaml down ``` ### 9) Run upgrade-mongo-6x-to-7x docker compose file @@ -77,13 +77,13 @@ Update MongoDB from v6 to v7 {% endfile %} ```bash -docker-compose -f upgrade-mongo-6x-to-7x.yaml up -d && sleep 30 +docker compose -f upgrade-mongo-6x-to-7x.yaml up -d && sleep 30 ``` ### 10) Stop and remove MongoDB 7 Update-Container ```bash -docker-compose -f upgrade-mongo-6x-to-7x.yaml down +docker compose -f upgrade-mongo-6x-to-7x.yaml down ``` As result your MongoDB is now updated to Version 7 without Data loss. From d19d2fbf2779daa2bc461b14b1bf47e8a70ef916 Mon Sep 17 00:00:00 2001 From: Thomasr Date: Tue, 17 Dec 2024 03:40:44 -0500 Subject: [PATCH 32/88] Fixed null error on mysql --- .../org/lowcoder/plugin/sql/GeneralSqlExecutor.java | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/server/api-service/lowcoder-plugins/sqlBasedPlugin/src/main/java/org/lowcoder/plugin/sql/GeneralSqlExecutor.java b/server/api-service/lowcoder-plugins/sqlBasedPlugin/src/main/java/org/lowcoder/plugin/sql/GeneralSqlExecutor.java index a5cba98f3..d4b202c1b 100644 --- a/server/api-service/lowcoder-plugins/sqlBasedPlugin/src/main/java/org/lowcoder/plugin/sql/GeneralSqlExecutor.java +++ b/server/api-service/lowcoder-plugins/sqlBasedPlugin/src/main/java/org/lowcoder/plugin/sql/GeneralSqlExecutor.java @@ -232,9 +232,13 @@ private List getGeneratedIds(ResultSet generatedKeys) throws SQLExceptio private void bindParam(int bindIndex, Object value, PreparedStatement preparedStatement, String bindKeyName) throws SQLException { if (value == null) { - ParameterMetaData parameterMetaData = preparedStatement.getParameterMetaData(); - int paramType = parameterMetaData.getParameterType(bindIndex); - preparedStatement.setNull(bindIndex, paramType); + try { + ParameterMetaData parameterMetaData = preparedStatement.getParameterMetaData(); + int paramType = parameterMetaData.getParameterType(bindIndex); + preparedStatement.setNull(bindIndex, paramType); + } catch(Exception e) { + preparedStatement.setNull(bindIndex, java.sql.Types.NULL); + } return; } if (value instanceof Integer intValue) { From 06a50a3f45861c77de8185fa3fb9e604dfa6677e Mon Sep 17 00:00:00 2001 From: FalkWolsky Date: Tue, 17 Dec 2024 14:26:44 +0100 Subject: [PATCH 33/88] Increasing Version numbers as preparation for release --- client/packages/lowcoder-comps/package.json | 2 +- client/packages/lowcoder-sdk/package.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/client/packages/lowcoder-comps/package.json b/client/packages/lowcoder-comps/package.json index 9570cd895..882a0267e 100644 --- a/client/packages/lowcoder-comps/package.json +++ b/client/packages/lowcoder-comps/package.json @@ -1,6 +1,6 @@ { "name": "lowcoder-comps", - "version": "2.5.1", + "version": "2.5.2", "type": "module", "license": "MIT", "dependencies": { diff --git a/client/packages/lowcoder-sdk/package.json b/client/packages/lowcoder-sdk/package.json index 8b621a8e8..dcd012e28 100644 --- a/client/packages/lowcoder-sdk/package.json +++ b/client/packages/lowcoder-sdk/package.json @@ -1,6 +1,6 @@ { "name": "lowcoder-sdk", - "version": "2.5.1", + "version": "2.5.2", "type": "module", "files": [ "src", From 7076c14fb823e2973e3eb7fea47b3f99e9eab61d Mon Sep 17 00:00:00 2001 From: Thomasr Date: Tue, 17 Dec 2024 09:31:01 -0500 Subject: [PATCH 34/88] Add mising test case and migration --- .../lowcoder/runner/migrations/DatabaseChangelog.java | 4 ++++ .../api/application/ApplicationApiServiceTest.java | 10 +++++++++- 2 files changed, 13 insertions(+), 1 deletion(-) diff --git a/server/api-service/lowcoder-server/src/main/java/org/lowcoder/runner/migrations/DatabaseChangelog.java b/server/api-service/lowcoder-server/src/main/java/org/lowcoder/runner/migrations/DatabaseChangelog.java index e502dbedc..b0b6175e4 100644 --- a/server/api-service/lowcoder-server/src/main/java/org/lowcoder/runner/migrations/DatabaseChangelog.java +++ b/server/api-service/lowcoder-server/src/main/java/org/lowcoder/runner/migrations/DatabaseChangelog.java @@ -451,6 +451,10 @@ public void publishedToRecord(MongockTemplate mongoTemplate, CommonConfig common mongoTemplate.insert(record); } } + @ChangeSet(order = "029", id = "add-tag-index-to-record", author = "Thomas") + public void addTagIndexToRecord(MongockTemplate mongoTemplate, CommonConfig commonConfig) { + ensureIndexes(mongoTemplate, ApplicationRecord.class, makeIndex("applicationId", "tag").unique()); + } private void addGidField(MongockTemplate mongoTemplate, String collectionName) { // Create a query to match all documents diff --git a/server/api-service/lowcoder-server/src/test/java/org/lowcoder/api/application/ApplicationApiServiceTest.java b/server/api-service/lowcoder-server/src/test/java/org/lowcoder/api/application/ApplicationApiServiceTest.java index ede7ed95a..80558c670 100644 --- a/server/api-service/lowcoder-server/src/test/java/org/lowcoder/api/application/ApplicationApiServiceTest.java +++ b/server/api-service/lowcoder-server/src/test/java/org/lowcoder/api/application/ApplicationApiServiceTest.java @@ -179,7 +179,7 @@ public void testPublishApplication() { .assertNext(applicationView -> Assertions.assertEquals(Map.of("comp", "list"), applicationView.getApplicationDSL())) .verifyComplete(); - // publish + // publish 2 applicationIdMono = applicationIdMono .delayUntil(id -> applicationApiService.publish(id, new ApplicationPublishRequest("Test Publish 2", "2.0.0"))).cache(); @@ -192,6 +192,14 @@ public void testPublishApplication() { StepVerifier.create(applicationIdMono.flatMap(id -> applicationApiService.getPublishedApplication(id, ApplicationRequestType.PUBLIC_TO_ALL))) .assertNext(applicationView -> Assertions.assertEquals(Map.of("comp", "table"), applicationView.getApplicationDSL())) .verifyComplete(); + + // publish 3 + applicationIdMono = applicationIdMono + .delayUntil(id -> applicationApiService.publish(id, new ApplicationPublishRequest("Same tag", "2.0.0"))).cache(); + + // Error + StepVerifier.create(applicationIdMono) + .verifyError(); } @Test From c6370392a6f20f1b19ea2fb523a5559b6c1011ef Mon Sep 17 00:00:00 2001 From: Thomasr Date: Thu, 19 Dec 2024 00:53:54 -0500 Subject: [PATCH 35/88] Fixed cors issue for npm repository api --- .../java/org/lowcoder/api/npm/PrivateNpmRegistryController.java | 1 - 1 file changed, 1 deletion(-) diff --git a/server/api-service/lowcoder-server/src/main/java/org/lowcoder/api/npm/PrivateNpmRegistryController.java b/server/api-service/lowcoder-server/src/main/java/org/lowcoder/api/npm/PrivateNpmRegistryController.java index 9e967605c..5540a2e89 100644 --- a/server/api-service/lowcoder-server/src/main/java/org/lowcoder/api/npm/PrivateNpmRegistryController.java +++ b/server/api-service/lowcoder-server/src/main/java/org/lowcoder/api/npm/PrivateNpmRegistryController.java @@ -79,7 +79,6 @@ private Mono> forwardToNodeService(String applicationId .toEntity(Resource.class) .map(response -> ResponseEntity .status(response.getStatusCode()) - .headers(response.getHeaders()) .body(response.getBody()) ); })); From 0bd9122bd0427dcec9186a2b40829f7a75691f16 Mon Sep 17 00:00:00 2001 From: Imiss-U1025 Date: Fri, 6 Dec 2024 03:12:13 -0500 Subject: [PATCH 36/88] Added opacity in Funnel Chart. --- .../src/comps/funnelChartComp/funnelChartConstants.tsx | 5 +++-- .../src/comps/funnelChartComp/funnelChartPropertyView.tsx | 1 + .../src/comps/funnelChartComp/funnelChartUtils.ts | 3 +++ client/packages/lowcoder-comps/src/i18n/comps/locales/en.ts | 3 +++ 4 files changed, 10 insertions(+), 2 deletions(-) diff --git a/client/packages/lowcoder-comps/src/comps/funnelChartComp/funnelChartConstants.tsx b/client/packages/lowcoder-comps/src/comps/funnelChartComp/funnelChartConstants.tsx index 0475493b0..fa30ded9a 100644 --- a/client/packages/lowcoder-comps/src/comps/funnelChartComp/funnelChartConstants.tsx +++ b/client/packages/lowcoder-comps/src/comps/funnelChartComp/funnelChartConstants.tsx @@ -30,7 +30,7 @@ import { ScatterChartConfig } from "../chartComp/chartConfigs/scatterChartConfig import { SeriesListComp } from "../chartComp/seriesComp"; import { EChartsOption } from "echarts"; import { i18nObjs, trans } from "i18n/comps"; -import { FunnelChartConfig } from "../chartComp/chartConfigs/funnelChartConfig"; +import { FunnelChartConfig} from "../chartComp/chartConfigs/funnelChartConfig"; import { EchartsTitleConfig } from "comps/chartComp/chartConfigs/echartsTitleConfig"; export const ChartTypeOptions = [ @@ -265,7 +265,8 @@ let chartJsonModeChildren: any = { width:withDefault(NumberControl,trans('funnelChart.defaultWidth')), min:withDefault(NumberControl,trans('funnelChart.defaultMin')), max:withDefault(NumberControl,trans('funnelChart.defaultMax')), - gap:withDefault(NumberControl,trans('funnelChart.defaultGap')) + gap:withDefault(NumberControl,trans('funnelChart.defaultGap')), + opacity:withDefault(NumberControl,trans('funnelChart.defaultOpacity')) } if (EchartsStyle) { chartJsonModeChildren = { diff --git a/client/packages/lowcoder-comps/src/comps/funnelChartComp/funnelChartPropertyView.tsx b/client/packages/lowcoder-comps/src/comps/funnelChartComp/funnelChartPropertyView.tsx index 38171e34e..a99314977 100644 --- a/client/packages/lowcoder-comps/src/comps/funnelChartComp/funnelChartPropertyView.tsx +++ b/client/packages/lowcoder-comps/src/comps/funnelChartComp/funnelChartPropertyView.tsx @@ -41,6 +41,7 @@ export function funnelChartPropertyView( {children.min.propertyView({ label: trans("funnelChart.min") })} {children.max.propertyView({ label: trans("funnelChart.max") })} {children.gap.propertyView({ label: trans("funnelChart.gap") })} + {children.opacity.propertyView({ label: trans("funnelChart.opacity") })} {children.echartsTitle.propertyView({ label: trans("funnelChart.title") })} {children.tooltip.propertyView({label: trans("funnelChart.tooltip")})} {children.label.propertyView({label: trans("funnelChart.label")})} diff --git a/client/packages/lowcoder-comps/src/comps/funnelChartComp/funnelChartUtils.ts b/client/packages/lowcoder-comps/src/comps/funnelChartComp/funnelChartUtils.ts index 2f2b814cc..238871956 100644 --- a/client/packages/lowcoder-comps/src/comps/funnelChartComp/funnelChartUtils.ts +++ b/client/packages/lowcoder-comps/src/comps/funnelChartComp/funnelChartUtils.ts @@ -161,6 +161,9 @@ export function getEchartsConfig( "min": props.min, "max": props.max, "gap": props.gap, + "itemStyle": { + "opacity": props.opacity + }, "label": { "show": props.label, "position": props.echartsLabelConfig.top diff --git a/client/packages/lowcoder-comps/src/i18n/comps/locales/en.ts b/client/packages/lowcoder-comps/src/i18n/comps/locales/en.ts index f8d5f77f7..94a8168db 100644 --- a/client/packages/lowcoder-comps/src/i18n/comps/locales/en.ts +++ b/client/packages/lowcoder-comps/src/i18n/comps/locales/en.ts @@ -80,6 +80,9 @@ export const en = { gap: 'Gap', defaultGap: '2', label:'Label', + opacity: 'Opacity', + defaultOpacity: '1', + }, gaugeChart: { title: 'Title', From 0b84762af96d09160d38b858f567ac48e3395204 Mon Sep 17 00:00:00 2001 From: Imiss-U1025 Date: Fri, 6 Dec 2024 09:45:31 -0500 Subject: [PATCH 37/88] Added funnel Align in Funnel Chart. --- .../chartConfigs/echartsFunnelAlignConfig.tsx | 48 +++++++++++++++++++ .../funnelChartComp/funnelChartConstants.tsx | 2 + .../funnelChartPropertyView.tsx | 1 + .../comps/funnelChartComp/funnelChartUtils.ts | 1 + .../src/i18n/comps/locales/en.ts | 1 + 5 files changed, 53 insertions(+) create mode 100644 client/packages/lowcoder-comps/src/comps/chartComp/chartConfigs/echartsFunnelAlignConfig.tsx diff --git a/client/packages/lowcoder-comps/src/comps/chartComp/chartConfigs/echartsFunnelAlignConfig.tsx b/client/packages/lowcoder-comps/src/comps/chartComp/chartConfigs/echartsFunnelAlignConfig.tsx new file mode 100644 index 000000000..d50733ef8 --- /dev/null +++ b/client/packages/lowcoder-comps/src/comps/chartComp/chartConfigs/echartsFunnelAlignConfig.tsx @@ -0,0 +1,48 @@ +import { + AlignClose, + AlignRight, + AlignLeft, + dropdownControl, + MultiCompBuilder, +} from "lowcoder-sdk"; +import {FunnelSeriesOption, LegendComponentOption} from "echarts"; +import { trans } from "i18n/comps"; + +const FunnelAlignOptions = [ + { + label: , + value: "center", + }, + { + label: , + value: "right", + }, + { + label: , + value: "left", + }, +] as const; + +export const EchartsFunnelAlignConfig = (function () { + return new MultiCompBuilder( + { + position: dropdownControl(FunnelAlignOptions, "center"), + }, + (props): FunnelSeriesOption => { + const config: FunnelSeriesOption = { + top: "center", + }; + config.top = props.position + return config; + } + ) + .setPropertyViewFn((children) => ( + <> + {children.position.propertyView({ + label: trans("echarts.funnelAlign"), + radioButton: true, + })} + + )) + .build(); +})(); diff --git a/client/packages/lowcoder-comps/src/comps/funnelChartComp/funnelChartConstants.tsx b/client/packages/lowcoder-comps/src/comps/funnelChartComp/funnelChartConstants.tsx index fa30ded9a..3f524330a 100644 --- a/client/packages/lowcoder-comps/src/comps/funnelChartComp/funnelChartConstants.tsx +++ b/client/packages/lowcoder-comps/src/comps/funnelChartComp/funnelChartConstants.tsx @@ -24,6 +24,7 @@ import { XAxisConfig, YAxisConfig } from "../chartComp/chartConfigs/cartesianAxi import { LegendConfig } from "../chartComp/chartConfigs/legendConfig"; import { EchartsLegendConfig } from "../chartComp/chartConfigs/echartsLegendConfig"; import { EchartsLabelConfig } from "../chartComp/chartConfigs/echartsLabelConfig"; +import { EchartsFunnelAlignConfig } from "../chartComp/chartConfigs/echartsFunnelAlignConfig"; import { LineChartConfig } from "../chartComp/chartConfigs/lineChartConfig"; import { PieChartConfig } from "../chartComp/chartConfigs/pieChartConfig"; import { ScatterChartConfig } from "../chartComp/chartConfigs/scatterChartConfig"; @@ -253,6 +254,7 @@ let chartJsonModeChildren: any = { echartsTitle: withDefault(StringControl, trans("funnelChart.defaultTitle")), echartsLegendConfig: EchartsLegendConfig, echartsLabelConfig: EchartsLabelConfig, + echartsFunnelAlignConfig: EchartsFunnelAlignConfig, echartsConfig: EchartsOptionComp, echartsTitleConfig:EchartsTitleConfig, // style: styleControl(EchartsStyle, 'style'), diff --git a/client/packages/lowcoder-comps/src/comps/funnelChartComp/funnelChartPropertyView.tsx b/client/packages/lowcoder-comps/src/comps/funnelChartComp/funnelChartPropertyView.tsx index a99314977..0cd9b1c75 100644 --- a/client/packages/lowcoder-comps/src/comps/funnelChartComp/funnelChartPropertyView.tsx +++ b/client/packages/lowcoder-comps/src/comps/funnelChartComp/funnelChartPropertyView.tsx @@ -33,6 +33,7 @@ export function funnelChartPropertyView( })} {children.legendVisibility.getView()&& children.echartsLegendConfig.getPropertyView()} {children.label.getView()&& children.echartsLabelConfig.getPropertyView()} + {children.echartsFunnelAlignConfig.getPropertyView()} {children.echartsTitleConfig.getPropertyView()} {children.left.propertyView({ label: trans("funnelChart.left") })} {children.top.propertyView({ label: trans("funnelChart.top") })} diff --git a/client/packages/lowcoder-comps/src/comps/funnelChartComp/funnelChartUtils.ts b/client/packages/lowcoder-comps/src/comps/funnelChartComp/funnelChartUtils.ts index 238871956..b4b60d0ab 100644 --- a/client/packages/lowcoder-comps/src/comps/funnelChartComp/funnelChartUtils.ts +++ b/client/packages/lowcoder-comps/src/comps/funnelChartComp/funnelChartUtils.ts @@ -161,6 +161,7 @@ export function getEchartsConfig( "min": props.min, "max": props.max, "gap": props.gap, + "funnelAlign": props.echartsFunnelAlignConfig.top, "itemStyle": { "opacity": props.opacity }, diff --git a/client/packages/lowcoder-comps/src/i18n/comps/locales/en.ts b/client/packages/lowcoder-comps/src/i18n/comps/locales/en.ts index 94a8168db..f0968a260 100644 --- a/client/packages/lowcoder-comps/src/i18n/comps/locales/en.ts +++ b/client/packages/lowcoder-comps/src/i18n/comps/locales/en.ts @@ -110,6 +110,7 @@ export const en = { legendPosition: "Legend Position", labelPosition: "Label Position", titlePosition: "Title Position", + funnelAlign: "Funnel Align" }, chart: { delete: "Delete", From f006f89b4cb48921174fd79e0f06edfcb9e62c04 Mon Sep 17 00:00:00 2001 From: Imiss-U1025 Date: Fri, 6 Dec 2024 10:20:21 -0500 Subject: [PATCH 38/88] Added sort in Funnel Chart --- .../chartConfigs/echartsFunnelAlignConfig.tsx | 8 ++-- .../chartConfigs/echartsSortingConfig.tsx | 43 +++++++++++++++++++ .../funnelChartComp/funnelChartConstants.tsx | 2 + .../funnelChartPropertyView.tsx | 1 + .../comps/funnelChartComp/funnelChartUtils.ts | 3 +- .../src/i18n/comps/locales/en.ts | 3 +- 6 files changed, 54 insertions(+), 6 deletions(-) create mode 100644 client/packages/lowcoder-comps/src/comps/chartComp/chartConfigs/echartsSortingConfig.tsx diff --git a/client/packages/lowcoder-comps/src/comps/chartComp/chartConfigs/echartsFunnelAlignConfig.tsx b/client/packages/lowcoder-comps/src/comps/chartComp/chartConfigs/echartsFunnelAlignConfig.tsx index d50733ef8..c10d38907 100644 --- a/client/packages/lowcoder-comps/src/comps/chartComp/chartConfigs/echartsFunnelAlignConfig.tsx +++ b/client/packages/lowcoder-comps/src/comps/chartComp/chartConfigs/echartsFunnelAlignConfig.tsx @@ -26,19 +26,19 @@ const FunnelAlignOptions = [ export const EchartsFunnelAlignConfig = (function () { return new MultiCompBuilder( { - position: dropdownControl(FunnelAlignOptions, "center"), + funnelAlign: dropdownControl(FunnelAlignOptions, "center"), }, (props): FunnelSeriesOption => { const config: FunnelSeriesOption = { - top: "center", + funnelAlign: "center", }; - config.top = props.position + config.funnelAlign = props.funnelAlign return config; } ) .setPropertyViewFn((children) => ( <> - {children.position.propertyView({ + {children.funnelAlign.propertyView({ label: trans("echarts.funnelAlign"), radioButton: true, })} diff --git a/client/packages/lowcoder-comps/src/comps/chartComp/chartConfigs/echartsSortingConfig.tsx b/client/packages/lowcoder-comps/src/comps/chartComp/chartConfigs/echartsSortingConfig.tsx new file mode 100644 index 000000000..8f53e7d8a --- /dev/null +++ b/client/packages/lowcoder-comps/src/comps/chartComp/chartConfigs/echartsSortingConfig.tsx @@ -0,0 +1,43 @@ +import { + AlignBottom, + AlignTop, + dropdownControl, + MultiCompBuilder, +} from "lowcoder-sdk"; +import {FunnelSeriesOption, LegendComponentOption} from "echarts"; +import { trans } from "i18n/comps"; + +const SortingOptions = [ + { + label: , + value: "descending", + }, + { + label: , + value: "ascending", + }, +] as const; + +export const EchartsSortingConfig = (function () { + return new MultiCompBuilder( + { + sort: dropdownControl(SortingOptions, "descending"), + }, + (props): FunnelSeriesOption => { + const config: FunnelSeriesOption = { + sort: "descending" + }; + config.sort = props.sort + return config; + } + ) + .setPropertyViewFn((children) => ( + <> + {children.sort.propertyView({ + label: trans("echarts.sort"), + radioButton: true, + })} + + )) + .build(); +})(); diff --git a/client/packages/lowcoder-comps/src/comps/funnelChartComp/funnelChartConstants.tsx b/client/packages/lowcoder-comps/src/comps/funnelChartComp/funnelChartConstants.tsx index 3f524330a..527af85ac 100644 --- a/client/packages/lowcoder-comps/src/comps/funnelChartComp/funnelChartConstants.tsx +++ b/client/packages/lowcoder-comps/src/comps/funnelChartComp/funnelChartConstants.tsx @@ -33,6 +33,7 @@ import { EChartsOption } from "echarts"; import { i18nObjs, trans } from "i18n/comps"; import { FunnelChartConfig} from "../chartComp/chartConfigs/funnelChartConfig"; import { EchartsTitleConfig } from "comps/chartComp/chartConfigs/echartsTitleConfig"; +import {EchartsSortingConfig} from "../chartComp/chartConfigs/echartsSortingConfig"; export const ChartTypeOptions = [ { @@ -253,6 +254,7 @@ let chartJsonModeChildren: any = { echartsOption: jsonControl(toObject, i18nObjs.defaultFunnelChartOption), echartsTitle: withDefault(StringControl, trans("funnelChart.defaultTitle")), echartsLegendConfig: EchartsLegendConfig, + echartsSortingConfig: EchartsSortingConfig, echartsLabelConfig: EchartsLabelConfig, echartsFunnelAlignConfig: EchartsFunnelAlignConfig, echartsConfig: EchartsOptionComp, diff --git a/client/packages/lowcoder-comps/src/comps/funnelChartComp/funnelChartPropertyView.tsx b/client/packages/lowcoder-comps/src/comps/funnelChartComp/funnelChartPropertyView.tsx index 0cd9b1c75..6e7ab2a2c 100644 --- a/client/packages/lowcoder-comps/src/comps/funnelChartComp/funnelChartPropertyView.tsx +++ b/client/packages/lowcoder-comps/src/comps/funnelChartComp/funnelChartPropertyView.tsx @@ -32,6 +32,7 @@ export function funnelChartPropertyView( ), })} {children.legendVisibility.getView()&& children.echartsLegendConfig.getPropertyView()} + {children.echartsSortingConfig.getPropertyView()} {children.label.getView()&& children.echartsLabelConfig.getPropertyView()} {children.echartsFunnelAlignConfig.getPropertyView()} {children.echartsTitleConfig.getPropertyView()} diff --git a/client/packages/lowcoder-comps/src/comps/funnelChartComp/funnelChartUtils.ts b/client/packages/lowcoder-comps/src/comps/funnelChartComp/funnelChartUtils.ts index b4b60d0ab..e04ffd3ba 100644 --- a/client/packages/lowcoder-comps/src/comps/funnelChartComp/funnelChartUtils.ts +++ b/client/packages/lowcoder-comps/src/comps/funnelChartComp/funnelChartUtils.ts @@ -161,7 +161,8 @@ export function getEchartsConfig( "min": props.min, "max": props.max, "gap": props.gap, - "funnelAlign": props.echartsFunnelAlignConfig.top, + "funnelAlign": props.echartsFunnelAlignConfig.funnelAlign, + "sort": props.echartsSortingConfig.sort, "itemStyle": { "opacity": props.opacity }, diff --git a/client/packages/lowcoder-comps/src/i18n/comps/locales/en.ts b/client/packages/lowcoder-comps/src/i18n/comps/locales/en.ts index f0968a260..7eabffb39 100644 --- a/client/packages/lowcoder-comps/src/i18n/comps/locales/en.ts +++ b/client/packages/lowcoder-comps/src/i18n/comps/locales/en.ts @@ -110,7 +110,8 @@ export const en = { legendPosition: "Legend Position", labelPosition: "Label Position", titlePosition: "Title Position", - funnelAlign: "Funnel Align" + funnelAlign: "Funnel Align", + sort: "Sort" }, chart: { delete: "Delete", From ee0161bb04f5e5911a0e42a2a69bd34fb3858cbf Mon Sep 17 00:00:00 2001 From: Imiss-U1025 Date: Mon, 9 Dec 2024 10:44:14 -0500 Subject: [PATCH 39/88] Added font settings. --- .../funnelChartComp/funnelChartConstants.tsx | 13 ++++++++++--- .../comps/funnelChartComp/funnelChartUtils.ts | 11 ++++++++++- .../comps/controls/styleControlConstants.tsx | 19 +++++++++++++++++++ 3 files changed, 39 insertions(+), 4 deletions(-) diff --git a/client/packages/lowcoder-comps/src/comps/funnelChartComp/funnelChartConstants.tsx b/client/packages/lowcoder-comps/src/comps/funnelChartComp/funnelChartConstants.tsx index 527af85ac..bda065715 100644 --- a/client/packages/lowcoder-comps/src/comps/funnelChartComp/funnelChartConstants.tsx +++ b/client/packages/lowcoder-comps/src/comps/funnelChartComp/funnelChartConstants.tsx @@ -16,7 +16,10 @@ import { uiChildren, clickEvent, styleControl, - EchartsStyle + EchartsStyle, + TextStyle, + FunnelStyle, + FunnelChartStyle } from "lowcoder-sdk"; import { RecordConstructorToComp, RecordConstructorToView } from "lowcoder-core"; import { BarChartConfig } from "../chartComp/chartConfigs/barChartConfig"; @@ -33,7 +36,7 @@ import { EChartsOption } from "echarts"; import { i18nObjs, trans } from "i18n/comps"; import { FunnelChartConfig} from "../chartComp/chartConfigs/funnelChartConfig"; import { EchartsTitleConfig } from "comps/chartComp/chartConfigs/echartsTitleConfig"; -import {EchartsSortingConfig} from "../chartComp/chartConfigs/echartsSortingConfig"; +import { EchartsSortingConfig } from "../chartComp/chartConfigs/echartsSortingConfig"; export const ChartTypeOptions = [ { @@ -272,13 +275,17 @@ let chartJsonModeChildren: any = { gap:withDefault(NumberControl,trans('funnelChart.defaultGap')), opacity:withDefault(NumberControl,trans('funnelChart.defaultOpacity')) } + if (EchartsStyle) { chartJsonModeChildren = { ...chartJsonModeChildren, - style: styleControl(EchartsStyle, 'style'), + style: styleControl(FunnelStyle, 'style'), + chartStyle: styleControl(FunnelChartStyle, 'style') } } +console.log(FunnelStyle) + const chartMapModeChildren = { mapInstance: stateComp(), getMapInstance: FunctionControl, diff --git a/client/packages/lowcoder-comps/src/comps/funnelChartComp/funnelChartUtils.ts b/client/packages/lowcoder-comps/src/comps/funnelChartComp/funnelChartUtils.ts index e04ffd3ba..e221c61c3 100644 --- a/client/packages/lowcoder-comps/src/comps/funnelChartComp/funnelChartUtils.ts +++ b/client/packages/lowcoder-comps/src/comps/funnelChartComp/funnelChartUtils.ts @@ -168,7 +168,16 @@ export function getEchartsConfig( }, "label": { "show": props.label, - "position": props.echartsLabelConfig.top + "position": props.echartsLabelConfig.top, + "fontFamily": props?.style?.fontFamily || theme?.style?.fontFamily, + "fontSize": props?.style?.textSize || theme?.style?.textSize, + "fontWeight": props?.style?.textWeight || theme?.style?.textWeight, + "color": props?.style?.text || theme?.style?.text, + "fontStyle": props?.style?.fontStyle || theme?.style?.fontStyle, + "textShadowColor": props?.style?.boxShadowColor || theme?.style?.boxShadowColor, + "textShadowBlur": props?.style?.boxShadow?.split(' ')[0], + "textShadowOffsetX": props?.style?.boxShadow?.split(' ')[1], + "textShadowOffsetY": props?.style?.boxShadow?.split(' ')[2] }, "data": props.echartsOption.data } diff --git a/client/packages/lowcoder/src/comps/controls/styleControlConstants.tsx b/client/packages/lowcoder/src/comps/controls/styleControlConstants.tsx index fca765ca3..03f5ce752 100644 --- a/client/packages/lowcoder/src/comps/controls/styleControlConstants.tsx +++ b/client/packages/lowcoder/src/comps/controls/styleControlConstants.tsx @@ -1793,6 +1793,25 @@ export const JsonEditorStyle = [LABEL] as const; export const EchartsStyle = [getBackground("primarySurface")] as const; +export const FunnelStyle = [ + getBackground("primarySurface"), + TEXT, + TEXT_SIZE, + TEXT_WEIGHT, + FONT_FAMILY, + FONT_STYLE, + BOXSHADOWCOLOR, + BOXSHADOW, +] as const; + +export const FunnelChartStyle = [ + OPACITY, + BORDER, + BORDER_STYLE, + RADIUS, + BORDER_WIDTH, +] as const; + export const CalendarStyle = [ getBackground("primarySurface"), { From 4f9b41100d2aa52c4d7fd1d5ae6f908add2ba244 Mon Sep 17 00:00:00 2001 From: Imiss-U1025 Date: Mon, 9 Dec 2024 12:38:14 -0500 Subject: [PATCH 40/88] Added label, Chart style. --- .../funnelChartComp/funnelChartConstants.tsx | 5 ++-- .../funnelChartPropertyView.tsx | 10 +++++-- .../comps/funnelChartComp/funnelChartUtils.ts | 28 +++++++++++++++++-- .../lowcoder-comps/src/util/opacityToHex.tsx | 6 ++++ .../src/components/Section.tsx | 2 ++ .../src/i18n/design/locales/en.ts | 2 ++ .../comps/controls/styleControlConstants.tsx | 4 ++- 7 files changed, 49 insertions(+), 8 deletions(-) create mode 100644 client/packages/lowcoder-comps/src/util/opacityToHex.tsx diff --git a/client/packages/lowcoder-comps/src/comps/funnelChartComp/funnelChartConstants.tsx b/client/packages/lowcoder-comps/src/comps/funnelChartComp/funnelChartConstants.tsx index bda065715..06a10f517 100644 --- a/client/packages/lowcoder-comps/src/comps/funnelChartComp/funnelChartConstants.tsx +++ b/client/packages/lowcoder-comps/src/comps/funnelChartComp/funnelChartConstants.tsx @@ -280,11 +280,12 @@ if (EchartsStyle) { chartJsonModeChildren = { ...chartJsonModeChildren, style: styleControl(FunnelStyle, 'style'), - chartStyle: styleControl(FunnelChartStyle, 'style') + titleStyle: styleControl(FunnelStyle, 'titleStyle'), + chartStyle: styleControl(FunnelChartStyle, 'chartStyle') } } -console.log(FunnelStyle) +console.log(FunnelChartStyle) const chartMapModeChildren = { mapInstance: stateComp(), diff --git a/client/packages/lowcoder-comps/src/comps/funnelChartComp/funnelChartPropertyView.tsx b/client/packages/lowcoder-comps/src/comps/funnelChartComp/funnelChartPropertyView.tsx index 6e7ab2a2c..b9a3e09d2 100644 --- a/client/packages/lowcoder-comps/src/comps/funnelChartComp/funnelChartPropertyView.tsx +++ b/client/packages/lowcoder-comps/src/comps/funnelChartComp/funnelChartPropertyView.tsx @@ -52,8 +52,14 @@ export function funnelChartPropertyView(
{children.onEvent.propertyView()}
-
- {children.style?.getPropertyView()} +
+ {children.chartStyle?.getPropertyView()} +
+
+ {children.titleStyle?.getPropertyView()} +
+
+ {children.style?.getPropertyView()}
{hiddenPropertyView(children)}
diff --git a/client/packages/lowcoder-comps/src/comps/funnelChartComp/funnelChartUtils.ts b/client/packages/lowcoder-comps/src/comps/funnelChartComp/funnelChartUtils.ts index e221c61c3..697179aee 100644 --- a/client/packages/lowcoder-comps/src/comps/funnelChartComp/funnelChartUtils.ts +++ b/client/packages/lowcoder-comps/src/comps/funnelChartComp/funnelChartUtils.ts @@ -12,6 +12,7 @@ import { chartColorPalette, isNumeric, JSONObject, loadScript } from "lowcoder-s import { calcXYConfig } from "comps/chartComp/chartConfigs/cartesianAxisConfig"; import Big from "big.js"; import { googleMapsApiUrl } from "../chartComp/chartConfigs/chartUrls"; +import opacityToHex from "../../util/opacityToHex"; export function transformData( originData: JSONObject[], @@ -133,14 +134,27 @@ export function getEchartsConfig( chartSize?: ChartSize, theme?: any, ): EChartsOptionWithMap { + + console.log("props?.titleStyle",props.echartsOption.data?.map(data=>data.color)); if (props.mode === "json") { let opt={ "title": { "text": props.echartsTitle, 'top': props.echartsLegendConfig.top === 'bottom' ?'top':'bottom', - "left":props.echartsTitleConfig.top + "left":props.echartsTitleConfig.top, + "textStyle": { + "fontFamily": props?.titleStyle?.fontFamily || theme?.style?.fontFamily, + "fontSize": props?.titleStyle?.textSize || theme?.style?.textSize, + "fontWeight": props?.titleStyle?.textWeight || theme?.style?.textWeight, + "color": props?.titleStyle?.text || theme?.style?.text, + "fontStyle": props?.titleStyle?.fontStyle || theme?.style?.fontStyle, + "textShadowColor": props?.titleStyle?.boxShadowColor || theme?.style?.boxShadowColor, + "textShadowBlur": props?.titleStyle?.boxShadow?.split(' ')[0], + "textShadowOffsetX": props?.titleStyle?.boxShadow?.split(' ')[1], + "textShadowOffsetY": props?.titleStyle?.boxShadow?.split(' ')[2] + } }, - "backgroundColor": props?.style?.background || theme?.style?.background, + "backgroundColor": props?.chartStyle?.opacity ? props?.chartStyle?.background + opacityToHex(props?.chartStyle?.opacity) || theme?.style?.background : props?.chartStyle?.background || theme?.style?.background, "color": props.echartsOption.data?.map(data => data.color), "tooltip": props.tooltip&&{ "trigger": "item", @@ -164,7 +178,15 @@ export function getEchartsConfig( "funnelAlign": props.echartsFunnelAlignConfig.funnelAlign, "sort": props.echartsSortingConfig.sort, "itemStyle": { - "opacity": props.opacity + "opacity": props.opacity, + "borderColor": props?.chartStyle?.border || theme?.style?.border, + "borderWidth": props?.chartStyle?.borderWidth, + "borderType": props?.chartStyle?.borderStyle, + "borderRadius": props?.chartStyle?.radius, + "shadowColor": props?.chartStyle?.boxShadowColor || theme?.style?.boxShadowColor, + "shadowBlur": props?.chartStyle?.boxShadow?.split(' ')[0], + "shadowOffsetX": props?.chartStyle?.boxShadow?.split(' ')[0], + "shadowOffsetY": props?.chartStyle?.boxShadow?.split(' ')[0] }, "label": { "show": props.label, diff --git a/client/packages/lowcoder-comps/src/util/opacityToHex.tsx b/client/packages/lowcoder-comps/src/util/opacityToHex.tsx new file mode 100644 index 000000000..d058b4abb --- /dev/null +++ b/client/packages/lowcoder-comps/src/util/opacityToHex.tsx @@ -0,0 +1,6 @@ +export default function opacityToHex(opacity) { + opacity = Math.max(0, Math.min(1, opacity)); + const decimalValue = Math.round(opacity * 255); + const hexValue = decimalValue.toString(16).toUpperCase(); + return hexValue.padStart(2, '0'); +} diff --git a/client/packages/lowcoder-design/src/components/Section.tsx b/client/packages/lowcoder-design/src/components/Section.tsx index 2f02497d0..9f5aacf46 100644 --- a/client/packages/lowcoder-design/src/components/Section.tsx +++ b/client/packages/lowcoder-design/src/components/Section.tsx @@ -187,4 +187,6 @@ export const sectionNames = { badgeStyle:trans("prop.badgeStyle"), columnStyle:trans("prop.columnStyle"), modalStyle:trans("prop.modalStyle"), + chartStyle:trans("prop.chartStyle"), + titleStyle:trans("prop.titleStyle"), }; diff --git a/client/packages/lowcoder-design/src/i18n/design/locales/en.ts b/client/packages/lowcoder-design/src/i18n/design/locales/en.ts index 6ebd73d92..b069609c7 100644 --- a/client/packages/lowcoder-design/src/i18n/design/locales/en.ts +++ b/client/packages/lowcoder-design/src/i18n/design/locales/en.ts @@ -40,6 +40,8 @@ export const en = { badgeStyle: 'Badge Style', columnStyle: 'Column Style', modalStyle: 'Modal Style', + chartStyle: "Chart Style", + titleStyle: "Title Style" }, passwordInput: { label: "Password:", diff --git a/client/packages/lowcoder/src/comps/controls/styleControlConstants.tsx b/client/packages/lowcoder/src/comps/controls/styleControlConstants.tsx index 03f5ce752..cc7ccd2b2 100644 --- a/client/packages/lowcoder/src/comps/controls/styleControlConstants.tsx +++ b/client/packages/lowcoder/src/comps/controls/styleControlConstants.tsx @@ -1794,7 +1794,6 @@ export const JsonEditorStyle = [LABEL] as const; export const EchartsStyle = [getBackground("primarySurface")] as const; export const FunnelStyle = [ - getBackground("primarySurface"), TEXT, TEXT_SIZE, TEXT_WEIGHT, @@ -1805,7 +1804,10 @@ export const FunnelStyle = [ ] as const; export const FunnelChartStyle = [ + getBackground("primarySurface"), OPACITY, + BOXSHADOWCOLOR, + BOXSHADOW, BORDER, BORDER_STYLE, RADIUS, From 1d062e0c7e152fefb115e0c5052645c869ced613 Mon Sep 17 00:00:00 2001 From: Imiss-U1025 Date: Mon, 9 Dec 2024 13:51:18 -0500 Subject: [PATCH 41/88] Added legend font settings. --- .../funnelChartComp/funnelChartConstants.tsx | 1 + .../funnelChartPropertyView.tsx | 13 ++++++++++-- .../comps/funnelChartComp/funnelChartUtils.ts | 21 ++++++++++++++----- .../src/components/Section.tsx | 1 + .../src/i18n/design/locales/en.ts | 3 ++- 5 files changed, 31 insertions(+), 8 deletions(-) diff --git a/client/packages/lowcoder-comps/src/comps/funnelChartComp/funnelChartConstants.tsx b/client/packages/lowcoder-comps/src/comps/funnelChartComp/funnelChartConstants.tsx index 06a10f517..91945ff96 100644 --- a/client/packages/lowcoder-comps/src/comps/funnelChartComp/funnelChartConstants.tsx +++ b/client/packages/lowcoder-comps/src/comps/funnelChartComp/funnelChartConstants.tsx @@ -281,6 +281,7 @@ if (EchartsStyle) { ...chartJsonModeChildren, style: styleControl(FunnelStyle, 'style'), titleStyle: styleControl(FunnelStyle, 'titleStyle'), + legendStyle: styleControl(FunnelStyle, 'legendStyle'), chartStyle: styleControl(FunnelChartStyle, 'chartStyle') } } diff --git a/client/packages/lowcoder-comps/src/comps/funnelChartComp/funnelChartPropertyView.tsx b/client/packages/lowcoder-comps/src/comps/funnelChartComp/funnelChartPropertyView.tsx index b9a3e09d2..07fda545c 100644 --- a/client/packages/lowcoder-comps/src/comps/funnelChartComp/funnelChartPropertyView.tsx +++ b/client/packages/lowcoder-comps/src/comps/funnelChartComp/funnelChartPropertyView.tsx @@ -58,9 +58,18 @@ export function funnelChartPropertyView(
{children.titleStyle?.getPropertyView()}
-
+ { + children.label.getView() ? +
{children.style?.getPropertyView()} -
+
: <> + } + { + children.legendVisibility.getView() ? +
+ {children.legendStyle?.getPropertyView()} +
: <> + }
{hiddenPropertyView(children)}
); diff --git a/client/packages/lowcoder-comps/src/comps/funnelChartComp/funnelChartUtils.ts b/client/packages/lowcoder-comps/src/comps/funnelChartComp/funnelChartUtils.ts index 697179aee..19e17651d 100644 --- a/client/packages/lowcoder-comps/src/comps/funnelChartComp/funnelChartUtils.ts +++ b/client/packages/lowcoder-comps/src/comps/funnelChartComp/funnelChartUtils.ts @@ -143,10 +143,10 @@ export function getEchartsConfig( 'top': props.echartsLegendConfig.top === 'bottom' ?'top':'bottom', "left":props.echartsTitleConfig.top, "textStyle": { - "fontFamily": props?.titleStyle?.fontFamily || theme?.style?.fontFamily, - "fontSize": props?.titleStyle?.textSize || theme?.style?.textSize, - "fontWeight": props?.titleStyle?.textWeight || theme?.style?.textWeight, - "color": props?.titleStyle?.text || theme?.style?.text, + "fontFamily": props?.titleStyle?.fontFamily || theme?.style?.fontFamily || "Arial", + "fontSize": props?.titleStyle?.textSize || theme?.style?.textSize || 18, + "fontWeight": props?.titleStyle?.textWeight || theme?.style?.textWeight || "bold", + "color": props?.titleStyle?.text || theme?.style?.text || "#333", "fontStyle": props?.titleStyle?.fontStyle || theme?.style?.fontStyle, "textShadowColor": props?.titleStyle?.boxShadowColor || theme?.style?.boxShadowColor, "textShadowBlur": props?.titleStyle?.boxShadow?.split(' ')[0], @@ -163,6 +163,17 @@ export function getEchartsConfig( "legend":props.legendVisibility&& { "data": props.echartsOption.data?.map(data=>data.name), "top": props.echartsLegendConfig.top, + "textStyle": { + "fontFamily": props?.legendStyle?.fontFamily || theme?.style?.fontFamily || "Arial", + "fontSize": props?.legendStyle?.textSize || theme?.style?.textSize, + "fontWeight": props?.legendStyle?.textWeight || theme?.style?.textWeight, + "color": props?.legendStyle?.text || theme?.style?.text || "#000000", + "fontStyle": props?.legendStyle?.fontStyle || theme?.style?.fontStyle, + "textShadowColor": props?.legendStyle?.boxShadowColor || theme?.style?.boxShadowColor, + "textShadowBlur": props?.legendStyle?.boxShadow?.split(' ')[0], + "textShadowOffsetX": props?.legendStyle?.boxShadow?.split(' ')[1], + "textShadowOffsetY": props?.legendStyle?.boxShadow?.split(' ')[2] + } }, "series": [ { @@ -191,7 +202,7 @@ export function getEchartsConfig( "label": { "show": props.label, "position": props.echartsLabelConfig.top, - "fontFamily": props?.style?.fontFamily || theme?.style?.fontFamily, + "fontFamily": props?.style?.fontFamily || theme?.style?.fontFamily || "Arial", "fontSize": props?.style?.textSize || theme?.style?.textSize, "fontWeight": props?.style?.textWeight || theme?.style?.textWeight, "color": props?.style?.text || theme?.style?.text, diff --git a/client/packages/lowcoder-design/src/components/Section.tsx b/client/packages/lowcoder-design/src/components/Section.tsx index 9f5aacf46..c86374f6d 100644 --- a/client/packages/lowcoder-design/src/components/Section.tsx +++ b/client/packages/lowcoder-design/src/components/Section.tsx @@ -189,4 +189,5 @@ export const sectionNames = { modalStyle:trans("prop.modalStyle"), chartStyle:trans("prop.chartStyle"), titleStyle:trans("prop.titleStyle"), + legendStyle:trans("prop.legendStyle"), }; diff --git a/client/packages/lowcoder-design/src/i18n/design/locales/en.ts b/client/packages/lowcoder-design/src/i18n/design/locales/en.ts index b069609c7..f7a1f4ac9 100644 --- a/client/packages/lowcoder-design/src/i18n/design/locales/en.ts +++ b/client/packages/lowcoder-design/src/i18n/design/locales/en.ts @@ -41,7 +41,8 @@ export const en = { columnStyle: 'Column Style', modalStyle: 'Modal Style', chartStyle: "Chart Style", - titleStyle: "Title Style" + titleStyle: "Title Style", + legendStyle: "Legend Style", }, passwordInput: { label: "Password:", From 4058b81fec5483516817d52e618492bed67f2dbd Mon Sep 17 00:00:00 2001 From: Imiss-U1025 Date: Mon, 9 Dec 2024 16:08:09 -0500 Subject: [PATCH 42/88] Added gradient background. --- .../funnelChartComp/funnelChartConstants.tsx | 11 +++----- .../comps/funnelChartComp/funnelChartUtils.ts | 17 +++++++++--- .../src/comps/controls/styleControl.tsx | 26 ++++++++++++++++++- .../comps/controls/styleControlConstants.tsx | 25 +++++++++++++++++- .../packages/lowcoder/src/i18n/locales/en.ts | 3 ++- 5 files changed, 68 insertions(+), 14 deletions(-) diff --git a/client/packages/lowcoder-comps/src/comps/funnelChartComp/funnelChartConstants.tsx b/client/packages/lowcoder-comps/src/comps/funnelChartComp/funnelChartConstants.tsx index 91945ff96..d4f7d306b 100644 --- a/client/packages/lowcoder-comps/src/comps/funnelChartComp/funnelChartConstants.tsx +++ b/client/packages/lowcoder-comps/src/comps/funnelChartComp/funnelChartConstants.tsx @@ -17,8 +17,7 @@ import { clickEvent, styleControl, EchartsStyle, - TextStyle, - FunnelStyle, + FunnelTextStyle, FunnelChartStyle } from "lowcoder-sdk"; import { RecordConstructorToComp, RecordConstructorToView } from "lowcoder-core"; @@ -279,15 +278,13 @@ let chartJsonModeChildren: any = { if (EchartsStyle) { chartJsonModeChildren = { ...chartJsonModeChildren, - style: styleControl(FunnelStyle, 'style'), - titleStyle: styleControl(FunnelStyle, 'titleStyle'), - legendStyle: styleControl(FunnelStyle, 'legendStyle'), + style: styleControl(FunnelTextStyle, 'style'), + titleStyle: styleControl(FunnelTextStyle, 'titleStyle'), + legendStyle: styleControl(FunnelTextStyle, 'legendStyle'), chartStyle: styleControl(FunnelChartStyle, 'chartStyle') } } -console.log(FunnelChartStyle) - const chartMapModeChildren = { mapInstance: stateComp(), getMapInstance: FunctionControl, diff --git a/client/packages/lowcoder-comps/src/comps/funnelChartComp/funnelChartUtils.ts b/client/packages/lowcoder-comps/src/comps/funnelChartComp/funnelChartUtils.ts index 19e17651d..dd865a733 100644 --- a/client/packages/lowcoder-comps/src/comps/funnelChartComp/funnelChartUtils.ts +++ b/client/packages/lowcoder-comps/src/comps/funnelChartComp/funnelChartUtils.ts @@ -134,8 +134,6 @@ export function getEchartsConfig( chartSize?: ChartSize, theme?: any, ): EChartsOptionWithMap { - - console.log("props?.titleStyle",props.echartsOption.data?.map(data=>data.color)); if (props.mode === "json") { let opt={ "title": { @@ -145,7 +143,7 @@ export function getEchartsConfig( "textStyle": { "fontFamily": props?.titleStyle?.fontFamily || theme?.style?.fontFamily || "Arial", "fontSize": props?.titleStyle?.textSize || theme?.style?.textSize || 18, - "fontWeight": props?.titleStyle?.textWeight || theme?.style?.textWeight || "bold", + "fontWeight": props?.titleStyle?.textWeight || theme?.style?.textWeight, "color": props?.titleStyle?.text || theme?.style?.text || "#333", "fontStyle": props?.titleStyle?.fontStyle || theme?.style?.fontStyle, "textShadowColor": props?.titleStyle?.boxShadowColor || theme?.style?.boxShadowColor, @@ -154,7 +152,18 @@ export function getEchartsConfig( "textShadowOffsetY": props?.titleStyle?.boxShadow?.split(' ')[2] } }, - "backgroundColor": props?.chartStyle?.opacity ? props?.chartStyle?.background + opacityToHex(props?.chartStyle?.opacity) || theme?.style?.background : props?.chartStyle?.background || theme?.style?.background, + "backgroundColor": props?.chartStyle?.gradientBackground && props?.chartStyle?.background + ? { + "x": props?.chartStyle?.direction?.split(' ')[0], + "y": props?.chartStyle?.direction?.split(' ')[1], + "x2": props?.chartStyle?.direction?.split(' ')[2], + "y2": props?.chartStyle?.direction?.split(' ')[3], + "colorStops": [ + { "offset": 0, "color": props?.chartStyle?.opacity ? props?.chartStyle?.background + opacityToHex(props?.chartStyle?.opacity) : props?.chartStyle?.background || "#FFFFFF" }, + { "offset": 1, "color": props?.chartStyle?.opacity ? props?.chartStyle?.gradientBackground + opacityToHex(props?.chartStyle?.opacity) : props?.chartStyle?.gradientBackground || "#FFFFFF" } + ] + } + : props?.chartStyle?.opacity ? (props?.chartStyle?.background || theme?.style?.background) + opacityToHex(props?.chartStyle?.opacity) : props?.chartStyle?.background || theme?.style?.background, "color": props.echartsOption.data?.map(data => data.color), "tooltip": props.tooltip&&{ "trigger": "item", diff --git a/client/packages/lowcoder/src/comps/controls/styleControl.tsx b/client/packages/lowcoder/src/comps/controls/styleControl.tsx index a9f8372b7..1ae8d1153 100644 --- a/client/packages/lowcoder/src/comps/controls/styleControl.tsx +++ b/client/packages/lowcoder/src/comps/controls/styleControl.tsx @@ -43,6 +43,7 @@ import { SimpleColorConfig, SingleColorConfig, MarginConfig, + DirectionConfig, PaddingConfig, TextSizeConfig, TextWeightConfig, @@ -187,7 +188,11 @@ function isBorderStyleConfig(config: SingleColorConfig): config is borderStyleCo } function isMarginConfig(config: SingleColorConfig): config is MarginConfig { - return config.hasOwnProperty("margin"); + return config.hasOwnProperty("direction"); +} + +function isDirectionConfig(config: SingleColorConfig): config is DirectionConfig { + return config.hasOwnProperty("direction"); } function isBoxShadowConfig( @@ -326,6 +331,9 @@ function isEmptyBorderStyle(borderStyle: string) { function isEmptyMargin(margin: string) { return _.isEmpty(margin); } +function isEmptyDirection(direction: string) { + return _.isEmpty(direction); +} function isEmptyPadding(padding: string) { return _.isEmpty(padding); } @@ -493,6 +501,10 @@ function calcColors>( res[name] = props[name]; return; } + if (!isEmptyDirection(props[name]) && isDirectionConfig(config)) { + res[name] = props[name]; + return; + } if (!isEmptyPadding(props[name]) && isPaddingConfig(config)) { res[name] = props[name]; return; @@ -767,6 +779,7 @@ const LineHeightPropIcon = styled(LineHeightIcon)` `; const MarginIcon = styled(ExpandIcon)` margin: 0 8px 0 2px; color: #888`; +const DirectionIcon = styled(ExpandIcon)` margin: 0 8px 0 2px; color: #888`; const PaddingIcon = styled(CompressIcon)` margin: 0 8px 0 2px; color: #888`; const RadiusPropIcon = styled(BorderRadiusIcon)` width: 24px; margin: 0 11px 0 0px; color: #888`; const BorderPropIcon = styled(BorderWidthIcon)` margin: 0 8px 0 -3px; padding: 3px; color: #888`; @@ -913,6 +926,7 @@ export function styleControl( name === 'footerBackgroundImagePosition' || name === 'footerBackgroundImageOrigin' || name === 'margin' || + name === 'direction' || name === 'padding' || name === 'containerHeaderPadding' || name === 'containerSiderPadding' || @@ -1096,6 +1110,16 @@ export function styleControl( preInputNode: , placeholder: props[name], }) + : name === 'direction' + ? ( + children[name] as InstanceType< + typeof StringControl + > + ).propertyView({ + label: config.label, + preInputNode: , + placeholder: props[name], + }) : name === 'animationIterationCount' ? ( children[name] as InstanceType< diff --git a/client/packages/lowcoder/src/comps/controls/styleControlConstants.tsx b/client/packages/lowcoder/src/comps/controls/styleControlConstants.tsx index cc7ccd2b2..4a7e5bf74 100644 --- a/client/packages/lowcoder/src/comps/controls/styleControlConstants.tsx +++ b/client/packages/lowcoder/src/comps/controls/styleControlConstants.tsx @@ -165,6 +165,10 @@ export type MarginConfig = CommonColorConfig & { readonly margin: string; }; +export type DirectionConfig = CommonColorConfig & { + readonly direction: string; +}; + export type PaddingConfig = CommonColorConfig & { readonly padding: string; }; @@ -203,6 +207,7 @@ export type SingleColorConfig = | FontFamilyConfig | FontStyleConfig | MarginConfig + | DirectionConfig | PaddingConfig | ContainerHeaderPaddingConfig | ContainerSiderPaddingConfig @@ -548,6 +553,12 @@ const MARGIN = { margin: "margin", } as const; +const DIRECTION = { + name: "direction", + label: trans("style.direction"), + position: "direction", +} as const; + const PADDING = { name: "padding", label: trans("style.padding"), @@ -742,6 +753,16 @@ function getBackground(depTheme: keyof ThemeDetail = "primarySurface") { } as const; } +function getGradientBackground(depTheme: keyof ThemeDetail = "primarySurface") { + return { + name: "gradientBackground", + label: trans("style.gradientBackground"), + depTheme: depTheme, + depType: DEP_TYPE.SELF, + transformer: toSelf, + } as const; +} + function getStaticBackground(color: string) { return { name: "background", @@ -1793,7 +1814,7 @@ export const JsonEditorStyle = [LABEL] as const; export const EchartsStyle = [getBackground("primarySurface")] as const; -export const FunnelStyle = [ +export const FunnelTextStyle = [ TEXT, TEXT_SIZE, TEXT_WEIGHT, @@ -1805,6 +1826,8 @@ export const FunnelStyle = [ export const FunnelChartStyle = [ getBackground("primarySurface"), + getGradientBackground(), + DIRECTION, OPACITY, BOXSHADOWCOLOR, BOXSHADOW, diff --git a/client/packages/lowcoder/src/i18n/locales/en.ts b/client/packages/lowcoder/src/i18n/locales/en.ts index 59e9a4809..4612627a8 100644 --- a/client/packages/lowcoder/src/i18n/locales/en.ts +++ b/client/packages/lowcoder/src/i18n/locales/en.ts @@ -568,7 +568,8 @@ export const en = { "siderBackgroundImageOrigin": "Sider Background Image Origin", "activeBackground": "Active Background Color", "labelBackground": "Label Background Color", - + "gradientBackground": "Gradient Background Color", + "direction": "Direction" }, "export": { "hiddenDesc": "If true, the component is hidden", From fb58dfa9265babbd5528c77df687ffee30a71579 Mon Sep 17 00:00:00 2001 From: Imiss-U1025 Date: Wed, 11 Dec 2024 02:05:33 -0500 Subject: [PATCH 43/88] Fixed an issue that style order would appear different in theme settings and right panel. --- .../funnelChartComp/funnelChartConstants.tsx | 4 +- .../funnelChartPropertyView.tsx | 2 +- .../comps/funnelChartComp/funnelChartUtils.ts | 46 +++++++++---------- 3 files changed, 26 insertions(+), 26 deletions(-) diff --git a/client/packages/lowcoder-comps/src/comps/funnelChartComp/funnelChartConstants.tsx b/client/packages/lowcoder-comps/src/comps/funnelChartComp/funnelChartConstants.tsx index d4f7d306b..2b58bf292 100644 --- a/client/packages/lowcoder-comps/src/comps/funnelChartComp/funnelChartConstants.tsx +++ b/client/packages/lowcoder-comps/src/comps/funnelChartComp/funnelChartConstants.tsx @@ -278,10 +278,10 @@ let chartJsonModeChildren: any = { if (EchartsStyle) { chartJsonModeChildren = { ...chartJsonModeChildren, - style: styleControl(FunnelTextStyle, 'style'), + chartStyle: styleControl(FunnelChartStyle, 'chartStyle'), titleStyle: styleControl(FunnelTextStyle, 'titleStyle'), + labelStyle: styleControl(FunnelTextStyle, 'labelStyle'), legendStyle: styleControl(FunnelTextStyle, 'legendStyle'), - chartStyle: styleControl(FunnelChartStyle, 'chartStyle') } } diff --git a/client/packages/lowcoder-comps/src/comps/funnelChartComp/funnelChartPropertyView.tsx b/client/packages/lowcoder-comps/src/comps/funnelChartComp/funnelChartPropertyView.tsx index 07fda545c..5de94d5e5 100644 --- a/client/packages/lowcoder-comps/src/comps/funnelChartComp/funnelChartPropertyView.tsx +++ b/client/packages/lowcoder-comps/src/comps/funnelChartComp/funnelChartPropertyView.tsx @@ -61,7 +61,7 @@ export function funnelChartPropertyView( { children.label.getView() ?
- {children.style?.getPropertyView()} + {children.labelStyle?.getPropertyView()}
: <> } { diff --git a/client/packages/lowcoder-comps/src/comps/funnelChartComp/funnelChartUtils.ts b/client/packages/lowcoder-comps/src/comps/funnelChartComp/funnelChartUtils.ts index dd865a733..e01fc96db 100644 --- a/client/packages/lowcoder-comps/src/comps/funnelChartComp/funnelChartUtils.ts +++ b/client/packages/lowcoder-comps/src/comps/funnelChartComp/funnelChartUtils.ts @@ -141,12 +141,12 @@ export function getEchartsConfig( 'top': props.echartsLegendConfig.top === 'bottom' ?'top':'bottom', "left":props.echartsTitleConfig.top, "textStyle": { - "fontFamily": props?.titleStyle?.fontFamily || theme?.style?.fontFamily || "Arial", - "fontSize": props?.titleStyle?.textSize || theme?.style?.textSize || 18, - "fontWeight": props?.titleStyle?.textWeight || theme?.style?.textWeight, - "color": props?.titleStyle?.text || theme?.style?.text || "#333", - "fontStyle": props?.titleStyle?.fontStyle || theme?.style?.fontStyle, - "textShadowColor": props?.titleStyle?.boxShadowColor || theme?.style?.boxShadowColor, + "fontFamily": props?.titleStyle?.fontFamily, + "fontSize": props?.titleStyle?.textSize, + "fontWeight": props?.titleStyle?.textWeight, + "color": props?.titleStyle?.text, + "fontStyle": props?.titleStyle?.fontStyle, + "textShadowColor": props?.titleStyle?.boxShadowColor, "textShadowBlur": props?.titleStyle?.boxShadow?.split(' ')[0], "textShadowOffsetX": props?.titleStyle?.boxShadow?.split(' ')[1], "textShadowOffsetY": props?.titleStyle?.boxShadow?.split(' ')[2] @@ -159,11 +159,11 @@ export function getEchartsConfig( "x2": props?.chartStyle?.direction?.split(' ')[2], "y2": props?.chartStyle?.direction?.split(' ')[3], "colorStops": [ - { "offset": 0, "color": props?.chartStyle?.opacity ? props?.chartStyle?.background + opacityToHex(props?.chartStyle?.opacity) : props?.chartStyle?.background || "#FFFFFF" }, - { "offset": 1, "color": props?.chartStyle?.opacity ? props?.chartStyle?.gradientBackground + opacityToHex(props?.chartStyle?.opacity) : props?.chartStyle?.gradientBackground || "#FFFFFF" } + { "offset": 0, "color": props?.chartStyle?.opacity ? props?.chartStyle?.background + opacityToHex(props?.chartStyle?.opacity) : props?.chartStyle?.background}, + { "offset": 1, "color": props?.chartStyle?.opacity ? props?.chartStyle?.gradientBackground + opacityToHex(props?.chartStyle?.opacity) : props?.chartStyle?.gradientBackground} ] } - : props?.chartStyle?.opacity ? (props?.chartStyle?.background || theme?.style?.background) + opacityToHex(props?.chartStyle?.opacity) : props?.chartStyle?.background || theme?.style?.background, + : props?.chartStyle?.opacity ? (props?.chartStyle?.background) + opacityToHex(props?.chartStyle?.opacity) : props?.chartStyle?.background, "color": props.echartsOption.data?.map(data => data.color), "tooltip": props.tooltip&&{ "trigger": "item", @@ -173,12 +173,12 @@ export function getEchartsConfig( "data": props.echartsOption.data?.map(data=>data.name), "top": props.echartsLegendConfig.top, "textStyle": { - "fontFamily": props?.legendStyle?.fontFamily || theme?.style?.fontFamily || "Arial", - "fontSize": props?.legendStyle?.textSize || theme?.style?.textSize, - "fontWeight": props?.legendStyle?.textWeight || theme?.style?.textWeight, - "color": props?.legendStyle?.text || theme?.style?.text || "#000000", - "fontStyle": props?.legendStyle?.fontStyle || theme?.style?.fontStyle, - "textShadowColor": props?.legendStyle?.boxShadowColor || theme?.style?.boxShadowColor, + "fontFamily": props?.legendStyle?.fontFamily, + "fontSize": props?.legendStyle?.textSize, + "fontWeight": props?.legendStyle?.textWeight, + "color": props?.legendStyle?.text, + "fontStyle": props?.legendStyle?.fontStyle, + "textShadowColor": props?.legendStyle?.boxShadowColor, "textShadowBlur": props?.legendStyle?.boxShadow?.split(' ')[0], "textShadowOffsetX": props?.legendStyle?.boxShadow?.split(' ')[1], "textShadowOffsetY": props?.legendStyle?.boxShadow?.split(' ')[2] @@ -199,11 +199,11 @@ export function getEchartsConfig( "sort": props.echartsSortingConfig.sort, "itemStyle": { "opacity": props.opacity, - "borderColor": props?.chartStyle?.border || theme?.style?.border, + "borderColor": props?.chartStyle?.border, "borderWidth": props?.chartStyle?.borderWidth, "borderType": props?.chartStyle?.borderStyle, "borderRadius": props?.chartStyle?.radius, - "shadowColor": props?.chartStyle?.boxShadowColor || theme?.style?.boxShadowColor, + "shadowColor": props?.chartStyle?.boxShadowColor, "shadowBlur": props?.chartStyle?.boxShadow?.split(' ')[0], "shadowOffsetX": props?.chartStyle?.boxShadow?.split(' ')[0], "shadowOffsetY": props?.chartStyle?.boxShadow?.split(' ')[0] @@ -211,12 +211,12 @@ export function getEchartsConfig( "label": { "show": props.label, "position": props.echartsLabelConfig.top, - "fontFamily": props?.style?.fontFamily || theme?.style?.fontFamily || "Arial", - "fontSize": props?.style?.textSize || theme?.style?.textSize, - "fontWeight": props?.style?.textWeight || theme?.style?.textWeight, - "color": props?.style?.text || theme?.style?.text, - "fontStyle": props?.style?.fontStyle || theme?.style?.fontStyle, - "textShadowColor": props?.style?.boxShadowColor || theme?.style?.boxShadowColor, + "fontFamily": props?.style?.fontFamily, + "fontSize": props?.style?.textSize, + "fontWeight": props?.style?.textWeight, + "color": props?.style?.text, + "fontStyle": props?.style?.fontStyle, + "textShadowColor": props?.style?.boxShadowColor, "textShadowBlur": props?.style?.boxShadow?.split(' ')[0], "textShadowOffsetX": props?.style?.boxShadow?.split(' ')[1], "textShadowOffsetY": props?.style?.boxShadow?.split(' ')[2] From b2ee7513126b03e399b7d88c97328de139b18d1e Mon Sep 17 00:00:00 2001 From: Imiss-U1025 Date: Wed, 11 Dec 2024 03:03:20 -0500 Subject: [PATCH 44/88] Fixed direction and label style. --- .../comps/funnelChartComp/funnelChartUtils.ts | 18 +++++++++--------- .../src/comps/controls/styleControl.tsx | 6 +++++- 2 files changed, 14 insertions(+), 10 deletions(-) diff --git a/client/packages/lowcoder-comps/src/comps/funnelChartComp/funnelChartUtils.ts b/client/packages/lowcoder-comps/src/comps/funnelChartComp/funnelChartUtils.ts index e01fc96db..e098c708b 100644 --- a/client/packages/lowcoder-comps/src/comps/funnelChartComp/funnelChartUtils.ts +++ b/client/packages/lowcoder-comps/src/comps/funnelChartComp/funnelChartUtils.ts @@ -211,15 +211,15 @@ export function getEchartsConfig( "label": { "show": props.label, "position": props.echartsLabelConfig.top, - "fontFamily": props?.style?.fontFamily, - "fontSize": props?.style?.textSize, - "fontWeight": props?.style?.textWeight, - "color": props?.style?.text, - "fontStyle": props?.style?.fontStyle, - "textShadowColor": props?.style?.boxShadowColor, - "textShadowBlur": props?.style?.boxShadow?.split(' ')[0], - "textShadowOffsetX": props?.style?.boxShadow?.split(' ')[1], - "textShadowOffsetY": props?.style?.boxShadow?.split(' ')[2] + "fontFamily": props?.labelStyle?.fontFamily, + "fontSize": props?.labelStyle?.textSize, + "fontWeight": props?.labelStyle?.textWeight, + "color": props?.labelStyle?.text, + "fontStyle": props?.labelStyle?.fontStyle, + "textShadowColor": props?.labelStyle?.boxShadowColor, + "textShadowBlur": props?.labelStyle?.boxShadow?.split(' ')[0], + "textShadowOffsetX": props?.labelStyle?.boxShadow?.split(' ')[1], + "textShadowOffsetY": props?.labelStyle?.boxShadow?.split(' ')[2] }, "data": props.echartsOption.data } diff --git a/client/packages/lowcoder/src/comps/controls/styleControl.tsx b/client/packages/lowcoder/src/comps/controls/styleControl.tsx index 1ae8d1153..02d572f05 100644 --- a/client/packages/lowcoder/src/comps/controls/styleControl.tsx +++ b/client/packages/lowcoder/src/comps/controls/styleControl.tsx @@ -188,7 +188,7 @@ function isBorderStyleConfig(config: SingleColorConfig): config is borderStyleCo } function isMarginConfig(config: SingleColorConfig): config is MarginConfig { - return config.hasOwnProperty("direction"); + return config.hasOwnProperty("margin"); } function isDirectionConfig(config: SingleColorConfig): config is DirectionConfig { @@ -634,6 +634,9 @@ function calcColors>( if (isMarginConfig(config)) { res[name] = themeWithDefault[config.margin]; } + if (isDirectionConfig(config)) { + res[name] = themeWithDefault[config.direction] || '0 0 1 1'; + } if (isPaddingConfig(config)) { res[name] = themeWithDefault[config.padding]; } @@ -998,6 +1001,7 @@ export function styleControl( if ( name === 'radius' || name === 'margin' || + name === 'direction' || name === 'padding' || name === 'containerHeaderPadding' || name === 'containerSiderPadding' || From 84871364029da73863c0ddb9334d9ad1ec370ef6 Mon Sep 17 00:00:00 2001 From: Imiss-U1025 Date: Wed, 11 Dec 2024 16:56:01 -0500 Subject: [PATCH 45/88] Added direction's default value. --- client/packages/lowcoder/src/api/commonSettingApi.ts | 7 +++++-- .../lowcoder/src/comps/controls/styleControlConstants.tsx | 2 +- client/packages/lowcoder/src/constants/themeConstants.ts | 1 + 3 files changed, 7 insertions(+), 3 deletions(-) diff --git a/client/packages/lowcoder/src/api/commonSettingApi.ts b/client/packages/lowcoder/src/api/commonSettingApi.ts index 510e67026..22ae54229 100644 --- a/client/packages/lowcoder/src/api/commonSettingApi.ts +++ b/client/packages/lowcoder/src/api/commonSettingApi.ts @@ -52,6 +52,7 @@ export interface ThemeDetail { borderStyle?: string; chart?: string; margin?: string; + direction?: string; padding?: string; gridPaddingX?: number; gridPaddingY?: number; @@ -91,7 +92,8 @@ export function getThemeDetailName(key: keyof ThemeDetail) { case "borderWidth": return trans("themeDetail.borderWidth"); case "borderStyle": return trans("themeDetail.borderStyle"); case "fontFamily": return trans("themeDetail.fontFamily"); - case "margin": return trans("style.margin"); + case "margin": return trans("style.margin"); + case "direction": return trans("style.direction"); case "padding": return trans("style.padding"); case "gridColumns": return trans("themeDetail.gridColumns"); case "textSize": return trans("style.textSize"); @@ -114,7 +116,8 @@ export function isThemeColorKey(key: string) { case "borderWidth": case "borderStyle": case "fontFamily": - case "margin": + case "margin": + case "direction": case "padding": case "gridColumns": case "textSize": diff --git a/client/packages/lowcoder/src/comps/controls/styleControlConstants.tsx b/client/packages/lowcoder/src/comps/controls/styleControlConstants.tsx index 4a7e5bf74..da2bd087c 100644 --- a/client/packages/lowcoder/src/comps/controls/styleControlConstants.tsx +++ b/client/packages/lowcoder/src/comps/controls/styleControlConstants.tsx @@ -556,7 +556,7 @@ const MARGIN = { const DIRECTION = { name: "direction", label: trans("style.direction"), - position: "direction", + direction: "direction", } as const; const PADDING = { diff --git a/client/packages/lowcoder/src/constants/themeConstants.ts b/client/packages/lowcoder/src/constants/themeConstants.ts index 144486380..40eaad32d 100644 --- a/client/packages/lowcoder/src/constants/themeConstants.ts +++ b/client/packages/lowcoder/src/constants/themeConstants.ts @@ -12,6 +12,7 @@ const theme = { borderWidth: "1px", borderStyle: "solid", margin: "3px", + direction: "0 0 1 1", padding: "3px", lineHeight: "18px", gridColumns: String(DEFAULT_GRID_COLUMNS), From 006ab19ec0752091cfc8f01e71c5ee0e4355cd66 Mon Sep 17 00:00:00 2001 From: Imiss-U1025 Date: Thu, 12 Dec 2024 02:01:37 -0500 Subject: [PATCH 46/88] Implemented settings of theme as default. --- .../comps/funnelChartComp/funnelChartComp.tsx | 6 +- .../comps/funnelChartComp/funnelChartUtils.ts | 98 ++++++++++--------- 2 files changed, 54 insertions(+), 50 deletions(-) diff --git a/client/packages/lowcoder-comps/src/comps/funnelChartComp/funnelChartComp.tsx b/client/packages/lowcoder-comps/src/comps/funnelChartComp/funnelChartComp.tsx index 0c95ed8ff..b8c49955d 100644 --- a/client/packages/lowcoder-comps/src/comps/funnelChartComp/funnelChartComp.tsx +++ b/client/packages/lowcoder-comps/src/comps/funnelChartComp/funnelChartComp.tsx @@ -145,9 +145,9 @@ FunnelChartTmpComp = withViewFn(FunnelChartTmpComp, (comp) => { return getEchartsConfig( childrenToProps(echartsConfigChildren) as ToViewReturn, chartSize, - theme?.theme?.components?.candleStickChart || {}, + themeConfig, ); - }, [chartSize, ...Object.values(echartsConfigChildren)]); + }, [chartSize, ...Object.values(echartsConfigChildren), theme]); useEffect(() => { comp.children.mapInstance.dispatch(changeValueAction(null, false)) @@ -175,7 +175,7 @@ FunnelChartTmpComp = withViewFn(FunnelChartTmpComp, (comp) => { lazyUpdate opts={{ locale: getEchartsLocale() }} option={option} - theme={mode !== 'map' ? themeConfig : undefined} + theme={themeConfig} mode={mode} /> diff --git a/client/packages/lowcoder-comps/src/comps/funnelChartComp/funnelChartUtils.ts b/client/packages/lowcoder-comps/src/comps/funnelChartComp/funnelChartUtils.ts index e098c708b..a255e7864 100644 --- a/client/packages/lowcoder-comps/src/comps/funnelChartComp/funnelChartUtils.ts +++ b/client/packages/lowcoder-comps/src/comps/funnelChartComp/funnelChartUtils.ts @@ -134,6 +134,10 @@ export function getEchartsConfig( chartSize?: ChartSize, theme?: any, ): EChartsOptionWithMap { + + console.log("props", props); + console.log("theme", theme); + if (props.mode === "json") { let opt={ "title": { @@ -141,29 +145,29 @@ export function getEchartsConfig( 'top': props.echartsLegendConfig.top === 'bottom' ?'top':'bottom', "left":props.echartsTitleConfig.top, "textStyle": { - "fontFamily": props?.titleStyle?.fontFamily, - "fontSize": props?.titleStyle?.textSize, - "fontWeight": props?.titleStyle?.textWeight, - "color": props?.titleStyle?.text, - "fontStyle": props?.titleStyle?.fontStyle, - "textShadowColor": props?.titleStyle?.boxShadowColor, - "textShadowBlur": props?.titleStyle?.boxShadow?.split(' ')[0], - "textShadowOffsetX": props?.titleStyle?.boxShadow?.split(' ')[1], - "textShadowOffsetY": props?.titleStyle?.boxShadow?.split(' ')[2] + "fontFamily": props?.titleStyle?.fontFamily || theme?.titleStyle?.fontFamily, + "fontSize": props?.titleStyle?.textSize || theme?.titleStyle?.fontSize, + "fontWeight": props?.titleStyle?.textWeight || theme?.titleStyle?.fontWeight, + "color": props?.titleStyle?.text || theme?.titleStyle?.fontColor, + "fontStyle": props?.titleStyle?.fontStyle || theme?.titleStyle?.fontStyle, + "textShadowColor": props?.titleStyle?.boxShadowColor || theme?.titleStyle?.shadowColor, + "textShadowBlur": props?.titleStyle?.boxShadow?.split('px')[0] || theme?.titleStyle?.boxShadow.split('px')[0], + "textShadowOffsetX": props?.titleStyle?.boxShadow?.split('px')[1] || theme?.titleStyle?.boxShadow.split('px')[1], + "textShadowOffsetY": props?.titleStyle?.boxShadow?.split('px')[2] || theme?.titleStyle?.boxShadow.split('px')[2] } }, - "backgroundColor": props?.chartStyle?.gradientBackground && props?.chartStyle?.background - ? { - "x": props?.chartStyle?.direction?.split(' ')[0], - "y": props?.chartStyle?.direction?.split(' ')[1], - "x2": props?.chartStyle?.direction?.split(' ')[2], - "y2": props?.chartStyle?.direction?.split(' ')[3], - "colorStops": [ - { "offset": 0, "color": props?.chartStyle?.opacity ? props?.chartStyle?.background + opacityToHex(props?.chartStyle?.opacity) : props?.chartStyle?.background}, - { "offset": 1, "color": props?.chartStyle?.opacity ? props?.chartStyle?.gradientBackground + opacityToHex(props?.chartStyle?.opacity) : props?.chartStyle?.gradientBackground} - ] - } - : props?.chartStyle?.opacity ? (props?.chartStyle?.background) + opacityToHex(props?.chartStyle?.opacity) : props?.chartStyle?.background, + "backgroundColor": props?.chartStyle?.background || theme?.chartStyle?.backgroundColor, + // ? { + // "x": props?.chartStyle?.direction?.split(' ')[0], + // "y": props?.chartStyle?.direction?.split(' ')[1], + // "x2": props?.chartStyle?.direction?.split(' ')[2], + // "y2": props?.chartStyle?.direction?.split(' ')[3], + // "colorStops": [ + // { "offset": 0, "color": props?.chartStyle?.opacity ? props?.chartStyle?.background + opacityToHex(props?.chartStyle?.opacity) : props?.chartStyle?.background}, + // { "offset": 1, "color": props?.chartStyle?.opacity ? props?.chartStyle?.gradientBackground + opacityToHex(props?.chartStyle?.opacity) : props?.chartStyle?.gradientBackground} + // ] + // } + // : props?.chartStyle?.opacity ? (props?.chartStyle?.background) + opacityToHex(props?.chartStyle?.opacity) : props?.chartStyle?.background, "color": props.echartsOption.data?.map(data => data.color), "tooltip": props.tooltip&&{ "trigger": "item", @@ -173,15 +177,15 @@ export function getEchartsConfig( "data": props.echartsOption.data?.map(data=>data.name), "top": props.echartsLegendConfig.top, "textStyle": { - "fontFamily": props?.legendStyle?.fontFamily, - "fontSize": props?.legendStyle?.textSize, - "fontWeight": props?.legendStyle?.textWeight, - "color": props?.legendStyle?.text, - "fontStyle": props?.legendStyle?.fontStyle, - "textShadowColor": props?.legendStyle?.boxShadowColor, - "textShadowBlur": props?.legendStyle?.boxShadow?.split(' ')[0], - "textShadowOffsetX": props?.legendStyle?.boxShadow?.split(' ')[1], - "textShadowOffsetY": props?.legendStyle?.boxShadow?.split(' ')[2] + "fontFamily": props?.legendStyle?.fontFamily || theme?.legendStyle?.fontFamily, + "fontSize": props?.legendStyle?.textSize || theme?.legendStyle?.fontSize, + "fontWeight": props?.legendStyle?.textWeight || theme?.legendStyle?.fontWeight, + "color": props?.legendStyle?.text || theme?.legendStyle?.fontColor, + "fontStyle": props?.legendStyle?.fontStyle || theme?.legendStyle?.fontStyle, + "textShadowColor": props?.legendStyle?.boxShadowColor || theme?.legendStyle?.shadowColor, + "textShadowBlur": props?.legendStyle?.boxShadow?.split('px')[0] || theme?.legendStyle?.boxShadow.split('px')[0], + "textShadowOffsetX": props?.legendStyle?.boxShadow?.split('px')[1] || theme?.legendStyle?.boxShadow.split('px')[1], + "textShadowOffsetY": props?.legendStyle?.boxShadow?.split('px')[2] || theme?.legendStyle?.boxShadow.split('px')[2] } }, "series": [ @@ -199,27 +203,27 @@ export function getEchartsConfig( "sort": props.echartsSortingConfig.sort, "itemStyle": { "opacity": props.opacity, - "borderColor": props?.chartStyle?.border, - "borderWidth": props?.chartStyle?.borderWidth, - "borderType": props?.chartStyle?.borderStyle, - "borderRadius": props?.chartStyle?.radius, - "shadowColor": props?.chartStyle?.boxShadowColor, - "shadowBlur": props?.chartStyle?.boxShadow?.split(' ')[0], - "shadowOffsetX": props?.chartStyle?.boxShadow?.split(' ')[0], - "shadowOffsetY": props?.chartStyle?.boxShadow?.split(' ')[0] + "borderColor": props?.chartStyle?.border || theme?.chartStyle?.borderColor, + "borderWidth": props?.chartStyle?.borderWidth || theme?.chartStyle?.borderWidth, + "borderType": props?.chartStyle?.borderStyle || theme?.chartStyle?.borderType, + "borderRadius": props?.chartStyle?.radius || theme?.chartStyle?.borderRadius, + "shadowColor": props?.chartStyle?.boxShadowColor || theme?.chartStyle?.shadowColor, + "shadowBlur": props?.chartStyle?.boxShadow?.split('px')[0] || theme?.chartStyle?.boxShadow.split('px')[0], + "shadowOffsetX": props?.chartStyle?.boxShadow?.split('px')[0] || theme?.chartStyle?.boxShadow.split('px')[1], + "shadowOffsetY": props?.chartStyle?.boxShadow?.split('px')[0] || theme?.chartStyle?.boxShadow.split('px')[2] }, "label": { "show": props.label, "position": props.echartsLabelConfig.top, - "fontFamily": props?.labelStyle?.fontFamily, - "fontSize": props?.labelStyle?.textSize, - "fontWeight": props?.labelStyle?.textWeight, - "color": props?.labelStyle?.text, - "fontStyle": props?.labelStyle?.fontStyle, - "textShadowColor": props?.labelStyle?.boxShadowColor, - "textShadowBlur": props?.labelStyle?.boxShadow?.split(' ')[0], - "textShadowOffsetX": props?.labelStyle?.boxShadow?.split(' ')[1], - "textShadowOffsetY": props?.labelStyle?.boxShadow?.split(' ')[2] + "fontFamily": props?.labelStyle?.fontFamily || theme?.labelStyle?.fontFamily, + "fontSize": props?.labelStyle?.textSize || theme?.labelStyle?.fontSize, + "fontWeight": props?.labelStyle?.textWeight || theme?.labelStyle?.fontWeight, + "color": props?.labelStyle?.text || theme?.labelStyle?.fontColor, + "fontStyle": props?.labelStyle?.fontStyle || theme?.labelStyle?.fontStyle, + "textShadowColor": props?.labelStyle?.boxShadowColor || theme?.labelStyle?.shadowColor, + "textShadowBlur": props?.labelStyle?.boxShadow?.split('px')[0] || theme?.labelStyle?.boxShadow.split('px')[0], + "textShadowOffsetX": props?.labelStyle?.boxShadow?.split('px')[1] || theme?.labelStyle?.boxShadow.split('px')[1], + "textShadowOffsetY": props?.labelStyle?.boxShadow?.split('px')[2] || theme?.labelStyle?.boxShadow.split('px')[2] }, "data": props.echartsOption.data } From 1ddd13902d26217efa4a7558c5baaca3311c91c2 Mon Sep 17 00:00:00 2001 From: Imiss-U1025 Date: Thu, 12 Dec 2024 10:05:07 -0500 Subject: [PATCH 47/88] Implemented gradient background color again. --- .../comps/funnelChartComp/funnelChartUtils.ts | 28 +++++++++++-------- .../lowcoder-comps/src/util/opacityToHex.tsx | 20 +++++++++---- 2 files changed, 30 insertions(+), 18 deletions(-) diff --git a/client/packages/lowcoder-comps/src/comps/funnelChartComp/funnelChartUtils.ts b/client/packages/lowcoder-comps/src/comps/funnelChartComp/funnelChartUtils.ts index a255e7864..b7bfaaaaa 100644 --- a/client/packages/lowcoder-comps/src/comps/funnelChartComp/funnelChartUtils.ts +++ b/client/packages/lowcoder-comps/src/comps/funnelChartComp/funnelChartUtils.ts @@ -134,6 +134,10 @@ export function getEchartsConfig( chartSize?: ChartSize, theme?: any, ): EChartsOptionWithMap { + const backgroundColor = props?.chartStyle?.background || theme?.chartStyle?.backgroundColor; + const gradientColor = props?.chartStyle?.gradientBackground || theme?.chartStyle?.gradientColor; + const opacity = props?.chartStyle?.opacity || theme?.chartStyle?.opacity; + const direction = props?.chartStyle?.direction || theme?.chartStyle?.direction; console.log("props", props); console.log("theme", theme); @@ -156,18 +160,18 @@ export function getEchartsConfig( "textShadowOffsetY": props?.titleStyle?.boxShadow?.split('px')[2] || theme?.titleStyle?.boxShadow.split('px')[2] } }, - "backgroundColor": props?.chartStyle?.background || theme?.chartStyle?.backgroundColor, - // ? { - // "x": props?.chartStyle?.direction?.split(' ')[0], - // "y": props?.chartStyle?.direction?.split(' ')[1], - // "x2": props?.chartStyle?.direction?.split(' ')[2], - // "y2": props?.chartStyle?.direction?.split(' ')[3], - // "colorStops": [ - // { "offset": 0, "color": props?.chartStyle?.opacity ? props?.chartStyle?.background + opacityToHex(props?.chartStyle?.opacity) : props?.chartStyle?.background}, - // { "offset": 1, "color": props?.chartStyle?.opacity ? props?.chartStyle?.gradientBackground + opacityToHex(props?.chartStyle?.opacity) : props?.chartStyle?.gradientBackground} - // ] - // } - // : props?.chartStyle?.opacity ? (props?.chartStyle?.background) + opacityToHex(props?.chartStyle?.opacity) : props?.chartStyle?.background, + "backgroundColor": gradientColor && backgroundColor + ? { + "x": direction?.split(' ')[0], + "y": direction?.split(' ')[1], + "x2": direction?.split(' ')[2], + "y2": direction?.split(' ')[3], + "colorStops": [ + { "offset": 0, "color": opacity ? backgroundColor + opacityToHex(opacity) : backgroundColor || "#FFFFFF" }, + { "offset": 1, "color": opacity ? gradientColor + opacityToHex(opacity) : gradientColor || "#FFFFFF" } + ] + } + : backgroundColor + opacityToHex(opacity), "color": props.echartsOption.data?.map(data => data.color), "tooltip": props.tooltip&&{ "trigger": "item", diff --git a/client/packages/lowcoder-comps/src/util/opacityToHex.tsx b/client/packages/lowcoder-comps/src/util/opacityToHex.tsx index d058b4abb..ec6f7774e 100644 --- a/client/packages/lowcoder-comps/src/util/opacityToHex.tsx +++ b/client/packages/lowcoder-comps/src/util/opacityToHex.tsx @@ -1,6 +1,14 @@ -export default function opacityToHex(opacity) { - opacity = Math.max(0, Math.min(1, opacity)); - const decimalValue = Math.round(opacity * 255); - const hexValue = decimalValue.toString(16).toUpperCase(); - return hexValue.padStart(2, '0'); -} +export default function opacityToHex(opacity: any) { + if (opacity === undefined) + return 'FF' + try { + // Ensure opacity is clamped between 0 and 1 + opacity = Math.max(0, Math.min(1, opacity)); + const decimalValue = Math.round(opacity * 255); + const hexValue = decimalValue.toString(16).toUpperCase(); + return hexValue.padStart(2, '0'); + } catch (error) { + // Return 'FF' if an exception occurs + return 'FF'; + } +} \ No newline at end of file From 20458230c39d46183c7ddc8eebe2c116e5900c8a Mon Sep 17 00:00:00 2001 From: Imiss-U1025 Date: Thu, 12 Dec 2024 13:00:24 -0500 Subject: [PATCH 48/88] Fixed an issue that update-on-action when activating /deactivating prevent overwriting styles. --- .../src/comps/funnelChartComp/funnelChartComp.tsx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/client/packages/lowcoder-comps/src/comps/funnelChartComp/funnelChartComp.tsx b/client/packages/lowcoder-comps/src/comps/funnelChartComp/funnelChartComp.tsx index b8c49955d..57ae6adad 100644 --- a/client/packages/lowcoder-comps/src/comps/funnelChartComp/funnelChartComp.tsx +++ b/client/packages/lowcoder-comps/src/comps/funnelChartComp/funnelChartComp.tsx @@ -140,14 +140,14 @@ FunnelChartTmpComp = withViewFn(FunnelChartTmpComp, (comp) => { }; }, [onUIEvent]); - const echartsConfigChildren = _.omit(comp.children, echartsConfigOmitChildren); + let echartsConfigChildren = _.omit(comp.children, echartsConfigOmitChildren); const option = useMemo(() => { return getEchartsConfig( childrenToProps(echartsConfigChildren) as ToViewReturn, chartSize, themeConfig, ); - }, [chartSize, ...Object.values(echartsConfigChildren), theme]); + }, [chartSize, ...Object.values(echartsConfigChildren), theme, childrenToProps(echartsConfigChildren)]); useEffect(() => { comp.children.mapInstance.dispatch(changeValueAction(null, false)) From b77d3e047084c62d2a161fb8b8022627ba6990c0 Mon Sep 17 00:00:00 2001 From: Imiss-U1025 Date: Thu, 12 Dec 2024 13:00:51 -0500 Subject: [PATCH 49/88] Fixed direction on theme setting. --- .../src/components/ThemeSettingsCompStyles.tsx | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/client/packages/lowcoder/src/components/ThemeSettingsCompStyles.tsx b/client/packages/lowcoder/src/components/ThemeSettingsCompStyles.tsx index c34f5e5c8..a3d0d232f 100644 --- a/client/packages/lowcoder/src/components/ThemeSettingsCompStyles.tsx +++ b/client/packages/lowcoder/src/components/ThemeSettingsCompStyles.tsx @@ -25,7 +25,7 @@ import { TextStyleIcon, ImageCompIconSmall, RotationIcon, - LineHeightIcon + LineHeightIcon, } from "lowcoder-design/src/icons"; import { trans } from "i18n"; import { debounce } from "lodash"; @@ -101,7 +101,8 @@ const isColorStyle = (styleKey: string) => { styleKey !== 'containerHeaderPadding' && styleKey !== 'containerSiderPadding' && styleKey !== 'containerFooterPadding' && - styleKey !== 'containerBodyPadding'; + styleKey !== 'containerBodyPadding' && + styleKey !== 'direction'; } @@ -275,6 +276,10 @@ export default function ThemeSettingsCompStyles(props: CompStyleProps) { placeholder = '0deg'; break; } + case 'direction': { + placeholder = '0 0 1 1'; + break; + } } return placeholder; } @@ -380,6 +385,10 @@ export default function ThemeSettingsCompStyles(props: CompStyleProps) { icon = ; break; } + case 'direction': { + icon = ; + break; + } } return icon; } From 216b75373b33c9a9c5def17afb8b2f93d0f7f867 Mon Sep 17 00:00:00 2001 From: Imiss-U1025 Date: Thu, 12 Dec 2024 14:27:09 -0500 Subject: [PATCH 50/88] Added chartOpacity, chartBoxShadow, chartBorderStyle, chartBorderRadius, chartBorderWidth, chartTextSize, chartTextWeight, chartFontFamily, chartFontStyle as StringControl. --- .../comps/funnelChartComp/funnelChartUtils.ts | 60 +- .../components/ThemeSettingsCompStyles.tsx | 85 ++- .../src/comps/controls/styleControl.tsx | 586 +++++++++++++----- .../comps/controls/styleControlConstants.tsx | 119 +++- .../lowcoder/src/constants/themeConstants.ts | 1 - 5 files changed, 644 insertions(+), 207 deletions(-) diff --git a/client/packages/lowcoder-comps/src/comps/funnelChartComp/funnelChartUtils.ts b/client/packages/lowcoder-comps/src/comps/funnelChartComp/funnelChartUtils.ts index b7bfaaaaa..2cdd7a6c0 100644 --- a/client/packages/lowcoder-comps/src/comps/funnelChartComp/funnelChartUtils.ts +++ b/client/packages/lowcoder-comps/src/comps/funnelChartComp/funnelChartUtils.ts @@ -134,9 +134,13 @@ export function getEchartsConfig( chartSize?: ChartSize, theme?: any, ): EChartsOptionWithMap { + + console.log("props", props); + console.log("theme", theme); + const backgroundColor = props?.chartStyle?.background || theme?.chartStyle?.backgroundColor; const gradientColor = props?.chartStyle?.gradientBackground || theme?.chartStyle?.gradientColor; - const opacity = props?.chartStyle?.opacity || theme?.chartStyle?.opacity; + const opacity = props?.chartStyle?.chartOpacity || theme?.chartStyle?.opacity; const direction = props?.chartStyle?.direction || theme?.chartStyle?.direction; console.log("props", props); @@ -149,15 +153,15 @@ export function getEchartsConfig( 'top': props.echartsLegendConfig.top === 'bottom' ?'top':'bottom', "left":props.echartsTitleConfig.top, "textStyle": { - "fontFamily": props?.titleStyle?.fontFamily || theme?.titleStyle?.fontFamily, - "fontSize": props?.titleStyle?.textSize || theme?.titleStyle?.fontSize, - "fontWeight": props?.titleStyle?.textWeight || theme?.titleStyle?.fontWeight, + "fontFamily": props?.titleStyle?.chartFontFamily || theme?.titleStyle?.fontFamily, + "fontSize": props?.titleStyle?.chartTextSize || theme?.titleStyle?.fontSize, + "fontWeight": props?.titleStyle?.chartTextWeight || theme?.titleStyle?.fontWeight, "color": props?.titleStyle?.text || theme?.titleStyle?.fontColor, - "fontStyle": props?.titleStyle?.fontStyle || theme?.titleStyle?.fontStyle, + "fontStyle": props?.titleStyle?.chartFontStyle || theme?.titleStyle?.fontStyle, "textShadowColor": props?.titleStyle?.boxShadowColor || theme?.titleStyle?.shadowColor, - "textShadowBlur": props?.titleStyle?.boxShadow?.split('px')[0] || theme?.titleStyle?.boxShadow.split('px')[0], - "textShadowOffsetX": props?.titleStyle?.boxShadow?.split('px')[1] || theme?.titleStyle?.boxShadow.split('px')[1], - "textShadowOffsetY": props?.titleStyle?.boxShadow?.split('px')[2] || theme?.titleStyle?.boxShadow.split('px')[2] + "textShadowBlur": props?.titleStyle?.chartBoxShadow?.split('px')[0] || theme?.titleStyle?.boxShadow.split('px')[0], + "textShadowOffsetX": props?.titleStyle?.chartBoxShadow?.split('px')[1] || theme?.titleStyle?.boxShadow.split('px')[1], + "textShadowOffsetY": props?.titleStyle?.chartBoxShadow?.split('px')[2] || theme?.titleStyle?.boxShadow.split('px')[2] } }, "backgroundColor": gradientColor && backgroundColor @@ -181,15 +185,15 @@ export function getEchartsConfig( "data": props.echartsOption.data?.map(data=>data.name), "top": props.echartsLegendConfig.top, "textStyle": { - "fontFamily": props?.legendStyle?.fontFamily || theme?.legendStyle?.fontFamily, - "fontSize": props?.legendStyle?.textSize || theme?.legendStyle?.fontSize, - "fontWeight": props?.legendStyle?.textWeight || theme?.legendStyle?.fontWeight, + "fontFamily": props?.legendStyle?.chartFontFamily || theme?.legendStyle?.fontFamily, + "fontSize": props?.legendStyle?.chartTextSize || theme?.legendStyle?.fontSize, + "fontWeight": props?.legendStyle?.chartTextWeight || theme?.legendStyle?.fontWeight, "color": props?.legendStyle?.text || theme?.legendStyle?.fontColor, - "fontStyle": props?.legendStyle?.fontStyle || theme?.legendStyle?.fontStyle, + "fontStyle": props?.legendStyle?.chartFontStyle || theme?.legendStyle?.fontStyle, "textShadowColor": props?.legendStyle?.boxShadowColor || theme?.legendStyle?.shadowColor, - "textShadowBlur": props?.legendStyle?.boxShadow?.split('px')[0] || theme?.legendStyle?.boxShadow.split('px')[0], - "textShadowOffsetX": props?.legendStyle?.boxShadow?.split('px')[1] || theme?.legendStyle?.boxShadow.split('px')[1], - "textShadowOffsetY": props?.legendStyle?.boxShadow?.split('px')[2] || theme?.legendStyle?.boxShadow.split('px')[2] + "textShadowBlur": props?.legendStyle?.chartBoxShadow?.split('px')[0] || theme?.legendStyle?.boxShadow.split('px')[0], + "textShadowOffsetX": props?.legendStyle?.chartBoxShadow?.split('px')[1] || theme?.legendStyle?.boxShadow.split('px')[1], + "textShadowOffsetY": props?.legendStyle?.chartBoxShadow?.split('px')[2] || theme?.legendStyle?.boxShadow.split('px')[2] } }, "series": [ @@ -208,26 +212,26 @@ export function getEchartsConfig( "itemStyle": { "opacity": props.opacity, "borderColor": props?.chartStyle?.border || theme?.chartStyle?.borderColor, - "borderWidth": props?.chartStyle?.borderWidth || theme?.chartStyle?.borderWidth, - "borderType": props?.chartStyle?.borderStyle || theme?.chartStyle?.borderType, - "borderRadius": props?.chartStyle?.radius || theme?.chartStyle?.borderRadius, + "borderWidth": props?.chartStyle?.chartBorderWidth || theme?.chartStyle?.borderWidth, + "borderType": props?.chartStyle?.chartBorderStyle || theme?.chartStyle?.borderType, + "borderRadius": props?.chartStyle?.chartBorderRadius || theme?.chartStyle?.borderRadius, "shadowColor": props?.chartStyle?.boxShadowColor || theme?.chartStyle?.shadowColor, - "shadowBlur": props?.chartStyle?.boxShadow?.split('px')[0] || theme?.chartStyle?.boxShadow.split('px')[0], - "shadowOffsetX": props?.chartStyle?.boxShadow?.split('px')[0] || theme?.chartStyle?.boxShadow.split('px')[1], - "shadowOffsetY": props?.chartStyle?.boxShadow?.split('px')[0] || theme?.chartStyle?.boxShadow.split('px')[2] + "shadowBlur": props?.chartStyle?.chartBoxShadow?.split('px')[0] || theme?.chartStyle?.boxShadow.split('px')[0], + "shadowOffsetX": props?.chartStyle?.chartBoxShadow?.split('px')[0] || theme?.chartStyle?.boxShadow.split('px')[1], + "shadowOffsetY": props?.chartStyle?.chartBoxShadow?.split('px')[0] || theme?.chartStyle?.boxShadow.split('px')[2] }, "label": { "show": props.label, "position": props.echartsLabelConfig.top, - "fontFamily": props?.labelStyle?.fontFamily || theme?.labelStyle?.fontFamily, - "fontSize": props?.labelStyle?.textSize || theme?.labelStyle?.fontSize, - "fontWeight": props?.labelStyle?.textWeight || theme?.labelStyle?.fontWeight, + "fontFamily": props?.labelStyle?.chartFontFamily || theme?.labelStyle?.fontFamily, + "fontSize": props?.labelStyle?.chartTextSize || theme?.labelStyle?.fontSize, + "fontWeight": props?.labelStyle?.chartTextWeight || theme?.labelStyle?.fontWeight, "color": props?.labelStyle?.text || theme?.labelStyle?.fontColor, - "fontStyle": props?.labelStyle?.fontStyle || theme?.labelStyle?.fontStyle, + "fontStyle": props?.labelStyle?.chartFontStyle || theme?.labelStyle?.fontStyle, "textShadowColor": props?.labelStyle?.boxShadowColor || theme?.labelStyle?.shadowColor, - "textShadowBlur": props?.labelStyle?.boxShadow?.split('px')[0] || theme?.labelStyle?.boxShadow.split('px')[0], - "textShadowOffsetX": props?.labelStyle?.boxShadow?.split('px')[1] || theme?.labelStyle?.boxShadow.split('px')[1], - "textShadowOffsetY": props?.labelStyle?.boxShadow?.split('px')[2] || theme?.labelStyle?.boxShadow.split('px')[2] + "textShadowBlur": props?.labelStyle?.chartBoxShadow?.split('px')[0] || theme?.labelStyle?.boxShadow.split('px')[0], + "textShadowOffsetX": props?.labelStyle?.chartBoxShadow?.split('px')[1] || theme?.labelStyle?.boxShadow.split('px')[1], + "textShadowOffsetY": props?.labelStyle?.chartBoxShadow?.split('px')[2] || theme?.labelStyle?.boxShadow.split('px')[2] }, "data": props.echartsOption.data } diff --git a/client/packages/lowcoder/src/components/ThemeSettingsCompStyles.tsx b/client/packages/lowcoder/src/components/ThemeSettingsCompStyles.tsx index a3d0d232f..302a3fffc 100644 --- a/client/packages/lowcoder/src/components/ThemeSettingsCompStyles.tsx +++ b/client/packages/lowcoder/src/components/ThemeSettingsCompStyles.tsx @@ -102,7 +102,16 @@ const isColorStyle = (styleKey: string) => { styleKey !== 'containerSiderPadding' && styleKey !== 'containerFooterPadding' && styleKey !== 'containerBodyPadding' && - styleKey !== 'direction'; + styleKey !== 'direction' && + styleKey !== 'chartOpacity' && + styleKey !== 'chartBoxShadow' && + styleKey !== 'chartBorderStyle' && + styleKey !== 'chartBorderRadius' && + styleKey !== 'chartBorderWidth' && + styleKey !== 'chartTextSize' && + styleKey !== 'chartTextWeight' && + styleKey !== 'chartFontFamily' && + styleKey !== 'chartFontStyle'; } @@ -280,6 +289,43 @@ export default function ThemeSettingsCompStyles(props: CompStyleProps) { placeholder = '0 0 1 1'; break; } + case 'chartOpacity': { + placeholder = '1'; + break; + } + case 'chartBoxShadow': { + placeholder = '1px 1px 1px'; + break; + } + case 'chartBorderStyle': { + placeholder = 'solid'; + break; + } + case 'chartBorderRadius': { + placeholder = '1px'; + break; + } + case 'chartBorderWidth': { + placeholder = '1px'; + break; + } + case 'chartTextSize': { + placeholder = '14px'; + break; + } + case 'chartTextWeight': { + placeholder = 'normal'; + break; + } + case 'chartFontFamily': { + placeholder = 'Arial'; + break; + } + case 'chartFontStyle': { + placeholder = 'normal'; + break; + } + } return placeholder; } @@ -389,6 +435,43 @@ export default function ThemeSettingsCompStyles(props: CompStyleProps) { icon = ; break; } + case 'chartOpacity': { + icon = ; + break; + } + case 'chartBoxShadow': { + icon = ; + break; + } + case 'chartBorderStyle': { + icon = ; + break; + } + case 'chartBorderRadius': { + icon = ; + break; + } + case 'chartBorderWidth': { + icon = ; + break; + } + case 'chartTextSize': { + icon = ; + break; + } + case 'chartTextWeight': { + icon = ; + break; + } + case 'chartFontFamily': { + icon = ; + break; + } + case 'chartFontStyle': { + icon = ; + break; + } + } return icon; } diff --git a/client/packages/lowcoder/src/comps/controls/styleControl.tsx b/client/packages/lowcoder/src/comps/controls/styleControl.tsx index 02d572f05..5b5d52f0e 100644 --- a/client/packages/lowcoder/src/comps/controls/styleControl.tsx +++ b/client/packages/lowcoder/src/comps/controls/styleControl.tsx @@ -44,6 +44,15 @@ import { SingleColorConfig, MarginConfig, DirectionConfig, + ChartOpacityConfig, + ChartBoxShadowConfig, + ChartBorderStyleConfig, + ChartBorderRadiusConfig, + ChartBorderWidthConfig, + ChartTextSizeConfig, + ChartTextWeightConfig, + ChartFontFamilyConfig, + ChartFontStyleConfig, PaddingConfig, TextSizeConfig, TextWeightConfig, @@ -195,6 +204,42 @@ function isDirectionConfig(config: SingleColorConfig): config is DirectionConfig return config.hasOwnProperty("direction"); } +function isChartOpacityConfig(config: SingleColorConfig): config is ChartOpacityConfig { + return config.hasOwnProperty("chartOpacity"); +} + +function isChartBoxShadowConfig(config: SingleColorConfig): config is ChartBoxShadowConfig { + return config.hasOwnProperty("chartBoxShadow"); +} + +function isChartBorderStyleConfig(config: SingleColorConfig): config is ChartBorderStyleConfig { + return config.hasOwnProperty("chartBorderStyle"); +} + +function isChartBorderRadiusConfig(config: SingleColorConfig): config is ChartBorderRadiusConfig { + return config.hasOwnProperty("chartBorderRadius"); +} + +function isChartBorderWidthConfig(config: SingleColorConfig): config is ChartBorderWidthConfig { + return config.hasOwnProperty("chartBorderWidth"); +} + +function isChartTextSizeConfig(config: SingleColorConfig): config is ChartTextSizeConfig { + return config.hasOwnProperty("chartTextSize"); +} + +function isChartTextWeightConfig(config: SingleColorConfig): config is ChartTextWeightConfig { + return config.hasOwnProperty("chartTextWeight"); +} + +function isChartFontFamilyConfig(config: SingleColorConfig): config is ChartFontFamilyConfig { + return config.hasOwnProperty("chartFontFamily"); +} + +function isChartFontStyleConfig(config: SingleColorConfig): config is ChartFontStyleConfig { + return config.hasOwnProperty("chartFontStyle"); +} + function isBoxShadowConfig( config: SingleColorConfig ): config is BoxShadowConfig { @@ -334,6 +379,33 @@ function isEmptyMargin(margin: string) { function isEmptyDirection(direction: string) { return _.isEmpty(direction); } +function isEmptyChartOpacity(chartOpacity: string) { + return _.isEmpty(chartOpacity); +} +function isEmptyChartBoxShadow(chartBoxShadow: string) { + return _.isEmpty(chartBoxShadow); +} +function isEmptyChartBorderStyle(chartBorderStyle: string) { + return _.isEmpty(chartBorderStyle); +} +function isEmptyChartBorderRadius(chartBorderRadius: string) { + return _.isEmpty(chartBorderRadius); +} +function isEmptyChartBorderWidth(chartBorderWidth: string) { + return _.isEmpty(chartBorderWidth); +} +function isEmptyChartTextSize(chartTextSize: string) { + return _.isEmpty(chartTextSize); +} +function isEmptyChartTextWeight(chartTextWeight: string) { + return _.isEmpty(chartTextWeight); +} +function isEmptyChartFontFamily(chartFontFamily: string) { + return _.isEmpty(chartFontFamily); +} +function isEmptyChartFontStyle(chartFontStyle: string) { + return _.isEmpty(chartFontStyle); +} function isEmptyPadding(padding: string) { return _.isEmpty(padding); } @@ -505,6 +577,42 @@ function calcColors>( res[name] = props[name]; return; } + if (!isEmptyChartOpacity(props[name]) && isChartOpacityConfig(config)) { + res[name] = props[name]; + return; + } + if (!isEmptyChartBoxShadow(props[name]) && isChartBoxShadowConfig(config)) { + res[name] = props[name]; + return; + } + if (!isEmptyChartBorderStyle(props[name]) && isChartBorderStyleConfig(config)) { + res[name] = props[name]; + return; + } + if (!isEmptyChartBorderRadius(props[name]) && isChartBorderRadiusConfig(config)) { + res[name] = props[name]; + return; + } + if (!isEmptyChartBorderWidth(props[name]) && isChartBorderWidthConfig(config)) { + res[name] = props[name]; + return; + } + if (!isEmptyChartTextSize(props[name]) && isChartTextSizeConfig(config)) { + res[name] = props[name]; + return; + } + if (!isEmptyChartTextWeight(props[name]) && isChartTextWeightConfig(config)) { + res[name] = props[name]; + return; + } + if (!isEmptyChartFontFamily(props[name]) && isChartFontFamilyConfig(config)) { + res[name] = props[name]; + return; + } + if (!isEmptyChartFontStyle(props[name]) && isChartFontStyleConfig(config)) { + res[name] = props[name]; + return; + } if (!isEmptyPadding(props[name]) && isPaddingConfig(config)) { res[name] = props[name]; return; @@ -637,6 +745,33 @@ function calcColors>( if (isDirectionConfig(config)) { res[name] = themeWithDefault[config.direction] || '0 0 1 1'; } + if (isChartOpacityConfig(config)) { + res[name] = themeWithDefault[config.chartOpacity] || '1'; + } + if (isChartBoxShadowConfig(config)) { + res[name] = themeWithDefault[config.chartBoxShadow] || '1px 1px 1px'; + } + if (isChartBorderStyleConfig(config)) { + res[name] = themeWithDefault[config.chartBorderStyle] || 'solid'; + } + if (isChartBorderRadiusConfig(config)) { + res[name] = themeWithDefault[config.chartBorderRadius] || '1px'; + } + if (isChartBorderWidthConfig(config)) { + res[name] = themeWithDefault[config.chartBorderWidth] || '1px'; + } + if (isChartTextSizeConfig(config)) { + res[name] = themeWithDefault[config.chartTextSize] || '14px'; + } + if (isChartTextWeightConfig(config)) { + res[name] = themeWithDefault[config.chartTextWeight] || 'normal'; + } + if (isChartFontFamilyConfig(config)) { + res[name] = themeWithDefault[config.chartFontFamily] || 'Arial'; + } + if (isChartFontStyleConfig(config)) { + res[name] = themeWithDefault[config.chartFontStyle] || 'normal'; + } if (isPaddingConfig(config)) { res[name] = themeWithDefault[config.padding]; } @@ -783,6 +918,15 @@ const LineHeightPropIcon = styled(LineHeightIcon)` const MarginIcon = styled(ExpandIcon)` margin: 0 8px 0 2px; color: #888`; const DirectionIcon = styled(ExpandIcon)` margin: 0 8px 0 2px; color: #888`; +const ChartOpacity = styled(OpacityIcon)` margin: 0 8px 0 2px; color: #888`; +const ChartBoxShadow = styled(ShadowIcon)` margin: 0 8px 0 2px; color: #888`; +const ChartBorderStyle = styled(BorderStyleIcon)` margin: 0 8px 0 2px; color: #888`; +const ChartBorderRadius = styled(BorderRadiusIcon)` margin: 0 8px 0 2px; color: #888`; +const ChartBorderWidth = styled(BorderWidthIcon)` margin: 0 8px 0 2px; color: #888`; +const ChartTextSize = styled(TextSizeIcon)` margin: 0 8px 0 2px; color: #888`; +const ChartTextWeight = styled(TextWeightIcon)` margin: 0 8px 0 2px; color: #888`; +const ChartFontFamily = styled(FontFamilyIcon)` margin: 0 8px 0 2px; color: #888`; +const ChartFontStyle = styled(TextStyleIcon)` margin: 0 8px 0 2px; color: #888`; const PaddingIcon = styled(CompressIcon)` margin: 0 8px 0 2px; color: #888`; const RadiusPropIcon = styled(BorderRadiusIcon)` width: 24px; margin: 0 11px 0 0px; color: #888`; const BorderPropIcon = styled(BorderWidthIcon)` margin: 0 8px 0 -3px; padding: 3px; color: #888`; @@ -930,6 +1074,15 @@ export function styleControl( name === 'footerBackgroundImageOrigin' || name === 'margin' || name === 'direction' || + name === 'chartOpacity' || + name === 'chartBoxShadow' || + name === 'chartBorderStyle' || + name === 'chartBorderRadius' || + name === 'chartBorderWidth' || + name === 'chartTextSize' || + name === 'chartTextWeight' || + name === 'chartFontFamily' || + name === 'chartFontStyle' || name === 'padding' || name === 'containerHeaderPadding' || name === 'containerSiderPadding' || @@ -1002,6 +1155,15 @@ export function styleControl( name === 'radius' || name === 'margin' || name === 'direction' || + name === 'chartOpacity' || + name === 'chartBoxShadow' || + name === 'chartBorderStyle' || + name === 'chartBorderRadius' || + name === 'chartBorderWidth' || + name === 'chartTextSize' || + name === 'chartTextWeight' || + name === 'chartFontFamily' || + name === 'chartFontStyle' || name === 'padding' || name === 'containerHeaderPadding' || name === 'containerSiderPadding' || @@ -1124,277 +1286,367 @@ export function styleControl( preInputNode: , placeholder: props[name], }) - : name === 'animationIterationCount' - ? ( + : name === 'chartOpacity' + ? ( children[name] as InstanceType< typeof StringControl > ).propertyView({ label: config.label, - preInputNode: ( - - ), + preInputNode: , placeholder: props[name], }) - : name === 'opacity' - ? ( + : name === 'chartBoxShadow' + ? ( children[name] as InstanceType< typeof StringControl > ).propertyView({ label: config.label, - preInputNode: ( - - ), + preInputNode: , placeholder: props[name], }) - : name === 'boxShadowColor' - ? ( - children[name] as InstanceType< - typeof StringControl - > - ).propertyView({ - label: config.label, - preInputNode: ( - - ), - placeholder: props[name], - }) - : name === 'boxShadow' - ? ( + : name === 'chartBorderStyle' + ? ( children[name] as InstanceType< typeof StringControl > ).propertyView({ label: config.label, - preInputNode: ( - - ), + preInputNode: , placeholder: props[name], }) - : name === 'animation' - ? ( + : name === 'chartBorderRadius' + ? ( children[name] as InstanceType< typeof StringControl > ).propertyView({ label: config.label, - preInputNode: ( - - ), + preInputNode: , placeholder: props[name], }) - : name === 'animationDelay' - ? ( + : name === 'chartBorderWidth' + ? ( children[name] as InstanceType< typeof StringControl > ).propertyView({ label: config.label, - preInputNode: ( - - ), + preInputNode: , placeholder: props[name], }) - : name === 'animationDuration' - ? ( + : name === 'chartTextSize' + ? ( children[name] as InstanceType< typeof StringControl > ).propertyView({ label: config.label, - preInputNode: ( - - ), + preInputNode: , placeholder: props[name], }) - : name === 'padding' || - name === - 'containerHeaderPadding' || - name === - 'containerSiderPadding' || - name === - 'containerFooterPadding' || - name === 'containerBodyPadding' + : name === 'chartTextWeight' ? ( + children[name] as InstanceType< + typeof StringControl + > + ).propertyView({ + label: config.label, + preInputNode: , + placeholder: props[name], + }) + : name === 'chartFontFamily' + ? ( children[name] as InstanceType< typeof StringControl > ).propertyView({ label: config.label, - preInputNode: ( - - ), + preInputNode: , placeholder: props[name], }) - : name === 'textSize' - ? ( - children[ - name - ] as InstanceType< + : name === 'chartFontStyle' + ? ( + children[name] as InstanceType< typeof StringControl > ).propertyView({ label: config.label, - preInputNode: ( - - ), + preInputNode: , placeholder: props[name], }) - : name === 'textWeight' - ? ( - children[ - name - ] as InstanceType< - typeof StringControl - > - ).propertyView({ - label: config.label, - preInputNode: ( - - ), - placeholder: props[name], - }) - : name === 'fontFamily' + : name === 'animationIterationCount' ? ( - children[ - name - ] as InstanceType< + children[name] as InstanceType< typeof StringControl > ).propertyView({ label: config.label, preInputNode: ( - + ), placeholder: props[name], }) - : name === 'textDecoration' + : name === 'opacity' ? ( - children[ - name - ] as InstanceType< + children[name] as InstanceType< typeof StringControl > ).propertyView({ label: config.label, preInputNode: ( - + ), - placeholder: - props[name], + placeholder: props[name], }) - : name === 'textTransform' + : name === 'boxShadowColor' ? ( - children[ - name - ] as InstanceType< + children[name] as InstanceType< typeof StringControl > ).propertyView({ label: config.label, preInputNode: ( - + ), - placeholder: - props[name], + placeholder: props[name], }) - : name === 'fontStyle' + : name === 'boxShadow' + ? ( + children[name] as InstanceType< + typeof StringControl + > + ).propertyView({ + label: config.label, + preInputNode: ( + + ), + placeholder: props[name], + }) + : name === 'animation' ? ( - children[ - name - ] as InstanceType< + children[name] as InstanceType< typeof StringControl > ).propertyView({ label: config.label, preInputNode: ( - + ), - placeholder: - props[name], + placeholder: props[name], }) - : name === - 'backgroundImage' || - name === - 'headerBackgroundImage' || - name === - 'footerBackgroundImage' + : name === 'animationDelay' ? ( - children[ - name - ] as InstanceType< + children[name] as InstanceType< typeof StringControl > ).propertyView({ - label: - config.label, + label: config.label, preInputNode: ( - + ), - placeholder: - props[name], + placeholder: props[name], }) - : name === - 'backgroundImageRepeat' || - name === - 'headerBackgroundImageRepeat' || - name === - 'footerBackgroundImageRepeat' + : name === 'animationDuration' ? ( - children[ - name - ] as InstanceType< + children[name] as InstanceType< typeof StringControl > ).propertyView({ - label: - config.label, + label: config.label, preInputNode: ( - + ), - placeholder: - props[name], - }) - : name === - 'rotation' - ? ( - children[ - name - ] as InstanceType< - typeof StringControl - > - ).propertyView({ - label: - config.label, - preInputNode: - ( - - ), - placeholder: - props[name], - }) - : name === 'lineHeight' // Added lineHeight here - ? ( - children[name] as InstanceType - ).propertyView({ - label: config.label, - preInputNode: , placeholder: props[name], }) - : children[ - name - ].propertyView({ - label: - config.label, - panelDefaultColor: - props[name], - // isDep: isDepColorConfig(config), - isDep: true, - depMsg: - depMsg, - allowGradient: config.name.includes('background'), - })} + : name === 'padding' || + name === + 'containerHeaderPadding' || + name === + 'containerSiderPadding' || + name === + 'containerFooterPadding' || + name === 'containerBodyPadding' + ? ( + children[name] as InstanceType< + typeof StringControl + > + ).propertyView({ + label: config.label, + preInputNode: ( + + ), + placeholder: props[name], + }) + : name === 'textSize' + ? ( + children[ + name + ] as InstanceType< + typeof StringControl + > + ).propertyView({ + label: config.label, + preInputNode: ( + + ), + placeholder: props[name], + }) + : name === 'textWeight' + ? ( + children[ + name + ] as InstanceType< + typeof StringControl + > + ).propertyView({ + label: config.label, + preInputNode: ( + + ), + placeholder: props[name], + }) + : name === 'fontFamily' + ? ( + children[ + name + ] as InstanceType< + typeof StringControl + > + ).propertyView({ + label: config.label, + preInputNode: ( + + ), + placeholder: props[name], + }) + : name === 'textDecoration' + ? ( + children[ + name + ] as InstanceType< + typeof StringControl + > + ).propertyView({ + label: config.label, + preInputNode: ( + + ), + placeholder: + props[name], + }) + : name === 'textTransform' + ? ( + children[ + name + ] as InstanceType< + typeof StringControl + > + ).propertyView({ + label: config.label, + preInputNode: ( + + ), + placeholder: + props[name], + }) + : name === 'fontStyle' + ? ( + children[ + name + ] as InstanceType< + typeof StringControl + > + ).propertyView({ + label: config.label, + preInputNode: ( + + ), + placeholder: + props[name], + }) + : name === + 'backgroundImage' || + name === + 'headerBackgroundImage' || + name === + 'footerBackgroundImage' + ? ( + children[ + name + ] as InstanceType< + typeof StringControl + > + ).propertyView({ + label: + config.label, + preInputNode: ( + + ), + placeholder: + props[name], + }) + : name === + 'backgroundImageRepeat' || + name === + 'headerBackgroundImageRepeat' || + name === + 'footerBackgroundImageRepeat' + ? ( + children[ + name + ] as InstanceType< + typeof StringControl + > + ).propertyView({ + label: + config.label, + preInputNode: ( + + ), + placeholder: + props[name], + }) + : name === + 'rotation' + ? ( + children[ + name + ] as InstanceType< + typeof StringControl + > + ).propertyView({ + label: + config.label, + preInputNode: + ( + + ), + placeholder: + props[name], + }) + : name === 'lineHeight' // Added lineHeight here + ? ( + children[name] as InstanceType + ).propertyView({ + label: config.label, + preInputNode: , + placeholder: props[name], + }) + : children[ + name + ].propertyView({ + label: + config.label, + panelDefaultColor: + props[name], + // isDep: isDepColorConfig(config), + isDep: true, + depMsg: + depMsg, + allowGradient: config.name.includes('background'), + })} ); })} diff --git a/client/packages/lowcoder/src/comps/controls/styleControlConstants.tsx b/client/packages/lowcoder/src/comps/controls/styleControlConstants.tsx index da2bd087c..a2193b3a8 100644 --- a/client/packages/lowcoder/src/comps/controls/styleControlConstants.tsx +++ b/client/packages/lowcoder/src/comps/controls/styleControlConstants.tsx @@ -169,6 +169,42 @@ export type DirectionConfig = CommonColorConfig & { readonly direction: string; }; +export type ChartOpacityConfig = CommonColorConfig & { + readonly chartOpacity: string; +}; + +export type ChartBoxShadowConfig = CommonColorConfig & { + readonly chartBoxShadow: string; +}; + +export type ChartBorderStyleConfig = CommonColorConfig & { + readonly chartBorderStyle: string; +}; + +export type ChartBorderRadiusConfig = CommonColorConfig & { + readonly chartBorderRadius: string; +}; + +export type ChartBorderWidthConfig = CommonColorConfig & { + readonly chartBorderWidth: string; +}; + +export type ChartTextSizeConfig = CommonColorConfig & { + readonly chartTextSize: string; +}; + +export type ChartTextWeightConfig = CommonColorConfig & { + readonly chartTextWeight: string; +}; + +export type ChartFontFamilyConfig = CommonColorConfig & { + readonly chartFontFamily: string; +}; + +export type ChartFontStyleConfig = CommonColorConfig & { + readonly chartFontStyle: string; +}; + export type PaddingConfig = CommonColorConfig & { readonly padding: string; }; @@ -208,6 +244,15 @@ export type SingleColorConfig = | FontStyleConfig | MarginConfig | DirectionConfig + | ChartOpacityConfig + | ChartBoxShadowConfig + | ChartBorderStyleConfig + | ChartBorderRadiusConfig + | ChartBorderWidthConfig + | ChartTextSizeConfig + | ChartTextWeightConfig + | ChartFontFamilyConfig + | ChartFontStyleConfig | PaddingConfig | ContainerHeaderPaddingConfig | ContainerSiderPaddingConfig @@ -559,6 +604,60 @@ const DIRECTION = { direction: "direction", } as const; +const CHARTOPACITY = { + name: "chartOpacity", + label: trans("style.opacity"), + chartOpacity: "chartOpacity", +} as const; + +const CHARTBOXSHADOW = { + name: "chartBoxShadow", + label: trans("style.boxShadow"), + chartBoxShadow: "chartBoxShadow", +} as const; + +const CHARTBORDERSTYLE = { + name: "chartBorderStyle", + label: trans("style.borderStyle"), + chartBorderStyle: "chartBorderStyle", +} as const; + +const CHARTBORDERRADIUS = { + name: "chartBorderRadius", + label: trans("style.borderRadius"), + chartBorderRadius: "chartBorderRadius", +} as const; + +const CHARTBORDERWIDTH = { + name: "chartBorderWidth", + label: trans("style.borderWidth"), + chartBorderWidth: "chartBorderWidth", +} as const; + +const CHARTTEXTSIZE = { + name: "chartTextSize", + label: trans("style.textSize"), + chartTextSize: "chartTextSize", +} as const; + +const CHARTTEXTWEIGHT = { + name: "chartTextWeight", + label: trans("style.textWeight"), + chartTextWeight: "chartTextWeight", +} as const; + +const CHARTFONTFAMILY = { + name: "chartFontFamily", + label: trans("style.fontFamily"), + chartFontFamily: "chartFontFamily", +} as const; + +const CHARTFONTSTYLE = { + name: "chartFontStyle", + label: trans("style.fontStyle"), + chartFontStyle: "chartFontStyle", +} as const; + const PADDING = { name: "padding", label: trans("style.padding"), @@ -1816,25 +1915,25 @@ export const EchartsStyle = [getBackground("primarySurface")] as const; export const FunnelTextStyle = [ TEXT, - TEXT_SIZE, - TEXT_WEIGHT, - FONT_FAMILY, - FONT_STYLE, + CHARTTEXTSIZE, + CHARTTEXTWEIGHT, + CHARTFONTFAMILY, + CHARTFONTSTYLE, BOXSHADOWCOLOR, - BOXSHADOW, + CHARTBOXSHADOW, ] as const; export const FunnelChartStyle = [ getBackground("primarySurface"), getGradientBackground(), DIRECTION, - OPACITY, + CHARTOPACITY, BOXSHADOWCOLOR, - BOXSHADOW, + CHARTBOXSHADOW, BORDER, - BORDER_STYLE, - RADIUS, - BORDER_WIDTH, + CHARTBORDERSTYLE, + CHARTBORDERRADIUS, + CHARTBORDERWIDTH, ] as const; export const CalendarStyle = [ diff --git a/client/packages/lowcoder/src/constants/themeConstants.ts b/client/packages/lowcoder/src/constants/themeConstants.ts index 40eaad32d..144486380 100644 --- a/client/packages/lowcoder/src/constants/themeConstants.ts +++ b/client/packages/lowcoder/src/constants/themeConstants.ts @@ -12,7 +12,6 @@ const theme = { borderWidth: "1px", borderStyle: "solid", margin: "3px", - direction: "0 0 1 1", padding: "3px", lineHeight: "18px", gridColumns: String(DEFAULT_GRID_COLUMNS), From 4de98353c726596d811b15e5e721b297c2a57db9 Mon Sep 17 00:00:00 2001 From: Imiss-U1025 Date: Thu, 12 Dec 2024 16:15:40 -0500 Subject: [PATCH 51/88] Added ChartBackgroundColor, ChartGradientColor, ChartShadowColor, ChartBorderColor, ChartTextColor as ColorControl. --- .../comps/funnelChartComp/funnelChartUtils.ts | 20 +- .../components/ThemeSettingsCompStyles.tsx | 40 ++ .../src/comps/controls/styleControl.tsx | 447 ++++++++++++------ .../comps/controls/styleControlConstants.tsx | 63 ++- .../packages/lowcoder/src/i18n/locales/en.ts | 16 +- 5 files changed, 432 insertions(+), 154 deletions(-) diff --git a/client/packages/lowcoder-comps/src/comps/funnelChartComp/funnelChartUtils.ts b/client/packages/lowcoder-comps/src/comps/funnelChartComp/funnelChartUtils.ts index 2cdd7a6c0..7be5fdf98 100644 --- a/client/packages/lowcoder-comps/src/comps/funnelChartComp/funnelChartUtils.ts +++ b/client/packages/lowcoder-comps/src/comps/funnelChartComp/funnelChartUtils.ts @@ -138,8 +138,8 @@ export function getEchartsConfig( console.log("props", props); console.log("theme", theme); - const backgroundColor = props?.chartStyle?.background || theme?.chartStyle?.backgroundColor; - const gradientColor = props?.chartStyle?.gradientBackground || theme?.chartStyle?.gradientColor; + const backgroundColor = props?.chartStyle?.chartBackgroundColor || theme?.chartStyle?.backgroundColor; + const gradientColor = props?.chartStyle?.chartGradientColor || theme?.chartStyle?.gradientColor; const opacity = props?.chartStyle?.chartOpacity || theme?.chartStyle?.opacity; const direction = props?.chartStyle?.direction || theme?.chartStyle?.direction; @@ -156,9 +156,9 @@ export function getEchartsConfig( "fontFamily": props?.titleStyle?.chartFontFamily || theme?.titleStyle?.fontFamily, "fontSize": props?.titleStyle?.chartTextSize || theme?.titleStyle?.fontSize, "fontWeight": props?.titleStyle?.chartTextWeight || theme?.titleStyle?.fontWeight, - "color": props?.titleStyle?.text || theme?.titleStyle?.fontColor, + "color": props?.titleStyle?.chartTextColor || theme?.titleStyle?.fontColor, "fontStyle": props?.titleStyle?.chartFontStyle || theme?.titleStyle?.fontStyle, - "textShadowColor": props?.titleStyle?.boxShadowColor || theme?.titleStyle?.shadowColor, + "textShadowColor": props?.titleStyle?.chartShadowColor || theme?.titleStyle?.shadowColor, "textShadowBlur": props?.titleStyle?.chartBoxShadow?.split('px')[0] || theme?.titleStyle?.boxShadow.split('px')[0], "textShadowOffsetX": props?.titleStyle?.chartBoxShadow?.split('px')[1] || theme?.titleStyle?.boxShadow.split('px')[1], "textShadowOffsetY": props?.titleStyle?.chartBoxShadow?.split('px')[2] || theme?.titleStyle?.boxShadow.split('px')[2] @@ -188,9 +188,9 @@ export function getEchartsConfig( "fontFamily": props?.legendStyle?.chartFontFamily || theme?.legendStyle?.fontFamily, "fontSize": props?.legendStyle?.chartTextSize || theme?.legendStyle?.fontSize, "fontWeight": props?.legendStyle?.chartTextWeight || theme?.legendStyle?.fontWeight, - "color": props?.legendStyle?.text || theme?.legendStyle?.fontColor, + "color": props?.legendStyle?.chartTextColor || theme?.legendStyle?.fontColor, "fontStyle": props?.legendStyle?.chartFontStyle || theme?.legendStyle?.fontStyle, - "textShadowColor": props?.legendStyle?.boxShadowColor || theme?.legendStyle?.shadowColor, + "textShadowColor": props?.legendStyle?.chartShadowColor || theme?.legendStyle?.shadowColor, "textShadowBlur": props?.legendStyle?.chartBoxShadow?.split('px')[0] || theme?.legendStyle?.boxShadow.split('px')[0], "textShadowOffsetX": props?.legendStyle?.chartBoxShadow?.split('px')[1] || theme?.legendStyle?.boxShadow.split('px')[1], "textShadowOffsetY": props?.legendStyle?.chartBoxShadow?.split('px')[2] || theme?.legendStyle?.boxShadow.split('px')[2] @@ -211,11 +211,11 @@ export function getEchartsConfig( "sort": props.echartsSortingConfig.sort, "itemStyle": { "opacity": props.opacity, - "borderColor": props?.chartStyle?.border || theme?.chartStyle?.borderColor, + "borderColor": props?.chartStyle?.chartBorderColor || theme?.chartStyle?.borderColor, "borderWidth": props?.chartStyle?.chartBorderWidth || theme?.chartStyle?.borderWidth, "borderType": props?.chartStyle?.chartBorderStyle || theme?.chartStyle?.borderType, "borderRadius": props?.chartStyle?.chartBorderRadius || theme?.chartStyle?.borderRadius, - "shadowColor": props?.chartStyle?.boxShadowColor || theme?.chartStyle?.shadowColor, + "shadowColor": props?.chartStyle?.chartShadowColor || theme?.chartStyle?.shadowColor, "shadowBlur": props?.chartStyle?.chartBoxShadow?.split('px')[0] || theme?.chartStyle?.boxShadow.split('px')[0], "shadowOffsetX": props?.chartStyle?.chartBoxShadow?.split('px')[0] || theme?.chartStyle?.boxShadow.split('px')[1], "shadowOffsetY": props?.chartStyle?.chartBoxShadow?.split('px')[0] || theme?.chartStyle?.boxShadow.split('px')[2] @@ -226,9 +226,9 @@ export function getEchartsConfig( "fontFamily": props?.labelStyle?.chartFontFamily || theme?.labelStyle?.fontFamily, "fontSize": props?.labelStyle?.chartTextSize || theme?.labelStyle?.fontSize, "fontWeight": props?.labelStyle?.chartTextWeight || theme?.labelStyle?.fontWeight, - "color": props?.labelStyle?.text || theme?.labelStyle?.fontColor, + "color": props?.labelStyle?.chartTextColor || theme?.labelStyle?.fontColor, "fontStyle": props?.labelStyle?.chartFontStyle || theme?.labelStyle?.fontStyle, - "textShadowColor": props?.labelStyle?.boxShadowColor || theme?.labelStyle?.shadowColor, + "textShadowColor": props?.labelStyle?.chartShadowColor || theme?.labelStyle?.shadowColor, "textShadowBlur": props?.labelStyle?.chartBoxShadow?.split('px')[0] || theme?.labelStyle?.boxShadow.split('px')[0], "textShadowOffsetX": props?.labelStyle?.chartBoxShadow?.split('px')[1] || theme?.labelStyle?.boxShadow.split('px')[1], "textShadowOffsetY": props?.labelStyle?.chartBoxShadow?.split('px')[2] || theme?.labelStyle?.boxShadow.split('px')[2] diff --git a/client/packages/lowcoder/src/components/ThemeSettingsCompStyles.tsx b/client/packages/lowcoder/src/components/ThemeSettingsCompStyles.tsx index 302a3fffc..2b90440d5 100644 --- a/client/packages/lowcoder/src/components/ThemeSettingsCompStyles.tsx +++ b/client/packages/lowcoder/src/components/ThemeSettingsCompStyles.tsx @@ -225,6 +225,26 @@ export default function ThemeSettingsCompStyles(props: CompStyleProps) { placeholder = '#FFFFFF'; break; } + case 'chartBackgroundColor': { + placeholder = '#FFFFFF'; + break; + } + case 'chartGradientColor': { + placeholder = '#FFFFFF'; + break; + } + case 'chartShadowColor': { + placeholder = '#FFFFFF'; + break; + } + case 'chartBorderColor': { + placeholder = '#FFFFFF'; + break; + } + case 'chartTextColor': { + placeholder = '#FFFFFF'; + break; + } case 'boxShadow': { placeholder = '0px 0px 0px'; break; @@ -367,6 +387,26 @@ export default function ThemeSettingsCompStyles(props: CompStyleProps) { icon = ; break; } + case 'chartBackgroundColor': { + icon = ; + break; + } + case 'chartGradientColor': { + icon = ; + break; + } + case 'chartShadowColor': { + icon = ; + break; + } + case 'chartBorderColor': { + icon = ; + break; + } + case 'chartTextColor': { + icon = ; + break; + } case 'boxShadow': { icon = ; break; diff --git a/client/packages/lowcoder/src/comps/controls/styleControl.tsx b/client/packages/lowcoder/src/comps/controls/styleControl.tsx index 5b5d52f0e..a33295d08 100644 --- a/client/packages/lowcoder/src/comps/controls/styleControl.tsx +++ b/client/packages/lowcoder/src/comps/controls/styleControl.tsx @@ -80,6 +80,11 @@ import { borderStyleConfig, BoxShadowConfig, BoxShadowColorConfig, + ChartBackgroundColorConfig, + ChartGradientColorConfig, + ChartShadowColorConfig, + ChartBorderColorConfig, + ChartTextColorConfig, AnimationIterationCountConfig, OpacityConfig, AnimationConfig, @@ -252,6 +257,32 @@ function isBoxShadowColorConfig( return config.hasOwnProperty('boxShadowColor'); } +function isChartBackgroundColorConfig( + config: SingleColorConfig +): config is ChartBackgroundColorConfig { + return config.hasOwnProperty('chartBackgroundColor'); +} +function isChartGradientColorConfig( + config: SingleColorConfig +): config is ChartGradientColorConfig { + return config.hasOwnProperty('chartGradientColor'); +} +function isChartShadowColorConfig( + config: SingleColorConfig +): config is ChartShadowColorConfig { + return config.hasOwnProperty('chartShadowColor'); +} +function isChartBorderColorConfig( + config: SingleColorConfig +): config is ChartBorderColorConfig { + return config.hasOwnProperty('chartBorderColor'); +} +function isChartTextColorConfig( + config: SingleColorConfig +): config is ChartTextColorConfig { + return config.hasOwnProperty('chartTextColor'); +} + function isAnimationIterationCountConfig( config: SingleColorConfig ): config is AnimationIterationCountConfig { @@ -425,6 +456,22 @@ function isEmptyBoxShadowColor(boxShadowColor: string) { return _.isEmpty(boxShadowColor); } +function isEmptyChartBackgroundColor(chartBackgroundColor: string) { + return _.isEmpty(chartBackgroundColor); +} +function isEmptyChartGradientColor(chartGradientColor: string) { + return _.isEmpty(chartGradientColor); +} +function isEmptyChartShadowColor(chartShadowColor: string) { + return _.isEmpty(chartShadowColor); +} +function isEmptyChartBorderColor(chartBorderColor: string) { + return _.isEmpty(chartBorderColor); +} +function isEmptyChartTextColor(chartTextColor: string) { + return _.isEmpty(chartTextColor); +} + function isEmptyAnimation(animation: string) { return _.isEmpty(animation); } @@ -625,6 +672,26 @@ function calcColors>( res[name] = props[name]; return; } + if (!isEmptyChartBackgroundColor(props[name]) && isChartBackgroundColorConfig(config)) { + res[name] = props[name]; + return; + } + if (!isEmptyChartGradientColor(props[name]) && isChartGradientColorConfig(config)) { + res[name] = props[name]; + return; + } + if (!isEmptyChartShadowColor(props[name]) && isChartShadowColorConfig(config)) { + res[name] = props[name]; + return; + } + if (!isEmptyChartBorderColor(props[name]) && isChartBorderColorConfig(config)) { + res[name] = props[name]; + return; + } + if (!isEmptyChartTextColor(props[name]) && isChartTextColorConfig(config)) { + res[name] = props[name]; + return; + } if ( !isEmptyAnimationIterationCount(props[name]) && isAnimationIterationCountConfig(config) @@ -779,7 +846,22 @@ function calcColors>( res[name] = themeWithDefault[config.boxShadow] || '0px 0px 0px'; } if (isBoxShadowColorConfig(config)) { - res[name] = themeWithDefault[config.boxShadowColor] || '0px 0px 0px'; + res[name] = themeWithDefault[config.boxShadowColor]; + } + if (isChartBackgroundColorConfig(config)) { + res[name] = themeWithDefault[config.chartBackgroundColor]; + } + if (isChartGradientColorConfig(config)) { + res[name] = themeWithDefault[config.chartGradientColor]; + } + if (isChartShadowColorConfig(config)) { + res[name] = themeWithDefault[config.chartShadowColor]; + } + if (isChartBorderColorConfig(config)) { + res[name] = themeWithDefault[config.chartBorderColor]; + } + if (isChartTextColorConfig(config)) { + res[name] = themeWithDefault[config.chartTextColor]; } if (isAnimationIterationCountConfig(config)) { res[name] = themeWithDefault[config.animationIterationCount] || '0'; @@ -951,6 +1033,32 @@ const BoxShadowColorPropIcon = styled(BorderWidthIcon)` color: #888; `; +const ChartBackgroundColorPropIcon = styled(BorderWidthIcon)` + margin: 0 8px 0 -3px; + padding: 3px; + color: #888; +`; +const ChartGradientColorPropIcon = styled(BorderWidthIcon)` + margin: 0 8px 0 -3px; + padding: 3px; + color: #888; +`; +const ChartShadowColorPropIcon = styled(BorderWidthIcon)` + margin: 0 8px 0 -3px; + padding: 3px; + color: #888; +`; +const ChartBorderColorPropIcon = styled(BorderWidthIcon)` + margin: 0 8px 0 -3px; + padding: 3px; + color: #888; +`; +const ChartTextColorPropIcon = styled(BorderWidthIcon)` + margin: 0 8px 0 -3px; + padding: 3px; + color: #888; +`; + const BoxShadowPropIcon = styled(ShadowIcon)` margin: 0 8px 0 -3px; padding: 3px; @@ -1173,6 +1281,11 @@ export function styleControl( name === 'animationIterationCount' || name === 'opacity' || name === 'boxShadowColor' || + name === 'chartBackgroundColor' || + name === 'chartGradientColor' || + name === 'chartShadowColor' || + name === 'chartBorderColor' || + name === 'chartTextColor' || name === 'boxShadow' || name === 'animation' || name === 'animationDelay' || @@ -1412,187 +1525,134 @@ export function styleControl( ), placeholder: props[name], }) - : name === 'boxShadow' - ? ( + : name === 'chartBackgroundColor' + ? ( children[name] as InstanceType< typeof StringControl > ).propertyView({ label: config.label, preInputNode: ( - + ), placeholder: props[name], }) - : name === 'animation' - ? ( + : name === 'chartGradientColor' + ? ( children[name] as InstanceType< typeof StringControl > ).propertyView({ label: config.label, preInputNode: ( - + ), placeholder: props[name], }) - : name === 'animationDelay' - ? ( + : name === 'chartShadowColor' + ? ( children[name] as InstanceType< typeof StringControl > ).propertyView({ label: config.label, preInputNode: ( - + ), placeholder: props[name], }) - : name === 'animationDuration' - ? ( + : name === 'chartBorderColor' + ? ( children[name] as InstanceType< typeof StringControl > ).propertyView({ label: config.label, preInputNode: ( - + ), placeholder: props[name], }) - : name === 'padding' || - name === - 'containerHeaderPadding' || - name === - 'containerSiderPadding' || - name === - 'containerFooterPadding' || - name === 'containerBodyPadding' + : name === 'chartTextColor' ? ( - children[name] as InstanceType< - typeof StringControl - > - ).propertyView({ - label: config.label, - preInputNode: ( - - ), - placeholder: props[name], - }) - : name === 'textSize' - ? ( - children[ - name - ] as InstanceType< - typeof StringControl - > - ).propertyView({ - label: config.label, - preInputNode: ( - - ), - placeholder: props[name], - }) - : name === 'textWeight' + children[name] as InstanceType< + typeof StringControl + > + ).propertyView({ + label: config.label, + preInputNode: ( + + ), + placeholder: props[name], + }) + : name === 'boxShadow' ? ( - children[ - name - ] as InstanceType< + children[name] as InstanceType< typeof StringControl > ).propertyView({ label: config.label, preInputNode: ( - + ), placeholder: props[name], }) - : name === 'fontFamily' + : name === 'animation' ? ( - children[ - name - ] as InstanceType< + children[name] as InstanceType< typeof StringControl > ).propertyView({ label: config.label, preInputNode: ( - + ), placeholder: props[name], }) - : name === 'textDecoration' + : name === 'animationDelay' ? ( - children[ - name - ] as InstanceType< + children[name] as InstanceType< typeof StringControl > ).propertyView({ label: config.label, preInputNode: ( - + ), - placeholder: - props[name], + placeholder: props[name], }) - : name === 'textTransform' + : name === 'animationDuration' ? ( - children[ - name - ] as InstanceType< + children[name] as InstanceType< typeof StringControl > ).propertyView({ label: config.label, preInputNode: ( - + ), - placeholder: - props[name], + placeholder: props[name], }) - : name === 'fontStyle' - ? ( - children[ - name - ] as InstanceType< - typeof StringControl - > - ).propertyView({ - label: config.label, - preInputNode: ( - - ), - placeholder: - props[name], - }) - : name === - 'backgroundImage' || + : name === 'padding' || + name === + 'containerHeaderPadding' || name === - 'headerBackgroundImage' || + 'containerSiderPadding' || name === - 'footerBackgroundImage' + 'containerFooterPadding' || + name === 'containerBodyPadding' ? ( - children[ - name - ] as InstanceType< + children[name] as InstanceType< typeof StringControl > ).propertyView({ - label: - config.label, + label: config.label, preInputNode: ( - + ), - placeholder: - props[name], + placeholder: props[name], }) - : name === - 'backgroundImageRepeat' || - name === - 'headerBackgroundImageRepeat' || - name === - 'footerBackgroundImageRepeat' + : name === 'textSize' ? ( children[ name @@ -1600,16 +1660,13 @@ export function styleControl( typeof StringControl > ).propertyView({ - label: - config.label, + label: config.label, preInputNode: ( - + ), - placeholder: - props[name], + placeholder: props[name], }) - : name === - 'rotation' + : name === 'textWeight' ? ( children[ name @@ -1617,36 +1674,152 @@ export function styleControl( typeof StringControl > ).propertyView({ - label: - config.label, - preInputNode: - ( - - ), - placeholder: - props[name], + label: config.label, + preInputNode: ( + + ), + placeholder: props[name], }) - : name === 'lineHeight' // Added lineHeight here + : name === 'fontFamily' ? ( - children[name] as InstanceType - ).propertyView({ - label: config.label, - preInputNode: , - placeholder: props[name], - }) - : children[ - name - ].propertyView({ - label: - config.label, - panelDefaultColor: - props[name], - // isDep: isDepColorConfig(config), - isDep: true, - depMsg: - depMsg, - allowGradient: config.name.includes('background'), - })} + children[ + name + ] as InstanceType< + typeof StringControl + > + ).propertyView({ + label: config.label, + preInputNode: ( + + ), + placeholder: props[name], + }) + : name === 'textDecoration' + ? ( + children[ + name + ] as InstanceType< + typeof StringControl + > + ).propertyView({ + label: config.label, + preInputNode: ( + + ), + placeholder: + props[name], + }) + : name === 'textTransform' + ? ( + children[ + name + ] as InstanceType< + typeof StringControl + > + ).propertyView({ + label: config.label, + preInputNode: ( + + ), + placeholder: + props[name], + }) + : name === 'fontStyle' + ? ( + children[ + name + ] as InstanceType< + typeof StringControl + > + ).propertyView({ + label: config.label, + preInputNode: ( + + ), + placeholder: + props[name], + }) + : name === + 'backgroundImage' || + name === + 'headerBackgroundImage' || + name === + 'footerBackgroundImage' + ? ( + children[ + name + ] as InstanceType< + typeof StringControl + > + ).propertyView({ + label: + config.label, + preInputNode: ( + + ), + placeholder: + props[name], + }) + : name === + 'backgroundImageRepeat' || + name === + 'headerBackgroundImageRepeat' || + name === + 'footerBackgroundImageRepeat' + ? ( + children[ + name + ] as InstanceType< + typeof StringControl + > + ).propertyView({ + label: + config.label, + preInputNode: ( + + ), + placeholder: + props[name], + }) + : name === + 'rotation' + ? ( + children[ + name + ] as InstanceType< + typeof StringControl + > + ).propertyView({ + label: + config.label, + preInputNode: + ( + + ), + placeholder: + props[name], + }) + : name === 'lineHeight' // Added lineHeight here + ? ( + children[name] as InstanceType + ).propertyView({ + label: config.label, + preInputNode: , + placeholder: props[name], + }) + : children[ + name + ].propertyView({ + label: + config.label, + panelDefaultColor: + props[name], + // isDep: isDepColorConfig(config), + isDep: true, + depMsg: + depMsg, + allowGradient: config.name.includes('background'), + })} ); })} diff --git a/client/packages/lowcoder/src/comps/controls/styleControlConstants.tsx b/client/packages/lowcoder/src/comps/controls/styleControlConstants.tsx index a2193b3a8..e79685bed 100644 --- a/client/packages/lowcoder/src/comps/controls/styleControlConstants.tsx +++ b/client/packages/lowcoder/src/comps/controls/styleControlConstants.tsx @@ -41,6 +41,22 @@ export type BoxShadowColorConfig = CommonColorConfig & { readonly boxShadowColor: string; }; +export type ChartBackgroundColorConfig = CommonColorConfig & { + readonly chartBackgroundColor: string; +}; +export type ChartGradientColorConfig = CommonColorConfig & { + readonly chartGradientColor: string; +}; +export type ChartShadowColorConfig = CommonColorConfig & { + readonly chartShadowColor: string; +}; +export type ChartBorderColorConfig = CommonColorConfig & { + readonly chartBorderColor: string; +}; +export type ChartTextColorConfig = CommonColorConfig & { + readonly chartTextColor: string; +}; + export type AnimationIterationCountConfig = CommonColorConfig & { readonly animationIterationCount: string; }; @@ -281,6 +297,11 @@ export type SingleColorConfig = | BoxShadowColorConfig | AnimationIterationCountConfig | LineHeightConfig + | ChartBackgroundColorConfig + | ChartGradientColorConfig + | ChartShadowColorConfig + | ChartBorderColorConfig + | ChartTextColorConfig @@ -507,6 +528,36 @@ const BOXSHADOWCOLOR = { boxShadowColor: "boxShadowColor", } as const; +const CHARTBACKGROUNDCOLOR = { + name: "chartBackgroundColor", + label: trans("style.chartBackgroundColor"), + chartBackgroundColor: "chartBackgroundColor", +} as const; + +const CHARTGRADIENTCOLOR = { + name: "chartGradientColor", + label: trans("style.chartGradientColor"), + chartGradientColor: "chartGradientColor", +} as const; + +const CHARTSHADOWCOLOR = { + name: "chartShadowColor", + label: trans("style.chartShadowColor"), + chartShadowColor: "chartShadowColor", +} as const; + +const CHARTBORDERCOLOR = { + name: "chartBorderColor", + label: trans("style.chartBorderColor"), + chartBorderColor: "chartBorderColor", +} as const; + +const CHARTTEXTCOLOR = { + name: "chartTextColor", + label: trans("style.chartTextColor"), + chartTextColor: "chartTextColor", +} as const; + const OPACITY = { name: "opacity", label: trans("style.opacity"), @@ -1914,23 +1965,23 @@ export const JsonEditorStyle = [LABEL] as const; export const EchartsStyle = [getBackground("primarySurface")] as const; export const FunnelTextStyle = [ - TEXT, + CHARTTEXTCOLOR, CHARTTEXTSIZE, CHARTTEXTWEIGHT, CHARTFONTFAMILY, CHARTFONTSTYLE, - BOXSHADOWCOLOR, + CHARTSHADOWCOLOR, CHARTBOXSHADOW, ] as const; export const FunnelChartStyle = [ - getBackground("primarySurface"), - getGradientBackground(), + CHARTBACKGROUNDCOLOR, + CHARTGRADIENTCOLOR, DIRECTION, CHARTOPACITY, - BOXSHADOWCOLOR, + CHARTSHADOWCOLOR, CHARTBOXSHADOW, - BORDER, + CHARTBORDERCOLOR, CHARTBORDERSTYLE, CHARTBORDERRADIUS, CHARTBORDERWIDTH, diff --git a/client/packages/lowcoder/src/i18n/locales/en.ts b/client/packages/lowcoder/src/i18n/locales/en.ts index 4612627a8..222157aff 100644 --- a/client/packages/lowcoder/src/i18n/locales/en.ts +++ b/client/packages/lowcoder/src/i18n/locales/en.ts @@ -569,7 +569,21 @@ export const en = { "activeBackground": "Active Background Color", "labelBackground": "Label Background Color", "gradientBackground": "Gradient Background Color", - "direction": "Direction" + "direction": "Direction", + "chartOpacity": "Opacity", + "chartBoxShadow": "Box Shadow", + "chartBorderStyle": "Border Style", + "chartBorderRadius": "Border Radius", + "chartBorderWidth": "Border Width", + "chartTextSize": "Text Size", + "chartTextWeight": "Text Weight", + "chartFontFamily": "Font Family", + "chartFontStyle": "Font Style", + "chartBackgroundColor": "Background Color", + "chartGradientColor": "Gradient Color", + "chartShadowColor": "Shadow Color", + "chartBorderColor": "Border Color", + "chartTextColor": "Text Color" }, "export": { "hiddenDesc": "If true, the component is hidden", From bc5936a5a0fa28463f8db9f1865d8bdc62927fd5 Mon Sep 17 00:00:00 2001 From: Imiss-U1025 Date: Thu, 12 Dec 2024 17:07:07 -0500 Subject: [PATCH 52/88] Added initial value of funnelChartUtils. --- .../src/comps/funnelChartComp/funnelChartUtils.ts | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/client/packages/lowcoder-comps/src/comps/funnelChartComp/funnelChartUtils.ts b/client/packages/lowcoder-comps/src/comps/funnelChartComp/funnelChartUtils.ts index 7be5fdf98..f65a62446 100644 --- a/client/packages/lowcoder-comps/src/comps/funnelChartComp/funnelChartUtils.ts +++ b/client/packages/lowcoder-comps/src/comps/funnelChartComp/funnelChartUtils.ts @@ -138,7 +138,7 @@ export function getEchartsConfig( console.log("props", props); console.log("theme", theme); - const backgroundColor = props?.chartStyle?.chartBackgroundColor || theme?.chartStyle?.backgroundColor; + const backgroundColor = props?.chartStyle?.chartBackgroundColor || theme?.chartStyle?.backgroundColor || "#FFFFFF"; const gradientColor = props?.chartStyle?.chartGradientColor || theme?.chartStyle?.gradientColor; const opacity = props?.chartStyle?.chartOpacity || theme?.chartStyle?.opacity; const direction = props?.chartStyle?.direction || theme?.chartStyle?.direction; @@ -154,9 +154,9 @@ export function getEchartsConfig( "left":props.echartsTitleConfig.top, "textStyle": { "fontFamily": props?.titleStyle?.chartFontFamily || theme?.titleStyle?.fontFamily, - "fontSize": props?.titleStyle?.chartTextSize || theme?.titleStyle?.fontSize, + "fontSize": props?.titleStyle?.chartTextSize || theme?.titleStyle?.fontSize || '18', "fontWeight": props?.titleStyle?.chartTextWeight || theme?.titleStyle?.fontWeight, - "color": props?.titleStyle?.chartTextColor || theme?.titleStyle?.fontColor, + "color": props?.titleStyle?.chartTextColor || theme?.titleStyle?.fontColor || "#000000", "fontStyle": props?.titleStyle?.chartFontStyle || theme?.titleStyle?.fontStyle, "textShadowColor": props?.titleStyle?.chartShadowColor || theme?.titleStyle?.shadowColor, "textShadowBlur": props?.titleStyle?.chartBoxShadow?.split('px')[0] || theme?.titleStyle?.boxShadow.split('px')[0], @@ -171,8 +171,8 @@ export function getEchartsConfig( "x2": direction?.split(' ')[2], "y2": direction?.split(' ')[3], "colorStops": [ - { "offset": 0, "color": opacity ? backgroundColor + opacityToHex(opacity) : backgroundColor || "#FFFFFF" }, - { "offset": 1, "color": opacity ? gradientColor + opacityToHex(opacity) : gradientColor || "#FFFFFF" } + { "offset": 0, "color": backgroundColor + opacityToHex(opacity)}, + { "offset": 1, "color": gradientColor + opacityToHex(opacity)} ] } : backgroundColor + opacityToHex(opacity), @@ -188,7 +188,7 @@ export function getEchartsConfig( "fontFamily": props?.legendStyle?.chartFontFamily || theme?.legendStyle?.fontFamily, "fontSize": props?.legendStyle?.chartTextSize || theme?.legendStyle?.fontSize, "fontWeight": props?.legendStyle?.chartTextWeight || theme?.legendStyle?.fontWeight, - "color": props?.legendStyle?.chartTextColor || theme?.legendStyle?.fontColor, + "color": props?.legendStyle?.chartTextColor || theme?.legendStyle?.fontColor || "#000000", "fontStyle": props?.legendStyle?.chartFontStyle || theme?.legendStyle?.fontStyle, "textShadowColor": props?.legendStyle?.chartShadowColor || theme?.legendStyle?.shadowColor, "textShadowBlur": props?.legendStyle?.chartBoxShadow?.split('px')[0] || theme?.legendStyle?.boxShadow.split('px')[0], @@ -226,7 +226,7 @@ export function getEchartsConfig( "fontFamily": props?.labelStyle?.chartFontFamily || theme?.labelStyle?.fontFamily, "fontSize": props?.labelStyle?.chartTextSize || theme?.labelStyle?.fontSize, "fontWeight": props?.labelStyle?.chartTextWeight || theme?.labelStyle?.fontWeight, - "color": props?.labelStyle?.chartTextColor || theme?.labelStyle?.fontColor, + "color": props?.labelStyle?.chartTextColor || theme?.labelStyle?.fontColor || "#000000", "fontStyle": props?.labelStyle?.chartFontStyle || theme?.labelStyle?.fontStyle, "textShadowColor": props?.labelStyle?.chartShadowColor || theme?.labelStyle?.shadowColor, "textShadowBlur": props?.labelStyle?.chartBoxShadow?.split('px')[0] || theme?.labelStyle?.boxShadow.split('px')[0], From 10cb9eb345561a7e4c2dedebfd35168f3b6cf7c5 Mon Sep 17 00:00:00 2001 From: Imiss-U1025 Date: Fri, 13 Dec 2024 01:09:04 -0500 Subject: [PATCH 53/88] Fixed a direction split issue. --- .../comps/funnelChartComp/funnelChartUtils.ts | 172 +++++++++--------- 1 file changed, 86 insertions(+), 86 deletions(-) diff --git a/client/packages/lowcoder-comps/src/comps/funnelChartComp/funnelChartUtils.ts b/client/packages/lowcoder-comps/src/comps/funnelChartComp/funnelChartUtils.ts index f65a62446..7500ffb8d 100644 --- a/client/packages/lowcoder-comps/src/comps/funnelChartComp/funnelChartUtils.ts +++ b/client/packages/lowcoder-comps/src/comps/funnelChartComp/funnelChartUtils.ts @@ -148,95 +148,95 @@ export function getEchartsConfig( if (props.mode === "json") { let opt={ - "title": { - "text": props.echartsTitle, - 'top': props.echartsLegendConfig.top === 'bottom' ?'top':'bottom', - "left":props.echartsTitleConfig.top, - "textStyle": { - "fontFamily": props?.titleStyle?.chartFontFamily || theme?.titleStyle?.fontFamily, - "fontSize": props?.titleStyle?.chartTextSize || theme?.titleStyle?.fontSize || '18', - "fontWeight": props?.titleStyle?.chartTextWeight || theme?.titleStyle?.fontWeight, - "color": props?.titleStyle?.chartTextColor || theme?.titleStyle?.fontColor || "#000000", - "fontStyle": props?.titleStyle?.chartFontStyle || theme?.titleStyle?.fontStyle, - "textShadowColor": props?.titleStyle?.chartShadowColor || theme?.titleStyle?.shadowColor, - "textShadowBlur": props?.titleStyle?.chartBoxShadow?.split('px')[0] || theme?.titleStyle?.boxShadow.split('px')[0], - "textShadowOffsetX": props?.titleStyle?.chartBoxShadow?.split('px')[1] || theme?.titleStyle?.boxShadow.split('px')[1], - "textShadowOffsetY": props?.titleStyle?.chartBoxShadow?.split('px')[2] || theme?.titleStyle?.boxShadow.split('px')[2] - } - }, - "backgroundColor": gradientColor && backgroundColor - ? { - "x": direction?.split(' ')[0], - "y": direction?.split(' ')[1], - "x2": direction?.split(' ')[2], - "y2": direction?.split(' ')[3], - "colorStops": [ - { "offset": 0, "color": backgroundColor + opacityToHex(opacity)}, - { "offset": 1, "color": gradientColor + opacityToHex(opacity)} - ] - } - : backgroundColor + opacityToHex(opacity), - "color": props.echartsOption.data?.map(data => data.color), - "tooltip": props.tooltip&&{ - "trigger": "item", - "formatter": "{a}
{b} : {c}%" - }, - "legend":props.legendVisibility&& { - "data": props.echartsOption.data?.map(data=>data.name), - "top": props.echartsLegendConfig.top, - "textStyle": { - "fontFamily": props?.legendStyle?.chartFontFamily || theme?.legendStyle?.fontFamily, - "fontSize": props?.legendStyle?.chartTextSize || theme?.legendStyle?.fontSize, - "fontWeight": props?.legendStyle?.chartTextWeight || theme?.legendStyle?.fontWeight, - "color": props?.legendStyle?.chartTextColor || theme?.legendStyle?.fontColor || "#000000", - "fontStyle": props?.legendStyle?.chartFontStyle || theme?.legendStyle?.fontStyle, - "textShadowColor": props?.legendStyle?.chartShadowColor || theme?.legendStyle?.shadowColor, - "textShadowBlur": props?.legendStyle?.chartBoxShadow?.split('px')[0] || theme?.legendStyle?.boxShadow.split('px')[0], - "textShadowOffsetX": props?.legendStyle?.chartBoxShadow?.split('px')[1] || theme?.legendStyle?.boxShadow.split('px')[1], - "textShadowOffsetY": props?.legendStyle?.chartBoxShadow?.split('px')[2] || theme?.legendStyle?.boxShadow.split('px')[2] - } - }, - "series": [ - { - "name": props.echartsConfig.type, - "type": props.echartsConfig.type, - "left": `${props.left}%`, - "top": props.top, - "bottom": props.bottom, - "width": `${props.left}%`, - "min": props.min, - "max": props.max, - "gap": props.gap, - "funnelAlign": props.echartsFunnelAlignConfig.funnelAlign, - "sort": props.echartsSortingConfig.sort, - "itemStyle": { - "opacity": props.opacity, - "borderColor": props?.chartStyle?.chartBorderColor || theme?.chartStyle?.borderColor, - "borderWidth": props?.chartStyle?.chartBorderWidth || theme?.chartStyle?.borderWidth, - "borderType": props?.chartStyle?.chartBorderStyle || theme?.chartStyle?.borderType, - "borderRadius": props?.chartStyle?.chartBorderRadius || theme?.chartStyle?.borderRadius, - "shadowColor": props?.chartStyle?.chartShadowColor || theme?.chartStyle?.shadowColor, - "shadowBlur": props?.chartStyle?.chartBoxShadow?.split('px')[0] || theme?.chartStyle?.boxShadow.split('px')[0], - "shadowOffsetX": props?.chartStyle?.chartBoxShadow?.split('px')[0] || theme?.chartStyle?.boxShadow.split('px')[1], - "shadowOffsetY": props?.chartStyle?.chartBoxShadow?.split('px')[0] || theme?.chartStyle?.boxShadow.split('px')[2] + "title": { + "text": props.echartsTitle, + 'top': props.echartsLegendConfig.top === 'bottom' ?'top':'bottom', + "left":props.echartsTitleConfig.top, + "textStyle": { + "fontFamily": props?.titleStyle?.chartFontFamily || theme?.titleStyle?.fontFamily, + "fontSize": props?.titleStyle?.chartTextSize || theme?.titleStyle?.fontSize || '18', + "fontWeight": props?.titleStyle?.chartTextWeight || theme?.titleStyle?.fontWeight, + "color": props?.titleStyle?.chartTextColor || theme?.titleStyle?.fontColor || "#000000", + "fontStyle": props?.titleStyle?.chartFontStyle || theme?.titleStyle?.fontStyle, + "textShadowColor": props?.titleStyle?.chartShadowColor || theme?.titleStyle?.shadowColor, + "textShadowBlur": props?.titleStyle?.chartBoxShadow?.split('px')[0] || theme?.titleStyle?.boxShadow?.split('px')[0], + "textShadowOffsetX": props?.titleStyle?.chartBoxShadow?.split('px')[1] || theme?.titleStyle?.boxShadow?.split('px')[1], + "textShadowOffsetY": props?.titleStyle?.chartBoxShadow?.split('px')[2] || theme?.titleStyle?.boxShadow?.split('px')[2] + } }, - "label": { - "show": props.label, - "position": props.echartsLabelConfig.top, - "fontFamily": props?.labelStyle?.chartFontFamily || theme?.labelStyle?.fontFamily, - "fontSize": props?.labelStyle?.chartTextSize || theme?.labelStyle?.fontSize, - "fontWeight": props?.labelStyle?.chartTextWeight || theme?.labelStyle?.fontWeight, - "color": props?.labelStyle?.chartTextColor || theme?.labelStyle?.fontColor || "#000000", - "fontStyle": props?.labelStyle?.chartFontStyle || theme?.labelStyle?.fontStyle, - "textShadowColor": props?.labelStyle?.chartShadowColor || theme?.labelStyle?.shadowColor, - "textShadowBlur": props?.labelStyle?.chartBoxShadow?.split('px')[0] || theme?.labelStyle?.boxShadow.split('px')[0], - "textShadowOffsetX": props?.labelStyle?.chartBoxShadow?.split('px')[1] || theme?.labelStyle?.boxShadow.split('px')[1], - "textShadowOffsetY": props?.labelStyle?.chartBoxShadow?.split('px')[2] || theme?.labelStyle?.boxShadow.split('px')[2] + "backgroundColor": gradientColor && backgroundColor + ? { + "x": direction?.split(' ')[0], + "y": direction?.split(' ')[1], + "x2": direction?.split(' ')[2], + "y2": direction?.split(' ')[3], + "colorStops": [ + { "offset": 0, "color": backgroundColor + opacityToHex(opacity)}, + { "offset": 1, "color": gradientColor + opacityToHex(opacity)} + ] + } + : backgroundColor + opacityToHex(opacity), + "color": props.echartsOption.data?.map(data => data.color), + "tooltip": props.tooltip&&{ + "trigger": "item", + "formatter": "{a}
{b} : {c}%" }, - "data": props.echartsOption.data + "legend":props.legendVisibility&& { + "data": props.echartsOption.data?.map(data=>data.name), + "top": props.echartsLegendConfig.top, + "textStyle": { + "fontFamily": props?.legendStyle?.chartFontFamily || theme?.legendStyle?.fontFamily, + "fontSize": props?.legendStyle?.chartTextSize || theme?.legendStyle?.fontSize, + "fontWeight": props?.legendStyle?.chartTextWeight || theme?.legendStyle?.fontWeight, + "color": props?.legendStyle?.chartTextColor || theme?.legendStyle?.fontColor || "#000000", + "fontStyle": props?.legendStyle?.chartFontStyle || theme?.legendStyle?.fontStyle, + "textShadowColor": props?.legendStyle?.chartShadowColor || theme?.legendStyle?.shadowColor, + "textShadowBlur": props?.legendStyle?.chartBoxShadow?.split('px')[0] || theme?.legendStyle?.boxShadow?.split('px')[0], + "textShadowOffsetX": props?.legendStyle?.chartBoxShadow?.split('px')[1] || theme?.legendStyle?.boxShadow?.split('px')[1], + "textShadowOffsetY": props?.legendStyle?.chartBoxShadow?.split('px')[2] || theme?.legendStyle?.boxShadow?.split('px')[2] + } + }, + "series": [ + { + "name": props.echartsConfig.type, + "type": props.echartsConfig.type, + "left": `${props.left}%`, + "top": props.top, + "bottom": props.bottom, + "width": `${props.left}%`, + "min": props.min, + "max": props.max, + "gap": props.gap, + "funnelAlign": props.echartsFunnelAlignConfig.funnelAlign, + "sort": props.echartsSortingConfig.sort, + "itemStyle": { + "opacity": props.opacity, + "borderColor": props?.chartStyle?.chartBorderColor || theme?.chartStyle?.borderColor, + "borderWidth": props?.chartStyle?.chartBorderWidth || theme?.chartStyle?.borderWidth, + "borderType": props?.chartStyle?.chartBorderStyle || theme?.chartStyle?.borderType, + "borderRadius": props?.chartStyle?.chartBorderRadius || theme?.chartStyle?.borderRadius, + "shadowColor": props?.chartStyle?.chartShadowColor || theme?.chartStyle?.shadowColor, + "shadowBlur": props?.chartStyle?.chartBoxShadow?.split('px')[0] || theme?.chartStyle?.boxShadow?.split('px')[0], + "shadowOffsetX": props?.chartStyle?.chartBoxShadow?.split('px')[1] || theme?.chartStyle?.boxShadow?.split('px')[1], + "shadowOffsetY": props?.chartStyle?.chartBoxShadow?.split('px')[2] || theme?.chartStyle?.boxShadow?.split('px')[2] + }, + "label": { + "show": props.label, + "position": props.echartsLabelConfig.top, + "fontFamily": props?.labelStyle?.chartFontFamily || theme?.labelStyle?.fontFamily, + "fontSize": props?.labelStyle?.chartTextSize || theme?.labelStyle?.fontSize, + "fontWeight": props?.labelStyle?.chartTextWeight || theme?.labelStyle?.fontWeight, + "color": props?.labelStyle?.chartTextColor || theme?.labelStyle?.fontColor || "#000000", + "fontStyle": props?.labelStyle?.chartFontStyle || theme?.labelStyle?.fontStyle, + "textShadowColor": props?.labelStyle?.chartShadowColor || theme?.labelStyle?.shadowColor, + "textShadowBlur": props?.labelStyle?.chartBoxShadow?.split('px')[0] || theme?.labelStyle?.boxShadow?.split('px')[0], + "textShadowOffsetX": props?.labelStyle?.chartBoxShadow?.split('px')[1] || theme?.labelStyle?.boxShadow?.split('px')[1], + "textShadowOffsetY": props?.labelStyle?.chartBoxShadow?.split('px')[2] || theme?.labelStyle?.boxShadow?.split('px')[2] + }, + "data": props.echartsOption.data + } + ] } - ] -} return props.echartsOption ? opt : {}; } From dad3997e2d70b2b047c60e4139ffe1a145d2b6df Mon Sep 17 00:00:00 2001 From: Imiss-U1025 Date: Fri, 13 Dec 2024 09:56:03 -0500 Subject: [PATCH 54/88] Fixed Chart styles UI of right panel. --- .../src/comps/controls/styleControl.tsx | 31 +++++++------------ 1 file changed, 11 insertions(+), 20 deletions(-) diff --git a/client/packages/lowcoder/src/comps/controls/styleControl.tsx b/client/packages/lowcoder/src/comps/controls/styleControl.tsx index a33295d08..c87007c87 100644 --- a/client/packages/lowcoder/src/comps/controls/styleControl.tsx +++ b/client/packages/lowcoder/src/comps/controls/styleControl.tsx @@ -999,16 +999,7 @@ const LineHeightPropIcon = styled(LineHeightIcon)` `; const MarginIcon = styled(ExpandIcon)` margin: 0 8px 0 2px; color: #888`; -const DirectionIcon = styled(ExpandIcon)` margin: 0 8px 0 2px; color: #888`; -const ChartOpacity = styled(OpacityIcon)` margin: 0 8px 0 2px; color: #888`; -const ChartBoxShadow = styled(ShadowIcon)` margin: 0 8px 0 2px; color: #888`; -const ChartBorderStyle = styled(BorderStyleIcon)` margin: 0 8px 0 2px; color: #888`; -const ChartBorderRadius = styled(BorderRadiusIcon)` margin: 0 8px 0 2px; color: #888`; -const ChartBorderWidth = styled(BorderWidthIcon)` margin: 0 8px 0 2px; color: #888`; -const ChartTextSize = styled(TextSizeIcon)` margin: 0 8px 0 2px; color: #888`; -const ChartTextWeight = styled(TextWeightIcon)` margin: 0 8px 0 2px; color: #888`; -const ChartFontFamily = styled(FontFamilyIcon)` margin: 0 8px 0 2px; color: #888`; -const ChartFontStyle = styled(TextStyleIcon)` margin: 0 8px 0 2px; color: #888`; +const DirectionIcon = styled(ExpandIcon)` margin: 0 13px 0 2px; color: #888`; const PaddingIcon = styled(CompressIcon)` margin: 0 8px 0 2px; color: #888`; const RadiusPropIcon = styled(BorderRadiusIcon)` width: 24px; margin: 0 11px 0 0px; color: #888`; const BorderPropIcon = styled(BorderWidthIcon)` margin: 0 8px 0 -3px; padding: 3px; color: #888`; @@ -1035,7 +1026,7 @@ const BoxShadowColorPropIcon = styled(BorderWidthIcon)` const ChartBackgroundColorPropIcon = styled(BorderWidthIcon)` margin: 0 8px 0 -3px; - padding: 3px; + padding: 13px; color: #888; `; const ChartGradientColorPropIcon = styled(BorderWidthIcon)` @@ -1406,7 +1397,7 @@ export function styleControl( > ).propertyView({ label: config.label, - preInputNode: , + preInputNode: , placeholder: props[name], }) : name === 'chartBoxShadow' @@ -1416,7 +1407,7 @@ export function styleControl( > ).propertyView({ label: config.label, - preInputNode: , + preInputNode: , placeholder: props[name], }) : name === 'chartBorderStyle' @@ -1426,7 +1417,7 @@ export function styleControl( > ).propertyView({ label: config.label, - preInputNode: , + preInputNode: , placeholder: props[name], }) : name === 'chartBorderRadius' @@ -1436,7 +1427,7 @@ export function styleControl( > ).propertyView({ label: config.label, - preInputNode: , + preInputNode: , placeholder: props[name], }) : name === 'chartBorderWidth' @@ -1446,7 +1437,7 @@ export function styleControl( > ).propertyView({ label: config.label, - preInputNode: , + preInputNode: , placeholder: props[name], }) : name === 'chartTextSize' @@ -1456,7 +1447,7 @@ export function styleControl( > ).propertyView({ label: config.label, - preInputNode: , + preInputNode: , placeholder: props[name], }) : name === 'chartTextWeight' @@ -1466,7 +1457,7 @@ export function styleControl( > ).propertyView({ label: config.label, - preInputNode: , + preInputNode: , placeholder: props[name], }) : name === 'chartFontFamily' @@ -1476,7 +1467,7 @@ export function styleControl( > ).propertyView({ label: config.label, - preInputNode: , + preInputNode: , placeholder: props[name], }) : name === 'chartFontStyle' @@ -1486,7 +1477,7 @@ export function styleControl( > ).propertyView({ label: config.label, - preInputNode: , + preInputNode: , placeholder: props[name], }) : name === 'animationIterationCount' From ca9bbcfdfa3baf4d6cebbc69a932cf028e4d3bde Mon Sep 17 00:00:00 2001 From: Imiss-U1025 Date: Sat, 14 Dec 2024 10:55:51 -0500 Subject: [PATCH 55/88] Updated guage chart. --- .../comps/funnelChartComp/funnelChartComp.tsx | 3 +-- .../funnelChartComp/funnelChartConstants.tsx | 12 ++++++------ .../comps/gaugeChartComp/gaugeChartConstants.tsx | 14 +++++++++++--- .../gaugeChartComp/gaugeChartPropertyView.tsx | 16 ++++++++++++++-- .../src/comps/gaugeChartComp/gaugeChartUtils.ts | 16 ++++++++++++++-- .../lowcoder-comps/src/i18n/comps/locales/en.ts | 7 +++++++ .../src/comps/controls/styleControlConstants.tsx | 4 ++-- 7 files changed, 55 insertions(+), 17 deletions(-) diff --git a/client/packages/lowcoder-comps/src/comps/funnelChartComp/funnelChartComp.tsx b/client/packages/lowcoder-comps/src/comps/funnelChartComp/funnelChartComp.tsx index 57ae6adad..b26a67182 100644 --- a/client/packages/lowcoder-comps/src/comps/funnelChartComp/funnelChartComp.tsx +++ b/client/packages/lowcoder-comps/src/comps/funnelChartComp/funnelChartComp.tsx @@ -147,7 +147,7 @@ FunnelChartTmpComp = withViewFn(FunnelChartTmpComp, (comp) => { chartSize, themeConfig, ); - }, [chartSize, ...Object.values(echartsConfigChildren), theme, childrenToProps(echartsConfigChildren)]); + }, [chartSize, ...Object.values(echartsConfigChildren)]); useEffect(() => { comp.children.mapInstance.dispatch(changeValueAction(null, false)) @@ -175,7 +175,6 @@ FunnelChartTmpComp = withViewFn(FunnelChartTmpComp, (comp) => { lazyUpdate opts={{ locale: getEchartsLocale() }} option={option} - theme={themeConfig} mode={mode} /> diff --git a/client/packages/lowcoder-comps/src/comps/funnelChartComp/funnelChartConstants.tsx b/client/packages/lowcoder-comps/src/comps/funnelChartComp/funnelChartConstants.tsx index 2b58bf292..4fe1db61c 100644 --- a/client/packages/lowcoder-comps/src/comps/funnelChartComp/funnelChartConstants.tsx +++ b/client/packages/lowcoder-comps/src/comps/funnelChartComp/funnelChartConstants.tsx @@ -17,8 +17,8 @@ import { clickEvent, styleControl, EchartsStyle, - FunnelTextStyle, - FunnelChartStyle + EchartDefaultChartStyle, + EchartDefaultTextStyle } from "lowcoder-sdk"; import { RecordConstructorToComp, RecordConstructorToView } from "lowcoder-core"; import { BarChartConfig } from "../chartComp/chartConfigs/barChartConfig"; @@ -278,10 +278,10 @@ let chartJsonModeChildren: any = { if (EchartsStyle) { chartJsonModeChildren = { ...chartJsonModeChildren, - chartStyle: styleControl(FunnelChartStyle, 'chartStyle'), - titleStyle: styleControl(FunnelTextStyle, 'titleStyle'), - labelStyle: styleControl(FunnelTextStyle, 'labelStyle'), - legendStyle: styleControl(FunnelTextStyle, 'legendStyle'), + chartStyle: styleControl(EchartDefaultChartStyle, 'chartStyle'), + titleStyle: styleControl(EchartDefaultTextStyle, 'titleStyle'), + labelStyle: styleControl(EchartDefaultTextStyle, 'labelStyle'), + legendStyle: styleControl(EchartDefaultTextStyle, 'legendStyle'), } } diff --git a/client/packages/lowcoder-comps/src/comps/gaugeChartComp/gaugeChartConstants.tsx b/client/packages/lowcoder-comps/src/comps/gaugeChartComp/gaugeChartConstants.tsx index 89571a5bd..b09470678 100644 --- a/client/packages/lowcoder-comps/src/comps/gaugeChartComp/gaugeChartConstants.tsx +++ b/client/packages/lowcoder-comps/src/comps/gaugeChartComp/gaugeChartConstants.tsx @@ -16,7 +16,9 @@ import { uiChildren, clickEvent, styleControl, - EchartsStyle + EchartsStyle, + EchartDefaultChartStyle, + EchartDefaultTextStyle } from "lowcoder-sdk"; import { RecordConstructorToComp, RecordConstructorToView } from "lowcoder-core"; import { BarChartConfig } from "../chartComp/chartConfigs/barChartConfig"; @@ -265,12 +267,18 @@ let chartJsonModeChildren: any = { width:withDefault(NumberControl,trans('gaugeChart.defaultWidth')), min:withDefault(NumberControl,trans('gaugeChart.defaultMin')), max:withDefault(NumberControl,trans('gaugeChart.defaultMax')), - gap:withDefault(NumberControl,trans('gaugeChart.defaultGap')) + gap:withDefault(NumberControl,trans('gaugeChart.defaultGap')), + startAngle:withDefault(NumberControl,trans('gaugeChart.defaultStartAngle')), + endAngle:withDefault(NumberControl,trans('gaugeChart.defaultEndAngle')), + splitNumber:withDefault(NumberControl,trans('gaugeChart.defaultSplitNumber')), } if (EchartsStyle) { chartJsonModeChildren = { ...chartJsonModeChildren, - style: styleControl(EchartsStyle, 'style'), + chartStyle: styleControl(EchartDefaultChartStyle, 'chartStyle'), + titleStyle: styleControl(EchartDefaultTextStyle, 'titleStyle'), + labelStyle: styleControl(EchartDefaultTextStyle, 'labelStyle'), + legendStyle: styleControl(EchartDefaultTextStyle, 'legendStyle'), } } const chartMapModeChildren = { diff --git a/client/packages/lowcoder-comps/src/comps/gaugeChartComp/gaugeChartPropertyView.tsx b/client/packages/lowcoder-comps/src/comps/gaugeChartComp/gaugeChartPropertyView.tsx index 026006072..f329dbfbb 100644 --- a/client/packages/lowcoder-comps/src/comps/gaugeChartComp/gaugeChartPropertyView.tsx +++ b/client/packages/lowcoder-comps/src/comps/gaugeChartComp/gaugeChartPropertyView.tsx @@ -39,14 +39,26 @@ export function gaugeChartPropertyView( {children.width.propertyView({ label: trans("gaugeChart.width") })} */} {children.min.propertyView({ label: trans("gaugeChart.min") })} {children.max.propertyView({ label: trans("gaugeChart.max") })} + {children.startAngle.propertyView({ label: trans("gaugeChart.startAngle") })} + {children.endAngle.propertyView({ label: trans("gaugeChart.endAngle") })} + {children.splitNumber.propertyView({ label: trans("gaugeChart.splitNumber") })} {/* {children.gap.propertyView({ label: trans("gaugeChart.gap") })} */} {children.tooltip.propertyView({ label: trans("gaugeChart.tooltip") })}
{children.onEvent.propertyView()}
-
- {children.style?.getPropertyView()} +
+ {children.chartStyle?.getPropertyView()} +
+
+ {children.titleStyle?.getPropertyView()} +
+
+ {children.labelStyle?.getPropertyView()} +
+
+ {children.legendStyle?.getPropertyView()}
{hiddenPropertyView(children)}
diff --git a/client/packages/lowcoder-comps/src/comps/gaugeChartComp/gaugeChartUtils.ts b/client/packages/lowcoder-comps/src/comps/gaugeChartComp/gaugeChartUtils.ts index eb16f1a86..ce9ffb510 100644 --- a/client/packages/lowcoder-comps/src/comps/gaugeChartComp/gaugeChartUtils.ts +++ b/client/packages/lowcoder-comps/src/comps/gaugeChartComp/gaugeChartUtils.ts @@ -157,13 +157,25 @@ export function getEchartsConfig( "min": props.min, "max": props.max, "gap": props.gap, + "startAngle": props.startAngle, + "endAngle": props.endAngle, + "splitNumber": props.splitNumber, 'detail': { "backgroundColor": props?.style?.background, "formatter": "{value}%" }, "label": { "show": props.label, - "position": props.echartsLabelConfig.top - }, + "position": props.echartsLabelConfig.top, + "fontFamily": props?.labelStyle?.chartFontFamily || theme?.labelStyle?.fontFamily, + "fontSize": props?.labelStyle?.chartTextSize || theme?.labelStyle?.fontSize, + "fontWeight": props?.labelStyle?.chartTextWeight || theme?.labelStyle?.fontWeight, + "color": props?.labelStyle?.chartTextColor || theme?.labelStyle?.fontColor || "#000000", + "fontStyle": props?.labelStyle?.chartFontStyle || theme?.labelStyle?.fontStyle, + "textShadowColor": props?.labelStyle?.chartShadowColor || theme?.labelStyle?.shadowColor, + "textShadowBlur": props?.labelStyle?.chartBoxShadow?.split('px')[0] || theme?.labelStyle?.boxShadow?.split('px')[0], + "textShadowOffsetX": props?.labelStyle?.chartBoxShadow?.split('px')[1] || theme?.labelStyle?.boxShadow?.split('px')[1], + "textShadowOffsetY": props?.labelStyle?.chartBoxShadow?.split('px')[2] || theme?.labelStyle?.boxShadow?.split('px')[2] + }, /*"detail": { "formatter": "{value}%" }, */ diff --git a/client/packages/lowcoder-comps/src/i18n/comps/locales/en.ts b/client/packages/lowcoder-comps/src/i18n/comps/locales/en.ts index 7eabffb39..3c425623e 100644 --- a/client/packages/lowcoder-comps/src/i18n/comps/locales/en.ts +++ b/client/packages/lowcoder-comps/src/i18n/comps/locales/en.ts @@ -103,7 +103,14 @@ export const en = { defaultMax:'100', gap: 'Gap', defaultGap: '2', + defaultStartAngle: '180', + startAngle: 'Start Angle', + defaultEndAngle: '0', + endAngle: 'End Angle', + defaultSplitNumber: '10', + splitNumber: 'Split Number', label:'Label', + }, echarts: { defaultTitle: "Data Display", diff --git a/client/packages/lowcoder/src/comps/controls/styleControlConstants.tsx b/client/packages/lowcoder/src/comps/controls/styleControlConstants.tsx index e79685bed..884ab36a7 100644 --- a/client/packages/lowcoder/src/comps/controls/styleControlConstants.tsx +++ b/client/packages/lowcoder/src/comps/controls/styleControlConstants.tsx @@ -1964,7 +1964,7 @@ export const JsonEditorStyle = [LABEL] as const; export const EchartsStyle = [getBackground("primarySurface")] as const; -export const FunnelTextStyle = [ +export const EchartDefaultTextStyle = [ CHARTTEXTCOLOR, CHARTTEXTSIZE, CHARTTEXTWEIGHT, @@ -1974,7 +1974,7 @@ export const FunnelTextStyle = [ CHARTBOXSHADOW, ] as const; -export const FunnelChartStyle = [ +export const EchartDefaultChartStyle = [ CHARTBACKGROUNDCOLOR, CHARTGRADIENTCOLOR, DIRECTION, From 901036795f3fde63b5b365b1dba18cc7094d05b0 Mon Sep 17 00:00:00 2001 From: Imiss-U1025 Date: Sat, 14 Dec 2024 13:56:10 -0500 Subject: [PATCH 56/88] Added styles to gaugeChart. --- .../gaugeChartComp/gaugeChartConstants.tsx | 2 + .../gaugeChartComp/gaugeChartPropertyView.tsx | 1 + .../comps/gaugeChartComp/gaugeChartUtils.ts | 102 +++++++++++++----- .../src/i18n/comps/locales/en.ts | 2 + 4 files changed, 81 insertions(+), 26 deletions(-) diff --git a/client/packages/lowcoder-comps/src/comps/gaugeChartComp/gaugeChartConstants.tsx b/client/packages/lowcoder-comps/src/comps/gaugeChartComp/gaugeChartConstants.tsx index b09470678..3f3d6b66c 100644 --- a/client/packages/lowcoder-comps/src/comps/gaugeChartComp/gaugeChartConstants.tsx +++ b/client/packages/lowcoder-comps/src/comps/gaugeChartComp/gaugeChartConstants.tsx @@ -265,12 +265,14 @@ let chartJsonModeChildren: any = { top:withDefault(NumberControl,trans('gaugeChart.defaultTop')), bottom:withDefault(NumberControl,trans('gaugeChart.defaultBottom')), width:withDefault(NumberControl,trans('gaugeChart.defaultWidth')), + radius:withDefault(NumberControl,trans('gaugeChart.defaultRadius')), min:withDefault(NumberControl,trans('gaugeChart.defaultMin')), max:withDefault(NumberControl,trans('gaugeChart.defaultMax')), gap:withDefault(NumberControl,trans('gaugeChart.defaultGap')), startAngle:withDefault(NumberControl,trans('gaugeChart.defaultStartAngle')), endAngle:withDefault(NumberControl,trans('gaugeChart.defaultEndAngle')), splitNumber:withDefault(NumberControl,trans('gaugeChart.defaultSplitNumber')), + } if (EchartsStyle) { chartJsonModeChildren = { diff --git a/client/packages/lowcoder-comps/src/comps/gaugeChartComp/gaugeChartPropertyView.tsx b/client/packages/lowcoder-comps/src/comps/gaugeChartComp/gaugeChartPropertyView.tsx index f329dbfbb..32099e134 100644 --- a/client/packages/lowcoder-comps/src/comps/gaugeChartComp/gaugeChartPropertyView.tsx +++ b/client/packages/lowcoder-comps/src/comps/gaugeChartComp/gaugeChartPropertyView.tsx @@ -37,6 +37,7 @@ export function gaugeChartPropertyView( {children.top.propertyView({ label: trans("gaugeChart.top") })} {children.bottom.propertyView({ label: trans("gaugeChart.bottom") })} {children.width.propertyView({ label: trans("gaugeChart.width") })} */} + {children.radius.propertyView({ label: trans("gaugeChart.radius") })} {children.min.propertyView({ label: trans("gaugeChart.min") })} {children.max.propertyView({ label: trans("gaugeChart.max") })} {children.startAngle.propertyView({ label: trans("gaugeChart.startAngle") })} diff --git a/client/packages/lowcoder-comps/src/comps/gaugeChartComp/gaugeChartUtils.ts b/client/packages/lowcoder-comps/src/comps/gaugeChartComp/gaugeChartUtils.ts index ce9ffb510..76b6c887b 100644 --- a/client/packages/lowcoder-comps/src/comps/gaugeChartComp/gaugeChartUtils.ts +++ b/client/packages/lowcoder-comps/src/comps/gaugeChartComp/gaugeChartUtils.ts @@ -12,6 +12,7 @@ import { chartColorPalette, isNumeric, JSONObject, loadScript } from "lowcoder-s import { calcXYConfig } from "comps/chartComp/chartConfigs/cartesianAxisConfig"; import Big from "big.js"; import { googleMapsApiUrl } from "../chartComp/chartConfigs/chartUrls"; +import opacityToHex from "../../util/opacityToHex"; export function transformData( originData: JSONObject[], @@ -133,23 +134,51 @@ export function getEchartsConfig( chartSize?: ChartSize, theme?: any, ): EChartsOptionWithMap { + + const backgroundColor = props?.chartStyle?.chartBackgroundColor || theme?.chartStyle?.backgroundColor || "#FFFFFF"; + const gradientColor = props?.chartStyle?.chartGradientColor || theme?.chartStyle?.gradientColor; + const opacity = props?.chartStyle?.chartOpacity || theme?.chartStyle?.opacity; + const direction = props?.chartStyle?.direction || theme?.chartStyle?.direction; + if (props.mode === "json") { let opt={ - "title": { - "text": props.echartsTitle, - 'top': props.echartsLegendConfig.top === 'bottom' ?'top':'bottom', - "left":props.echartsTitleConfig.top - }, - "backgroundColor": props?.style?.background || theme?.style?.background, - "color": props.echartsOption.data?.map(data => data.color), - "tooltip": props.tooltip&&{ - "trigger": "item", - "formatter": "{a}
{b} : {c}%" - }, - "series": [ + "title": { + "text": props.echartsTitle, + 'top': props.echartsLegendConfig.top === 'bottom' ?'top':'bottom', + "left":props.echartsTitleConfig.top, + "textStyle": { + "fontFamily": props?.titleStyle?.chartFontFamily || theme?.titleStyle?.fontFamily, + "fontSize": props?.titleStyle?.chartTextSize || theme?.titleStyle?.fontSize, + "fontWeight": props?.titleStyle?.chartTextWeight || theme?.titleStyle?.fontWeight, + "color": props?.titleStyle?.chartTextColor || theme?.titleStyle?.fontColor || "#000000", + "fontStyle": props?.titleStyle?.chartFontStyle || theme?.titleStyle?.fontStyle, + "textShadowColor": props?.titleStyle?.chartShadowColor || theme?.titleStyle?.shadowColor, + "textShadowBlur": props?.titleStyle?.chartBoxShadow?.split('px')[0] || theme?.titleStyle?.boxShadow?.split('px')[0], + "textShadowOffsetX": props?.titleStyle?.chartBoxShadow?.split('px')[1] || theme?.titleStyle?.boxShadow?.split('px')[1], + "textShadowOffsetY": props?.titleStyle?.chartBoxShadow?.split('px')[2] || theme?.titleStyle?.boxShadow?.split('px')[2] + }, + }, + "backgroundColor": gradientColor && backgroundColor + ? { + "x": direction?.split(' ')[0], + "y": direction?.split(' ')[1], + "x2": direction?.split(' ')[2], + "y2": direction?.split(' ')[3], + "colorStops": [ + { "offset": 0, "color": backgroundColor + opacityToHex(opacity)}, + { "offset": 1, "color": gradientColor + opacityToHex(opacity)} + ] + } + : backgroundColor + opacityToHex(opacity), + "tooltip": props.tooltip&&{ + "trigger": "item", + "formatter": "{a}
{b} : {c}%" + }, + "series": [ { "name": props.echartsConfig.type, "type": props.echartsConfig.type, + "radius": `${props.radius}%`, "left": `${props.left}%`, "top": props.top, "bottom": props.bottom, @@ -160,26 +189,47 @@ export function getEchartsConfig( "startAngle": props.startAngle, "endAngle": props.endAngle, "splitNumber": props.splitNumber, + "itemStyle": { + "color": props.echartsOption.data?.map(data => data.color), + "opacity": props.opacity, + "borderColor": props?.chartStyle?.chartBorderColor || theme?.chartStyle?.borderColor, + "borderWidth": props?.chartStyle?.chartBorderWidth || theme?.chartStyle?.borderWidth, + "borderType": props?.chartStyle?.chartBorderStyle || theme?.chartStyle?.borderType, + "borderRadius": props?.chartStyle?.chartBorderRadius || theme?.chartStyle?.borderRadius, + "shadowColor": props?.chartStyle?.chartShadowColor || theme?.chartStyle?.shadowColor, + "shadowBlur": props?.chartStyle?.chartBoxShadow?.split('px')[0] || theme?.chartStyle?.boxShadow?.split('px')[0], + "shadowOffsetX": props?.chartStyle?.chartBoxShadow?.split('px')[1] || theme?.chartStyle?.boxShadow?.split('px')[1], + "shadowOffsetY": props?.chartStyle?.chartBoxShadow?.split('px')[2] || theme?.chartStyle?.boxShadow?.split('px')[2] + }, 'detail': { - "backgroundColor": props?.style?.background, "formatter": "{value}%" + "fontFamily": props?.legendStyle?.chartFontFamily || theme?.legendStyle?.fontFamily, + "fontSize": props?.legendStyle?.chartTextSize || theme?.legendStyle?.fontSize, + "fontWeight": props?.legendStyle?.chartTextWeight || theme?.legendStyle?.fontWeight, + "color": props?.legendStyle?.chartTextColor || theme?.legendStyle?.fontColor || "#000000", + "fontStyle": props?.legendStyle?.chartFontStyle || theme?.legendStyle?.fontStyle, + "textShadowColor": props?.legendStyle?.chartShadowColor || theme?.legendStyle?.shadowColor, + "textShadowBlur": props?.legendStyle?.chartBoxShadow?.split('px')[0] || theme?.legendStyle?.boxShadow?.split('px')[0], + "textShadowOffsetX": props?.legendStyle?.chartBoxShadow?.split('px')[1] || theme?.legendStyle?.boxShadow?.split('px')[1], + "textShadowOffsetY": props?.legendStyle?.chartBoxShadow?.split('px')[2] || theme?.legendStyle?.boxShadow?.split('px')[2] }, "label": { "show": props.label, "position": props.echartsLabelConfig.top, - "fontFamily": props?.labelStyle?.chartFontFamily || theme?.labelStyle?.fontFamily, - "fontSize": props?.labelStyle?.chartTextSize || theme?.labelStyle?.fontSize, - "fontWeight": props?.labelStyle?.chartTextWeight || theme?.labelStyle?.fontWeight, - "color": props?.labelStyle?.chartTextColor || theme?.labelStyle?.fontColor || "#000000", - "fontStyle": props?.labelStyle?.chartFontStyle || theme?.labelStyle?.fontStyle, - "textShadowColor": props?.labelStyle?.chartShadowColor || theme?.labelStyle?.shadowColor, - "textShadowBlur": props?.labelStyle?.chartBoxShadow?.split('px')[0] || theme?.labelStyle?.boxShadow?.split('px')[0], - "textShadowOffsetX": props?.labelStyle?.chartBoxShadow?.split('px')[1] || theme?.labelStyle?.boxShadow?.split('px')[1], - "textShadowOffsetY": props?.labelStyle?.chartBoxShadow?.split('px')[2] || theme?.labelStyle?.boxShadow?.split('px')[2] }, - /*"detail": { - "formatter": "{value}%" - }, */ - "data": props.echartsOption.data + "data": props.echartsOption.data?.map(item => ({ + ...item, + title: { + "fontFamily": props?.labelStyle?.chartFontFamily || theme?.labelStyle?.fontFamily, + "fontSize": props?.labelStyle?.chartTextSize || theme?.labelStyle?.fontSize, + "fontWeight": props?.labelStyle?.chartTextWeight || theme?.labelStyle?.fontWeight, + "color": props?.labelStyle?.chartTextColor || theme?.labelStyle?.fontColor || "#000000", + "fontStyle": props?.labelStyle?.chartFontStyle || theme?.labelStyle?.fontStyle, + "textShadowColor": props?.labelStyle?.chartShadowColor || theme?.labelStyle?.shadowColor, + "textShadowBlur": props?.labelStyle?.chartBoxShadow?.split('px')[0] || theme?.labelStyle?.boxShadow?.split('px')[0], + "textShadowOffsetX": props?.labelStyle?.chartBoxShadow?.split('px')[1] || theme?.labelStyle?.boxShadow?.split('px')[1], + "textShadowOffsetY": props?.labelStyle?.chartBoxShadow?.split('px')[2] || theme?.labelStyle?.boxShadow?.split('px')[2] + } + })) } ] } diff --git a/client/packages/lowcoder-comps/src/i18n/comps/locales/en.ts b/client/packages/lowcoder-comps/src/i18n/comps/locales/en.ts index 3c425623e..57a1097d9 100644 --- a/client/packages/lowcoder-comps/src/i18n/comps/locales/en.ts +++ b/client/packages/lowcoder-comps/src/i18n/comps/locales/en.ts @@ -109,6 +109,8 @@ export const en = { endAngle: 'End Angle', defaultSplitNumber: '10', splitNumber: 'Split Number', + radius: 'Radius', + defaultRadius: '60%', label:'Label', }, From fe9e50550258dd324e0b35c35fec2570eeefcc5f Mon Sep 17 00:00:00 2001 From: Imiss-U1025 Date: Sat, 14 Dec 2024 14:56:36 -0500 Subject: [PATCH 57/88] Added Pointer and Fixed default values --- .../gaugeChartComp/gaugeChartConstants.tsx | 2 + .../gaugeChartComp/gaugeChartPropertyView.tsx | 2 + .../comps/gaugeChartComp/gaugeChartUtils.ts | 126 +++++++++--------- .../src/i18n/comps/locales/en.ts | 10 +- 4 files changed, 76 insertions(+), 64 deletions(-) diff --git a/client/packages/lowcoder-comps/src/comps/gaugeChartComp/gaugeChartConstants.tsx b/client/packages/lowcoder-comps/src/comps/gaugeChartComp/gaugeChartConstants.tsx index 3f3d6b66c..a8873e61e 100644 --- a/client/packages/lowcoder-comps/src/comps/gaugeChartComp/gaugeChartConstants.tsx +++ b/client/packages/lowcoder-comps/src/comps/gaugeChartComp/gaugeChartConstants.tsx @@ -272,6 +272,8 @@ let chartJsonModeChildren: any = { startAngle:withDefault(NumberControl,trans('gaugeChart.defaultStartAngle')), endAngle:withDefault(NumberControl,trans('gaugeChart.defaultEndAngle')), splitNumber:withDefault(NumberControl,trans('gaugeChart.defaultSplitNumber')), + pointerLength:withDefault(NumberControl,trans('gaugeChart.defaultPointerLength')), + pointerWidth:withDefault(NumberControl,trans('gaugeChart.defaultPointerWidth')), } if (EchartsStyle) { diff --git a/client/packages/lowcoder-comps/src/comps/gaugeChartComp/gaugeChartPropertyView.tsx b/client/packages/lowcoder-comps/src/comps/gaugeChartComp/gaugeChartPropertyView.tsx index 32099e134..11a28a1b7 100644 --- a/client/packages/lowcoder-comps/src/comps/gaugeChartComp/gaugeChartPropertyView.tsx +++ b/client/packages/lowcoder-comps/src/comps/gaugeChartComp/gaugeChartPropertyView.tsx @@ -43,6 +43,8 @@ export function gaugeChartPropertyView( {children.startAngle.propertyView({ label: trans("gaugeChart.startAngle") })} {children.endAngle.propertyView({ label: trans("gaugeChart.endAngle") })} {children.splitNumber.propertyView({ label: trans("gaugeChart.splitNumber") })} + {children.pointerLength.propertyView({ label: trans("gaugeChart.pointerLength") })} + {children.pointerWidth.propertyView({ label: trans("gaugeChart.pointerWidth") })} {/* {children.gap.propertyView({ label: trans("gaugeChart.gap") })} */} {children.tooltip.propertyView({ label: trans("gaugeChart.tooltip") })}
diff --git a/client/packages/lowcoder-comps/src/comps/gaugeChartComp/gaugeChartUtils.ts b/client/packages/lowcoder-comps/src/comps/gaugeChartComp/gaugeChartUtils.ts index 76b6c887b..39d4ee959 100644 --- a/client/packages/lowcoder-comps/src/comps/gaugeChartComp/gaugeChartUtils.ts +++ b/client/packages/lowcoder-comps/src/comps/gaugeChartComp/gaugeChartUtils.ts @@ -148,7 +148,7 @@ export function getEchartsConfig( "left":props.echartsTitleConfig.top, "textStyle": { "fontFamily": props?.titleStyle?.chartFontFamily || theme?.titleStyle?.fontFamily, - "fontSize": props?.titleStyle?.chartTextSize || theme?.titleStyle?.fontSize, + "fontSize": props?.titleStyle?.chartTextSize || theme?.titleStyle?.fontSize || 18, "fontWeight": props?.titleStyle?.chartTextWeight || theme?.titleStyle?.fontWeight, "color": props?.titleStyle?.chartTextColor || theme?.titleStyle?.fontColor || "#000000", "fontStyle": props?.titleStyle?.chartFontStyle || theme?.titleStyle?.fontStyle, @@ -175,75 +175,79 @@ export function getEchartsConfig( "formatter": "{a}
{b} : {c}%" }, "series": [ - { - "name": props.echartsConfig.type, - "type": props.echartsConfig.type, - "radius": `${props.radius}%`, - "left": `${props.left}%`, - "top": props.top, - "bottom": props.bottom, - "width": `${props.left}%`, - "min": props.min, - "max": props.max, - "gap": props.gap, - "startAngle": props.startAngle, - "endAngle": props.endAngle, - "splitNumber": props.splitNumber, - "itemStyle": { - "color": props.echartsOption.data?.map(data => data.color), - "opacity": props.opacity, - "borderColor": props?.chartStyle?.chartBorderColor || theme?.chartStyle?.borderColor, - "borderWidth": props?.chartStyle?.chartBorderWidth || theme?.chartStyle?.borderWidth, - "borderType": props?.chartStyle?.chartBorderStyle || theme?.chartStyle?.borderType, - "borderRadius": props?.chartStyle?.chartBorderRadius || theme?.chartStyle?.borderRadius, - "shadowColor": props?.chartStyle?.chartShadowColor || theme?.chartStyle?.shadowColor, - "shadowBlur": props?.chartStyle?.chartBoxShadow?.split('px')[0] || theme?.chartStyle?.boxShadow?.split('px')[0], - "shadowOffsetX": props?.chartStyle?.chartBoxShadow?.split('px')[1] || theme?.chartStyle?.boxShadow?.split('px')[1], - "shadowOffsetY": props?.chartStyle?.chartBoxShadow?.split('px')[2] || theme?.chartStyle?.boxShadow?.split('px')[2] - }, - 'detail': { - "fontFamily": props?.legendStyle?.chartFontFamily || theme?.legendStyle?.fontFamily, - "fontSize": props?.legendStyle?.chartTextSize || theme?.legendStyle?.fontSize, - "fontWeight": props?.legendStyle?.chartTextWeight || theme?.legendStyle?.fontWeight, - "color": props?.legendStyle?.chartTextColor || theme?.legendStyle?.fontColor || "#000000", - "fontStyle": props?.legendStyle?.chartFontStyle || theme?.legendStyle?.fontStyle, - "textShadowColor": props?.legendStyle?.chartShadowColor || theme?.legendStyle?.shadowColor, - "textShadowBlur": props?.legendStyle?.chartBoxShadow?.split('px')[0] || theme?.legendStyle?.boxShadow?.split('px')[0], - "textShadowOffsetX": props?.legendStyle?.chartBoxShadow?.split('px')[1] || theme?.legendStyle?.boxShadow?.split('px')[1], - "textShadowOffsetY": props?.legendStyle?.chartBoxShadow?.split('px')[2] || theme?.legendStyle?.boxShadow?.split('px')[2] - }, - "label": { - "show": props.label, - "position": props.echartsLabelConfig.top, - }, - "data": props.echartsOption.data?.map(item => ({ - ...item, - title: { - "fontFamily": props?.labelStyle?.chartFontFamily || theme?.labelStyle?.fontFamily, - "fontSize": props?.labelStyle?.chartTextSize || theme?.labelStyle?.fontSize, - "fontWeight": props?.labelStyle?.chartTextWeight || theme?.labelStyle?.fontWeight, - "color": props?.labelStyle?.chartTextColor || theme?.labelStyle?.fontColor || "#000000", - "fontStyle": props?.labelStyle?.chartFontStyle || theme?.labelStyle?.fontStyle, - "textShadowColor": props?.labelStyle?.chartShadowColor || theme?.labelStyle?.shadowColor, - "textShadowBlur": props?.labelStyle?.chartBoxShadow?.split('px')[0] || theme?.labelStyle?.boxShadow?.split('px')[0], - "textShadowOffsetX": props?.labelStyle?.chartBoxShadow?.split('px')[1] || theme?.labelStyle?.boxShadow?.split('px')[1], - "textShadowOffsetY": props?.labelStyle?.chartBoxShadow?.split('px')[2] || theme?.labelStyle?.boxShadow?.split('px')[2] + { + "name": props.echartsConfig.type, + "type": props.echartsConfig.type, + "radius": `${props.radius}%`, + "left": `${props.left}%`, + "top": props.top, + "bottom": props.bottom, + "width": `${props.left}%`, + "min": props.min, + "max": props.max, + "gap": props.gap, + "startAngle": props.startAngle, + "endAngle": props.endAngle, + "splitNumber": props.splitNumber, + "pointer": { + "length": `${props.pointerLength}%`, + "width": props.pointerWidth, + }, + "itemStyle": { + "color": props.echartsOption.data?.map(data => data.color), + "opacity": props.opacity, + "borderColor": props?.chartStyle?.chartBorderColor || theme?.chartStyle?.borderColor, + "borderWidth": props?.chartStyle?.chartBorderWidth || theme?.chartStyle?.borderWidth, + "borderType": props?.chartStyle?.chartBorderStyle || theme?.chartStyle?.borderType, + "borderRadius": props?.chartStyle?.chartBorderRadius || theme?.chartStyle?.borderRadius, + "shadowColor": props?.chartStyle?.chartShadowColor || theme?.chartStyle?.shadowColor, + "shadowBlur": props?.chartStyle?.chartBoxShadow?.split('px')[0] || theme?.chartStyle?.boxShadow?.split('px')[0], + "shadowOffsetX": props?.chartStyle?.chartBoxShadow?.split('px')[1] || theme?.chartStyle?.boxShadow?.split('px')[1], + "shadowOffsetY": props?.chartStyle?.chartBoxShadow?.split('px')[2] || theme?.chartStyle?.boxShadow?.split('px')[2] + }, + 'detail': { + "fontFamily": props?.legendStyle?.chartFontFamily || theme?.legendStyle?.fontFamily, + "fontSize": props?.legendStyle?.chartTextSize || theme?.legendStyle?.fontSize || 16, + "fontWeight": props?.legendStyle?.chartTextWeight || theme?.legendStyle?.fontWeight, + "color": props?.legendStyle?.chartTextColor || theme?.legendStyle?.fontColor || "#000000", + "fontStyle": props?.legendStyle?.chartFontStyle || theme?.legendStyle?.fontStyle, + "textShadowColor": props?.legendStyle?.chartShadowColor || theme?.legendStyle?.shadowColor, + "textShadowBlur": props?.legendStyle?.chartBoxShadow?.split('px')[0] || theme?.legendStyle?.boxShadow?.split('px')[0], + "textShadowOffsetX": props?.legendStyle?.chartBoxShadow?.split('px')[1] || theme?.legendStyle?.boxShadow?.split('px')[1], + "textShadowOffsetY": props?.legendStyle?.chartBoxShadow?.split('px')[2] || theme?.legendStyle?.boxShadow?.split('px')[2] + }, + "label": { + "show": props.label, + "position": props.echartsLabelConfig.top, + }, + "data": props.echartsOption.data?.map(item => ({ + ...item, + title: { + "fontFamily": props?.labelStyle?.chartFontFamily || theme?.labelStyle?.fontFamily, + "fontSize": props?.labelStyle?.chartTextSize || theme?.labelStyle?.fontSize, + "fontWeight": props?.labelStyle?.chartTextWeight || theme?.labelStyle?.fontWeight, + "color": props?.labelStyle?.chartTextColor || theme?.labelStyle?.fontColor || "#000000", + "fontStyle": props?.labelStyle?.chartFontStyle || theme?.labelStyle?.fontStyle, + "textShadowColor": props?.labelStyle?.chartShadowColor || theme?.labelStyle?.shadowColor, + "textShadowBlur": props?.labelStyle?.chartBoxShadow?.split('px')[0] || theme?.labelStyle?.boxShadow?.split('px')[0], + "textShadowOffsetX": props?.labelStyle?.chartBoxShadow?.split('px')[1] || theme?.labelStyle?.boxShadow?.split('px')[1], + "textShadowOffsetY": props?.labelStyle?.chartBoxShadow?.split('px')[2] || theme?.labelStyle?.boxShadow?.split('px')[2] + } + })) } - })) + ] } - ] -} return props.echartsOption ? opt : {}; - + } - + if(props.mode === "map") { const { mapZoomLevel, mapCenterLat, mapCenterLng, - mapOptions, - showCharts, + mapOptions, + showCharts, } = props; const echartsOption = mapOptions && showCharts ? mapOptions : {}; diff --git a/client/packages/lowcoder-comps/src/i18n/comps/locales/en.ts b/client/packages/lowcoder-comps/src/i18n/comps/locales/en.ts index 57a1097d9..3e77ed0e7 100644 --- a/client/packages/lowcoder-comps/src/i18n/comps/locales/en.ts +++ b/client/packages/lowcoder-comps/src/i18n/comps/locales/en.ts @@ -103,14 +103,18 @@ export const en = { defaultMax:'100', gap: 'Gap', defaultGap: '2', - defaultStartAngle: '180', + defaultStartAngle: '210', startAngle: 'Start Angle', - defaultEndAngle: '0', + defaultEndAngle: '-30', endAngle: 'End Angle', defaultSplitNumber: '10', splitNumber: 'Split Number', radius: 'Radius', - defaultRadius: '60%', + defaultRadius: '60', + defaultPointerLength: '75', + pointerLength: 'Pointer Length', + pointerWidth: 'Pointer Width', + defaultPointerWidth: '25', label:'Label', }, From c14a22d0e7550c5a27ad4a8c25fa706072cfaf8c Mon Sep 17 00:00:00 2001 From: Imiss-U1025 Date: Mon, 16 Dec 2024 01:55:00 -0500 Subject: [PATCH 58/88] Updated Gauge Chart. --- .../src/comps/gaugeChartComp/gaugeChartConstants.tsx | 2 ++ .../comps/gaugeChartComp/gaugeChartPropertyView.tsx | 2 ++ .../src/comps/gaugeChartComp/gaugeChartUtils.ts | 1 + .../lowcoder-comps/src/i18n/comps/locales/en.ts | 10 +++++++--- .../lowcoder/src/comps/controls/styleControl.tsx | 3 ++- 5 files changed, 14 insertions(+), 4 deletions(-) diff --git a/client/packages/lowcoder-comps/src/comps/gaugeChartComp/gaugeChartConstants.tsx b/client/packages/lowcoder-comps/src/comps/gaugeChartComp/gaugeChartConstants.tsx index a8873e61e..b6193089f 100644 --- a/client/packages/lowcoder-comps/src/comps/gaugeChartComp/gaugeChartConstants.tsx +++ b/client/packages/lowcoder-comps/src/comps/gaugeChartComp/gaugeChartConstants.tsx @@ -269,6 +269,8 @@ let chartJsonModeChildren: any = { min:withDefault(NumberControl,trans('gaugeChart.defaultMin')), max:withDefault(NumberControl,trans('gaugeChart.defaultMax')), gap:withDefault(NumberControl,trans('gaugeChart.defaultGap')), + positin_x:withDefault(NumberControl,trans('gaugeChart.position_x')), + positin_y:withDefault(NumberControl,trans('gaugeChart.position_y')), startAngle:withDefault(NumberControl,trans('gaugeChart.defaultStartAngle')), endAngle:withDefault(NumberControl,trans('gaugeChart.defaultEndAngle')), splitNumber:withDefault(NumberControl,trans('gaugeChart.defaultSplitNumber')), diff --git a/client/packages/lowcoder-comps/src/comps/gaugeChartComp/gaugeChartPropertyView.tsx b/client/packages/lowcoder-comps/src/comps/gaugeChartComp/gaugeChartPropertyView.tsx index 11a28a1b7..a296e666a 100644 --- a/client/packages/lowcoder-comps/src/comps/gaugeChartComp/gaugeChartPropertyView.tsx +++ b/client/packages/lowcoder-comps/src/comps/gaugeChartComp/gaugeChartPropertyView.tsx @@ -40,6 +40,8 @@ export function gaugeChartPropertyView( {children.radius.propertyView({ label: trans("gaugeChart.radius") })} {children.min.propertyView({ label: trans("gaugeChart.min") })} {children.max.propertyView({ label: trans("gaugeChart.max") })} + {children.position_x.propertyView({ label: trans("gaugeChart.position_x") })} + {children.position_y.propertyView({ label: trans("gaugeChart.position_y") })} {children.startAngle.propertyView({ label: trans("gaugeChart.startAngle") })} {children.endAngle.propertyView({ label: trans("gaugeChart.endAngle") })} {children.splitNumber.propertyView({ label: trans("gaugeChart.splitNumber") })} diff --git a/client/packages/lowcoder-comps/src/comps/gaugeChartComp/gaugeChartUtils.ts b/client/packages/lowcoder-comps/src/comps/gaugeChartComp/gaugeChartUtils.ts index 39d4ee959..63b379c67 100644 --- a/client/packages/lowcoder-comps/src/comps/gaugeChartComp/gaugeChartUtils.ts +++ b/client/packages/lowcoder-comps/src/comps/gaugeChartComp/gaugeChartUtils.ts @@ -186,6 +186,7 @@ export function getEchartsConfig( "min": props.min, "max": props.max, "gap": props.gap, + "center": [`${props.position_x}%`, `${props.position_y}%`], "startAngle": props.startAngle, "endAngle": props.endAngle, "splitNumber": props.splitNumber, diff --git a/client/packages/lowcoder-comps/src/i18n/comps/locales/en.ts b/client/packages/lowcoder-comps/src/i18n/comps/locales/en.ts index 3e77ed0e7..208542ed0 100644 --- a/client/packages/lowcoder-comps/src/i18n/comps/locales/en.ts +++ b/client/packages/lowcoder-comps/src/i18n/comps/locales/en.ts @@ -110,12 +110,16 @@ export const en = { defaultSplitNumber: '10', splitNumber: 'Split Number', radius: 'Radius', - defaultRadius: '60', - defaultPointerLength: '75', + defaultRadius: '80', + defaultPointerLength: '50', pointerLength: 'Pointer Length', pointerWidth: 'Pointer Width', - defaultPointerWidth: '25', + defaultPointerWidth: '5', label:'Label', + position_x: 'Position-X', + defaultPosition_X: '50', + position_y: 'Position-Y', + defaultPosition_Y: '60', }, echarts: { diff --git a/client/packages/lowcoder/src/comps/controls/styleControl.tsx b/client/packages/lowcoder/src/comps/controls/styleControl.tsx index c87007c87..c4eb8546f 100644 --- a/client/packages/lowcoder/src/comps/controls/styleControl.tsx +++ b/client/packages/lowcoder/src/comps/controls/styleControl.tsx @@ -1077,6 +1077,7 @@ const RotationPropIcon = styled(RotationIcon)` margin: 0 8px 0 -3px; padding: 3p const StyledTextSizeIcon = styled(TextSizeIcon)` margin: 0 8px 0 -3px; padding: 3px; color: #888`; const StyledTextTransformIcon = styled(TextTransformationIcon)` margin: 0 8px 0 -3px; padding: 3px; color: #888`; const StyledFontFamilyIcon = styled(FontFamilyIcon)` margin: 0 8px 0 -3px; padding: 3px; color: #888`; +const StyledFontStyleIcon = styled(TextStyleIcon)` margin: 0 8px 0 -3px; padding: 3px; color: #888`; const StyledTextWeightIcon = styled(TextWeightIcon)` margin: 0 8px 0 -3px; padding: 3px; color: #888`; const StyledTextStyleIcon = styled(TextStyleIcon)` margin: 0 8px 0 -3px; padding: 3px; color: #888`; const StyledTextDecorationPropIcon = styled(TextDecorationIcon)` margin: 0 8px 0 -3px; padding: 3px; color: #888`; @@ -1477,7 +1478,7 @@ export function styleControl( > ).propertyView({ label: config.label, - preInputNode: , + preInputNode: , placeholder: props[name], }) : name === 'animationIterationCount' From 94c0f92b07a75dbdf5cc7f3de9ee3ce39257b82c Mon Sep 17 00:00:00 2001 From: Imiss-U1025 Date: Mon, 16 Dec 2024 02:41:44 -0500 Subject: [PATCH 59/88] Updated Gauge Chart. --- .../gaugeChartComp/gaugeChartConstants.tsx | 6 +++-- .../gaugeChartComp/gaugeChartPropertyView.tsx | 4 +++- .../comps/gaugeChartComp/gaugeChartUtils.ts | 23 ++++++++++++++----- .../src/i18n/comps/locales/en.ts | 4 +++- .../src/components/Section.tsx | 1 + .../src/i18n/design/locales/en.ts | 1 + 6 files changed, 29 insertions(+), 10 deletions(-) diff --git a/client/packages/lowcoder-comps/src/comps/gaugeChartComp/gaugeChartConstants.tsx b/client/packages/lowcoder-comps/src/comps/gaugeChartComp/gaugeChartConstants.tsx index b6193089f..e803aa346 100644 --- a/client/packages/lowcoder-comps/src/comps/gaugeChartComp/gaugeChartConstants.tsx +++ b/client/packages/lowcoder-comps/src/comps/gaugeChartComp/gaugeChartConstants.tsx @@ -261,6 +261,7 @@ let chartJsonModeChildren: any = { tooltip: withDefault(BoolControl, true), legendVisibility: withDefault(BoolControl, true), label: withDefault(BoolControl, true), + progressBar: withDefault(BoolControl, true), left:withDefault(NumberControl,trans('gaugeChart.defaultLeft')), top:withDefault(NumberControl,trans('gaugeChart.defaultTop')), bottom:withDefault(NumberControl,trans('gaugeChart.defaultBottom')), @@ -269,13 +270,14 @@ let chartJsonModeChildren: any = { min:withDefault(NumberControl,trans('gaugeChart.defaultMin')), max:withDefault(NumberControl,trans('gaugeChart.defaultMax')), gap:withDefault(NumberControl,trans('gaugeChart.defaultGap')), - positin_x:withDefault(NumberControl,trans('gaugeChart.position_x')), - positin_y:withDefault(NumberControl,trans('gaugeChart.position_y')), + position_x:withDefault(NumberControl,trans('gaugeChart.defaultPosition_X')), + position_y:withDefault(NumberControl,trans('gaugeChart.defaultPosition_Y')), startAngle:withDefault(NumberControl,trans('gaugeChart.defaultStartAngle')), endAngle:withDefault(NumberControl,trans('gaugeChart.defaultEndAngle')), splitNumber:withDefault(NumberControl,trans('gaugeChart.defaultSplitNumber')), pointerLength:withDefault(NumberControl,trans('gaugeChart.defaultPointerLength')), pointerWidth:withDefault(NumberControl,trans('gaugeChart.defaultPointerWidth')), + progressBarWidth:withDefault(NumberControl,trans('gaugeChart.defaultProgressBarWidth')), } if (EchartsStyle) { diff --git a/client/packages/lowcoder-comps/src/comps/gaugeChartComp/gaugeChartPropertyView.tsx b/client/packages/lowcoder-comps/src/comps/gaugeChartComp/gaugeChartPropertyView.tsx index a296e666a..42e8e44f8 100644 --- a/client/packages/lowcoder-comps/src/comps/gaugeChartComp/gaugeChartPropertyView.tsx +++ b/client/packages/lowcoder-comps/src/comps/gaugeChartComp/gaugeChartPropertyView.tsx @@ -47,8 +47,10 @@ export function gaugeChartPropertyView( {children.splitNumber.propertyView({ label: trans("gaugeChart.splitNumber") })} {children.pointerLength.propertyView({ label: trans("gaugeChart.pointerLength") })} {children.pointerWidth.propertyView({ label: trans("gaugeChart.pointerWidth") })} + {children.progressBar.getView() && children.progressBarWidth.propertyView({ label: trans("gaugeChart.progressBarWidth") })} {/* {children.gap.propertyView({ label: trans("gaugeChart.gap") })} */} {children.tooltip.propertyView({ label: trans("gaugeChart.tooltip") })} + {children.progressBar.propertyView({ label: trans("gaugeChart.progressBar") })}
{children.onEvent.propertyView()} @@ -62,7 +64,7 @@ export function gaugeChartPropertyView(
{children.labelStyle?.getPropertyView()}
-
+
{children.legendStyle?.getPropertyView()}
{hiddenPropertyView(children)}
diff --git a/client/packages/lowcoder-comps/src/comps/gaugeChartComp/gaugeChartUtils.ts b/client/packages/lowcoder-comps/src/comps/gaugeChartComp/gaugeChartUtils.ts index 63b379c67..07c612665 100644 --- a/client/packages/lowcoder-comps/src/comps/gaugeChartComp/gaugeChartUtils.ts +++ b/client/packages/lowcoder-comps/src/comps/gaugeChartComp/gaugeChartUtils.ts @@ -186,13 +186,13 @@ export function getEchartsConfig( "min": props.min, "max": props.max, "gap": props.gap, - "center": [`${props.position_x}%`, `${props.position_y}%`], - "startAngle": props.startAngle, - "endAngle": props.endAngle, - "splitNumber": props.splitNumber, + "center": [`${props?.position_x}%`, `${props?.position_y}%`], + "startAngle": props?.startAngle, + "endAngle": props?.endAngle, + "splitNumber": props?.splitNumber, "pointer": { - "length": `${props.pointerLength}%`, - "width": props.pointerWidth, + "length": `${props?.pointerLength}%`, + "width": props?.pointerWidth, }, "itemStyle": { "color": props.echartsOption.data?.map(data => data.color), @@ -206,6 +206,17 @@ export function getEchartsConfig( "shadowOffsetX": props?.chartStyle?.chartBoxShadow?.split('px')[1] || theme?.chartStyle?.boxShadow?.split('px')[1], "shadowOffsetY": props?.chartStyle?.chartBoxShadow?.split('px')[2] || theme?.chartStyle?.boxShadow?.split('px')[2] }, + "progress": { + "roundCap": true, + "show": props?.progressBar, + "width": props?.progressBarWidth + }, + "axisLine": { + "roundCap": true, + "lineStyle": { + "width": props?.progressBarWidth + } + }, 'detail': { "fontFamily": props?.legendStyle?.chartFontFamily || theme?.legendStyle?.fontFamily, "fontSize": props?.legendStyle?.chartTextSize || theme?.legendStyle?.fontSize || 16, diff --git a/client/packages/lowcoder-comps/src/i18n/comps/locales/en.ts b/client/packages/lowcoder-comps/src/i18n/comps/locales/en.ts index 208542ed0..71e84a73c 100644 --- a/client/packages/lowcoder-comps/src/i18n/comps/locales/en.ts +++ b/client/packages/lowcoder-comps/src/i18n/comps/locales/en.ts @@ -120,7 +120,9 @@ export const en = { defaultPosition_X: '50', position_y: 'Position-Y', defaultPosition_Y: '60', - + progressBarWidth: 'Progress Bar Width', + defaultProgressBarWidth: '10', + progressBar: 'Progress Bar', }, echarts: { defaultTitle: "Data Display", diff --git a/client/packages/lowcoder-design/src/components/Section.tsx b/client/packages/lowcoder-design/src/components/Section.tsx index c86374f6d..9a18116c5 100644 --- a/client/packages/lowcoder-design/src/components/Section.tsx +++ b/client/packages/lowcoder-design/src/components/Section.tsx @@ -190,4 +190,5 @@ export const sectionNames = { chartStyle:trans("prop.chartStyle"), titleStyle:trans("prop.titleStyle"), legendStyle:trans("prop.legendStyle"), + detailStyle:trans("prop.detailStyle"), }; diff --git a/client/packages/lowcoder-design/src/i18n/design/locales/en.ts b/client/packages/lowcoder-design/src/i18n/design/locales/en.ts index f7a1f4ac9..16c0258bb 100644 --- a/client/packages/lowcoder-design/src/i18n/design/locales/en.ts +++ b/client/packages/lowcoder-design/src/i18n/design/locales/en.ts @@ -43,6 +43,7 @@ export const en = { chartStyle: "Chart Style", titleStyle: "Title Style", legendStyle: "Legend Style", + detailStyle: "Detail Style", }, passwordInput: { label: "Password:", From 4e9422b6b6b83b1571acd5236d73b78f3e703412 Mon Sep 17 00:00:00 2001 From: Imiss-U1025 Date: Mon, 16 Dec 2024 03:22:18 -0500 Subject: [PATCH 60/88] Added axis style to Gauge chart. --- .../src/comps/gaugeChartComp/gaugeChartConstants.tsx | 1 + .../comps/gaugeChartComp/gaugeChartPropertyView.tsx | 3 +++ .../src/comps/gaugeChartComp/gaugeChartUtils.ts | 12 ++++++++++++ .../lowcoder-design/src/components/Section.tsx | 1 + .../lowcoder-design/src/i18n/design/locales/en.ts | 1 + 5 files changed, 18 insertions(+) diff --git a/client/packages/lowcoder-comps/src/comps/gaugeChartComp/gaugeChartConstants.tsx b/client/packages/lowcoder-comps/src/comps/gaugeChartComp/gaugeChartConstants.tsx index e803aa346..4fad59599 100644 --- a/client/packages/lowcoder-comps/src/comps/gaugeChartComp/gaugeChartConstants.tsx +++ b/client/packages/lowcoder-comps/src/comps/gaugeChartComp/gaugeChartConstants.tsx @@ -287,6 +287,7 @@ if (EchartsStyle) { titleStyle: styleControl(EchartDefaultTextStyle, 'titleStyle'), labelStyle: styleControl(EchartDefaultTextStyle, 'labelStyle'), legendStyle: styleControl(EchartDefaultTextStyle, 'legendStyle'), + axisLabelStyle: styleControl(EchartDefaultTextStyle, 'axisLabelStyle'), } } const chartMapModeChildren = { diff --git a/client/packages/lowcoder-comps/src/comps/gaugeChartComp/gaugeChartPropertyView.tsx b/client/packages/lowcoder-comps/src/comps/gaugeChartComp/gaugeChartPropertyView.tsx index 42e8e44f8..90ac83f47 100644 --- a/client/packages/lowcoder-comps/src/comps/gaugeChartComp/gaugeChartPropertyView.tsx +++ b/client/packages/lowcoder-comps/src/comps/gaugeChartComp/gaugeChartPropertyView.tsx @@ -67,6 +67,9 @@ export function gaugeChartPropertyView(
{children.legendStyle?.getPropertyView()}
+
+ {children.axisLabelStyle?.getPropertyView()} +
{hiddenPropertyView(children)}
); diff --git a/client/packages/lowcoder-comps/src/comps/gaugeChartComp/gaugeChartUtils.ts b/client/packages/lowcoder-comps/src/comps/gaugeChartComp/gaugeChartUtils.ts index 07c612665..b0dc5d297 100644 --- a/client/packages/lowcoder-comps/src/comps/gaugeChartComp/gaugeChartUtils.ts +++ b/client/packages/lowcoder-comps/src/comps/gaugeChartComp/gaugeChartUtils.ts @@ -217,6 +217,18 @@ export function getEchartsConfig( "width": props?.progressBarWidth } }, + "axisLabel": { + "distance": props?.progressBarWidth + "10", // Distance of the labels from the axis + "fontFamily": props?.axixLabelStyle?.chartFontFamily || theme?.axixLabelStyle?.fontFamily, + "fontSize": props?.axixLabelStyle?.chartTextSize || theme?.axixLabelStyle?.fontSize || 12, + "fontWeight": props?.axixLabelStyle?.chartTextWeight || theme?.axixLabelStyle?.fontWeight, + "color": props?.axixLabelStyle?.chartTextColor || theme?.axixLabelStyle?.fontColor || "#000000", + "fontStyle": props?.axixLabelStyle?.chartFontStyle || theme?.axixLabelStyle?.fontStyle, + "textShadowColor": props?.axixLabelStyle?.chartShadowColor || theme?.axixLabelStyle?.shadowColor, + "textShadowBlur": props?.axixLabelStyle?.chartBoxShadow?.split('px')[0] || theme?.axixLabelStyle?.boxShadow?.split('px')[0], + "textShadowOffsetX": props?.axixLabelStyle?.chartBoxShadow?.split('px')[1] || theme?.axixLabelStyle?.boxShadow?.split('px')[1], + "textShadowOffsetY": props?.axixLabelStyle?.chartBoxShadow?.split('px')[2] || theme?.axixLabelStyle?.boxShadow?.split('px')[2] + }, 'detail': { "fontFamily": props?.legendStyle?.chartFontFamily || theme?.legendStyle?.fontFamily, "fontSize": props?.legendStyle?.chartTextSize || theme?.legendStyle?.fontSize || 16, diff --git a/client/packages/lowcoder-design/src/components/Section.tsx b/client/packages/lowcoder-design/src/components/Section.tsx index 9a18116c5..a476395d2 100644 --- a/client/packages/lowcoder-design/src/components/Section.tsx +++ b/client/packages/lowcoder-design/src/components/Section.tsx @@ -191,4 +191,5 @@ export const sectionNames = { titleStyle:trans("prop.titleStyle"), legendStyle:trans("prop.legendStyle"), detailStyle:trans("prop.detailStyle"), + axisLabelStyle:trans("prop.axisLabelStyle"), }; diff --git a/client/packages/lowcoder-design/src/i18n/design/locales/en.ts b/client/packages/lowcoder-design/src/i18n/design/locales/en.ts index 16c0258bb..c3f38d07d 100644 --- a/client/packages/lowcoder-design/src/i18n/design/locales/en.ts +++ b/client/packages/lowcoder-design/src/i18n/design/locales/en.ts @@ -44,6 +44,7 @@ export const en = { titleStyle: "Title Style", legendStyle: "Legend Style", detailStyle: "Detail Style", + axisLabelStyle: "Axis Label Style" }, passwordInput: { label: "Password:", From 76474f7b3f5628043975446321ba77340fbd5d47 Mon Sep 17 00:00:00 2001 From: Imiss-U1025 Date: Mon, 16 Dec 2024 10:50:23 -0500 Subject: [PATCH 61/88] Added roundCap, theme setting to Gauge chart. --- .../comps/gaugeChartComp/gaugeChartComp.tsx | 3 +- .../gaugeChartComp/gaugeChartConstants.tsx | 1 + .../gaugeChartComp/gaugeChartPropertyView.tsx | 1 + .../comps/gaugeChartComp/gaugeChartUtils.ts | 33 ++++++++++--------- .../src/i18n/comps/locales/en.ts | 1 + 5 files changed, 21 insertions(+), 18 deletions(-) diff --git a/client/packages/lowcoder-comps/src/comps/gaugeChartComp/gaugeChartComp.tsx b/client/packages/lowcoder-comps/src/comps/gaugeChartComp/gaugeChartComp.tsx index 7e2574c04..82d1f5dff 100644 --- a/client/packages/lowcoder-comps/src/comps/gaugeChartComp/gaugeChartComp.tsx +++ b/client/packages/lowcoder-comps/src/comps/gaugeChartComp/gaugeChartComp.tsx @@ -146,7 +146,7 @@ GaugeChartTmpComp = withViewFn(GaugeChartTmpComp, (comp) => { return getEchartsConfig( childrenToProps(echartsConfigChildren) as ToViewReturn, chartSize, - theme?.theme?.components?.candleStickChart || {}, + themeConfig ); }, [chartSize, ...Object.values(echartsConfigChildren)]); @@ -176,7 +176,6 @@ GaugeChartTmpComp = withViewFn(GaugeChartTmpComp, (comp) => { lazyUpdate opts={{ locale: getEchartsLocale() }} option={option} - theme={mode !== 'map' ? themeConfig : undefined} mode={mode} /> diff --git a/client/packages/lowcoder-comps/src/comps/gaugeChartComp/gaugeChartConstants.tsx b/client/packages/lowcoder-comps/src/comps/gaugeChartComp/gaugeChartConstants.tsx index 4fad59599..f9f6210b5 100644 --- a/client/packages/lowcoder-comps/src/comps/gaugeChartComp/gaugeChartConstants.tsx +++ b/client/packages/lowcoder-comps/src/comps/gaugeChartComp/gaugeChartConstants.tsx @@ -262,6 +262,7 @@ let chartJsonModeChildren: any = { legendVisibility: withDefault(BoolControl, true), label: withDefault(BoolControl, true), progressBar: withDefault(BoolControl, true), + roundCap: withDefault(BoolControl, true), left:withDefault(NumberControl,trans('gaugeChart.defaultLeft')), top:withDefault(NumberControl,trans('gaugeChart.defaultTop')), bottom:withDefault(NumberControl,trans('gaugeChart.defaultBottom')), diff --git a/client/packages/lowcoder-comps/src/comps/gaugeChartComp/gaugeChartPropertyView.tsx b/client/packages/lowcoder-comps/src/comps/gaugeChartComp/gaugeChartPropertyView.tsx index 90ac83f47..0cb5ca5ab 100644 --- a/client/packages/lowcoder-comps/src/comps/gaugeChartComp/gaugeChartPropertyView.tsx +++ b/client/packages/lowcoder-comps/src/comps/gaugeChartComp/gaugeChartPropertyView.tsx @@ -51,6 +51,7 @@ export function gaugeChartPropertyView( {/* {children.gap.propertyView({ label: trans("gaugeChart.gap") })} */} {children.tooltip.propertyView({ label: trans("gaugeChart.tooltip") })} {children.progressBar.propertyView({ label: trans("gaugeChart.progressBar") })} + {children.roundCap.propertyView({ label: trans("gaugeChart.roundCap") })}
{children.onEvent.propertyView()} diff --git a/client/packages/lowcoder-comps/src/comps/gaugeChartComp/gaugeChartUtils.ts b/client/packages/lowcoder-comps/src/comps/gaugeChartComp/gaugeChartUtils.ts index b0dc5d297..bde12f550 100644 --- a/client/packages/lowcoder-comps/src/comps/gaugeChartComp/gaugeChartUtils.ts +++ b/client/packages/lowcoder-comps/src/comps/gaugeChartComp/gaugeChartUtils.ts @@ -174,6 +174,7 @@ export function getEchartsConfig( "trigger": "item", "formatter": "{a}
{b} : {c}%" }, + "color": props?.echartsOption?.data?.map(data => data.color), "series": [ { "name": props.echartsConfig.type, @@ -182,7 +183,7 @@ export function getEchartsConfig( "left": `${props.left}%`, "top": props.top, "bottom": props.bottom, - "width": `${props.left}%`, + "width":`${props.left}%`, "min": props.min, "max": props.max, "gap": props.gap, @@ -195,8 +196,7 @@ export function getEchartsConfig( "width": props?.pointerWidth, }, "itemStyle": { - "color": props.echartsOption.data?.map(data => data.color), - "opacity": props.opacity, + "opacity": props?.opacity, "borderColor": props?.chartStyle?.chartBorderColor || theme?.chartStyle?.borderColor, "borderWidth": props?.chartStyle?.chartBorderWidth || theme?.chartStyle?.borderWidth, "borderType": props?.chartStyle?.chartBorderStyle || theme?.chartStyle?.borderType, @@ -207,27 +207,27 @@ export function getEchartsConfig( "shadowOffsetY": props?.chartStyle?.chartBoxShadow?.split('px')[2] || theme?.chartStyle?.boxShadow?.split('px')[2] }, "progress": { - "roundCap": true, + "roundCap": props.roundCap, "show": props?.progressBar, "width": props?.progressBarWidth }, "axisLine": { - "roundCap": true, + "roundCap": props.roundCap, "lineStyle": { "width": props?.progressBarWidth } }, "axisLabel": { - "distance": props?.progressBarWidth + "10", // Distance of the labels from the axis - "fontFamily": props?.axixLabelStyle?.chartFontFamily || theme?.axixLabelStyle?.fontFamily, - "fontSize": props?.axixLabelStyle?.chartTextSize || theme?.axixLabelStyle?.fontSize || 12, - "fontWeight": props?.axixLabelStyle?.chartTextWeight || theme?.axixLabelStyle?.fontWeight, - "color": props?.axixLabelStyle?.chartTextColor || theme?.axixLabelStyle?.fontColor || "#000000", - "fontStyle": props?.axixLabelStyle?.chartFontStyle || theme?.axixLabelStyle?.fontStyle, - "textShadowColor": props?.axixLabelStyle?.chartShadowColor || theme?.axixLabelStyle?.shadowColor, - "textShadowBlur": props?.axixLabelStyle?.chartBoxShadow?.split('px')[0] || theme?.axixLabelStyle?.boxShadow?.split('px')[0], - "textShadowOffsetX": props?.axixLabelStyle?.chartBoxShadow?.split('px')[1] || theme?.axixLabelStyle?.boxShadow?.split('px')[1], - "textShadowOffsetY": props?.axixLabelStyle?.chartBoxShadow?.split('px')[2] || theme?.axixLabelStyle?.boxShadow?.split('px')[2] + "distance": Number(props?.progressBarWidth) + 10, + "fontFamily": props?.axisLabelStyle?.chartFontFamily || theme?.axisLabelStyle?.fontFamily, + "fontSize": props?.axisLabelStyle?.chartTextSize || theme?.axisLabelStyle?.fontSize || 12, + "fontWeight": props?.axisLabelStyle?.chartTextWeight || theme?.axisLabelStyle?.fontWeight, + "color": props?.axisLabelStyle?.chartTextColor || theme?.axisLabelStyle?.fontColor || "#000000", + "fontStyle": props?.axisLabelStyle?.chartFontStyle || theme?.axisLabelStyle?.fontStyle, + "textShadowColor": props?.axisLabelStyle?.chartShadowColor || theme?.axisLabelStyle?.shadowColor, + "textShadowBlur": props?.axisLabelStyle?.chartBoxShadow?.split('px')[0] || theme?.axisLabelStyle?.boxShadow?.split('px')[0], + "textShadowOffsetX": props?.axisLabelStyle?.chartBoxShadow?.split('px')[1] || theme?.axisLabelStyle?.boxShadow?.split('px')[1], + "textShadowOffsetY": props?.axisLabelStyle?.chartBoxShadow?.split('px')[2] || theme?.axisLabelStyle?.boxShadow?.split('px')[2] }, 'detail': { "fontFamily": props?.legendStyle?.chartFontFamily || theme?.legendStyle?.fontFamily, @@ -245,7 +245,8 @@ export function getEchartsConfig( "position": props.echartsLabelConfig.top, }, "data": props.echartsOption.data?.map(item => ({ - ...item, + "value": item.value, + "name": item.name, title: { "fontFamily": props?.labelStyle?.chartFontFamily || theme?.labelStyle?.fontFamily, "fontSize": props?.labelStyle?.chartTextSize || theme?.labelStyle?.fontSize, diff --git a/client/packages/lowcoder-comps/src/i18n/comps/locales/en.ts b/client/packages/lowcoder-comps/src/i18n/comps/locales/en.ts index 71e84a73c..1d540209c 100644 --- a/client/packages/lowcoder-comps/src/i18n/comps/locales/en.ts +++ b/client/packages/lowcoder-comps/src/i18n/comps/locales/en.ts @@ -123,6 +123,7 @@ export const en = { progressBarWidth: 'Progress Bar Width', defaultProgressBarWidth: '10', progressBar: 'Progress Bar', + roundCap: 'Round Cap', }, echarts: { defaultTitle: "Data Display", From e27f7ca0dec8b3beabc49ce1bdb9a24da9eed0f2 Mon Sep 17 00:00:00 2001 From: Imiss-U1025 Date: Mon, 16 Dec 2024 11:03:37 -0500 Subject: [PATCH 62/88] update-on-action when selecting theme. --- .../src/comps/funnelChartComp/funnelChartComp.tsx | 2 +- .../lowcoder-comps/src/comps/gaugeChartComp/gaugeChartComp.tsx | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/client/packages/lowcoder-comps/src/comps/funnelChartComp/funnelChartComp.tsx b/client/packages/lowcoder-comps/src/comps/funnelChartComp/funnelChartComp.tsx index b26a67182..339f4e717 100644 --- a/client/packages/lowcoder-comps/src/comps/funnelChartComp/funnelChartComp.tsx +++ b/client/packages/lowcoder-comps/src/comps/funnelChartComp/funnelChartComp.tsx @@ -147,7 +147,7 @@ FunnelChartTmpComp = withViewFn(FunnelChartTmpComp, (comp) => { chartSize, themeConfig, ); - }, [chartSize, ...Object.values(echartsConfigChildren)]); + }, [chartSize, ...Object.values(echartsConfigChildren), theme]); useEffect(() => { comp.children.mapInstance.dispatch(changeValueAction(null, false)) diff --git a/client/packages/lowcoder-comps/src/comps/gaugeChartComp/gaugeChartComp.tsx b/client/packages/lowcoder-comps/src/comps/gaugeChartComp/gaugeChartComp.tsx index 82d1f5dff..b8237b584 100644 --- a/client/packages/lowcoder-comps/src/comps/gaugeChartComp/gaugeChartComp.tsx +++ b/client/packages/lowcoder-comps/src/comps/gaugeChartComp/gaugeChartComp.tsx @@ -148,7 +148,7 @@ GaugeChartTmpComp = withViewFn(GaugeChartTmpComp, (comp) => { chartSize, themeConfig ); - }, [chartSize, ...Object.values(echartsConfigChildren)]); + }, [chartSize, ...Object.values(echartsConfigChildren), theme]); useEffect(() => { comp.children.mapInstance.dispatch(changeValueAction(null, false)) From 03bc7bdb4bac44cdce5e00487489ff66ccfe5a66 Mon Sep 17 00:00:00 2001 From: Imiss-U1025 Date: Mon, 16 Dec 2024 15:06:30 -0500 Subject: [PATCH 63/88] Added radical gradient and many fields to Candlestick chart. --- .../candleStickChartComp.tsx | 5 +- .../candleStickChartConstants.tsx | 11 +- .../candleStickChartPropertyView.tsx | 19 ++- .../candleStickChartUtils.ts | 113 ++++++++++-------- .../comps/funnelChartComp/funnelChartUtils.ts | 14 +-- .../comps/gaugeChartComp/gaugeChartUtils.ts | 14 +-- .../src/util/gradientBackgroundColor.tsx | 38 ++++++ .../lowcoder-comps/src/util/opacityToHex.tsx | 3 +- 8 files changed, 139 insertions(+), 78 deletions(-) create mode 100644 client/packages/lowcoder-comps/src/util/gradientBackgroundColor.tsx diff --git a/client/packages/lowcoder-comps/src/comps/candleStickChartComp/candleStickChartComp.tsx b/client/packages/lowcoder-comps/src/comps/candleStickChartComp/candleStickChartComp.tsx index 3f22b5c45..54f2007ed 100644 --- a/client/packages/lowcoder-comps/src/comps/candleStickChartComp/candleStickChartComp.tsx +++ b/client/packages/lowcoder-comps/src/comps/candleStickChartComp/candleStickChartComp.tsx @@ -144,9 +144,9 @@ CandleStickChartTmpComp = withViewFn(CandleStickChartTmpComp, (comp) => { return getEchartsConfig( childrenToProps(echartsConfigChildren) as ToViewReturn, chartSize, - theme?.theme?.components?.candleStickChart || {}, + themeConfig, ); - }, [chartSize, ...Object.values(echartsConfigChildren)]); + }, [chartSize, ...Object.values(echartsConfigChildren), theme]); useEffect(() => { comp.children.mapInstance.dispatch(changeValueAction(null, false)) @@ -174,7 +174,6 @@ CandleStickChartTmpComp = withViewFn(CandleStickChartTmpComp, (comp) => { lazyUpdate opts={{ locale: getEchartsLocale() }} option={option} - theme={mode !== 'map' ? themeConfig : undefined} mode={mode} /> diff --git a/client/packages/lowcoder-comps/src/comps/candleStickChartComp/candleStickChartConstants.tsx b/client/packages/lowcoder-comps/src/comps/candleStickChartComp/candleStickChartConstants.tsx index 35852214d..4501193df 100644 --- a/client/packages/lowcoder-comps/src/comps/candleStickChartComp/candleStickChartConstants.tsx +++ b/client/packages/lowcoder-comps/src/comps/candleStickChartComp/candleStickChartConstants.tsx @@ -16,7 +16,9 @@ import { uiChildren, clickEvent, styleControl, - EchartsStyle + EchartsStyle, + EchartDefaultChartStyle, + EchartDefaultTextStyle } from "lowcoder-sdk"; import { RecordConstructorToComp, RecordConstructorToView } from "lowcoder-core"; import { BarChartConfig } from "../chartComp/chartConfigs/barChartConfig"; @@ -24,6 +26,7 @@ import { XAxisConfig, YAxisConfig } from "../chartComp/chartConfigs/cartesianAxi import { LegendConfig } from "../chartComp/chartConfigs/legendConfig"; import { EchartsLegendConfig } from "../chartComp/chartConfigs/echartsLegendConfig"; import { EchartsLabelConfig } from "../chartComp/chartConfigs/echartsLabelConfig"; +import { EchartsTitleConfig } from "comps/chartComp/chartConfigs/echartsTitleConfig"; import { LineChartConfig } from "../chartComp/chartConfigs/lineChartConfig"; import { PieChartConfig } from "../chartComp/chartConfigs/pieChartConfig"; import { ScatterChartConfig } from "../chartComp/chartConfigs/scatterChartConfig"; @@ -252,6 +255,7 @@ let chartJsonModeChildren: any = { echartsTitle: withDefault(StringControl, trans("candleStickChart.defaultTitle")), echartsLegendConfig: EchartsLegendConfig, echartsLabelConfig: EchartsLabelConfig, + echartsTitleConfig:EchartsTitleConfig, echartsConfig: EchartsOptionComp, // style: styleControl(EchartsStyle, 'style'), tooltip: withDefault(BoolControl, true), @@ -260,7 +264,10 @@ let chartJsonModeChildren: any = { if (EchartsStyle) { chartJsonModeChildren = { ...chartJsonModeChildren, - style: styleControl(EchartsStyle, 'style'), + chartStyle: styleControl(EchartDefaultChartStyle, 'chartStyle'), + titleStyle: styleControl(EchartDefaultTextStyle, 'titleStyle'), + labelStyle: styleControl(EchartDefaultTextStyle, 'labelStyle'), + legendStyle: styleControl(EchartDefaultTextStyle, 'legendStyle'), } } diff --git a/client/packages/lowcoder-comps/src/comps/candleStickChartComp/candleStickChartPropertyView.tsx b/client/packages/lowcoder-comps/src/comps/candleStickChartComp/candleStickChartPropertyView.tsx index f0eea1e15..dee14e3e5 100644 --- a/client/packages/lowcoder-comps/src/comps/candleStickChartComp/candleStickChartPropertyView.tsx +++ b/client/packages/lowcoder-comps/src/comps/candleStickChartComp/candleStickChartPropertyView.tsx @@ -31,8 +31,11 @@ export function candleStickChartPropertyView( ), })} + {children.echartsTitleConfig.getPropertyView()} + {children.legendVisibility.getView()&& children.echartsLegendConfig.getPropertyView()} {children.echartsTitle.propertyView({ label: trans("candleStickChart.title") })} {children.tooltip.propertyView({label: trans("candleStickChart.tooltip")})} + {children.legendVisibility.propertyView({label: trans("funnelChart.legendVisibility")})}
{children.onEvent.propertyView()} @@ -40,7 +43,21 @@ export function candleStickChartPropertyView(
{children.style?.getPropertyView()}
-
{hiddenPropertyView(children)}
+
{hiddenPropertyView(children)} +
+ +
//chart's style + {children.chartStyle?.getPropertyView()} +
+
+ {children.titleStyle?.getPropertyView()} +
+
+ {children.labelStyle?.getPropertyView()} +
+
+ {children.legendStyle?.getPropertyView()} +
); diff --git a/client/packages/lowcoder-comps/src/comps/candleStickChartComp/candleStickChartUtils.ts b/client/packages/lowcoder-comps/src/comps/candleStickChartComp/candleStickChartUtils.ts index 8d94c105f..5ce196ae4 100644 --- a/client/packages/lowcoder-comps/src/comps/candleStickChartComp/candleStickChartUtils.ts +++ b/client/packages/lowcoder-comps/src/comps/candleStickChartComp/candleStickChartUtils.ts @@ -13,6 +13,7 @@ import { calcXYConfig } from "comps/chartComp/chartConfigs/cartesianAxisConfig"; import Big from "big.js"; import { googleMapsApiUrl } from "../chartComp/chartConfigs/chartUrls"; import { useContext } from "react"; +import getBackgroundColor from "../../util/gradientBackgroundColor"; export function transformData( originData: JSONObject[], @@ -134,64 +135,82 @@ export function getEchartsConfig( chartSize?: ChartSize, theme?: any, ): EChartsOptionWithMap { + + const backgroundColor = props?.chartStyle?.chartBackgroundColor || theme?.chartStyle?.backgroundColor || "#FFFFFF"; + const gradientColor = props?.chartStyle?.chartGradientColor || theme?.chartStyle?.gradientColor; + const opacity = props?.chartStyle?.chartOpacity || theme?.chartStyle?.opacity; + const direction = props?.chartStyle?.direction || theme?.chartStyle?.direction; + + if (props.mode === "json") { let opt={ - "title": { - "text": props.echartsTitle, - 'top': props.echartsLegendConfig.top === 'bottom' ?'top':'bottom', - "left":"center" - }, - "backgroundColor": props?.style?.background || theme?.style?.background, - "color": props.echartsOption.data?.map(data => data.color), - "tooltip": props.tooltip&&{ - "trigger": "axis", - "axisPointer": { - "type": "cross" - } - }, - "grid": { - "left": "10%", - "right": "10%", - "bottom": "10%", - }, - "xAxis": { - "type": "category", - "data": props.echartsOption.xAxis.data - }, - "yAxis": { - "type": "value", - "scale": true - }, - "series": [ - { - "name": props.echartsConfig.type, - "type": props.echartsConfig.type, - "left": "10%", - "top": 60, - "bottom": 60, - "width": "80%", - "min": 0, - "max": 100, - "gap": 2, - "label": { - "show": true, - "position": props.echartsLabelConfig.top + "title": { + "text": props.echartsTitle, + 'top': props.echartsLegendConfig.top === 'bottom' ?'top':'bottom', + "left":props.echartsTitleConfig.top, + "textStyle": { + "fontFamily": props?.titleStyle?.chartFontFamily || theme?.titleStyle?.fontFamily, + "fontSize": props?.titleStyle?.chartTextSize || theme?.titleStyle?.fontSize || '18', + "fontWeight": props?.titleStyle?.chartTextWeight || theme?.titleStyle?.fontWeight, + "color": props?.titleStyle?.chartTextColor || theme?.titleStyle?.fontColor || "#000000", + "fontStyle": props?.titleStyle?.chartFontStyle || theme?.titleStyle?.fontStyle, + "textShadowColor": props?.titleStyle?.chartShadowColor || theme?.titleStyle?.shadowColor, + "textShadowBlur": props?.titleStyle?.chartBoxShadow?.split('px')[0] || theme?.titleStyle?.boxShadow?.split('px')[0], + "textShadowOffsetX": props?.titleStyle?.chartBoxShadow?.split('px')[1] || theme?.titleStyle?.boxShadow?.split('px')[1], + "textShadowOffsetY": props?.titleStyle?.chartBoxShadow?.split('px')[2] || theme?.titleStyle?.boxShadow?.split('px')[2] + } + }, + "backgroundColor": getBackgroundColor(backgroundColor, gradientColor, opacity, direction), + "color": props.echartsOption.data?.map(data => data.color), + "tooltip": props.tooltip&&{ + "trigger": "axis", + "axisPointer": { + "type": "cross" + } + }, + "grid": { + "left": "10%", + "right": "10%", + "bottom": "10%", }, - "data": props.echartsOption.data, + "xAxis": { + "type": "category", + "data": props.echartsOption.xAxis.data + }, + "yAxis": { + "type": "value", + "scale": true + }, + "series": [ + { + "name": props.echartsConfig.type, + "type": props.echartsConfig.type, + "left": "10%", + "top": 60, + "bottom": 60, + "width": "80%", + "min": 0, + "max": 100, + "gap": 2, + "label": { + "show": true, + "position": props.echartsLabelConfig.top + }, + "data": props.echartsOption.data, + } + ] } - ] -} return props.echartsOption ? opt : {}; - + } - + if(props.mode === "map") { const { mapZoomLevel, mapCenterLat, mapCenterLng, - mapOptions, - showCharts, + mapOptions, + showCharts, } = props; const echartsOption = mapOptions && showCharts ? mapOptions : {}; diff --git a/client/packages/lowcoder-comps/src/comps/funnelChartComp/funnelChartUtils.ts b/client/packages/lowcoder-comps/src/comps/funnelChartComp/funnelChartUtils.ts index 7500ffb8d..0b468d693 100644 --- a/client/packages/lowcoder-comps/src/comps/funnelChartComp/funnelChartUtils.ts +++ b/client/packages/lowcoder-comps/src/comps/funnelChartComp/funnelChartUtils.ts @@ -13,6 +13,7 @@ import { calcXYConfig } from "comps/chartComp/chartConfigs/cartesianAxisConfig"; import Big from "big.js"; import { googleMapsApiUrl } from "../chartComp/chartConfigs/chartUrls"; import opacityToHex from "../../util/opacityToHex"; +import getBackgroundColor from "../../util/gradientBackgroundColor"; export function transformData( originData: JSONObject[], @@ -164,18 +165,7 @@ export function getEchartsConfig( "textShadowOffsetY": props?.titleStyle?.chartBoxShadow?.split('px')[2] || theme?.titleStyle?.boxShadow?.split('px')[2] } }, - "backgroundColor": gradientColor && backgroundColor - ? { - "x": direction?.split(' ')[0], - "y": direction?.split(' ')[1], - "x2": direction?.split(' ')[2], - "y2": direction?.split(' ')[3], - "colorStops": [ - { "offset": 0, "color": backgroundColor + opacityToHex(opacity)}, - { "offset": 1, "color": gradientColor + opacityToHex(opacity)} - ] - } - : backgroundColor + opacityToHex(opacity), + "backgroundColor": getBackgroundColor(backgroundColor, gradientColor, opacity, direction), "color": props.echartsOption.data?.map(data => data.color), "tooltip": props.tooltip&&{ "trigger": "item", diff --git a/client/packages/lowcoder-comps/src/comps/gaugeChartComp/gaugeChartUtils.ts b/client/packages/lowcoder-comps/src/comps/gaugeChartComp/gaugeChartUtils.ts index bde12f550..f36644c00 100644 --- a/client/packages/lowcoder-comps/src/comps/gaugeChartComp/gaugeChartUtils.ts +++ b/client/packages/lowcoder-comps/src/comps/gaugeChartComp/gaugeChartUtils.ts @@ -13,6 +13,7 @@ import { calcXYConfig } from "comps/chartComp/chartConfigs/cartesianAxisConfig"; import Big from "big.js"; import { googleMapsApiUrl } from "../chartComp/chartConfigs/chartUrls"; import opacityToHex from "../../util/opacityToHex"; +import getBackgroundColor from "../../util/gradientBackgroundColor"; export function transformData( originData: JSONObject[], @@ -158,18 +159,7 @@ export function getEchartsConfig( "textShadowOffsetY": props?.titleStyle?.chartBoxShadow?.split('px')[2] || theme?.titleStyle?.boxShadow?.split('px')[2] }, }, - "backgroundColor": gradientColor && backgroundColor - ? { - "x": direction?.split(' ')[0], - "y": direction?.split(' ')[1], - "x2": direction?.split(' ')[2], - "y2": direction?.split(' ')[3], - "colorStops": [ - { "offset": 0, "color": backgroundColor + opacityToHex(opacity)}, - { "offset": 1, "color": gradientColor + opacityToHex(opacity)} - ] - } - : backgroundColor + opacityToHex(opacity), + "backgroundColor": getBackgroundColor(backgroundColor, gradientColor, opacity, direction), "tooltip": props.tooltip&&{ "trigger": "item", "formatter": "{a}
{b} : {c}%" diff --git a/client/packages/lowcoder-comps/src/util/gradientBackgroundColor.tsx b/client/packages/lowcoder-comps/src/util/gradientBackgroundColor.tsx new file mode 100644 index 000000000..206246b3f --- /dev/null +++ b/client/packages/lowcoder-comps/src/util/gradientBackgroundColor.tsx @@ -0,0 +1,38 @@ +import opacityToHex from "./opacityToHex"; + +const getBackgroundColor = ( + backgroundColor = '', + gradientColor = '', + opacity = '', + direction = '', +) => { + if (direction?.split(' ').length < 4) + return gradientColor && backgroundColor + ? { + "type": 'radical', + "x": direction?.split(' ')[0], + "y": direction?.split(' ')[1], + "r": direction?.split(' ')[2], + "colorStops": [ + { "offset": 0, "color": backgroundColor + opacityToHex(opacity)}, + { "offset": 1, "color": gradientColor + opacityToHex(opacity)} + ] + } + : backgroundColor + opacityToHex(opacity) + else + return gradientColor && backgroundColor + ? { + "type": 'linear', + "x": direction?.split(' ')[0], + "y": direction?.split(' ')[1], + "x2": direction?.split(' ')[2], + "y2": direction?.split(' ')[3], + "colorStops": [ + { "offset": 0, "color": backgroundColor + opacityToHex(opacity)}, + { "offset": 1, "color": gradientColor + opacityToHex(opacity)} + ] + } + : backgroundColor + opacityToHex(opacity) +} + +export default getBackgroundColor; \ No newline at end of file diff --git a/client/packages/lowcoder-comps/src/util/opacityToHex.tsx b/client/packages/lowcoder-comps/src/util/opacityToHex.tsx index ec6f7774e..ddb71adae 100644 --- a/client/packages/lowcoder-comps/src/util/opacityToHex.tsx +++ b/client/packages/lowcoder-comps/src/util/opacityToHex.tsx @@ -11,4 +11,5 @@ export default function opacityToHex(opacity: any) { // Return 'FF' if an exception occurs return 'FF'; } -} \ No newline at end of file +} + From 6384363c59731d64f5bd713f2db2970610a784d8 Mon Sep 17 00:00:00 2001 From: Imiss-U1025 Date: Tue, 17 Dec 2024 04:34:55 -0500 Subject: [PATCH 64/88] Added datazoom, grid to candleStick chart. --- .../candleStickChartConstants.tsx | 8 ++++- .../candleStickChartPropertyView.tsx | 22 +++++++++---- .../candleStickChartUtils.ts | 31 +++++++++++++------ .../src/i18n/comps/locales/en.ts | 16 +++++++++- .../src/util/gradientBackgroundColor.tsx | 10 +++--- 5 files changed, 64 insertions(+), 23 deletions(-) diff --git a/client/packages/lowcoder-comps/src/comps/candleStickChartComp/candleStickChartConstants.tsx b/client/packages/lowcoder-comps/src/comps/candleStickChartComp/candleStickChartConstants.tsx index 4501193df..78f761344 100644 --- a/client/packages/lowcoder-comps/src/comps/candleStickChartComp/candleStickChartConstants.tsx +++ b/client/packages/lowcoder-comps/src/comps/candleStickChartComp/candleStickChartConstants.tsx @@ -257,9 +257,15 @@ let chartJsonModeChildren: any = { echartsLabelConfig: EchartsLabelConfig, echartsTitleConfig:EchartsTitleConfig, echartsConfig: EchartsOptionComp, - // style: styleControl(EchartsStyle, 'style'), + left:withDefault(NumberControl,trans('candleStickChart.defaultLeft')), + right:withDefault(NumberControl,trans('candleStickChart.defaultRight')), + top:withDefault(NumberControl,trans('candleStickChart.defaultTop')), + bottom:withDefault(NumberControl,trans('candleStickChart.defaultBottom')), + dataZoomBottom:withDefault(NumberControl,trans('candleStickChart.defaultDataZoomBottom')), + dataZoomHeight:withDefault(NumberControl,trans('candleStickChart.defaultDataZoomHeight')), tooltip: withDefault(BoolControl, true), legendVisibility: withDefault(BoolControl, true), + dataZoomVisibility: withDefault(BoolControl, true), } if (EchartsStyle) { chartJsonModeChildren = { diff --git a/client/packages/lowcoder-comps/src/comps/candleStickChartComp/candleStickChartPropertyView.tsx b/client/packages/lowcoder-comps/src/comps/candleStickChartComp/candleStickChartPropertyView.tsx index dee14e3e5..f68ed5977 100644 --- a/client/packages/lowcoder-comps/src/comps/candleStickChartComp/candleStickChartPropertyView.tsx +++ b/client/packages/lowcoder-comps/src/comps/candleStickChartComp/candleStickChartPropertyView.tsx @@ -32,10 +32,17 @@ export function candleStickChartPropertyView( ), })} {children.echartsTitleConfig.getPropertyView()} - {children.legendVisibility.getView()&& children.echartsLegendConfig.getPropertyView()} + {children.left.propertyView({ label: trans("candleStickChart.left") })} + {children.right.propertyView({ label: trans("candleStickChart.right") })} + {children.top.propertyView({ label: trans("candleStickChart.top") })} + {children.bottom.propertyView({ label: trans("candleStickChart.bottom") })} + {children.legendVisibility.getView() && children.echartsLegendConfig.getPropertyView()} {children.echartsTitle.propertyView({ label: trans("candleStickChart.title") })} + {children.dataZoomVisibility.getView() && children.dataZoomHeight.propertyView({ label: trans("candleStickChart.dataZoomHeight") })} + {children.dataZoomVisibility.getView() && children.dataZoomBottom.propertyView({ label: trans("candleStickChart.dataZoomBottom") })} {children.tooltip.propertyView({label: trans("candleStickChart.tooltip")})} - {children.legendVisibility.propertyView({label: trans("funnelChart.legendVisibility")})} + {children.legendVisibility.propertyView({label: trans("candleStickChart.legendVisibility")})} + {children.dataZoomVisibility.propertyView({label: trans("candleStickChart.dataZoomVisibility")})}
{children.onEvent.propertyView()} @@ -46,7 +53,7 @@ export function candleStickChartPropertyView(
{hiddenPropertyView(children)}
-
//chart's style +
{children.chartStyle?.getPropertyView()}
@@ -55,9 +62,12 @@ export function candleStickChartPropertyView(
{children.labelStyle?.getPropertyView()}
-
- {children.legendStyle?.getPropertyView()} -
+ { + children.legendVisibility.getView() ? +
+ {children.legendStyle?.getPropertyView()} +
: <> + } ); diff --git a/client/packages/lowcoder-comps/src/comps/candleStickChartComp/candleStickChartUtils.ts b/client/packages/lowcoder-comps/src/comps/candleStickChartComp/candleStickChartUtils.ts index 5ce196ae4..371c2db43 100644 --- a/client/packages/lowcoder-comps/src/comps/candleStickChartComp/candleStickChartUtils.ts +++ b/client/packages/lowcoder-comps/src/comps/candleStickChartComp/candleStickChartUtils.ts @@ -161,21 +161,32 @@ export function getEchartsConfig( } }, "backgroundColor": getBackgroundColor(backgroundColor, gradientColor, opacity, direction), - "color": props.echartsOption.data?.map(data => data.color), - "tooltip": props.tooltip&&{ + "color": props?.echartsOption.data?.map(data => data.color), + "tooltip": props?.tooltip&&{ "trigger": "axis", "axisPointer": { "type": "cross" } }, "grid": { - "left": "10%", - "right": "10%", - "bottom": "10%", + "left": `${props?.left}%`, + "right": `${props?.right}%`, + "bottom": `${props?.bottom}%`, + "top": `${props?.top}%`, }, + "dataZoom": [ + { + "show": props?.dataZoomVisibility, + "type": 'slider', + "start": 0, + "end": 100, + "bottom": props?.dataZoomBottom, + 'height': props?.dataZoomHeight + } + ], "xAxis": { "type": "category", - "data": props.echartsOption.xAxis.data + "data": props?.echartsOption.xAxis.data }, "yAxis": { "type": "value", @@ -183,8 +194,8 @@ export function getEchartsConfig( }, "series": [ { - "name": props.echartsConfig.type, - "type": props.echartsConfig.type, + "name": props?.echartsConfig.type, + "type": props?.echartsConfig.type, "left": "10%", "top": 60, "bottom": 60, @@ -194,9 +205,9 @@ export function getEchartsConfig( "gap": 2, "label": { "show": true, - "position": props.echartsLabelConfig.top + "position": props?.echartsLabelConfig.top }, - "data": props.echartsOption.data, + "data": props?.echartsOption.data, } ] } diff --git a/client/packages/lowcoder-comps/src/i18n/comps/locales/en.ts b/client/packages/lowcoder-comps/src/i18n/comps/locales/en.ts index 1d540209c..bb181e66b 100644 --- a/client/packages/lowcoder-comps/src/i18n/comps/locales/en.ts +++ b/client/packages/lowcoder-comps/src/i18n/comps/locales/en.ts @@ -52,6 +52,20 @@ export const en = { title: 'Title', defaultTitle: 'CandleStick Chart', tooltip: 'Tooltip', + legendVisibility: 'Legend Visibility', + dataZoomVisibility: 'Data Zoom Visibility', + left: 'Left', + defaultLeft:'10', + right: 'Right', + defaultRight:'10', + top: 'Top', + defaultTop:'20', + bottom: 'Bottom', + defaultBottom:'20', + defaultDataZoomBottom: '20', + dataZoomBottom: 'Data Zoom Bottom', + defaultDataZoomHeight: '15', + dataZoomHeight: 'Data Zoom Height' }, sankeyChart: { sankeyType: 'Sankey Chart Type', @@ -79,7 +93,7 @@ export const en = { defaultMax:'100', gap: 'Gap', defaultGap: '2', - label:'Label', + label:'Label Visibility', opacity: 'Opacity', defaultOpacity: '1', diff --git a/client/packages/lowcoder-comps/src/util/gradientBackgroundColor.tsx b/client/packages/lowcoder-comps/src/util/gradientBackgroundColor.tsx index 206246b3f..b5aab38a0 100644 --- a/client/packages/lowcoder-comps/src/util/gradientBackgroundColor.tsx +++ b/client/packages/lowcoder-comps/src/util/gradientBackgroundColor.tsx @@ -1,15 +1,15 @@ import opacityToHex from "./opacityToHex"; const getBackgroundColor = ( - backgroundColor = '', - gradientColor = '', - opacity = '', - direction = '', + backgroundColor: any, + gradientColor: any, + opacity: any, + direction: any, ) => { if (direction?.split(' ').length < 4) return gradientColor && backgroundColor ? { - "type": 'radical', + "type": 'radial', "x": direction?.split(' ')[0], "y": direction?.split(' ')[1], "r": direction?.split(' ')[2], From 4098b68ebb1ecb78d9ea5faf3c1e3e9faefbf7df Mon Sep 17 00:00:00 2001 From: Imiss-U1025 Date: Tue, 17 Dec 2024 13:39:00 -0500 Subject: [PATCH 65/88] Added an ability that legend of funnel can be on the left or right. --- .../candleStickChartPropertyView.tsx | 2 +- .../chartConfigs/echartsLegendAlignConfig.tsx | 48 +++++++++++++++++++ .../echartsLegendLayoutConfig.tsx | 43 +++++++++++++++++ .../funnelChartComp/funnelChartConstants.tsx | 4 ++ .../funnelChartPropertyView.tsx | 4 +- .../comps/funnelChartComp/funnelChartUtils.ts | 2 + .../src/i18n/comps/locales/en.ts | 4 +- .../lowcoder-design/src/icons/index.tsx | 2 + 8 files changed, 106 insertions(+), 3 deletions(-) create mode 100644 client/packages/lowcoder-comps/src/comps/chartComp/chartConfigs/echartsLegendAlignConfig.tsx create mode 100644 client/packages/lowcoder-comps/src/comps/chartComp/chartConfigs/echartsLegendLayoutConfig.tsx diff --git a/client/packages/lowcoder-comps/src/comps/candleStickChartComp/candleStickChartPropertyView.tsx b/client/packages/lowcoder-comps/src/comps/candleStickChartComp/candleStickChartPropertyView.tsx index f68ed5977..124ae89f6 100644 --- a/client/packages/lowcoder-comps/src/comps/candleStickChartComp/candleStickChartPropertyView.tsx +++ b/client/packages/lowcoder-comps/src/comps/candleStickChartComp/candleStickChartPropertyView.tsx @@ -32,11 +32,11 @@ export function candleStickChartPropertyView( ), })} {children.echartsTitleConfig.getPropertyView()} + {children.legendVisibility.getView() && children.echartsLegendConfig.getPropertyView()} {children.left.propertyView({ label: trans("candleStickChart.left") })} {children.right.propertyView({ label: trans("candleStickChart.right") })} {children.top.propertyView({ label: trans("candleStickChart.top") })} {children.bottom.propertyView({ label: trans("candleStickChart.bottom") })} - {children.legendVisibility.getView() && children.echartsLegendConfig.getPropertyView()} {children.echartsTitle.propertyView({ label: trans("candleStickChart.title") })} {children.dataZoomVisibility.getView() && children.dataZoomHeight.propertyView({ label: trans("candleStickChart.dataZoomHeight") })} {children.dataZoomVisibility.getView() && children.dataZoomBottom.propertyView({ label: trans("candleStickChart.dataZoomBottom") })} diff --git a/client/packages/lowcoder-comps/src/comps/chartComp/chartConfigs/echartsLegendAlignConfig.tsx b/client/packages/lowcoder-comps/src/comps/chartComp/chartConfigs/echartsLegendAlignConfig.tsx new file mode 100644 index 000000000..20a78cedc --- /dev/null +++ b/client/packages/lowcoder-comps/src/comps/chartComp/chartConfigs/echartsLegendAlignConfig.tsx @@ -0,0 +1,48 @@ +import { + AlignClose, + AlignRight, + AlignLeft, + dropdownControl, + MultiCompBuilder, +} from "lowcoder-sdk"; +import {FunnelSeriesOption, LegendComponentOption} from "echarts"; +import { trans } from "i18n/comps"; + +const FunnelLegnedAlignOptions = [ + { + label: , + value: "center", + }, + { + label: , + value: "right", + }, + { + label: , + value: "left", + }, +] as const; + +export const EchartsLegendAlignConfig = (function () { + return new MultiCompBuilder( + { + legendAlign: dropdownControl(FunnelLegnedAlignOptions, "center"), + }, + (props): FunnelSeriesOption => { + const config: FunnelSeriesOption = { + left: "center", + }; + config.left = props.legendAlign + return config; + } + ) + .setPropertyViewFn((children) => ( + <> + {children.legendAlign.propertyView({ + label: trans("echarts.legendAlign"), + radioButton: true, + })} + + )) + .build(); +})(); diff --git a/client/packages/lowcoder-comps/src/comps/chartComp/chartConfigs/echartsLegendLayoutConfig.tsx b/client/packages/lowcoder-comps/src/comps/chartComp/chartConfigs/echartsLegendLayoutConfig.tsx new file mode 100644 index 000000000..84f81d8d2 --- /dev/null +++ b/client/packages/lowcoder-comps/src/comps/chartComp/chartConfigs/echartsLegendLayoutConfig.tsx @@ -0,0 +1,43 @@ +import { + HorizontoalIcon, + VerticalIcon, + dropdownControl, + MultiCompBuilder, +} from "lowcoder-sdk"; +import { LegendComponentOption } from "echarts"; +import { trans } from "i18n/comps"; + +const LegendLayoutOptions = [ + { + label: , + value: "horizontal", + }, + { + label: , + value: "vertical", + }, +] as const; + +export const EchartsLegendLayoutConfig = (function () { + return new MultiCompBuilder( + { + legendLayout: dropdownControl(LegendLayoutOptions, "bottom"), + }, + (props): LegendComponentOption => { + const config: LegendComponentOption = { + orient: "horizontal", + }; + config.orient = props.legendLayout + return config; + } + ) + .setPropertyViewFn((children) => ( + <> + {children.legendLayout.propertyView({ + label: trans("echarts.legendLayout"), + radioButton: true, + })} + + )) + .build(); +})(); diff --git a/client/packages/lowcoder-comps/src/comps/funnelChartComp/funnelChartConstants.tsx b/client/packages/lowcoder-comps/src/comps/funnelChartComp/funnelChartConstants.tsx index 4fe1db61c..ced9a43b5 100644 --- a/client/packages/lowcoder-comps/src/comps/funnelChartComp/funnelChartConstants.tsx +++ b/client/packages/lowcoder-comps/src/comps/funnelChartComp/funnelChartConstants.tsx @@ -36,6 +36,8 @@ import { i18nObjs, trans } from "i18n/comps"; import { FunnelChartConfig} from "../chartComp/chartConfigs/funnelChartConfig"; import { EchartsTitleConfig } from "comps/chartComp/chartConfigs/echartsTitleConfig"; import { EchartsSortingConfig } from "../chartComp/chartConfigs/echartsSortingConfig"; +import { EchartsLegendAlignConfig } from "../chartComp/chartConfigs/echartsLegendAlignConfig"; +import { EchartsLegendLayoutConfig } from "../chartComp/chartConfigs/echartsLegendLayoutConfig"; export const ChartTypeOptions = [ { @@ -259,6 +261,8 @@ let chartJsonModeChildren: any = { echartsSortingConfig: EchartsSortingConfig, echartsLabelConfig: EchartsLabelConfig, echartsFunnelAlignConfig: EchartsFunnelAlignConfig, + echartsLegendLayoutConfig: EchartsLegendLayoutConfig, + echartsLegendAlignConfig: EchartsLegendAlignConfig, echartsConfig: EchartsOptionComp, echartsTitleConfig:EchartsTitleConfig, // style: styleControl(EchartsStyle, 'style'), diff --git a/client/packages/lowcoder-comps/src/comps/funnelChartComp/funnelChartPropertyView.tsx b/client/packages/lowcoder-comps/src/comps/funnelChartComp/funnelChartPropertyView.tsx index 5de94d5e5..0e482cd1e 100644 --- a/client/packages/lowcoder-comps/src/comps/funnelChartComp/funnelChartPropertyView.tsx +++ b/client/packages/lowcoder-comps/src/comps/funnelChartComp/funnelChartPropertyView.tsx @@ -34,7 +34,9 @@ export function funnelChartPropertyView( {children.legendVisibility.getView()&& children.echartsLegendConfig.getPropertyView()} {children.echartsSortingConfig.getPropertyView()} {children.label.getView()&& children.echartsLabelConfig.getPropertyView()} - {children.echartsFunnelAlignConfig.getPropertyView()} + {children.echartsLegendLayoutConfig.getPropertyView()} + {children.echartsLegendAlignConfig.getPropertyView()} + {children.echartsConfig.getPropertyView()} {children.echartsTitleConfig.getPropertyView()} {children.left.propertyView({ label: trans("funnelChart.left") })} {children.top.propertyView({ label: trans("funnelChart.top") })} diff --git a/client/packages/lowcoder-comps/src/comps/funnelChartComp/funnelChartUtils.ts b/client/packages/lowcoder-comps/src/comps/funnelChartComp/funnelChartUtils.ts index 0b468d693..7d3f34b71 100644 --- a/client/packages/lowcoder-comps/src/comps/funnelChartComp/funnelChartUtils.ts +++ b/client/packages/lowcoder-comps/src/comps/funnelChartComp/funnelChartUtils.ts @@ -174,6 +174,8 @@ export function getEchartsConfig( "legend":props.legendVisibility&& { "data": props.echartsOption.data?.map(data=>data.name), "top": props.echartsLegendConfig.top, + "left": props.echartsLegendAlignConfig.left, + "orient": props.echartsLegendAlignConfig.orient, "textStyle": { "fontFamily": props?.legendStyle?.chartFontFamily || theme?.legendStyle?.fontFamily, "fontSize": props?.legendStyle?.chartTextSize || theme?.legendStyle?.fontSize, diff --git a/client/packages/lowcoder-comps/src/i18n/comps/locales/en.ts b/client/packages/lowcoder-comps/src/i18n/comps/locales/en.ts index bb181e66b..c401336b8 100644 --- a/client/packages/lowcoder-comps/src/i18n/comps/locales/en.ts +++ b/client/packages/lowcoder-comps/src/i18n/comps/locales/en.ts @@ -145,7 +145,9 @@ export const en = { labelPosition: "Label Position", titlePosition: "Title Position", funnelAlign: "Funnel Align", - sort: "Sort" + sort: "Sort", + legendLayout: "Chart Legend Layout", + legendAlign: "Chart Legend Align" }, chart: { delete: "Delete", diff --git a/client/packages/lowcoder-design/src/icons/index.tsx b/client/packages/lowcoder-design/src/icons/index.tsx index a538cb9bb..d08e290d8 100644 --- a/client/packages/lowcoder-design/src/icons/index.tsx +++ b/client/packages/lowcoder-design/src/icons/index.tsx @@ -250,6 +250,8 @@ export { ReactComponent as MarketplaceIcon } from "./v1/icon-application-marketp export { ReactComponent as FavoritesIcon } from "./v1/icon-application-favorites.svg"; export { ReactComponent as HomeSettingIcon } from "./remix/settings-4-line.svg"; export { ReactComponent as EnterpriseIcon } from "./remix/earth-line.svg"; +export { ReactComponent as VerticalIcon } from "./remix/vertical.svg"; +export { ReactComponent as HorizontalIcon } from "./remix/horizontal.svg"; // components From 584908131eb67ccf5929e5fc9a6628d94d5abfe9 Mon Sep 17 00:00:00 2001 From: Imiss-U1025 Date: Tue, 17 Dec 2024 13:40:56 -0500 Subject: [PATCH 66/88] Added horizontal, vertical icons --- .../lowcoder-design/src/icons/remix/horizontal.svg | 14 ++++++++++++++ .../lowcoder-design/src/icons/remix/vertical.svg | 14 ++++++++++++++ 2 files changed, 28 insertions(+) create mode 100644 client/packages/lowcoder-design/src/icons/remix/horizontal.svg create mode 100644 client/packages/lowcoder-design/src/icons/remix/vertical.svg diff --git a/client/packages/lowcoder-design/src/icons/remix/horizontal.svg b/client/packages/lowcoder-design/src/icons/remix/horizontal.svg new file mode 100644 index 000000000..762219159 --- /dev/null +++ b/client/packages/lowcoder-design/src/icons/remix/horizontal.svg @@ -0,0 +1,14 @@ + + + + + + \ No newline at end of file diff --git a/client/packages/lowcoder-design/src/icons/remix/vertical.svg b/client/packages/lowcoder-design/src/icons/remix/vertical.svg new file mode 100644 index 000000000..07d4f5f7b --- /dev/null +++ b/client/packages/lowcoder-design/src/icons/remix/vertical.svg @@ -0,0 +1,14 @@ + + + + + + \ No newline at end of file From 4ae442740628a726bb748f9a99c3d2e664aa1297 Mon Sep 17 00:00:00 2001 From: Imiss-U1025 Date: Tue, 17 Dec 2024 14:54:20 -0500 Subject: [PATCH 67/88] Fixed legend option of funnel charts --- .../chartComp/chartConfigs/echartsLegendAlignConfig.tsx | 9 +++++---- .../chartComp/chartConfigs/echartsLegendLayoutConfig.tsx | 3 ++- .../comps/funnelChartComp/funnelChartPropertyView.tsx | 6 +++--- .../src/comps/funnelChartComp/funnelChartUtils.ts | 2 +- 4 files changed, 11 insertions(+), 9 deletions(-) diff --git a/client/packages/lowcoder-comps/src/comps/chartComp/chartConfigs/echartsLegendAlignConfig.tsx b/client/packages/lowcoder-comps/src/comps/chartComp/chartConfigs/echartsLegendAlignConfig.tsx index 20a78cedc..a9b512c6e 100644 --- a/client/packages/lowcoder-comps/src/comps/chartComp/chartConfigs/echartsLegendAlignConfig.tsx +++ b/client/packages/lowcoder-comps/src/comps/chartComp/chartConfigs/echartsLegendAlignConfig.tsx @@ -5,7 +5,7 @@ import { dropdownControl, MultiCompBuilder, } from "lowcoder-sdk"; -import {FunnelSeriesOption, LegendComponentOption} from "echarts"; +import { LegendComponentOption } from "echarts"; import { trans } from "i18n/comps"; const FunnelLegnedAlignOptions = [ @@ -28,9 +28,10 @@ export const EchartsLegendAlignConfig = (function () { { legendAlign: dropdownControl(FunnelLegnedAlignOptions, "center"), }, - (props): FunnelSeriesOption => { - const config: FunnelSeriesOption = { - left: "center", + (props): LegendComponentOption => { + const config: LegendComponentOption = { + left: "right", + type: "scroll", }; config.left = props.legendAlign return config; diff --git a/client/packages/lowcoder-comps/src/comps/chartComp/chartConfigs/echartsLegendLayoutConfig.tsx b/client/packages/lowcoder-comps/src/comps/chartComp/chartConfigs/echartsLegendLayoutConfig.tsx index 84f81d8d2..94493fea9 100644 --- a/client/packages/lowcoder-comps/src/comps/chartComp/chartConfigs/echartsLegendLayoutConfig.tsx +++ b/client/packages/lowcoder-comps/src/comps/chartComp/chartConfigs/echartsLegendLayoutConfig.tsx @@ -25,7 +25,8 @@ export const EchartsLegendLayoutConfig = (function () { }, (props): LegendComponentOption => { const config: LegendComponentOption = { - orient: "horizontal", + orient: "vertical", + type: "scroll" }; config.orient = props.legendLayout return config; diff --git a/client/packages/lowcoder-comps/src/comps/funnelChartComp/funnelChartPropertyView.tsx b/client/packages/lowcoder-comps/src/comps/funnelChartComp/funnelChartPropertyView.tsx index 0e482cd1e..1e933c8ad 100644 --- a/client/packages/lowcoder-comps/src/comps/funnelChartComp/funnelChartPropertyView.tsx +++ b/client/packages/lowcoder-comps/src/comps/funnelChartComp/funnelChartPropertyView.tsx @@ -34,9 +34,9 @@ export function funnelChartPropertyView( {children.legendVisibility.getView()&& children.echartsLegendConfig.getPropertyView()} {children.echartsSortingConfig.getPropertyView()} {children.label.getView()&& children.echartsLabelConfig.getPropertyView()} - {children.echartsLegendLayoutConfig.getPropertyView()} - {children.echartsLegendAlignConfig.getPropertyView()} - {children.echartsConfig.getPropertyView()} + {children.echartsFunnelAlignConfig.getPropertyView()} + {children.legendVisibility.getView() && children.echartsLegendLayoutConfig.getPropertyView()} + {children.legendVisibility.getView() && children.echartsLegendAlignConfig.getPropertyView()} {children.echartsTitleConfig.getPropertyView()} {children.left.propertyView({ label: trans("funnelChart.left") })} {children.top.propertyView({ label: trans("funnelChart.top") })} diff --git a/client/packages/lowcoder-comps/src/comps/funnelChartComp/funnelChartUtils.ts b/client/packages/lowcoder-comps/src/comps/funnelChartComp/funnelChartUtils.ts index 7d3f34b71..dc6365e05 100644 --- a/client/packages/lowcoder-comps/src/comps/funnelChartComp/funnelChartUtils.ts +++ b/client/packages/lowcoder-comps/src/comps/funnelChartComp/funnelChartUtils.ts @@ -175,7 +175,7 @@ export function getEchartsConfig( "data": props.echartsOption.data?.map(data=>data.name), "top": props.echartsLegendConfig.top, "left": props.echartsLegendAlignConfig.left, - "orient": props.echartsLegendAlignConfig.orient, + "orient": props.echartsLegendLayoutConfig.orient, "textStyle": { "fontFamily": props?.legendStyle?.chartFontFamily || theme?.legendStyle?.fontFamily, "fontSize": props?.legendStyle?.chartTextSize || theme?.legendStyle?.fontSize, From cd45364eae0ea80dffb03687eef6f7ac4093d83d Mon Sep 17 00:00:00 2001 From: Imiss-U1025 Date: Tue, 17 Dec 2024 18:44:02 -0500 Subject: [PATCH 68/88] Fixed icon colors and changed order. --- .../chartConfigs/echartsLegendAlignConfig.tsx | 8 ++-- ...nfig.tsx => echartsLegendOrientConfig.tsx} | 14 +++--- .../echartsTitleVerticalConfig.tsx | 44 +++++++++++++++++++ .../funnelChartComp/funnelChartConstants.tsx | 6 ++- .../funnelChartPropertyView.tsx | 9 ++-- .../src/i18n/comps/locales/en.ts | 11 ++--- .../src/icons/remix/horizontal.svg | 4 +- .../src/icons/remix/vertical.svg | 2 +- 8 files changed, 73 insertions(+), 25 deletions(-) rename client/packages/lowcoder-comps/src/comps/chartComp/chartConfigs/{echartsLegendLayoutConfig.tsx => echartsLegendOrientConfig.tsx} (67%) create mode 100644 client/packages/lowcoder-comps/src/comps/chartComp/chartConfigs/echartsTitleVerticalConfig.tsx diff --git a/client/packages/lowcoder-comps/src/comps/chartComp/chartConfigs/echartsLegendAlignConfig.tsx b/client/packages/lowcoder-comps/src/comps/chartComp/chartConfigs/echartsLegendAlignConfig.tsx index a9b512c6e..193f35198 100644 --- a/client/packages/lowcoder-comps/src/comps/chartComp/chartConfigs/echartsLegendAlignConfig.tsx +++ b/client/packages/lowcoder-comps/src/comps/chartComp/chartConfigs/echartsLegendAlignConfig.tsx @@ -26,20 +26,20 @@ const FunnelLegnedAlignOptions = [ export const EchartsLegendAlignConfig = (function () { return new MultiCompBuilder( { - legendAlign: dropdownControl(FunnelLegnedAlignOptions, "center"), + left: dropdownControl(FunnelLegnedAlignOptions, "center"), }, (props): LegendComponentOption => { const config: LegendComponentOption = { - left: "right", + left: "center", type: "scroll", }; - config.left = props.legendAlign + config.left = props.left return config; } ) .setPropertyViewFn((children) => ( <> - {children.legendAlign.propertyView({ + {children.left.propertyView({ label: trans("echarts.legendAlign"), radioButton: true, })} diff --git a/client/packages/lowcoder-comps/src/comps/chartComp/chartConfigs/echartsLegendLayoutConfig.tsx b/client/packages/lowcoder-comps/src/comps/chartComp/chartConfigs/echartsLegendOrientConfig.tsx similarity index 67% rename from client/packages/lowcoder-comps/src/comps/chartComp/chartConfigs/echartsLegendLayoutConfig.tsx rename to client/packages/lowcoder-comps/src/comps/chartComp/chartConfigs/echartsLegendOrientConfig.tsx index 94493fea9..97f457cf6 100644 --- a/client/packages/lowcoder-comps/src/comps/chartComp/chartConfigs/echartsLegendLayoutConfig.tsx +++ b/client/packages/lowcoder-comps/src/comps/chartComp/chartConfigs/echartsLegendOrientConfig.tsx @@ -7,7 +7,7 @@ import { import { LegendComponentOption } from "echarts"; import { trans } from "i18n/comps"; -const LegendLayoutOptions = [ +const LegendOrientOptions = [ { label: , value: "horizontal", @@ -18,24 +18,24 @@ const LegendLayoutOptions = [ }, ] as const; -export const EchartsLegendLayoutConfig = (function () { +export const EchartsLegendOrientConfig = (function () { return new MultiCompBuilder( { - legendLayout: dropdownControl(LegendLayoutOptions, "bottom"), + orient: dropdownControl(LegendOrientOptions, "horizontal"), }, (props): LegendComponentOption => { const config: LegendComponentOption = { - orient: "vertical", + orient: "horizontal", type: "scroll" }; - config.orient = props.legendLayout + config.orient = props.orient return config; } ) .setPropertyViewFn((children) => ( <> - {children.legendLayout.propertyView({ - label: trans("echarts.legendLayout"), + {children.orient.propertyView({ + label: trans("echarts.legendOrient"), radioButton: true, })} diff --git a/client/packages/lowcoder-comps/src/comps/chartComp/chartConfigs/echartsTitleVerticalConfig.tsx b/client/packages/lowcoder-comps/src/comps/chartComp/chartConfigs/echartsTitleVerticalConfig.tsx new file mode 100644 index 000000000..c3b32c97b --- /dev/null +++ b/client/packages/lowcoder-comps/src/comps/chartComp/chartConfigs/echartsTitleVerticalConfig.tsx @@ -0,0 +1,44 @@ +import { + AlignBottom, + AlignTop, + dropdownControl, + MultiCompBuilder, +} from "lowcoder-sdk"; +import { LegendComponentOption } from "echarts"; +import { trans } from "i18n/comps"; + +const LegendPositionOptions = [ + { + label: , + value: "bottom", + }, + { + label: , + value: "top", + }, +] as const; + +export const EchartsTitleVerticalConfig = (function () { + return new MultiCompBuilder( + { + position: dropdownControl(LegendPositionOptions, "top"), + }, + (props): LegendComponentOption => { + const config: LegendComponentOption = { + top: "top", + type: "scroll", + }; + config.top = props.position + return config; + } + ) + .setPropertyViewFn((children) => ( + <> + {children.position.propertyView({ + label: trans("echarts.titlePositionVertical"), + radioButton: true, + })} + + )) + .build(); +})(); diff --git a/client/packages/lowcoder-comps/src/comps/funnelChartComp/funnelChartConstants.tsx b/client/packages/lowcoder-comps/src/comps/funnelChartComp/funnelChartConstants.tsx index ced9a43b5..9b1b04a82 100644 --- a/client/packages/lowcoder-comps/src/comps/funnelChartComp/funnelChartConstants.tsx +++ b/client/packages/lowcoder-comps/src/comps/funnelChartComp/funnelChartConstants.tsx @@ -37,7 +37,8 @@ import { FunnelChartConfig} from "../chartComp/chartConfigs/funnelChartConfig"; import { EchartsTitleConfig } from "comps/chartComp/chartConfigs/echartsTitleConfig"; import { EchartsSortingConfig } from "../chartComp/chartConfigs/echartsSortingConfig"; import { EchartsLegendAlignConfig } from "../chartComp/chartConfigs/echartsLegendAlignConfig"; -import { EchartsLegendLayoutConfig } from "../chartComp/chartConfigs/echartsLegendLayoutConfig"; +import { EchartsLegendOrientConfig } from "../chartComp/chartConfigs/echartsLegendOrientConfig"; +import { EchartsTitleVerticalConfig } from "../chartComp/chartConfigs/echartsTitleVerticalConfig"; export const ChartTypeOptions = [ { @@ -261,10 +262,11 @@ let chartJsonModeChildren: any = { echartsSortingConfig: EchartsSortingConfig, echartsLabelConfig: EchartsLabelConfig, echartsFunnelAlignConfig: EchartsFunnelAlignConfig, - echartsLegendLayoutConfig: EchartsLegendLayoutConfig, + echartsLegendOrientConfig: EchartsLegendOrientConfig, echartsLegendAlignConfig: EchartsLegendAlignConfig, echartsConfig: EchartsOptionComp, echartsTitleConfig:EchartsTitleConfig, + echartsTitleVerticalConfig: EchartsTitleVerticalConfig, // style: styleControl(EchartsStyle, 'style'), tooltip: withDefault(BoolControl, true), label: withDefault(BoolControl, true), diff --git a/client/packages/lowcoder-comps/src/comps/funnelChartComp/funnelChartPropertyView.tsx b/client/packages/lowcoder-comps/src/comps/funnelChartComp/funnelChartPropertyView.tsx index 1e933c8ad..e05dd97b0 100644 --- a/client/packages/lowcoder-comps/src/comps/funnelChartComp/funnelChartPropertyView.tsx +++ b/client/packages/lowcoder-comps/src/comps/funnelChartComp/funnelChartPropertyView.tsx @@ -31,13 +31,14 @@ export function funnelChartPropertyView( ), })} - {children.legendVisibility.getView()&& children.echartsLegendConfig.getPropertyView()} + {children.echartsTitleVerticalConfig.getPropertyView()} + {children.echartsTitleConfig.getPropertyView()} + {children.legendVisibility.getView() && children.echartsLegendConfig.getPropertyView()} + {children.legendVisibility.getView() && children.echartsLegendOrientConfig.getPropertyView()} + {children.legendVisibility.getView() && children.echartsLegendAlignConfig.getPropertyView()} {children.echartsSortingConfig.getPropertyView()} {children.label.getView()&& children.echartsLabelConfig.getPropertyView()} {children.echartsFunnelAlignConfig.getPropertyView()} - {children.legendVisibility.getView() && children.echartsLegendLayoutConfig.getPropertyView()} - {children.legendVisibility.getView() && children.echartsLegendAlignConfig.getPropertyView()} - {children.echartsTitleConfig.getPropertyView()} {children.left.propertyView({ label: trans("funnelChart.left") })} {children.top.propertyView({ label: trans("funnelChart.top") })} {children.bottom.propertyView({ label: trans("funnelChart.bottom") })} diff --git a/client/packages/lowcoder-comps/src/i18n/comps/locales/en.ts b/client/packages/lowcoder-comps/src/i18n/comps/locales/en.ts index c401336b8..0ef061ffd 100644 --- a/client/packages/lowcoder-comps/src/i18n/comps/locales/en.ts +++ b/client/packages/lowcoder-comps/src/i18n/comps/locales/en.ts @@ -141,13 +141,14 @@ export const en = { }, echarts: { defaultTitle: "Data Display", - legendPosition: "Legend Position", - labelPosition: "Label Position", - titlePosition: "Title Position", + legendPosition: "Legend-X", + legendOrient: "Legend Orient", + legendAlign: "Legend-Y", + labelPosition: "Label-X", + titlePosition: "Title-X", + titlePositionVertical: "Title-Y", funnelAlign: "Funnel Align", sort: "Sort", - legendLayout: "Chart Legend Layout", - legendAlign: "Chart Legend Align" }, chart: { delete: "Delete", diff --git a/client/packages/lowcoder-design/src/icons/remix/horizontal.svg b/client/packages/lowcoder-design/src/icons/remix/horizontal.svg index 762219159..a534c5534 100644 --- a/client/packages/lowcoder-design/src/icons/remix/horizontal.svg +++ b/client/packages/lowcoder-design/src/icons/remix/horizontal.svg @@ -1,9 +1,9 @@ - - - { const config: LegendComponentOption = { top: "top", type: "scroll", }; - config.top = props.position + config.top = props.top return config; } ) .setPropertyViewFn((children) => ( <> - {children.position.propertyView({ + {children.top.propertyView({ label: trans("echarts.titlePositionVertical"), radioButton: true, })} diff --git a/client/packages/lowcoder-comps/src/comps/funnelChartComp/funnelChartUtils.ts b/client/packages/lowcoder-comps/src/comps/funnelChartComp/funnelChartUtils.ts index dc6365e05..fc76f323c 100644 --- a/client/packages/lowcoder-comps/src/comps/funnelChartComp/funnelChartUtils.ts +++ b/client/packages/lowcoder-comps/src/comps/funnelChartComp/funnelChartUtils.ts @@ -151,7 +151,7 @@ export function getEchartsConfig( let opt={ "title": { "text": props.echartsTitle, - 'top': props.echartsLegendConfig.top === 'bottom' ?'top':'bottom', + 'top': props.echartsTitleVerticalConfig.top, "left":props.echartsTitleConfig.top, "textStyle": { "fontFamily": props?.titleStyle?.chartFontFamily || theme?.titleStyle?.fontFamily, From 76bd5ff3211c273ed021f1da990495002c6f442a Mon Sep 17 00:00:00 2001 From: Imiss-U1025 Date: Wed, 18 Dec 2024 10:15:08 -0500 Subject: [PATCH 70/88] Changed Align order on Funnel chart --- .../chartConfigs/echartsFunnelAlignConfig.tsx | 10 ++--- .../chartConfigs/echartsLabelConfig.tsx | 10 ++--- .../chartConfigs/echartsLegendAlignConfig.tsx | 10 ++--- .../echartsLegendOrientConfig.tsx | 4 +- .../chartConfigs/echartsTitleConfig.tsx | 10 ++--- .../echartsTitleVerticalConfig.tsx | 44 ------------------- .../funnelChartComp/funnelChartConstants.tsx | 2 - .../funnelChartPropertyView.tsx | 1 - .../comps/funnelChartComp/funnelChartUtils.ts | 11 +---- 9 files changed, 24 insertions(+), 78 deletions(-) delete mode 100644 client/packages/lowcoder-comps/src/comps/chartComp/chartConfigs/echartsTitleVerticalConfig.tsx diff --git a/client/packages/lowcoder-comps/src/comps/chartComp/chartConfigs/echartsFunnelAlignConfig.tsx b/client/packages/lowcoder-comps/src/comps/chartComp/chartConfigs/echartsFunnelAlignConfig.tsx index c10d38907..786099d0e 100644 --- a/client/packages/lowcoder-comps/src/comps/chartComp/chartConfigs/echartsFunnelAlignConfig.tsx +++ b/client/packages/lowcoder-comps/src/comps/chartComp/chartConfigs/echartsFunnelAlignConfig.tsx @@ -9,6 +9,10 @@ import {FunnelSeriesOption, LegendComponentOption} from "echarts"; import { trans } from "i18n/comps"; const FunnelAlignOptions = [ + { + label: , + value: "left", + }, { label: , value: "center", @@ -16,11 +20,7 @@ const FunnelAlignOptions = [ { label: , value: "right", - }, - { - label: , - value: "left", - }, + } ] as const; export const EchartsFunnelAlignConfig = (function () { diff --git a/client/packages/lowcoder-comps/src/comps/chartComp/chartConfigs/echartsLabelConfig.tsx b/client/packages/lowcoder-comps/src/comps/chartComp/chartConfigs/echartsLabelConfig.tsx index 64b808e01..039280209 100644 --- a/client/packages/lowcoder-comps/src/comps/chartComp/chartConfigs/echartsLabelConfig.tsx +++ b/client/packages/lowcoder-comps/src/comps/chartComp/chartConfigs/echartsLabelConfig.tsx @@ -9,6 +9,10 @@ import { LegendComponentOption } from "echarts"; import { trans } from "i18n/comps"; const LabelPositionOptions = [ + { + label: , + value: "left", + }, { label: , value: "inside", @@ -16,11 +20,7 @@ const LabelPositionOptions = [ { label: , value: "right", - }, - { - label: , - value: "left", - }, + } ] as const; export const EchartsLabelConfig = (function () { diff --git a/client/packages/lowcoder-comps/src/comps/chartComp/chartConfigs/echartsLegendAlignConfig.tsx b/client/packages/lowcoder-comps/src/comps/chartComp/chartConfigs/echartsLegendAlignConfig.tsx index 193f35198..812d82a3d 100644 --- a/client/packages/lowcoder-comps/src/comps/chartComp/chartConfigs/echartsLegendAlignConfig.tsx +++ b/client/packages/lowcoder-comps/src/comps/chartComp/chartConfigs/echartsLegendAlignConfig.tsx @@ -9,6 +9,10 @@ import { LegendComponentOption } from "echarts"; import { trans } from "i18n/comps"; const FunnelLegnedAlignOptions = [ + { + label: , + value: "left", + }, { label: , value: "center", @@ -16,11 +20,7 @@ const FunnelLegnedAlignOptions = [ { label: , value: "right", - }, - { - label: , - value: "left", - }, + } ] as const; export const EchartsLegendAlignConfig = (function () { diff --git a/client/packages/lowcoder-comps/src/comps/chartComp/chartConfigs/echartsLegendOrientConfig.tsx b/client/packages/lowcoder-comps/src/comps/chartComp/chartConfigs/echartsLegendOrientConfig.tsx index 97f457cf6..5f60632b2 100644 --- a/client/packages/lowcoder-comps/src/comps/chartComp/chartConfigs/echartsLegendOrientConfig.tsx +++ b/client/packages/lowcoder-comps/src/comps/chartComp/chartConfigs/echartsLegendOrientConfig.tsx @@ -1,5 +1,5 @@ import { - HorizontoalIcon, + HorizontalIcon, VerticalIcon, dropdownControl, MultiCompBuilder, @@ -9,7 +9,7 @@ import { trans } from "i18n/comps"; const LegendOrientOptions = [ { - label: , + label: , value: "horizontal", }, { diff --git a/client/packages/lowcoder-comps/src/comps/chartComp/chartConfigs/echartsTitleConfig.tsx b/client/packages/lowcoder-comps/src/comps/chartComp/chartConfigs/echartsTitleConfig.tsx index a9305de25..280fad6ae 100644 --- a/client/packages/lowcoder-comps/src/comps/chartComp/chartConfigs/echartsTitleConfig.tsx +++ b/client/packages/lowcoder-comps/src/comps/chartComp/chartConfigs/echartsTitleConfig.tsx @@ -9,6 +9,10 @@ import { LegendComponentOption } from "echarts"; import { trans } from "i18n/comps"; const TitlePositionOptions = [ + { + label: , + value: "left", + }, { label: , value: "center", @@ -16,11 +20,7 @@ const TitlePositionOptions = [ { label: , value: "right", - }, - { - label: , - value: "left", - }, + } ] as const; export const EchartsTitleConfig = (function () { diff --git a/client/packages/lowcoder-comps/src/comps/chartComp/chartConfigs/echartsTitleVerticalConfig.tsx b/client/packages/lowcoder-comps/src/comps/chartComp/chartConfigs/echartsTitleVerticalConfig.tsx deleted file mode 100644 index b14841180..000000000 --- a/client/packages/lowcoder-comps/src/comps/chartComp/chartConfigs/echartsTitleVerticalConfig.tsx +++ /dev/null @@ -1,44 +0,0 @@ -import { - AlignBottom, - AlignTop, - dropdownControl, - MultiCompBuilder, -} from "lowcoder-sdk"; -import { LegendComponentOption } from "echarts"; -import { trans } from "i18n/comps"; - -const LegendPositionOptions = [ - { - label: , - value: "bottom", - }, - { - label: , - value: "top", - }, -] as const; - -export const EchartsTitleVerticalConfig = (function () { - return new MultiCompBuilder( - { - top: dropdownControl(LegendPositionOptions, "top"), - }, - (props): LegendComponentOption => { - const config: LegendComponentOption = { - top: "top", - type: "scroll", - }; - config.top = props.top - return config; - } - ) - .setPropertyViewFn((children) => ( - <> - {children.top.propertyView({ - label: trans("echarts.titlePositionVertical"), - radioButton: true, - })} - - )) - .build(); -})(); diff --git a/client/packages/lowcoder-comps/src/comps/funnelChartComp/funnelChartConstants.tsx b/client/packages/lowcoder-comps/src/comps/funnelChartComp/funnelChartConstants.tsx index 9b1b04a82..d6a140865 100644 --- a/client/packages/lowcoder-comps/src/comps/funnelChartComp/funnelChartConstants.tsx +++ b/client/packages/lowcoder-comps/src/comps/funnelChartComp/funnelChartConstants.tsx @@ -38,7 +38,6 @@ import { EchartsTitleConfig } from "comps/chartComp/chartConfigs/echartsTitleCon import { EchartsSortingConfig } from "../chartComp/chartConfigs/echartsSortingConfig"; import { EchartsLegendAlignConfig } from "../chartComp/chartConfigs/echartsLegendAlignConfig"; import { EchartsLegendOrientConfig } from "../chartComp/chartConfigs/echartsLegendOrientConfig"; -import { EchartsTitleVerticalConfig } from "../chartComp/chartConfigs/echartsTitleVerticalConfig"; export const ChartTypeOptions = [ { @@ -266,7 +265,6 @@ let chartJsonModeChildren: any = { echartsLegendAlignConfig: EchartsLegendAlignConfig, echartsConfig: EchartsOptionComp, echartsTitleConfig:EchartsTitleConfig, - echartsTitleVerticalConfig: EchartsTitleVerticalConfig, // style: styleControl(EchartsStyle, 'style'), tooltip: withDefault(BoolControl, true), label: withDefault(BoolControl, true), diff --git a/client/packages/lowcoder-comps/src/comps/funnelChartComp/funnelChartPropertyView.tsx b/client/packages/lowcoder-comps/src/comps/funnelChartComp/funnelChartPropertyView.tsx index e05dd97b0..92b110c2d 100644 --- a/client/packages/lowcoder-comps/src/comps/funnelChartComp/funnelChartPropertyView.tsx +++ b/client/packages/lowcoder-comps/src/comps/funnelChartComp/funnelChartPropertyView.tsx @@ -31,7 +31,6 @@ export function funnelChartPropertyView( ), })} - {children.echartsTitleVerticalConfig.getPropertyView()} {children.echartsTitleConfig.getPropertyView()} {children.legendVisibility.getView() && children.echartsLegendConfig.getPropertyView()} {children.legendVisibility.getView() && children.echartsLegendOrientConfig.getPropertyView()} diff --git a/client/packages/lowcoder-comps/src/comps/funnelChartComp/funnelChartUtils.ts b/client/packages/lowcoder-comps/src/comps/funnelChartComp/funnelChartUtils.ts index fc76f323c..6f800df8c 100644 --- a/client/packages/lowcoder-comps/src/comps/funnelChartComp/funnelChartUtils.ts +++ b/client/packages/lowcoder-comps/src/comps/funnelChartComp/funnelChartUtils.ts @@ -135,23 +135,16 @@ export function getEchartsConfig( chartSize?: ChartSize, theme?: any, ): EChartsOptionWithMap { - - console.log("props", props); - console.log("theme", theme); - const backgroundColor = props?.chartStyle?.chartBackgroundColor || theme?.chartStyle?.backgroundColor || "#FFFFFF"; const gradientColor = props?.chartStyle?.chartGradientColor || theme?.chartStyle?.gradientColor; const opacity = props?.chartStyle?.chartOpacity || theme?.chartStyle?.opacity; const direction = props?.chartStyle?.direction || theme?.chartStyle?.direction; - console.log("props", props); - console.log("theme", theme); - if (props.mode === "json") { let opt={ "title": { "text": props.echartsTitle, - 'top': props.echartsTitleVerticalConfig.top, + 'top': "top", "left":props.echartsTitleConfig.top, "textStyle": { "fontFamily": props?.titleStyle?.chartFontFamily || theme?.titleStyle?.fontFamily, @@ -175,7 +168,7 @@ export function getEchartsConfig( "data": props.echartsOption.data?.map(data=>data.name), "top": props.echartsLegendConfig.top, "left": props.echartsLegendAlignConfig.left, - "orient": props.echartsLegendLayoutConfig.orient, + "orient": props.echartsLegendOrientConfig.orient, "textStyle": { "fontFamily": props?.legendStyle?.chartFontFamily || theme?.legendStyle?.fontFamily, "fontSize": props?.legendStyle?.chartTextSize || theme?.legendStyle?.fontSize, From 03f51ac757c593a2f9736f7b84aed56da8195296 Mon Sep 17 00:00:00 2001 From: Imiss-U1025 Date: Wed, 18 Dec 2024 11:04:36 -0500 Subject: [PATCH 71/88] Added descriptions to properties of funnel chart. --- .../chartConfigs/echartsFunnelAlignConfig.tsx | 1 + .../chartConfigs/echartsLabelConfig.tsx | 1 + .../chartConfigs/echartsLegendAlignConfig.tsx | 1 + .../chartConfigs/echartsLegendConfig.tsx | 1 + .../chartConfigs/echartsLegendOrientConfig.tsx | 1 + .../chartConfigs/echartsSortingConfig.tsx | 1 + .../chartConfigs/echartsTitleConfig.tsx | 1 + .../funnelChartComp/funnelChartPropertyView.tsx | 8 ++++---- .../lowcoder-comps/src/i18n/comps/locales/en.ts | 17 ++++++++++++++--- 9 files changed, 25 insertions(+), 7 deletions(-) diff --git a/client/packages/lowcoder-comps/src/comps/chartComp/chartConfigs/echartsFunnelAlignConfig.tsx b/client/packages/lowcoder-comps/src/comps/chartComp/chartConfigs/echartsFunnelAlignConfig.tsx index 786099d0e..812666b17 100644 --- a/client/packages/lowcoder-comps/src/comps/chartComp/chartConfigs/echartsFunnelAlignConfig.tsx +++ b/client/packages/lowcoder-comps/src/comps/chartComp/chartConfigs/echartsFunnelAlignConfig.tsx @@ -41,6 +41,7 @@ export const EchartsFunnelAlignConfig = (function () { {children.funnelAlign.propertyView({ label: trans("echarts.funnelAlign"), radioButton: true, + tooltip: trans("echarts.changingAlignTooltip") })} )) diff --git a/client/packages/lowcoder-comps/src/comps/chartComp/chartConfigs/echartsLabelConfig.tsx b/client/packages/lowcoder-comps/src/comps/chartComp/chartConfigs/echartsLabelConfig.tsx index 039280209..d522dcec2 100644 --- a/client/packages/lowcoder-comps/src/comps/chartComp/chartConfigs/echartsLabelConfig.tsx +++ b/client/packages/lowcoder-comps/src/comps/chartComp/chartConfigs/echartsLabelConfig.tsx @@ -42,6 +42,7 @@ export const EchartsLabelConfig = (function () { {children.position.propertyView({ label: trans("echarts.labelPosition"), radioButton: true, + tooltip: trans("echarts.changingLabelTooltip") })} )) diff --git a/client/packages/lowcoder-comps/src/comps/chartComp/chartConfigs/echartsLegendAlignConfig.tsx b/client/packages/lowcoder-comps/src/comps/chartComp/chartConfigs/echartsLegendAlignConfig.tsx index 812d82a3d..e29611463 100644 --- a/client/packages/lowcoder-comps/src/comps/chartComp/chartConfigs/echartsLegendAlignConfig.tsx +++ b/client/packages/lowcoder-comps/src/comps/chartComp/chartConfigs/echartsLegendAlignConfig.tsx @@ -42,6 +42,7 @@ export const EchartsLegendAlignConfig = (function () { {children.left.propertyView({ label: trans("echarts.legendAlign"), radioButton: true, + tooltip: trans("echarts.changingLegend_y_Tooltip") })} )) diff --git a/client/packages/lowcoder-comps/src/comps/chartComp/chartConfigs/echartsLegendConfig.tsx b/client/packages/lowcoder-comps/src/comps/chartComp/chartConfigs/echartsLegendConfig.tsx index 41fb166fb..21dea46f3 100644 --- a/client/packages/lowcoder-comps/src/comps/chartComp/chartConfigs/echartsLegendConfig.tsx +++ b/client/packages/lowcoder-comps/src/comps/chartComp/chartConfigs/echartsLegendConfig.tsx @@ -37,6 +37,7 @@ export const EchartsLegendConfig = (function () { {children.position.propertyView({ label: trans("echarts.legendPosition"), radioButton: true, + tooltip: trans("echarts.changingLegend_x_Tooltip") })} )) diff --git a/client/packages/lowcoder-comps/src/comps/chartComp/chartConfigs/echartsLegendOrientConfig.tsx b/client/packages/lowcoder-comps/src/comps/chartComp/chartConfigs/echartsLegendOrientConfig.tsx index 5f60632b2..82ebb79ec 100644 --- a/client/packages/lowcoder-comps/src/comps/chartComp/chartConfigs/echartsLegendOrientConfig.tsx +++ b/client/packages/lowcoder-comps/src/comps/chartComp/chartConfigs/echartsLegendOrientConfig.tsx @@ -37,6 +37,7 @@ export const EchartsLegendOrientConfig = (function () { {children.orient.propertyView({ label: trans("echarts.legendOrient"), radioButton: true, + tooltip: trans("echarts.changingLegend_orient_Tooltip") })} )) diff --git a/client/packages/lowcoder-comps/src/comps/chartComp/chartConfigs/echartsSortingConfig.tsx b/client/packages/lowcoder-comps/src/comps/chartComp/chartConfigs/echartsSortingConfig.tsx index 8f53e7d8a..0d0e28482 100644 --- a/client/packages/lowcoder-comps/src/comps/chartComp/chartConfigs/echartsSortingConfig.tsx +++ b/client/packages/lowcoder-comps/src/comps/chartComp/chartConfigs/echartsSortingConfig.tsx @@ -36,6 +36,7 @@ export const EchartsSortingConfig = (function () { {children.sort.propertyView({ label: trans("echarts.sort"), radioButton: true, + tooltip: trans("echarts.changingSortTooltip") })} )) diff --git a/client/packages/lowcoder-comps/src/comps/chartComp/chartConfigs/echartsTitleConfig.tsx b/client/packages/lowcoder-comps/src/comps/chartComp/chartConfigs/echartsTitleConfig.tsx index 280fad6ae..05b1871fe 100644 --- a/client/packages/lowcoder-comps/src/comps/chartComp/chartConfigs/echartsTitleConfig.tsx +++ b/client/packages/lowcoder-comps/src/comps/chartComp/chartConfigs/echartsTitleConfig.tsx @@ -42,6 +42,7 @@ export const EchartsTitleConfig = (function () { {children.position.propertyView({ label: trans("echarts.titlePosition"), radioButton: true, + tooltip: trans("echarts.changingTitle_x_Tooltip") })} )) diff --git a/client/packages/lowcoder-comps/src/comps/funnelChartComp/funnelChartPropertyView.tsx b/client/packages/lowcoder-comps/src/comps/funnelChartComp/funnelChartPropertyView.tsx index 92b110c2d..1551e909e 100644 --- a/client/packages/lowcoder-comps/src/comps/funnelChartComp/funnelChartPropertyView.tsx +++ b/client/packages/lowcoder-comps/src/comps/funnelChartComp/funnelChartPropertyView.tsx @@ -33,8 +33,8 @@ export function funnelChartPropertyView( })} {children.echartsTitleConfig.getPropertyView()} {children.legendVisibility.getView() && children.echartsLegendConfig.getPropertyView()} - {children.legendVisibility.getView() && children.echartsLegendOrientConfig.getPropertyView()} {children.legendVisibility.getView() && children.echartsLegendAlignConfig.getPropertyView()} + {children.legendVisibility.getView() && children.echartsLegendOrientConfig.getPropertyView()} {children.echartsSortingConfig.getPropertyView()} {children.label.getView()&& children.echartsLabelConfig.getPropertyView()} {children.echartsFunnelAlignConfig.getPropertyView()} @@ -47,9 +47,9 @@ export function funnelChartPropertyView( {children.gap.propertyView({ label: trans("funnelChart.gap") })} {children.opacity.propertyView({ label: trans("funnelChart.opacity") })} {children.echartsTitle.propertyView({ label: trans("funnelChart.title") })} - {children.tooltip.propertyView({label: trans("funnelChart.tooltip")})} - {children.label.propertyView({label: trans("funnelChart.label")})} - {children.legendVisibility.propertyView({label: trans("funnelChart.legendVisibility")})} + {children.tooltip.propertyView({label: trans("funnelChart.tooltip"), tooltip: trans("echarts.tooltipVisibilityTooltip")})} + {children.label.propertyView({label: trans("funnelChart.label"), tooltip: trans("echarts.labelVisibilityTooltip")})} + {children.legendVisibility.propertyView({label: trans("funnelChart.legendVisibility"), tooltip: trans("echarts.legendVisibilityTooltip")})}
{children.onEvent.propertyView()} diff --git a/client/packages/lowcoder-comps/src/i18n/comps/locales/en.ts b/client/packages/lowcoder-comps/src/i18n/comps/locales/en.ts index 0ef061ffd..b36f8eaa0 100644 --- a/client/packages/lowcoder-comps/src/i18n/comps/locales/en.ts +++ b/client/packages/lowcoder-comps/src/i18n/comps/locales/en.ts @@ -141,14 +141,25 @@ export const en = { }, echarts: { defaultTitle: "Data Display", - legendPosition: "Legend-X", + legendPosition: "Legend-Y", legendOrient: "Legend Orient", - legendAlign: "Legend-Y", - labelPosition: "Label-X", + legendAlign: "Legend-X", + labelPosition: "Label Position", titlePosition: "Title-X", titlePositionVertical: "Title-Y", funnelAlign: "Funnel Align", sort: "Sort", + changingTitle_x_Tooltip: "Change the Horizontal position of the Title.", + changingLegend_x_Tooltip: "Change the Horizontal position of the Legend.", + changingLegend_y_Tooltip: "Change the Vertical position of the Legend.", + changingLegend_orient_Tooltip: "Change the Orientation of the Legend.", + changingSortTooltip: "Change the Sorting direction.", + changingLabelTooltip: "Change the Position of the Label.", + changingAlignTooltip: "Change the Alignment of the Chart.", + tooltipVisibilityTooltip: "Show or hide the ToolTips of the chart.", + labelVisibilityTooltip: "Show or hide the Labels of the chart.", + legendVisibilityTooltip: "Show or hide the Legend of the chart.", + }, chart: { delete: "Delete", From e5fbd9258b9cd06d602163a5bfebba0ccf295ee2 Mon Sep 17 00:00:00 2001 From: Imiss-U1025 Date: Wed, 18 Dec 2024 14:38:54 -0500 Subject: [PATCH 72/88] Added descriptions to properties of gauge chart. --- .../funnelChartPropertyView.tsx | 18 +++++------ .../gaugeChartComp/gaugeChartPropertyView.tsx | 30 ++++++++--------- .../src/i18n/comps/locales/en.ts | 32 +++++++++++++++---- 3 files changed, 50 insertions(+), 30 deletions(-) diff --git a/client/packages/lowcoder-comps/src/comps/funnelChartComp/funnelChartPropertyView.tsx b/client/packages/lowcoder-comps/src/comps/funnelChartComp/funnelChartPropertyView.tsx index 1551e909e..346a48260 100644 --- a/client/packages/lowcoder-comps/src/comps/funnelChartComp/funnelChartPropertyView.tsx +++ b/client/packages/lowcoder-comps/src/comps/funnelChartComp/funnelChartPropertyView.tsx @@ -38,15 +38,15 @@ export function funnelChartPropertyView( {children.echartsSortingConfig.getPropertyView()} {children.label.getView()&& children.echartsLabelConfig.getPropertyView()} {children.echartsFunnelAlignConfig.getPropertyView()} - {children.left.propertyView({ label: trans("funnelChart.left") })} - {children.top.propertyView({ label: trans("funnelChart.top") })} - {children.bottom.propertyView({ label: trans("funnelChart.bottom") })} - {children.width.propertyView({ label: trans("funnelChart.width") })} - {children.min.propertyView({ label: trans("funnelChart.min") })} - {children.max.propertyView({ label: trans("funnelChart.max") })} - {children.gap.propertyView({ label: trans("funnelChart.gap") })} - {children.opacity.propertyView({ label: trans("funnelChart.opacity") })} - {children.echartsTitle.propertyView({ label: trans("funnelChart.title") })} + {children.echartsTitle.propertyView({ label: trans("funnelChart.title"), tooltip: trans("echarts.titleTooltip") })} + {children.left.propertyView({ label: trans("funnelChart.left"), tooltip: trans("echarts.positionChart_x_Tooltip") })} + {children.top.propertyView({ label: trans("funnelChart.top"), tooltip: trans("echarts.topTooltip") })} + {children.bottom.propertyView({ label: trans("funnelChart.bottom"), tooltip: trans("echarts.bottomTooltip") })} + {children.width.propertyView({ label: trans("funnelChart.width"), tooltip: trans("echarts.widthTooltip") })} + {children.min.propertyView({ label: trans("funnelChart.min"), tooltip: trans("echarts.minTooltip") })} + {children.max.propertyView({ label: trans("funnelChart.max"), tooltip: trans("echarts.maxTooltip") })} + {children.gap.propertyView({ label: trans("funnelChart.gap"), tooltip: trans("echarts.gapTooltip") })} + {children.opacity.propertyView({ label: trans("funnelChart.opacity"), tooltip: trans("echarts.opacityTooltip") })} {children.tooltip.propertyView({label: trans("funnelChart.tooltip"), tooltip: trans("echarts.tooltipVisibilityTooltip")})} {children.label.propertyView({label: trans("funnelChart.label"), tooltip: trans("echarts.labelVisibilityTooltip")})} {children.legendVisibility.propertyView({label: trans("funnelChart.legendVisibility"), tooltip: trans("echarts.legendVisibilityTooltip")})} diff --git a/client/packages/lowcoder-comps/src/comps/gaugeChartComp/gaugeChartPropertyView.tsx b/client/packages/lowcoder-comps/src/comps/gaugeChartComp/gaugeChartPropertyView.tsx index 0cb5ca5ab..707206ed4 100644 --- a/client/packages/lowcoder-comps/src/comps/gaugeChartComp/gaugeChartPropertyView.tsx +++ b/client/packages/lowcoder-comps/src/comps/gaugeChartComp/gaugeChartPropertyView.tsx @@ -32,26 +32,26 @@ export function gaugeChartPropertyView( ), })} {children.echartsTitleConfig.getPropertyView()} - {children.echartsTitle.propertyView({ label: trans("gaugeChart.title") })} + {children.echartsTitle.propertyView({ label: trans("gaugeChart.title"), tooltip: trans("echarts.titleTooltip") })} {/* {children.left.propertyView({ label: trans("gaugeChart.left") })} {children.top.propertyView({ label: trans("gaugeChart.top") })} {children.bottom.propertyView({ label: trans("gaugeChart.bottom") })} {children.width.propertyView({ label: trans("gaugeChart.width") })} */} - {children.radius.propertyView({ label: trans("gaugeChart.radius") })} - {children.min.propertyView({ label: trans("gaugeChart.min") })} - {children.max.propertyView({ label: trans("gaugeChart.max") })} - {children.position_x.propertyView({ label: trans("gaugeChart.position_x") })} - {children.position_y.propertyView({ label: trans("gaugeChart.position_y") })} - {children.startAngle.propertyView({ label: trans("gaugeChart.startAngle") })} - {children.endAngle.propertyView({ label: trans("gaugeChart.endAngle") })} - {children.splitNumber.propertyView({ label: trans("gaugeChart.splitNumber") })} - {children.pointerLength.propertyView({ label: trans("gaugeChart.pointerLength") })} - {children.pointerWidth.propertyView({ label: trans("gaugeChart.pointerWidth") })} - {children.progressBar.getView() && children.progressBarWidth.propertyView({ label: trans("gaugeChart.progressBarWidth") })} + {children.radius.propertyView({ label: trans("gaugeChart.radius"), tooltip: trans("echarts.radiusTooltip") })} + {children.min.propertyView({ label: trans("gaugeChart.min"), tooltip: trans("echarts.minTooltip") })} + {children.max.propertyView({ label: trans("gaugeChart.max"), tooltip: trans("echarts.maxTooltip") })} + {children.position_x.propertyView({ label: trans("gaugeChart.position_x"), tooltip: trans("echarts.positionChart_x_Tooltip") })} + {children.position_y.propertyView({ label: trans("gaugeChart.position_y"), tooltip: trans("echarts.positionChart_x_Tooltip") })} + {children.startAngle.propertyView({ label: trans("gaugeChart.startAngle"), tooltip: trans("echarts.startAngleTooltip") })} + {children.endAngle.propertyView({ label: trans("gaugeChart.endAngle"), tooltip: trans("echarts.endAngleTooltip") })} + {children.splitNumber.propertyView({ label: trans("gaugeChart.splitNumber"), tooltip: trans("echarts.splitNumberTooltip") })} + {children.pointerLength.propertyView({ label: trans("gaugeChart.pointerLength"), tooltip: trans("echarts.pointerLengthTooltip") })} + {children.pointerWidth.propertyView({ label: trans("gaugeChart.pointerWidth"), tooltip: trans("echarts.pointerWidthTooltip") })} + {children.progressBar.getView() && children.progressBarWidth.propertyView({ label: trans("echarts.progressBarWidthToolTip") })} {/* {children.gap.propertyView({ label: trans("gaugeChart.gap") })} */} - {children.tooltip.propertyView({ label: trans("gaugeChart.tooltip") })} - {children.progressBar.propertyView({ label: trans("gaugeChart.progressBar") })} - {children.roundCap.propertyView({ label: trans("gaugeChart.roundCap") })} + {children.tooltip.propertyView({ label: trans("gaugeChart.tooltip"), tooltip: trans("echarts.tooltipVisibilityTooltip") })} + {children.progressBar.propertyView({ label: trans("gaugeChart.progressBar"), tooltip: trans("echarts.progressBarVisibilityTooltip") })} + {children.roundCap.propertyView({ label: trans("gaugeChart.roundCap"), tooltip: trans("echarts.roundCapVisibilityTooltip") })}
{children.onEvent.propertyView()} diff --git a/client/packages/lowcoder-comps/src/i18n/comps/locales/en.ts b/client/packages/lowcoder-comps/src/i18n/comps/locales/en.ts index b36f8eaa0..b92a0bef0 100644 --- a/client/packages/lowcoder-comps/src/i18n/comps/locales/en.ts +++ b/client/packages/lowcoder-comps/src/i18n/comps/locales/en.ts @@ -79,7 +79,7 @@ export const en = { funnelType:'Funnel Chart Type', tooltip: 'Tooltip', legendVisibility: 'Legend Visibility', - left: 'Left', + left: 'Position-X', defaultLeft:'35', top: 'Top', defaultTop:'60', @@ -137,7 +137,6 @@ export const en = { progressBarWidth: 'Progress Bar Width', defaultProgressBarWidth: '10', progressBar: 'Progress Bar', - roundCap: 'Round Cap', }, echarts: { defaultTitle: "Data Display", @@ -156,10 +155,31 @@ export const en = { changingSortTooltip: "Change the Sorting direction.", changingLabelTooltip: "Change the Position of the Label.", changingAlignTooltip: "Change the Alignment of the Chart.", - tooltipVisibilityTooltip: "Show or hide the ToolTips of the chart.", - labelVisibilityTooltip: "Show or hide the Labels of the chart.", - legendVisibilityTooltip: "Show or hide the Legend of the chart.", - + positionChart_x_Tooltip: "Change the Horizontal position of the Chart.", + positionChart_y_Tooltip: "Change the Vertical position of the Chart.", + topTooltip: "Change the top length of the Chart.", + bottomTooltip: "Change the bottom length of the Chart.", + widthTooltip: "Change the width of the Chart.", + radiusTooltip: "Set the Radius value of the Chart.", + minTooltip: "Set the minimum value of the Chart.", + maxTooltip: "Set the maximum value of the Chart.", + gapTooltip: "Set the gap value between the Components.", + opacityTooltip: "Set the opacity of the Chart.", + titleTooltip: "Set the title of the Chart.", + roundCap: 'Round Cap', + roundCapTooltip: "Change the shape of the start, current, and end edges of the progress bar to round or straight.", + progressBarVisibilityToolip: "Show or hide the current status on the progress bar.", + endAngleTooltip: "Set the End angle value of the Chart.", + startAngleTooltip: "Set the Start angle value of the Chart.", + splitNumberTooltip: "Set the Split number of the Chart.", + pointerLengthTooltip: "Set the Pointer length of the Chart.", + pointerWidthTooltip: "Set the Pointer Width of the Chart.", + progressBarWidthToolTip: "Set the Progress Bar Width of the Chart.", + tooltipVisibilityTooltip: "Show or hide the ToolTips of the Chart.", + labelVisibilityTooltip: "Show or hide the Labels of the Chart.", + legendVisibilityTooltip: "Show or hide the Legend of the Chart.", + progressBarVisibilityTooltip: "Show or hide the Progress Bar of the Chart.", + roundCapVisibilityTooltip: "Show or hide the Round Cap of the Chart.", }, chart: { delete: "Delete", From 84b42857b956da46c849603de9b56c7d64a7e616 Mon Sep 17 00:00:00 2001 From: Imiss-U1025 Date: Wed, 18 Dec 2024 15:13:08 -0500 Subject: [PATCH 73/88] Applied gradient colors to a chart using just one color picker --- .../candleStickChartUtils.ts | 9 +- .../comps/funnelChartComp/funnelChartUtils.ts | 8 +- .../comps/gaugeChartComp/gaugeChartUtils.ts | 9 +- .../src/util/gradientBackgroundColor.tsx | 134 +++++++++++++----- .../comps/controls/styleControlConstants.tsx | 9 +- 5 files changed, 109 insertions(+), 60 deletions(-) diff --git a/client/packages/lowcoder-comps/src/comps/candleStickChartComp/candleStickChartUtils.ts b/client/packages/lowcoder-comps/src/comps/candleStickChartComp/candleStickChartUtils.ts index 371c2db43..9600e17a2 100644 --- a/client/packages/lowcoder-comps/src/comps/candleStickChartComp/candleStickChartUtils.ts +++ b/client/packages/lowcoder-comps/src/comps/candleStickChartComp/candleStickChartUtils.ts @@ -13,7 +13,7 @@ import { calcXYConfig } from "comps/chartComp/chartConfigs/cartesianAxisConfig"; import Big from "big.js"; import { googleMapsApiUrl } from "../chartComp/chartConfigs/chartUrls"; import { useContext } from "react"; -import getBackgroundColor from "../../util/gradientBackgroundColor"; +import parseBackground from "../../util/gradientBackgroundColor"; export function transformData( originData: JSONObject[], @@ -136,11 +136,6 @@ export function getEchartsConfig( theme?: any, ): EChartsOptionWithMap { - const backgroundColor = props?.chartStyle?.chartBackgroundColor || theme?.chartStyle?.backgroundColor || "#FFFFFF"; - const gradientColor = props?.chartStyle?.chartGradientColor || theme?.chartStyle?.gradientColor; - const opacity = props?.chartStyle?.chartOpacity || theme?.chartStyle?.opacity; - const direction = props?.chartStyle?.direction || theme?.chartStyle?.direction; - if (props.mode === "json") { let opt={ @@ -160,7 +155,7 @@ export function getEchartsConfig( "textShadowOffsetY": props?.titleStyle?.chartBoxShadow?.split('px')[2] || theme?.titleStyle?.boxShadow?.split('px')[2] } }, - "backgroundColor": getBackgroundColor(backgroundColor, gradientColor, opacity, direction), + "backgroundColor": parseBackground( props?.chartStyle?.background || theme?.chartStyle.backgroundColor || "#FFFFFF"), "color": props?.echartsOption.data?.map(data => data.color), "tooltip": props?.tooltip&&{ "trigger": "axis", diff --git a/client/packages/lowcoder-comps/src/comps/funnelChartComp/funnelChartUtils.ts b/client/packages/lowcoder-comps/src/comps/funnelChartComp/funnelChartUtils.ts index 6f800df8c..8c25565e7 100644 --- a/client/packages/lowcoder-comps/src/comps/funnelChartComp/funnelChartUtils.ts +++ b/client/packages/lowcoder-comps/src/comps/funnelChartComp/funnelChartUtils.ts @@ -13,7 +13,7 @@ import { calcXYConfig } from "comps/chartComp/chartConfigs/cartesianAxisConfig"; import Big from "big.js"; import { googleMapsApiUrl } from "../chartComp/chartConfigs/chartUrls"; import opacityToHex from "../../util/opacityToHex"; -import getBackgroundColor from "../../util/gradientBackgroundColor"; +import parseBackground from "../../util/gradientBackgroundColor"; export function transformData( originData: JSONObject[], @@ -135,10 +135,6 @@ export function getEchartsConfig( chartSize?: ChartSize, theme?: any, ): EChartsOptionWithMap { - const backgroundColor = props?.chartStyle?.chartBackgroundColor || theme?.chartStyle?.backgroundColor || "#FFFFFF"; - const gradientColor = props?.chartStyle?.chartGradientColor || theme?.chartStyle?.gradientColor; - const opacity = props?.chartStyle?.chartOpacity || theme?.chartStyle?.opacity; - const direction = props?.chartStyle?.direction || theme?.chartStyle?.direction; if (props.mode === "json") { let opt={ @@ -158,7 +154,7 @@ export function getEchartsConfig( "textShadowOffsetY": props?.titleStyle?.chartBoxShadow?.split('px')[2] || theme?.titleStyle?.boxShadow?.split('px')[2] } }, - "backgroundColor": getBackgroundColor(backgroundColor, gradientColor, opacity, direction), + "backgroundColor": parseBackground( props?.chartStyle?.background || theme?.chartStyle.backgroundColor || "#FFFFFF"), "color": props.echartsOption.data?.map(data => data.color), "tooltip": props.tooltip&&{ "trigger": "item", diff --git a/client/packages/lowcoder-comps/src/comps/gaugeChartComp/gaugeChartUtils.ts b/client/packages/lowcoder-comps/src/comps/gaugeChartComp/gaugeChartUtils.ts index f36644c00..9a68de018 100644 --- a/client/packages/lowcoder-comps/src/comps/gaugeChartComp/gaugeChartUtils.ts +++ b/client/packages/lowcoder-comps/src/comps/gaugeChartComp/gaugeChartUtils.ts @@ -13,7 +13,7 @@ import { calcXYConfig } from "comps/chartComp/chartConfigs/cartesianAxisConfig"; import Big from "big.js"; import { googleMapsApiUrl } from "../chartComp/chartConfigs/chartUrls"; import opacityToHex from "../../util/opacityToHex"; -import getBackgroundColor from "../../util/gradientBackgroundColor"; +import parseBackground from "../../util/gradientBackgroundColor"; export function transformData( originData: JSONObject[], @@ -136,11 +136,6 @@ export function getEchartsConfig( theme?: any, ): EChartsOptionWithMap { - const backgroundColor = props?.chartStyle?.chartBackgroundColor || theme?.chartStyle?.backgroundColor || "#FFFFFF"; - const gradientColor = props?.chartStyle?.chartGradientColor || theme?.chartStyle?.gradientColor; - const opacity = props?.chartStyle?.chartOpacity || theme?.chartStyle?.opacity; - const direction = props?.chartStyle?.direction || theme?.chartStyle?.direction; - if (props.mode === "json") { let opt={ "title": { @@ -159,7 +154,7 @@ export function getEchartsConfig( "textShadowOffsetY": props?.titleStyle?.chartBoxShadow?.split('px')[2] || theme?.titleStyle?.boxShadow?.split('px')[2] }, }, - "backgroundColor": getBackgroundColor(backgroundColor, gradientColor, opacity, direction), + "backgroundColor": parseBackground( props?.chartStyle?.background || theme?.chartStyle.backgroundColor || "#FFFFFF"), "tooltip": props.tooltip&&{ "trigger": "item", "formatter": "{a}
{b} : {c}%" diff --git a/client/packages/lowcoder-comps/src/util/gradientBackgroundColor.tsx b/client/packages/lowcoder-comps/src/util/gradientBackgroundColor.tsx index b5aab38a0..0ebead21a 100644 --- a/client/packages/lowcoder-comps/src/util/gradientBackgroundColor.tsx +++ b/client/packages/lowcoder-comps/src/util/gradientBackgroundColor.tsx @@ -1,38 +1,100 @@ -import opacityToHex from "./opacityToHex"; - -const getBackgroundColor = ( - backgroundColor: any, - gradientColor: any, - opacity: any, - direction: any, -) => { - if (direction?.split(' ').length < 4) - return gradientColor && backgroundColor - ? { - "type": 'radial', - "x": direction?.split(' ')[0], - "y": direction?.split(' ')[1], - "r": direction?.split(' ')[2], - "colorStops": [ - { "offset": 0, "color": backgroundColor + opacityToHex(opacity)}, - { "offset": 1, "color": gradientColor + opacityToHex(opacity)} - ] - } - : backgroundColor + opacityToHex(opacity) - else - return gradientColor && backgroundColor - ? { - "type": 'linear', - "x": direction?.split(' ')[0], - "y": direction?.split(' ')[1], - "x2": direction?.split(' ')[2], - "y2": direction?.split(' ')[3], - "colorStops": [ - { "offset": 0, "color": backgroundColor + opacityToHex(opacity)}, - { "offset": 1, "color": gradientColor + opacityToHex(opacity)} - ] - } - : backgroundColor + opacityToHex(opacity) +/** + * Converts a CSS gradient string (linear-gradient or radial-gradient) or solid color + * into an ECharts-compatible background configuration. + * + * @param {string} background - A solid color or CSS gradient string + * @returns {string|object} A string or object that can be used in ECharts' `backgroundColor` + */ +export default function parseBackground(background: any) { + if (background.startsWith("linear-gradient")) { + // Parse linear-gradient + return parseLinearGradient(background); + } else if (background.startsWith("radial-gradient")) { + // Parse radial-gradient + return parseRadialGradient(background); + } else { + // Assume it's a solid color + return background; + } } -export default getBackgroundColor; \ No newline at end of file +/** + * Parses a linear-gradient CSS string into an ECharts-compatible object. + * + * @param {string} gradient - The linear-gradient CSS string + * @returns {object} An ECharts-compatible linear gradient object + */ +function parseLinearGradient(gradient: any) { + const linearGradientRegex = /linear-gradient\((\d+deg),\s*(.+)\)/; + const match = gradient.match(linearGradientRegex); + + if (!match) { + throw new Error("Invalid linear-gradient format"); + } + + const angle = parseFloat(match[1]); // Extract the angle in degrees + const colorStops = parseColorStops(match[2]); // Extract the color stops + + // Convert angle to x2 and y2 using trigonometry + const x2 = Math.sin((angle * Math.PI) / 180); + const y = Math.cos((angle * Math.PI) / 180); + + return { + type: "linear", + x: 0, + y2: 0, + x2, + y, + colorStops, + }; +} + +/** + * Parses a radial-gradient CSS string into an ECharts-compatible object. + * + * @param {string} gradient - The radial-gradient CSS string + * @returns {object} An ECharts-compatible radial gradient object + */ +function parseRadialGradient(gradient: any) { + const radialGradientRegex = /radial-gradient\(([^,]+),\s*(.+)\)/; + const match = gradient.match(radialGradientRegex); + + if (!match) { + throw new Error("Invalid radial-gradient format"); + } + + const shape = match[1].trim(); // Extract the shape (e.g., "circle") + const colorStops = parseColorStops(match[2]); // Extract the color stops + + // ECharts radial gradient assumes a circular gradient centered at (0.5, 0.5) + return { + type: "radial", + x: 0.5, + y: 0.5, + r: 0.8, // Default radius + colorStops, + }; +} + +/** + * Parses color stops from a gradient string into an array of objects. + * + * @param {string} colorStopsString - The color stops part of the gradient string + * @returns {Array} An array of color stop objects { offset, color } + */ +function parseColorStops(colorStopsString: any) { + const colorStopRegex = + /((?:rgba?|hsla?)\([^)]+\)|#[0-9a-fA-F]{3,8}|[a-zA-Z]+)\s+([\d.]+%)/g; + const colorStops = []; + let match; + + while ( + (match = colorStopRegex.exec(colorStopsString.toLowerCase())) !== null + ) { + const color = match[1].trim().toLowerCase(); // Convert color to lowercase + const offset = parseFloat(match[2]) / 100; // Convert percentage to 0-1 + colorStops.push({ offset, color }); + } + + return colorStops; +} diff --git a/client/packages/lowcoder/src/comps/controls/styleControlConstants.tsx b/client/packages/lowcoder/src/comps/controls/styleControlConstants.tsx index 884ab36a7..6de547836 100644 --- a/client/packages/lowcoder/src/comps/controls/styleControlConstants.tsx +++ b/client/packages/lowcoder/src/comps/controls/styleControlConstants.tsx @@ -1975,10 +1975,11 @@ export const EchartDefaultTextStyle = [ ] as const; export const EchartDefaultChartStyle = [ - CHARTBACKGROUNDCOLOR, - CHARTGRADIENTCOLOR, - DIRECTION, - CHARTOPACITY, + getBackground("primarySurface"), + // CHARTBACKGROUNDCOLOR, + // CHARTGRADIENTCOLOR, + // DIRECTION, + // CHARTOPACITY, CHARTSHADOWCOLOR, CHARTBOXSHADOW, CHARTBORDERCOLOR, From b3ff98f3de91baf2b1597a5a1674d48d34a03cf1 Mon Sep 17 00:00:00 2001 From: Imiss-U1025 Date: Thu, 19 Dec 2024 10:44:49 -0500 Subject: [PATCH 74/88] Fixed trans in gauge chart. --- .../src/comps/gaugeChartComp/gaugeChartPropertyView.tsx | 2 +- client/packages/lowcoder-comps/src/i18n/comps/locales/en.ts | 2 ++ 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/client/packages/lowcoder-comps/src/comps/gaugeChartComp/gaugeChartPropertyView.tsx b/client/packages/lowcoder-comps/src/comps/gaugeChartComp/gaugeChartPropertyView.tsx index 707206ed4..cb25183bd 100644 --- a/client/packages/lowcoder-comps/src/comps/gaugeChartComp/gaugeChartPropertyView.tsx +++ b/client/packages/lowcoder-comps/src/comps/gaugeChartComp/gaugeChartPropertyView.tsx @@ -47,7 +47,7 @@ export function gaugeChartPropertyView( {children.splitNumber.propertyView({ label: trans("gaugeChart.splitNumber"), tooltip: trans("echarts.splitNumberTooltip") })} {children.pointerLength.propertyView({ label: trans("gaugeChart.pointerLength"), tooltip: trans("echarts.pointerLengthTooltip") })} {children.pointerWidth.propertyView({ label: trans("gaugeChart.pointerWidth"), tooltip: trans("echarts.pointerWidthTooltip") })} - {children.progressBar.getView() && children.progressBarWidth.propertyView({ label: trans("echarts.progressBarWidthToolTip") })} + {children.progressBar.getView() && children.progressBarWidth.propertyView({ label: trans("gaugeChart.progressBarWidth"), tooltip: trans("echarts.pointerWidthTooltip") })} {/* {children.gap.propertyView({ label: trans("gaugeChart.gap") })} */} {children.tooltip.propertyView({ label: trans("gaugeChart.tooltip"), tooltip: trans("echarts.tooltipVisibilityTooltip") })} {children.progressBar.propertyView({ label: trans("gaugeChart.progressBar"), tooltip: trans("echarts.progressBarVisibilityTooltip") })} diff --git a/client/packages/lowcoder-comps/src/i18n/comps/locales/en.ts b/client/packages/lowcoder-comps/src/i18n/comps/locales/en.ts index b92a0bef0..22e1d3780 100644 --- a/client/packages/lowcoder-comps/src/i18n/comps/locales/en.ts +++ b/client/packages/lowcoder-comps/src/i18n/comps/locales/en.ts @@ -137,6 +137,7 @@ export const en = { progressBarWidth: 'Progress Bar Width', defaultProgressBarWidth: '10', progressBar: 'Progress Bar', + roundCap: "Round Cap" }, echarts: { defaultTitle: "Data Display", @@ -167,6 +168,7 @@ export const en = { opacityTooltip: "Set the opacity of the Chart.", titleTooltip: "Set the title of the Chart.", roundCap: 'Round Cap', + pointerWidth: "Pointer Width", roundCapTooltip: "Change the shape of the start, current, and end edges of the progress bar to round or straight.", progressBarVisibilityToolip: "Show or hide the current status on the progress bar.", endAngleTooltip: "Set the End angle value of the Chart.", From 98a8e3df93c79678d8d5b888a7b2d31e5c5ca3b8 Mon Sep 17 00:00:00 2001 From: Imiss-U1025 Date: Thu, 19 Dec 2024 10:55:04 -0500 Subject: [PATCH 75/88] Fixed trans in funnel chart. --- client/packages/lowcoder-comps/src/i18n/comps/locales/en.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/client/packages/lowcoder-comps/src/i18n/comps/locales/en.ts b/client/packages/lowcoder-comps/src/i18n/comps/locales/en.ts index 22e1d3780..d3520c738 100644 --- a/client/packages/lowcoder-comps/src/i18n/comps/locales/en.ts +++ b/client/packages/lowcoder-comps/src/i18n/comps/locales/en.ts @@ -150,8 +150,8 @@ export const en = { funnelAlign: "Funnel Align", sort: "Sort", changingTitle_x_Tooltip: "Change the Horizontal position of the Title.", - changingLegend_x_Tooltip: "Change the Horizontal position of the Legend.", - changingLegend_y_Tooltip: "Change the Vertical position of the Legend.", + changingLegend_x_Tooltip: "Change the Vertical position of the Legend.", + changingLegend_y_Tooltip: "Change the Horizontal position of the Legend.", changingLegend_orient_Tooltip: "Change the Orientation of the Legend.", changingSortTooltip: "Change the Sorting direction.", changingLabelTooltip: "Change the Position of the Label.", From 85a6786e2fb1c10247a6d9d9b8c1ca4b2fb599f1 Mon Sep 17 00:00:00 2001 From: Imiss-U1025 Date: Thu, 19 Dec 2024 11:03:07 -0500 Subject: [PATCH 76/88] Reverted candlestick chart, updated background ability. --- .../candleStickChartComp.tsx | 21 ++++---- .../candleStickChartConstants.tsx | 19 ++------ .../candleStickChartPropertyView.tsx | 33 ++----------- .../candleStickChartUtils.ts | 48 +++++-------------- 4 files changed, 29 insertions(+), 92 deletions(-) diff --git a/client/packages/lowcoder-comps/src/comps/candleStickChartComp/candleStickChartComp.tsx b/client/packages/lowcoder-comps/src/comps/candleStickChartComp/candleStickChartComp.tsx index 54f2007ed..ff33cc260 100644 --- a/client/packages/lowcoder-comps/src/comps/candleStickChartComp/candleStickChartComp.tsx +++ b/client/packages/lowcoder-comps/src/comps/candleStickChartComp/candleStickChartComp.tsx @@ -144,9 +144,9 @@ CandleStickChartTmpComp = withViewFn(CandleStickChartTmpComp, (comp) => { return getEchartsConfig( childrenToProps(echartsConfigChildren) as ToViewReturn, chartSize, - themeConfig, + theme?.theme?.components?.candleStickChart || {}, ); - }, [chartSize, ...Object.values(echartsConfigChildren), theme]); + }, [chartSize, ...Object.values(echartsConfigChildren)]); useEffect(() => { comp.children.mapInstance.dispatch(changeValueAction(null, false)) @@ -168,14 +168,15 @@ CandleStickChartTmpComp = withViewFn(CandleStickChartTmpComp, (comp) => { }} > (echartsCompRef.current = e)} - style={{ height: "100%" }} - notMerge - lazyUpdate - opts={{ locale: getEchartsLocale() }} - option={option} - mode={mode} - /> + ref={(e) => (echartsCompRef.current = e)} + style={{ height: "100%" }} + notMerge + lazyUpdate + opts={{ locale: getEchartsLocale() }} + option={option} + theme={mode !== 'map' ? themeConfig : undefined} + mode={mode} + /> ); }); diff --git a/client/packages/lowcoder-comps/src/comps/candleStickChartComp/candleStickChartConstants.tsx b/client/packages/lowcoder-comps/src/comps/candleStickChartComp/candleStickChartConstants.tsx index 78f761344..35852214d 100644 --- a/client/packages/lowcoder-comps/src/comps/candleStickChartComp/candleStickChartConstants.tsx +++ b/client/packages/lowcoder-comps/src/comps/candleStickChartComp/candleStickChartConstants.tsx @@ -16,9 +16,7 @@ import { uiChildren, clickEvent, styleControl, - EchartsStyle, - EchartDefaultChartStyle, - EchartDefaultTextStyle + EchartsStyle } from "lowcoder-sdk"; import { RecordConstructorToComp, RecordConstructorToView } from "lowcoder-core"; import { BarChartConfig } from "../chartComp/chartConfigs/barChartConfig"; @@ -26,7 +24,6 @@ import { XAxisConfig, YAxisConfig } from "../chartComp/chartConfigs/cartesianAxi import { LegendConfig } from "../chartComp/chartConfigs/legendConfig"; import { EchartsLegendConfig } from "../chartComp/chartConfigs/echartsLegendConfig"; import { EchartsLabelConfig } from "../chartComp/chartConfigs/echartsLabelConfig"; -import { EchartsTitleConfig } from "comps/chartComp/chartConfigs/echartsTitleConfig"; import { LineChartConfig } from "../chartComp/chartConfigs/lineChartConfig"; import { PieChartConfig } from "../chartComp/chartConfigs/pieChartConfig"; import { ScatterChartConfig } from "../chartComp/chartConfigs/scatterChartConfig"; @@ -255,25 +252,15 @@ let chartJsonModeChildren: any = { echartsTitle: withDefault(StringControl, trans("candleStickChart.defaultTitle")), echartsLegendConfig: EchartsLegendConfig, echartsLabelConfig: EchartsLabelConfig, - echartsTitleConfig:EchartsTitleConfig, echartsConfig: EchartsOptionComp, - left:withDefault(NumberControl,trans('candleStickChart.defaultLeft')), - right:withDefault(NumberControl,trans('candleStickChart.defaultRight')), - top:withDefault(NumberControl,trans('candleStickChart.defaultTop')), - bottom:withDefault(NumberControl,trans('candleStickChart.defaultBottom')), - dataZoomBottom:withDefault(NumberControl,trans('candleStickChart.defaultDataZoomBottom')), - dataZoomHeight:withDefault(NumberControl,trans('candleStickChart.defaultDataZoomHeight')), + // style: styleControl(EchartsStyle, 'style'), tooltip: withDefault(BoolControl, true), legendVisibility: withDefault(BoolControl, true), - dataZoomVisibility: withDefault(BoolControl, true), } if (EchartsStyle) { chartJsonModeChildren = { ...chartJsonModeChildren, - chartStyle: styleControl(EchartDefaultChartStyle, 'chartStyle'), - titleStyle: styleControl(EchartDefaultTextStyle, 'titleStyle'), - labelStyle: styleControl(EchartDefaultTextStyle, 'labelStyle'), - legendStyle: styleControl(EchartDefaultTextStyle, 'legendStyle'), + style: styleControl(EchartsStyle, 'style'), } } diff --git a/client/packages/lowcoder-comps/src/comps/candleStickChartComp/candleStickChartPropertyView.tsx b/client/packages/lowcoder-comps/src/comps/candleStickChartComp/candleStickChartPropertyView.tsx index 124ae89f6..b3c545d4a 100644 --- a/client/packages/lowcoder-comps/src/comps/candleStickChartComp/candleStickChartPropertyView.tsx +++ b/client/packages/lowcoder-comps/src/comps/candleStickChartComp/candleStickChartPropertyView.tsx @@ -31,46 +31,19 @@ export function candleStickChartPropertyView( ), })} - {children.echartsTitleConfig.getPropertyView()} - {children.legendVisibility.getView() && children.echartsLegendConfig.getPropertyView()} - {children.left.propertyView({ label: trans("candleStickChart.left") })} - {children.right.propertyView({ label: trans("candleStickChart.right") })} - {children.top.propertyView({ label: trans("candleStickChart.top") })} - {children.bottom.propertyView({ label: trans("candleStickChart.bottom") })} {children.echartsTitle.propertyView({ label: trans("candleStickChart.title") })} - {children.dataZoomVisibility.getView() && children.dataZoomHeight.propertyView({ label: trans("candleStickChart.dataZoomHeight") })} - {children.dataZoomVisibility.getView() && children.dataZoomBottom.propertyView({ label: trans("candleStickChart.dataZoomBottom") })} {children.tooltip.propertyView({label: trans("candleStickChart.tooltip")})} - {children.legendVisibility.propertyView({label: trans("candleStickChart.legendVisibility")})} - {children.dataZoomVisibility.propertyView({label: trans("candleStickChart.dataZoomVisibility")})}
{children.onEvent.propertyView()}
- {children.style?.getPropertyView()} + {children.style?.getPropertyView()}
-
{hiddenPropertyView(children)} -
- -
- {children.chartStyle?.getPropertyView()} -
-
- {children.titleStyle?.getPropertyView()} -
-
- {children.labelStyle?.getPropertyView()} -
- { - children.legendVisibility.getView() ? -
- {children.legendStyle?.getPropertyView()} -
: <> - } +
{hiddenPropertyView(children)}
); - + const getChatConfigByMode = (mode: string) => { switch(mode) { case "json": diff --git a/client/packages/lowcoder-comps/src/comps/candleStickChartComp/candleStickChartUtils.ts b/client/packages/lowcoder-comps/src/comps/candleStickChartComp/candleStickChartUtils.ts index 9600e17a2..b4b5d6f71 100644 --- a/client/packages/lowcoder-comps/src/comps/candleStickChartComp/candleStickChartUtils.ts +++ b/client/packages/lowcoder-comps/src/comps/candleStickChartComp/candleStickChartUtils.ts @@ -135,53 +135,29 @@ export function getEchartsConfig( chartSize?: ChartSize, theme?: any, ): EChartsOptionWithMap { - - if (props.mode === "json") { let opt={ "title": { "text": props.echartsTitle, 'top': props.echartsLegendConfig.top === 'bottom' ?'top':'bottom', - "left":props.echartsTitleConfig.top, - "textStyle": { - "fontFamily": props?.titleStyle?.chartFontFamily || theme?.titleStyle?.fontFamily, - "fontSize": props?.titleStyle?.chartTextSize || theme?.titleStyle?.fontSize || '18', - "fontWeight": props?.titleStyle?.chartTextWeight || theme?.titleStyle?.fontWeight, - "color": props?.titleStyle?.chartTextColor || theme?.titleStyle?.fontColor || "#000000", - "fontStyle": props?.titleStyle?.chartFontStyle || theme?.titleStyle?.fontStyle, - "textShadowColor": props?.titleStyle?.chartShadowColor || theme?.titleStyle?.shadowColor, - "textShadowBlur": props?.titleStyle?.chartBoxShadow?.split('px')[0] || theme?.titleStyle?.boxShadow?.split('px')[0], - "textShadowOffsetX": props?.titleStyle?.chartBoxShadow?.split('px')[1] || theme?.titleStyle?.boxShadow?.split('px')[1], - "textShadowOffsetY": props?.titleStyle?.chartBoxShadow?.split('px')[2] || theme?.titleStyle?.boxShadow?.split('px')[2] - } + "left":"center" }, - "backgroundColor": parseBackground( props?.chartStyle?.background || theme?.chartStyle.backgroundColor || "#FFFFFF"), - "color": props?.echartsOption.data?.map(data => data.color), - "tooltip": props?.tooltip&&{ + "backgroundColor": parseBackground( props?.style?.background || theme?.style?.background || "#FFFFFF"), + "color": props.echartsOption.data?.map(data => data.color), + "tooltip": props.tooltip&&{ "trigger": "axis", "axisPointer": { "type": "cross" } }, "grid": { - "left": `${props?.left}%`, - "right": `${props?.right}%`, - "bottom": `${props?.bottom}%`, - "top": `${props?.top}%`, + "left": "10%", + "right": "10%", + "bottom": "10%", }, - "dataZoom": [ - { - "show": props?.dataZoomVisibility, - "type": 'slider', - "start": 0, - "end": 100, - "bottom": props?.dataZoomBottom, - 'height': props?.dataZoomHeight - } - ], "xAxis": { "type": "category", - "data": props?.echartsOption.xAxis.data + "data": props.echartsOption.xAxis.data }, "yAxis": { "type": "value", @@ -189,8 +165,8 @@ export function getEchartsConfig( }, "series": [ { - "name": props?.echartsConfig.type, - "type": props?.echartsConfig.type, + "name": props.echartsConfig.type, + "type": props.echartsConfig.type, "left": "10%", "top": 60, "bottom": 60, @@ -200,9 +176,9 @@ export function getEchartsConfig( "gap": 2, "label": { "show": true, - "position": props?.echartsLabelConfig.top + "position": props.echartsLabelConfig.top }, - "data": props?.echartsOption.data, + "data": props.echartsOption.data, } ] } From c10dd8802c7d5912e1617a1a7c9cac5fa0c0d38b Mon Sep 17 00:00:00 2001 From: Imiss-U1025 Date: Thu, 19 Dec 2024 12:06:15 -0500 Subject: [PATCH 77/88] Fixed background Color issue on funnel and gauge. --- .../src/comps/funnelChartComp/funnelChartUtils.ts | 2 +- .../lowcoder-comps/src/comps/gaugeChartComp/gaugeChartUtils.ts | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/client/packages/lowcoder-comps/src/comps/funnelChartComp/funnelChartUtils.ts b/client/packages/lowcoder-comps/src/comps/funnelChartComp/funnelChartUtils.ts index 8c25565e7..1442ea995 100644 --- a/client/packages/lowcoder-comps/src/comps/funnelChartComp/funnelChartUtils.ts +++ b/client/packages/lowcoder-comps/src/comps/funnelChartComp/funnelChartUtils.ts @@ -154,7 +154,7 @@ export function getEchartsConfig( "textShadowOffsetY": props?.titleStyle?.chartBoxShadow?.split('px')[2] || theme?.titleStyle?.boxShadow?.split('px')[2] } }, - "backgroundColor": parseBackground( props?.chartStyle?.background || theme?.chartStyle.backgroundColor || "#FFFFFF"), + "backgroundColor": parseBackground( props?.chartStyle?.background || theme?.chartStyle?.backgroundColor || "#FFFFFF"), "color": props.echartsOption.data?.map(data => data.color), "tooltip": props.tooltip&&{ "trigger": "item", diff --git a/client/packages/lowcoder-comps/src/comps/gaugeChartComp/gaugeChartUtils.ts b/client/packages/lowcoder-comps/src/comps/gaugeChartComp/gaugeChartUtils.ts index 9a68de018..e2c5fa310 100644 --- a/client/packages/lowcoder-comps/src/comps/gaugeChartComp/gaugeChartUtils.ts +++ b/client/packages/lowcoder-comps/src/comps/gaugeChartComp/gaugeChartUtils.ts @@ -154,7 +154,7 @@ export function getEchartsConfig( "textShadowOffsetY": props?.titleStyle?.chartBoxShadow?.split('px')[2] || theme?.titleStyle?.boxShadow?.split('px')[2] }, }, - "backgroundColor": parseBackground( props?.chartStyle?.background || theme?.chartStyle.backgroundColor || "#FFFFFF"), + "backgroundColor": parseBackground( props?.chartStyle?.background || theme?.chartStyle?.backgroundColor || "#FFFFFF"), "tooltip": props.tooltip&&{ "trigger": "item", "formatter": "{a}
{b} : {c}%" From ca5d1e258347bb868b5ac1ef7ab7b80369af0ac6 Mon Sep 17 00:00:00 2001 From: FalkWolsky Date: Thu, 19 Dec 2024 22:42:06 +0100 Subject: [PATCH 78/88] Increasing Version numbers for Release 2.5.2, adding UIPath as Datasource --- .gitignore | 1 - app.json | 131 + client/VERSION | 2 +- server/api-service/pom.xml | 2 +- server/node-service/package.json | 2 +- server/node-service/src/plugins/index.ts | 2 + .../src/plugins/serpApi/serpApi.spec.yaml | 269 + .../node-service/src/plugins/uiPath/index.ts | 75 + .../src/plugins/uiPath/uiPath.spec.json | 54045 ++++++++++++++++ .../src/static/plugin-icons/uiPath.svg | 9 + server/node-service/yarn.lock | 235 +- 11 files changed, 54695 insertions(+), 78 deletions(-) create mode 100644 server/node-service/src/plugins/serpApi/serpApi.spec.yaml create mode 100644 server/node-service/src/plugins/uiPath/index.ts create mode 100644 server/node-service/src/plugins/uiPath/uiPath.spec.json create mode 100644 server/node-service/src/static/plugin-icons/uiPath.svg diff --git a/.gitignore b/.gitignore index 1dcb36aaa..b044fc2c8 100644 --- a/.gitignore +++ b/.gitignore @@ -17,5 +17,4 @@ application-dev-localhost.yaml .vscode/launch.json server/api-service/lowcoder-server/src/main/resources/application-local-dev.yaml translations/locales/node_modules/ -.vscode/settings.json server/api-service/lowcoder-server/src/main/resources/application-local-dev-ee.yaml diff --git a/app.json b/app.json index f17b80e4b..9252ff276 100644 --- a/app.json +++ b/app.json @@ -39,6 +39,137 @@ "LOWCODER_REDIS_URL": { "description": "Your Redis Database URL.", "required": false + }, + "LOWCODER_MAX_REQUEST_SIZE": { + "description": "Lowcoder max request size", + "value": "20m", + "required": false + }, + "LOWCODER_MAX_QUERY_TIMEOUT": { + "description": "Lowcoder max query timeout (in seconds)", + "value": "120", + "required": false + }, + "LOWCODER_DEFAULT_QUERY_TIMEOUT": { + "description": "Lowcoder default query timeout (in seconds)", + "value": "10", + "required": false + }, + "LOWCODER_API_RATE_LIMIT": { + "description": "Number of max Request per Second", + "value": "100", + "required": false + }, + "LOWCODER_API_SERVICE_URL": { + "description": "Lowcoder API service URL", + "value": "http://localhost:8080", + "required": false + }, + "LOWCODER_NODE_SERVICE_URL": { + "description": "Lowcoder Node service (js executor) URL", + "value": "http://localhost:6060", + "required": false + }, + "LOWCODER_MAX_ORGS_PER_USER": { + "description": "Default maximum organizations per user", + "value": "100", + "required": false + }, + "LOWCODER_MAX_MEMBERS_PER_ORG": { + "description": "Default maximum members per organization", + "value": "1000", + "required": false + }, + "LOWCODER_MAX_GROUPS_PER_ORG": { + "description": "Default maximum groups per organization", + "value": "100", + "required": false + }, + "LOWCODER_MAX_APPS_PER_ORG": { + "description": "Default maximum applications per organization", + "value": "1000", + "required": false + }, + "LOWCODER_MAX_DEVELOPERS": { + "description": "Default maximum developers", + "value": "100", + "required": false + }, + "LOWCODER_WORKSPACE_MODE": { + "description": "SAAS to activate, ENTERPRISE to switch off - Workspaces", + "value": "SAAS", + "required": false + }, + "LOWCODER_EMAIL_SIGNUP_ENABLED": { + "description": "Control if users create their own Workspace automatic when Sign Up", + "value": "true", + "required": false + }, + "LOWCODER_CREATE_WORKSPACE_ON_SIGNUP": { + "description": "IF LOWCODER_WORKSPACE_MODE = SAAS, controls if a own workspace is created for the user after sign up", + "value": "true", + "required": false + }, + "LOWCODER_MARKETPLACE_PRIVATE_MODE": { + "description": "Control if not to show Apps on the local Marketplace to anonymous users", + "value": "true", + "required": false + }, + "LOWCODER_SUPERUSER_USERNAME": { + "description": "Username of the Super-User of an Lowcoder Installation", + "value": "admin@localhost", + "required": false + }, + "LOWCODER_SUPERUSER_PASSWORD": { + "description": "Password of the Super-User, if not present or empty, it will be generated", + "value": "`generated and printed into log file", + "required": false + }, + "LOWCODER_API_KEY_SECRET": { + "description": "String to encrypt/sign API Keys that users may create", + "required": false + }, + "LOWCODER_ADMIN_SMTP_HOST": { + "description": "SMTP Hostname of your Mail Relay Server", + "required": false + }, + "LOWCODER_ADMIN_SMTP_PORT": { + "description": "Port number for the SMTP service", + "value": "587", + "required": false + }, + "LOWCODER_ADMIN_SMTP_USERNAME": { + "description": "Username for SMTP authentication", + "required": false + }, + "LOWCODER_ADMIN_SMTP_PASSWORD": { + "description": "Password for SMTP authentication", + "required": false + }, + "LOWCODER_ADMIN_SMTP_AUTH": { + "description": "Enable SMTP authentication", + "value": "true", + "required": false + }, + "LOWCODER_ADMIN_SMTP_SSL_ENABLED": { + "description": "Enable SSL encryption", + "value": "false", + "required": false + }, + "LOWCODER_ADMIN_SMTP_STARTTLS_ENABLED": { + "description": "Enable STARTTLS encryption", + "value": "true", + "required": false + }, + "LOWCODER_ADMIN_SMTP_STARTTLS_REQUIRED": { + "description": "Require STARTTLS encryption", + "value": "true", + "required": false + }, + "LOWCODER_LOST_PASSWORD_EMAIL_SENDER": { + "description": "\"from\" Email address of the password Reset Email Sender", + "value": "service@lowcoder.cloud", + "required": false } } } diff --git a/client/VERSION b/client/VERSION index 4fd0fe3cd..21b159dc8 100644 --- a/client/VERSION +++ b/client/VERSION @@ -1 +1 @@ -2.5.1 \ No newline at end of file +2.5.2 \ No newline at end of file diff --git a/server/api-service/pom.xml b/server/api-service/pom.xml index ab8b7a98a..395c804b7 100644 --- a/server/api-service/pom.xml +++ b/server/api-service/pom.xml @@ -12,7 +12,7 @@ - 2.5.1 + 2.5.2 17 ${java.version} ${java.version} diff --git a/server/node-service/package.json b/server/node-service/package.json index 28cd1b0f1..3f4603001 100644 --- a/server/node-service/package.json +++ b/server/node-service/package.json @@ -1,6 +1,6 @@ { "name": "lowcoder-node-server", - "version": "2.5.1", + "version": "2.5.2", "private": true, "engines": { "node": "^14.18.0 || >=16.0.0" diff --git a/server/node-service/src/plugins/index.ts b/server/node-service/src/plugins/index.ts index 8133e6338..c0bd0891c 100644 --- a/server/node-service/src/plugins/index.ts +++ b/server/node-service/src/plugins/index.ts @@ -40,6 +40,7 @@ import lowcoderPlugin from "./lowcoder"; import supabaseApiPlugin from "./supabaseApi"; import firebirdsqlPlugin from "./firebirdsql"; import apiTemplatePlugin from "./apiTemplate"; +import uiPathPlugin from "./uiPath"; // import boomiPlugin from "./boomi"; let plugins: (DataSourcePlugin | DataSourcePluginFactory)[] = [ @@ -79,6 +80,7 @@ let plugins: (DataSourcePlugin | DataSourcePluginFactory)[] = [ // Workflow n8nPlugin, + uiPathPlugin, // boomiPlugin, // Messaging diff --git a/server/node-service/src/plugins/serpApi/serpApi.spec.yaml b/server/node-service/src/plugins/serpApi/serpApi.spec.yaml new file mode 100644 index 000000000..86abe947d --- /dev/null +++ b/server/node-service/src/plugins/serpApi/serpApi.spec.yaml @@ -0,0 +1,269 @@ +openapi: 3.0.1 +info: + title: SerpApi + description: '' + version: 1.0.0 +tags: [] +paths: + /search.json: + get: + summary: Search + deprecated: false + description: '' + tags: [] + parameters: + - name: engine + in: query + description: >- + Parameter defines the search engine you want to query. Defaults to + `google` if not provided. + required: true + example: google + schema: + type: string + - name: q + in: query + description: >- + Parameter defines the query you want to search. You can use anything + that you would use in a regular Google search. e.g. inurl: + required: true + example: coffee + schema: + type: string + - name: location + in: query + description: >- + Parameter defines from where you want the search to originate. If + several locations match the location requested + required: false + example: Austin, Texas, United States + schema: + type: string + - name: uule + in: query + description: >- + Parameter is the Google encoded location you want to use for the + search. uule and location parameters can't be used together. + required: false + example: '' + schema: + type: string + - name: ludocid + in: query + description: >- + Parameter defines the id (CID) of the Google My Business listing you + want to scrape. Also known as Google Place ID. + required: false + example: '' + schema: + type: string + - name: lsig + in: query + description: >- + Parameter that you might have to use to force the knowledge graph + map view to show up. You can find the lsig ID by using our Local + Pack API or Google Local API.lsig ID is also available via a + redirect Google uses within Google My Business. + required: false + example: '' + schema: + type: string + - name: kgmid + in: query + description: >- + Parameter defines the id (KGMID) of the Google Knowledge Graph + listing you want to scrape. Also known as Google Knowledge Graph ID. + Searches with kgmid parameter will return results for the originally + encrypted search parameters. For some searches + required: false + example: '' + schema: + type: string + - name: si + in: query + description: >- + Parameter defines the cached search parameters of the Google Search + you want to scrape. Searches with si parameter will return results + for the originally encrypted search parameters. For some searches + required: false + example: '' + schema: + type: string + - name: ibp + in: query + description: >- + Parameter is responsible for rendering layouts and expansions for + some elements (e.g. + required: false + example: '' + schema: + type: string + - name: google_domain + in: query + description: >- + Parameter defines the Google domain to use. It defaults to + google.com. Head to the Google domains page for a full list of + supported Google domains. + required: false + example: google.com + schema: + type: string + - name: gl + in: query + description: >- + Parameter defines the country to use for the Google search. It's a + two-letter country code. (e.g. + required: false + example: us + schema: + type: string + - name: hl + in: query + description: >- + Parameter defines the language to use for the Google search. It's a + two-letter language code. (e.g. + required: false + example: en + schema: + type: string + - name: cr + in: query + description: >- + Parameter defines one or multiple countries to limit the search to. + It uses country{two-letter upper-case country code} to specify + countries and | as a delimiter. (e.g. + required: false + example: '' + schema: + type: string + - name: lr + in: query + description: >- + Parameter defines one or multiple languages to limit the search to. + It uses lang_{two-letter language code} to specify languages and | + as a delimiter. (e.g. + required: false + example: '' + schema: + type: string + - name: tbs + in: query + description: >- + (to be searched) parameter defines advanced search parameters that + aren't possible in the regular query field. (e.g. + required: false + example: '' + schema: + type: string + - name: safe + in: query + description: >- + Parameter defines the level of filtering for adult content. It can + be set to active or off + required: false + example: '' + schema: + type: string + - name: nfpr + in: query + description: >- + Parameter defines the exclusion of results from an auto-corrected + query when the original query is spelled wrong. It can be set to 1 + to exclude these results + required: false + example: '' + schema: + type: string + - name: filter + in: query + description: >- + Parameter defines if the filters for 'Similar Results' and 'Omitted + Results' are on or off. It can be set to 1 (default) to enable these + filters + required: false + example: '' + schema: + type: string + - name: tbm + in: query + description: >- + (to be matched) parameter defines the type of search you want to + do.It can be set to:(no tbm parameter): regular Google Search + required: false + example: '' + schema: + type: string + - name: start + in: query + description: >- + Parameter defines the result offset. It skips the given number of + results. It's used for pagination. (e.g. + required: false + example: '' + schema: + type: string + - name: num + in: query + description: Parameter defines the maximum number of results to return. (e.g. + required: false + example: '' + schema: + type: string + - name: device + in: query + description: >- + Parameter defines the device to use to get the results. It can be + set to desktop (default) to use a regular browser + required: false + example: '' + schema: + type: string + - name: no_cache + in: query + description: >- + Parameter will force SerpApi to fetch the Google results even if a + cached version is already present. A cache is served only if the + query and all parameters are exactly the same. Cache expires after + 1h. Cached searches are free + required: false + example: '' + schema: + type: string + - name: async + in: query + description: >- + Parameter defines the way you want to submit your search to SerpApi. + It can be set to false (default) to open an HTTP connection and keep + it open until you got your search results + required: false + example: '' + schema: + type: string + - name: output + in: query + description: >- + Parameter defines the final output you want. It can be set to json + (default) to get a structured JSON of the results + required: false + example: '' + schema: + type: string + responses: + '200': + description: '' + content: + application/json: + schema: + type: object + properties: {} + headers: {} + security: + - apikey-query-api_key: [] +components: + schemas: {} + securitySchemes: + apikey-query-api_key: + type: apiKey + in: query + name: api_key +servers: [] diff --git a/server/node-service/src/plugins/uiPath/index.ts b/server/node-service/src/plugins/uiPath/index.ts new file mode 100644 index 000000000..9954142a7 --- /dev/null +++ b/server/node-service/src/plugins/uiPath/index.ts @@ -0,0 +1,75 @@ +import { readYaml } from "../../common/util"; +import _ from "lodash"; +import path from "path"; +import { OpenAPIV3, OpenAPI } from "openapi-types"; +import { ConfigToType, DataSourcePlugin } from "lowcoder-sdk/dataSource"; +import { runOpenApi } from "../openApi"; +import { parseOpenApi, ParseOpenApiOptions } from "../openApi/parse"; + +import spec from './uiPath.spec.json'; + +const dataSourceConfig = { + type: "dataSource", + params: [ + { + key: "serverURL", + type: "textInput", + label: "Service URL", + rules: [{ required: true }], + placeholder: "https://uipath-orch.", + tooltip: "Input the Service url of your UIPath instance.", + }, + { + key: "Authorization.value", + type: "password", + label: "Personal Access Token", + rules: [{ required: true }], + placeholder: "", + tooltip: + "[How to generate my Personal Access Token:](https://docs.uipath.com/automation-cloud/automation-cloud/latest/api-guide/personal-access-tokens)", + } + ] +} as const; + +const parseOptions: ParseOpenApiOptions = { + actionLabel: (method: string, path: string, operation: OpenAPI.Operation) => { + return _.upperFirst(operation.operationId || ""); + }, +}; + +type DataSourceConfigType = ConfigToType; + +const uiPathPlugin: DataSourcePlugin = { + id: "uiPath", + name: "UiPath", + icon: "uiPath.svg", + category: "Workflow", + dataSourceConfig, + queryConfig: async () => { + const { actions, categories } = await parseOpenApi(spec as unknown as OpenAPI.Document, parseOptions); + return { + type: "query", + label: "Action", + categories: { + label: "Resources", + items: categories, + }, + actions, + }; + }, + run: function (actionData, dataSourceConfig): Promise { + + const { serverURL } = dataSourceConfig; + const runApiDsConfig = { + url: "", + serverURL: serverURL, + dynamicParamsConfig: { + ...dataSourceConfig, + "Authorization.value": "Bearer " + dataSourceConfig["Authorization.value"], + }, + }; + return runOpenApi(actionData, runApiDsConfig, spec as OpenAPIV3.Document); + }, +}; + +export default uiPathPlugin; diff --git a/server/node-service/src/plugins/uiPath/uiPath.spec.json b/server/node-service/src/plugins/uiPath/uiPath.spec.json new file mode 100644 index 000000000..2d222a98b --- /dev/null +++ b/server/node-service/src/plugins/uiPath/uiPath.spec.json @@ -0,0 +1,54045 @@ +{ + "openapi": "3.0.1", + "info": { + "title": "UiPath.WebApi 17.0", + "description": "Orchestrator API", + "version": "17.0" + }, + "servers": [ + { + "url": "https://cloud.uipath.com/{organizationName}/{tenantName}/orchestrator_/odata" + } + ], + "paths": { + "/api/Account/Authenticate": { + "post": { + "tags": [ + "Account" + ], + "summary": "Authenticates the user based on user name and password", + "description": "Authenticates the user based on user name and password.", + "operationId": "Account_Authenticate", + "requestBody": { + "description": "The login parameters.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/LoginModel" + } + } + }, + "required": false + }, + "responses": { + "200": { + "description": "Successful authentication", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/AjaxResponse" + } + } + } + } + }, + "x-codegen-request-body-name": "body" + } + }, + "/api/DirectoryService/GetDirectoryPermissions": { + "get": { + "tags": [ + "DirectoryService" + ], + "summary": "Gets directory permissions", + "description": "OAuth required scopes: OR.Users or OR.Users.Read.\r\n\r\nRequired permissions: Users.View.", + "operationId": "DirectoryService_GetDirectoryPermissions", + "parameters": [ + { + "name": "username", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "domain", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/DirectoryPermissionDto" + } + } + } + } + } + }, + "security": [ + { + "OAuth2": [] + } + ] + } + }, + "/api/DirectoryService/GetDomains": { + "get": { + "tags": [ + "DirectoryService" + ], + "summary": "Gets domains", + "description": "OAuth required scopes: OR.Users or OR.Users.Read.\r\n\r\nRequired permissions: (Users.View or Units.Edit or SubFolders.Edit).", + "operationId": "DirectoryService_GetDomains", + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/DomainDto" + } + } + } + } + } + }, + "security": [ + { + "OAuth2": [] + } + ] + } + }, + "/api/DirectoryService/SearchForUsersAndGroups": { + "get": { + "tags": [ + "DirectoryService" + ], + "summary": "Search users and groups", + "description": "OAuth required scopes: OR.Users or OR.Users.Read.\r\n\r\nRequired permissions: (Users.View or Units.Edit or SubFolders.Edit).", + "operationId": "DirectoryService_SearchForUsersAndGroups", + "parameters": [ + { + "name": "searchContext", + "in": "query", + "schema": { + "type": "string", + "enum": [ + "All", + "Users", + "Groups", + "Robots", + "ExternalApplications" + ], + "x-ms-enum": { + "name": "SearchContext", + "modelAsString": false + } + }, + "x-ms-enum": { + "name": "SearchContext", + "modelAsString": false + } + }, + { + "name": "domain", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "prefix", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/DirectoryObjectDto" + } + } + } + } + } + }, + "security": [ + { + "OAuth2": [] + } + ] + } + }, + "/api/FoldersNavigation/GetAllFoldersForCurrentUser": { + "get": { + "tags": [ + "FoldersNavigation" + ], + "summary": "Returns the folders the current user has access to.\r\nThe response will be a list of folders; the hierarchy can be reconstructed\r\nusing the ParentId properties. From the root to the folders the user has\r\nactually been assigned to, the folders will be marked as non-selectable\r\nand only the paths to the assigned-to folders will be included.\r\nFrom the assigned-to folders down to the leaves, the nodes will be marked as\r\nselectable and their children lists fully populated.", + "description": "OAuth authentication is not supported.\r\n\r\nRequires authentication.", + "operationId": "FoldersNavigation_GetAllFoldersForCurrentUser", + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ExtendedFolderDto" + } + } + } + } + } + }, + "security": [ + { + "OAuth2": [] + } + ] + } + }, + "/api/FoldersNavigation/GetAllRolesForUser": { + "get": { + "tags": [ + "FoldersNavigation" + ], + "summary": "Returns a page of the user-folder assignments for the input user, including the roles for each folder.\r\nThe response also includes the folders assigned to the directory groups of the user.\r\nThe distinction between the folders assigned directly to the user and the ones assigned to one of his groups\r\ncan be made via the User field of the response.", + "description": "OAuth authentication is not supported.\r\n\r\nRequired permissions: (Units.View - Gets roles from all folders) and (SubFolders.View - Gets roles only from folders where caller has SubFolders.View permission).", + "operationId": "FoldersNavigation_GetAllRolesForUser", + "parameters": [ + { + "name": "username", + "in": "query", + "description": "User name", + "schema": { + "type": "string" + } + }, + { + "name": "type", + "in": "query", + "schema": { + "type": "string", + "enum": [ + "User", + "Group", + "Machine", + "Robot", + "ExternalApplication" + ], + "x-ms-enum": { + "name": "DirectoryObjectType", + "modelAsString": false + } + }, + "x-ms-enum": { + "name": "DirectoryObjectType", + "modelAsString": false + } + }, + { + "name": "skip", + "in": "query", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "take", + "in": "query", + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/UserRoleAssignmentsDto" + } + } + } + } + }, + "security": [ + { + "OAuth2": [] + } + ] + } + }, + "/api/FoldersNavigation/GetFolderNavigationContextForCurrentUser": { + "get": { + "tags": [ + "FoldersNavigation" + ], + "summary": "Returns a subset (paginated) of direct children for a given folder, which are accessible to the current user.\r\nTo ease a folder tree structure navigation design, the list of ancestors for the given folder is also returned.", + "description": "OAuth authentication is not supported.\r\n\r\nRequires authentication.", + "operationId": "FoldersNavigation_GetFolderNavigationContextForCurrentUser", + "parameters": [ + { + "name": "skip", + "in": "query", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "take", + "in": "query", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "folderId", + "in": "query", + "schema": { + "type": "integer", + "format": "int64" + } + } + ], + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/FolderNavigationContextDto" + } + } + } + } + }, + "security": [ + { + "OAuth2": [] + } + ] + } + }, + "/api/FoldersNavigation/GetFoldersForCurrentUser": { + "get": { + "tags": [ + "FoldersNavigation" + ], + "summary": "Returns a filtered subset (paginated) of the folders the current user has access to.", + "description": "OAuth authentication is not supported.\r\n\r\nRequires authentication.", + "operationId": "FoldersNavigation_GetFoldersForCurrentUser", + "parameters": [ + { + "name": "skip", + "in": "query", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "take", + "in": "query", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "searchText", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "folderTypes", + "in": "query", + "style": "form", + "explode": true, + "schema": { + "type": "array", + "items": { + "type": "string", + "enum": [ + "Standard", + "Personal", + "Virtual", + "Solution" + ], + "x-ms-enum": { + "name": "FolderType", + "modelAsString": false + } + } + } + } + ], + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/PageResultDtoOfFolderDto" + } + } + } + } + }, + "security": [ + { + "OAuth2": [] + } + ] + } + }, + "/api/Licensing/Acquire": { + "post": { + "tags": [ + "Licensing" + ], + "summary": "Acquire license units", + "description": "OAuth required scopes: OR.Administration or OR.Administration.Write.\r\n\r\nRequires authentication.", + "operationId": "Licensing_Acquire", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ConsumptionLicenseDto" + } + } + }, + "required": false + }, + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/LicenseResultDto" + } + } + } + }, + "400": { + "description": "Bad Request", + "content": {} + }, + "409": { + "description": "Conflict", + "content": {} + }, + "503": { + "description": "Server Error", + "content": {} + } + }, + "security": [ + { + "OAuth2": [] + } + ], + "x-codegen-request-body-name": "body" + } + }, + "/api/Licensing/Release": { + "put": { + "tags": [ + "Licensing" + ], + "summary": "Release acquired license units", + "description": "OAuth required scopes: OR.Administration or OR.Administration.Write.\r\n\r\nRequires authentication.", + "operationId": "Licensing_Release", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ConsumptionLicenseDto" + } + } + }, + "required": false + }, + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/LicenseResultDto" + } + } + } + }, + "400": { + "description": "Bad Request", + "content": {} + }, + "409": { + "description": "Conflict", + "content": {} + }, + "503": { + "description": "Server Error", + "content": {} + } + }, + "security": [ + { + "OAuth2": [] + } + ], + "x-codegen-request-body-name": "body" + } + }, + "/api/Logs": { + "post": { + "tags": [ + "Logs" + ], + "summary": "Inserts a log entry with a specified message in JSON format.", + "description": "OAuth required scopes: OR.Monitoring or OR.Monitoring.Write.\r\n\r\nRequired permissions: (Logs.Create).\r\n\r\nExample of jMessage parameter.\r\n \r\n {\r\n \"message\": \"TTT execution started\",\r\n \"level\": \"Information\",\r\n \"timeStamp\": \"2017-01-18T14:46:07.4152893+02:00\",\r\n \"windowsIdentity\": \"DESKTOP-1L50L0P\\\\WindowsUser\",\r\n \"agentSessionId\": \"00000000-0000-0000-0000-000000000000\",\r\n \"processName\": \"TTT\",\r\n \"fileName\": \"Main\",\r\n \"jobId\": \"8066c309-cef8-4b47-9163-b273fc14cc43\"\r\n }\r\nDEPRECATED: \r\nUse SubmitLogs instead", + "operationId": "Logs_Post", + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object" + } + } + }, + "required": false + }, + "responses": { + "200": { + "description": "Successfully inserts a log message. Although it's a post, there's no need for an object to be returned", + "content": {} + }, + "400": { + "description": "jMessage is null or an Exception is thrown during insert", + "content": {} + }, + "408": { + "description": "Too many pending logging requests or timeout", + "content": {} + } + }, + "deprecated": true, + "security": [ + { + "OAuth2": [] + } + ], + "x-codegen-request-body-name": "body" + } + }, + "/api/Logs/SubmitLogs": { + "post": { + "tags": [ + "Logs" + ], + "summary": "Inserts a collection of log entries, each in a specific JSON format.", + "description": "OAuth required scopes: OR.Monitoring or OR.Monitoring.Write.\r\n\r\nRequired permissions: (Logs.Create).\r\n\r\nExample of log entry:\r\n {\r\n \"message\": \"TTT execution started\",\r\n \"level\": \"Information\",\r\n \"timeStamp\": \"2017-01-18T14:46:07.4152893+02:00\",\r\n \"windowsIdentity\": \"DESKTOP-1L50L0P\\\\WindowsUser\",\r\n \"agentSessionId\": \"00000000-0000-0000-0000-000000000000\",\r\n \"processName\": \"TTT\",\r\n \"fileName\": \"Main\",\r\n \"jobId\": \"8066c309-cef8-4b47-9163-b273fc14cc43\"\r\n }", + "operationId": "Logs_SubmitLogs", + "requestBody": { + "description": "Collection of string representations of JSON objects", + "content": { + "application/json": { + "schema": { + "type": "array", + "description": "Collection of string representations of JSON objects", + "items": { + "type": "string" + } + } + } + }, + "required": false + }, + "responses": { + "200": { + "description": "Successfully inserts the log entries", + "content": {} + }, + "400": { + "description": "logs is null or an Exception is thrown during insert", + "content": {} + }, + "408": { + "description": "Too many pending logging requests or timeout", + "content": {} + } + }, + "security": [ + { + "OAuth2": [] + } + ], + "x-codegen-request-body-name": "body" + } + }, + "/api/Maintenance/End": { + "post": { + "tags": [ + "Maintenance" + ], + "summary": "Ends a maintenance window", + "description": "OAuth required scopes: OR.Administration or OR.Administration.Write.\r\n\r\nHost only. Requires authentication.", + "operationId": "Maintenance_End", + "parameters": [ + { + "name": "tenantId", + "in": "query", + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "responses": { + "204": { + "description": "No Content", + "content": {} + } + }, + "security": [ + { + "OAuth2": [] + } + ] + } + }, + "/api/Maintenance/Get": { + "get": { + "tags": [ + "Maintenance" + ], + "summary": "Gets the host admin logs.", + "description": "OAuth required scopes: OR.Administration or OR.Administration.Read.\r\n\r\nHost only. Required permissions: Audit.View.", + "operationId": "Maintenance_Get", + "parameters": [ + { + "name": "tenantId", + "in": "query", + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/MaintenanceSetting" + } + } + } + } + }, + "security": [ + { + "OAuth2": [] + } + ] + } + }, + "/api/Maintenance/Start": { + "post": { + "tags": [ + "Maintenance" + ], + "summary": "Starts a maintenance window", + "description": "OAuth required scopes: OR.Administration or OR.Administration.Write.\r\n\r\nHost only. Requires authentication.", + "operationId": "Maintenance_Start", + "parameters": [ + { + "name": "phase", + "in": "query", + "description": "Phase - UiPath.Orchestrator.DataContracts.MaintenanceState.Draining or UiPath.Orchestrator.DataContracts.MaintenanceState.Suspended", + "schema": { + "type": "string", + "enum": [ + "None", + "Draining", + "Suspended" + ], + "x-ms-enum": { + "name": "MaintenanceState", + "modelAsString": false + } + }, + "x-ms-enum": { + "name": "MaintenanceState", + "modelAsString": false + } + }, + { + "name": "force", + "in": "query", + "description": "Whether to ignore errors during transition", + "schema": { + "type": "boolean", + "default": false + } + }, + { + "name": "killJobs", + "in": "query", + "description": "Whether to force-kill running jobs when transitioning to UiPath.Orchestrator.DataContracts.MaintenanceState.Suspended", + "schema": { + "type": "boolean", + "default": false + } + }, + { + "name": "tenantId", + "in": "query", + "description": "If tenant id is set, maintenance will start only for this tenant", + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "responses": { + "204": { + "description": "No Content", + "content": {} + } + }, + "security": [ + { + "OAuth2": [] + } + ] + } + }, + "/api/PackageFeeds/GetFolderFeed": { + "get": { + "tags": [ + "PackageFeeds" + ], + "summary": "Returns the feed id for a user assigned folder having specific feed", + "description": "OAuth required scopes: OR.Execution or OR.Execution.Read.\r\n\r\nRequires authentication.", + "operationId": "PackageFeeds_GetFolderFeed", + "parameters": [ + { + "name": "folderId", + "in": "query", + "schema": { + "type": "integer", + "format": "int64" + } + } + ], + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "type": "string", + "format": "uuid" + } + } + } + } + }, + "security": [ + { + "OAuth2": [] + } + ] + } + }, + "/api/Stats/GetConsumptionLicenseStats": { + "get": { + "tags": [ + "Stats" + ], + "summary": "Gets the consumption licensing usage statistics", + "description": "OAuth required scopes: OR.Monitoring or OR.Monitoring.Read.\r\n\r\nRequired permissions: License.View.", + "operationId": "Stats_GetConsumptionLicenseStats", + "parameters": [ + { + "name": "tenantId", + "in": "query", + "description": "The Tenant's Id - can be used when authenticated as Host", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "days", + "in": "query", + "description": "Number of reported license usage days", + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ConsumptionLicenseStatsModel" + } + } + } + } + } + }, + "security": [ + { + "OAuth2": [] + } + ] + } + }, + "/api/Stats/GetCountStats": { + "get": { + "tags": [ + "Stats" + ], + "summary": "Gets the total number of various entities registered in Orchestrator", + "description": "OAuth required scopes: OR.Monitoring or OR.Monitoring.Read.\r\n\r\nRequires authentication.\r\n\r\nReturns the name and the total number of entities registered in Orchestrator for a set of entities.\r\nAll the counted entity types can be seen in the result below.\r\n [\r\n {\r\n \"title\": \"Processes\",\r\n \"count\": 1\r\n },\r\n {\r\n \"title\": \"Assets\",\r\n \"count\": 0\r\n },\r\n {\r\n \"title\": \"Queues\",\r\n \"count\": 0\r\n },\r\n {\r\n \"title\": \"Schedules\",\r\n \"count\": 0\r\n }\r\n ]", + "operationId": "Stats_GetCountStats", + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/CountStats" + } + } + } + } + } + }, + "security": [ + { + "OAuth2": [] + } + ] + } + }, + "/api/Stats/GetJobsStats": { + "get": { + "tags": [ + "Stats" + ], + "summary": "Gets the total number of jobs aggregated by Job State", + "description": "OAuth required scopes: OR.Monitoring or OR.Monitoring.Read.\r\n\r\nRequired permissions: Jobs.View.\r\n\r\nReturns the total number of Successful, Faulted and Canceled jobs respectively.\r\nExample of returned result:\r\n [\r\n {\r\n \"title\": \"Successful\",\r\n \"count\": 0\r\n },\r\n {\r\n \"title\": \"Faulted\",\r\n \"count\": 0\r\n },\r\n {\r\n \"title\": \"Canceled\",\r\n \"count\": 0\r\n }\r\n ]", + "operationId": "Stats_GetJobsStats", + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/CountStats" + } + } + } + } + } + }, + "security": [ + { + "OAuth2": [] + } + ] + } + }, + "/api/Stats/GetLicenseStats": { + "get": { + "tags": [ + "Stats" + ], + "summary": "Gets the licensing usage statistics", + "description": "OAuth required scopes: OR.Monitoring or OR.Monitoring.Read.\r\n\r\nRequired permissions: License.View.", + "operationId": "Stats_GetLicenseStats", + "parameters": [ + { + "name": "tenantId", + "in": "query", + "description": "The Tenant's Id - can be used when authenticated as Host", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "days", + "in": "query", + "description": "Number of reported license usage days", + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/LicenseStatsModel" + } + } + } + } + } + }, + "security": [ + { + "OAuth2": [] + } + ] + } + }, + "/api/Stats/GetSessionsStats": { + "get": { + "tags": [ + "Stats" + ], + "summary": "Gets the total number of robots aggregated by Robot State", + "description": "OAuth required scopes: OR.Monitoring or OR.Monitoring.Read.\r\n\r\nRequired permissions: Robots.View.\r\n\r\nReturns the total number of Available, Busy, Disconnected and Unresponsive robots respectively.\r\nExample of returned result:\r\n [\r\n {\r\n \"title\": \"Available\",\r\n \"count\": 1\r\n },\r\n {\r\n \"title\": \"Busy\",\r\n \"count\": 0\r\n },\r\n {\r\n \"title\": \"Disconnected\",\r\n \"count\": 1\r\n },\r\n {\r\n \"title\": \"Unresponsive\",\r\n \"count\": 0\r\n }\r\n ]", + "operationId": "Stats_GetSessionsStats", + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/CountStats" + } + } + } + } + } + }, + "security": [ + { + "OAuth2": [] + } + ] + } + }, + "/api/Status/Get": { + "get": { + "tags": [ + "Status" + ], + "summary": "Returns whether the current endpoint should be serving traffic", + "operationId": "Status_Get", + "responses": { + "200": { + "description": "Success", + "content": {} + } + } + } + }, + "/api/Status/VerifyHostAvailibility": { + "get": { + "tags": [ + "Status" + ], + "description": "Required permissions: Webhooks.Create or Webhooks.Edit.", + "operationId": "Status_VerifyHostAvailibility", + "parameters": [ + { + "name": "url", + "in": "query", + "schema": { + "type": "string", + "format": "uri" + } + } + ], + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/HostAvailabilityDto" + } + } + } + } + }, + "security": [ + { + "OAuth2": [] + } + ] + } + }, + "/api/TestAutomation/CancelTestCaseExecution": { + "post": { + "tags": [ + "TestAutomation" + ], + "summary": "Cancels the specified test case execution.", + "description": "OAuth required scopes: OR.TestSetExecutions or OR.TestSetExecutions.Write.\r\n\r\nRequired permissions: TestSetExecutions.Edit.\r\n\r\nResponses:\r\n202 Accepted\r\n403 If the caller doesn't have permissions to cancel a test set execution", + "operationId": "TestAutomation_CancelTestCaseExecution", + "parameters": [ + { + "name": "testCaseExecutionId", + "in": "query", + "description": "Id for the test case execution to be canceled", + "schema": { + "type": "integer", + "format": "int64" + } + }, + { + "name": "X-UIPATH-OrganizationUnitId", + "in": "header", + "description": "Folder/OrganizationUnit Id", + "schema": { + "type": "integer", + "format": "int64" + } + } + ], + "responses": { + "202": { + "description": "The test case execution was scheduled for cancellation or is not in a cancelable state", + "content": {} + } + }, + "security": [ + { + "OAuth2": [] + } + ] + } + }, + "/api/TestAutomation/CancelTestSetExecution": { + "post": { + "tags": [ + "TestAutomation" + ], + "summary": "Cancels the specified test set execution.", + "description": "OAuth required scopes: OR.TestSetExecutions or OR.TestSetExecutions.Write.\r\n\r\nRequired permissions: TestSetExecutions.Edit.\r\n\r\nResponses:\r\n202 Accepted\r\n403 If the caller doesn't have permissions to cancel a test set execution", + "operationId": "TestAutomation_CancelTestSetExecution", + "parameters": [ + { + "name": "testSetExecutionId", + "in": "query", + "description": "Id for the test set execution to be canceled", + "schema": { + "type": "integer", + "format": "int64" + } + }, + { + "name": "X-UIPATH-OrganizationUnitId", + "in": "header", + "description": "Folder/OrganizationUnit Id", + "schema": { + "type": "integer", + "format": "int64" + } + } + ], + "responses": { + "202": { + "description": "The test set execution was scheduled for cancellation or is not in a cancelable state", + "content": {} + } + }, + "security": [ + { + "OAuth2": [] + } + ] + } + }, + "/api/TestAutomation/CreateTestSetForReleaseVersion": { + "post": { + "tags": [ + "TestAutomation" + ], + "summary": "This will create a test set with source type API.This endpoint it is supposed to be used by API integration.", + "description": "OAuth required scopes: OR.TestSets or OR.TestSets.Write.\r\n\r\nRequired permissions: TestSets.Create.\r\n\r\nResponses:\r\n201 Created returns test set Id\r\n403 If the caller doesn't have permissions to create a test set", + "operationId": "TestAutomation_CreateTestSetForReleaseVersion", + "parameters": [ + { + "name": "X-UIPATH-OrganizationUnitId", + "in": "header", + "description": "Folder/OrganizationUnit Id", + "schema": { + "type": "integer", + "format": "int64" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/BuildTestSetRequestMessage" + } + } + }, + "required": false + }, + "responses": { + "201": { + "description": "Successful created test set.", + "content": { + "application/json": { + "schema": { + "type": "integer", + "format": "int64" + } + } + } + } + }, + "security": [ + { + "OAuth2": [] + } + ], + "x-codegen-request-body-name": "body" + } + }, + "/api/TestAutomation/GetAssertionScreenshot": { + "get": { + "tags": [ + "TestAutomation" + ], + "summary": "Get the screenshot for the specified test case assertion.", + "description": "OAuth required scopes: OR.TestSetExecutions or OR.TestSetExecutions.Read.\r\n\r\nRequired permissions: TestSetExecutions.View.\r\n\r\nResponses:\r\n200 OK\r\n404 If the test case assertion is not found or the screenshot storage location is not found", + "operationId": "TestAutomation_GetAssertionScreenshot", + "parameters": [ + { + "name": "testCaseAssertionId", + "in": "query", + "description": "Id of the test case assertion", + "schema": { + "type": "integer", + "format": "int64" + } + }, + { + "name": "X-UIPATH-OrganizationUnitId", + "in": "header", + "description": "Folder/OrganizationUnit Id", + "schema": { + "type": "integer", + "format": "int64" + } + } + ], + "responses": { + "200": { + "description": "Success", + "content": { + "application/octet-stream": { + "schema": { + "type": "string", + "format": "binary" + } + } + } + } + }, + "security": [ + { + "OAuth2": [] + } + ] + } + }, + "/api/TestAutomation/GetPackageInfoByTestCaseUniqueId": { + "get": { + "tags": [ + "TestAutomation" + ], + "summary": "Get the package identifier and the latest version for the specified test case.", + "description": "OAuth required scopes: OR.Execution or OR.Execution.Read.\r\n\r\nRequires authentication.\r\n\r\nResponses:\r\n200 OK\r\n403 If the caller doesn't have permissions to retrieve packages\r\n404 If there is no test case with the specified UniqueId", + "operationId": "TestAutomation_GetPackageInfoByTestCaseUniqueId", + "parameters": [ + { + "name": "testCaseUniqueId", + "in": "query", + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "packageIdentifier", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Package info for the specified test case", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/TestPackageInfoDto" + } + } + } + } + }, + "security": [ + { + "OAuth2": [] + } + ] + } + }, + "/api/TestAutomation/GetReleasesForPackageVersion": { + "get": { + "tags": [ + "TestAutomation" + ], + "summary": "This will list all the processes filtered by package identifier and version cross-folder when no current folder is sent by header.", + "description": "OAuth required scopes: OR.Execution or OR.Execution.Read.\r\n\r\nRequired permissions: Processes.View.\r\n\r\nResponses:\r\n200 OK\r\n404 If there is no release for the specified package identifier", + "operationId": "TestAutomation_GetReleasesForPackageVersion", + "parameters": [ + { + "name": "packageIdentifier", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "version", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "mandatoryPermissions", + "in": "query", + "description": "If in a cross-folder scenario, these represent the additional permissions\r\n required in the folders the data is retrieved from; all permissions in this set must be met", + "style": "form", + "explode": true, + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + }, + { + "name": "atLeastOnePermissions", + "in": "query", + "description": "If in a cross-folder scenario, these represent the additional permissions\r\n required in the folders the data is retrieved from; at least one permission in this set must be met", + "style": "form", + "explode": true, + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + }, + { + "name": "X-UIPATH-OrganizationUnitId", + "in": "header", + "description": "Folder/OrganizationUnit Id", + "schema": { + "type": "integer", + "format": "int64" + } + } + ], + "responses": { + "200": { + "description": "List of process versions", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/TestReleaseVersionDto" + } + } + } + } + } + }, + "security": [ + { + "OAuth2": [] + } + ] + } + }, + "/api/TestAutomation/GetTestCaseExecutionAttachment": { + "get": { + "tags": [ + "TestAutomation" + ], + "summary": "Get the attachment for the specified test case execution attachment.", + "description": "OAuth required scopes: OR.TestSetExecutions or OR.TestSetExecutions.Read.\r\n\r\nRequired permissions: TestSetExecutions.View.\r\n\r\nResponses:\r\n200 OK\r\n404 If the test case execution attachment is not found or the storage location is not found", + "operationId": "TestAutomation_GetTestCaseExecutionAttachment", + "parameters": [ + { + "name": "testCaseExecutionAttachmentId", + "in": "query", + "description": "Id of the test case execution attachment", + "schema": { + "type": "integer", + "format": "int64" + } + }, + { + "name": "X-UIPATH-OrganizationUnitId", + "in": "header", + "description": "Folder/OrganizationUnit Id", + "schema": { + "type": "integer", + "format": "int64" + } + } + ], + "responses": { + "200": { + "description": "Success", + "content": { + "application/octet-stream": { + "schema": { + "type": "string", + "format": "binary" + } + } + } + } + }, + "security": [ + { + "OAuth2": [] + } + ] + } + }, + "/api/TestAutomation/GetTestCaseExecutionAttachments": { + "post": { + "tags": [ + "TestAutomation" + ], + "summary": "This will list all test case execution attachments filtered by identifier and tags", + "description": "OAuth required scopes: OR.TestSetExecutions or OR.TestSetExecutions.Write.\r\n\r\nRequired permissions: TestSetExecutions.View.\r\n\r\nResponses:\r\n200 OK\r\n404 If there is no test case execution for the specified identifier", + "operationId": "TestAutomation_GetTestCaseExecutionAttachments", + "parameters": [ + { + "name": "X-UIPATH-OrganizationUnitId", + "in": "header", + "description": "Folder/OrganizationUnit Id", + "schema": { + "type": "integer", + "format": "int64" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/TestCaseExecutionAttachmentFilterDto" + } + } + }, + "required": false + }, + "responses": { + "200": { + "description": "List of attachments", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/TestCaseExecutionAttachmentDto" + } + } + } + } + } + }, + "security": [ + { + "OAuth2": [] + } + ], + "x-codegen-request-body-name": "body" + } + }, + "/api/TestAutomation/GetTestSetExecutionAttachment": { + "get": { + "tags": [ + "TestAutomation" + ], + "summary": "Get the attachment for the specified test set execution attachment.", + "description": "OAuth required scopes: OR.TestSetExecutions or OR.TestSetExecutions.Read.\r\n\r\nRequired permissions: TestSetExecutions.View.\r\n\r\nResponses:\r\n200 OK\r\n404 If the test set execution attachment is not found or the storage location is not found", + "operationId": "TestAutomation_GetTestSetExecutionAttachment", + "parameters": [ + { + "name": "testSetExecutionAttachmentId", + "in": "query", + "description": "Id of the test set execution attachment", + "schema": { + "type": "integer", + "format": "int64" + } + }, + { + "name": "X-UIPATH-OrganizationUnitId", + "in": "header", + "description": "Folder/OrganizationUnit Id", + "schema": { + "type": "integer", + "format": "int64" + } + } + ], + "responses": { + "200": { + "description": "Success", + "content": { + "application/octet-stream": { + "schema": { + "type": "string", + "format": "binary" + } + } + } + } + }, + "security": [ + { + "OAuth2": [] + } + ] + } + }, + "/api/TestAutomation/GetTestSetExecutionAttachments": { + "post": { + "tags": [ + "TestAutomation" + ], + "summary": "This will list all test set execution attachments filtered by identifier and tags", + "description": "OAuth required scopes: OR.TestSetExecutions or OR.TestSetExecutions.Write.\r\n\r\nRequired permissions: TestSetExecutions.View.\r\n\r\nResponses:\r\n200 OK\r\n404 If there is no test set execution for the specified identifier", + "operationId": "TestAutomation_GetTestSetExecutionAttachments", + "parameters": [ + { + "name": "X-UIPATH-OrganizationUnitId", + "in": "header", + "description": "Folder/OrganizationUnit Id", + "schema": { + "type": "integer", + "format": "int64" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/TestSetExecutionAttachmentFilterDto" + } + } + }, + "required": false + }, + "responses": { + "200": { + "description": "List of attachments", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/TestSetExecutionAttachmentDto" + } + } + } + } + } + }, + "security": [ + { + "OAuth2": [] + } + ], + "x-codegen-request-body-name": "body" + } + }, + "/api/TestAutomation/ReexecuteTestCases": { + "post": { + "tags": [ + "TestAutomation" + ], + "summary": "Re-execute the specified test case executions within the same test set execution.", + "description": "OAuth required scopes: OR.TestSetExecutions or OR.TestSetExecutions.Write.\r\n\r\nRequired permissions: TestSetExecutions.Create.\r\n\r\nResponses:\r\n200 OK\r\n403 If the caller doesn't have permissions to execute test sets\r\n404 If one or more test cases were not found", + "operationId": "TestAutomation_ReexecuteTestCases", + "parameters": [ + { + "name": "X-UIPATH-OrganizationUnitId", + "in": "header", + "description": "Folder/OrganizationUnit Id", + "schema": { + "type": "integer", + "format": "int64" + } + } + ], + "requestBody": { + "description": "A list of test case executions with corresponding input arguments and optional RobotId and MachineSessionId fields", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ReexecuteTestCasesOptionsDto" + } + } + }, + "required": false + }, + "responses": { + "200": { + "description": "Successful re-execution of the test case executions", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/TestCaseExecutionDto" + } + } + } + } + } + }, + "security": [ + { + "OAuth2": [] + } + ], + "x-codegen-request-body-name": "body" + } + }, + "/api/TestAutomation/StartTestSetExecution": { + "post": { + "tags": [ + "TestAutomation" + ], + "summary": "Start a test set execution.", + "description": "OAuth required scopes: OR.TestSetExecutions or OR.TestSetExecutions.Write.\r\n\r\nRequired permissions: TestSetExecutions.Create.\r\n\r\nResponses:\r\n200 OK returns test set execution Id\r\n403 If the caller doesn't have permissions to execute a test set\r\n404 If the test set was not found", + "operationId": "TestAutomation_StartTestSetExecution", + "parameters": [ + { + "name": "testSetId", + "in": "query", + "schema": { + "type": "integer", + "format": "int64" + } + }, + { + "name": "testSetKey", + "in": "query", + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "triggerType", + "in": "query", + "description": "Specifies how was the execution triggered", + "schema": { + "type": "string", + "default": "Manual", + "enum": [ + "Manual", + "Scheduled", + "ExternalTool" + ], + "x-ms-enum": { + "name": "ExecutionTriggerType", + "modelAsString": false + } + }, + "x-ms-enum": { + "name": "ExecutionTriggerType", + "modelAsString": false + } + }, + { + "name": "X-UIPATH-OrganizationUnitId", + "in": "header", + "description": "Folder/OrganizationUnit Id", + "schema": { + "type": "integer", + "format": "int64" + } + } + ], + "responses": { + "200": { + "description": "Successful start of test set execution", + "content": { + "application/json": { + "schema": { + "type": "integer", + "format": "int64" + } + } + } + } + }, + "security": [ + { + "OAuth2": [] + } + ] + } + }, + "/api/TestAutomation/StartTestSetExecutionWithOptions": { + "post": { + "tags": [ + "TestAutomation" + ], + "summary": "Start a test set execution with additional options.", + "description": "OAuth required scopes: OR.TestSetExecutions or OR.TestSetExecutions.Write.\r\n\r\nRequired permissions: TestSetExecutions.Create.\r\n\r\nResponses:\r\n200 OK returns test set execution Id\r\n403 If the caller doesn't have permissions to execute a test set\r\n404 If the test set was not found", + "operationId": "TestAutomation_StartTestSetExecutionWithOptions", + "parameters": [ + { + "name": "testSetId", + "in": "query", + "schema": { + "type": "integer", + "format": "int64" + } + }, + { + "name": "testSetKey", + "in": "query", + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "X-UIPATH-OrganizationUnitId", + "in": "header", + "description": "Folder/OrganizationUnit Id", + "schema": { + "type": "integer", + "format": "int64" + } + } + ], + "requestBody": { + "description": "Provides options to set the BatchExecutionKey and TriggerType and override the input parameters for specific test cases", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/TestSetExecutionOptionsDto" + } + } + }, + "required": false + }, + "responses": { + "200": { + "description": "Successful start of test set execution", + "content": { + "application/json": { + "schema": { + "type": "integer", + "format": "int64" + } + } + } + } + }, + "security": [ + { + "OAuth2": [] + } + ], + "x-codegen-request-body-name": "body" + } + }, + "/api/TestDataQueueActions/AddItem": { + "post": { + "tags": [ + "TestDataQueueActions" + ], + "summary": "Add a new test data queue item", + "description": "OAuth required scopes: OR.TestDataQueues or OR.TestDataQueues.Write.\r\n\r\nRequired permissions: TestDataQueueItems.Create.\r\n\r\nResponses:\r\n201 Returns the added test data queue item\r\n403 If the caller doesn't have permissions to create test data queue items\r\n409 If the test data queue item content violates the content JSON schema set on the queue", + "operationId": "TestDataQueueActions_AddItem", + "parameters": [ + { + "name": "X-UIPATH-OrganizationUnitId", + "in": "header", + "description": "Folder/OrganizationUnit Id", + "schema": { + "type": "integer", + "format": "int64" + } + } + ], + "requestBody": { + "description": "QueueName: the test data queue name; Content: the item content", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/TestDataQueueAddItemDto" + } + } + }, + "required": false + }, + "responses": { + "201": { + "description": "Returns the added test data queue item", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/TestDataQueueItemDto" + } + } + } + } + }, + "security": [ + { + "OAuth2": [] + } + ], + "x-codegen-request-body-name": "body" + } + }, + "/api/TestDataQueueActions/BulkAddItems": { + "post": { + "tags": [ + "TestDataQueueActions" + ], + "summary": "Bulk adds an array of data queue items", + "description": "OAuth required scopes: OR.TestDataQueues or OR.TestDataQueues.Write.\r\n\r\nRequired permissions: TestDataQueueItems.Create.\r\n\r\nResponses:\r\n200 Returns the number of items added\r\n403 If the caller doesn't have permissions to create test data queue items\r\n409 If the test data queue items violates the content JSON schema set on the queue", + "operationId": "TestDataQueueActions_BulkAddItems", + "parameters": [ + { + "name": "X-UIPATH-OrganizationUnitId", + "in": "header", + "description": "Folder/OrganizationUnit Id", + "schema": { + "type": "integer", + "format": "int64" + } + } + ], + "requestBody": { + "description": "QueueName: the test data queue name; Items: an array of item content", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/TestDataQueueBulkAddItemsDto" + } + } + }, + "required": false + }, + "responses": { + "200": { + "description": "Returns the number of items added", + "content": { + "application/json": { + "schema": { + "type": "integer", + "format": "int32" + } + } + } + } + }, + "security": [ + { + "OAuth2": [] + } + ], + "x-codegen-request-body-name": "body" + } + }, + "/api/TestDataQueueActions/DeleteAllItems": { + "delete": { + "tags": [ + "TestDataQueueActions" + ], + "summary": "Delete all items from a test data queue", + "description": "OAuth required scopes: OR.TestDataQueues or OR.TestDataQueues.Write.\r\n\r\nRequired permissions: TestDataQueueItems.Delete.\r\n\r\nResponses:\r\n202 All items from the test data queue were scheduled for deletion\r\n403 If the caller doesn't have permissions to delete test data queue items", + "operationId": "TestDataQueueActions_DeleteAllItems", + "parameters": [ + { + "name": "queueName", + "in": "query", + "description": "The name of the test data queue", + "schema": { + "type": "string" + } + }, + { + "name": "X-UIPATH-OrganizationUnitId", + "in": "header", + "description": "Folder/OrganizationUnit Id", + "schema": { + "type": "integer", + "format": "int64" + } + } + ], + "responses": { + "202": { + "description": "All items from the test data queue were scheduled for deletion", + "content": {} + } + }, + "security": [ + { + "OAuth2": [] + } + ] + } + }, + "/api/TestDataQueueActions/DeleteItems": { + "delete": { + "tags": [ + "TestDataQueueActions" + ], + "summary": "Delete specific test data queue items", + "description": "OAuth required scopes: OR.TestDataQueues or OR.TestDataQueues.Write.\r\n\r\nRequired permissions: TestDataQueueItems.Delete.\r\n\r\nResponses:\r\n204 Deleted the test data queue items\r\n403 If the caller doesn't have permissions to delete test data queue items", + "operationId": "TestDataQueueActions_DeleteItems", + "parameters": [ + { + "name": "X-UIPATH-OrganizationUnitId", + "in": "header", + "description": "Folder/OrganizationUnit Id", + "schema": { + "type": "integer", + "format": "int64" + } + } + ], + "requestBody": { + "description": "The Ids of the test data queue items", + "content": { + "application/json": { + "schema": { + "type": "array", + "description": "The Ids of the test data queue items", + "items": { + "type": "integer", + "format": "int64" + } + } + } + }, + "required": false + }, + "responses": { + "204": { + "description": "Deleted the test data queue items", + "content": {} + } + }, + "security": [ + { + "OAuth2": [] + } + ], + "x-codegen-request-body-name": "body" + } + }, + "/api/TestDataQueueActions/GetNextItem": { + "post": { + "tags": [ + "TestDataQueueActions" + ], + "summary": "Get the next unconsumed test data queue item", + "description": "OAuth required scopes: OR.TestDataQueues or OR.TestDataQueues.Write.\r\n\r\nRequired permissions: TestDataQueueItems.View.\r\n\r\nResponses:\r\n200 Returns the next unconsumed test data queue item\r\n204 If there are no unconsumed test data queue items in the queue\r\n403 If the caller doesn't have permissions to view test data queue items\r\n404 If the test data queue does not exist", + "operationId": "TestDataQueueActions_GetNextItem", + "parameters": [ + { + "name": "X-UIPATH-OrganizationUnitId", + "in": "header", + "description": "Folder/OrganizationUnit Id", + "schema": { + "type": "integer", + "format": "int64" + } + } + ], + "requestBody": { + "description": "QueueName:the test data queue name; SetConsumed: Whether to set the item's IsConsumed flag as true or false", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/TestDataQueueGetNextItemDto" + } + } + }, + "required": false + }, + "responses": { + "200": { + "description": "Returns the next unconsumed test data queue item", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/TestDataQueueItemDto" + } + } + } + }, + "204": { + "description": "If there are no unconsumed test data queue items in the queue", + "content": {} + } + }, + "security": [ + { + "OAuth2": [] + } + ], + "x-codegen-request-body-name": "body" + } + }, + "/api/TestDataQueueActions/SetAllItemsConsumed": { + "post": { + "tags": [ + "TestDataQueueActions" + ], + "summary": "Set the IsConsumed flag for all items from a test data queue", + "description": "OAuth required scopes: OR.TestDataQueues or OR.TestDataQueues.Write.\r\n\r\nRequired permissions: TestDataQueueItems.Edit.\r\n\r\nResponses:\r\n202 All items from the test data queue were scheduled for setting the IsConsumed flag\r\n403 If the caller doesn't have permissions to edit test data queue items", + "operationId": "TestDataQueueActions_SetAllItemsConsumed", + "parameters": [ + { + "name": "X-UIPATH-OrganizationUnitId", + "in": "header", + "description": "Folder/OrganizationUnit Id", + "schema": { + "type": "integer", + "format": "int64" + } + } + ], + "requestBody": { + "description": "QueueName: the name of the test data queue; IsConsumed: the value to be set on the items IsConsumed flag", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/TestDataQueueSetAllItemsConsumedDto" + } + } + }, + "required": false + }, + "responses": { + "202": { + "description": "All items from the test data queue were scheduled for setting the IsConsumed flag", + "content": {} + } + }, + "security": [ + { + "OAuth2": [] + } + ], + "x-codegen-request-body-name": "body" + } + }, + "/api/TestDataQueueActions/SetItemsConsumed": { + "post": { + "tags": [ + "TestDataQueueActions" + ], + "summary": "Set the IsConsumed flag for specific test data queue items", + "description": "OAuth required scopes: OR.TestDataQueues or OR.TestDataQueues.Write.\r\n\r\nRequired permissions: TestDataQueueItems.Edit.\r\n\r\nResponses:\r\n200 If the operation succeeded\r\n403 If the caller doesn't have permissions to edit test data queue items", + "operationId": "TestDataQueueActions_SetItemsConsumed", + "parameters": [ + { + "name": "X-UIPATH-OrganizationUnitId", + "in": "header", + "description": "Folder/OrganizationUnit Id", + "schema": { + "type": "integer", + "format": "int64" + } + } + ], + "requestBody": { + "description": "ItemIds: the list of item ids for which to set the IsConsumed flag; IsConsumed: the value to be set on the items IsConsumed flag", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/TestDataQueueSetItemsConsumedDto" + } + } + }, + "required": false + }, + "responses": { + "200": { + "description": "If the operation succeeded", + "content": {} + } + }, + "security": [ + { + "OAuth2": [] + } + ], + "x-codegen-request-body-name": "body" + } + }, + "/api/Translations/GetTranslations": { + "get": { + "tags": [ + "Translations" + ], + "summary": "Returns a json with translation resources", + "operationId": "Translations_GetTranslations", + "parameters": [ + { + "name": "lang", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "type": "object", + "additionalProperties": { + "type": "string" + } + } + } + } + } + } + } + }, + "/forms/TaskForms/BulkCompleteTasks": { + "post": { + "tags": [ + "TaskForms" + ], + "summary": "Bulk Complete the task by merging form data and action taken", + "description": "OAuth required scopes: OR.Tasks or OR.Tasks.Write.\r\n\r\nRequired permissions: Tasks.Edit.", + "operationId": "TaskForms_BulkCompleteTasks", + "parameters": [ + { + "name": "X-UIPATH-OrganizationUnitId", + "in": "header", + "description": "Folder/OrganizationUnit Id", + "schema": { + "type": "integer", + "format": "int64" + } + } + ], + "requestBody": { + "description": "BulkTasksCompletionRequest", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/BulkTasksCompletionRequest" + } + } + }, + "required": false + }, + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/BulkOperationErrorResponse" + } + } + } + } + }, + "400": { + "description": "Bad Request", + "content": {} + }, + "404": { + "description": "Not Found", + "content": {} + } + }, + "security": [ + { + "OAuth2": [] + } + ], + "x-codegen-request-body-name": "body" + } + }, + "/forms/TaskForms/BulkUpdateTasks": { + "put": { + "tags": [ + "TaskForms" + ], + "summary": "Bulk Update Task data by merging data.", + "description": "OAuth required scopes: OR.Tasks or OR.Tasks.Write.\r\n\r\nRequired permissions: Tasks.Edit.", + "operationId": "TaskForms_BulkUpdateTasks", + "parameters": [ + { + "name": "X-UIPATH-OrganizationUnitId", + "in": "header", + "description": "Folder/OrganizationUnit Id", + "schema": { + "type": "integer", + "format": "int64" + } + } + ], + "requestBody": { + "description": "BulkTasksDataUpdateRequest", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/BulkTasksDataUpdateRequest" + } + } + }, + "required": false + }, + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/BulkOperationErrorResponse" + } + } + } + } + }, + "400": { + "description": "Bad Request", + "content": {} + }, + "404": { + "description": "Not Found", + "content": {} + } + }, + "security": [ + { + "OAuth2": [] + } + ], + "x-codegen-request-body-name": "body" + } + }, + "/forms/TaskForms/CompleteTask": { + "post": { + "tags": [ + "TaskForms" + ], + "summary": "Complete the task by saving form data and action taken", + "description": "OAuth required scopes: OR.Tasks or OR.Tasks.Write.\r\n\r\nRequired permissions: Tasks.Edit.", + "operationId": "TaskForms_CompleteTask", + "parameters": [ + { + "name": "X-UIPATH-OrganizationUnitId", + "in": "header", + "description": "Folder/OrganizationUnit Id", + "schema": { + "type": "integer", + "format": "int64" + } + } + ], + "requestBody": { + "description": "TaskCompletionRequest", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/TaskCompletionRequest" + } + } + }, + "required": false + }, + "responses": { + "204": { + "description": "No Content", + "content": {} + } + }, + "security": [ + { + "OAuth2": [] + } + ], + "x-codegen-request-body-name": "body" + } + }, + "/forms/TaskForms/CreateFormTask": { + "post": { + "tags": [ + "TaskForms" + ], + "summary": "Creates a new Form Task.", + "description": "OAuth required scopes: OR.Tasks or OR.Tasks.Write.\r\n\r\nRequired permissions: Tasks.Create.", + "operationId": "TaskForms_CreateFormTask", + "parameters": [ + { + "name": "X-UIPATH-OrganizationUnitId", + "in": "header", + "description": "Folder/OrganizationUnit Id", + "schema": { + "type": "integer", + "format": "int64" + } + } + ], + "requestBody": { + "description": "The form task to be created.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/FormTaskCreateRequest" + } + } + }, + "required": false + }, + "responses": { + "201": { + "description": "Created", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/TaskDataDto" + } + } + } + } + }, + "security": [ + { + "OAuth2": [] + } + ], + "x-codegen-request-body-name": "body" + } + }, + "/forms/TaskForms/GetTaskDataById": { + "get": { + "tags": [ + "TaskForms" + ], + "summary": "Returns task data dto", + "description": "OAuth required scopes: OR.Tasks or OR.Tasks.Read.\r\n\r\nRequired permissions: Tasks.View.", + "operationId": "TaskForms_GetTaskDataById", + "parameters": [ + { + "name": "taskId", + "in": "query", + "description": "Task id", + "schema": { + "type": "integer", + "format": "int64" + } + }, + { + "name": "X-UIPATH-OrganizationUnitId", + "in": "header", + "description": "Folder/OrganizationUnit Id", + "schema": { + "type": "integer", + "format": "int64" + } + } + ], + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/TaskDataDto" + } + } + } + }, + "404": { + "description": "Not Found", + "content": {} + } + }, + "security": [ + { + "OAuth2": [] + } + ] + } + }, + "/forms/TaskForms/GetTaskFormById": { + "get": { + "tags": [ + "TaskForms" + ], + "summary": "Returns form dto to render task form", + "description": "OAuth required scopes: OR.Tasks or OR.Tasks.Read.\r\n\r\nRequired permissions: Tasks.View.", + "operationId": "TaskForms_GetTaskFormById", + "parameters": [ + { + "name": "taskId", + "in": "query", + "description": "Task id", + "schema": { + "type": "integer", + "format": "int64" + } + }, + { + "name": "expandOnFormLayout", + "in": "query", + "schema": { + "type": "boolean", + "default": false + } + }, + { + "name": "X-UIPATH-OrganizationUnitId", + "in": "header", + "description": "Folder/OrganizationUnit Id", + "schema": { + "type": "integer", + "format": "int64" + } + } + ], + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/TaskFormDto" + } + } + } + }, + "404": { + "description": "Not Found", + "content": {} + } + }, + "security": [ + { + "OAuth2": [] + } + ] + } + }, + "/forms/TaskForms/SaveAndReassignTask": { + "post": { + "tags": [ + "TaskForms" + ], + "summary": "Save changes done by the current user and Reassign Task to another user", + "description": "OAuth required scopes: OR.Tasks or OR.Tasks.Write.\r\n\r\nRequired permissions: Tasks.Edit.", + "operationId": "TaskForms_SaveAndReassignTask", + "parameters": [ + { + "name": "X-UIPATH-OrganizationUnitId", + "in": "header", + "description": "Folder/OrganizationUnit Id", + "schema": { + "type": "integer", + "format": "int64" + } + } + ], + "requestBody": { + "description": "TaskSaveAndReassignmentRequest", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/TaskSaveAndReassignmentRequest" + } + } + }, + "required": false + }, + "responses": { + "204": { + "description": "No Content", + "content": {} + }, + "400": { + "description": "Bad Request", + "content": {} + }, + "404": { + "description": "Not Found", + "content": {} + } + }, + "security": [ + { + "OAuth2": [] + } + ], + "x-codegen-request-body-name": "body" + } + }, + "/forms/TaskForms/SaveTaskData": { + "put": { + "tags": [ + "TaskForms" + ], + "summary": "Save task data", + "description": "OAuth required scopes: OR.Tasks or OR.Tasks.Write.\r\n\r\nRequired permissions: Tasks.Edit.", + "operationId": "TaskForms_SaveTaskData", + "parameters": [ + { + "name": "X-UIPATH-OrganizationUnitId", + "in": "header", + "description": "Folder/OrganizationUnit Id", + "schema": { + "type": "integer", + "format": "int64" + } + } + ], + "requestBody": { + "description": "TaskDataSaveRequest", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/TaskDataSaveRequest" + } + } + }, + "required": false + }, + "responses": { + "204": { + "description": "No Content", + "content": {} + }, + "400": { + "description": "Bad Request", + "content": {} + }, + "404": { + "description": "Not Found", + "content": {} + } + }, + "security": [ + { + "OAuth2": [] + } + ], + "x-codegen-request-body-name": "body" + } + }, + "/odata/Alerts": { + "get": { + "tags": [ + "Alerts" + ], + "summary": "Gets alerts.", + "description": "OAuth required scopes: OR.Monitoring or OR.Monitoring.Read.\r\n\r\nRequired permissions: Alerts.View.", + "operationId": "Alerts_Get", + "parameters": [ + { + "name": "$expand", + "in": "query", + "description": "Indicates the related entities to be represented inline. The maximum depth is 2.", + "schema": { + "type": "string" + } + }, + { + "name": "$filter", + "in": "query", + "description": "Restricts the set of items returned. The maximum number of expressions is 100.", + "schema": { + "type": "string" + } + }, + { + "name": "$select", + "in": "query", + "description": "Limits the properties returned in the result.", + "schema": { + "type": "string" + } + }, + { + "name": "$orderby", + "in": "query", + "description": "Specifies the order in which items are returned. The maximum number of expressions is 5.", + "schema": { + "type": "string" + } + }, + { + "name": "$top", + "in": "query", + "description": "Limits the number of items returned from a collection. The maximum value is 1000.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "$skip", + "in": "query", + "description": "Excludes the specified number of items of the queried collection from the result.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "$count", + "in": "query", + "description": "Indicates whether the total count of items within a collection are returned in the result.", + "schema": { + "type": "boolean" + } + } + ], + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ODataValueOfIEnumerableOfAlertDto" + } + } + } + } + }, + "security": [ + { + "OAuth2": [] + } + ] + } + }, + "/odata/Alerts/UiPath.Server.Configuration.OData.ExpandCurrentUserGroupAlerts": { + "post": { + "tags": [ + "Alerts" + ], + "description": "OAuth required scopes: OR.Monitoring or OR.Monitoring.Write.\r\n\r\nRequired permissions: Alerts.View.", + "operationId": "Alerts_ExpandCurrentUserGroupAlerts", + "responses": { + "200": { + "description": "Success", + "content": {} + }, + "204": { + "description": "No Content", + "content": {} + } + }, + "security": [ + { + "OAuth2": [] + } + ] + } + }, + "/odata/Alerts/UiPath.Server.Configuration.OData.GetUnreadCount": { + "get": { + "tags": [ + "Alerts" + ], + "summary": "Returns the total number of alerts, per tenant, that haven't been read by the current user.", + "description": "OAuth required scopes: OR.Monitoring or OR.Monitoring.Read.\r\n\r\nRequired permissions: Alerts.View.", + "operationId": "Alerts_GetUnreadCount", + "parameters": [ + { + "name": "$expand", + "in": "query", + "description": "Indicates the related entities to be represented inline. The maximum depth is 2.", + "schema": { + "type": "string" + } + }, + { + "name": "$select", + "in": "query", + "description": "Limits the properties returned in the result.", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ODataValueOfInt64" + } + } + } + } + }, + "security": [ + { + "OAuth2": [] + } + ] + } + }, + "/odata/Alerts/UiPath.Server.Configuration.OData.MarkAsRead": { + "post": { + "tags": [ + "Alerts" + ], + "summary": "Marks alerts as read and returns the remaining number of unread notifications.", + "description": "OAuth required scopes: OR.Monitoring or OR.Monitoring.Write.\r\n\r\nRequired permissions: Alerts.View.", + "operationId": "Alerts_MarkAsRead", + "parameters": [ + { + "name": "$expand", + "in": "query", + "description": "Indicates the related entities to be represented inline. The maximum depth is 2.", + "schema": { + "type": "string" + } + }, + { + "name": "$select", + "in": "query", + "description": "Limits the properties returned in the result.", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "description": "Collection containing the unique identifiers of the notifications that will be marked as read", + "content": { + "application/json;odata.metadata=minimal;odata.streaming=true": { + "schema": { + "$ref": "#/components/schemas/AlertsMarkAsReadRequest" + } + }, + "application/json;odata.metadata=minimal;odata.streaming=false": { + "schema": { + "$ref": "#/components/schemas/AlertsMarkAsReadRequest" + } + }, + "application/json;odata.metadata=minimal": { + "schema": { + "$ref": "#/components/schemas/AlertsMarkAsReadRequest" + } + }, + "application/json;odata.metadata=full;odata.streaming=true": { + "schema": { + "$ref": "#/components/schemas/AlertsMarkAsReadRequest" + } + }, + "application/json;odata.metadata=full;odata.streaming=false": { + "schema": { + "$ref": "#/components/schemas/AlertsMarkAsReadRequest" + } + }, + "application/json;odata.metadata=full": { + "schema": { + "$ref": "#/components/schemas/AlertsMarkAsReadRequest" + } + }, + "application/json;odata.metadata=none;odata.streaming=true": { + "schema": { + "$ref": "#/components/schemas/AlertsMarkAsReadRequest" + } + }, + "application/json;odata.metadata=none;odata.streaming=false": { + "schema": { + "$ref": "#/components/schemas/AlertsMarkAsReadRequest" + } + }, + "application/json;odata.metadata=none": { + "schema": { + "$ref": "#/components/schemas/AlertsMarkAsReadRequest" + } + }, + "application/json;odata.streaming=true": { + "schema": { + "$ref": "#/components/schemas/AlertsMarkAsReadRequest" + } + }, + "application/json;odata.streaming=false": { + "schema": { + "$ref": "#/components/schemas/AlertsMarkAsReadRequest" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/AlertsMarkAsReadRequest" + } + }, + "application/json-patch+json": { + "schema": { + "$ref": "#/components/schemas/AlertsMarkAsReadRequest" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/AlertsMarkAsReadRequest" + } + } + }, + "required": false + }, + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ODataValueOfInt64" + } + } + } + } + }, + "security": [ + { + "OAuth2": [] + } + ], + "x-codegen-request-body-name": "body" + } + }, + "/odata/Alerts/UiPath.Server.Configuration.OData.RaiseProcessAlert": { + "post": { + "tags": [ + "Alerts" + ], + "summary": "Creates a Process Alert", + "description": "OAuth required scopes: OR.Monitoring or OR.Monitoring.Write.\r\n\r\nRequired permissions: Alerts.Create.", + "operationId": "Alerts_RaiseProcessAlert", + "requestBody": { + "content": { + "application/json;odata.metadata=minimal;odata.streaming=true": { + "schema": { + "$ref": "#/components/schemas/RaiseProcessAlertRequest" + } + }, + "application/json;odata.metadata=minimal;odata.streaming=false": { + "schema": { + "$ref": "#/components/schemas/RaiseProcessAlertRequest" + } + }, + "application/json;odata.metadata=minimal": { + "schema": { + "$ref": "#/components/schemas/RaiseProcessAlertRequest" + } + }, + "application/json;odata.metadata=full;odata.streaming=true": { + "schema": { + "$ref": "#/components/schemas/RaiseProcessAlertRequest" + } + }, + "application/json;odata.metadata=full;odata.streaming=false": { + "schema": { + "$ref": "#/components/schemas/RaiseProcessAlertRequest" + } + }, + "application/json;odata.metadata=full": { + "schema": { + "$ref": "#/components/schemas/RaiseProcessAlertRequest" + } + }, + "application/json;odata.metadata=none;odata.streaming=true": { + "schema": { + "$ref": "#/components/schemas/RaiseProcessAlertRequest" + } + }, + "application/json;odata.metadata=none;odata.streaming=false": { + "schema": { + "$ref": "#/components/schemas/RaiseProcessAlertRequest" + } + }, + "application/json;odata.metadata=none": { + "schema": { + "$ref": "#/components/schemas/RaiseProcessAlertRequest" + } + }, + "application/json;odata.streaming=true": { + "schema": { + "$ref": "#/components/schemas/RaiseProcessAlertRequest" + } + }, + "application/json;odata.streaming=false": { + "schema": { + "$ref": "#/components/schemas/RaiseProcessAlertRequest" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/RaiseProcessAlertRequest" + } + }, + "application/json-patch+json": { + "schema": { + "$ref": "#/components/schemas/RaiseProcessAlertRequest" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/RaiseProcessAlertRequest" + } + } + }, + "required": false + }, + "responses": { + "200": { + "description": "Success", + "content": {} + } + }, + "security": [ + { + "OAuth2": [] + } + ], + "x-codegen-request-body-name": "body" + } + }, + "/odata/Assets": { + "get": { + "tags": [ + "Assets" + ], + "summary": "Get Assets", + "description": "OAuth required scopes: OR.Assets or OR.Assets.Read.\r\n\r\nRequired permissions: Assets.View.\r\nDEPRECATED: \r\nReplaced by GetFiltered.", + "operationId": "Assets_Get", + "parameters": [ + { + "name": "$expand", + "in": "query", + "description": "Indicates the related entities to be represented inline. The maximum depth is 2.", + "schema": { + "type": "string" + } + }, + { + "name": "$filter", + "in": "query", + "description": "Restricts the set of items returned. The maximum number of expressions is 100.", + "schema": { + "type": "string" + } + }, + { + "name": "$select", + "in": "query", + "description": "Limits the properties returned in the result.", + "schema": { + "type": "string" + } + }, + { + "name": "$orderby", + "in": "query", + "description": "Specifies the order in which items are returned. The maximum number of expressions is 5.", + "schema": { + "type": "string" + } + }, + { + "name": "$top", + "in": "query", + "description": "Limits the number of items returned from a collection. The maximum value is 1000.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "$skip", + "in": "query", + "description": "Excludes the specified number of items of the queried collection from the result.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "$count", + "in": "query", + "description": "Indicates whether the total count of items within a collection are returned in the result.", + "schema": { + "type": "boolean" + } + }, + { + "name": "X-UIPATH-OrganizationUnitId", + "in": "header", + "description": "Folder/OrganizationUnit Id", + "schema": { + "type": "integer", + "format": "int64" + } + } + ], + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ODataValueOfIEnumerableOfAssetDto" + } + } + } + } + }, + "deprecated": true, + "security": [ + { + "OAuth2": [] + } + ] + }, + "post": { + "tags": [ + "Assets" + ], + "summary": "Creates an asset", + "description": "OAuth required scopes: OR.Assets or OR.Assets.Write.\r\n\r\nRequired permissions: Assets.Create.", + "operationId": "Assets_Post", + "parameters": [ + { + "name": "X-UIPATH-OrganizationUnitId", + "in": "header", + "description": "Folder/OrganizationUnit Id", + "schema": { + "type": "integer", + "format": "int64" + } + } + ], + "requestBody": { + "content": { + "application/json;odata.metadata=minimal;odata.streaming=true": { + "schema": { + "$ref": "#/components/schemas/AssetDto" + } + }, + "application/json;odata.metadata=minimal;odata.streaming=false": { + "schema": { + "$ref": "#/components/schemas/AssetDto" + } + }, + "application/json;odata.metadata=minimal": { + "schema": { + "$ref": "#/components/schemas/AssetDto" + } + }, + "application/json;odata.metadata=full;odata.streaming=true": { + "schema": { + "$ref": "#/components/schemas/AssetDto" + } + }, + "application/json;odata.metadata=full;odata.streaming=false": { + "schema": { + "$ref": "#/components/schemas/AssetDto" + } + }, + "application/json;odata.metadata=full": { + "schema": { + "$ref": "#/components/schemas/AssetDto" + } + }, + "application/json;odata.metadata=none;odata.streaming=true": { + "schema": { + "$ref": "#/components/schemas/AssetDto" + } + }, + "application/json;odata.metadata=none;odata.streaming=false": { + "schema": { + "$ref": "#/components/schemas/AssetDto" + } + }, + "application/json;odata.metadata=none": { + "schema": { + "$ref": "#/components/schemas/AssetDto" + } + }, + "application/json;odata.streaming=true": { + "schema": { + "$ref": "#/components/schemas/AssetDto" + } + }, + "application/json;odata.streaming=false": { + "schema": { + "$ref": "#/components/schemas/AssetDto" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/AssetDto" + } + }, + "application/json-patch+json": { + "schema": { + "$ref": "#/components/schemas/AssetDto" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/AssetDto" + } + } + }, + "required": false + }, + "responses": { + "201": { + "description": "Successfully created the asset", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/AssetDto" + } + } + } + } + }, + "security": [ + { + "OAuth2": [] + } + ], + "x-codegen-request-body-name": "body" + } + }, + "/odata/Assets({key})": { + "get": { + "tags": [ + "Assets" + ], + "summary": "Gets a single asset based on its id", + "description": "OAuth required scopes: OR.Assets or OR.Assets.Read.\r\n\r\nRequired permissions: Assets.View.", + "operationId": "Assets_GetById", + "parameters": [ + { + "name": "key", + "in": "path", + "required": true, + "schema": { + "type": "integer", + "format": "int64" + } + }, + { + "name": "$expand", + "in": "query", + "description": "Indicates the related entities to be represented inline. The maximum depth is 2.", + "schema": { + "type": "string" + } + }, + { + "name": "$select", + "in": "query", + "description": "Limits the properties returned in the result.", + "schema": { + "type": "string" + } + }, + { + "name": "X-UIPATH-OrganizationUnitId", + "in": "header", + "description": "Folder/OrganizationUnit Id", + "schema": { + "type": "integer", + "format": "int64" + } + } + ], + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/AssetDto" + } + } + } + } + }, + "security": [ + { + "OAuth2": [] + } + ] + }, + "put": { + "tags": [ + "Assets" + ], + "summary": "Edit an asset", + "description": "OAuth required scopes: OR.Assets or OR.Assets.Write.\r\n\r\nRequired permissions: Assets.Edit.", + "operationId": "Assets_PutById", + "parameters": [ + { + "name": "key", + "in": "path", + "required": true, + "schema": { + "type": "integer", + "format": "int64" + } + }, + { + "name": "X-UIPATH-OrganizationUnitId", + "in": "header", + "description": "Folder/OrganizationUnit Id", + "schema": { + "type": "integer", + "format": "int64" + } + } + ], + "requestBody": { + "content": { + "application/json;odata.metadata=minimal;odata.streaming=true": { + "schema": { + "$ref": "#/components/schemas/AssetDto" + } + }, + "application/json;odata.metadata=minimal;odata.streaming=false": { + "schema": { + "$ref": "#/components/schemas/AssetDto" + } + }, + "application/json;odata.metadata=minimal": { + "schema": { + "$ref": "#/components/schemas/AssetDto" + } + }, + "application/json;odata.metadata=full;odata.streaming=true": { + "schema": { + "$ref": "#/components/schemas/AssetDto" + } + }, + "application/json;odata.metadata=full;odata.streaming=false": { + "schema": { + "$ref": "#/components/schemas/AssetDto" + } + }, + "application/json;odata.metadata=full": { + "schema": { + "$ref": "#/components/schemas/AssetDto" + } + }, + "application/json;odata.metadata=none;odata.streaming=true": { + "schema": { + "$ref": "#/components/schemas/AssetDto" + } + }, + "application/json;odata.metadata=none;odata.streaming=false": { + "schema": { + "$ref": "#/components/schemas/AssetDto" + } + }, + "application/json;odata.metadata=none": { + "schema": { + "$ref": "#/components/schemas/AssetDto" + } + }, + "application/json;odata.streaming=true": { + "schema": { + "$ref": "#/components/schemas/AssetDto" + } + }, + "application/json;odata.streaming=false": { + "schema": { + "$ref": "#/components/schemas/AssetDto" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/AssetDto" + } + }, + "application/json-patch+json": { + "schema": { + "$ref": "#/components/schemas/AssetDto" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/AssetDto" + } + } + }, + "required": false + }, + "responses": { + "200": { + "description": "Successfully updated", + "content": {} + } + }, + "security": [ + { + "OAuth2": [] + } + ], + "x-codegen-request-body-name": "body" + }, + "delete": { + "tags": [ + "Assets" + ], + "summary": "Delete an asset", + "description": "OAuth required scopes: OR.Assets or OR.Assets.Write.\r\n\r\nRequired permissions: Assets.Delete.", + "operationId": "Assets_DeleteById", + "parameters": [ + { + "name": "key", + "in": "path", + "required": true, + "schema": { + "type": "integer", + "format": "int64" + } + }, + { + "name": "X-UIPATH-OrganizationUnitId", + "in": "header", + "description": "Folder/OrganizationUnit Id", + "schema": { + "type": "integer", + "format": "int64" + } + } + ], + "responses": { + "204": { + "description": "Successfully deleted the asset", + "content": {} + } + }, + "security": [ + { + "OAuth2": [] + } + ] + } + }, + "/odata/Assets/UiPath.Server.Configuration.OData.GetAssetsAcrossFolders": { + "get": { + "tags": [ + "Assets" + ], + "summary": "Get the assets from all the folders in which the current user has the Assets.View permission, except the one specified.", + "description": "OAuth required scopes: OR.Assets or OR.Assets.Read.\r\n\r\nRequires authentication.", + "operationId": "Assets_GetAssetsAcrossFolders", + "parameters": [ + { + "name": "excludeFolderId", + "in": "query", + "schema": { + "type": "integer", + "format": "int64" + } + }, + { + "name": "$expand", + "in": "query", + "description": "Indicates the related entities to be represented inline. The maximum depth is 2.", + "schema": { + "type": "string" + } + }, + { + "name": "$filter", + "in": "query", + "description": "Restricts the set of items returned. The maximum number of expressions is 100.", + "schema": { + "type": "string" + } + }, + { + "name": "$select", + "in": "query", + "description": "Limits the properties returned in the result.", + "schema": { + "type": "string" + } + }, + { + "name": "$orderby", + "in": "query", + "description": "Specifies the order in which items are returned. The maximum number of expressions is 5.", + "schema": { + "type": "string" + } + }, + { + "name": "$top", + "in": "query", + "description": "Limits the number of items returned from a collection. The maximum value is 1000.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "$skip", + "in": "query", + "description": "Excludes the specified number of items of the queried collection from the result.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "$count", + "in": "query", + "description": "Indicates whether the total count of items within a collection are returned in the result.", + "schema": { + "type": "boolean" + } + }, + { + "name": "X-UIPATH-OrganizationUnitId", + "in": "header", + "description": "Folder/OrganizationUnit Id", + "schema": { + "type": "integer", + "format": "int64" + } + } + ], + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ODataValueOfIEnumerableOfAssetDto" + } + } + } + } + }, + "security": [ + { + "OAuth2": [] + } + ] + } + }, + "/odata/Assets/UiPath.Server.Configuration.OData.GetFiltered": { + "get": { + "tags": [ + "Assets" + ], + "summary": "Get Filtered Assets", + "description": "OAuth required scopes: OR.Assets or OR.Assets.Read.\r\n\r\nRequired permissions: Assets.View.", + "operationId": "Assets_GetFiltered", + "parameters": [ + { + "name": "$expand", + "in": "query", + "description": "Indicates the related entities to be represented inline. The maximum depth is 2.", + "schema": { + "type": "string" + } + }, + { + "name": "$filter", + "in": "query", + "description": "Restricts the set of items returned. The maximum number of expressions is 100.", + "schema": { + "type": "string" + } + }, + { + "name": "$select", + "in": "query", + "description": "Limits the properties returned in the result.", + "schema": { + "type": "string" + } + }, + { + "name": "$orderby", + "in": "query", + "description": "Specifies the order in which items are returned. The maximum number of expressions is 5.", + "schema": { + "type": "string" + } + }, + { + "name": "$top", + "in": "query", + "description": "Limits the number of items returned from a collection. The maximum value is 1000.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "$skip", + "in": "query", + "description": "Excludes the specified number of items of the queried collection from the result.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "$count", + "in": "query", + "description": "Indicates whether the total count of items within a collection are returned in the result.", + "schema": { + "type": "boolean" + } + }, + { + "name": "X-UIPATH-OrganizationUnitId", + "in": "header", + "description": "Folder/OrganizationUnit Id", + "schema": { + "type": "integer", + "format": "int64" + } + } + ], + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ODataValueOfIEnumerableOfAssetDto" + } + } + } + } + }, + "security": [ + { + "OAuth2": [] + } + ] + } + }, + "/odata/Assets/UiPath.Server.Configuration.OData.GetFoldersForAsset(id={id})": { + "get": { + "tags": [ + "Assets" + ], + "summary": "Get all accesible folders where the asset is shared, and the total count of folders where it is shared (including unaccessible folders).", + "description": "OAuth required scopes: OR.Assets or OR.Assets.Read.\r\n\r\nRequires authentication.", + "operationId": "Assets_GetFoldersForAssetById", + "parameters": [ + { + "name": "id", + "in": "path", + "required": true, + "schema": { + "type": "integer", + "format": "int64" + } + }, + { + "name": "$expand", + "in": "query", + "description": "Indicates the related entities to be represented inline. The maximum depth is 2.", + "schema": { + "type": "string" + } + }, + { + "name": "$select", + "in": "query", + "description": "Limits the properties returned in the result.", + "schema": { + "type": "string" + } + }, + { + "name": "X-UIPATH-OrganizationUnitId", + "in": "header", + "description": "Folder/OrganizationUnit Id", + "schema": { + "type": "integer", + "format": "int64" + } + } + ], + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/AccessibleFoldersDto" + } + } + } + } + }, + "security": [ + { + "OAuth2": [] + } + ] + } + }, + "/odata/Assets/UiPath.Server.Configuration.OData.GetRobotAsset(robotId='{robotId}',assetName='{assetName}')": { + "get": { + "tags": [ + "Assets" + ], + "summary": "Returns the named asset associated to the given robot key.", + "description": "OAuth required scopes: OR.Assets or OR.Assets.Read.\r\n\r\nRequired permissions: Assets.View.\r\nDEPRECATED: \r\nUse the GetRobotAssetByNameForRobotKey endpoint. Kept for backwards compatibility.", + "operationId": "Assets_GetRobotAssetByRobotidAndAssetname", + "parameters": [ + { + "name": "robotId", + "in": "path", + "description": "The key of the robot for which the asset is being fetched.", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "assetName", + "in": "path", + "description": "The name of the asset being fetched.", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "$expand", + "in": "query", + "description": "Indicates the related entities to be represented inline. The maximum depth is 2.", + "schema": { + "type": "string" + } + }, + { + "name": "$select", + "in": "query", + "description": "Limits the properties returned in the result.", + "schema": { + "type": "string" + } + }, + { + "name": "X-UIPATH-OrganizationUnitId", + "in": "header", + "description": "Folder/OrganizationUnit Id", + "schema": { + "type": "integer", + "format": "int64" + } + } + ], + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RobotAssetDto" + } + } + } + }, + "400": { + "description": "Invalid parameters", + "content": {} + }, + "404": { + "description": "Asset or Robot do not exist or the Asset is not available for the specified robot.", + "content": {} + } + }, + "deprecated": true, + "security": [ + { + "OAuth2": [] + } + ] + } + }, + "/odata/Assets/UiPath.Server.Configuration.OData.GetRobotAssetByNameForRobotKey": { + "post": { + "tags": [ + "Assets" + ], + "summary": "Returns the named asset associated to the given robot key.", + "description": "OAuth required scopes: OR.Assets or OR.Assets.Write.\r\n\r\nRequired permissions: Assets.View.", + "operationId": "Assets_GetRobotAssetByNameForRobotKey", + "parameters": [ + { + "name": "$expand", + "in": "query", + "description": "Indicates the related entities to be represented inline. The maximum depth is 2.", + "schema": { + "type": "string" + } + }, + { + "name": "$select", + "in": "query", + "description": "Limits the properties returned in the result.", + "schema": { + "type": "string" + } + }, + { + "name": "X-UIPATH-OrganizationUnitId", + "in": "header", + "description": "Folder/OrganizationUnit Id", + "schema": { + "type": "integer", + "format": "int64" + } + } + ], + "requestBody": { + "content": { + "application/json;odata.metadata=minimal;odata.streaming=true": { + "schema": { + "$ref": "#/components/schemas/AssetsGetRobotByNameAndKeyRequest" + } + }, + "application/json;odata.metadata=minimal;odata.streaming=false": { + "schema": { + "$ref": "#/components/schemas/AssetsGetRobotByNameAndKeyRequest" + } + }, + "application/json;odata.metadata=minimal": { + "schema": { + "$ref": "#/components/schemas/AssetsGetRobotByNameAndKeyRequest" + } + }, + "application/json;odata.metadata=full;odata.streaming=true": { + "schema": { + "$ref": "#/components/schemas/AssetsGetRobotByNameAndKeyRequest" + } + }, + "application/json;odata.metadata=full;odata.streaming=false": { + "schema": { + "$ref": "#/components/schemas/AssetsGetRobotByNameAndKeyRequest" + } + }, + "application/json;odata.metadata=full": { + "schema": { + "$ref": "#/components/schemas/AssetsGetRobotByNameAndKeyRequest" + } + }, + "application/json;odata.metadata=none;odata.streaming=true": { + "schema": { + "$ref": "#/components/schemas/AssetsGetRobotByNameAndKeyRequest" + } + }, + "application/json;odata.metadata=none;odata.streaming=false": { + "schema": { + "$ref": "#/components/schemas/AssetsGetRobotByNameAndKeyRequest" + } + }, + "application/json;odata.metadata=none": { + "schema": { + "$ref": "#/components/schemas/AssetsGetRobotByNameAndKeyRequest" + } + }, + "application/json;odata.streaming=true": { + "schema": { + "$ref": "#/components/schemas/AssetsGetRobotByNameAndKeyRequest" + } + }, + "application/json;odata.streaming=false": { + "schema": { + "$ref": "#/components/schemas/AssetsGetRobotByNameAndKeyRequest" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/AssetsGetRobotByNameAndKeyRequest" + } + }, + "application/json-patch+json": { + "schema": { + "$ref": "#/components/schemas/AssetsGetRobotByNameAndKeyRequest" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/AssetsGetRobotByNameAndKeyRequest" + } + } + }, + "required": false + }, + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RobotAssetDto" + } + } + } + }, + "400": { + "description": "Invalid parameters", + "content": {} + }, + "404": { + "description": "Asset or Robot do not exist or the Asset is not available for the specified robot.", + "content": {} + } + }, + "security": [ + { + "OAuth2": [] + } + ], + "x-codegen-request-body-name": "body" + } + }, + "/odata/Assets/UiPath.Server.Configuration.OData.GetRobotAssetByRobotId(robotId={robotId},assetName='{assetName}')": { + "get": { + "tags": [ + "Assets" + ], + "summary": "Returns the named asset associated to the given robot Id.", + "description": "OAuth required scopes: OR.Assets or OR.Assets.Read.\r\n\r\nRequired permissions: Assets.View.", + "operationId": "Assets_GetRobotAssetByRobotId", + "parameters": [ + { + "name": "robotId", + "in": "path", + "description": "The Id of the robot for which the asset is being fetched.", + "required": true, + "schema": { + "type": "integer", + "format": "int64" + } + }, + { + "name": "assetName", + "in": "path", + "description": "The name of the asset being fetched.", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "$expand", + "in": "query", + "description": "Indicates the related entities to be represented inline. The maximum depth is 2.", + "schema": { + "type": "string" + } + }, + { + "name": "$select", + "in": "query", + "description": "Limits the properties returned in the result.", + "schema": { + "type": "string" + } + }, + { + "name": "X-UIPATH-OrganizationUnitId", + "in": "header", + "description": "Folder/OrganizationUnit Id", + "schema": { + "type": "integer", + "format": "int64" + } + } + ], + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RobotAssetDto" + } + } + } + }, + "400": { + "description": "Invalid parameters", + "content": {} + }, + "404": { + "description": "Asset or Robot do not exist or the Asset is not available for the specified robot.", + "content": {} + } + }, + "security": [ + { + "OAuth2": [] + } + ] + } + }, + "/odata/Assets/UiPath.Server.Configuration.OData.SetRobotAssetByRobotKey": { + "post": { + "tags": [ + "Assets" + ], + "summary": "Set the asset value associated to the given robot key.", + "description": "OAuth required scopes: OR.Assets or OR.Assets.Write.\r\n\r\nRequired permissions: Assets.Edit.", + "operationId": "Assets_SetRobotAssetByRobotKey", + "parameters": [ + { + "name": "X-UIPATH-OrganizationUnitId", + "in": "header", + "description": "Folder/OrganizationUnit Id", + "schema": { + "type": "integer", + "format": "int64" + } + } + ], + "requestBody": { + "content": { + "application/json;odata.metadata=minimal;odata.streaming=true": { + "schema": { + "$ref": "#/components/schemas/AssetsSetRobotAssetsByKeyRequest" + } + }, + "application/json;odata.metadata=minimal;odata.streaming=false": { + "schema": { + "$ref": "#/components/schemas/AssetsSetRobotAssetsByKeyRequest" + } + }, + "application/json;odata.metadata=minimal": { + "schema": { + "$ref": "#/components/schemas/AssetsSetRobotAssetsByKeyRequest" + } + }, + "application/json;odata.metadata=full;odata.streaming=true": { + "schema": { + "$ref": "#/components/schemas/AssetsSetRobotAssetsByKeyRequest" + } + }, + "application/json;odata.metadata=full;odata.streaming=false": { + "schema": { + "$ref": "#/components/schemas/AssetsSetRobotAssetsByKeyRequest" + } + }, + "application/json;odata.metadata=full": { + "schema": { + "$ref": "#/components/schemas/AssetsSetRobotAssetsByKeyRequest" + } + }, + "application/json;odata.metadata=none;odata.streaming=true": { + "schema": { + "$ref": "#/components/schemas/AssetsSetRobotAssetsByKeyRequest" + } + }, + "application/json;odata.metadata=none;odata.streaming=false": { + "schema": { + "$ref": "#/components/schemas/AssetsSetRobotAssetsByKeyRequest" + } + }, + "application/json;odata.metadata=none": { + "schema": { + "$ref": "#/components/schemas/AssetsSetRobotAssetsByKeyRequest" + } + }, + "application/json;odata.streaming=true": { + "schema": { + "$ref": "#/components/schemas/AssetsSetRobotAssetsByKeyRequest" + } + }, + "application/json;odata.streaming=false": { + "schema": { + "$ref": "#/components/schemas/AssetsSetRobotAssetsByKeyRequest" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/AssetsSetRobotAssetsByKeyRequest" + } + }, + "application/json-patch+json": { + "schema": { + "$ref": "#/components/schemas/AssetsSetRobotAssetsByKeyRequest" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/AssetsSetRobotAssetsByKeyRequest" + } + } + }, + "required": false + }, + "responses": { + "204": { + "description": "Successfully updated the asset", + "content": {} + }, + "400": { + "description": "Invalid parameters", + "content": {} + }, + "404": { + "description": "Asset or Robot do not exist or the Asset is not available for the specified robot.", + "content": {} + } + }, + "security": [ + { + "OAuth2": [] + } + ], + "x-codegen-request-body-name": "body" + } + }, + "/odata/Assets/UiPath.Server.Configuration.OData.ShareToFolders": { + "post": { + "tags": [ + "Assets" + ], + "summary": "Adds the assets to the folders specified in 'ToAddFolderIds'. Removes the assets from the folders specified in 'ToRemoveFolderIds'.", + "description": "OAuth required scopes: OR.Assets or OR.Assets.Write.\r\n\r\nRequires authentication.", + "operationId": "Assets_ShareToFolders", + "parameters": [ + { + "name": "X-UIPATH-OrganizationUnitId", + "in": "header", + "description": "Folder/OrganizationUnit Id", + "schema": { + "type": "integer", + "format": "int64" + } + } + ], + "requestBody": { + "description": "Object containing the ids of the assets, the ids of the folders where they should be shared and the ids of the folders from which they should be removed.", + "content": { + "application/json;odata.metadata=minimal;odata.streaming=true": { + "schema": { + "$ref": "#/components/schemas/AssetFoldersShareDto" + } + }, + "application/json;odata.metadata=minimal;odata.streaming=false": { + "schema": { + "$ref": "#/components/schemas/AssetFoldersShareDto" + } + }, + "application/json;odata.metadata=minimal": { + "schema": { + "$ref": "#/components/schemas/AssetFoldersShareDto" + } + }, + "application/json;odata.metadata=full;odata.streaming=true": { + "schema": { + "$ref": "#/components/schemas/AssetFoldersShareDto" + } + }, + "application/json;odata.metadata=full;odata.streaming=false": { + "schema": { + "$ref": "#/components/schemas/AssetFoldersShareDto" + } + }, + "application/json;odata.metadata=full": { + "schema": { + "$ref": "#/components/schemas/AssetFoldersShareDto" + } + }, + "application/json;odata.metadata=none;odata.streaming=true": { + "schema": { + "$ref": "#/components/schemas/AssetFoldersShareDto" + } + }, + "application/json;odata.metadata=none;odata.streaming=false": { + "schema": { + "$ref": "#/components/schemas/AssetFoldersShareDto" + } + }, + "application/json;odata.metadata=none": { + "schema": { + "$ref": "#/components/schemas/AssetFoldersShareDto" + } + }, + "application/json;odata.streaming=true": { + "schema": { + "$ref": "#/components/schemas/AssetFoldersShareDto" + } + }, + "application/json;odata.streaming=false": { + "schema": { + "$ref": "#/components/schemas/AssetFoldersShareDto" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/AssetFoldersShareDto" + } + }, + "application/json-patch+json": { + "schema": { + "$ref": "#/components/schemas/AssetFoldersShareDto" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/AssetFoldersShareDto" + } + } + }, + "required": false + }, + "responses": { + "204": { + "description": "No Content", + "content": {} + }, + "404": { + "description": "Asset or one of the folders specified does not exist.", + "content": {} + }, + "409": { + "description": "Attempt to share between classic or modern or ambigous folders list.", + "content": {} + } + }, + "security": [ + { + "OAuth2": [] + } + ], + "x-codegen-request-body-name": "body" + } + }, + "/odata/AuditLogs": { + "get": { + "tags": [ + "AuditLogs" + ], + "summary": "Gets Audit logs.", + "description": "OAuth required scopes: OR.Audit or OR.Audit.Read.\r\n\r\nRequired permissions: Audit.View.", + "operationId": "AuditLogs_Get", + "parameters": [ + { + "name": "x-UIPATH-AuditedService", + "in": "header", + "schema": { + "type": "string", + "default": "Orchestrator", + "enum": [ + "Orchestrator", + "TestAutomation" + ], + "x-ms-enum": { + "name": "AuditedService", + "modelAsString": false + } + }, + "x-ms-enum": { + "name": "AuditedService", + "modelAsString": false + } + }, + { + "name": "$expand", + "in": "query", + "description": "Indicates the related entities to be represented inline. The maximum depth is 2.", + "schema": { + "type": "string" + } + }, + { + "name": "$filter", + "in": "query", + "description": "Restricts the set of items returned. The maximum number of expressions is 100.", + "schema": { + "type": "string" + } + }, + { + "name": "$select", + "in": "query", + "description": "Limits the properties returned in the result.", + "schema": { + "type": "string" + } + }, + { + "name": "$orderby", + "in": "query", + "description": "Specifies the order in which items are returned. The maximum number of expressions is 5.", + "schema": { + "type": "string" + } + }, + { + "name": "$top", + "in": "query", + "description": "Limits the number of items returned from a collection. The maximum value is 1000.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "$skip", + "in": "query", + "description": "Excludes the specified number of items of the queried collection from the result.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "$count", + "in": "query", + "description": "Indicates whether the total count of items within a collection are returned in the result.", + "schema": { + "type": "boolean" + } + } + ], + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ODataValueOfIEnumerableOfAuditLogDto" + } + } + } + } + }, + "security": [ + { + "OAuth2": [] + } + ] + } + }, + "/odata/AuditLogs/UiPath.Server.Configuration.OData.Export": { + "post": { + "tags": [ + "AuditLogs" + ], + "summary": "Requests a CSV export of filtered items.", + "description": "OAuth required scopes: OR.Audit or OR.Audit.Write.\r\n\r\nRequired permissions: Audit.View.", + "operationId": "AuditLogs_Export", + "parameters": [ + { + "name": "auditedService", + "in": "query", + "schema": { + "type": "string", + "default": "Orchestrator", + "enum": [ + "Orchestrator", + "TestAutomation" + ], + "x-ms-enum": { + "name": "AuditedService", + "modelAsString": false + } + }, + "x-ms-enum": { + "name": "AuditedService", + "modelAsString": false + } + }, + { + "name": "$expand", + "in": "query", + "description": "Indicates the related entities to be represented inline. The maximum depth is 2.", + "schema": { + "type": "string" + } + }, + { + "name": "$filter", + "in": "query", + "description": "Restricts the set of items returned. The maximum number of expressions is 100.", + "schema": { + "type": "string" + } + }, + { + "name": "$select", + "in": "query", + "description": "Limits the properties returned in the result.", + "schema": { + "type": "string" + } + }, + { + "name": "$orderby", + "in": "query", + "description": "Specifies the order in which items are returned. The maximum number of expressions is 5.", + "schema": { + "type": "string" + } + }, + { + "name": "$top", + "in": "query", + "description": "Limits the number of items returned from a collection. The maximum value is 1000.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "$skip", + "in": "query", + "description": "Excludes the specified number of items of the queried collection from the result.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "$count", + "in": "query", + "description": "Indicates whether the total count of items within a collection are returned in the result.", + "schema": { + "type": "boolean" + } + } + ], + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ExportModel" + } + } + } + } + }, + "security": [ + { + "OAuth2": [] + } + ] + } + }, + "/odata/AuditLogs/UiPath.Server.Configuration.OData.GetAuditLogDetails(auditLogId={auditLogId})": { + "get": { + "tags": [ + "AuditLogs" + ], + "summary": "Returns audit log details by audit log id", + "description": "OAuth required scopes: OR.Audit or OR.Audit.Read.\r\n\r\nRequired permissions: Audit.View.", + "operationId": "AuditLogs_GetAuditLogDetailsByAuditlogid", + "parameters": [ + { + "name": "auditLogId", + "in": "path", + "required": true, + "schema": { + "type": "integer", + "format": "int64" + } + }, + { + "name": "x-UIPATH-AuditedService", + "in": "header", + "schema": { + "type": "string", + "default": "Orchestrator", + "enum": [ + "Orchestrator", + "TestAutomation" + ], + "x-ms-enum": { + "name": "AuditedService", + "modelAsString": false + } + }, + "x-ms-enum": { + "name": "AuditedService", + "modelAsString": false + } + }, + { + "name": "$expand", + "in": "query", + "description": "Indicates the related entities to be represented inline. The maximum depth is 2.", + "schema": { + "type": "string" + } + }, + { + "name": "$filter", + "in": "query", + "description": "Restricts the set of items returned. The maximum number of expressions is 100.", + "schema": { + "type": "string" + } + }, + { + "name": "$select", + "in": "query", + "description": "Limits the properties returned in the result.", + "schema": { + "type": "string" + } + }, + { + "name": "$orderby", + "in": "query", + "description": "Specifies the order in which items are returned. The maximum number of expressions is 5.", + "schema": { + "type": "string" + } + }, + { + "name": "$count", + "in": "query", + "description": "Indicates whether the total count of items within a collection are returned in the result.", + "schema": { + "type": "boolean" + } + } + ], + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ODataValueOfIEnumerableOfAuditLogEntityDto" + } + } + } + } + }, + "security": [ + { + "OAuth2": [] + } + ] + } + }, + "/odata/AuditLogs/UiPath.Server.Configuration.OData.Reports": { + "get": { + "tags": [ + "AuditLogs" + ], + "summary": "Returns a CSV containing the filtered audit.", + "description": "OAuth required scopes: OR.Audit or OR.Audit.Read.\r\n\r\nRequired permissions: Audit.View.\r\nDEPRECATED: \r\nPlease user other means to retrieve such reports: https://docs.uipath.com/orchestrator/automation-cloud/latest/release-notes/release-notes-june-2023#deprecation-of-reports-endpoints. This endpoint will be removed in future releases.", + "operationId": "AuditLogs_Reports", + "parameters": [ + { + "name": "x-UIPATH-AuditedService", + "in": "header", + "schema": { + "type": "string", + "default": "Orchestrator", + "enum": [ + "Orchestrator", + "TestAutomation" + ], + "x-ms-enum": { + "name": "AuditedService", + "modelAsString": false + } + }, + "x-ms-enum": { + "name": "AuditedService", + "modelAsString": false + } + }, + { + "name": "x-UIPATH-AuditedService", + "in": "query", + "schema": { + "type": "string", + "default": "Orchestrator", + "enum": [ + "Orchestrator", + "TestAutomation" + ], + "x-ms-enum": { + "name": "AuditedService", + "modelAsString": false + } + }, + "x-ms-enum": { + "name": "AuditedService", + "modelAsString": false + } + }, + { + "name": "$expand", + "in": "query", + "description": "Indicates the related entities to be represented inline. The maximum depth is 2.", + "schema": { + "type": "string" + } + }, + { + "name": "$filter", + "in": "query", + "description": "Restricts the set of items returned. The maximum number of expressions is 100.", + "schema": { + "type": "string" + } + }, + { + "name": "$select", + "in": "query", + "description": "Limits the properties returned in the result.", + "schema": { + "type": "string" + } + }, + { + "name": "$orderby", + "in": "query", + "description": "Specifies the order in which items are returned. The maximum number of expressions is 5.", + "schema": { + "type": "string" + } + }, + { + "name": "$top", + "in": "query", + "description": "Limits the number of items returned from a collection. The maximum value is 1000.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "$skip", + "in": "query", + "description": "Excludes the specified number of items of the queried collection from the result.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "$count", + "in": "query", + "description": "Indicates whether the total count of items within a collection are returned in the result.", + "schema": { + "type": "boolean" + } + } + ], + "responses": { + "200": { + "description": "Success", + "content": { + "application/octet-stream": { + "schema": { + "type": "string", + "format": "binary" + } + } + } + } + }, + "deprecated": true, + "security": [ + { + "OAuth2": [] + } + ] + } + }, + "/odata/Buckets": { + "get": { + "tags": [ + "Buckets" + ], + "summary": "Gets Buckets.", + "description": "OAuth required scopes: OR.Administration or OR.Administration.Read.\r\n\r\nRequired permissions: Buckets.View.", + "operationId": "Buckets_Get", + "parameters": [ + { + "name": "$expand", + "in": "query", + "description": "Indicates the related entities to be represented inline. The maximum depth is 2.", + "schema": { + "type": "string" + } + }, + { + "name": "$filter", + "in": "query", + "description": "Restricts the set of items returned. The maximum number of expressions is 100.", + "schema": { + "type": "string" + } + }, + { + "name": "$select", + "in": "query", + "description": "Limits the properties returned in the result.", + "schema": { + "type": "string" + } + }, + { + "name": "$orderby", + "in": "query", + "description": "Specifies the order in which items are returned. The maximum number of expressions is 5.", + "schema": { + "type": "string" + } + }, + { + "name": "$top", + "in": "query", + "description": "Limits the number of items returned from a collection. The maximum value is 1000.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "$skip", + "in": "query", + "description": "Excludes the specified number of items of the queried collection from the result.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "$count", + "in": "query", + "description": "Indicates whether the total count of items within a collection are returned in the result.", + "schema": { + "type": "boolean" + } + }, + { + "name": "X-UIPATH-OrganizationUnitId", + "in": "header", + "description": "Folder/OrganizationUnit Id", + "schema": { + "type": "integer", + "format": "int64" + } + } + ], + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ODataValueOfIEnumerableOfBucketDto" + } + } + } + } + }, + "security": [ + { + "OAuth2": [] + } + ] + }, + "post": { + "tags": [ + "Buckets" + ], + "summary": "Creates an Bucket", + "description": "OAuth required scopes: OR.Administration or OR.Administration.Write.\r\n\r\nRequired permissions: Buckets.Create.", + "operationId": "Buckets_Post", + "parameters": [ + { + "name": "X-UIPATH-OrganizationUnitId", + "in": "header", + "description": "Folder/OrganizationUnit Id", + "schema": { + "type": "integer", + "format": "int64" + } + } + ], + "requestBody": { + "content": { + "application/json;odata.metadata=minimal;odata.streaming=true": { + "schema": { + "$ref": "#/components/schemas/BucketDto" + } + }, + "application/json;odata.metadata=minimal;odata.streaming=false": { + "schema": { + "$ref": "#/components/schemas/BucketDto" + } + }, + "application/json;odata.metadata=minimal": { + "schema": { + "$ref": "#/components/schemas/BucketDto" + } + }, + "application/json;odata.metadata=full;odata.streaming=true": { + "schema": { + "$ref": "#/components/schemas/BucketDto" + } + }, + "application/json;odata.metadata=full;odata.streaming=false": { + "schema": { + "$ref": "#/components/schemas/BucketDto" + } + }, + "application/json;odata.metadata=full": { + "schema": { + "$ref": "#/components/schemas/BucketDto" + } + }, + "application/json;odata.metadata=none;odata.streaming=true": { + "schema": { + "$ref": "#/components/schemas/BucketDto" + } + }, + "application/json;odata.metadata=none;odata.streaming=false": { + "schema": { + "$ref": "#/components/schemas/BucketDto" + } + }, + "application/json;odata.metadata=none": { + "schema": { + "$ref": "#/components/schemas/BucketDto" + } + }, + "application/json;odata.streaming=true": { + "schema": { + "$ref": "#/components/schemas/BucketDto" + } + }, + "application/json;odata.streaming=false": { + "schema": { + "$ref": "#/components/schemas/BucketDto" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/BucketDto" + } + }, + "application/json-patch+json": { + "schema": { + "$ref": "#/components/schemas/BucketDto" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/BucketDto" + } + } + }, + "required": false + }, + "responses": { + "201": { + "description": "Successfully created the bucket", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/BucketDto" + } + } + } + } + }, + "security": [ + { + "OAuth2": [] + } + ], + "x-codegen-request-body-name": "body" + } + }, + "/odata/Buckets({key})": { + "get": { + "tags": [ + "Buckets" + ], + "summary": "Gets a single Bucket.", + "description": "OAuth required scopes: OR.Administration or OR.Administration.Read.\r\n\r\nRequired permissions: Buckets.View.", + "operationId": "Buckets_GetById", + "parameters": [ + { + "name": "key", + "in": "path", + "required": true, + "schema": { + "type": "integer", + "format": "int64" + } + }, + { + "name": "$expand", + "in": "query", + "description": "Indicates the related entities to be represented inline. The maximum depth is 2.", + "schema": { + "type": "string" + } + }, + { + "name": "$select", + "in": "query", + "description": "Limits the properties returned in the result.", + "schema": { + "type": "string" + } + }, + { + "name": "X-UIPATH-OrganizationUnitId", + "in": "header", + "description": "Folder/OrganizationUnit Id", + "schema": { + "type": "integer", + "format": "int64" + } + } + ], + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/BucketDto" + } + } + } + } + }, + "security": [ + { + "OAuth2": [] + } + ] + }, + "put": { + "tags": [ + "Buckets" + ], + "summary": "Updates a bucket.", + "description": "OAuth required scopes: OR.Administration or OR.Administration.Write.\r\n\r\nRequired permissions: Buckets.Edit.", + "operationId": "Buckets_PutById", + "parameters": [ + { + "name": "key", + "in": "path", + "required": true, + "schema": { + "type": "integer", + "format": "int64" + } + }, + { + "name": "X-UIPATH-OrganizationUnitId", + "in": "header", + "description": "Folder/OrganizationUnit Id", + "schema": { + "type": "integer", + "format": "int64" + } + } + ], + "requestBody": { + "content": { + "application/json;odata.metadata=minimal;odata.streaming=true": { + "schema": { + "$ref": "#/components/schemas/BucketDto" + } + }, + "application/json;odata.metadata=minimal;odata.streaming=false": { + "schema": { + "$ref": "#/components/schemas/BucketDto" + } + }, + "application/json;odata.metadata=minimal": { + "schema": { + "$ref": "#/components/schemas/BucketDto" + } + }, + "application/json;odata.metadata=full;odata.streaming=true": { + "schema": { + "$ref": "#/components/schemas/BucketDto" + } + }, + "application/json;odata.metadata=full;odata.streaming=false": { + "schema": { + "$ref": "#/components/schemas/BucketDto" + } + }, + "application/json;odata.metadata=full": { + "schema": { + "$ref": "#/components/schemas/BucketDto" + } + }, + "application/json;odata.metadata=none;odata.streaming=true": { + "schema": { + "$ref": "#/components/schemas/BucketDto" + } + }, + "application/json;odata.metadata=none;odata.streaming=false": { + "schema": { + "$ref": "#/components/schemas/BucketDto" + } + }, + "application/json;odata.metadata=none": { + "schema": { + "$ref": "#/components/schemas/BucketDto" + } + }, + "application/json;odata.streaming=true": { + "schema": { + "$ref": "#/components/schemas/BucketDto" + } + }, + "application/json;odata.streaming=false": { + "schema": { + "$ref": "#/components/schemas/BucketDto" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/BucketDto" + } + }, + "application/json-patch+json": { + "schema": { + "$ref": "#/components/schemas/BucketDto" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/BucketDto" + } + } + }, + "required": false + }, + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/BucketDto" + } + } + } + } + }, + "security": [ + { + "OAuth2": [] + } + ], + "x-codegen-request-body-name": "body" + }, + "delete": { + "tags": [ + "Buckets" + ], + "summary": "Delete a bucket", + "description": "OAuth required scopes: OR.Administration or OR.Administration.Write.\r\n\r\nRequired permissions: Buckets.Delete.", + "operationId": "Buckets_DeleteById", + "parameters": [ + { + "name": "key", + "in": "path", + "required": true, + "schema": { + "type": "integer", + "format": "int64" + } + }, + { + "name": "X-UIPATH-OrganizationUnitId", + "in": "header", + "description": "Folder/OrganizationUnit Id", + "schema": { + "type": "integer", + "format": "int64" + } + } + ], + "responses": { + "204": { + "description": "Successfully deleted the bucket", + "content": {} + } + }, + "security": [ + { + "OAuth2": [] + } + ] + } + }, + "/odata/Buckets({key})/UiPath.Server.Configuration.OData.DeleteFile": { + "delete": { + "tags": [ + "Buckets" + ], + "summary": "Deletes a file.", + "description": "OAuth required scopes: OR.Administration or OR.Administration.Write.\r\n\r\nRequired permissions: Buckets.View and BlobFiles.Delete.", + "operationId": "Buckets_DeleteFileByKey", + "parameters": [ + { + "name": "key", + "in": "path", + "description": "The Bucket Id", + "required": true, + "schema": { + "type": "integer", + "format": "int64" + } + }, + { + "name": "path", + "in": "query", + "description": "The BlobFile full path", + "schema": { + "type": "string" + } + }, + { + "name": "X-UIPATH-OrganizationUnitId", + "in": "header", + "description": "Folder/OrganizationUnit Id", + "schema": { + "type": "integer", + "format": "int64" + } + } + ], + "responses": { + "204": { + "description": "No Content", + "content": {} + } + }, + "security": [ + { + "OAuth2": [] + } + ] + } + }, + "/odata/Buckets({key})/UiPath.Server.Configuration.OData.GetDirectories": { + "get": { + "tags": [ + "Buckets" + ], + "summary": "Gets the child directories in a directory.", + "description": "OAuth required scopes: OR.Administration or OR.Administration.Read.\r\n\r\nRequired permissions: Buckets.View and BlobFiles.View.", + "operationId": "Buckets_GetDirectoriesByKey", + "parameters": [ + { + "name": "key", + "in": "path", + "description": "The Bucket Id", + "required": true, + "schema": { + "type": "integer", + "format": "int64" + } + }, + { + "name": "directory", + "in": "query", + "description": "The directory path", + "schema": { + "type": "string" + } + }, + { + "name": "fileNameGlob", + "in": "query", + "description": "Directory listing filter", + "schema": { + "type": "string" + } + }, + { + "name": "$expand", + "in": "query", + "description": "Indicates the related entities to be represented inline. The maximum depth is 2.", + "schema": { + "type": "string" + } + }, + { + "name": "$filter", + "in": "query", + "description": "Restricts the set of items returned. The maximum number of expressions is 100.", + "schema": { + "type": "string" + } + }, + { + "name": "$select", + "in": "query", + "description": "Limits the properties returned in the result.", + "schema": { + "type": "string" + } + }, + { + "name": "$orderby", + "in": "query", + "description": "Specifies the order in which items are returned. The maximum number of expressions is 5.", + "schema": { + "type": "string" + } + }, + { + "name": "$top", + "in": "query", + "description": "Number of directories to return", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "$skip", + "in": "query", + "description": "Number of directories to skip", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "$count", + "in": "query", + "description": "Indicates whether the total count of items within a collection are returned in the result.", + "schema": { + "type": "boolean" + } + }, + { + "name": "X-UIPATH-OrganizationUnitId", + "in": "header", + "description": "Folder/OrganizationUnit Id", + "schema": { + "type": "integer", + "format": "int64" + } + } + ], + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ODataValueOfIEnumerableOfBlobFileDto" + } + } + } + } + }, + "security": [ + { + "OAuth2": [] + } + ] + } + }, + "/odata/Buckets({key})/UiPath.Server.Configuration.OData.GetFile": { + "get": { + "tags": [ + "Buckets" + ], + "summary": "Gets a file metadata.", + "description": "OAuth required scopes: OR.Administration or OR.Administration.Read.\r\n\r\nRequired permissions: Buckets.View and BlobFiles.View.", + "operationId": "Buckets_GetFileByKey", + "parameters": [ + { + "name": "key", + "in": "path", + "description": "The Bucket Id", + "required": true, + "schema": { + "type": "integer", + "format": "int64" + } + }, + { + "name": "path", + "in": "query", + "description": "The BlobFile full path", + "schema": { + "type": "string" + } + }, + { + "name": "$expand", + "in": "query", + "description": "Indicates the related entities to be represented inline. The maximum depth is 2.", + "schema": { + "type": "string" + } + }, + { + "name": "$select", + "in": "query", + "description": "Limits the properties returned in the result.", + "schema": { + "type": "string" + } + }, + { + "name": "X-UIPATH-OrganizationUnitId", + "in": "header", + "description": "Folder/OrganizationUnit Id", + "schema": { + "type": "integer", + "format": "int64" + } + } + ], + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/BlobFileDto" + } + } + } + } + }, + "security": [ + { + "OAuth2": [] + } + ] + } + }, + "/odata/Buckets({key})/UiPath.Server.Configuration.OData.GetFiles": { + "get": { + "tags": [ + "Buckets" + ], + "summary": "Gets the files in a directory.\r\nOptionally returns all files in all child directories (recursive).", + "description": "OAuth required scopes: OR.Administration or OR.Administration.Read.\r\n\r\nRequired permissions: Buckets.View and BlobFiles.View.", + "operationId": "Buckets_GetFilesByKey", + "parameters": [ + { + "name": "key", + "in": "path", + "description": "The Bucket Id", + "required": true, + "schema": { + "type": "integer", + "format": "int64" + } + }, + { + "name": "directory", + "in": "query", + "description": "The directory path", + "schema": { + "type": "string" + } + }, + { + "name": "recursive", + "in": "query", + "description": "Recurse subdirectories (flat view)", + "schema": { + "type": "boolean", + "default": false + } + }, + { + "name": "fileNameGlob", + "in": "query", + "description": "Files listing filter", + "schema": { + "type": "string" + } + }, + { + "name": "$expand", + "in": "query", + "description": "Indicates the related entities to be represented inline. The maximum depth is 2.", + "schema": { + "type": "string" + } + }, + { + "name": "$filter", + "in": "query", + "description": "Restricts the set of items returned. The maximum number of expressions is 100.", + "schema": { + "type": "string" + } + }, + { + "name": "$select", + "in": "query", + "description": "Limits the properties returned in the result.", + "schema": { + "type": "string" + } + }, + { + "name": "$orderby", + "in": "query", + "description": "Specifies the order in which items are returned. The maximum number of expressions is 5.", + "schema": { + "type": "string" + } + }, + { + "name": "$top", + "in": "query", + "description": "Number of files to return", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "$skip", + "in": "query", + "description": "Number of files to skip", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "$count", + "in": "query", + "description": "Indicates whether the total count of items within a collection are returned in the result.", + "schema": { + "type": "boolean" + } + }, + { + "name": "X-UIPATH-OrganizationUnitId", + "in": "header", + "description": "Folder/OrganizationUnit Id", + "schema": { + "type": "integer", + "format": "int64" + } + } + ], + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ODataValueOfIEnumerableOfBlobFileDto" + } + } + } + } + }, + "security": [ + { + "OAuth2": [] + } + ] + } + }, + "/odata/Buckets({key})/UiPath.Server.Configuration.OData.GetReadUri": { + "get": { + "tags": [ + "Buckets" + ], + "summary": "Gets a direct download URL for BlobFile.", + "description": "OAuth required scopes: OR.Administration or OR.Administration.Read.\r\n\r\nRequired permissions: Buckets.View and BlobFiles.View.", + "operationId": "Buckets_GetReadUriByKey", + "parameters": [ + { + "name": "key", + "in": "path", + "description": "The Bucket Id", + "required": true, + "schema": { + "type": "integer", + "format": "int64" + } + }, + { + "name": "path", + "in": "query", + "description": "The BlobFile full path", + "schema": { + "type": "string" + } + }, + { + "name": "expiryInMinutes", + "in": "query", + "description": "URL expiration time", + "schema": { + "type": "integer", + "format": "int32", + "default": 0 + } + }, + { + "name": "$expand", + "in": "query", + "description": "Indicates the related entities to be represented inline. The maximum depth is 2.", + "schema": { + "type": "string" + } + }, + { + "name": "$select", + "in": "query", + "description": "Limits the properties returned in the result.", + "schema": { + "type": "string" + } + }, + { + "name": "X-UIPATH-OrganizationUnitId", + "in": "header", + "description": "Folder/OrganizationUnit Id", + "schema": { + "type": "integer", + "format": "int64" + } + } + ], + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/BlobFileAccessDto" + } + } + } + } + }, + "security": [ + { + "OAuth2": [] + } + ] + } + }, + "/odata/Buckets({key})/UiPath.Server.Configuration.OData.GetWriteUri": { + "get": { + "tags": [ + "Buckets" + ], + "summary": "Gets a direct upload URL for BlobFile.", + "description": "OAuth required scopes: OR.Administration or OR.Administration.Read.\r\n\r\nRequired permissions: Buckets.View and BlobFiles.Create.", + "operationId": "Buckets_GetWriteUriByKey", + "parameters": [ + { + "name": "key", + "in": "path", + "description": "The Bucket Id", + "required": true, + "schema": { + "type": "integer", + "format": "int64" + } + }, + { + "name": "path", + "in": "query", + "description": "The BlobFile full path", + "schema": { + "type": "string" + } + }, + { + "name": "expiryInMinutes", + "in": "query", + "description": "URL Expiration time", + "schema": { + "type": "integer", + "format": "int32", + "default": 0 + } + }, + { + "name": "contentType", + "in": "query", + "description": "ContentType for S3 access policy", + "schema": { + "type": "string" + } + }, + { + "name": "$expand", + "in": "query", + "description": "Indicates the related entities to be represented inline. The maximum depth is 2.", + "schema": { + "type": "string" + } + }, + { + "name": "$select", + "in": "query", + "description": "Limits the properties returned in the result.", + "schema": { + "type": "string" + } + }, + { + "name": "X-UIPATH-OrganizationUnitId", + "in": "header", + "description": "Folder/OrganizationUnit Id", + "schema": { + "type": "integer", + "format": "int64" + } + } + ], + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/BlobFileAccessDto" + } + } + } + } + }, + "security": [ + { + "OAuth2": [] + } + ] + } + }, + "/odata/Buckets/UiPath.Server.Configuration.OData.GetBucketsAcrossFolders": { + "get": { + "tags": [ + "Buckets" + ], + "summary": "Get the buckets from all the folders in which the current user has the Buckets.View permission, except the one specified.", + "description": "OAuth required scopes: OR.Administration or OR.Administration.Read.\r\n\r\nRequires authentication.", + "operationId": "Buckets_GetBucketsAcrossFolders", + "parameters": [ + { + "name": "excludeFolderId", + "in": "query", + "schema": { + "type": "integer", + "format": "int64" + } + }, + { + "name": "$expand", + "in": "query", + "description": "Indicates the related entities to be represented inline. The maximum depth is 2.", + "schema": { + "type": "string" + } + }, + { + "name": "$filter", + "in": "query", + "description": "Restricts the set of items returned. The maximum number of expressions is 100.", + "schema": { + "type": "string" + } + }, + { + "name": "$select", + "in": "query", + "description": "Limits the properties returned in the result.", + "schema": { + "type": "string" + } + }, + { + "name": "$orderby", + "in": "query", + "description": "Specifies the order in which items are returned. The maximum number of expressions is 5.", + "schema": { + "type": "string" + } + }, + { + "name": "$top", + "in": "query", + "description": "Limits the number of items returned from a collection. The maximum value is 1000.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "$skip", + "in": "query", + "description": "Excludes the specified number of items of the queried collection from the result.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "$count", + "in": "query", + "description": "Indicates whether the total count of items within a collection are returned in the result.", + "schema": { + "type": "boolean" + } + }, + { + "name": "X-UIPATH-OrganizationUnitId", + "in": "header", + "description": "Folder/OrganizationUnit Id", + "schema": { + "type": "integer", + "format": "int64" + } + } + ], + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ODataValueOfIEnumerableOfBucketDto" + } + } + } + } + }, + "security": [ + { + "OAuth2": [] + } + ] + } + }, + "/odata/Buckets/UiPath.Server.Configuration.OData.GetFoldersForBucket(id={id})": { + "get": { + "tags": [ + "Buckets" + ], + "summary": "Get all accessible folders where the bucket is shared, and the total count of folders where it is shared (including unaccessible folders).", + "description": "OAuth required scopes: OR.Administration or OR.Administration.Read.\r\n\r\nRequires authentication.", + "operationId": "Buckets_GetFoldersForBucketById", + "parameters": [ + { + "name": "id", + "in": "path", + "required": true, + "schema": { + "type": "integer", + "format": "int64" + } + }, + { + "name": "$expand", + "in": "query", + "description": "Indicates the related entities to be represented inline. The maximum depth is 2.", + "schema": { + "type": "string" + } + }, + { + "name": "$select", + "in": "query", + "description": "Limits the properties returned in the result.", + "schema": { + "type": "string" + } + }, + { + "name": "X-UIPATH-OrganizationUnitId", + "in": "header", + "description": "Folder/OrganizationUnit Id", + "schema": { + "type": "integer", + "format": "int64" + } + } + ], + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/AccessibleFoldersDto" + } + } + } + } + }, + "security": [ + { + "OAuth2": [] + } + ] + } + }, + "/odata/Buckets/UiPath.Server.Configuration.OData.ShareToFolders": { + "post": { + "tags": [ + "Buckets" + ], + "summary": "Adds the buckets to the folders specified in 'ToAddFolderIds'. Removes the buckets from the folders specified in 'ToRemoveFolderIds'.", + "description": "OAuth required scopes: OR.Administration or OR.Administration.Write.\r\n\r\nRequires authentication.", + "operationId": "Buckets_ShareToFolders", + "parameters": [ + { + "name": "X-UIPATH-OrganizationUnitId", + "in": "header", + "description": "Folder/OrganizationUnit Id", + "schema": { + "type": "integer", + "format": "int64" + } + } + ], + "requestBody": { + "description": "Object containing the ids of the buckets and the ids of the folders where they should be shared.", + "content": { + "application/json;odata.metadata=minimal;odata.streaming=true": { + "schema": { + "$ref": "#/components/schemas/BucketFoldersShareDto" + } + }, + "application/json;odata.metadata=minimal;odata.streaming=false": { + "schema": { + "$ref": "#/components/schemas/BucketFoldersShareDto" + } + }, + "application/json;odata.metadata=minimal": { + "schema": { + "$ref": "#/components/schemas/BucketFoldersShareDto" + } + }, + "application/json;odata.metadata=full;odata.streaming=true": { + "schema": { + "$ref": "#/components/schemas/BucketFoldersShareDto" + } + }, + "application/json;odata.metadata=full;odata.streaming=false": { + "schema": { + "$ref": "#/components/schemas/BucketFoldersShareDto" + } + }, + "application/json;odata.metadata=full": { + "schema": { + "$ref": "#/components/schemas/BucketFoldersShareDto" + } + }, + "application/json;odata.metadata=none;odata.streaming=true": { + "schema": { + "$ref": "#/components/schemas/BucketFoldersShareDto" + } + }, + "application/json;odata.metadata=none;odata.streaming=false": { + "schema": { + "$ref": "#/components/schemas/BucketFoldersShareDto" + } + }, + "application/json;odata.metadata=none": { + "schema": { + "$ref": "#/components/schemas/BucketFoldersShareDto" + } + }, + "application/json;odata.streaming=true": { + "schema": { + "$ref": "#/components/schemas/BucketFoldersShareDto" + } + }, + "application/json;odata.streaming=false": { + "schema": { + "$ref": "#/components/schemas/BucketFoldersShareDto" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/BucketFoldersShareDto" + } + }, + "application/json-patch+json": { + "schema": { + "$ref": "#/components/schemas/BucketFoldersShareDto" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/BucketFoldersShareDto" + } + } + }, + "required": false + }, + "responses": { + "204": { + "description": "No Content", + "content": {} + }, + "404": { + "description": "One of the specified entities does not exist.", + "content": {} + } + }, + "security": [ + { + "OAuth2": [] + } + ], + "x-codegen-request-body-name": "body" + } + }, + "/odata/Calendars": { + "get": { + "tags": [ + "Calendars" + ], + "summary": "Gets calendars for current tenant.", + "description": "OAuth required scopes: OR.Settings or OR.Settings.Read.\r\n\r\nRequires authentication.", + "operationId": "Calendars_Get", + "parameters": [ + { + "name": "$expand", + "in": "query", + "description": "Indicates the related entities to be represented inline. The maximum depth is 2.", + "schema": { + "type": "string" + } + }, + { + "name": "$filter", + "in": "query", + "description": "Restricts the set of items returned. The maximum number of expressions is 100. The allowed functions are: allfunctions.", + "schema": { + "type": "string" + } + }, + { + "name": "$select", + "in": "query", + "description": "Limits the properties returned in the result.", + "schema": { + "type": "string" + } + }, + { + "name": "$orderby", + "in": "query", + "description": "Specifies the order in which items are returned. The maximum number of expressions is 5. The allowed properties are: Name, Id.", + "schema": { + "type": "string" + } + }, + { + "name": "$top", + "in": "query", + "description": "Limits the number of items returned from a collection.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "$skip", + "in": "query", + "description": "Excludes the specified number of items of the queried collection from the result.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "$count", + "in": "query", + "description": "Indicates whether the total count of items within a collection are returned in the result.", + "schema": { + "type": "boolean" + } + } + ], + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ODataValueOfIEnumerableOfExtendedCalendarDto" + } + } + } + } + }, + "security": [ + { + "OAuth2": [] + } + ] + }, + "post": { + "tags": [ + "Calendars" + ], + "summary": "Creates a new calendar.", + "description": "OAuth required scopes: OR.Settings or OR.Settings.Write.\r\n\r\nRequired permissions: (Settings.Create).", + "operationId": "Calendars_Post", + "requestBody": { + "content": { + "application/json;odata.metadata=minimal;odata.streaming=true": { + "schema": { + "$ref": "#/components/schemas/ExtendedCalendarDto" + } + }, + "application/json;odata.metadata=minimal;odata.streaming=false": { + "schema": { + "$ref": "#/components/schemas/ExtendedCalendarDto" + } + }, + "application/json;odata.metadata=minimal": { + "schema": { + "$ref": "#/components/schemas/ExtendedCalendarDto" + } + }, + "application/json;odata.metadata=full;odata.streaming=true": { + "schema": { + "$ref": "#/components/schemas/ExtendedCalendarDto" + } + }, + "application/json;odata.metadata=full;odata.streaming=false": { + "schema": { + "$ref": "#/components/schemas/ExtendedCalendarDto" + } + }, + "application/json;odata.metadata=full": { + "schema": { + "$ref": "#/components/schemas/ExtendedCalendarDto" + } + }, + "application/json;odata.metadata=none;odata.streaming=true": { + "schema": { + "$ref": "#/components/schemas/ExtendedCalendarDto" + } + }, + "application/json;odata.metadata=none;odata.streaming=false": { + "schema": { + "$ref": "#/components/schemas/ExtendedCalendarDto" + } + }, + "application/json;odata.metadata=none": { + "schema": { + "$ref": "#/components/schemas/ExtendedCalendarDto" + } + }, + "application/json;odata.streaming=true": { + "schema": { + "$ref": "#/components/schemas/ExtendedCalendarDto" + } + }, + "application/json;odata.streaming=false": { + "schema": { + "$ref": "#/components/schemas/ExtendedCalendarDto" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/ExtendedCalendarDto" + } + }, + "application/json-patch+json": { + "schema": { + "$ref": "#/components/schemas/ExtendedCalendarDto" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/ExtendedCalendarDto" + } + } + }, + "required": false + }, + "responses": { + "201": { + "description": "Created", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ExtendedCalendarDto" + } + } + } + } + }, + "security": [ + { + "OAuth2": [] + } + ], + "x-codegen-request-body-name": "body" + } + }, + "/odata/Calendars({key})": { + "get": { + "tags": [ + "Calendars" + ], + "summary": "Gets calendar based on its id.", + "description": "OAuth required scopes: OR.Settings or OR.Settings.Read.\r\n\r\nRequires authentication.", + "operationId": "Calendars_GetById", + "parameters": [ + { + "name": "key", + "in": "path", + "required": true, + "schema": { + "type": "integer", + "format": "int64" + } + }, + { + "name": "$expand", + "in": "query", + "description": "Indicates the related entities to be represented inline. The maximum depth is 2.", + "schema": { + "type": "string" + } + }, + { + "name": "$select", + "in": "query", + "description": "Limits the properties returned in the result.", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ExtendedCalendarDto" + } + } + } + } + }, + "security": [ + { + "OAuth2": [] + } + ] + }, + "put": { + "tags": [ + "Calendars" + ], + "summary": "Edits a calendar.", + "description": "OAuth required scopes: OR.Settings or OR.Settings.Write.\r\n\r\nRequired permissions: (Settings.Edit).", + "operationId": "Calendars_PutById", + "parameters": [ + { + "name": "key", + "in": "path", + "required": true, + "schema": { + "type": "integer", + "format": "int64" + } + } + ], + "requestBody": { + "content": { + "application/json;odata.metadata=minimal;odata.streaming=true": { + "schema": { + "$ref": "#/components/schemas/ExtendedCalendarDto" + } + }, + "application/json;odata.metadata=minimal;odata.streaming=false": { + "schema": { + "$ref": "#/components/schemas/ExtendedCalendarDto" + } + }, + "application/json;odata.metadata=minimal": { + "schema": { + "$ref": "#/components/schemas/ExtendedCalendarDto" + } + }, + "application/json;odata.metadata=full;odata.streaming=true": { + "schema": { + "$ref": "#/components/schemas/ExtendedCalendarDto" + } + }, + "application/json;odata.metadata=full;odata.streaming=false": { + "schema": { + "$ref": "#/components/schemas/ExtendedCalendarDto" + } + }, + "application/json;odata.metadata=full": { + "schema": { + "$ref": "#/components/schemas/ExtendedCalendarDto" + } + }, + "application/json;odata.metadata=none;odata.streaming=true": { + "schema": { + "$ref": "#/components/schemas/ExtendedCalendarDto" + } + }, + "application/json;odata.metadata=none;odata.streaming=false": { + "schema": { + "$ref": "#/components/schemas/ExtendedCalendarDto" + } + }, + "application/json;odata.metadata=none": { + "schema": { + "$ref": "#/components/schemas/ExtendedCalendarDto" + } + }, + "application/json;odata.streaming=true": { + "schema": { + "$ref": "#/components/schemas/ExtendedCalendarDto" + } + }, + "application/json;odata.streaming=false": { + "schema": { + "$ref": "#/components/schemas/ExtendedCalendarDto" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/ExtendedCalendarDto" + } + }, + "application/json-patch+json": { + "schema": { + "$ref": "#/components/schemas/ExtendedCalendarDto" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/ExtendedCalendarDto" + } + } + }, + "required": false + }, + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ExtendedCalendarDto" + } + } + } + } + }, + "security": [ + { + "OAuth2": [] + } + ], + "x-codegen-request-body-name": "body" + }, + "delete": { + "tags": [ + "Calendars" + ], + "summary": "Deletes a calendar.", + "description": "OAuth required scopes: OR.Settings or OR.Settings.Write.\r\n\r\nRequired permissions: (Settings.Delete).", + "operationId": "Calendars_DeleteById", + "parameters": [ + { + "name": "key", + "in": "path", + "required": true, + "schema": { + "type": "integer", + "format": "int64" + } + } + ], + "responses": { + "204": { + "description": "No Content", + "content": {} + } + }, + "security": [ + { + "OAuth2": [] + } + ] + } + }, + "/odata/Calendars/UiPath.Server.Configuration.OData.CalendarExists": { + "post": { + "tags": [ + "Calendars" + ], + "summary": "Validate calendar name, and check if it already exists.", + "description": "OAuth required scopes: OR.Settings or OR.Settings.Write.\r\n\r\nRequired permissions: (Settings.Edit).", + "operationId": "Calendars_CalendarExists", + "parameters": [ + { + "name": "$expand", + "in": "query", + "description": "Indicates the related entities to be represented inline. The maximum depth is 2.", + "schema": { + "type": "string" + } + }, + { + "name": "$select", + "in": "query", + "description": "Limits the properties returned in the result.", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json;odata.metadata=minimal;odata.streaming=true": { + "schema": { + "$ref": "#/components/schemas/CalendarExistsRequest" + } + }, + "application/json;odata.metadata=minimal;odata.streaming=false": { + "schema": { + "$ref": "#/components/schemas/CalendarExistsRequest" + } + }, + "application/json;odata.metadata=minimal": { + "schema": { + "$ref": "#/components/schemas/CalendarExistsRequest" + } + }, + "application/json;odata.metadata=full;odata.streaming=true": { + "schema": { + "$ref": "#/components/schemas/CalendarExistsRequest" + } + }, + "application/json;odata.metadata=full;odata.streaming=false": { + "schema": { + "$ref": "#/components/schemas/CalendarExistsRequest" + } + }, + "application/json;odata.metadata=full": { + "schema": { + "$ref": "#/components/schemas/CalendarExistsRequest" + } + }, + "application/json;odata.metadata=none;odata.streaming=true": { + "schema": { + "$ref": "#/components/schemas/CalendarExistsRequest" + } + }, + "application/json;odata.metadata=none;odata.streaming=false": { + "schema": { + "$ref": "#/components/schemas/CalendarExistsRequest" + } + }, + "application/json;odata.metadata=none": { + "schema": { + "$ref": "#/components/schemas/CalendarExistsRequest" + } + }, + "application/json;odata.streaming=true": { + "schema": { + "$ref": "#/components/schemas/CalendarExistsRequest" + } + }, + "application/json;odata.streaming=false": { + "schema": { + "$ref": "#/components/schemas/CalendarExistsRequest" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/CalendarExistsRequest" + } + }, + "application/json-patch+json": { + "schema": { + "$ref": "#/components/schemas/CalendarExistsRequest" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/CalendarExistsRequest" + } + } + }, + "required": false + }, + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ODataValueOfBoolean" + } + } + } + } + }, + "security": [ + { + "OAuth2": [] + } + ], + "x-codegen-request-body-name": "body" + } + }, + "/odata/CredentialStores": { + "get": { + "tags": [ + "CredentialStores" + ], + "summary": "Gets all Credential Stores.", + "description": "OAuth required scopes: OR.Settings or OR.Settings.Read.\r\n\r\nRequired permissions: Settings.View or Assets.Create or Assets.Edit or Assets.View or Robots.Create or Robots.Edit or Robots.View or Buckets.Create or Buckets.Edit.", + "operationId": "CredentialStores_Get", + "parameters": [ + { + "name": "$expand", + "in": "query", + "description": "Indicates the related entities to be represented inline. The maximum depth is 2.", + "schema": { + "type": "string" + } + }, + { + "name": "$filter", + "in": "query", + "description": "Restricts the set of items returned. The maximum number of expressions is 100.", + "schema": { + "type": "string" + } + }, + { + "name": "$select", + "in": "query", + "description": "Limits the properties returned in the result.", + "schema": { + "type": "string" + } + }, + { + "name": "$orderby", + "in": "query", + "description": "Specifies the order in which items are returned. The maximum number of expressions is 5.", + "schema": { + "type": "string" + } + }, + { + "name": "$top", + "in": "query", + "description": "Limits the number of items returned from a collection. The maximum value is 1000.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "$skip", + "in": "query", + "description": "Excludes the specified number of items of the queried collection from the result.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "$count", + "in": "query", + "description": "Indicates whether the total count of items within a collection are returned in the result.", + "schema": { + "type": "boolean" + } + } + ], + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ODataValueOfIEnumerableOfCredentialStoreDto" + } + } + } + } + }, + "security": [ + { + "OAuth2": [] + } + ] + }, + "post": { + "tags": [ + "CredentialStores" + ], + "summary": "Creates a new Credential Store.", + "description": "OAuth required scopes: OR.Settings or OR.Settings.Write.\r\n\r\nRequired permissions: Settings.Create.", + "operationId": "CredentialStores_Post", + "requestBody": { + "content": { + "application/json;odata.metadata=minimal;odata.streaming=true": { + "schema": { + "$ref": "#/components/schemas/CredentialStoreDto" + } + }, + "application/json;odata.metadata=minimal;odata.streaming=false": { + "schema": { + "$ref": "#/components/schemas/CredentialStoreDto" + } + }, + "application/json;odata.metadata=minimal": { + "schema": { + "$ref": "#/components/schemas/CredentialStoreDto" + } + }, + "application/json;odata.metadata=full;odata.streaming=true": { + "schema": { + "$ref": "#/components/schemas/CredentialStoreDto" + } + }, + "application/json;odata.metadata=full;odata.streaming=false": { + "schema": { + "$ref": "#/components/schemas/CredentialStoreDto" + } + }, + "application/json;odata.metadata=full": { + "schema": { + "$ref": "#/components/schemas/CredentialStoreDto" + } + }, + "application/json;odata.metadata=none;odata.streaming=true": { + "schema": { + "$ref": "#/components/schemas/CredentialStoreDto" + } + }, + "application/json;odata.metadata=none;odata.streaming=false": { + "schema": { + "$ref": "#/components/schemas/CredentialStoreDto" + } + }, + "application/json;odata.metadata=none": { + "schema": { + "$ref": "#/components/schemas/CredentialStoreDto" + } + }, + "application/json;odata.streaming=true": { + "schema": { + "$ref": "#/components/schemas/CredentialStoreDto" + } + }, + "application/json;odata.streaming=false": { + "schema": { + "$ref": "#/components/schemas/CredentialStoreDto" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/CredentialStoreDto" + } + }, + "application/json-patch+json": { + "schema": { + "$ref": "#/components/schemas/CredentialStoreDto" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/CredentialStoreDto" + } + } + }, + "required": false + }, + "responses": { + "201": { + "description": "Created", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/CredentialStoreDto" + } + } + } + } + }, + "security": [ + { + "OAuth2": [] + } + ], + "x-codegen-request-body-name": "body" + } + }, + "/odata/CredentialStores({key})": { + "get": { + "tags": [ + "CredentialStores" + ], + "summary": "Gets a single Credential Store by its key.", + "description": "OAuth required scopes: OR.Settings or OR.Settings.Read.\r\n\r\nRequired permissions: Settings.View.", + "operationId": "CredentialStores_GetById", + "parameters": [ + { + "name": "key", + "in": "path", + "required": true, + "schema": { + "type": "integer", + "format": "int64" + } + }, + { + "name": "$expand", + "in": "query", + "description": "Indicates the related entities to be represented inline. The maximum depth is 2.", + "schema": { + "type": "string" + } + }, + { + "name": "$select", + "in": "query", + "description": "Limits the properties returned in the result.", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/CredentialStoreDto" + } + } + } + } + }, + "security": [ + { + "OAuth2": [] + } + ] + }, + "put": { + "tags": [ + "CredentialStores" + ], + "summary": "Updates a Credential Store.", + "description": "OAuth required scopes: OR.Settings or OR.Settings.Write.\r\n\r\nRequired permissions: Settings.Edit.", + "operationId": "CredentialStores_PutById", + "parameters": [ + { + "name": "key", + "in": "path", + "required": true, + "schema": { + "type": "integer", + "format": "int64" + } + } + ], + "requestBody": { + "content": { + "application/json;odata.metadata=minimal;odata.streaming=true": { + "schema": { + "$ref": "#/components/schemas/CredentialStoreDto" + } + }, + "application/json;odata.metadata=minimal;odata.streaming=false": { + "schema": { + "$ref": "#/components/schemas/CredentialStoreDto" + } + }, + "application/json;odata.metadata=minimal": { + "schema": { + "$ref": "#/components/schemas/CredentialStoreDto" + } + }, + "application/json;odata.metadata=full;odata.streaming=true": { + "schema": { + "$ref": "#/components/schemas/CredentialStoreDto" + } + }, + "application/json;odata.metadata=full;odata.streaming=false": { + "schema": { + "$ref": "#/components/schemas/CredentialStoreDto" + } + }, + "application/json;odata.metadata=full": { + "schema": { + "$ref": "#/components/schemas/CredentialStoreDto" + } + }, + "application/json;odata.metadata=none;odata.streaming=true": { + "schema": { + "$ref": "#/components/schemas/CredentialStoreDto" + } + }, + "application/json;odata.metadata=none;odata.streaming=false": { + "schema": { + "$ref": "#/components/schemas/CredentialStoreDto" + } + }, + "application/json;odata.metadata=none": { + "schema": { + "$ref": "#/components/schemas/CredentialStoreDto" + } + }, + "application/json;odata.streaming=true": { + "schema": { + "$ref": "#/components/schemas/CredentialStoreDto" + } + }, + "application/json;odata.streaming=false": { + "schema": { + "$ref": "#/components/schemas/CredentialStoreDto" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/CredentialStoreDto" + } + }, + "application/json-patch+json": { + "schema": { + "$ref": "#/components/schemas/CredentialStoreDto" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/CredentialStoreDto" + } + } + }, + "required": false + }, + "responses": { + "200": { + "description": "Success", + "content": {} + } + }, + "security": [ + { + "OAuth2": [] + } + ], + "x-codegen-request-body-name": "body" + }, + "delete": { + "tags": [ + "CredentialStores" + ], + "summary": "Deletes a Credential Store.", + "description": "OAuth required scopes: OR.Settings or OR.Settings.Write.\r\n\r\nRequired permissions: Settings.Delete.", + "operationId": "CredentialStores_DeleteById", + "parameters": [ + { + "name": "key", + "in": "path", + "required": true, + "schema": { + "type": "integer", + "format": "int64" + } + }, + { + "name": "forceDelete", + "in": "query", + "schema": { + "type": "boolean" + } + } + ], + "responses": { + "204": { + "description": "No Content", + "content": {} + } + }, + "security": [ + { + "OAuth2": [] + } + ] + } + }, + "/odata/CredentialStores({key})/UiPath.Server.Configuration.OData.SetDefaultStoreForResourceType": { + "post": { + "tags": [ + "CredentialStores" + ], + "summary": "Sets a credential store as the default for the given credential type.", + "description": "OAuth required scopes: OR.Settings or OR.Settings.Write.\r\n\r\nRequired permissions: Settings.Edit.", + "operationId": "CredentialStores_SetDefaultStoreForResourceTypeById", + "parameters": [ + { + "name": "key", + "in": "path", + "description": "Provides the ID of the credential store to set as default.", + "required": true, + "schema": { + "type": "integer", + "format": "int64" + } + } + ], + "requestBody": { + "description": "Provides the resourceType that indicates\r\n the resource type for which the stores becomes default.", + "content": { + "application/json;odata.metadata=minimal;odata.streaming=true": { + "schema": { + "$ref": "#/components/schemas/CredentialSetDefaultStoreForResourceTypeRequest" + } + }, + "application/json;odata.metadata=minimal;odata.streaming=false": { + "schema": { + "$ref": "#/components/schemas/CredentialSetDefaultStoreForResourceTypeRequest" + } + }, + "application/json;odata.metadata=minimal": { + "schema": { + "$ref": "#/components/schemas/CredentialSetDefaultStoreForResourceTypeRequest" + } + }, + "application/json;odata.metadata=full;odata.streaming=true": { + "schema": { + "$ref": "#/components/schemas/CredentialSetDefaultStoreForResourceTypeRequest" + } + }, + "application/json;odata.metadata=full;odata.streaming=false": { + "schema": { + "$ref": "#/components/schemas/CredentialSetDefaultStoreForResourceTypeRequest" + } + }, + "application/json;odata.metadata=full": { + "schema": { + "$ref": "#/components/schemas/CredentialSetDefaultStoreForResourceTypeRequest" + } + }, + "application/json;odata.metadata=none;odata.streaming=true": { + "schema": { + "$ref": "#/components/schemas/CredentialSetDefaultStoreForResourceTypeRequest" + } + }, + "application/json;odata.metadata=none;odata.streaming=false": { + "schema": { + "$ref": "#/components/schemas/CredentialSetDefaultStoreForResourceTypeRequest" + } + }, + "application/json;odata.metadata=none": { + "schema": { + "$ref": "#/components/schemas/CredentialSetDefaultStoreForResourceTypeRequest" + } + }, + "application/json;odata.streaming=true": { + "schema": { + "$ref": "#/components/schemas/CredentialSetDefaultStoreForResourceTypeRequest" + } + }, + "application/json;odata.streaming=false": { + "schema": { + "$ref": "#/components/schemas/CredentialSetDefaultStoreForResourceTypeRequest" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/CredentialSetDefaultStoreForResourceTypeRequest" + } + }, + "application/json-patch+json": { + "schema": { + "$ref": "#/components/schemas/CredentialSetDefaultStoreForResourceTypeRequest" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/CredentialSetDefaultStoreForResourceTypeRequest" + } + } + }, + "required": false + }, + "responses": { + "200": { + "description": "Success", + "content": {} + } + }, + "security": [ + { + "OAuth2": [] + } + ], + "x-codegen-request-body-name": "body" + } + }, + "/odata/CredentialStores/UiPath.Server.Configuration.OData.GetAvailableCredentialStoreTypes": { + "get": { + "tags": [ + "CredentialStores" + ], + "summary": "Gets available Credential Store types.", + "description": "OAuth required scopes: OR.Settings or OR.Settings.Read.\r\n\r\nRequired permissions: Settings.View.", + "operationId": "CredentialStores_GetAvailableCredentialStoreTypes", + "parameters": [ + { + "name": "proxyId", + "in": "query", + "schema": { + "type": "integer", + "format": "int64" + } + }, + { + "name": "$expand", + "in": "query", + "description": "Indicates the related entities to be represented inline. The maximum depth is 2.", + "schema": { + "type": "string" + } + }, + { + "name": "$filter", + "in": "query", + "description": "Restricts the set of items returned. The maximum number of expressions is 100.", + "schema": { + "type": "string" + } + }, + { + "name": "$select", + "in": "query", + "description": "Limits the properties returned in the result.", + "schema": { + "type": "string" + } + }, + { + "name": "$orderby", + "in": "query", + "description": "Specifies the order in which items are returned. The maximum number of expressions is 5.", + "schema": { + "type": "string" + } + }, + { + "name": "$count", + "in": "query", + "description": "Indicates whether the total count of items within a collection are returned in the result.", + "schema": { + "type": "boolean" + } + } + ], + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ODataValueOfIEnumerableOfString" + } + } + } + } + }, + "security": [ + { + "OAuth2": [] + } + ] + } + }, + "/odata/CredentialStores/UiPath.Server.Configuration.OData.GetDefaultStoreForResourceType(resourceType='{resourceType}')": { + "get": { + "tags": [ + "CredentialStores" + ], + "summary": "Get the default credential store for the given resource type.", + "description": "OAuth required scopes: OR.Settings or OR.Settings.Read.\r\n\r\nRequired permissions: Settings.View or Assets.Create or Assets.Edit or Assets.View or Robots.Create or Robots.Edit or Robots.View or Buckets.Create or Buckets.Edit.", + "operationId": "CredentialStores_GetDefaultStoreForResourceTypeByResourcetype", + "parameters": [ + { + "name": "resourceType", + "in": "path", + "description": "Provides the resource type for which to retrieve the default.", + "required": true, + "schema": { + "type": "string", + "enum": [ + "AssetCredential", + "RobotCredential", + "BucketCredential", + "Secrets" + ], + "x-ms-enum": { + "name": "CredentialStoreResourceType", + "modelAsString": false + } + }, + "x-ms-enum": { + "name": "CredentialStoreResourceType", + "modelAsString": false + } + }, + { + "name": "$expand", + "in": "query", + "description": "Indicates the related entities to be represented inline. The maximum depth is 2.", + "schema": { + "type": "string" + } + }, + { + "name": "$select", + "in": "query", + "description": "Limits the properties returned in the result.", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ODataValueOfInt64" + } + } + } + } + }, + "security": [ + { + "OAuth2": [] + } + ] + } + }, + "/odata/CredentialStores/UiPath.Server.Configuration.OData.GetResourcesForCredentialsProxyResourceTypes(key={key},resourceType='{resourceType}')": { + "get": { + "tags": [ + "CredentialStores" + ], + "summary": "Gets available resources robots (and later assets) for a credential store.", + "description": "OAuth required scopes: OR.Settings or OR.Settings.Read.\r\n\r\nRequired permissions: Settings.View.", + "operationId": "CredentialStores_GetResourcesForCredentialsProxyResourceTypes", + "parameters": [ + { + "name": "key", + "in": "path", + "description": "Provides the ID of the credential store for which to retrieve resources.", + "required": true, + "schema": { + "type": "integer", + "format": "int64" + } + }, + { + "name": "resourceType", + "in": "path", + "required": true, + "schema": { + "type": "string", + "enum": [ + "AssetCredential", + "RobotCredential", + "BucketCredential", + "Secrets", + "CredentialStore" + ], + "x-ms-enum": { + "name": "CredentialsProxyResourceType", + "modelAsString": false + } + }, + "x-ms-enum": { + "name": "CredentialsProxyResourceType", + "modelAsString": false + } + }, + { + "name": "$expand", + "in": "query", + "description": "Indicates the related entities to be represented inline. The maximum depth is 2.", + "schema": { + "type": "string" + } + }, + { + "name": "$filter", + "in": "query", + "description": "Restricts the set of items returned. The maximum number of expressions is 100.", + "schema": { + "type": "string" + } + }, + { + "name": "$select", + "in": "query", + "description": "Limits the properties returned in the result.", + "schema": { + "type": "string" + } + }, + { + "name": "$orderby", + "in": "query", + "description": "Specifies the order in which items are returned. The maximum number of expressions is 5.", + "schema": { + "type": "string" + } + }, + { + "name": "$top", + "in": "query", + "description": "Limits the number of items returned from a collection. The maximum value is 1000.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "$skip", + "in": "query", + "description": "Excludes the specified number of items of the queried collection from the result.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "$count", + "in": "query", + "description": "Indicates whether the total count of items within a collection are returned in the result.", + "schema": { + "type": "boolean" + } + } + ], + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ODataValueOfIEnumerableOfCredentialsProxyResourceDto" + } + } + } + } + }, + "security": [ + { + "OAuth2": [] + } + ] + } + }, + "/odata/CredentialStores/UiPath.Server.Configuration.OData.GetResourcesForCredentialStoreTypes(key={key},resourceType='{resourceType}')": { + "get": { + "tags": [ + "CredentialStores" + ], + "summary": "Gets available resources robots (and later assets) for a credential store.", + "description": "OAuth required scopes: OR.Settings or OR.Settings.Read.\r\n\r\nRequired permissions: Settings.View.", + "operationId": "CredentialStores_GetResourcesForCredentialStoreTypesByKeyAndResourcetype", + "parameters": [ + { + "name": "key", + "in": "path", + "description": "Provides the ID of the credential store for which to retrieve resources.", + "required": true, + "schema": { + "type": "integer", + "format": "int64" + } + }, + { + "name": "resourceType", + "in": "path", + "required": true, + "schema": { + "type": "string", + "enum": [ + "AssetCredential", + "RobotCredential", + "BucketCredential", + "Secrets" + ], + "x-ms-enum": { + "name": "CredentialStoreResourceType", + "modelAsString": false + } + }, + "x-ms-enum": { + "name": "CredentialStoreResourceType", + "modelAsString": false + } + }, + { + "name": "$expand", + "in": "query", + "description": "Indicates the related entities to be represented inline. The maximum depth is 2.", + "schema": { + "type": "string" + } + }, + { + "name": "$filter", + "in": "query", + "description": "Restricts the set of items returned. The maximum number of expressions is 100.", + "schema": { + "type": "string" + } + }, + { + "name": "$select", + "in": "query", + "description": "Limits the properties returned in the result.", + "schema": { + "type": "string" + } + }, + { + "name": "$orderby", + "in": "query", + "description": "Specifies the order in which items are returned. The maximum number of expressions is 5.", + "schema": { + "type": "string" + } + }, + { + "name": "$top", + "in": "query", + "description": "Limits the number of items returned from a collection. The maximum value is 1000.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "$skip", + "in": "query", + "description": "Excludes the specified number of items of the queried collection from the result.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "$count", + "in": "query", + "description": "Indicates whether the total count of items within a collection are returned in the result.", + "schema": { + "type": "boolean" + } + } + ], + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ODataValueOfIEnumerableOfCredentialStoreResourceDto" + } + } + } + } + }, + "security": [ + { + "OAuth2": [] + } + ] + } + }, + "/odata/Environments": { + "get": { + "tags": [ + "Environments" + ], + "summary": "Gets Environments.", + "description": "OAuth required scopes: OR.Robots or OR.Robots.Read.\r\n\r\nRequired permissions: Environments.View.", + "operationId": "Environments_Get", + "parameters": [ + { + "name": "$expand", + "in": "query", + "description": "Indicates the related entities to be represented inline. The maximum depth is 2.", + "schema": { + "type": "string" + } + }, + { + "name": "$filter", + "in": "query", + "description": "Restricts the set of items returned. The maximum number of expressions is 100.", + "schema": { + "type": "string" + } + }, + { + "name": "$select", + "in": "query", + "description": "Limits the properties returned in the result.", + "schema": { + "type": "string" + } + }, + { + "name": "$orderby", + "in": "query", + "description": "Specifies the order in which items are returned. The maximum number of expressions is 5.", + "schema": { + "type": "string" + } + }, + { + "name": "$top", + "in": "query", + "description": "Limits the number of items returned from a collection. The maximum value is 1000.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "$skip", + "in": "query", + "description": "Excludes the specified number of items of the queried collection from the result.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "$count", + "in": "query", + "description": "Indicates whether the total count of items within a collection are returned in the result.", + "schema": { + "type": "boolean" + } + }, + { + "name": "X-UIPATH-OrganizationUnitId", + "in": "header", + "description": "Folder/OrganizationUnit Id", + "schema": { + "type": "integer", + "format": "int64" + } + } + ], + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ODataValueOfIEnumerableOfEnvironmentDto" + } + } + } + } + }, + "security": [ + { + "OAuth2": [] + } + ] + }, + "post": { + "tags": [ + "Environments" + ], + "summary": "Post new environment", + "description": "OAuth required scopes: OR.Robots or OR.Robots.Write.\r\n\r\nRequired permissions: Environments.Create.", + "operationId": "Environments_Post", + "parameters": [ + { + "name": "X-UIPATH-OrganizationUnitId", + "in": "header", + "description": "Folder/OrganizationUnit Id", + "schema": { + "type": "integer", + "format": "int64" + } + } + ], + "requestBody": { + "content": { + "application/json;odata.metadata=minimal;odata.streaming=true": { + "schema": { + "$ref": "#/components/schemas/EnvironmentDto" + } + }, + "application/json;odata.metadata=minimal;odata.streaming=false": { + "schema": { + "$ref": "#/components/schemas/EnvironmentDto" + } + }, + "application/json;odata.metadata=minimal": { + "schema": { + "$ref": "#/components/schemas/EnvironmentDto" + } + }, + "application/json;odata.metadata=full;odata.streaming=true": { + "schema": { + "$ref": "#/components/schemas/EnvironmentDto" + } + }, + "application/json;odata.metadata=full;odata.streaming=false": { + "schema": { + "$ref": "#/components/schemas/EnvironmentDto" + } + }, + "application/json;odata.metadata=full": { + "schema": { + "$ref": "#/components/schemas/EnvironmentDto" + } + }, + "application/json;odata.metadata=none;odata.streaming=true": { + "schema": { + "$ref": "#/components/schemas/EnvironmentDto" + } + }, + "application/json;odata.metadata=none;odata.streaming=false": { + "schema": { + "$ref": "#/components/schemas/EnvironmentDto" + } + }, + "application/json;odata.metadata=none": { + "schema": { + "$ref": "#/components/schemas/EnvironmentDto" + } + }, + "application/json;odata.streaming=true": { + "schema": { + "$ref": "#/components/schemas/EnvironmentDto" + } + }, + "application/json;odata.streaming=false": { + "schema": { + "$ref": "#/components/schemas/EnvironmentDto" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/EnvironmentDto" + } + }, + "application/json-patch+json": { + "schema": { + "$ref": "#/components/schemas/EnvironmentDto" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/EnvironmentDto" + } + } + }, + "required": false + }, + "responses": { + "201": { + "description": "Created", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/EnvironmentDto" + } + } + } + } + }, + "security": [ + { + "OAuth2": [] + } + ], + "x-codegen-request-body-name": "body" + } + }, + "/odata/Environments({key})": { + "get": { + "tags": [ + "Environments" + ], + "summary": "Gets a single environment.", + "description": "OAuth required scopes: OR.Robots or OR.Robots.Read.\r\n\r\nRequired permissions: Environments.View.", + "operationId": "Environments_GetById", + "parameters": [ + { + "name": "key", + "in": "path", + "required": true, + "schema": { + "type": "integer", + "format": "int64" + } + }, + { + "name": "$expand", + "in": "query", + "description": "Indicates the related entities to be represented inline. The maximum depth is 2.", + "schema": { + "type": "string" + } + }, + { + "name": "$select", + "in": "query", + "description": "Limits the properties returned in the result.", + "schema": { + "type": "string" + } + }, + { + "name": "X-UIPATH-OrganizationUnitId", + "in": "header", + "description": "Folder/OrganizationUnit Id", + "schema": { + "type": "integer", + "format": "int64" + } + } + ], + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/EnvironmentDto" + } + } + } + } + }, + "security": [ + { + "OAuth2": [] + } + ] + }, + "put": { + "tags": [ + "Environments" + ], + "summary": "Updates an environment.", + "description": "OAuth required scopes: OR.Robots or OR.Robots.Write.\r\n\r\nRequired permissions: Environments.Edit.", + "operationId": "Environments_PutById", + "parameters": [ + { + "name": "key", + "in": "path", + "required": true, + "schema": { + "type": "integer", + "format": "int64" + } + }, + { + "name": "X-UIPATH-OrganizationUnitId", + "in": "header", + "description": "Folder/OrganizationUnit Id", + "schema": { + "type": "integer", + "format": "int64" + } + } + ], + "requestBody": { + "content": { + "application/json;odata.metadata=minimal;odata.streaming=true": { + "schema": { + "$ref": "#/components/schemas/EnvironmentDto" + } + }, + "application/json;odata.metadata=minimal;odata.streaming=false": { + "schema": { + "$ref": "#/components/schemas/EnvironmentDto" + } + }, + "application/json;odata.metadata=minimal": { + "schema": { + "$ref": "#/components/schemas/EnvironmentDto" + } + }, + "application/json;odata.metadata=full;odata.streaming=true": { + "schema": { + "$ref": "#/components/schemas/EnvironmentDto" + } + }, + "application/json;odata.metadata=full;odata.streaming=false": { + "schema": { + "$ref": "#/components/schemas/EnvironmentDto" + } + }, + "application/json;odata.metadata=full": { + "schema": { + "$ref": "#/components/schemas/EnvironmentDto" + } + }, + "application/json;odata.metadata=none;odata.streaming=true": { + "schema": { + "$ref": "#/components/schemas/EnvironmentDto" + } + }, + "application/json;odata.metadata=none;odata.streaming=false": { + "schema": { + "$ref": "#/components/schemas/EnvironmentDto" + } + }, + "application/json;odata.metadata=none": { + "schema": { + "$ref": "#/components/schemas/EnvironmentDto" + } + }, + "application/json;odata.streaming=true": { + "schema": { + "$ref": "#/components/schemas/EnvironmentDto" + } + }, + "application/json;odata.streaming=false": { + "schema": { + "$ref": "#/components/schemas/EnvironmentDto" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/EnvironmentDto" + } + }, + "application/json-patch+json": { + "schema": { + "$ref": "#/components/schemas/EnvironmentDto" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/EnvironmentDto" + } + } + }, + "required": false + }, + "responses": { + "200": { + "description": "Success", + "content": {} + } + }, + "security": [ + { + "OAuth2": [] + } + ], + "x-codegen-request-body-name": "body" + }, + "delete": { + "tags": [ + "Environments" + ], + "summary": "Deletes an environment.", + "description": "OAuth required scopes: OR.Robots or OR.Robots.Write.\r\n\r\nRequired permissions: Environments.Delete.", + "operationId": "Environments_DeleteById", + "parameters": [ + { + "name": "key", + "in": "path", + "required": true, + "schema": { + "type": "integer", + "format": "int64" + } + }, + { + "name": "X-UIPATH-OrganizationUnitId", + "in": "header", + "description": "Folder/OrganizationUnit Id", + "schema": { + "type": "integer", + "format": "int64" + } + } + ], + "responses": { + "204": { + "description": "No Content", + "content": {} + } + }, + "security": [ + { + "OAuth2": [] + } + ] + } + }, + "/odata/Environments({key})/UiPath.Server.Configuration.OData.AddRobot": { + "post": { + "tags": [ + "Environments" + ], + "summary": "Associates a robot with the given environment.", + "description": "OAuth required scopes: OR.Robots or OR.Robots.Write.\r\n\r\nRequired permissions: Environments.Edit.", + "operationId": "Environments_AddRobotById", + "parameters": [ + { + "name": "key", + "in": "path", + "description": "The associated Environment Id.", + "required": true, + "schema": { + "type": "integer", + "format": "int64" + } + }, + { + "name": "X-UIPATH-OrganizationUnitId", + "in": "header", + "description": "Folder/OrganizationUnit Id", + "schema": { + "type": "integer", + "format": "int64" + } + } + ], + "requestBody": { + "description": "RobotId - The associated robot Id.", + "content": { + "application/json;odata.metadata=minimal;odata.streaming=true": { + "schema": { + "$ref": "#/components/schemas/EnvironmentRobotRequest" + } + }, + "application/json;odata.metadata=minimal;odata.streaming=false": { + "schema": { + "$ref": "#/components/schemas/EnvironmentRobotRequest" + } + }, + "application/json;odata.metadata=minimal": { + "schema": { + "$ref": "#/components/schemas/EnvironmentRobotRequest" + } + }, + "application/json;odata.metadata=full;odata.streaming=true": { + "schema": { + "$ref": "#/components/schemas/EnvironmentRobotRequest" + } + }, + "application/json;odata.metadata=full;odata.streaming=false": { + "schema": { + "$ref": "#/components/schemas/EnvironmentRobotRequest" + } + }, + "application/json;odata.metadata=full": { + "schema": { + "$ref": "#/components/schemas/EnvironmentRobotRequest" + } + }, + "application/json;odata.metadata=none;odata.streaming=true": { + "schema": { + "$ref": "#/components/schemas/EnvironmentRobotRequest" + } + }, + "application/json;odata.metadata=none;odata.streaming=false": { + "schema": { + "$ref": "#/components/schemas/EnvironmentRobotRequest" + } + }, + "application/json;odata.metadata=none": { + "schema": { + "$ref": "#/components/schemas/EnvironmentRobotRequest" + } + }, + "application/json;odata.streaming=true": { + "schema": { + "$ref": "#/components/schemas/EnvironmentRobotRequest" + } + }, + "application/json;odata.streaming=false": { + "schema": { + "$ref": "#/components/schemas/EnvironmentRobotRequest" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/EnvironmentRobotRequest" + } + }, + "application/json-patch+json": { + "schema": { + "$ref": "#/components/schemas/EnvironmentRobotRequest" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/EnvironmentRobotRequest" + } + } + }, + "required": false + }, + "responses": { + "204": { + "description": "No Content", + "content": {} + } + }, + "security": [ + { + "OAuth2": [] + } + ], + "x-codegen-request-body-name": "body" + } + }, + "/odata/Environments({key})/UiPath.Server.Configuration.OData.RemoveRobot": { + "post": { + "tags": [ + "Environments" + ], + "summary": "Dissociates a robot from the given environment.", + "description": "OAuth required scopes: OR.Robots or OR.Robots.Write.\r\n\r\nRequired permissions: Environments.Edit.", + "operationId": "Environments_RemoveRobotById", + "parameters": [ + { + "name": "key", + "in": "path", + "description": "Given environment's Id.", + "required": true, + "schema": { + "type": "integer", + "format": "int64" + } + }, + { + "name": "X-UIPATH-OrganizationUnitId", + "in": "header", + "description": "Folder/OrganizationUnit Id", + "schema": { + "type": "integer", + "format": "int64" + } + } + ], + "requestBody": { + "description": "RobotId - The dissociated robot Id.", + "content": { + "application/json;odata.metadata=minimal;odata.streaming=true": { + "schema": { + "$ref": "#/components/schemas/EnvironmentRobotRequest" + } + }, + "application/json;odata.metadata=minimal;odata.streaming=false": { + "schema": { + "$ref": "#/components/schemas/EnvironmentRobotRequest" + } + }, + "application/json;odata.metadata=minimal": { + "schema": { + "$ref": "#/components/schemas/EnvironmentRobotRequest" + } + }, + "application/json;odata.metadata=full;odata.streaming=true": { + "schema": { + "$ref": "#/components/schemas/EnvironmentRobotRequest" + } + }, + "application/json;odata.metadata=full;odata.streaming=false": { + "schema": { + "$ref": "#/components/schemas/EnvironmentRobotRequest" + } + }, + "application/json;odata.metadata=full": { + "schema": { + "$ref": "#/components/schemas/EnvironmentRobotRequest" + } + }, + "application/json;odata.metadata=none;odata.streaming=true": { + "schema": { + "$ref": "#/components/schemas/EnvironmentRobotRequest" + } + }, + "application/json;odata.metadata=none;odata.streaming=false": { + "schema": { + "$ref": "#/components/schemas/EnvironmentRobotRequest" + } + }, + "application/json;odata.metadata=none": { + "schema": { + "$ref": "#/components/schemas/EnvironmentRobotRequest" + } + }, + "application/json;odata.streaming=true": { + "schema": { + "$ref": "#/components/schemas/EnvironmentRobotRequest" + } + }, + "application/json;odata.streaming=false": { + "schema": { + "$ref": "#/components/schemas/EnvironmentRobotRequest" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/EnvironmentRobotRequest" + } + }, + "application/json-patch+json": { + "schema": { + "$ref": "#/components/schemas/EnvironmentRobotRequest" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/EnvironmentRobotRequest" + } + } + }, + "required": false + }, + "responses": { + "204": { + "description": "No Content", + "content": {} + } + }, + "security": [ + { + "OAuth2": [] + } + ], + "x-codegen-request-body-name": "body" + } + }, + "/odata/Environments({key})/UiPath.Server.Configuration.OData.SetRobots": { + "post": { + "tags": [ + "Environments" + ], + "summary": "Associates a group of robots with and dissociates another group of robots from the given environment.", + "description": "OAuth required scopes: OR.Robots or OR.Robots.Write.\r\n\r\nRequired permissions: Environments.Edit.", + "operationId": "Environments_SetRobotsById", + "parameters": [ + { + "name": "key", + "in": "path", + "description": "The environment id.", + "required": true, + "schema": { + "type": "integer", + "format": "int64" + } + }, + { + "name": "X-UIPATH-OrganizationUnitId", + "in": "header", + "description": "Folder/OrganizationUnit Id", + "schema": { + "type": "integer", + "format": "int64" + } + } + ], + "requestBody": { + "description": "addedRobotIds - The id of the robots to be associated with the environment.\r\n removedRobotIds - The id of the robots to be dissociated from the environment.", + "content": { + "application/json;odata.metadata=minimal;odata.streaming=true": { + "schema": { + "$ref": "#/components/schemas/EnvironmentsSetRobotsRequest" + } + }, + "application/json;odata.metadata=minimal;odata.streaming=false": { + "schema": { + "$ref": "#/components/schemas/EnvironmentsSetRobotsRequest" + } + }, + "application/json;odata.metadata=minimal": { + "schema": { + "$ref": "#/components/schemas/EnvironmentsSetRobotsRequest" + } + }, + "application/json;odata.metadata=full;odata.streaming=true": { + "schema": { + "$ref": "#/components/schemas/EnvironmentsSetRobotsRequest" + } + }, + "application/json;odata.metadata=full;odata.streaming=false": { + "schema": { + "$ref": "#/components/schemas/EnvironmentsSetRobotsRequest" + } + }, + "application/json;odata.metadata=full": { + "schema": { + "$ref": "#/components/schemas/EnvironmentsSetRobotsRequest" + } + }, + "application/json;odata.metadata=none;odata.streaming=true": { + "schema": { + "$ref": "#/components/schemas/EnvironmentsSetRobotsRequest" + } + }, + "application/json;odata.metadata=none;odata.streaming=false": { + "schema": { + "$ref": "#/components/schemas/EnvironmentsSetRobotsRequest" + } + }, + "application/json;odata.metadata=none": { + "schema": { + "$ref": "#/components/schemas/EnvironmentsSetRobotsRequest" + } + }, + "application/json;odata.streaming=true": { + "schema": { + "$ref": "#/components/schemas/EnvironmentsSetRobotsRequest" + } + }, + "application/json;odata.streaming=false": { + "schema": { + "$ref": "#/components/schemas/EnvironmentsSetRobotsRequest" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/EnvironmentsSetRobotsRequest" + } + }, + "application/json-patch+json": { + "schema": { + "$ref": "#/components/schemas/EnvironmentsSetRobotsRequest" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/EnvironmentsSetRobotsRequest" + } + } + }, + "required": false + }, + "responses": { + "204": { + "description": "No Content", + "content": {} + } + }, + "security": [ + { + "OAuth2": [] + } + ], + "x-codegen-request-body-name": "body" + } + }, + "/odata/Environments/UiPath.Server.Configuration.OData.GetRobotIdsForEnvironment(key={key})": { + "get": { + "tags": [ + "Environments" + ], + "summary": "Returns a collection of all the ids of the robots associated to an environment based on environment Id.", + "description": "OAuth required scopes: OR.Robots or OR.Robots.Read.\r\n\r\nRequired permissions: Environments.View and Robots.View.", + "operationId": "Environments_GetRobotIdsForEnvironmentByKey", + "parameters": [ + { + "name": "key", + "in": "path", + "description": "The Id of the environment for which the robot ids are fetched.", + "required": true, + "schema": { + "type": "integer", + "format": "int64" + } + }, + { + "name": "$expand", + "in": "query", + "description": "Indicates the related entities to be represented inline. The maximum depth is 2.", + "schema": { + "type": "string" + } + }, + { + "name": "$filter", + "in": "query", + "description": "Restricts the set of items returned. The maximum number of expressions is 100.", + "schema": { + "type": "string" + } + }, + { + "name": "$select", + "in": "query", + "description": "Limits the properties returned in the result.", + "schema": { + "type": "string" + } + }, + { + "name": "$orderby", + "in": "query", + "description": "Specifies the order in which items are returned. The maximum number of expressions is 5.", + "schema": { + "type": "string" + } + }, + { + "name": "$count", + "in": "query", + "description": "Indicates whether the total count of items within a collection are returned in the result.", + "schema": { + "type": "boolean" + } + }, + { + "name": "X-UIPATH-OrganizationUnitId", + "in": "header", + "description": "Folder/OrganizationUnit Id", + "schema": { + "type": "integer", + "format": "int64" + } + } + ], + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ODataValueOfIEnumerableOfInt64" + } + } + } + } + }, + "security": [ + { + "OAuth2": [] + } + ] + } + }, + "/odata/Environments/UiPath.Server.Configuration.OData.GetRobotsForEnvironment(key={key})": { + "get": { + "tags": [ + "Environments" + ], + "summary": "Returns a collection of all robots and, if no other sorting is provided, will place first those belonging to the environment. Allows odata query options.", + "description": "OAuth required scopes: OR.Robots or OR.Robots.Read.\r\n\r\nRequired permissions: Environments.View and Robots.View.", + "operationId": "Environments_GetRobotsForEnvironmentByKey", + "parameters": [ + { + "name": "key", + "in": "path", + "description": "The Id of the environment for which the associated robots are placed first.", + "required": true, + "schema": { + "type": "integer", + "format": "int64" + } + }, + { + "name": "$expand", + "in": "query", + "description": "Indicates the related entities to be represented inline. The maximum depth is 2.", + "schema": { + "type": "string" + } + }, + { + "name": "$filter", + "in": "query", + "description": "Restricts the set of items returned. The maximum number of expressions is 100.", + "schema": { + "type": "string" + } + }, + { + "name": "$select", + "in": "query", + "description": "Limits the properties returned in the result.", + "schema": { + "type": "string" + } + }, + { + "name": "$orderby", + "in": "query", + "description": "Specifies the order in which items are returned. The maximum number of expressions is 5.", + "schema": { + "type": "string" + } + }, + { + "name": "$top", + "in": "query", + "description": "Limits the number of items returned from a collection. The maximum value is 1000.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "$skip", + "in": "query", + "description": "Excludes the specified number of items of the queried collection from the result.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "$count", + "in": "query", + "description": "Indicates whether the total count of items within a collection are returned in the result.", + "schema": { + "type": "boolean" + } + }, + { + "name": "X-UIPATH-OrganizationUnitId", + "in": "header", + "description": "Folder/OrganizationUnit Id", + "schema": { + "type": "integer", + "format": "int64" + } + } + ], + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ODataValueOfIEnumerableOfRobotDto" + } + } + } + } + }, + "security": [ + { + "OAuth2": [] + } + ] + } + }, + "/odata/ExecutionMedia": { + "get": { + "tags": [ + "ExecutionMedia" + ], + "description": "OAuth required scopes: OR.Monitoring or OR.Monitoring.Read.\r\n\r\nRequired permissions: ExecutionMedia.View.", + "operationId": "ExecutionMedia_Get", + "parameters": [ + { + "name": "$expand", + "in": "query", + "description": "Indicates the related entities to be represented inline. The maximum depth is 2.", + "schema": { + "type": "string" + } + }, + { + "name": "$filter", + "in": "query", + "description": "Restricts the set of items returned. The maximum number of expressions is 100.", + "schema": { + "type": "string" + } + }, + { + "name": "$select", + "in": "query", + "description": "Limits the properties returned in the result.", + "schema": { + "type": "string" + } + }, + { + "name": "$orderby", + "in": "query", + "description": "Specifies the order in which items are returned. The maximum number of expressions is 5.", + "schema": { + "type": "string" + } + }, + { + "name": "$top", + "in": "query", + "description": "Limits the number of items returned from a collection. The maximum value is 1000.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "$skip", + "in": "query", + "description": "Excludes the specified number of items of the queried collection from the result.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "$count", + "in": "query", + "description": "Indicates whether the total count of items within a collection are returned in the result.", + "schema": { + "type": "boolean" + } + }, + { + "name": "X-UIPATH-OrganizationUnitId", + "in": "header", + "description": "Folder/OrganizationUnit Id", + "schema": { + "type": "integer", + "format": "int64" + } + } + ], + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ODataValueOfIEnumerableOfExecutionMediaDto" + } + } + } + } + }, + "security": [ + { + "OAuth2": [] + } + ] + } + }, + "/odata/ExecutionMedia({key})": { + "get": { + "tags": [ + "ExecutionMedia" + ], + "summary": "Get by id", + "description": "OAuth required scopes: OR.Monitoring or OR.Monitoring.Read.\r\n\r\nRequired permissions: ExecutionMedia.View.", + "operationId": "ExecutionMedia_GetById", + "parameters": [ + { + "name": "key", + "in": "path", + "required": true, + "schema": { + "type": "integer", + "format": "int64" + } + }, + { + "name": "$expand", + "in": "query", + "description": "Indicates the related entities to be represented inline. The maximum depth is 2.", + "schema": { + "type": "string" + } + }, + { + "name": "$select", + "in": "query", + "description": "Limits the properties returned in the result.", + "schema": { + "type": "string" + } + }, + { + "name": "X-UIPATH-OrganizationUnitId", + "in": "header", + "description": "Folder/OrganizationUnit Id", + "schema": { + "type": "integer", + "format": "int64" + } + } + ], + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ExecutionMediaDto" + } + } + } + } + }, + "security": [ + { + "OAuth2": [] + } + ] + } + }, + "/odata/ExecutionMedia/UiPath.Server.Configuration.OData.DeleteMediaByJobId": { + "post": { + "tags": [ + "ExecutionMedia" + ], + "summary": "Deletes the execution media for the given job key.", + "description": "OAuth required scopes: OR.Monitoring or OR.Monitoring.Write.\r\n\r\nRequired permissions: ExecutionMedia.Delete.", + "operationId": "ExecutionMedia_DeleteMediaByJobId", + "parameters": [ + { + "name": "X-UIPATH-OrganizationUnitId", + "in": "header", + "description": "Folder/OrganizationUnit Id", + "schema": { + "type": "integer", + "format": "int64" + } + } + ], + "requestBody": { + "content": { + "application/json;odata.metadata=minimal;odata.streaming=true": { + "schema": { + "$ref": "#/components/schemas/ExecutionMediaDeleteMediaByJobIdRequest" + } + }, + "application/json;odata.metadata=minimal;odata.streaming=false": { + "schema": { + "$ref": "#/components/schemas/ExecutionMediaDeleteMediaByJobIdRequest" + } + }, + "application/json;odata.metadata=minimal": { + "schema": { + "$ref": "#/components/schemas/ExecutionMediaDeleteMediaByJobIdRequest" + } + }, + "application/json;odata.metadata=full;odata.streaming=true": { + "schema": { + "$ref": "#/components/schemas/ExecutionMediaDeleteMediaByJobIdRequest" + } + }, + "application/json;odata.metadata=full;odata.streaming=false": { + "schema": { + "$ref": "#/components/schemas/ExecutionMediaDeleteMediaByJobIdRequest" + } + }, + "application/json;odata.metadata=full": { + "schema": { + "$ref": "#/components/schemas/ExecutionMediaDeleteMediaByJobIdRequest" + } + }, + "application/json;odata.metadata=none;odata.streaming=true": { + "schema": { + "$ref": "#/components/schemas/ExecutionMediaDeleteMediaByJobIdRequest" + } + }, + "application/json;odata.metadata=none;odata.streaming=false": { + "schema": { + "$ref": "#/components/schemas/ExecutionMediaDeleteMediaByJobIdRequest" + } + }, + "application/json;odata.metadata=none": { + "schema": { + "$ref": "#/components/schemas/ExecutionMediaDeleteMediaByJobIdRequest" + } + }, + "application/json;odata.streaming=true": { + "schema": { + "$ref": "#/components/schemas/ExecutionMediaDeleteMediaByJobIdRequest" + } + }, + "application/json;odata.streaming=false": { + "schema": { + "$ref": "#/components/schemas/ExecutionMediaDeleteMediaByJobIdRequest" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/ExecutionMediaDeleteMediaByJobIdRequest" + } + }, + "application/json-patch+json": { + "schema": { + "$ref": "#/components/schemas/ExecutionMediaDeleteMediaByJobIdRequest" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/ExecutionMediaDeleteMediaByJobIdRequest" + } + } + }, + "required": false + }, + "responses": { + "204": { + "description": "No Content", + "content": {} + } + }, + "security": [ + { + "OAuth2": [] + } + ], + "x-codegen-request-body-name": "body" + } + }, + "/odata/ExecutionMedia/UiPath.Server.Configuration.OData.DownloadMediaByJobId(jobId={jobId})": { + "get": { + "tags": [ + "ExecutionMedia" + ], + "summary": "Downloads execution media by job id", + "description": "OAuth required scopes: OR.Monitoring or OR.Monitoring.Read.\r\n\r\nRequired permissions: ExecutionMedia.View.", + "operationId": "ExecutionMedia_DownloadMediaByJobId", + "parameters": [ + { + "name": "jobId", + "in": "path", + "required": true, + "schema": { + "type": "integer", + "format": "int64" + } + }, + { + "name": "X-UIPATH-OrganizationUnitId", + "in": "header", + "description": "Folder/OrganizationUnit Id", + "schema": { + "type": "integer", + "format": "int64" + } + } + ], + "responses": { + "200": { + "description": "Success", + "content": { + "application/octet-stream": { + "schema": { + "type": "string", + "format": "binary" + } + } + } + } + }, + "security": [ + { + "OAuth2": [] + } + ] + } + }, + "/odata/Exports({key})": { + "get": { + "tags": [ + "Exports" + ], + "description": "Requires authentication.", + "operationId": "Exports_GetById", + "parameters": [ + { + "name": "key", + "in": "path", + "required": true, + "schema": { + "type": "integer", + "format": "int64" + } + }, + { + "name": "$expand", + "in": "query", + "description": "Indicates the related entities to be represented inline. The maximum depth is 2.", + "schema": { + "type": "string" + } + }, + { + "name": "$select", + "in": "query", + "description": "Limits the properties returned in the result.", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ExportModel" + } + } + } + } + }, + "security": [ + { + "OAuth2": [] + } + ] + } + }, + "/odata/Exports({key})/UiPath.Server.Configuration.OData.GetDownloadLink": { + "get": { + "tags": [ + "Exports" + ], + "description": "Requires authentication.", + "operationId": "Exports_GetDownloadLinkById", + "parameters": [ + { + "name": "key", + "in": "path", + "required": true, + "schema": { + "type": "integer", + "format": "int64" + } + }, + { + "name": "$expand", + "in": "query", + "description": "Indicates the related entities to be represented inline. The maximum depth is 2.", + "schema": { + "type": "string" + } + }, + { + "name": "$select", + "in": "query", + "description": "Limits the properties returned in the result.", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/BlobFileAccessDto" + } + } + } + } + }, + "security": [ + { + "OAuth2": [] + } + ] + } + }, + "/odata/Folders": { + "get": { + "tags": [ + "Folders" + ], + "summary": "Gets folders.", + "description": "OAuth required scopes: OR.Folders or OR.Folders.Read.\r\n\r\nRequired permissions: (Units.View or SubFolders.View - Gets all folders or only the folders where user has SubFolders.View permission).", + "operationId": "Folders_Get", + "parameters": [ + { + "name": "$expand", + "in": "query", + "description": "Indicates the related entities to be represented inline. The maximum depth is 2.", + "schema": { + "type": "string" + } + }, + { + "name": "$filter", + "in": "query", + "description": "Restricts the set of items returned. The maximum number of expressions is 100.", + "schema": { + "type": "string" + } + }, + { + "name": "$select", + "in": "query", + "description": "Limits the properties returned in the result.", + "schema": { + "type": "string" + } + }, + { + "name": "$orderby", + "in": "query", + "description": "Specifies the order in which items are returned. The maximum number of expressions is 5.", + "schema": { + "type": "string" + } + }, + { + "name": "$top", + "in": "query", + "description": "Limits the number of items returned from a collection. The maximum value is 1000.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "$skip", + "in": "query", + "description": "Excludes the specified number of items of the queried collection from the result.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "$count", + "in": "query", + "description": "Indicates whether the total count of items within a collection are returned in the result.", + "schema": { + "type": "boolean" + } + } + ], + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ODataValueOfIEnumerableOfFolderDto" + } + } + } + } + }, + "security": [ + { + "OAuth2": [] + } + ] + }, + "post": { + "tags": [ + "Folders" + ], + "summary": "Creates a new folder.", + "description": "OAuth required scopes: OR.Folders or OR.Folders.Write.\r\n\r\nRequired permissions: (Units.Create or SubFolders.Create - Creates root or subfolder or only subfolder if user has SubFolders.Create permission on parent).", + "operationId": "Folders_Post", + "requestBody": { + "content": { + "application/json;odata.metadata=minimal;odata.streaming=true": { + "schema": { + "$ref": "#/components/schemas/FolderDto" + } + }, + "application/json;odata.metadata=minimal;odata.streaming=false": { + "schema": { + "$ref": "#/components/schemas/FolderDto" + } + }, + "application/json;odata.metadata=minimal": { + "schema": { + "$ref": "#/components/schemas/FolderDto" + } + }, + "application/json;odata.metadata=full;odata.streaming=true": { + "schema": { + "$ref": "#/components/schemas/FolderDto" + } + }, + "application/json;odata.metadata=full;odata.streaming=false": { + "schema": { + "$ref": "#/components/schemas/FolderDto" + } + }, + "application/json;odata.metadata=full": { + "schema": { + "$ref": "#/components/schemas/FolderDto" + } + }, + "application/json;odata.metadata=none;odata.streaming=true": { + "schema": { + "$ref": "#/components/schemas/FolderDto" + } + }, + "application/json;odata.metadata=none;odata.streaming=false": { + "schema": { + "$ref": "#/components/schemas/FolderDto" + } + }, + "application/json;odata.metadata=none": { + "schema": { + "$ref": "#/components/schemas/FolderDto" + } + }, + "application/json;odata.streaming=true": { + "schema": { + "$ref": "#/components/schemas/FolderDto" + } + }, + "application/json;odata.streaming=false": { + "schema": { + "$ref": "#/components/schemas/FolderDto" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/FolderDto" + } + }, + "application/json-patch+json": { + "schema": { + "$ref": "#/components/schemas/FolderDto" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/FolderDto" + } + } + }, + "required": false + }, + "responses": { + "201": { + "description": "Created", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/FolderDto" + } + } + } + } + }, + "security": [ + { + "OAuth2": [] + } + ], + "x-codegen-request-body-name": "body" + } + }, + "/odata/Folders({folderId})/UiPath.Server.Configuration.OData.MoveFolder": { + "put": { + "tags": [ + "Folders" + ], + "summary": "Move a folder.", + "description": "OAuth required scopes: OR.Folders or OR.Folders.Write.\r\n\r\nRequired permissions: (Units.Delete or SubFolders.Delete - Move any folder or to folder only if user has SubFolders.Delete permission on it) and (Units.Create or SubFolders.Create - Move to any target folder or to folder if user has SubFolders.Create permission on target) and (Units.Edit or SubFolders.Edit - Move to any target folder or to folder if user has SubFolders.Edit permission on target).", + "operationId": "Folders_MoveFolderByFolderid", + "parameters": [ + { + "name": "folderId", + "in": "path", + "description": "Id of the folder to be moved", + "required": true, + "schema": { + "type": "integer", + "format": "int64" + } + }, + { + "name": "targetParentId", + "in": "query", + "description": "Id of the target parent", + "schema": { + "type": "integer", + "format": "int64" + } + } + ], + "responses": { + "204": { + "description": "No Content", + "content": {} + } + }, + "security": [ + { + "OAuth2": [] + } + ] + } + }, + "/odata/Folders({key})": { + "get": { + "tags": [ + "Folders" + ], + "summary": "Gets a single folder, based on its Id.", + "description": "OAuth required scopes: OR.Folders or OR.Folders.Read.\r\n\r\nRequired permissions: (Units.View or SubFolders.View - Gets any folder or only the folder if user has SubFolders.View permission on it or the user is assigned to the folder.).", + "operationId": "Folders_GetById", + "parameters": [ + { + "name": "key", + "in": "path", + "required": true, + "schema": { + "type": "integer", + "format": "int64" + } + }, + { + "name": "$expand", + "in": "query", + "description": "Indicates the related entities to be represented inline. The maximum depth is 2.", + "schema": { + "type": "string" + } + }, + { + "name": "$select", + "in": "query", + "description": "Limits the properties returned in the result.", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/FolderDto" + } + } + } + } + }, + "security": [ + { + "OAuth2": [] + } + ] + }, + "put": { + "tags": [ + "Folders" + ], + "summary": "Edits a folder.", + "description": "OAuth required scopes: OR.Folders or OR.Folders.Write.\r\n\r\nRequired permissions: (Units.Edit or SubFolders.Edit - Edits any folder or edits only if user has SubFolders.Edit permission on the provided folder).", + "operationId": "Folders_PutById", + "parameters": [ + { + "name": "key", + "in": "path", + "required": true, + "schema": { + "type": "integer", + "format": "int64" + } + } + ], + "requestBody": { + "content": { + "application/json;odata.metadata=minimal;odata.streaming=true": { + "schema": { + "$ref": "#/components/schemas/FolderDto" + } + }, + "application/json;odata.metadata=minimal;odata.streaming=false": { + "schema": { + "$ref": "#/components/schemas/FolderDto" + } + }, + "application/json;odata.metadata=minimal": { + "schema": { + "$ref": "#/components/schemas/FolderDto" + } + }, + "application/json;odata.metadata=full;odata.streaming=true": { + "schema": { + "$ref": "#/components/schemas/FolderDto" + } + }, + "application/json;odata.metadata=full;odata.streaming=false": { + "schema": { + "$ref": "#/components/schemas/FolderDto" + } + }, + "application/json;odata.metadata=full": { + "schema": { + "$ref": "#/components/schemas/FolderDto" + } + }, + "application/json;odata.metadata=none;odata.streaming=true": { + "schema": { + "$ref": "#/components/schemas/FolderDto" + } + }, + "application/json;odata.metadata=none;odata.streaming=false": { + "schema": { + "$ref": "#/components/schemas/FolderDto" + } + }, + "application/json;odata.metadata=none": { + "schema": { + "$ref": "#/components/schemas/FolderDto" + } + }, + "application/json;odata.streaming=true": { + "schema": { + "$ref": "#/components/schemas/FolderDto" + } + }, + "application/json;odata.streaming=false": { + "schema": { + "$ref": "#/components/schemas/FolderDto" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/FolderDto" + } + }, + "application/json-patch+json": { + "schema": { + "$ref": "#/components/schemas/FolderDto" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/FolderDto" + } + } + }, + "required": false + }, + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/FolderDto" + } + } + } + } + }, + "security": [ + { + "OAuth2": [] + } + ], + "x-codegen-request-body-name": "body" + }, + "delete": { + "tags": [ + "Folders" + ], + "summary": "Deletes a folder. Succeeds only if no entities or user associations\r\nexist in this folder or any of its descendants.", + "description": "OAuth required scopes: OR.Folders or OR.Folders.Write.\r\n\r\nRequired permissions: (Units.Delete or SubFolders.Delete - Deletes any folder or only if user has SubFolders.Delete permission on the provided folder).", + "operationId": "Folders_DeleteById", + "parameters": [ + { + "name": "key", + "in": "path", + "required": true, + "schema": { + "type": "integer", + "format": "int64" + } + } + ], + "responses": { + "204": { + "description": "Deleted", + "content": {} + } + }, + "security": [ + { + "OAuth2": [] + } + ] + } + }, + "/odata/Folders({key})/UiPath.Server.Configuration.OData.RemoveMachinesFromFolder": { + "post": { + "tags": [ + "Folders" + ], + "summary": "Remove user assignment from a folder.", + "description": "OAuth required scopes: OR.Folders or OR.Folders.Write.\r\n\r\nRequired permissions: (Units.Edit or SubFolders.Edit - Removes machines from any folder or only if caller has SubFolders.Edit permission the folder provided).", + "operationId": "Folders_RemoveMachinesFromFolderById", + "parameters": [ + { + "name": "key", + "in": "path", + "required": true, + "schema": { + "type": "integer", + "format": "int64" + } + } + ], + "requestBody": { + "description": "The Ids of the machines to remove from the folder", + "content": { + "application/json;odata.metadata=minimal;odata.streaming=true": { + "schema": { + "$ref": "#/components/schemas/RemoveMachinesFromFolderRequest" + } + }, + "application/json;odata.metadata=minimal;odata.streaming=false": { + "schema": { + "$ref": "#/components/schemas/RemoveMachinesFromFolderRequest" + } + }, + "application/json;odata.metadata=minimal": { + "schema": { + "$ref": "#/components/schemas/RemoveMachinesFromFolderRequest" + } + }, + "application/json;odata.metadata=full;odata.streaming=true": { + "schema": { + "$ref": "#/components/schemas/RemoveMachinesFromFolderRequest" + } + }, + "application/json;odata.metadata=full;odata.streaming=false": { + "schema": { + "$ref": "#/components/schemas/RemoveMachinesFromFolderRequest" + } + }, + "application/json;odata.metadata=full": { + "schema": { + "$ref": "#/components/schemas/RemoveMachinesFromFolderRequest" + } + }, + "application/json;odata.metadata=none;odata.streaming=true": { + "schema": { + "$ref": "#/components/schemas/RemoveMachinesFromFolderRequest" + } + }, + "application/json;odata.metadata=none;odata.streaming=false": { + "schema": { + "$ref": "#/components/schemas/RemoveMachinesFromFolderRequest" + } + }, + "application/json;odata.metadata=none": { + "schema": { + "$ref": "#/components/schemas/RemoveMachinesFromFolderRequest" + } + }, + "application/json;odata.streaming=true": { + "schema": { + "$ref": "#/components/schemas/RemoveMachinesFromFolderRequest" + } + }, + "application/json;odata.streaming=false": { + "schema": { + "$ref": "#/components/schemas/RemoveMachinesFromFolderRequest" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/RemoveMachinesFromFolderRequest" + } + }, + "application/json-patch+json": { + "schema": { + "$ref": "#/components/schemas/RemoveMachinesFromFolderRequest" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/RemoveMachinesFromFolderRequest" + } + } + }, + "required": false + }, + "responses": { + "204": { + "description": "No Content", + "content": {} + } + }, + "security": [ + { + "OAuth2": [] + } + ], + "x-codegen-request-body-name": "body" + } + }, + "/odata/Folders({key})/UiPath.Server.Configuration.OData.RemoveUserFromFolder": { + "post": { + "tags": [ + "Folders" + ], + "summary": "Remove user assignment from a folder.", + "description": "OAuth required scopes: OR.Folders or OR.Folders.Write.\r\n\r\nRequired permissions: (Units.Edit or SubFolders.Edit - Remove user from any folder or only if caller has SubFolders.Edit permission on provided folder).", + "operationId": "Folders_RemoveUserFromFolderById", + "parameters": [ + { + "name": "key", + "in": "path", + "required": true, + "schema": { + "type": "integer", + "format": "int64" + } + } + ], + "requestBody": { + "description": "userId - The Id of the user to remove from the folder", + "content": { + "application/json;odata.metadata=minimal;odata.streaming=true": { + "schema": { + "$ref": "#/components/schemas/RemoveUserFromFolderRequest" + } + }, + "application/json;odata.metadata=minimal;odata.streaming=false": { + "schema": { + "$ref": "#/components/schemas/RemoveUserFromFolderRequest" + } + }, + "application/json;odata.metadata=minimal": { + "schema": { + "$ref": "#/components/schemas/RemoveUserFromFolderRequest" + } + }, + "application/json;odata.metadata=full;odata.streaming=true": { + "schema": { + "$ref": "#/components/schemas/RemoveUserFromFolderRequest" + } + }, + "application/json;odata.metadata=full;odata.streaming=false": { + "schema": { + "$ref": "#/components/schemas/RemoveUserFromFolderRequest" + } + }, + "application/json;odata.metadata=full": { + "schema": { + "$ref": "#/components/schemas/RemoveUserFromFolderRequest" + } + }, + "application/json;odata.metadata=none;odata.streaming=true": { + "schema": { + "$ref": "#/components/schemas/RemoveUserFromFolderRequest" + } + }, + "application/json;odata.metadata=none;odata.streaming=false": { + "schema": { + "$ref": "#/components/schemas/RemoveUserFromFolderRequest" + } + }, + "application/json;odata.metadata=none": { + "schema": { + "$ref": "#/components/schemas/RemoveUserFromFolderRequest" + } + }, + "application/json;odata.streaming=true": { + "schema": { + "$ref": "#/components/schemas/RemoveUserFromFolderRequest" + } + }, + "application/json;odata.streaming=false": { + "schema": { + "$ref": "#/components/schemas/RemoveUserFromFolderRequest" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/RemoveUserFromFolderRequest" + } + }, + "application/json-patch+json": { + "schema": { + "$ref": "#/components/schemas/RemoveUserFromFolderRequest" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/RemoveUserFromFolderRequest" + } + } + }, + "required": false + }, + "responses": { + "204": { + "description": "No Content", + "content": {} + } + }, + "security": [ + { + "OAuth2": [] + } + ], + "x-codegen-request-body-name": "body" + } + }, + "/odata/Folders/UiPath.Server.Configuration.OData.AssignDomainUser": { + "post": { + "tags": [ + "Folders" + ], + "summary": "Assigns a directory user or group to a set of folders with an optional set of roles per folder.", + "description": "OAuth required scopes: OR.Folders or OR.Folders.Write.\r\n\r\nRequired permissions: (Units.Edit or SubFolders.Edit - Assigns domain user to any folder or only if user has SubFolders.Edit permission on all folders provided).", + "operationId": "Folders_AssignDomainUser", + "requestBody": { + "content": { + "application/json;odata.metadata=minimal;odata.streaming=true": { + "schema": { + "$ref": "#/components/schemas/FolderAssignDomainUserRequest" + } + }, + "application/json;odata.metadata=minimal;odata.streaming=false": { + "schema": { + "$ref": "#/components/schemas/FolderAssignDomainUserRequest" + } + }, + "application/json;odata.metadata=minimal": { + "schema": { + "$ref": "#/components/schemas/FolderAssignDomainUserRequest" + } + }, + "application/json;odata.metadata=full;odata.streaming=true": { + "schema": { + "$ref": "#/components/schemas/FolderAssignDomainUserRequest" + } + }, + "application/json;odata.metadata=full;odata.streaming=false": { + "schema": { + "$ref": "#/components/schemas/FolderAssignDomainUserRequest" + } + }, + "application/json;odata.metadata=full": { + "schema": { + "$ref": "#/components/schemas/FolderAssignDomainUserRequest" + } + }, + "application/json;odata.metadata=none;odata.streaming=true": { + "schema": { + "$ref": "#/components/schemas/FolderAssignDomainUserRequest" + } + }, + "application/json;odata.metadata=none;odata.streaming=false": { + "schema": { + "$ref": "#/components/schemas/FolderAssignDomainUserRequest" + } + }, + "application/json;odata.metadata=none": { + "schema": { + "$ref": "#/components/schemas/FolderAssignDomainUserRequest" + } + }, + "application/json;odata.streaming=true": { + "schema": { + "$ref": "#/components/schemas/FolderAssignDomainUserRequest" + } + }, + "application/json;odata.streaming=false": { + "schema": { + "$ref": "#/components/schemas/FolderAssignDomainUserRequest" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/FolderAssignDomainUserRequest" + } + }, + "application/json-patch+json": { + "schema": { + "$ref": "#/components/schemas/FolderAssignDomainUserRequest" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/FolderAssignDomainUserRequest" + } + } + }, + "required": false + }, + "responses": { + "204": { + "description": "No Content", + "content": {} + } + }, + "security": [ + { + "OAuth2": [] + } + ], + "x-codegen-request-body-name": "body" + } + }, + "/odata/Folders/UiPath.Server.Configuration.OData.AssignMachines": { + "post": { + "tags": [ + "Folders" + ], + "summary": "Assigns one or more machines to a set of folders.", + "description": "OAuth required scopes: OR.Folders or OR.Folders.Write.\r\n\r\nRequired permissions: (Units.Edit or SubFolders.Edit - Assigns machines to any folder or only if user has SubFolders.Edit permission on all folders provided).", + "operationId": "Folders_AssignMachines", + "requestBody": { + "content": { + "application/json;odata.metadata=minimal;odata.streaming=true": { + "schema": { + "$ref": "#/components/schemas/FolderAssignMachinesRequest" + } + }, + "application/json;odata.metadata=minimal;odata.streaming=false": { + "schema": { + "$ref": "#/components/schemas/FolderAssignMachinesRequest" + } + }, + "application/json;odata.metadata=minimal": { + "schema": { + "$ref": "#/components/schemas/FolderAssignMachinesRequest" + } + }, + "application/json;odata.metadata=full;odata.streaming=true": { + "schema": { + "$ref": "#/components/schemas/FolderAssignMachinesRequest" + } + }, + "application/json;odata.metadata=full;odata.streaming=false": { + "schema": { + "$ref": "#/components/schemas/FolderAssignMachinesRequest" + } + }, + "application/json;odata.metadata=full": { + "schema": { + "$ref": "#/components/schemas/FolderAssignMachinesRequest" + } + }, + "application/json;odata.metadata=none;odata.streaming=true": { + "schema": { + "$ref": "#/components/schemas/FolderAssignMachinesRequest" + } + }, + "application/json;odata.metadata=none;odata.streaming=false": { + "schema": { + "$ref": "#/components/schemas/FolderAssignMachinesRequest" + } + }, + "application/json;odata.metadata=none": { + "schema": { + "$ref": "#/components/schemas/FolderAssignMachinesRequest" + } + }, + "application/json;odata.streaming=true": { + "schema": { + "$ref": "#/components/schemas/FolderAssignMachinesRequest" + } + }, + "application/json;odata.streaming=false": { + "schema": { + "$ref": "#/components/schemas/FolderAssignMachinesRequest" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/FolderAssignMachinesRequest" + } + }, + "application/json-patch+json": { + "schema": { + "$ref": "#/components/schemas/FolderAssignMachinesRequest" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/FolderAssignMachinesRequest" + } + } + }, + "required": false + }, + "responses": { + "204": { + "description": "No Content", + "content": {} + } + }, + "security": [ + { + "OAuth2": [] + } + ], + "x-codegen-request-body-name": "body" + } + }, + "/odata/Folders/UiPath.Server.Configuration.OData.AssignUsers": { + "post": { + "tags": [ + "Folders" + ], + "summary": "Assigns one or more users to a set of folders with an optional set of roles per folder.", + "description": "OAuth required scopes: OR.Folders or OR.Folders.Write.\r\n\r\nRequired permissions: (Units.Edit or SubFolders.Edit - Assigns users to any folder or if the user has SubFolders.Edit permission on all folders provided).", + "operationId": "Folders_AssignUsers", + "requestBody": { + "content": { + "application/json;odata.metadata=minimal;odata.streaming=true": { + "schema": { + "$ref": "#/components/schemas/FolderAssignUsersRequest" + } + }, + "application/json;odata.metadata=minimal;odata.streaming=false": { + "schema": { + "$ref": "#/components/schemas/FolderAssignUsersRequest" + } + }, + "application/json;odata.metadata=minimal": { + "schema": { + "$ref": "#/components/schemas/FolderAssignUsersRequest" + } + }, + "application/json;odata.metadata=full;odata.streaming=true": { + "schema": { + "$ref": "#/components/schemas/FolderAssignUsersRequest" + } + }, + "application/json;odata.metadata=full;odata.streaming=false": { + "schema": { + "$ref": "#/components/schemas/FolderAssignUsersRequest" + } + }, + "application/json;odata.metadata=full": { + "schema": { + "$ref": "#/components/schemas/FolderAssignUsersRequest" + } + }, + "application/json;odata.metadata=none;odata.streaming=true": { + "schema": { + "$ref": "#/components/schemas/FolderAssignUsersRequest" + } + }, + "application/json;odata.metadata=none;odata.streaming=false": { + "schema": { + "$ref": "#/components/schemas/FolderAssignUsersRequest" + } + }, + "application/json;odata.metadata=none": { + "schema": { + "$ref": "#/components/schemas/FolderAssignUsersRequest" + } + }, + "application/json;odata.streaming=true": { + "schema": { + "$ref": "#/components/schemas/FolderAssignUsersRequest" + } + }, + "application/json;odata.streaming=false": { + "schema": { + "$ref": "#/components/schemas/FolderAssignUsersRequest" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/FolderAssignUsersRequest" + } + }, + "application/json-patch+json": { + "schema": { + "$ref": "#/components/schemas/FolderAssignUsersRequest" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/FolderAssignUsersRequest" + } + } + }, + "required": false + }, + "responses": { + "204": { + "description": "No Content", + "content": {} + } + }, + "security": [ + { + "OAuth2": [] + } + ], + "x-codegen-request-body-name": "body" + } + }, + "/odata/Folders/UiPath.Server.Configuration.OData.GetAllRolesForUser(username='{username}',skip={skip},take={take})": { + "get": { + "tags": [ + "Folders" + ], + "summary": "Returns a page of the user-folder assignments for the input user, including the roles for each folder.\r\nThe response also includes the folders assigned to the directory groups of the user.\r\nThe distinction between the folders assigned directly to the user and the ones assigned to one of his groups\r\ncan be made via the User field of the response.\r\nLIMITATION: If URI parameters contain special characters (eg. \\, /), use instead api/FoldersNavigation/GetAllRolesForUser endpoint.", + "description": "OAuth required scopes: OR.Folders or OR.Folders.Read.\r\n\r\nRequired permissions: (Units.View or SubFolders.View - Gets roles from all folders or only from folders where user has SubFolders.View permission).", + "operationId": "Folders_GetAllRolesForUserByUsernameAndSkipAndTake", + "parameters": [ + { + "name": "username", + "in": "path", + "description": "User name", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "skip", + "in": "path", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "take", + "in": "path", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "type", + "in": "query", + "schema": { + "type": "string", + "default": "User", + "enum": [ + "User", + "Group", + "Machine", + "Robot", + "ExternalApplication" + ], + "x-ms-enum": { + "name": "DirectoryObjectType", + "modelAsString": false + } + }, + "x-ms-enum": { + "name": "DirectoryObjectType", + "modelAsString": false + } + }, + { + "name": "$expand", + "in": "query", + "description": "Indicates the related entities to be represented inline. The maximum depth is 2.", + "schema": { + "type": "string" + } + }, + { + "name": "$select", + "in": "query", + "description": "Limits the properties returned in the result.", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/UserRoleAssignmentsDto" + } + } + } + } + }, + "security": [ + { + "OAuth2": [] + } + ] + } + }, + "/odata/Folders/UiPath.Server.Configuration.OData.GetByKey(identifier={identifier})": { + "get": { + "tags": [ + "Folders" + ], + "summary": "Gets a single folder, based on its Key.", + "description": "OAuth required scopes: OR.Folders or OR.Folders.Read.\r\n\r\nRequired permissions: (Units.View or SubFolders.View - Gets any folder or only the folder if user has SubFolders.View permission on it or the user is assigned to the folder.).", + "operationId": "Folders_GetByKeyByIdentifier", + "parameters": [ + { + "name": "identifier", + "in": "path", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "$expand", + "in": "query", + "description": "Indicates the related entities to be represented inline. The maximum depth is 2.", + "schema": { + "type": "string" + } + }, + { + "name": "$filter", + "in": "query", + "description": "Restricts the set of items returned. The maximum number of expressions is 100.", + "schema": { + "type": "string" + } + }, + { + "name": "$select", + "in": "query", + "description": "Limits the properties returned in the result.", + "schema": { + "type": "string" + } + }, + { + "name": "$orderby", + "in": "query", + "description": "Specifies the order in which items are returned. The maximum number of expressions is 5.", + "schema": { + "type": "string" + } + }, + { + "name": "$top", + "in": "query", + "description": "Limits the number of items returned from a collection. The maximum value is 1000.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "$skip", + "in": "query", + "description": "Excludes the specified number of items of the queried collection from the result.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "$count", + "in": "query", + "description": "Indicates whether the total count of items within a collection are returned in the result.", + "schema": { + "type": "boolean" + } + } + ], + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/FolderDto" + } + } + } + } + }, + "security": [ + { + "OAuth2": [] + } + ] + } + }, + "/odata/Folders/UiPath.Server.Configuration.OData.GetMachinesForFolder(key={key})": { + "get": { + "tags": [ + "Folders" + ], + "summary": "Returns the machines assigned to a folder.", + "description": "OAuth required scopes: OR.Folders or OR.Folders.Read.\r\n\r\nRequired permissions: (Units.View or SubFolders.View - Gets machines for any folder or only if user has SubFolders.View permission on folder).", + "operationId": "Folders_GetMachinesForFolderByKey", + "parameters": [ + { + "name": "key", + "in": "path", + "required": true, + "schema": { + "type": "integer", + "format": "int64" + } + }, + { + "name": "$expand", + "in": "query", + "description": "Indicates the related entities to be represented inline. The maximum depth is 2.", + "schema": { + "type": "string" + } + }, + { + "name": "$filter", + "in": "query", + "description": "Restricts the set of items returned. The maximum number of expressions is 100.", + "schema": { + "type": "string" + } + }, + { + "name": "$select", + "in": "query", + "description": "Limits the properties returned in the result.", + "schema": { + "type": "string" + } + }, + { + "name": "$orderby", + "in": "query", + "description": "Specifies the order in which items are returned. The maximum number of expressions is 5.", + "schema": { + "type": "string" + } + }, + { + "name": "$top", + "in": "query", + "description": "Limits the number of items returned from a collection. The maximum value is 1000.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "$skip", + "in": "query", + "description": "Excludes the specified number of items of the queried collection from the result.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "$count", + "in": "query", + "description": "Indicates whether the total count of items within a collection are returned in the result.", + "schema": { + "type": "boolean" + } + } + ], + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ODataValueOfIEnumerableOfMachineFolderDto" + } + } + } + } + }, + "security": [ + { + "OAuth2": [] + } + ] + } + }, + "/odata/Folders/UiPath.Server.Configuration.OData.GetMoveFolderMachinesChanges": { + "get": { + "tags": [ + "Folders" + ], + "summary": "Gets the machine changes when moving a folder", + "description": "OAuth required scopes: OR.Folders or OR.Folders.Read.\r\n\r\nRequired permissions: (SubFolders.Delete - Deletes folder only if user has SubFolders.Delete permission on it) and (Units.Create or SubFolders.Create - Creates root or subfolder or only subfolder if user has SubFolders.Create permission on parent) and (Units.Edit or SubFolders.Edit - Edits any folder or only if user has SubFolders.Edit permission on it).", + "operationId": "Folders_GetMoveFolderMachinesChanges", + "parameters": [ + { + "name": "folderId", + "in": "query", + "description": "Id of the folder to be moved", + "schema": { + "type": "integer", + "format": "int64" + } + }, + { + "name": "targetParentId", + "in": "query", + "description": "Id of the target parent", + "schema": { + "type": "integer", + "format": "int64" + } + }, + { + "name": "$expand", + "in": "query", + "description": "Indicates the related entities to be represented inline. The maximum depth is 2.", + "schema": { + "type": "string" + } + }, + { + "name": "$filter", + "in": "query", + "description": "Restricts the set of items returned. The maximum number of expressions is 100.", + "schema": { + "type": "string" + } + }, + { + "name": "$select", + "in": "query", + "description": "Limits the properties returned in the result.", + "schema": { + "type": "string" + } + }, + { + "name": "$orderby", + "in": "query", + "description": "Specifies the order in which items are returned. The maximum number of expressions is 5.", + "schema": { + "type": "string" + } + }, + { + "name": "$count", + "in": "query", + "description": "Indicates whether the total count of items within a collection are returned in the result.", + "schema": { + "type": "boolean" + } + } + ], + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ODataValueOfIEnumerableOfMoveFolderMachineChange" + } + } + } + } + }, + "security": [ + { + "OAuth2": [] + } + ] + } + }, + "/odata/Folders/UiPath.Server.Configuration.OData.GetSubfoldersWithAssignedMachine": { + "get": { + "tags": [ + "Folders" + ], + "summary": "Gets direct machine assignments for all subfolders of the specific folder", + "description": "OAuth required scopes: OR.Folders or OR.Folders.Read.\r\n\r\nRequired permissions: (Units.View or SubFolders.View - Gets the subfolders in which the machines is directly assigned for any folder or for subfolders only).", + "operationId": "Folders_GetSubfoldersWithAssignedMachine", + "parameters": [ + { + "name": "rootFolderId", + "in": "query", + "schema": { + "type": "integer", + "format": "int64" + } + }, + { + "name": "machineId", + "in": "query", + "schema": { + "type": "integer", + "format": "int64" + } + }, + { + "name": "$expand", + "in": "query", + "description": "Indicates the related entities to be represented inline. The maximum depth is 2.", + "schema": { + "type": "string" + } + }, + { + "name": "$filter", + "in": "query", + "description": "Restricts the set of items returned. The maximum number of expressions is 100.", + "schema": { + "type": "string" + } + }, + { + "name": "$select", + "in": "query", + "description": "Limits the properties returned in the result.", + "schema": { + "type": "string" + } + }, + { + "name": "$orderby", + "in": "query", + "description": "Specifies the order in which items are returned. The maximum number of expressions is 5.", + "schema": { + "type": "string" + } + }, + { + "name": "$top", + "in": "query", + "description": "Limits the number of items returned from a collection. The maximum value is 1000.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "$skip", + "in": "query", + "description": "Excludes the specified number of items of the queried collection from the result.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "$count", + "in": "query", + "description": "Indicates whether the total count of items within a collection are returned in the result.", + "schema": { + "type": "boolean" + } + } + ], + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ODataValueOfIEnumerableOfFolderDto" + } + } + } + } + }, + "security": [ + { + "OAuth2": [] + } + ] + } + }, + "/odata/Folders/UiPath.Server.Configuration.OData.GetUsersForFolder(key={key},includeInherited={includeInherited})": { + "get": { + "tags": [ + "Folders" + ], + "summary": "Returns the users who have access to a folder and optionally the fine-grained roles each one\r\nhas on that folder.", + "description": "OAuth required scopes: OR.Folders or OR.Folders.Read.\r\n\r\nRequired permissions: (Units.View or SubFolders.View or Assets.Create or Assets.Edit - Gets users for any folder or if the user has SubFolders.View/Assets.Create/Assets.Edit permission on the provided folder).", + "operationId": "Folders_GetUsersForFolderByKeyAndIncludeinherited", + "parameters": [ + { + "name": "key", + "in": "path", + "required": true, + "schema": { + "type": "integer", + "format": "int64" + } + }, + { + "name": "includeInherited", + "in": "path", + "description": "If true, the response will include users inherited from ancestors", + "required": true, + "schema": { + "type": "boolean" + } + }, + { + "name": "includeAlertsEnabled", + "in": "query", + "description": "If true, the response will include alert preferences for each user", + "schema": { + "type": "boolean", + "default": false + } + }, + { + "name": "$expand", + "in": "query", + "description": "Indicates the related entities to be represented inline. The maximum depth is 2.", + "schema": { + "type": "string" + } + }, + { + "name": "$filter", + "in": "query", + "description": "Restricts the set of items returned. The maximum number of expressions is 100.", + "schema": { + "type": "string" + } + }, + { + "name": "$select", + "in": "query", + "description": "Limits the properties returned in the result.", + "schema": { + "type": "string" + } + }, + { + "name": "$orderby", + "in": "query", + "description": "Specifies the order in which items are returned. The maximum number of expressions is 5.", + "schema": { + "type": "string" + } + }, + { + "name": "$top", + "in": "query", + "description": "Limits the number of items returned from a collection. The maximum value is 1000.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "$skip", + "in": "query", + "description": "Excludes the specified number of items of the queried collection from the result.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "$count", + "in": "query", + "description": "Indicates whether the total count of items within a collection are returned in the result.", + "schema": { + "type": "boolean" + } + } + ], + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ODataValueOfIEnumerableOfUserRolesDto" + } + } + } + } + }, + "security": [ + { + "OAuth2": [] + } + ] + } + }, + "/odata/Folders/UiPath.Server.Configuration.OData.ToggleFolderMachineInherit": { + "post": { + "tags": [ + "Folders" + ], + "summary": "Toggle machine propagation for a folder to all subfolders.", + "description": "OAuth required scopes: OR.Folders or OR.Folders.Write.\r\n\r\nRequired permissions: (Units.Edit or SubFolders.Edit - Propagate machine to subfolders only if Units.Edit permission is provided or only if SubFolders.Edit permission on all folders provided).", + "operationId": "Folders_ToggleFolderMachineInherit", + "requestBody": { + "content": { + "application/json;odata.metadata=minimal;odata.streaming=true": { + "schema": { + "$ref": "#/components/schemas/FolderMachineInheritDto" + } + }, + "application/json;odata.metadata=minimal;odata.streaming=false": { + "schema": { + "$ref": "#/components/schemas/FolderMachineInheritDto" + } + }, + "application/json;odata.metadata=minimal": { + "schema": { + "$ref": "#/components/schemas/FolderMachineInheritDto" + } + }, + "application/json;odata.metadata=full;odata.streaming=true": { + "schema": { + "$ref": "#/components/schemas/FolderMachineInheritDto" + } + }, + "application/json;odata.metadata=full;odata.streaming=false": { + "schema": { + "$ref": "#/components/schemas/FolderMachineInheritDto" + } + }, + "application/json;odata.metadata=full": { + "schema": { + "$ref": "#/components/schemas/FolderMachineInheritDto" + } + }, + "application/json;odata.metadata=none;odata.streaming=true": { + "schema": { + "$ref": "#/components/schemas/FolderMachineInheritDto" + } + }, + "application/json;odata.metadata=none;odata.streaming=false": { + "schema": { + "$ref": "#/components/schemas/FolderMachineInheritDto" + } + }, + "application/json;odata.metadata=none": { + "schema": { + "$ref": "#/components/schemas/FolderMachineInheritDto" + } + }, + "application/json;odata.streaming=true": { + "schema": { + "$ref": "#/components/schemas/FolderMachineInheritDto" + } + }, + "application/json;odata.streaming=false": { + "schema": { + "$ref": "#/components/schemas/FolderMachineInheritDto" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/FolderMachineInheritDto" + } + }, + "application/json-patch+json": { + "schema": { + "$ref": "#/components/schemas/FolderMachineInheritDto" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/FolderMachineInheritDto" + } + } + }, + "required": false + }, + "responses": { + "200": { + "description": "Success", + "content": {} + } + }, + "security": [ + { + "OAuth2": [] + } + ], + "x-codegen-request-body-name": "body" + } + }, + "/odata/Folders/UiPath.Server.Configuration.OData.UpdateMachinesToFolderAssociations": { + "post": { + "tags": [ + "Folders" + ], + "summary": "Add and remove machine associations to a folder", + "description": "OAuth required scopes: OR.Folders or OR.Folders.Write.\r\n\r\nRequired permissions: (Units.Edit or SubFolders.Edit - Update machines to any folder associations or only if user has SubFolders.Edit permission on all folders provided).", + "operationId": "Folders_UpdateMachinesToFolderAssociations", + "requestBody": { + "content": { + "application/json;odata.metadata=minimal;odata.streaming=true": { + "schema": { + "$ref": "#/components/schemas/UpdateMachinesToFolderAssociationsRequest" + } + }, + "application/json;odata.metadata=minimal;odata.streaming=false": { + "schema": { + "$ref": "#/components/schemas/UpdateMachinesToFolderAssociationsRequest" + } + }, + "application/json;odata.metadata=minimal": { + "schema": { + "$ref": "#/components/schemas/UpdateMachinesToFolderAssociationsRequest" + } + }, + "application/json;odata.metadata=full;odata.streaming=true": { + "schema": { + "$ref": "#/components/schemas/UpdateMachinesToFolderAssociationsRequest" + } + }, + "application/json;odata.metadata=full;odata.streaming=false": { + "schema": { + "$ref": "#/components/schemas/UpdateMachinesToFolderAssociationsRequest" + } + }, + "application/json;odata.metadata=full": { + "schema": { + "$ref": "#/components/schemas/UpdateMachinesToFolderAssociationsRequest" + } + }, + "application/json;odata.metadata=none;odata.streaming=true": { + "schema": { + "$ref": "#/components/schemas/UpdateMachinesToFolderAssociationsRequest" + } + }, + "application/json;odata.metadata=none;odata.streaming=false": { + "schema": { + "$ref": "#/components/schemas/UpdateMachinesToFolderAssociationsRequest" + } + }, + "application/json;odata.metadata=none": { + "schema": { + "$ref": "#/components/schemas/UpdateMachinesToFolderAssociationsRequest" + } + }, + "application/json;odata.streaming=true": { + "schema": { + "$ref": "#/components/schemas/UpdateMachinesToFolderAssociationsRequest" + } + }, + "application/json;odata.streaming=false": { + "schema": { + "$ref": "#/components/schemas/UpdateMachinesToFolderAssociationsRequest" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/UpdateMachinesToFolderAssociationsRequest" + } + }, + "application/json-patch+json": { + "schema": { + "$ref": "#/components/schemas/UpdateMachinesToFolderAssociationsRequest" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/UpdateMachinesToFolderAssociationsRequest" + } + } + }, + "required": false + }, + "responses": { + "204": { + "description": "No Content", + "content": {} + } + }, + "security": [ + { + "OAuth2": [] + } + ], + "x-codegen-request-body-name": "body" + } + }, + "/odata/HostLicenses": { + "get": { + "tags": [ + "HostLicenses" + ], + "summary": "Gets host licenses.", + "description": "OAuth required scopes: OR.Administration or OR.Administration.Read.\r\n\r\nHost only. Requires authentication.", + "operationId": "HostLicenses_Get", + "parameters": [ + { + "name": "$expand", + "in": "query", + "description": "Indicates the related entities to be represented inline. The maximum depth is 2.", + "schema": { + "type": "string" + } + }, + { + "name": "$filter", + "in": "query", + "description": "Restricts the set of items returned. The maximum number of expressions is 100.", + "schema": { + "type": "string" + } + }, + { + "name": "$select", + "in": "query", + "description": "Limits the properties returned in the result.", + "schema": { + "type": "string" + } + }, + { + "name": "$orderby", + "in": "query", + "description": "Specifies the order in which items are returned. The maximum number of expressions is 5.", + "schema": { + "type": "string" + } + }, + { + "name": "$top", + "in": "query", + "description": "Limits the number of items returned from a collection. The maximum value is 1000.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "$skip", + "in": "query", + "description": "Excludes the specified number of items of the queried collection from the result.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "$count", + "in": "query", + "description": "Indicates whether the total count of items within a collection are returned in the result.", + "schema": { + "type": "boolean" + } + } + ], + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ODataValueOfIEnumerableOfHostLicenseDto" + } + } + } + } + }, + "security": [ + { + "OAuth2": [] + } + ] + } + }, + "/odata/HostLicenses({key})": { + "get": { + "tags": [ + "HostLicenses" + ], + "summary": "Gets a single host license based on its key.", + "description": "OAuth required scopes: OR.Administration or OR.Administration.Read.\r\n\r\nHost only. Requires authentication.", + "operationId": "HostLicenses_GetById", + "parameters": [ + { + "name": "key", + "in": "path", + "required": true, + "schema": { + "type": "integer", + "format": "int64" + } + }, + { + "name": "$expand", + "in": "query", + "description": "Indicates the related entities to be represented inline. The maximum depth is 2.", + "schema": { + "type": "string" + } + }, + { + "name": "$select", + "in": "query", + "description": "Limits the properties returned in the result.", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/HostLicenseDto" + } + } + } + }, + "404": { + "description": "Not Found", + "content": {} + } + }, + "security": [ + { + "OAuth2": [] + } + ] + }, + "delete": { + "tags": [ + "HostLicenses" + ], + "summary": "Deletes a host license based on its key.", + "description": "OAuth required scopes: OR.Administration or OR.Administration.Write.\r\n\r\nHost only. Requires authentication.", + "operationId": "HostLicenses_DeleteById", + "parameters": [ + { + "name": "key", + "in": "path", + "required": true, + "schema": { + "type": "integer", + "format": "int64" + } + } + ], + "responses": { + "204": { + "description": "No Content", + "content": {} + }, + "404": { + "description": "Not Found", + "content": {} + } + }, + "security": [ + { + "OAuth2": [] + } + ] + } + }, + "/odata/HostLicenses/UiPath.Server.Configuration.OData.ActivateLicenseOffline": { + "post": { + "tags": [ + "HostLicenses" + ], + "summary": "Uploads a new offline license activation.\r\nThe content of the license is sent as a file embedded in the HTTP request.", + "description": "OAuth required scopes: OR.Administration or OR.Administration.Write.\r\n\r\nHost only. Requires authentication.", + "operationId": "HostLicenses_ActivateLicenseOffline", + "requestBody": { + "content": { + "multipart/form-data": { + "schema": { + "required": [ + "file" + ], + "type": "object", + "properties": { + "file": { + "type": "string", + "format": "binary" + } + } + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "Success", + "content": {} + }, + "400": { + "description": "Bad Request", + "content": {} + } + }, + "security": [ + { + "OAuth2": [] + } + ] + } + }, + "/odata/HostLicenses/UiPath.Server.Configuration.OData.ActivateLicenseOnline": { + "post": { + "tags": [ + "HostLicenses" + ], + "summary": "Activate the license for the host", + "description": "OAuth required scopes: OR.Administration or OR.Administration.Write.\r\n\r\nHost only. Requires authentication.", + "operationId": "HostLicenses_ActivateLicenseOnline", + "requestBody": { + "content": { + "application/json;odata.metadata=minimal;odata.streaming=true": { + "schema": { + "$ref": "#/components/schemas/LicenseRequest" + } + }, + "application/json;odata.metadata=minimal;odata.streaming=false": { + "schema": { + "$ref": "#/components/schemas/LicenseRequest" + } + }, + "application/json;odata.metadata=minimal": { + "schema": { + "$ref": "#/components/schemas/LicenseRequest" + } + }, + "application/json;odata.metadata=full;odata.streaming=true": { + "schema": { + "$ref": "#/components/schemas/LicenseRequest" + } + }, + "application/json;odata.metadata=full;odata.streaming=false": { + "schema": { + "$ref": "#/components/schemas/LicenseRequest" + } + }, + "application/json;odata.metadata=full": { + "schema": { + "$ref": "#/components/schemas/LicenseRequest" + } + }, + "application/json;odata.metadata=none;odata.streaming=true": { + "schema": { + "$ref": "#/components/schemas/LicenseRequest" + } + }, + "application/json;odata.metadata=none;odata.streaming=false": { + "schema": { + "$ref": "#/components/schemas/LicenseRequest" + } + }, + "application/json;odata.metadata=none": { + "schema": { + "$ref": "#/components/schemas/LicenseRequest" + } + }, + "application/json;odata.streaming=true": { + "schema": { + "$ref": "#/components/schemas/LicenseRequest" + } + }, + "application/json;odata.streaming=false": { + "schema": { + "$ref": "#/components/schemas/LicenseRequest" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/LicenseRequest" + } + }, + "application/json-patch+json": { + "schema": { + "$ref": "#/components/schemas/LicenseRequest" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/LicenseRequest" + } + } + }, + "required": false + }, + "responses": { + "200": { + "description": "Success", + "content": {} + }, + "400": { + "description": "Invalid parameters", + "content": {} + } + }, + "security": [ + { + "OAuth2": [] + } + ], + "x-codegen-request-body-name": "body" + } + }, + "/odata/HostLicenses/UiPath.Server.Configuration.OData.DeactivateLicenseOnline": { + "post": { + "tags": [ + "HostLicenses" + ], + "summary": "Deactivate the license for the host", + "description": "OAuth required scopes: OR.Administration or OR.Administration.Write.\r\n\r\nHost only. Requires authentication.", + "operationId": "HostLicenses_DeactivateLicenseOnline", + "requestBody": { + "content": { + "application/json;odata.metadata=minimal;odata.streaming=true": { + "schema": { + "$ref": "#/components/schemas/DeactivateLicenseRequest" + } + }, + "application/json;odata.metadata=minimal;odata.streaming=false": { + "schema": { + "$ref": "#/components/schemas/DeactivateLicenseRequest" + } + }, + "application/json;odata.metadata=minimal": { + "schema": { + "$ref": "#/components/schemas/DeactivateLicenseRequest" + } + }, + "application/json;odata.metadata=full;odata.streaming=true": { + "schema": { + "$ref": "#/components/schemas/DeactivateLicenseRequest" + } + }, + "application/json;odata.metadata=full;odata.streaming=false": { + "schema": { + "$ref": "#/components/schemas/DeactivateLicenseRequest" + } + }, + "application/json;odata.metadata=full": { + "schema": { + "$ref": "#/components/schemas/DeactivateLicenseRequest" + } + }, + "application/json;odata.metadata=none;odata.streaming=true": { + "schema": { + "$ref": "#/components/schemas/DeactivateLicenseRequest" + } + }, + "application/json;odata.metadata=none;odata.streaming=false": { + "schema": { + "$ref": "#/components/schemas/DeactivateLicenseRequest" + } + }, + "application/json;odata.metadata=none": { + "schema": { + "$ref": "#/components/schemas/DeactivateLicenseRequest" + } + }, + "application/json;odata.streaming=true": { + "schema": { + "$ref": "#/components/schemas/DeactivateLicenseRequest" + } + }, + "application/json;odata.streaming=false": { + "schema": { + "$ref": "#/components/schemas/DeactivateLicenseRequest" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/DeactivateLicenseRequest" + } + }, + "application/json-patch+json": { + "schema": { + "$ref": "#/components/schemas/DeactivateLicenseRequest" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/DeactivateLicenseRequest" + } + } + }, + "required": false + }, + "responses": { + "200": { + "description": "Success", + "content": {} + }, + "400": { + "description": "Invalid parameters", + "content": {} + } + }, + "security": [ + { + "OAuth2": [] + } + ], + "x-codegen-request-body-name": "body" + } + }, + "/odata/HostLicenses/UiPath.Server.Configuration.OData.DeleteTenantLicense": { + "post": { + "tags": [ + "HostLicenses" + ], + "summary": "Deletes a tenant license based on its key.", + "description": "OAuth required scopes: OR.Administration or OR.Administration.Write.\r\n\r\nHost only. Requires authentication.", + "operationId": "HostLicenses_DeleteTenantLicense", + "requestBody": { + "content": { + "application/json;odata.metadata=minimal;odata.streaming=true": { + "schema": { + "$ref": "#/components/schemas/HostDeleteTenantLicenseRequest" + } + }, + "application/json;odata.metadata=minimal;odata.streaming=false": { + "schema": { + "$ref": "#/components/schemas/HostDeleteTenantLicenseRequest" + } + }, + "application/json;odata.metadata=minimal": { + "schema": { + "$ref": "#/components/schemas/HostDeleteTenantLicenseRequest" + } + }, + "application/json;odata.metadata=full;odata.streaming=true": { + "schema": { + "$ref": "#/components/schemas/HostDeleteTenantLicenseRequest" + } + }, + "application/json;odata.metadata=full;odata.streaming=false": { + "schema": { + "$ref": "#/components/schemas/HostDeleteTenantLicenseRequest" + } + }, + "application/json;odata.metadata=full": { + "schema": { + "$ref": "#/components/schemas/HostDeleteTenantLicenseRequest" + } + }, + "application/json;odata.metadata=none;odata.streaming=true": { + "schema": { + "$ref": "#/components/schemas/HostDeleteTenantLicenseRequest" + } + }, + "application/json;odata.metadata=none;odata.streaming=false": { + "schema": { + "$ref": "#/components/schemas/HostDeleteTenantLicenseRequest" + } + }, + "application/json;odata.metadata=none": { + "schema": { + "$ref": "#/components/schemas/HostDeleteTenantLicenseRequest" + } + }, + "application/json;odata.streaming=true": { + "schema": { + "$ref": "#/components/schemas/HostDeleteTenantLicenseRequest" + } + }, + "application/json;odata.streaming=false": { + "schema": { + "$ref": "#/components/schemas/HostDeleteTenantLicenseRequest" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/HostDeleteTenantLicenseRequest" + } + }, + "application/json-patch+json": { + "schema": { + "$ref": "#/components/schemas/HostDeleteTenantLicenseRequest" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/HostDeleteTenantLicenseRequest" + } + } + }, + "required": false + }, + "responses": { + "200": { + "description": "Success", + "content": {} + }, + "400": { + "description": "Invalid parameters", + "content": {} + } + }, + "security": [ + { + "OAuth2": [] + } + ], + "x-codegen-request-body-name": "body" + } + }, + "/odata/HostLicenses/UiPath.Server.Configuration.OData.GetDeactivateLicenseOffline": { + "post": { + "tags": [ + "HostLicenses" + ], + "summary": "Deactivate the license offline for the host", + "description": "OAuth required scopes: OR.Administration or OR.Administration.Write.\r\n\r\nHost only. Requires authentication.", + "operationId": "HostLicenses_GetDeactivateLicenseOffline", + "parameters": [ + { + "name": "$expand", + "in": "query", + "description": "Indicates the related entities to be represented inline. The maximum depth is 2.", + "schema": { + "type": "string" + } + }, + { + "name": "$select", + "in": "query", + "description": "Limits the properties returned in the result.", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json;odata.metadata=minimal;odata.streaming=true": { + "schema": { + "$ref": "#/components/schemas/DeactivateLicenseRequest" + } + }, + "application/json;odata.metadata=minimal;odata.streaming=false": { + "schema": { + "$ref": "#/components/schemas/DeactivateLicenseRequest" + } + }, + "application/json;odata.metadata=minimal": { + "schema": { + "$ref": "#/components/schemas/DeactivateLicenseRequest" + } + }, + "application/json;odata.metadata=full;odata.streaming=true": { + "schema": { + "$ref": "#/components/schemas/DeactivateLicenseRequest" + } + }, + "application/json;odata.metadata=full;odata.streaming=false": { + "schema": { + "$ref": "#/components/schemas/DeactivateLicenseRequest" + } + }, + "application/json;odata.metadata=full": { + "schema": { + "$ref": "#/components/schemas/DeactivateLicenseRequest" + } + }, + "application/json;odata.metadata=none;odata.streaming=true": { + "schema": { + "$ref": "#/components/schemas/DeactivateLicenseRequest" + } + }, + "application/json;odata.metadata=none;odata.streaming=false": { + "schema": { + "$ref": "#/components/schemas/DeactivateLicenseRequest" + } + }, + "application/json;odata.metadata=none": { + "schema": { + "$ref": "#/components/schemas/DeactivateLicenseRequest" + } + }, + "application/json;odata.streaming=true": { + "schema": { + "$ref": "#/components/schemas/DeactivateLicenseRequest" + } + }, + "application/json;odata.streaming=false": { + "schema": { + "$ref": "#/components/schemas/DeactivateLicenseRequest" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/DeactivateLicenseRequest" + } + }, + "application/json-patch+json": { + "schema": { + "$ref": "#/components/schemas/DeactivateLicenseRequest" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/DeactivateLicenseRequest" + } + } + }, + "required": false + }, + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ODataValueOfString" + } + } + } + }, + "400": { + "description": "Invalid parameters", + "content": {} + } + }, + "security": [ + { + "OAuth2": [] + } + ], + "x-codegen-request-body-name": "body" + } + }, + "/odata/HostLicenses/UiPath.Server.Configuration.OData.GetLicenseOffline": { + "post": { + "tags": [ + "HostLicenses" + ], + "summary": "Create the offline activation request for the host", + "description": "OAuth required scopes: OR.Administration or OR.Administration.Write.\r\n\r\nHost only. Requires authentication.", + "operationId": "HostLicenses_GetLicenseOffline", + "parameters": [ + { + "name": "$expand", + "in": "query", + "description": "Indicates the related entities to be represented inline. The maximum depth is 2.", + "schema": { + "type": "string" + } + }, + { + "name": "$select", + "in": "query", + "description": "Limits the properties returned in the result.", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json;odata.metadata=minimal;odata.streaming=true": { + "schema": { + "$ref": "#/components/schemas/LicenseRequest" + } + }, + "application/json;odata.metadata=minimal;odata.streaming=false": { + "schema": { + "$ref": "#/components/schemas/LicenseRequest" + } + }, + "application/json;odata.metadata=minimal": { + "schema": { + "$ref": "#/components/schemas/LicenseRequest" + } + }, + "application/json;odata.metadata=full;odata.streaming=true": { + "schema": { + "$ref": "#/components/schemas/LicenseRequest" + } + }, + "application/json;odata.metadata=full;odata.streaming=false": { + "schema": { + "$ref": "#/components/schemas/LicenseRequest" + } + }, + "application/json;odata.metadata=full": { + "schema": { + "$ref": "#/components/schemas/LicenseRequest" + } + }, + "application/json;odata.metadata=none;odata.streaming=true": { + "schema": { + "$ref": "#/components/schemas/LicenseRequest" + } + }, + "application/json;odata.metadata=none;odata.streaming=false": { + "schema": { + "$ref": "#/components/schemas/LicenseRequest" + } + }, + "application/json;odata.metadata=none": { + "schema": { + "$ref": "#/components/schemas/LicenseRequest" + } + }, + "application/json;odata.streaming=true": { + "schema": { + "$ref": "#/components/schemas/LicenseRequest" + } + }, + "application/json;odata.streaming=false": { + "schema": { + "$ref": "#/components/schemas/LicenseRequest" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/LicenseRequest" + } + }, + "application/json-patch+json": { + "schema": { + "$ref": "#/components/schemas/LicenseRequest" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/LicenseRequest" + } + } + }, + "required": false + }, + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ODataValueOfString" + } + } + } + }, + "400": { + "description": "Invalid parameters", + "content": {} + } + }, + "security": [ + { + "OAuth2": [] + } + ], + "x-codegen-request-body-name": "body" + } + }, + "/odata/HostLicenses/UiPath.Server.Configuration.OData.GetTenantLicense(tenantId={tenantId})": { + "get": { + "tags": [ + "HostLicenses" + ], + "summary": "Gets a single tenant license based on its id.", + "description": "OAuth required scopes: OR.Administration or OR.Administration.Read.\r\n\r\nHost only. Requires authentication.", + "operationId": "HostLicenses_GetTenantLicenseByTenantid", + "parameters": [ + { + "name": "tenantId", + "in": "path", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "$expand", + "in": "query", + "description": "Indicates the related entities to be represented inline. The maximum depth is 2.", + "schema": { + "type": "string" + } + }, + { + "name": "$select", + "in": "query", + "description": "Limits the properties returned in the result.", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/LicenseDto" + } + } + } + } + }, + "security": [ + { + "OAuth2": [] + } + ] + } + }, + "/odata/HostLicenses/UiPath.Server.Configuration.OData.SetTenantLicense": { + "post": { + "tags": [ + "HostLicenses" + ], + "summary": "Sets the license for a specific tenant", + "description": "OAuth required scopes: OR.Administration or OR.Administration.Write.\r\n\r\nHost only. Requires authentication.", + "operationId": "HostLicenses_SetTenantLicense", + "requestBody": { + "content": { + "application/json;odata.metadata=minimal;odata.streaming=true": { + "schema": { + "$ref": "#/components/schemas/HostSetTenantLicenseRequest" + } + }, + "application/json;odata.metadata=minimal;odata.streaming=false": { + "schema": { + "$ref": "#/components/schemas/HostSetTenantLicenseRequest" + } + }, + "application/json;odata.metadata=minimal": { + "schema": { + "$ref": "#/components/schemas/HostSetTenantLicenseRequest" + } + }, + "application/json;odata.metadata=full;odata.streaming=true": { + "schema": { + "$ref": "#/components/schemas/HostSetTenantLicenseRequest" + } + }, + "application/json;odata.metadata=full;odata.streaming=false": { + "schema": { + "$ref": "#/components/schemas/HostSetTenantLicenseRequest" + } + }, + "application/json;odata.metadata=full": { + "schema": { + "$ref": "#/components/schemas/HostSetTenantLicenseRequest" + } + }, + "application/json;odata.metadata=none;odata.streaming=true": { + "schema": { + "$ref": "#/components/schemas/HostSetTenantLicenseRequest" + } + }, + "application/json;odata.metadata=none;odata.streaming=false": { + "schema": { + "$ref": "#/components/schemas/HostSetTenantLicenseRequest" + } + }, + "application/json;odata.metadata=none": { + "schema": { + "$ref": "#/components/schemas/HostSetTenantLicenseRequest" + } + }, + "application/json;odata.streaming=true": { + "schema": { + "$ref": "#/components/schemas/HostSetTenantLicenseRequest" + } + }, + "application/json;odata.streaming=false": { + "schema": { + "$ref": "#/components/schemas/HostSetTenantLicenseRequest" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/HostSetTenantLicenseRequest" + } + }, + "application/json-patch+json": { + "schema": { + "$ref": "#/components/schemas/HostSetTenantLicenseRequest" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/HostSetTenantLicenseRequest" + } + } + }, + "required": false + }, + "responses": { + "200": { + "description": "Success", + "content": {} + }, + "400": { + "description": "Invalid parameters", + "content": {} + } + }, + "security": [ + { + "OAuth2": [] + } + ], + "x-codegen-request-body-name": "body" + } + }, + "/odata/HostLicenses/UiPath.Server.Configuration.OData.UpdateLicenseOnline": { + "post": { + "tags": [ + "HostLicenses" + ], + "summary": "Update the license for the host", + "description": "OAuth required scopes: OR.Administration or OR.Administration.Write.\r\n\r\nHost only. Requires authentication.", + "operationId": "HostLicenses_UpdateLicenseOnline", + "responses": { + "200": { + "description": "Success", + "content": {} + }, + "400": { + "description": "Invalid parameters", + "content": {} + } + }, + "security": [ + { + "OAuth2": [] + } + ] + } + }, + "/odata/HostLicenses/UiPath.Server.Configuration.OData.UploadLicense": { + "post": { + "tags": [ + "HostLicenses" + ], + "summary": "Uploads a new host license file that was previously generated with Regutil.\r\nThe content of the license is sent as a file embedded in the HTTP request.", + "description": "OAuth required scopes: OR.Administration or OR.Administration.Write.\r\n\r\nHost only. Requires authentication.", + "operationId": "HostLicenses_UploadLicense", + "parameters": [ + { + "name": "$expand", + "in": "query", + "description": "Indicates the related entities to be represented inline. The maximum depth is 2.", + "schema": { + "type": "string" + } + }, + { + "name": "$select", + "in": "query", + "description": "Limits the properties returned in the result.", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "multipart/form-data": { + "schema": { + "required": [ + "file" + ], + "type": "object", + "properties": { + "file": { + "type": "string", + "format": "binary" + } + } + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/HostLicenseDto" + } + } + } + }, + "400": { + "description": "Bad Request", + "content": {} + } + }, + "security": [ + { + "OAuth2": [] + } + ] + } + }, + "/odata/Jobs": { + "get": { + "tags": [ + "Jobs" + ], + "summary": "Gets Jobs.", + "description": "OAuth required scopes: OR.Jobs or OR.Jobs.Read.\r\n\r\nRequired permissions: Jobs.View.", + "operationId": "Jobs_Get", + "parameters": [ + { + "name": "mandatoryPermissions", + "in": "query", + "description": "If in a cross-folder scenario, these represent the additional permissions\r\n required in the folders the data is retrieved from; all permissions in this set must be met", + "style": "form", + "explode": true, + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + }, + { + "name": "atLeastOnePermissions", + "in": "query", + "description": "If in a cross-folder scenario, these represent the additional permissions\r\n required in the folders the data is retrieved from; at least one permission in this set must be met", + "style": "form", + "explode": true, + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + }, + { + "name": "$expand", + "in": "query", + "description": "Indicates the related entities to be represented inline. The maximum depth is 2.", + "schema": { + "type": "string" + } + }, + { + "name": "$filter", + "in": "query", + "description": "Restricts the set of items returned. The maximum number of expressions is 100.", + "schema": { + "type": "string" + } + }, + { + "name": "$select", + "in": "query", + "description": "Limits the properties returned in the result.", + "schema": { + "type": "string" + } + }, + { + "name": "$orderby", + "in": "query", + "description": "Specifies the order in which items are returned. The maximum number of expressions is 5.", + "schema": { + "type": "string" + } + }, + { + "name": "$top", + "in": "query", + "description": "Limits the number of items returned from a collection. The maximum value is 1000.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "$skip", + "in": "query", + "description": "Excludes the specified number of items of the queried collection from the result.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "$count", + "in": "query", + "description": "Indicates whether the total count of items within a collection are returned in the result.", + "schema": { + "type": "boolean" + } + }, + { + "name": "X-UIPATH-OrganizationUnitId", + "in": "header", + "description": "Folder/OrganizationUnit Id", + "schema": { + "type": "integer", + "format": "int64" + } + } + ], + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ODataValueOfIEnumerableOfJobDto" + } + } + } + } + }, + "security": [ + { + "OAuth2": [] + } + ] + } + }, + "/odata/Jobs({key})": { + "get": { + "tags": [ + "Jobs" + ], + "summary": "Gets a single job.", + "description": "OAuth required scopes: OR.Jobs or OR.Jobs.Read.\r\n\r\nRequired permissions: (Jobs.View).", + "operationId": "Jobs_GetById", + "parameters": [ + { + "name": "key", + "in": "path", + "required": true, + "schema": { + "type": "integer", + "format": "int64" + } + }, + { + "name": "$expand", + "in": "query", + "description": "Indicates the related entities to be represented inline. The maximum depth is 2.", + "schema": { + "type": "string" + } + }, + { + "name": "$select", + "in": "query", + "description": "Limits the properties returned in the result.", + "schema": { + "type": "string" + } + }, + { + "name": "X-UIPATH-OrganizationUnitId", + "in": "header", + "description": "Folder/OrganizationUnit Id", + "schema": { + "type": "integer", + "format": "int64" + } + } + ], + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/JobDto" + } + } + } + } + }, + "security": [ + { + "OAuth2": [] + } + ] + } + }, + "/odata/Jobs({key})/UiPath.Server.Configuration.OData.StopJob": { + "post": { + "tags": [ + "Jobs" + ], + "summary": "Cancels or terminates the specified job.", + "description": "OAuth required scopes: OR.Jobs or OR.Jobs.Write.\r\n\r\nRequired permissions: Jobs.Edit.", + "operationId": "Jobs_StopJobById", + "parameters": [ + { + "name": "key", + "in": "path", + "description": "The specified job's Id.", + "required": true, + "schema": { + "type": "integer", + "format": "int64" + } + }, + { + "name": "X-UIPATH-OrganizationUnitId", + "in": "header", + "description": "Folder/OrganizationUnit Id", + "schema": { + "type": "integer", + "format": "int64" + } + } + ], + "requestBody": { + "description": "Strategy - States whether a job should be soft stopped or killed immediately.", + "content": { + "application/json;odata.metadata=minimal;odata.streaming=true": { + "schema": { + "$ref": "#/components/schemas/StopJobRequest" + } + }, + "application/json;odata.metadata=minimal;odata.streaming=false": { + "schema": { + "$ref": "#/components/schemas/StopJobRequest" + } + }, + "application/json;odata.metadata=minimal": { + "schema": { + "$ref": "#/components/schemas/StopJobRequest" + } + }, + "application/json;odata.metadata=full;odata.streaming=true": { + "schema": { + "$ref": "#/components/schemas/StopJobRequest" + } + }, + "application/json;odata.metadata=full;odata.streaming=false": { + "schema": { + "$ref": "#/components/schemas/StopJobRequest" + } + }, + "application/json;odata.metadata=full": { + "schema": { + "$ref": "#/components/schemas/StopJobRequest" + } + }, + "application/json;odata.metadata=none;odata.streaming=true": { + "schema": { + "$ref": "#/components/schemas/StopJobRequest" + } + }, + "application/json;odata.metadata=none;odata.streaming=false": { + "schema": { + "$ref": "#/components/schemas/StopJobRequest" + } + }, + "application/json;odata.metadata=none": { + "schema": { + "$ref": "#/components/schemas/StopJobRequest" + } + }, + "application/json;odata.streaming=true": { + "schema": { + "$ref": "#/components/schemas/StopJobRequest" + } + }, + "application/json;odata.streaming=false": { + "schema": { + "$ref": "#/components/schemas/StopJobRequest" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/StopJobRequest" + } + }, + "application/json-patch+json": { + "schema": { + "$ref": "#/components/schemas/StopJobRequest" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/StopJobRequest" + } + } + }, + "required": false + }, + "responses": { + "200": { + "description": "Success", + "content": {} + } + }, + "security": [ + { + "OAuth2": [] + } + ], + "x-codegen-request-body-name": "body" + } + }, + "/odata/Jobs({key})/UiPath.Server.Configuration.OData.ValidateExistingJob": { + "post": { + "tags": [ + "Jobs" + ], + "summary": "Validates an existing job.", + "description": "OAuth required scopes: OR.Jobs or OR.Jobs.Write.\r\n\r\nRequired permissions: (Jobs.View).", + "operationId": "Jobs_ValidateExistingJobById", + "parameters": [ + { + "name": "key", + "in": "path", + "required": true, + "schema": { + "type": "integer", + "format": "int64" + } + }, + { + "name": "$expand", + "in": "query", + "description": "Indicates the related entities to be represented inline. The maximum depth is 2.", + "schema": { + "type": "string" + } + }, + { + "name": "$select", + "in": "query", + "description": "Limits the properties returned in the result.", + "schema": { + "type": "string" + } + }, + { + "name": "X-UIPATH-OrganizationUnitId", + "in": "header", + "description": "Folder/OrganizationUnit Id", + "schema": { + "type": "integer", + "format": "int64" + } + } + ], + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ValidationResultDto" + } + } + } + } + }, + "security": [ + { + "OAuth2": [] + } + ] + } + }, + "/odata/Jobs/UiPath.Server.Configuration.OData.Export": { + "post": { + "tags": [ + "Jobs" + ], + "summary": "Requests a CSV export of filtered items.", + "description": "OAuth required scopes: OR.Jobs or OR.Jobs.Write.\r\n\r\nRequired permissions: Jobs.View.", + "operationId": "Jobs_Export", + "parameters": [ + { + "name": "$expand", + "in": "query", + "description": "Indicates the related entities to be represented inline. The maximum depth is 2.", + "schema": { + "type": "string" + } + }, + { + "name": "$filter", + "in": "query", + "description": "Restricts the set of items returned. The maximum number of expressions is 100.", + "schema": { + "type": "string" + } + }, + { + "name": "$select", + "in": "query", + "description": "Limits the properties returned in the result.", + "schema": { + "type": "string" + } + }, + { + "name": "$orderby", + "in": "query", + "description": "Specifies the order in which items are returned. The maximum number of expressions is 5.", + "schema": { + "type": "string" + } + }, + { + "name": "$top", + "in": "query", + "description": "Limits the number of items returned from a collection. The maximum value is 1000.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "$skip", + "in": "query", + "description": "Excludes the specified number of items of the queried collection from the result.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "$count", + "in": "query", + "description": "Indicates whether the total count of items within a collection are returned in the result.", + "schema": { + "type": "boolean" + } + }, + { + "name": "X-UIPATH-OrganizationUnitId", + "in": "header", + "description": "Folder/OrganizationUnit Id", + "schema": { + "type": "integer", + "format": "int64" + } + } + ], + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ExportModel" + } + } + } + } + }, + "security": [ + { + "OAuth2": [] + } + ] + } + }, + "/odata/Jobs/UiPath.Server.Configuration.OData.RestartJob": { + "post": { + "tags": [ + "Jobs" + ], + "summary": "Restarts the specified job.", + "description": "OAuth required scopes: OR.Jobs or OR.Jobs.Write.\r\n\r\nRequired permissions: Jobs.Create.", + "operationId": "Jobs_RestartJob", + "parameters": [ + { + "name": "$expand", + "in": "query", + "description": "Indicates the related entities to be represented inline. The maximum depth is 2.", + "schema": { + "type": "string" + } + }, + { + "name": "$select", + "in": "query", + "description": "Limits the properties returned in the result.", + "schema": { + "type": "string" + } + }, + { + "name": "X-UIPATH-OrganizationUnitId", + "in": "header", + "description": "Folder/OrganizationUnit Id", + "schema": { + "type": "integer", + "format": "int64" + } + } + ], + "requestBody": { + "description": "The specified job id.", + "content": { + "application/json;odata.metadata=minimal;odata.streaming=true": { + "schema": { + "$ref": "#/components/schemas/RestartJobRequest" + } + }, + "application/json;odata.metadata=minimal;odata.streaming=false": { + "schema": { + "$ref": "#/components/schemas/RestartJobRequest" + } + }, + "application/json;odata.metadata=minimal": { + "schema": { + "$ref": "#/components/schemas/RestartJobRequest" + } + }, + "application/json;odata.metadata=full;odata.streaming=true": { + "schema": { + "$ref": "#/components/schemas/RestartJobRequest" + } + }, + "application/json;odata.metadata=full;odata.streaming=false": { + "schema": { + "$ref": "#/components/schemas/RestartJobRequest" + } + }, + "application/json;odata.metadata=full": { + "schema": { + "$ref": "#/components/schemas/RestartJobRequest" + } + }, + "application/json;odata.metadata=none;odata.streaming=true": { + "schema": { + "$ref": "#/components/schemas/RestartJobRequest" + } + }, + "application/json;odata.metadata=none;odata.streaming=false": { + "schema": { + "$ref": "#/components/schemas/RestartJobRequest" + } + }, + "application/json;odata.metadata=none": { + "schema": { + "$ref": "#/components/schemas/RestartJobRequest" + } + }, + "application/json;odata.streaming=true": { + "schema": { + "$ref": "#/components/schemas/RestartJobRequest" + } + }, + "application/json;odata.streaming=false": { + "schema": { + "$ref": "#/components/schemas/RestartJobRequest" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/RestartJobRequest" + } + }, + "application/json-patch+json": { + "schema": { + "$ref": "#/components/schemas/RestartJobRequest" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/RestartJobRequest" + } + } + }, + "required": false + }, + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/JobDto" + } + } + } + } + }, + "security": [ + { + "OAuth2": [] + } + ], + "x-codegen-request-body-name": "body" + } + }, + "/odata/Jobs/UiPath.Server.Configuration.OData.ResumeJob": { + "post": { + "tags": [ + "Jobs" + ], + "summary": "Resumes the specified job.", + "description": "OAuth required scopes: OR.Jobs or OR.Jobs.Write.\r\n\r\nRequired permissions: Jobs.Edit.", + "operationId": "Jobs_ResumeJob", + "parameters": [ + { + "name": "$expand", + "in": "query", + "description": "Indicates the related entities to be represented inline. The maximum depth is 2.", + "schema": { + "type": "string" + } + }, + { + "name": "$select", + "in": "query", + "description": "Limits the properties returned in the result.", + "schema": { + "type": "string" + } + }, + { + "name": "X-UIPATH-OrganizationUnitId", + "in": "header", + "description": "Folder/OrganizationUnit Id", + "schema": { + "type": "integer", + "format": "int64" + } + } + ], + "requestBody": { + "description": "The specified job key.", + "content": { + "application/json;odata.metadata=minimal;odata.streaming=true": { + "schema": { + "$ref": "#/components/schemas/ResumeJobRequest" + } + }, + "application/json;odata.metadata=minimal;odata.streaming=false": { + "schema": { + "$ref": "#/components/schemas/ResumeJobRequest" + } + }, + "application/json;odata.metadata=minimal": { + "schema": { + "$ref": "#/components/schemas/ResumeJobRequest" + } + }, + "application/json;odata.metadata=full;odata.streaming=true": { + "schema": { + "$ref": "#/components/schemas/ResumeJobRequest" + } + }, + "application/json;odata.metadata=full;odata.streaming=false": { + "schema": { + "$ref": "#/components/schemas/ResumeJobRequest" + } + }, + "application/json;odata.metadata=full": { + "schema": { + "$ref": "#/components/schemas/ResumeJobRequest" + } + }, + "application/json;odata.metadata=none;odata.streaming=true": { + "schema": { + "$ref": "#/components/schemas/ResumeJobRequest" + } + }, + "application/json;odata.metadata=none;odata.streaming=false": { + "schema": { + "$ref": "#/components/schemas/ResumeJobRequest" + } + }, + "application/json;odata.metadata=none": { + "schema": { + "$ref": "#/components/schemas/ResumeJobRequest" + } + }, + "application/json;odata.streaming=true": { + "schema": { + "$ref": "#/components/schemas/ResumeJobRequest" + } + }, + "application/json;odata.streaming=false": { + "schema": { + "$ref": "#/components/schemas/ResumeJobRequest" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/ResumeJobRequest" + } + }, + "application/json-patch+json": { + "schema": { + "$ref": "#/components/schemas/ResumeJobRequest" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/ResumeJobRequest" + } + } + }, + "required": false + }, + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/JobDto" + } + } + } + } + }, + "security": [ + { + "OAuth2": [] + } + ], + "x-codegen-request-body-name": "body" + } + }, + "/odata/Jobs/UiPath.Server.Configuration.OData.StartJobs": { + "post": { + "tags": [ + "Jobs" + ], + "summary": "Adds a new job and sets it in Pending state for each robot based on the input parameters and notifies the respective robots about the pending job.", + "description": "OAuth required scopes: OR.Jobs or OR.Jobs.Write.\r\n\r\nRequired permissions: Jobs.Create.", + "operationId": "Jobs_StartJobs", + "parameters": [ + { + "name": "$expand", + "in": "query", + "description": "Indicates the related entities to be represented inline. The maximum depth is 2.", + "schema": { + "type": "string" + } + }, + { + "name": "$filter", + "in": "query", + "description": "Restricts the set of items returned. The maximum number of expressions is 100.", + "schema": { + "type": "string" + } + }, + { + "name": "$select", + "in": "query", + "description": "Limits the properties returned in the result.", + "schema": { + "type": "string" + } + }, + { + "name": "$orderby", + "in": "query", + "description": "Specifies the order in which items are returned. The maximum number of expressions is 5.", + "schema": { + "type": "string" + } + }, + { + "name": "$count", + "in": "query", + "description": "Indicates whether the total count of items within a collection are returned in the result.", + "schema": { + "type": "boolean" + } + }, + { + "name": "X-UIPATH-OrganizationUnitId", + "in": "header", + "description": "Folder/OrganizationUnit Id", + "schema": { + "type": "integer", + "format": "int64" + } + } + ], + "requestBody": { + "description": "StartInfo - The information required to register the new jobs.", + "content": { + "application/json;odata.metadata=minimal;odata.streaming=true": { + "schema": { + "$ref": "#/components/schemas/StartJobsRequest" + } + }, + "application/json;odata.metadata=minimal;odata.streaming=false": { + "schema": { + "$ref": "#/components/schemas/StartJobsRequest" + } + }, + "application/json;odata.metadata=minimal": { + "schema": { + "$ref": "#/components/schemas/StartJobsRequest" + } + }, + "application/json;odata.metadata=full;odata.streaming=true": { + "schema": { + "$ref": "#/components/schemas/StartJobsRequest" + } + }, + "application/json;odata.metadata=full;odata.streaming=false": { + "schema": { + "$ref": "#/components/schemas/StartJobsRequest" + } + }, + "application/json;odata.metadata=full": { + "schema": { + "$ref": "#/components/schemas/StartJobsRequest" + } + }, + "application/json;odata.metadata=none;odata.streaming=true": { + "schema": { + "$ref": "#/components/schemas/StartJobsRequest" + } + }, + "application/json;odata.metadata=none;odata.streaming=false": { + "schema": { + "$ref": "#/components/schemas/StartJobsRequest" + } + }, + "application/json;odata.metadata=none": { + "schema": { + "$ref": "#/components/schemas/StartJobsRequest" + } + }, + "application/json;odata.streaming=true": { + "schema": { + "$ref": "#/components/schemas/StartJobsRequest" + } + }, + "application/json;odata.streaming=false": { + "schema": { + "$ref": "#/components/schemas/StartJobsRequest" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/StartJobsRequest" + } + }, + "application/json-patch+json": { + "schema": { + "$ref": "#/components/schemas/StartJobsRequest" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/StartJobsRequest" + } + } + }, + "required": false + }, + "responses": { + "201": { + "description": "Created", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ODataValueOfIEnumerableOfJobDto" + } + } + } + } + }, + "security": [ + { + "OAuth2": [] + } + ], + "x-codegen-request-body-name": "body" + } + }, + "/odata/Jobs/UiPath.Server.Configuration.OData.StopJobs": { + "post": { + "tags": [ + "Jobs" + ], + "summary": "Cancels or terminates the specified jobs.", + "description": "OAuth required scopes: OR.Jobs or OR.Jobs.Write.\r\n\r\nRequired permissions: Jobs.Edit.", + "operationId": "Jobs_StopJobs", + "parameters": [ + { + "name": "X-UIPATH-OrganizationUnitId", + "in": "header", + "description": "Folder/OrganizationUnit Id", + "schema": { + "type": "integer", + "format": "int64" + } + } + ], + "requestBody": { + "description": "JobIds - The ids for the jobs to be canceled or terminated;\r\n Strategy - States whether a job should be soft stopped or killed immediately.", + "content": { + "application/json;odata.metadata=minimal;odata.streaming=true": { + "schema": { + "$ref": "#/components/schemas/StopJobsRequest" + } + }, + "application/json;odata.metadata=minimal;odata.streaming=false": { + "schema": { + "$ref": "#/components/schemas/StopJobsRequest" + } + }, + "application/json;odata.metadata=minimal": { + "schema": { + "$ref": "#/components/schemas/StopJobsRequest" + } + }, + "application/json;odata.metadata=full;odata.streaming=true": { + "schema": { + "$ref": "#/components/schemas/StopJobsRequest" + } + }, + "application/json;odata.metadata=full;odata.streaming=false": { + "schema": { + "$ref": "#/components/schemas/StopJobsRequest" + } + }, + "application/json;odata.metadata=full": { + "schema": { + "$ref": "#/components/schemas/StopJobsRequest" + } + }, + "application/json;odata.metadata=none;odata.streaming=true": { + "schema": { + "$ref": "#/components/schemas/StopJobsRequest" + } + }, + "application/json;odata.metadata=none;odata.streaming=false": { + "schema": { + "$ref": "#/components/schemas/StopJobsRequest" + } + }, + "application/json;odata.metadata=none": { + "schema": { + "$ref": "#/components/schemas/StopJobsRequest" + } + }, + "application/json;odata.streaming=true": { + "schema": { + "$ref": "#/components/schemas/StopJobsRequest" + } + }, + "application/json;odata.streaming=false": { + "schema": { + "$ref": "#/components/schemas/StopJobsRequest" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/StopJobsRequest" + } + }, + "application/json-patch+json": { + "schema": { + "$ref": "#/components/schemas/StopJobsRequest" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/StopJobsRequest" + } + } + }, + "required": false + }, + "responses": { + "200": { + "description": "Success", + "content": {} + } + }, + "security": [ + { + "OAuth2": [] + } + ], + "x-codegen-request-body-name": "body" + } + }, + "/odata/Jobs/UiPath.Server.Configuration.OData.ValidateDynamicJob": { + "post": { + "tags": [ + "Jobs" + ], + "summary": "Validates the input which would start a job.", + "description": "OAuth required scopes: OR.Jobs or OR.Jobs.Write.\r\n\r\nRequired permissions: Jobs.Create.", + "operationId": "Jobs_ValidateDynamicJob", + "parameters": [ + { + "name": "$expand", + "in": "query", + "description": "Indicates the related entities to be represented inline. The maximum depth is 2.", + "schema": { + "type": "string" + } + }, + { + "name": "$select", + "in": "query", + "description": "Limits the properties returned in the result.", + "schema": { + "type": "string" + } + }, + { + "name": "X-UIPATH-OrganizationUnitId", + "in": "header", + "description": "Folder/OrganizationUnit Id", + "schema": { + "type": "integer", + "format": "int64" + } + } + ], + "requestBody": { + "description": "StartInfo - The same input which would be used to start a new job.", + "content": { + "application/json;odata.metadata=minimal;odata.streaming=true": { + "schema": { + "$ref": "#/components/schemas/StartJobsRequest" + } + }, + "application/json;odata.metadata=minimal;odata.streaming=false": { + "schema": { + "$ref": "#/components/schemas/StartJobsRequest" + } + }, + "application/json;odata.metadata=minimal": { + "schema": { + "$ref": "#/components/schemas/StartJobsRequest" + } + }, + "application/json;odata.metadata=full;odata.streaming=true": { + "schema": { + "$ref": "#/components/schemas/StartJobsRequest" + } + }, + "application/json;odata.metadata=full;odata.streaming=false": { + "schema": { + "$ref": "#/components/schemas/StartJobsRequest" + } + }, + "application/json;odata.metadata=full": { + "schema": { + "$ref": "#/components/schemas/StartJobsRequest" + } + }, + "application/json;odata.metadata=none;odata.streaming=true": { + "schema": { + "$ref": "#/components/schemas/StartJobsRequest" + } + }, + "application/json;odata.metadata=none;odata.streaming=false": { + "schema": { + "$ref": "#/components/schemas/StartJobsRequest" + } + }, + "application/json;odata.metadata=none": { + "schema": { + "$ref": "#/components/schemas/StartJobsRequest" + } + }, + "application/json;odata.streaming=true": { + "schema": { + "$ref": "#/components/schemas/StartJobsRequest" + } + }, + "application/json;odata.streaming=false": { + "schema": { + "$ref": "#/components/schemas/StartJobsRequest" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/StartJobsRequest" + } + }, + "application/json-patch+json": { + "schema": { + "$ref": "#/components/schemas/StartJobsRequest" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/StartJobsRequest" + } + } + }, + "required": false + }, + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ValidationResultDto" + } + } + } + } + }, + "security": [ + { + "OAuth2": [] + } + ], + "x-codegen-request-body-name": "body" + } + }, + "/odata/JobTriggers": { + "get": { + "tags": [ + "JobTriggers" + ], + "summary": "Gets JobTriggers.", + "description": "OAuth required scopes: OR.Jobs or OR.Jobs.Read.\r\n\r\nRequired permissions: Jobs.View.", + "operationId": "JobTriggers_Get", + "parameters": [ + { + "name": "$expand", + "in": "query", + "description": "Indicates the related entities to be represented inline. The maximum depth is 2.", + "schema": { + "type": "string" + } + }, + { + "name": "$filter", + "in": "query", + "description": "Restricts the set of items returned. The maximum number of expressions is 100.", + "schema": { + "type": "string" + } + }, + { + "name": "$select", + "in": "query", + "description": "Limits the properties returned in the result.", + "schema": { + "type": "string" + } + }, + { + "name": "$orderby", + "in": "query", + "description": "Specifies the order in which items are returned. The maximum number of expressions is 5.", + "schema": { + "type": "string" + } + }, + { + "name": "$top", + "in": "query", + "description": "Limits the number of items returned from a collection. The maximum value is 1000.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "$skip", + "in": "query", + "description": "Excludes the specified number of items of the queried collection from the result.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "$count", + "in": "query", + "description": "Indicates whether the total count of items within a collection are returned in the result.", + "schema": { + "type": "boolean" + } + }, + { + "name": "X-UIPATH-OrganizationUnitId", + "in": "header", + "description": "Folder/OrganizationUnit Id", + "schema": { + "type": "integer", + "format": "int64" + } + } + ], + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ODataValueOfIEnumerableOfJobTriggerDto" + } + } + } + } + }, + "security": [ + { + "OAuth2": [] + } + ] + } + }, + "/odata/JobTriggers/UiPath.Server.Configuration.OData.GetWithWaitEvents(jobId={jobId})": { + "get": { + "tags": [ + "JobTriggers" + ], + "summary": "Gets Trigger option for a job instance along with wait event details .", + "description": "OAuth required scopes: OR.Jobs or OR.Jobs.Read.\r\n\r\nRequired permissions: Jobs.View.", + "operationId": "JobTriggers_GetWithWaitEventsByJobid", + "parameters": [ + { + "name": "jobId", + "in": "path", + "required": true, + "schema": { + "type": "integer", + "format": "int64" + } + }, + { + "name": "$expand", + "in": "query", + "description": "Indicates the related entities to be represented inline. The maximum depth is 2.", + "schema": { + "type": "string" + } + }, + { + "name": "$filter", + "in": "query", + "description": "Restricts the set of items returned. The maximum number of expressions is 100.", + "schema": { + "type": "string" + } + }, + { + "name": "$select", + "in": "query", + "description": "Limits the properties returned in the result.", + "schema": { + "type": "string" + } + }, + { + "name": "$orderby", + "in": "query", + "description": "Specifies the order in which items are returned. The maximum number of expressions is 5.", + "schema": { + "type": "string" + } + }, + { + "name": "$top", + "in": "query", + "description": "Limits the number of items returned from a collection. The maximum value is 1000.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "$skip", + "in": "query", + "description": "Excludes the specified number of items of the queried collection from the result.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "$count", + "in": "query", + "description": "Indicates whether the total count of items within a collection are returned in the result.", + "schema": { + "type": "boolean" + } + }, + { + "name": "X-UIPATH-OrganizationUnitId", + "in": "header", + "description": "Folder/OrganizationUnit Id", + "schema": { + "type": "integer", + "format": "int64" + } + } + ], + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ODataValueOfIEnumerableOfJobTriggerWithWaitEventsDto" + } + } + } + } + }, + "security": [ + { + "OAuth2": [] + } + ] + } + }, + "/odata/Libraries": { + "get": { + "tags": [ + "Libraries" + ], + "summary": "Gets the library packages.", + "description": "OAuth required scopes: OR.Execution or OR.Execution.Read.\r\n\r\nRequired permissions: Libraries.View.", + "operationId": "Libraries_Get", + "parameters": [ + { + "name": "searchTerm", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "feedId", + "in": "query", + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "$expand", + "in": "query", + "description": "Indicates the related entities to be represented inline. The maximum depth is 2.", + "schema": { + "type": "string" + } + }, + { + "name": "$filter", + "in": "query", + "description": "Restricts the set of items returned. The maximum number of expressions is 100.", + "schema": { + "type": "string" + } + }, + { + "name": "$select", + "in": "query", + "description": "Limits the properties returned in the result.", + "schema": { + "type": "string" + } + }, + { + "name": "$orderby", + "in": "query", + "description": "Specifies the order in which items are returned. The maximum number of expressions is 5.", + "schema": { + "type": "string" + } + }, + { + "name": "$top", + "in": "query", + "description": "Limits the number of items returned from a collection. The maximum value is 1000.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "$skip", + "in": "query", + "description": "Excludes the specified number of items of the queried collection from the result.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "$count", + "in": "query", + "description": "Indicates whether the total count of items within a collection are returned in the result.", + "schema": { + "type": "boolean" + } + } + ], + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ODataValueOfIEnumerableOfLibraryDto" + } + } + } + } + }, + "security": [ + { + "OAuth2": [] + } + ] + } + }, + "/odata/Libraries('{key}')": { + "delete": { + "tags": [ + "Libraries" + ], + "summary": "Deletes a package.", + "description": "OAuth required scopes: OR.Execution or OR.Execution.Write.\r\n\r\nRequired permissions: Libraries.Delete.", + "operationId": "Libraries_DeleteById", + "parameters": [ + { + "name": "key", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "feedId", + "in": "query", + "schema": { + "type": "string", + "format": "uuid" + } + } + ], + "responses": { + "200": { + "description": "Package deleted", + "content": {} + }, + "204": { + "description": "Deleted", + "content": {} + }, + "400": { + "description": "Bad Request", + "content": {} + } + }, + "security": [ + { + "OAuth2": [] + } + ] + } + }, + "/odata/Libraries/UiPath.Server.Configuration.OData.DownloadPackage(key='{key}')": { + "get": { + "tags": [ + "Libraries" + ], + "summary": "Downloads the .nupkg file of a Package.", + "description": "OAuth required scopes: OR.Execution or OR.Execution.Read.\r\n\r\nRequired permissions: Libraries.View.", + "operationId": "Libraries_DownloadPackageByKey", + "parameters": [ + { + "name": "key", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "feedId", + "in": "query", + "schema": { + "type": "string", + "format": "uuid" + } + } + ], + "responses": { + "200": { + "description": "Success", + "content": { + "application/octet-stream": { + "schema": { + "type": "string", + "format": "binary" + } + } + } + } + }, + "security": [ + { + "OAuth2": [] + } + ] + } + }, + "/odata/Libraries/UiPath.Server.Configuration.OData.GetVersions(packageId='{packageId}')": { + "get": { + "tags": [ + "Libraries" + ], + "summary": "Returns a collection of all available versions of a given package. Allows odata query options.", + "description": "OAuth required scopes: OR.Execution or OR.Execution.Read.\r\n\r\nRequired permissions: Libraries.View.", + "operationId": "Libraries_GetVersionsByPackageid", + "parameters": [ + { + "name": "packageId", + "in": "path", + "description": "The Id of the package for which the versions are fetched.", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "feedId", + "in": "query", + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "$expand", + "in": "query", + "description": "Indicates the related entities to be represented inline. The maximum depth is 2.", + "schema": { + "type": "string" + } + }, + { + "name": "$filter", + "in": "query", + "description": "Restricts the set of items returned. The maximum number of expressions is 100.", + "schema": { + "type": "string" + } + }, + { + "name": "$select", + "in": "query", + "description": "Limits the properties returned in the result.", + "schema": { + "type": "string" + } + }, + { + "name": "$orderby", + "in": "query", + "description": "Specifies the order in which items are returned. The maximum number of expressions is 5.", + "schema": { + "type": "string" + } + }, + { + "name": "$top", + "in": "query", + "description": "Limits the number of items returned from a collection. The maximum value is 1000.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "$skip", + "in": "query", + "description": "Excludes the specified number of items of the queried collection from the result.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "$count", + "in": "query", + "description": "Indicates whether the total count of items within a collection are returned in the result.", + "schema": { + "type": "boolean" + } + } + ], + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ODataValueOfIEnumerableOfLibraryDto" + } + } + } + } + }, + "security": [ + { + "OAuth2": [] + } + ] + } + }, + "/odata/Libraries/UiPath.Server.Configuration.OData.UploadPackage": { + "post": { + "tags": [ + "Libraries" + ], + "summary": "Uploads a new package or a new version of an existing package. The content of the package is sent as a .nupkg file embedded in the HTTP request.", + "description": "OAuth required scopes: OR.Execution or OR.Execution.Write.\r\n\r\nRequired permissions: Libraries.Create.", + "operationId": "Libraries_UploadPackage", + "parameters": [ + { + "name": "feedId", + "in": "query", + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "$expand", + "in": "query", + "description": "Indicates the related entities to be represented inline. The maximum depth is 2.", + "schema": { + "type": "string" + } + }, + { + "name": "$filter", + "in": "query", + "description": "Restricts the set of items returned. The maximum number of expressions is 100.", + "schema": { + "type": "string" + } + }, + { + "name": "$select", + "in": "query", + "description": "Limits the properties returned in the result.", + "schema": { + "type": "string" + } + }, + { + "name": "$orderby", + "in": "query", + "description": "Specifies the order in which items are returned. The maximum number of expressions is 5.", + "schema": { + "type": "string" + } + }, + { + "name": "$count", + "in": "query", + "description": "Indicates whether the total count of items within a collection are returned in the result.", + "schema": { + "type": "boolean" + } + } + ], + "requestBody": { + "content": { + "multipart/form-data": { + "schema": { + "required": [ + "file" + ], + "type": "object", + "properties": { + "file1": { + "type": "string", + "format": "binary" + }, + "file2": { + "type": "string", + "format": "binary" + }, + "file3": { + "type": "string", + "format": "binary" + }, + "file4": { + "type": "string", + "format": "binary" + }, + "file5": { + "type": "string", + "format": "binary" + }, + "file6": { + "type": "string", + "format": "binary" + }, + "file7": { + "type": "string", + "format": "binary" + }, + "file8": { + "type": "string", + "format": "binary" + }, + "file9": { + "type": "string", + "format": "binary" + }, + "file": { + "type": "string", + "format": "binary" + } + } + } + } + }, + "required": true + }, + "responses": { + "207": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ODataValueOfIEnumerableOfBulkItemDtoOfString" + } + } + } + } + }, + "security": [ + { + "OAuth2": [] + } + ] + } + }, + "/odata/LicensesNamedUser/UiPath.Server.Configuration.OData.GetLicensesNamedUser(robotType='{robotType}')": { + "get": { + "tags": [ + "LicensesNamedUser" + ], + "summary": "Gets named-user licenses.", + "description": "OAuth required scopes: OR.License or OR.License.Read.\r\n\r\nRequired permissions: License.View.", + "operationId": "LicensesNamedUser_GetLicensesNamedUserByRobottype", + "parameters": [ + { + "name": "robotType", + "in": "path", + "required": true, + "schema": { + "type": "string", + "enum": [ + "NonProduction", + "Attended", + "Unattended", + "Development", + "Studio", + "RpaDeveloper", + "StudioX", + "CitizenDeveloper", + "Headless", + "StudioPro", + "RpaDeveloperPro", + "TestAutomation", + "AutomationCloud", + "Serverless", + "AutomationKit", + "ServerlessTestAutomation", + "AutomationCloudTestAutomation", + "AttendedStudioWeb" + ], + "x-ms-enum": { + "name": "RobotType", + "modelAsString": false + } + }, + "x-ms-enum": { + "name": "RobotType", + "modelAsString": false + } + }, + { + "name": "$expand", + "in": "query", + "description": "Indicates the related entities to be represented inline. The maximum depth is 2.", + "schema": { + "type": "string" + } + }, + { + "name": "$filter", + "in": "query", + "description": "Restricts the set of items returned. The maximum number of expressions is 100.", + "schema": { + "type": "string" + } + }, + { + "name": "$select", + "in": "query", + "description": "Limits the properties returned in the result.", + "schema": { + "type": "string" + } + }, + { + "name": "$orderby", + "in": "query", + "description": "Specifies the order in which items are returned. The maximum number of expressions is 5.", + "schema": { + "type": "string" + } + }, + { + "name": "$top", + "in": "query", + "description": "Limits the number of items returned from a collection. The maximum value is 1000.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "$skip", + "in": "query", + "description": "Excludes the specified number of items of the queried collection from the result.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "$count", + "in": "query", + "description": "Indicates whether the total count of items within a collection are returned in the result.", + "schema": { + "type": "boolean" + } + } + ], + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ODataValueOfIEnumerableOfLicenseNamedUserDto" + } + } + } + } + }, + "security": [ + { + "OAuth2": [] + } + ] + } + }, + "/odata/LicensesRuntime('{key}')/UiPath.Server.Configuration.OData.ToggleEnabled": { + "post": { + "tags": [ + "LicensesRuntime" + ], + "summary": "Toggles machine licensing on/off.", + "description": "OAuth required scopes: OR.License or OR.License.Write.\r\n\r\nRequired permissions: Machines.Edit.", + "operationId": "LicensesRuntime_ToggleEnabledByKey", + "parameters": [ + { + "name": "key", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json;odata.metadata=minimal;odata.streaming=true": { + "schema": { + "$ref": "#/components/schemas/LicensesToggleEnabledRequest" + } + }, + "application/json;odata.metadata=minimal;odata.streaming=false": { + "schema": { + "$ref": "#/components/schemas/LicensesToggleEnabledRequest" + } + }, + "application/json;odata.metadata=minimal": { + "schema": { + "$ref": "#/components/schemas/LicensesToggleEnabledRequest" + } + }, + "application/json;odata.metadata=full;odata.streaming=true": { + "schema": { + "$ref": "#/components/schemas/LicensesToggleEnabledRequest" + } + }, + "application/json;odata.metadata=full;odata.streaming=false": { + "schema": { + "$ref": "#/components/schemas/LicensesToggleEnabledRequest" + } + }, + "application/json;odata.metadata=full": { + "schema": { + "$ref": "#/components/schemas/LicensesToggleEnabledRequest" + } + }, + "application/json;odata.metadata=none;odata.streaming=true": { + "schema": { + "$ref": "#/components/schemas/LicensesToggleEnabledRequest" + } + }, + "application/json;odata.metadata=none;odata.streaming=false": { + "schema": { + "$ref": "#/components/schemas/LicensesToggleEnabledRequest" + } + }, + "application/json;odata.metadata=none": { + "schema": { + "$ref": "#/components/schemas/LicensesToggleEnabledRequest" + } + }, + "application/json;odata.streaming=true": { + "schema": { + "$ref": "#/components/schemas/LicensesToggleEnabledRequest" + } + }, + "application/json;odata.streaming=false": { + "schema": { + "$ref": "#/components/schemas/LicensesToggleEnabledRequest" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/LicensesToggleEnabledRequest" + } + }, + "application/json-patch+json": { + "schema": { + "$ref": "#/components/schemas/LicensesToggleEnabledRequest" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/LicensesToggleEnabledRequest" + } + } + }, + "required": false + }, + "responses": { + "200": { + "description": "Success", + "content": {} + }, + "409": { + "description": "Conflict", + "content": {} + } + }, + "security": [ + { + "OAuth2": [] + } + ], + "x-codegen-request-body-name": "body" + } + }, + "/odata/LicensesRuntime/UiPath.Server.Configuration.OData.GetLicensesRuntime(robotType='{robotType}')": { + "get": { + "tags": [ + "LicensesRuntime" + ], + "summary": "Gets runtime licenses.", + "description": "OAuth required scopes: OR.License or OR.License.Read.\r\n\r\nRequired permissions: License.View.", + "operationId": "LicensesRuntime_GetLicensesRuntimeByRobottype", + "parameters": [ + { + "name": "robotType", + "in": "path", + "required": true, + "schema": { + "type": "string", + "enum": [ + "NonProduction", + "Attended", + "Unattended", + "Development", + "Studio", + "RpaDeveloper", + "StudioX", + "CitizenDeveloper", + "Headless", + "StudioPro", + "RpaDeveloperPro", + "TestAutomation", + "AutomationCloud", + "Serverless", + "AutomationKit", + "ServerlessTestAutomation", + "AutomationCloudTestAutomation", + "AttendedStudioWeb" + ], + "x-ms-enum": { + "name": "RobotType", + "modelAsString": false + } + }, + "x-ms-enum": { + "name": "RobotType", + "modelAsString": false + } + }, + { + "name": "$expand", + "in": "query", + "description": "Indicates the related entities to be represented inline. The maximum depth is 2.", + "schema": { + "type": "string" + } + }, + { + "name": "$filter", + "in": "query", + "description": "Restricts the set of items returned. The maximum number of expressions is 100.", + "schema": { + "type": "string" + } + }, + { + "name": "$select", + "in": "query", + "description": "Limits the properties returned in the result.", + "schema": { + "type": "string" + } + }, + { + "name": "$orderby", + "in": "query", + "description": "Specifies the order in which items are returned. The maximum number of expressions is 5.", + "schema": { + "type": "string" + } + }, + { + "name": "$top", + "in": "query", + "description": "Limits the number of items returned from a collection. The maximum value is 1000.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "$skip", + "in": "query", + "description": "Excludes the specified number of items of the queried collection from the result.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "$count", + "in": "query", + "description": "Indicates whether the total count of items within a collection are returned in the result.", + "schema": { + "type": "boolean" + } + } + ], + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ODataValueOfIEnumerableOfLicenseRuntimeDto" + } + } + } + } + }, + "security": [ + { + "OAuth2": [] + } + ] + } + }, + "/odata/Machines": { + "get": { + "tags": [ + "Machines" + ], + "summary": "Gets machines.", + "description": "OAuth required scopes: OR.Machines or OR.Machines.Read.\r\n\r\nRequired permissions: Machines.View.", + "operationId": "Machines_Get", + "parameters": [ + { + "name": "$expand", + "in": "query", + "description": "Indicates the related entities to be represented inline. The maximum depth is 2.", + "schema": { + "type": "string" + } + }, + { + "name": "$filter", + "in": "query", + "description": "Restricts the set of items returned. The maximum number of expressions is 100.", + "schema": { + "type": "string" + } + }, + { + "name": "$select", + "in": "query", + "description": "Limits the properties returned in the result.", + "schema": { + "type": "string" + } + }, + { + "name": "$orderby", + "in": "query", + "description": "Specifies the order in which items are returned. The maximum number of expressions is 5.", + "schema": { + "type": "string" + } + }, + { + "name": "$top", + "in": "query", + "description": "Limits the number of items returned from a collection. The maximum value is 1000.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "$skip", + "in": "query", + "description": "Excludes the specified number of items of the queried collection from the result.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "$count", + "in": "query", + "description": "Indicates whether the total count of items within a collection are returned in the result.", + "schema": { + "type": "boolean" + } + } + ], + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ODataValueOfIEnumerableOfExtendedMachineDto" + } + } + } + } + }, + "security": [ + { + "OAuth2": [] + } + ] + }, + "post": { + "tags": [ + "Machines" + ], + "summary": "Creates a new machine.", + "description": "OAuth required scopes: OR.Machines or OR.Machines.Write.\r\n\r\nRequired permissions: Machines.Create.", + "operationId": "Machines_Post", + "requestBody": { + "content": { + "application/json;odata.metadata=minimal;odata.streaming=true": { + "schema": { + "$ref": "#/components/schemas/MachineDto" + } + }, + "application/json;odata.metadata=minimal;odata.streaming=false": { + "schema": { + "$ref": "#/components/schemas/MachineDto" + } + }, + "application/json;odata.metadata=minimal": { + "schema": { + "$ref": "#/components/schemas/MachineDto" + } + }, + "application/json;odata.metadata=full;odata.streaming=true": { + "schema": { + "$ref": "#/components/schemas/MachineDto" + } + }, + "application/json;odata.metadata=full;odata.streaming=false": { + "schema": { + "$ref": "#/components/schemas/MachineDto" + } + }, + "application/json;odata.metadata=full": { + "schema": { + "$ref": "#/components/schemas/MachineDto" + } + }, + "application/json;odata.metadata=none;odata.streaming=true": { + "schema": { + "$ref": "#/components/schemas/MachineDto" + } + }, + "application/json;odata.metadata=none;odata.streaming=false": { + "schema": { + "$ref": "#/components/schemas/MachineDto" + } + }, + "application/json;odata.metadata=none": { + "schema": { + "$ref": "#/components/schemas/MachineDto" + } + }, + "application/json;odata.streaming=true": { + "schema": { + "$ref": "#/components/schemas/MachineDto" + } + }, + "application/json;odata.streaming=false": { + "schema": { + "$ref": "#/components/schemas/MachineDto" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/MachineDto" + } + }, + "application/json-patch+json": { + "schema": { + "$ref": "#/components/schemas/MachineDto" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/MachineDto" + } + } + }, + "required": false + }, + "responses": { + "201": { + "description": "Created", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/MachineDto" + } + } + } + } + }, + "security": [ + { + "OAuth2": [] + } + ], + "x-codegen-request-body-name": "body" + } + }, + "/odata/Machines({key})": { + "get": { + "tags": [ + "Machines" + ], + "summary": "Gets a single machine based on its id.", + "description": "OAuth required scopes: OR.Machines or OR.Machines.Read.\r\n\r\nRequired permissions: Machines.View.", + "operationId": "Machines_GetById", + "parameters": [ + { + "name": "key", + "in": "path", + "required": true, + "schema": { + "type": "integer", + "format": "int64" + } + }, + { + "name": "$expand", + "in": "query", + "description": "Indicates the related entities to be represented inline. The maximum depth is 2.", + "schema": { + "type": "string" + } + }, + { + "name": "$select", + "in": "query", + "description": "Limits the properties returned in the result.", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/MachineDto" + } + } + } + } + }, + "security": [ + { + "OAuth2": [] + } + ] + }, + "put": { + "tags": [ + "Machines" + ], + "summary": "Edits a machine based on its key.", + "description": "OAuth required scopes: OR.Machines or OR.Machines.Write.\r\n\r\nRequired permissions: Machines.Edit.", + "operationId": "Machines_PutById", + "parameters": [ + { + "name": "key", + "in": "path", + "required": true, + "schema": { + "type": "integer", + "format": "int64" + } + } + ], + "requestBody": { + "content": { + "application/json;odata.metadata=minimal;odata.streaming=true": { + "schema": { + "$ref": "#/components/schemas/MachineDto" + } + }, + "application/json;odata.metadata=minimal;odata.streaming=false": { + "schema": { + "$ref": "#/components/schemas/MachineDto" + } + }, + "application/json;odata.metadata=minimal": { + "schema": { + "$ref": "#/components/schemas/MachineDto" + } + }, + "application/json;odata.metadata=full;odata.streaming=true": { + "schema": { + "$ref": "#/components/schemas/MachineDto" + } + }, + "application/json;odata.metadata=full;odata.streaming=false": { + "schema": { + "$ref": "#/components/schemas/MachineDto" + } + }, + "application/json;odata.metadata=full": { + "schema": { + "$ref": "#/components/schemas/MachineDto" + } + }, + "application/json;odata.metadata=none;odata.streaming=true": { + "schema": { + "$ref": "#/components/schemas/MachineDto" + } + }, + "application/json;odata.metadata=none;odata.streaming=false": { + "schema": { + "$ref": "#/components/schemas/MachineDto" + } + }, + "application/json;odata.metadata=none": { + "schema": { + "$ref": "#/components/schemas/MachineDto" + } + }, + "application/json;odata.streaming=true": { + "schema": { + "$ref": "#/components/schemas/MachineDto" + } + }, + "application/json;odata.streaming=false": { + "schema": { + "$ref": "#/components/schemas/MachineDto" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/MachineDto" + } + }, + "application/json-patch+json": { + "schema": { + "$ref": "#/components/schemas/MachineDto" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/MachineDto" + } + } + }, + "required": false + }, + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/MachineDto" + } + } + } + } + }, + "security": [ + { + "OAuth2": [] + } + ], + "x-codegen-request-body-name": "body" + }, + "delete": { + "tags": [ + "Machines" + ], + "summary": "Deletes a machine based on its key.", + "description": "OAuth required scopes: OR.Machines or OR.Machines.Write.\r\n\r\nRequired permissions: Machines.Delete.", + "operationId": "Machines_DeleteById", + "parameters": [ + { + "name": "key", + "in": "path", + "required": true, + "schema": { + "type": "integer", + "format": "int64" + } + } + ], + "responses": { + "204": { + "description": "No Content", + "content": {} + } + }, + "security": [ + { + "OAuth2": [] + } + ] + }, + "patch": { + "tags": [ + "Machines" + ], + "summary": "Partially updates a machine.", + "description": "OAuth required scopes: OR.Machines or OR.Machines.Write.\r\n\r\nRequired permissions: Machines.Edit.", + "operationId": "Machines_PatchById", + "parameters": [ + { + "name": "key", + "in": "path", + "required": true, + "schema": { + "type": "integer", + "format": "int64" + } + } + ], + "requestBody": { + "content": { + "application/json;odata.metadata=minimal;odata.streaming=true": { + "schema": { + "$ref": "#/components/schemas/MachineDto" + } + }, + "application/json;odata.metadata=minimal;odata.streaming=false": { + "schema": { + "$ref": "#/components/schemas/MachineDto" + } + }, + "application/json;odata.metadata=minimal": { + "schema": { + "$ref": "#/components/schemas/MachineDto" + } + }, + "application/json;odata.metadata=full;odata.streaming=true": { + "schema": { + "$ref": "#/components/schemas/MachineDto" + } + }, + "application/json;odata.metadata=full;odata.streaming=false": { + "schema": { + "$ref": "#/components/schemas/MachineDto" + } + }, + "application/json;odata.metadata=full": { + "schema": { + "$ref": "#/components/schemas/MachineDto" + } + }, + "application/json;odata.metadata=none;odata.streaming=true": { + "schema": { + "$ref": "#/components/schemas/MachineDto" + } + }, + "application/json;odata.metadata=none;odata.streaming=false": { + "schema": { + "$ref": "#/components/schemas/MachineDto" + } + }, + "application/json;odata.metadata=none": { + "schema": { + "$ref": "#/components/schemas/MachineDto" + } + }, + "application/json;odata.streaming=true": { + "schema": { + "$ref": "#/components/schemas/MachineDto" + } + }, + "application/json;odata.streaming=false": { + "schema": { + "$ref": "#/components/schemas/MachineDto" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/MachineDto" + } + }, + "application/json-patch+json": { + "schema": { + "$ref": "#/components/schemas/MachineDto" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/MachineDto" + } + } + }, + "required": false + }, + "responses": { + "200": { + "description": "Success", + "content": {} + } + }, + "security": [ + { + "OAuth2": [] + } + ], + "x-codegen-request-body-name": "body" + } + }, + "/odata/Machines/UiPath.Server.Configuration.OData.DeleteBulk": { + "post": { + "tags": [ + "Machines" + ], + "summary": "Deletes multiple machines based on their keys.", + "description": "OAuth required scopes: OR.Machines or OR.Machines.Write.\r\n\r\nRequired permissions: Machines.Delete.", + "operationId": "Machines_DeleteBulk", + "requestBody": { + "content": { + "application/json;odata.metadata=minimal;odata.streaming=true": { + "schema": { + "$ref": "#/components/schemas/MachineDeleteBulkRequest" + } + }, + "application/json;odata.metadata=minimal;odata.streaming=false": { + "schema": { + "$ref": "#/components/schemas/MachineDeleteBulkRequest" + } + }, + "application/json;odata.metadata=minimal": { + "schema": { + "$ref": "#/components/schemas/MachineDeleteBulkRequest" + } + }, + "application/json;odata.metadata=full;odata.streaming=true": { + "schema": { + "$ref": "#/components/schemas/MachineDeleteBulkRequest" + } + }, + "application/json;odata.metadata=full;odata.streaming=false": { + "schema": { + "$ref": "#/components/schemas/MachineDeleteBulkRequest" + } + }, + "application/json;odata.metadata=full": { + "schema": { + "$ref": "#/components/schemas/MachineDeleteBulkRequest" + } + }, + "application/json;odata.metadata=none;odata.streaming=true": { + "schema": { + "$ref": "#/components/schemas/MachineDeleteBulkRequest" + } + }, + "application/json;odata.metadata=none;odata.streaming=false": { + "schema": { + "$ref": "#/components/schemas/MachineDeleteBulkRequest" + } + }, + "application/json;odata.metadata=none": { + "schema": { + "$ref": "#/components/schemas/MachineDeleteBulkRequest" + } + }, + "application/json;odata.streaming=true": { + "schema": { + "$ref": "#/components/schemas/MachineDeleteBulkRequest" + } + }, + "application/json;odata.streaming=false": { + "schema": { + "$ref": "#/components/schemas/MachineDeleteBulkRequest" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/MachineDeleteBulkRequest" + } + }, + "application/json-patch+json": { + "schema": { + "$ref": "#/components/schemas/MachineDeleteBulkRequest" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/MachineDeleteBulkRequest" + } + } + }, + "required": false + }, + "responses": { + "204": { + "description": "No Content", + "content": {} + }, + "400": { + "description": "Empty machineIds collection in payload", + "content": {} + } + }, + "security": [ + { + "OAuth2": [] + } + ], + "x-codegen-request-body-name": "body" + } + }, + "/odata/Machines/UiPath.Server.Configuration.OData.GetAssignedMachines(folderId={folderId})": { + "get": { + "tags": [ + "Machines" + ], + "summary": "Gets machines assigned to folder and robot", + "description": "OAuth required scopes: OR.Machines or OR.Machines.Read.\r\n\r\nRequired permissions: (Machines.View or Jobs.Create).", + "operationId": "Machines_GetAssignedMachinesByFolderid", + "parameters": [ + { + "name": "folderId", + "in": "path", + "required": true, + "schema": { + "type": "integer", + "format": "int64" + } + }, + { + "name": "robotId", + "in": "query", + "schema": { + "type": "integer", + "format": "int64" + } + }, + { + "name": "$expand", + "in": "query", + "description": "Indicates the related entities to be represented inline. The maximum depth is 2.", + "schema": { + "type": "string" + } + }, + { + "name": "$filter", + "in": "query", + "description": "Restricts the set of items returned. The maximum number of expressions is 100.", + "schema": { + "type": "string" + } + }, + { + "name": "$select", + "in": "query", + "description": "Limits the properties returned in the result.", + "schema": { + "type": "string" + } + }, + { + "name": "$orderby", + "in": "query", + "description": "Specifies the order in which items are returned. The maximum number of expressions is 5.", + "schema": { + "type": "string" + } + }, + { + "name": "$top", + "in": "query", + "description": "Limits the number of items returned from a collection. The maximum value is 1000.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "$skip", + "in": "query", + "description": "Excludes the specified number of items of the queried collection from the result.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "$count", + "in": "query", + "description": "Indicates whether the total count of items within a collection are returned in the result.", + "schema": { + "type": "boolean" + } + } + ], + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ODataValueOfIEnumerableOfMachineDto" + } + } + } + } + }, + "security": [ + { + "OAuth2": [] + } + ] + } + }, + "/odata/Machines/UiPath.Server.Configuration.OData.GetRuntimesForFolder(folderId={folderId})": { + "get": { + "tags": [ + "Machines" + ], + "summary": "Gets runtimes for the specified folder", + "description": "OAuth required scopes: OR.Machines or OR.Machines.Read.\r\n\r\nRequired permissions: (Machines.View or Jobs.Create).", + "operationId": "Machines_GetRuntimesForFolderByFolderid", + "parameters": [ + { + "name": "folderId", + "in": "path", + "required": true, + "schema": { + "type": "integer", + "format": "int64" + } + }, + { + "name": "$expand", + "in": "query", + "description": "Indicates the related entities to be represented inline. The maximum depth is 2.", + "schema": { + "type": "string" + } + }, + { + "name": "$filter", + "in": "query", + "description": "Restricts the set of items returned. The maximum number of expressions is 100.", + "schema": { + "type": "string" + } + }, + { + "name": "$select", + "in": "query", + "description": "Limits the properties returned in the result.", + "schema": { + "type": "string" + } + }, + { + "name": "$orderby", + "in": "query", + "description": "Specifies the order in which items are returned. The maximum number of expressions is 5.", + "schema": { + "type": "string" + } + }, + { + "name": "$count", + "in": "query", + "description": "Indicates whether the total count of items within a collection are returned in the result.", + "schema": { + "type": "boolean" + } + } + ], + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ODataValueOfIEnumerableOfMachineRuntimeDto" + } + } + } + } + }, + "security": [ + { + "OAuth2": [] + } + ] + } + }, + "/odata/OrganizationUnits": { + "get": { + "tags": [ + "OrganizationUnits" + ], + "summary": "Gets the organization units.", + "description": "OAuth required scopes: OR.Folders or OR.Folders.Read.\r\n\r\nRequired permissions: Units.View.\r\nDEPRECATED: \r\nKept for backwards compatibility. Use Get from FoldersController instead", + "operationId": "OrganizationUnits_Get", + "parameters": [ + { + "name": "$expand", + "in": "query", + "description": "Indicates the related entities to be represented inline. The maximum depth is 2.", + "schema": { + "type": "string" + } + }, + { + "name": "$filter", + "in": "query", + "description": "Restricts the set of items returned. The maximum number of expressions is 100.", + "schema": { + "type": "string" + } + }, + { + "name": "$select", + "in": "query", + "description": "Limits the properties returned in the result.", + "schema": { + "type": "string" + } + }, + { + "name": "$orderby", + "in": "query", + "description": "Specifies the order in which items are returned. The maximum number of expressions is 5.", + "schema": { + "type": "string" + } + }, + { + "name": "$top", + "in": "query", + "description": "Limits the number of items returned from a collection. The maximum value is 1000.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "$skip", + "in": "query", + "description": "Excludes the specified number of items of the queried collection from the result.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "$count", + "in": "query", + "description": "Indicates whether the total count of items within a collection are returned in the result.", + "schema": { + "type": "boolean" + } + } + ], + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ODataValueOfIEnumerableOfOrganizationUnitDto" + } + } + } + } + }, + "deprecated": true, + "security": [ + { + "OAuth2": [] + } + ] + }, + "post": { + "tags": [ + "OrganizationUnits" + ], + "summary": "Creates an organization unit.", + "description": "OAuth required scopes: OR.Folders or OR.Folders.Write.\r\n\r\nRequired permissions: Units.Create.\r\nDEPRECATED: \r\nKept for backwards compatibility. Use Post from FoldersController instead", + "operationId": "OrganizationUnits_Post", + "requestBody": { + "content": { + "application/json;odata.metadata=minimal;odata.streaming=true": { + "schema": { + "$ref": "#/components/schemas/OrganizationUnitDto" + } + }, + "application/json;odata.metadata=minimal;odata.streaming=false": { + "schema": { + "$ref": "#/components/schemas/OrganizationUnitDto" + } + }, + "application/json;odata.metadata=minimal": { + "schema": { + "$ref": "#/components/schemas/OrganizationUnitDto" + } + }, + "application/json;odata.metadata=full;odata.streaming=true": { + "schema": { + "$ref": "#/components/schemas/OrganizationUnitDto" + } + }, + "application/json;odata.metadata=full;odata.streaming=false": { + "schema": { + "$ref": "#/components/schemas/OrganizationUnitDto" + } + }, + "application/json;odata.metadata=full": { + "schema": { + "$ref": "#/components/schemas/OrganizationUnitDto" + } + }, + "application/json;odata.metadata=none;odata.streaming=true": { + "schema": { + "$ref": "#/components/schemas/OrganizationUnitDto" + } + }, + "application/json;odata.metadata=none;odata.streaming=false": { + "schema": { + "$ref": "#/components/schemas/OrganizationUnitDto" + } + }, + "application/json;odata.metadata=none": { + "schema": { + "$ref": "#/components/schemas/OrganizationUnitDto" + } + }, + "application/json;odata.streaming=true": { + "schema": { + "$ref": "#/components/schemas/OrganizationUnitDto" + } + }, + "application/json;odata.streaming=false": { + "schema": { + "$ref": "#/components/schemas/OrganizationUnitDto" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/OrganizationUnitDto" + } + }, + "application/json-patch+json": { + "schema": { + "$ref": "#/components/schemas/OrganizationUnitDto" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/OrganizationUnitDto" + } + } + }, + "required": false + }, + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/OrganizationUnitDto" + } + } + } + }, + "201": { + "description": "Created", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/OrganizationUnitDto" + } + } + } + } + }, + "deprecated": true, + "security": [ + { + "OAuth2": [] + } + ], + "x-codegen-request-body-name": "body" + } + }, + "/odata/OrganizationUnits({key})": { + "get": { + "tags": [ + "OrganizationUnits" + ], + "summary": "Gets an organization unit.", + "description": "OAuth required scopes: OR.Folders or OR.Folders.Read.\r\n\r\nRequired permissions: Units.View.\r\nDEPRECATED: \r\nKept for backwards compatibility. Use Get from FoldersController instead", + "operationId": "OrganizationUnits_GetById", + "parameters": [ + { + "name": "key", + "in": "path", + "required": true, + "schema": { + "type": "integer", + "format": "int64" + } + }, + { + "name": "$expand", + "in": "query", + "description": "Indicates the related entities to be represented inline. The maximum depth is 2.", + "schema": { + "type": "string" + } + }, + { + "name": "$select", + "in": "query", + "description": "Limits the properties returned in the result.", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/OrganizationUnitDto" + } + } + } + } + }, + "deprecated": true, + "security": [ + { + "OAuth2": [] + } + ] + }, + "put": { + "tags": [ + "OrganizationUnits" + ], + "summary": "Edits an organization unit.", + "description": "OAuth required scopes: OR.Folders or OR.Folders.Write.\r\n\r\nRequired permissions: Units.Edit.\r\nDEPRECATED: \r\nKept for backwards compatibility. Use Put from FoldersController instead", + "operationId": "OrganizationUnits_PutById", + "parameters": [ + { + "name": "key", + "in": "path", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "requestBody": { + "content": { + "application/json;odata.metadata=minimal;odata.streaming=true": { + "schema": { + "$ref": "#/components/schemas/OrganizationUnitDto" + } + }, + "application/json;odata.metadata=minimal;odata.streaming=false": { + "schema": { + "$ref": "#/components/schemas/OrganizationUnitDto" + } + }, + "application/json;odata.metadata=minimal": { + "schema": { + "$ref": "#/components/schemas/OrganizationUnitDto" + } + }, + "application/json;odata.metadata=full;odata.streaming=true": { + "schema": { + "$ref": "#/components/schemas/OrganizationUnitDto" + } + }, + "application/json;odata.metadata=full;odata.streaming=false": { + "schema": { + "$ref": "#/components/schemas/OrganizationUnitDto" + } + }, + "application/json;odata.metadata=full": { + "schema": { + "$ref": "#/components/schemas/OrganizationUnitDto" + } + }, + "application/json;odata.metadata=none;odata.streaming=true": { + "schema": { + "$ref": "#/components/schemas/OrganizationUnitDto" + } + }, + "application/json;odata.metadata=none;odata.streaming=false": { + "schema": { + "$ref": "#/components/schemas/OrganizationUnitDto" + } + }, + "application/json;odata.metadata=none": { + "schema": { + "$ref": "#/components/schemas/OrganizationUnitDto" + } + }, + "application/json;odata.streaming=true": { + "schema": { + "$ref": "#/components/schemas/OrganizationUnitDto" + } + }, + "application/json;odata.streaming=false": { + "schema": { + "$ref": "#/components/schemas/OrganizationUnitDto" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/OrganizationUnitDto" + } + }, + "application/json-patch+json": { + "schema": { + "$ref": "#/components/schemas/OrganizationUnitDto" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/OrganizationUnitDto" + } + } + }, + "required": false + }, + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/OrganizationUnitDto" + } + } + } + } + }, + "deprecated": true, + "security": [ + { + "OAuth2": [] + } + ], + "x-codegen-request-body-name": "body" + }, + "delete": { + "tags": [ + "OrganizationUnits" + ], + "summary": "Deletes an organization unit.", + "description": "OAuth required scopes: OR.Folders or OR.Folders.Write.\r\n\r\nRequired permissions: Units.Delete.\r\nDEPRECATED: \r\nKept for backwards compatibility. Use Delete from FoldersController instead", + "operationId": "OrganizationUnits_DeleteById", + "parameters": [ + { + "name": "key", + "in": "path", + "required": true, + "schema": { + "type": "integer", + "format": "int64" + } + } + ], + "responses": { + "204": { + "description": "No Content", + "content": {} + } + }, + "deprecated": true, + "security": [ + { + "OAuth2": [] + } + ] + } + }, + "/odata/OrganizationUnits({key})/UiPath.Server.Configuration.OData.SetUsers": { + "post": { + "tags": [ + "OrganizationUnits" + ], + "summary": "Associates a group of users with and dissociates another group of users from the given unit.", + "description": "OAuth required scopes: OR.Folders or OR.Folders.Write.\r\n\r\nRequired permissions: Users.Edit.\r\nDEPRECATED: \r\nKept for backwards compatibility. Use AssignUsers from FoldersController instead", + "operationId": "OrganizationUnits_SetUsersById", + "parameters": [ + { + "name": "key", + "in": "path", + "description": "The unit id.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "requestBody": { + "description": "addedUserIds - The id of the users to be associated with the unit.\r\n removedUserIds - The id of the users to be dissociated from the unit.", + "content": { + "application/json;odata.metadata=minimal;odata.streaming=true": { + "schema": { + "$ref": "#/components/schemas/SetUsersRequest" + } + }, + "application/json;odata.metadata=minimal;odata.streaming=false": { + "schema": { + "$ref": "#/components/schemas/SetUsersRequest" + } + }, + "application/json;odata.metadata=minimal": { + "schema": { + "$ref": "#/components/schemas/SetUsersRequest" + } + }, + "application/json;odata.metadata=full;odata.streaming=true": { + "schema": { + "$ref": "#/components/schemas/SetUsersRequest" + } + }, + "application/json;odata.metadata=full;odata.streaming=false": { + "schema": { + "$ref": "#/components/schemas/SetUsersRequest" + } + }, + "application/json;odata.metadata=full": { + "schema": { + "$ref": "#/components/schemas/SetUsersRequest" + } + }, + "application/json;odata.metadata=none;odata.streaming=true": { + "schema": { + "$ref": "#/components/schemas/SetUsersRequest" + } + }, + "application/json;odata.metadata=none;odata.streaming=false": { + "schema": { + "$ref": "#/components/schemas/SetUsersRequest" + } + }, + "application/json;odata.metadata=none": { + "schema": { + "$ref": "#/components/schemas/SetUsersRequest" + } + }, + "application/json;odata.streaming=true": { + "schema": { + "$ref": "#/components/schemas/SetUsersRequest" + } + }, + "application/json;odata.streaming=false": { + "schema": { + "$ref": "#/components/schemas/SetUsersRequest" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/SetUsersRequest" + } + }, + "application/json-patch+json": { + "schema": { + "$ref": "#/components/schemas/SetUsersRequest" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/SetUsersRequest" + } + } + }, + "required": false + }, + "responses": { + "200": { + "description": "Success", + "content": {} + }, + "204": { + "description": "Nothing returned", + "content": {} + } + }, + "deprecated": true, + "security": [ + { + "OAuth2": [] + } + ], + "x-codegen-request-body-name": "body" + } + }, + "/odata/OrganizationUnits/UiPath.Server.Configuration.OData.GetUserIdsForUnit(key={key})": { + "get": { + "tags": [ + "OrganizationUnits" + ], + "summary": "Returns a collection of all the ids of the users associated to an unit based on unit Id.", + "description": "OAuth required scopes: OR.Folders or OR.Folders.Read.\r\n\r\nRequired permissions: Units.View and Users.View.\r\nDEPRECATED: \r\nKept for backwards compatibility.", + "operationId": "OrganizationUnits_GetUserIdsForUnitByKey", + "parameters": [ + { + "name": "key", + "in": "path", + "description": "The Id of the unit for which the robot ids are fetched.", + "required": true, + "schema": { + "type": "integer", + "format": "int64" + } + }, + { + "name": "$expand", + "in": "query", + "description": "Indicates the related entities to be represented inline. The maximum depth is 2.", + "schema": { + "type": "string" + } + }, + { + "name": "$filter", + "in": "query", + "description": "Restricts the set of items returned. The maximum number of expressions is 100.", + "schema": { + "type": "string" + } + }, + { + "name": "$select", + "in": "query", + "description": "Limits the properties returned in the result.", + "schema": { + "type": "string" + } + }, + { + "name": "$orderby", + "in": "query", + "description": "Specifies the order in which items are returned. The maximum number of expressions is 5.", + "schema": { + "type": "string" + } + }, + { + "name": "$count", + "in": "query", + "description": "Indicates whether the total count of items within a collection are returned in the result.", + "schema": { + "type": "boolean" + } + } + ], + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ODataValueOfIEnumerableOfInt64" + } + } + } + } + }, + "deprecated": true, + "security": [ + { + "OAuth2": [] + } + ] + } + }, + "/odata/OrganizationUnits/UiPath.Server.Configuration.OData.GetUsersForUnit(key={key})": { + "get": { + "tags": [ + "OrganizationUnits" + ], + "summary": "Returns a collection of all non robot users and, if no other sorting is provided, will place first those associated to an unit. Allows odata query options.", + "description": "OAuth required scopes: OR.Folders or OR.Folders.Read.\r\n\r\nRequired permissions: Units.View and Users.View.\r\nDEPRECATED: \r\nKept for backwards compatibility. Use GetUsersForFolder from FoldersController instead", + "operationId": "OrganizationUnits_GetUsersForUnitByKey", + "parameters": [ + { + "name": "key", + "in": "path", + "description": "The Id of the unit for which the associated users are placed first.", + "required": true, + "schema": { + "type": "integer", + "format": "int64" + } + }, + { + "name": "$expand", + "in": "query", + "description": "Indicates the related entities to be represented inline. The maximum depth is 2.", + "schema": { + "type": "string" + } + }, + { + "name": "$filter", + "in": "query", + "description": "Restricts the set of items returned. The maximum number of expressions is 100.", + "schema": { + "type": "string" + } + }, + { + "name": "$select", + "in": "query", + "description": "Limits the properties returned in the result.", + "schema": { + "type": "string" + } + }, + { + "name": "$orderby", + "in": "query", + "description": "Specifies the order in which items are returned. The maximum number of expressions is 5.", + "schema": { + "type": "string" + } + }, + { + "name": "$top", + "in": "query", + "description": "Limits the number of items returned from a collection. The maximum value is 1000.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "$skip", + "in": "query", + "description": "Excludes the specified number of items of the queried collection from the result.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "$count", + "in": "query", + "description": "Indicates whether the total count of items within a collection are returned in the result.", + "schema": { + "type": "boolean" + } + } + ], + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ODataValueOfIEnumerableOfUserDto" + } + } + } + } + }, + "deprecated": true, + "security": [ + { + "OAuth2": [] + } + ] + } + }, + "/odata/Permissions": { + "get": { + "tags": [ + "Permissions" + ], + "summary": "Gets permissions.", + "operationId": "Permissions_Get", + "parameters": [ + { + "name": "$expand", + "in": "query", + "description": "Indicates the related entities to be represented inline. The maximum depth is 2.", + "schema": { + "type": "string" + } + }, + { + "name": "$filter", + "in": "query", + "description": "Restricts the set of items returned. The maximum number of expressions is 100.", + "schema": { + "type": "string" + } + }, + { + "name": "$select", + "in": "query", + "description": "Limits the properties returned in the result.", + "schema": { + "type": "string" + } + }, + { + "name": "$orderby", + "in": "query", + "description": "Specifies the order in which items are returned. The maximum number of expressions is 5.", + "schema": { + "type": "string" + } + }, + { + "name": "$top", + "in": "query", + "description": "Limits the number of items returned from a collection. The maximum value is 1000.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "$skip", + "in": "query", + "description": "Excludes the specified number of items of the queried collection from the result.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "$count", + "in": "query", + "description": "Indicates whether the total count of items within a collection are returned in the result.", + "schema": { + "type": "boolean" + } + } + ], + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ODataValueOfIEnumerableOfPermissionDto" + } + } + } + } + }, + "security": [ + { + "OAuth2": [] + } + ] + } + }, + "/odata/PersonalWorkspaces": { + "get": { + "tags": [ + "PersonalWorkspaces" + ], + "summary": "Gets Personal Workspaces.", + "description": "OAuth required scopes: OR.Folders or OR.Folders.Read.\r\n\r\nRequired permissions: Units.View.", + "operationId": "PersonalWorkspaces_Get", + "parameters": [ + { + "name": "$expand", + "in": "query", + "description": "Indicates the related entities to be represented inline. The maximum depth is 2.", + "schema": { + "type": "string" + } + }, + { + "name": "$filter", + "in": "query", + "description": "Restricts the set of items returned. The maximum number of expressions is 100.", + "schema": { + "type": "string" + } + }, + { + "name": "$select", + "in": "query", + "description": "Limits the properties returned in the result.", + "schema": { + "type": "string" + } + }, + { + "name": "$orderby", + "in": "query", + "description": "Specifies the order in which items are returned. The maximum number of expressions is 5.", + "schema": { + "type": "string" + } + }, + { + "name": "$top", + "in": "query", + "description": "Limits the number of items returned from a collection. The maximum value is 1000.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "$skip", + "in": "query", + "description": "Excludes the specified number of items of the queried collection from the result.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "$count", + "in": "query", + "description": "Indicates whether the total count of items within a collection are returned in the result.", + "schema": { + "type": "boolean" + } + } + ], + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ODataValueOfIEnumerableOfPersonalWorkspaceDto" + } + } + } + } + }, + "security": [ + { + "OAuth2": [] + } + ] + } + }, + "/odata/PersonalWorkspaces({key})/UiPath.Server.Configuration.OData.ConvertToFolder": { + "post": { + "tags": [ + "PersonalWorkspaces" + ], + "summary": "Converts a Personal Workspace to a standard Folder.", + "description": "OAuth authentication is not supported.\r\n\r\nRequired permissions: Units.Edit.", + "operationId": "PersonalWorkspaces_ConvertToFolderById", + "parameters": [ + { + "name": "key", + "in": "path", + "required": true, + "schema": { + "type": "integer", + "format": "int64" + } + } + ], + "requestBody": { + "content": { + "application/json;odata.metadata=minimal;odata.streaming=true": { + "schema": { + "$ref": "#/components/schemas/PersonalWorkspacesConvertToFolderRequest" + } + }, + "application/json;odata.metadata=minimal;odata.streaming=false": { + "schema": { + "$ref": "#/components/schemas/PersonalWorkspacesConvertToFolderRequest" + } + }, + "application/json;odata.metadata=minimal": { + "schema": { + "$ref": "#/components/schemas/PersonalWorkspacesConvertToFolderRequest" + } + }, + "application/json;odata.metadata=full;odata.streaming=true": { + "schema": { + "$ref": "#/components/schemas/PersonalWorkspacesConvertToFolderRequest" + } + }, + "application/json;odata.metadata=full;odata.streaming=false": { + "schema": { + "$ref": "#/components/schemas/PersonalWorkspacesConvertToFolderRequest" + } + }, + "application/json;odata.metadata=full": { + "schema": { + "$ref": "#/components/schemas/PersonalWorkspacesConvertToFolderRequest" + } + }, + "application/json;odata.metadata=none;odata.streaming=true": { + "schema": { + "$ref": "#/components/schemas/PersonalWorkspacesConvertToFolderRequest" + } + }, + "application/json;odata.metadata=none;odata.streaming=false": { + "schema": { + "$ref": "#/components/schemas/PersonalWorkspacesConvertToFolderRequest" + } + }, + "application/json;odata.metadata=none": { + "schema": { + "$ref": "#/components/schemas/PersonalWorkspacesConvertToFolderRequest" + } + }, + "application/json;odata.streaming=true": { + "schema": { + "$ref": "#/components/schemas/PersonalWorkspacesConvertToFolderRequest" + } + }, + "application/json;odata.streaming=false": { + "schema": { + "$ref": "#/components/schemas/PersonalWorkspacesConvertToFolderRequest" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/PersonalWorkspacesConvertToFolderRequest" + } + }, + "application/json-patch+json": { + "schema": { + "$ref": "#/components/schemas/PersonalWorkspacesConvertToFolderRequest" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/PersonalWorkspacesConvertToFolderRequest" + } + } + }, + "required": false + }, + "responses": { + "204": { + "description": "No Content", + "content": {} + } + }, + "security": [ + { + "OAuth2": [] + } + ], + "x-codegen-request-body-name": "body" + } + }, + "/odata/PersonalWorkspaces({key})/UiPath.Server.Configuration.OData.StartExploring": { + "post": { + "tags": [ + "PersonalWorkspaces" + ], + "summary": "Assigns the current User to explore a Personal Workspace.", + "description": "OAuth authentication is not supported.\r\n\r\nRequired permissions: Units.Edit and Users.View and Roles.View.", + "operationId": "PersonalWorkspaces_StartExploringById", + "parameters": [ + { + "name": "key", + "in": "path", + "required": true, + "schema": { + "type": "integer", + "format": "int64" + } + } + ], + "responses": { + "204": { + "description": "No Content", + "content": {} + } + }, + "security": [ + { + "OAuth2": [] + } + ] + } + }, + "/odata/PersonalWorkspaces({key})/UiPath.Server.Configuration.OData.StopExploring": { + "post": { + "tags": [ + "PersonalWorkspaces" + ], + "summary": "Unassigns the current User from exploring a Personal Workspace.", + "description": "OAuth authentication is not supported.\r\n\r\nRequired permissions: Units.Edit and Users.View and Roles.View.", + "operationId": "PersonalWorkspaces_StopExploringById", + "parameters": [ + { + "name": "key", + "in": "path", + "required": true, + "schema": { + "type": "integer", + "format": "int64" + } + } + ], + "responses": { + "204": { + "description": "No Content", + "content": {} + } + }, + "security": [ + { + "OAuth2": [] + } + ] + } + }, + "/odata/PersonalWorkspaces/UiPath.Server.Configuration.OData.GetPersonalWorkspace": { + "get": { + "tags": [ + "PersonalWorkspaces" + ], + "summary": "Gets Personal Workspace for current User", + "description": "OAuth authentication is not supported.\r\n\r\nRequires authentication.", + "operationId": "PersonalWorkspaces_GetPersonalWorkspace", + "parameters": [ + { + "name": "$expand", + "in": "query", + "description": "Indicates the related entities to be represented inline. The maximum depth is 2.", + "schema": { + "type": "string" + } + }, + { + "name": "$select", + "in": "query", + "description": "Limits the properties returned in the result.", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/PersonalWorkspaceDto" + } + } + } + }, + "404": { + "description": "Not Found", + "content": {} + } + }, + "security": [ + { + "OAuth2": [] + } + ] + } + }, + "/odata/Processes": { + "get": { + "tags": [ + "Processes" + ], + "summary": "Gets the processes.", + "description": "OAuth required scopes: OR.Execution or OR.Execution.Read.\r\n\r\nRequired permissions: (Packages.View - Lists packages in a Tenant Feed) and (FolderPackages.View - Lists packages in a Folder Feed).", + "operationId": "Processes_Get", + "parameters": [ + { + "name": "searchTerm", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "feedId", + "in": "query", + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "$expand", + "in": "query", + "description": "Indicates the related entities to be represented inline. The maximum depth is 2.", + "schema": { + "type": "string" + } + }, + { + "name": "$filter", + "in": "query", + "description": "Restricts the set of items returned. The maximum number of expressions is 100.", + "schema": { + "type": "string" + } + }, + { + "name": "$select", + "in": "query", + "description": "Limits the properties returned in the result.", + "schema": { + "type": "string" + } + }, + { + "name": "$orderby", + "in": "query", + "description": "Specifies the order in which items are returned. The maximum number of expressions is 5.", + "schema": { + "type": "string" + } + }, + { + "name": "$top", + "in": "query", + "description": "Limits the number of items returned from a collection. The maximum value is 1000.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "$skip", + "in": "query", + "description": "Excludes the specified number of items of the queried collection from the result.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "$count", + "in": "query", + "description": "Indicates whether the total count of items within a collection are returned in the result.", + "schema": { + "type": "boolean" + } + } + ], + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ODataValueOfIEnumerableOfProcessDto" + } + } + } + } + }, + "security": [ + { + "OAuth2": [] + } + ] + } + }, + "/odata/Processes('{key}')": { + "delete": { + "tags": [ + "Processes" + ], + "summary": "Deletes a package.", + "description": "OAuth required scopes: OR.Execution or OR.Execution.Write.\r\n\r\nRequired permissions: (Packages.Delete - Deletes a package in a Tenant Feed) and (FolderPackages.Delete - Deletes a package in a Folder Feed).", + "operationId": "Processes_DeleteById", + "parameters": [ + { + "name": "key", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "feedId", + "in": "query", + "schema": { + "type": "string", + "format": "uuid" + } + } + ], + "responses": { + "200": { + "description": "Package deleted", + "content": {} + }, + "204": { + "description": "Deleted", + "content": {} + } + }, + "security": [ + { + "OAuth2": [] + } + ] + } + }, + "/odata/Processes/UiPath.Server.Configuration.OData.DownloadPackage(key='{key}')": { + "get": { + "tags": [ + "Processes" + ], + "summary": "Downloads the .nupkg file of a Package.", + "description": "OAuth required scopes: OR.Execution or OR.Execution.Read.\r\n\r\nRequired permissions: (Packages.View - Downloads a package from a Tenant Feed) and (FolderPackages.View - Downloads a package from a Folder Feed).", + "operationId": "Processes_DownloadPackageByKey", + "parameters": [ + { + "name": "key", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "feedId", + "in": "query", + "schema": { + "type": "string", + "format": "uuid" + } + } + ], + "responses": { + "200": { + "description": "Success", + "content": { + "application/octet-stream": { + "schema": { + "type": "string", + "format": "binary" + } + } + } + } + }, + "security": [ + { + "OAuth2": [] + } + ] + } + }, + "/odata/Processes/UiPath.Server.Configuration.OData.GetArguments(key='{key}')": { + "get": { + "tags": [ + "Processes" + ], + "summary": "Get process parameters", + "description": "OAuth required scopes: OR.Execution or OR.Execution.Read.\r\n\r\nRequired permissions: Packages.View.", + "operationId": "Processes_GetArgumentsByKey", + "parameters": [ + { + "name": "key", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "$expand", + "in": "query", + "description": "Indicates the related entities to be represented inline. The maximum depth is 2.", + "schema": { + "type": "string" + } + }, + { + "name": "$select", + "in": "query", + "description": "Limits the properties returned in the result.", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ArgumentMetadata" + } + } + } + } + }, + "security": [ + { + "OAuth2": [] + } + ] + } + }, + "/odata/Processes/UiPath.Server.Configuration.OData.GetProcessVersions(processId='{processId}')": { + "get": { + "tags": [ + "Processes" + ], + "summary": "Returns a collection of all available versions of a given process. Allows odata query options.", + "description": "OAuth required scopes: OR.Execution or OR.Execution.Read.\r\n\r\nRequired permissions: (Packages.View - Lists versions of a package in a Tenant Feed) and (FolderPackages.View - Lists versions of a package in a Folder Feed).", + "operationId": "Processes_GetProcessVersionsByProcessid", + "parameters": [ + { + "name": "processId", + "in": "path", + "description": "The Id of the process for which the versions are fetched.", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "feedId", + "in": "query", + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "$expand", + "in": "query", + "description": "Indicates the related entities to be represented inline. The maximum depth is 2.", + "schema": { + "type": "string" + } + }, + { + "name": "$filter", + "in": "query", + "description": "Restricts the set of items returned. The maximum number of expressions is 100.", + "schema": { + "type": "string" + } + }, + { + "name": "$select", + "in": "query", + "description": "Limits the properties returned in the result.", + "schema": { + "type": "string" + } + }, + { + "name": "$orderby", + "in": "query", + "description": "Specifies the order in which items are returned. The maximum number of expressions is 5.", + "schema": { + "type": "string" + } + }, + { + "name": "$top", + "in": "query", + "description": "Limits the number of items returned from a collection. The maximum value is 1000.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "$skip", + "in": "query", + "description": "Excludes the specified number of items of the queried collection from the result.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "$count", + "in": "query", + "description": "Indicates whether the total count of items within a collection are returned in the result.", + "schema": { + "type": "boolean" + } + } + ], + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ODataValueOfIEnumerableOfProcessDto" + } + } + } + } + }, + "security": [ + { + "OAuth2": [] + } + ] + } + }, + "/odata/Processes/UiPath.Server.Configuration.OData.SetArguments": { + "post": { + "tags": [ + "Processes" + ], + "summary": "Saves process arguments", + "description": "OAuth required scopes: OR.Execution or OR.Execution.Write.\r\n\r\nRequired permissions: Packages.Edit.", + "operationId": "Processes_SetArguments", + "requestBody": { + "content": { + "application/json;odata.metadata=minimal;odata.streaming=true": { + "schema": { + "$ref": "#/components/schemas/ProcessesSetArgumentsRequest" + } + }, + "application/json;odata.metadata=minimal;odata.streaming=false": { + "schema": { + "$ref": "#/components/schemas/ProcessesSetArgumentsRequest" + } + }, + "application/json;odata.metadata=minimal": { + "schema": { + "$ref": "#/components/schemas/ProcessesSetArgumentsRequest" + } + }, + "application/json;odata.metadata=full;odata.streaming=true": { + "schema": { + "$ref": "#/components/schemas/ProcessesSetArgumentsRequest" + } + }, + "application/json;odata.metadata=full;odata.streaming=false": { + "schema": { + "$ref": "#/components/schemas/ProcessesSetArgumentsRequest" + } + }, + "application/json;odata.metadata=full": { + "schema": { + "$ref": "#/components/schemas/ProcessesSetArgumentsRequest" + } + }, + "application/json;odata.metadata=none;odata.streaming=true": { + "schema": { + "$ref": "#/components/schemas/ProcessesSetArgumentsRequest" + } + }, + "application/json;odata.metadata=none;odata.streaming=false": { + "schema": { + "$ref": "#/components/schemas/ProcessesSetArgumentsRequest" + } + }, + "application/json;odata.metadata=none": { + "schema": { + "$ref": "#/components/schemas/ProcessesSetArgumentsRequest" + } + }, + "application/json;odata.streaming=true": { + "schema": { + "$ref": "#/components/schemas/ProcessesSetArgumentsRequest" + } + }, + "application/json;odata.streaming=false": { + "schema": { + "$ref": "#/components/schemas/ProcessesSetArgumentsRequest" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProcessesSetArgumentsRequest" + } + }, + "application/json-patch+json": { + "schema": { + "$ref": "#/components/schemas/ProcessesSetArgumentsRequest" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/ProcessesSetArgumentsRequest" + } + } + }, + "required": false + }, + "responses": { + "200": { + "description": "Success", + "content": {} + } + }, + "security": [ + { + "OAuth2": [] + } + ], + "x-codegen-request-body-name": "body" + } + }, + "/odata/Processes/UiPath.Server.Configuration.OData.UploadPackage": { + "post": { + "tags": [ + "Processes" + ], + "summary": "Uploads a new package or a new version of an existing package. The content of the package is sent as a .nupkg file embedded in the HTTP request.", + "description": "OAuth required scopes: OR.Execution or OR.Execution.Write.\r\n\r\nRequired permissions: (Packages.Create - Uploads a package in a Tenant Feed) and (FolderPackages.Create - Uploads a package in a Folder Feed).", + "operationId": "Processes_UploadPackage", + "parameters": [ + { + "name": "feedId", + "in": "query", + "schema": { + "type": "string", + "format": "uuid" + } + }, + { + "name": "$expand", + "in": "query", + "description": "Indicates the related entities to be represented inline. The maximum depth is 2.", + "schema": { + "type": "string" + } + }, + { + "name": "$filter", + "in": "query", + "description": "Restricts the set of items returned. The maximum number of expressions is 100.", + "schema": { + "type": "string" + } + }, + { + "name": "$select", + "in": "query", + "description": "Limits the properties returned in the result.", + "schema": { + "type": "string" + } + }, + { + "name": "$orderby", + "in": "query", + "description": "Specifies the order in which items are returned. The maximum number of expressions is 5.", + "schema": { + "type": "string" + } + }, + { + "name": "$count", + "in": "query", + "description": "Indicates whether the total count of items within a collection are returned in the result.", + "schema": { + "type": "boolean" + } + } + ], + "requestBody": { + "content": { + "multipart/form-data": { + "schema": { + "required": [ + "file" + ], + "type": "object", + "properties": { + "file1": { + "type": "string", + "format": "binary" + }, + "file2": { + "type": "string", + "format": "binary" + }, + "file3": { + "type": "string", + "format": "binary" + }, + "file4": { + "type": "string", + "format": "binary" + }, + "file5": { + "type": "string", + "format": "binary" + }, + "file6": { + "type": "string", + "format": "binary" + }, + "file7": { + "type": "string", + "format": "binary" + }, + "file8": { + "type": "string", + "format": "binary" + }, + "file9": { + "type": "string", + "format": "binary" + }, + "file": { + "type": "string", + "format": "binary" + } + } + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ODataValueOfIEnumerableOfBulkItemDtoOfString" + } + } + } + }, + "207": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ODataValueOfIEnumerableOfBulkItemDtoOfString" + } + } + } + } + }, + "security": [ + { + "OAuth2": [] + } + ] + } + }, + "/odata/ProcessSchedules": { + "get": { + "tags": [ + "ProcessSchedules" + ], + "summary": "Gets the process schedules.", + "description": "OAuth required scopes: OR.Jobs or OR.Jobs.Read.\r\n\r\nRequired permissions: Schedules.View.", + "operationId": "ProcessSchedules_Get", + "parameters": [ + { + "name": "$expand", + "in": "query", + "description": "Indicates the related entities to be represented inline. The maximum depth is 2.", + "schema": { + "type": "string" + } + }, + { + "name": "$filter", + "in": "query", + "description": "Restricts the set of items returned. The maximum number of expressions is 100.", + "schema": { + "type": "string" + } + }, + { + "name": "$select", + "in": "query", + "description": "Limits the properties returned in the result.", + "schema": { + "type": "string" + } + }, + { + "name": "$orderby", + "in": "query", + "description": "Specifies the order in which items are returned. The maximum number of expressions is 5.", + "schema": { + "type": "string" + } + }, + { + "name": "$top", + "in": "query", + "description": "Limits the number of items returned from a collection. The maximum value is 1000.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "$skip", + "in": "query", + "description": "Excludes the specified number of items of the queried collection from the result.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "$count", + "in": "query", + "description": "Indicates whether the total count of items within a collection are returned in the result.", + "schema": { + "type": "boolean" + } + }, + { + "name": "X-UIPATH-OrganizationUnitId", + "in": "header", + "description": "Folder/OrganizationUnit Id", + "schema": { + "type": "integer", + "format": "int64" + } + } + ], + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ODataValueOfIEnumerableOfProcessScheduleDto" + } + } + } + } + }, + "security": [ + { + "OAuth2": [] + } + ] + }, + "post": { + "tags": [ + "ProcessSchedules" + ], + "summary": "Creates a new process schedule.", + "description": "OAuth required scopes: OR.Jobs or OR.Jobs.Write.\r\n\r\nRequired permissions: Schedules.Create.", + "operationId": "ProcessSchedules_Post", + "parameters": [ + { + "name": "X-UIPATH-OrganizationUnitId", + "in": "header", + "description": "Folder/OrganizationUnit Id", + "schema": { + "type": "integer", + "format": "int64" + } + } + ], + "requestBody": { + "content": { + "application/json;odata.metadata=minimal;odata.streaming=true": { + "schema": { + "$ref": "#/components/schemas/ProcessScheduleDto" + } + }, + "application/json;odata.metadata=minimal;odata.streaming=false": { + "schema": { + "$ref": "#/components/schemas/ProcessScheduleDto" + } + }, + "application/json;odata.metadata=minimal": { + "schema": { + "$ref": "#/components/schemas/ProcessScheduleDto" + } + }, + "application/json;odata.metadata=full;odata.streaming=true": { + "schema": { + "$ref": "#/components/schemas/ProcessScheduleDto" + } + }, + "application/json;odata.metadata=full;odata.streaming=false": { + "schema": { + "$ref": "#/components/schemas/ProcessScheduleDto" + } + }, + "application/json;odata.metadata=full": { + "schema": { + "$ref": "#/components/schemas/ProcessScheduleDto" + } + }, + "application/json;odata.metadata=none;odata.streaming=true": { + "schema": { + "$ref": "#/components/schemas/ProcessScheduleDto" + } + }, + "application/json;odata.metadata=none;odata.streaming=false": { + "schema": { + "$ref": "#/components/schemas/ProcessScheduleDto" + } + }, + "application/json;odata.metadata=none": { + "schema": { + "$ref": "#/components/schemas/ProcessScheduleDto" + } + }, + "application/json;odata.streaming=true": { + "schema": { + "$ref": "#/components/schemas/ProcessScheduleDto" + } + }, + "application/json;odata.streaming=false": { + "schema": { + "$ref": "#/components/schemas/ProcessScheduleDto" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProcessScheduleDto" + } + }, + "application/json-patch+json": { + "schema": { + "$ref": "#/components/schemas/ProcessScheduleDto" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/ProcessScheduleDto" + } + } + }, + "required": false + }, + "responses": { + "201": { + "description": "Created", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProcessScheduleDto" + } + } + } + } + }, + "security": [ + { + "OAuth2": [] + } + ], + "x-codegen-request-body-name": "body" + } + }, + "/odata/ProcessSchedules({key})": { + "get": { + "tags": [ + "ProcessSchedules" + ], + "summary": "Gets a single process schedule based on its key.", + "description": "OAuth required scopes: OR.Jobs or OR.Jobs.Read.\r\n\r\nRequired permissions: Schedules.View.", + "operationId": "ProcessSchedules_GetById", + "parameters": [ + { + "name": "key", + "in": "path", + "required": true, + "schema": { + "type": "integer", + "format": "int64" + } + }, + { + "name": "$expand", + "in": "query", + "description": "Indicates the related entities to be represented inline. The maximum depth is 2.", + "schema": { + "type": "string" + } + }, + { + "name": "$select", + "in": "query", + "description": "Limits the properties returned in the result.", + "schema": { + "type": "string" + } + }, + { + "name": "X-UIPATH-OrganizationUnitId", + "in": "header", + "description": "Folder/OrganizationUnit Id", + "schema": { + "type": "integer", + "format": "int64" + } + } + ], + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProcessScheduleDto" + } + } + } + }, + "404": { + "description": "Not Found", + "content": {} + } + }, + "security": [ + { + "OAuth2": [] + } + ] + }, + "put": { + "tags": [ + "ProcessSchedules" + ], + "summary": "Edits a process schedule.", + "description": "OAuth required scopes: OR.Jobs or OR.Jobs.Write.\r\n\r\nRequired permissions: Schedules.Edit.", + "operationId": "ProcessSchedules_PutById", + "parameters": [ + { + "name": "key", + "in": "path", + "required": true, + "schema": { + "type": "integer", + "format": "int64" + } + }, + { + "name": "X-UIPATH-OrganizationUnitId", + "in": "header", + "description": "Folder/OrganizationUnit Id", + "schema": { + "type": "integer", + "format": "int64" + } + } + ], + "requestBody": { + "content": { + "application/json;odata.metadata=minimal;odata.streaming=true": { + "schema": { + "$ref": "#/components/schemas/ProcessScheduleDto" + } + }, + "application/json;odata.metadata=minimal;odata.streaming=false": { + "schema": { + "$ref": "#/components/schemas/ProcessScheduleDto" + } + }, + "application/json;odata.metadata=minimal": { + "schema": { + "$ref": "#/components/schemas/ProcessScheduleDto" + } + }, + "application/json;odata.metadata=full;odata.streaming=true": { + "schema": { + "$ref": "#/components/schemas/ProcessScheduleDto" + } + }, + "application/json;odata.metadata=full;odata.streaming=false": { + "schema": { + "$ref": "#/components/schemas/ProcessScheduleDto" + } + }, + "application/json;odata.metadata=full": { + "schema": { + "$ref": "#/components/schemas/ProcessScheduleDto" + } + }, + "application/json;odata.metadata=none;odata.streaming=true": { + "schema": { + "$ref": "#/components/schemas/ProcessScheduleDto" + } + }, + "application/json;odata.metadata=none;odata.streaming=false": { + "schema": { + "$ref": "#/components/schemas/ProcessScheduleDto" + } + }, + "application/json;odata.metadata=none": { + "schema": { + "$ref": "#/components/schemas/ProcessScheduleDto" + } + }, + "application/json;odata.streaming=true": { + "schema": { + "$ref": "#/components/schemas/ProcessScheduleDto" + } + }, + "application/json;odata.streaming=false": { + "schema": { + "$ref": "#/components/schemas/ProcessScheduleDto" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProcessScheduleDto" + } + }, + "application/json-patch+json": { + "schema": { + "$ref": "#/components/schemas/ProcessScheduleDto" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/ProcessScheduleDto" + } + } + }, + "required": false + }, + "responses": { + "204": { + "description": "No Content", + "content": {} + } + }, + "security": [ + { + "OAuth2": [] + } + ], + "x-codegen-request-body-name": "body" + }, + "delete": { + "tags": [ + "ProcessSchedules" + ], + "summary": "Deletes a process schedule.", + "description": "OAuth required scopes: OR.Jobs or OR.Jobs.Write.\r\n\r\nRequired permissions: Schedules.Delete.", + "operationId": "ProcessSchedules_DeleteById", + "parameters": [ + { + "name": "key", + "in": "path", + "required": true, + "schema": { + "type": "integer", + "format": "int64" + } + }, + { + "name": "X-UIPATH-OrganizationUnitId", + "in": "header", + "description": "Folder/OrganizationUnit Id", + "schema": { + "type": "integer", + "format": "int64" + } + } + ], + "responses": { + "204": { + "description": "No Content", + "content": {} + } + }, + "security": [ + { + "OAuth2": [] + } + ] + } + }, + "/odata/ProcessSchedules({key})/UiPath.Server.Configuration.OData.Activate": { + "post": { + "tags": [ + "ProcessSchedules" + ], + "summary": "Activates a process schedule associated with a queue", + "description": "OAuth required scopes: OR.Jobs or OR.Jobs.Write.\r\n\r\nRequired permissions: Schedules.Edit.", + "operationId": "ProcessSchedules_ActivateById", + "parameters": [ + { + "name": "key", + "in": "path", + "required": true, + "schema": { + "type": "integer", + "format": "int64" + } + }, + { + "name": "X-UIPATH-OrganizationUnitId", + "in": "header", + "description": "Folder/OrganizationUnit Id", + "schema": { + "type": "integer", + "format": "int64" + } + } + ], + "responses": { + "200": { + "description": "Process Schedule was activated successfully", + "content": {} + }, + "404": { + "description": "Process Schedule not found", + "content": {} + }, + "409": { + "description": "Process Schedule cannot be activated", + "content": {} + } + }, + "security": [ + { + "OAuth2": [] + } + ] + } + }, + "/odata/ProcessSchedules/UiPath.Server.Configuration.OData.GetRobotIdsForSchedule(key={key})": { + "get": { + "tags": [ + "ProcessSchedules" + ], + "summary": "Returns a collection of all the ids of the robots associated to an schedule based on schedule Id.", + "description": "OAuth required scopes: OR.Jobs or OR.Jobs.Read.\r\n\r\nRequired permissions: Schedules.View.", + "operationId": "ProcessSchedules_GetRobotIdsForScheduleByKey", + "parameters": [ + { + "name": "key", + "in": "path", + "description": "The Id of the schedule for which the robot ids are fetched.", + "required": true, + "schema": { + "type": "integer", + "format": "int64" + } + }, + { + "name": "$expand", + "in": "query", + "description": "Indicates the related entities to be represented inline. The maximum depth is 2.", + "schema": { + "type": "string" + } + }, + { + "name": "$filter", + "in": "query", + "description": "Restricts the set of items returned. The maximum number of expressions is 100.", + "schema": { + "type": "string" + } + }, + { + "name": "$select", + "in": "query", + "description": "Limits the properties returned in the result.", + "schema": { + "type": "string" + } + }, + { + "name": "$orderby", + "in": "query", + "description": "Specifies the order in which items are returned. The maximum number of expressions is 5.", + "schema": { + "type": "string" + } + }, + { + "name": "$count", + "in": "query", + "description": "Indicates whether the total count of items within a collection are returned in the result.", + "schema": { + "type": "boolean" + } + }, + { + "name": "X-UIPATH-OrganizationUnitId", + "in": "header", + "description": "Folder/OrganizationUnit Id", + "schema": { + "type": "integer", + "format": "int64" + } + } + ], + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ODataValueOfIEnumerableOfInt64" + } + } + } + } + }, + "security": [ + { + "OAuth2": [] + } + ] + } + }, + "/odata/ProcessSchedules/UiPath.Server.Configuration.OData.SetEnabled": { + "post": { + "tags": [ + "ProcessSchedules" + ], + "summary": "Enables/disables a group of schedules.", + "description": "OAuth required scopes: OR.Jobs or OR.Jobs.Write.\r\n\r\nRequired permissions: Schedules.Edit.", + "operationId": "ProcessSchedules_SetEnabled", + "parameters": [ + { + "name": "$expand", + "in": "query", + "description": "Indicates the related entities to be represented inline. The maximum depth is 2.", + "schema": { + "type": "string" + } + }, + { + "name": "$select", + "in": "query", + "description": "Limits the properties returned in the result.", + "schema": { + "type": "string" + } + }, + { + "name": "X-UIPATH-OrganizationUnitId", + "in": "header", + "description": "Folder/OrganizationUnit Id", + "schema": { + "type": "integer", + "format": "int64" + } + } + ], + "requestBody": { + "description": "Enabled - If true the schedules will be enabled, if false the schedules will be disabled.\r\n ScheduleIds - The collection of ids of the affected schedules.", + "content": { + "application/json;odata.metadata=minimal;odata.streaming=true": { + "schema": { + "$ref": "#/components/schemas/ProcessSetEnabledRequest" + } + }, + "application/json;odata.metadata=minimal;odata.streaming=false": { + "schema": { + "$ref": "#/components/schemas/ProcessSetEnabledRequest" + } + }, + "application/json;odata.metadata=minimal": { + "schema": { + "$ref": "#/components/schemas/ProcessSetEnabledRequest" + } + }, + "application/json;odata.metadata=full;odata.streaming=true": { + "schema": { + "$ref": "#/components/schemas/ProcessSetEnabledRequest" + } + }, + "application/json;odata.metadata=full;odata.streaming=false": { + "schema": { + "$ref": "#/components/schemas/ProcessSetEnabledRequest" + } + }, + "application/json;odata.metadata=full": { + "schema": { + "$ref": "#/components/schemas/ProcessSetEnabledRequest" + } + }, + "application/json;odata.metadata=none;odata.streaming=true": { + "schema": { + "$ref": "#/components/schemas/ProcessSetEnabledRequest" + } + }, + "application/json;odata.metadata=none;odata.streaming=false": { + "schema": { + "$ref": "#/components/schemas/ProcessSetEnabledRequest" + } + }, + "application/json;odata.metadata=none": { + "schema": { + "$ref": "#/components/schemas/ProcessSetEnabledRequest" + } + }, + "application/json;odata.streaming=true": { + "schema": { + "$ref": "#/components/schemas/ProcessSetEnabledRequest" + } + }, + "application/json;odata.streaming=false": { + "schema": { + "$ref": "#/components/schemas/ProcessSetEnabledRequest" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProcessSetEnabledRequest" + } + }, + "application/json-patch+json": { + "schema": { + "$ref": "#/components/schemas/ProcessSetEnabledRequest" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/ProcessSetEnabledRequest" + } + } + }, + "required": false + }, + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ODataValueOfBoolean" + } + } + } + }, + "207": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "type": "object", + "additionalProperties": { + "$ref": "#/components/schemas/ErrorResult" + } + } + } + } + }, + "400": { + "description": "Bad Request", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResult" + } + } + } + }, + "404": { + "description": "Not Found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ErrorResult" + } + } + } + } + }, + "security": [ + { + "OAuth2": [] + } + ], + "x-codegen-request-body-name": "body" + } + }, + "/odata/ProcessSchedules/UiPath.Server.Configuration.OData.ValidateProcessSchedule": { + "post": { + "tags": [ + "ProcessSchedules" + ], + "summary": "Validates the input which would be used to create a process schedule.", + "description": "OAuth required scopes: OR.Jobs or OR.Jobs.Write.\r\n\r\nRequired permissions: Schedules.Create.", + "operationId": "ProcessSchedules_ValidateProcessSchedule", + "parameters": [ + { + "name": "$expand", + "in": "query", + "description": "Indicates the related entities to be represented inline. The maximum depth is 2.", + "schema": { + "type": "string" + } + }, + { + "name": "$select", + "in": "query", + "description": "Limits the properties returned in the result.", + "schema": { + "type": "string" + } + }, + { + "name": "X-UIPATH-OrganizationUnitId", + "in": "header", + "description": "Folder/OrganizationUnit Id", + "schema": { + "type": "integer", + "format": "int64" + } + } + ], + "requestBody": { + "content": { + "application/json;odata.metadata=minimal;odata.streaming=true": { + "schema": { + "$ref": "#/components/schemas/ValidateProcessScheduleRequest" + } + }, + "application/json;odata.metadata=minimal;odata.streaming=false": { + "schema": { + "$ref": "#/components/schemas/ValidateProcessScheduleRequest" + } + }, + "application/json;odata.metadata=minimal": { + "schema": { + "$ref": "#/components/schemas/ValidateProcessScheduleRequest" + } + }, + "application/json;odata.metadata=full;odata.streaming=true": { + "schema": { + "$ref": "#/components/schemas/ValidateProcessScheduleRequest" + } + }, + "application/json;odata.metadata=full;odata.streaming=false": { + "schema": { + "$ref": "#/components/schemas/ValidateProcessScheduleRequest" + } + }, + "application/json;odata.metadata=full": { + "schema": { + "$ref": "#/components/schemas/ValidateProcessScheduleRequest" + } + }, + "application/json;odata.metadata=none;odata.streaming=true": { + "schema": { + "$ref": "#/components/schemas/ValidateProcessScheduleRequest" + } + }, + "application/json;odata.metadata=none;odata.streaming=false": { + "schema": { + "$ref": "#/components/schemas/ValidateProcessScheduleRequest" + } + }, + "application/json;odata.metadata=none": { + "schema": { + "$ref": "#/components/schemas/ValidateProcessScheduleRequest" + } + }, + "application/json;odata.streaming=true": { + "schema": { + "$ref": "#/components/schemas/ValidateProcessScheduleRequest" + } + }, + "application/json;odata.streaming=false": { + "schema": { + "$ref": "#/components/schemas/ValidateProcessScheduleRequest" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/ValidateProcessScheduleRequest" + } + }, + "application/json-patch+json": { + "schema": { + "$ref": "#/components/schemas/ValidateProcessScheduleRequest" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/ValidateProcessScheduleRequest" + } + } + }, + "required": false + }, + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ValidationResultDto" + } + } + } + } + }, + "security": [ + { + "OAuth2": [] + } + ], + "x-codegen-request-body-name": "body" + } + }, + "/odata/QueueDefinitions": { + "get": { + "tags": [ + "QueueDefinitions" + ], + "summary": "Gets the list of queue definitions.", + "description": "OAuth required scopes: OR.Queues or OR.Queues.Read.\r\n\r\nRequired permissions: Queues.View.", + "operationId": "QueueDefinitions_Get", + "parameters": [ + { + "name": "mandatoryPermissions", + "in": "query", + "description": "If in a cross-folder scenario, these represent the additional permissions\r\n required in the folders the data is retrieved from; all permissions in this set must be met", + "style": "form", + "explode": true, + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + }, + { + "name": "atLeastOnePermissions", + "in": "query", + "description": "If in a cross-folder scenario, these represent the additional permissions\r\n required in the folders the data is retrieved from; at least one permission in this set must be met", + "style": "form", + "explode": true, + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + }, + { + "name": "$expand", + "in": "query", + "description": "Indicates the related entities to be represented inline. The maximum depth is 2.", + "schema": { + "type": "string" + } + }, + { + "name": "$filter", + "in": "query", + "description": "Restricts the set of items returned. The maximum number of expressions is 100.", + "schema": { + "type": "string" + } + }, + { + "name": "$select", + "in": "query", + "description": "Limits the properties returned in the result.", + "schema": { + "type": "string" + } + }, + { + "name": "$orderby", + "in": "query", + "description": "Specifies the order in which items are returned. The maximum number of expressions is 5.", + "schema": { + "type": "string" + } + }, + { + "name": "$top", + "in": "query", + "description": "Limits the number of items returned from a collection. The maximum value is 1000.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "$skip", + "in": "query", + "description": "Excludes the specified number of items of the queried collection from the result.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "$count", + "in": "query", + "description": "Indicates whether the total count of items within a collection are returned in the result.", + "schema": { + "type": "boolean" + } + }, + { + "name": "X-UIPATH-OrganizationUnitId", + "in": "header", + "description": "Folder/OrganizationUnit Id", + "schema": { + "type": "integer", + "format": "int64" + } + } + ], + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ODataValueOfIEnumerableOfQueueDefinitionDto" + } + } + } + } + }, + "security": [ + { + "OAuth2": [] + } + ] + }, + "post": { + "tags": [ + "QueueDefinitions" + ], + "summary": "Creates a new queue.", + "description": "OAuth required scopes: OR.Queues or OR.Queues.Write.\r\n\r\nRequired permissions: Queues.Create.", + "operationId": "QueueDefinitions_Post", + "parameters": [ + { + "name": "X-UIPATH-OrganizationUnitId", + "in": "header", + "description": "Folder/OrganizationUnit Id", + "schema": { + "type": "integer", + "format": "int64" + } + } + ], + "requestBody": { + "content": { + "application/json;odata.metadata=minimal;odata.streaming=true": { + "schema": { + "$ref": "#/components/schemas/QueueDefinitionDto" + } + }, + "application/json;odata.metadata=minimal;odata.streaming=false": { + "schema": { + "$ref": "#/components/schemas/QueueDefinitionDto" + } + }, + "application/json;odata.metadata=minimal": { + "schema": { + "$ref": "#/components/schemas/QueueDefinitionDto" + } + }, + "application/json;odata.metadata=full;odata.streaming=true": { + "schema": { + "$ref": "#/components/schemas/QueueDefinitionDto" + } + }, + "application/json;odata.metadata=full;odata.streaming=false": { + "schema": { + "$ref": "#/components/schemas/QueueDefinitionDto" + } + }, + "application/json;odata.metadata=full": { + "schema": { + "$ref": "#/components/schemas/QueueDefinitionDto" + } + }, + "application/json;odata.metadata=none;odata.streaming=true": { + "schema": { + "$ref": "#/components/schemas/QueueDefinitionDto" + } + }, + "application/json;odata.metadata=none;odata.streaming=false": { + "schema": { + "$ref": "#/components/schemas/QueueDefinitionDto" + } + }, + "application/json;odata.metadata=none": { + "schema": { + "$ref": "#/components/schemas/QueueDefinitionDto" + } + }, + "application/json;odata.streaming=true": { + "schema": { + "$ref": "#/components/schemas/QueueDefinitionDto" + } + }, + "application/json;odata.streaming=false": { + "schema": { + "$ref": "#/components/schemas/QueueDefinitionDto" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/QueueDefinitionDto" + } + }, + "application/json-patch+json": { + "schema": { + "$ref": "#/components/schemas/QueueDefinitionDto" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/QueueDefinitionDto" + } + } + }, + "required": false + }, + "responses": { + "201": { + "description": "Created", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/QueueDefinitionDto" + } + } + } + } + }, + "security": [ + { + "OAuth2": [] + } + ], + "x-codegen-request-body-name": "body" + } + }, + "/odata/QueueDefinitions({key})": { + "get": { + "tags": [ + "QueueDefinitions" + ], + "summary": "Gets a single queue definition based on its Id.", + "description": "OAuth required scopes: OR.Queues or OR.Queues.Read.\r\n\r\nRequired permissions: Queues.View.", + "operationId": "QueueDefinitions_GetById", + "parameters": [ + { + "name": "key", + "in": "path", + "required": true, + "schema": { + "type": "integer", + "format": "int64" + } + }, + { + "name": "$expand", + "in": "query", + "description": "Indicates the related entities to be represented inline. The maximum depth is 2.", + "schema": { + "type": "string" + } + }, + { + "name": "$select", + "in": "query", + "description": "Limits the properties returned in the result.", + "schema": { + "type": "string" + } + }, + { + "name": "X-UIPATH-OrganizationUnitId", + "in": "header", + "description": "Folder/OrganizationUnit Id", + "schema": { + "type": "integer", + "format": "int64" + } + } + ], + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/QueueDefinitionDto" + } + } + } + } + }, + "security": [ + { + "OAuth2": [] + } + ] + }, + "put": { + "tags": [ + "QueueDefinitions" + ], + "summary": "Edits a queue.", + "description": "OAuth required scopes: OR.Queues or OR.Queues.Write.\r\n\r\nRequired permissions: Queues.Edit.", + "operationId": "QueueDefinitions_PutById", + "parameters": [ + { + "name": "key", + "in": "path", + "required": true, + "schema": { + "type": "integer", + "format": "int64" + } + }, + { + "name": "X-UIPATH-OrganizationUnitId", + "in": "header", + "description": "Folder/OrganizationUnit Id", + "schema": { + "type": "integer", + "format": "int64" + } + } + ], + "requestBody": { + "content": { + "application/json;odata.metadata=minimal;odata.streaming=true": { + "schema": { + "$ref": "#/components/schemas/QueueDefinitionDto" + } + }, + "application/json;odata.metadata=minimal;odata.streaming=false": { + "schema": { + "$ref": "#/components/schemas/QueueDefinitionDto" + } + }, + "application/json;odata.metadata=minimal": { + "schema": { + "$ref": "#/components/schemas/QueueDefinitionDto" + } + }, + "application/json;odata.metadata=full;odata.streaming=true": { + "schema": { + "$ref": "#/components/schemas/QueueDefinitionDto" + } + }, + "application/json;odata.metadata=full;odata.streaming=false": { + "schema": { + "$ref": "#/components/schemas/QueueDefinitionDto" + } + }, + "application/json;odata.metadata=full": { + "schema": { + "$ref": "#/components/schemas/QueueDefinitionDto" + } + }, + "application/json;odata.metadata=none;odata.streaming=true": { + "schema": { + "$ref": "#/components/schemas/QueueDefinitionDto" + } + }, + "application/json;odata.metadata=none;odata.streaming=false": { + "schema": { + "$ref": "#/components/schemas/QueueDefinitionDto" + } + }, + "application/json;odata.metadata=none": { + "schema": { + "$ref": "#/components/schemas/QueueDefinitionDto" + } + }, + "application/json;odata.streaming=true": { + "schema": { + "$ref": "#/components/schemas/QueueDefinitionDto" + } + }, + "application/json;odata.streaming=false": { + "schema": { + "$ref": "#/components/schemas/QueueDefinitionDto" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/QueueDefinitionDto" + } + }, + "application/json-patch+json": { + "schema": { + "$ref": "#/components/schemas/QueueDefinitionDto" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/QueueDefinitionDto" + } + } + }, + "required": false + }, + "responses": { + "200": { + "description": "Success", + "content": {} + } + }, + "security": [ + { + "OAuth2": [] + } + ], + "x-codegen-request-body-name": "body" + }, + "delete": { + "tags": [ + "QueueDefinitions" + ], + "summary": "Deletes a queue based on its key.", + "description": "OAuth required scopes: OR.Queues or OR.Queues.Write.\r\n\r\nRequired permissions: Queues.Delete.", + "operationId": "QueueDefinitions_DeleteById", + "parameters": [ + { + "name": "key", + "in": "path", + "required": true, + "schema": { + "type": "integer", + "format": "int64" + } + }, + { + "name": "X-UIPATH-OrganizationUnitId", + "in": "header", + "description": "Folder/OrganizationUnit Id", + "schema": { + "type": "integer", + "format": "int64" + } + } + ], + "responses": { + "204": { + "description": "Deleted", + "content": {} + } + }, + "security": [ + { + "OAuth2": [] + } + ] + } + }, + "/odata/QueueDefinitions({key})/UiPathODataSvc.Export": { + "post": { + "tags": [ + "QueueDefinitions" + ], + "summary": "Requests a CSV export of filtered items.", + "description": "OAuth required scopes: OR.Queues or OR.Queues.Write.\r\n\r\nRequired permissions: Queues.View and Transactions.View.", + "operationId": "QueueDefinitions_ExportById", + "parameters": [ + { + "name": "key", + "in": "path", + "required": true, + "schema": { + "type": "integer", + "format": "int64" + } + }, + { + "name": "$expand", + "in": "query", + "description": "Indicates the related entities to be represented inline. The maximum depth is 2.", + "schema": { + "type": "string" + } + }, + { + "name": "$filter", + "in": "query", + "description": "Restricts the set of items returned. The maximum number of expressions is 100.", + "schema": { + "type": "string" + } + }, + { + "name": "$select", + "in": "query", + "description": "Limits the properties returned in the result.", + "schema": { + "type": "string" + } + }, + { + "name": "$orderby", + "in": "query", + "description": "Specifies the order in which items are returned. The maximum number of expressions is 5.", + "schema": { + "type": "string" + } + }, + { + "name": "$top", + "in": "query", + "description": "Limits the number of items returned from a collection. The maximum value is 1000.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "$skip", + "in": "query", + "description": "Excludes the specified number of items of the queried collection from the result.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "$count", + "in": "query", + "description": "Indicates whether the total count of items within a collection are returned in the result.", + "schema": { + "type": "boolean" + } + }, + { + "name": "X-UIPATH-OrganizationUnitId", + "in": "header", + "description": "Folder/OrganizationUnit Id", + "schema": { + "type": "integer", + "format": "int64" + } + } + ], + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ExportModel" + } + } + } + } + }, + "security": [ + { + "OAuth2": [] + } + ] + } + }, + "/odata/QueueDefinitions({key})/UiPathODataSvc.GetJsonSchemaDefinition(jsonSchemaType='{jsonSchemaType}')": { + "get": { + "tags": [ + "QueueDefinitions" + ], + "summary": "Gets a given queue item JSON schema as a .json file, based on queue definition id.", + "description": "OAuth required scopes: OR.Queues or OR.Queues.Read.\r\n\r\nRequired permissions: Queues.Edit.", + "operationId": "QueueDefinitions_GetJsonSchemaDefinitionByIdAndJsonschematype", + "parameters": [ + { + "name": "key", + "in": "path", + "required": true, + "schema": { + "type": "integer", + "format": "int64" + } + }, + { + "name": "jsonSchemaType", + "in": "path", + "description": "Possible values: QueueSchemaType", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "X-UIPATH-OrganizationUnitId", + "in": "header", + "description": "Folder/OrganizationUnit Id", + "schema": { + "type": "integer", + "format": "int64" + } + } + ], + "responses": { + "200": { + "description": "Success", + "content": { + "application/octet-stream": { + "schema": { + "type": "string", + "format": "binary" + } + } + } + } + }, + "security": [ + { + "OAuth2": [] + } + ] + } + }, + "/odata/QueueDefinitions({key})/UiPathODataSvc.Reports": { + "get": { + "tags": [ + "QueueDefinitions" + ], + "summary": "Returns an Excel file containing all the items in the given queue.", + "description": "OAuth required scopes: OR.Queues or OR.Queues.Read.\r\n\r\nRequired permissions: Queues.View and Transactions.View.\r\nDEPRECATED: \r\nPlease user other means to retrieve such reports: https://docs.uipath.com/orchestrator/automation-cloud/latest/release-notes/release-notes-june-2023#deprecation-of-reports-endpoints. This endpoint will be removed in future releases.", + "operationId": "QueueDefinitions_ReportsById", + "parameters": [ + { + "name": "key", + "in": "path", + "description": "Given queue's Id.", + "required": true, + "schema": { + "type": "integer", + "format": "int64" + } + }, + { + "name": "$expand", + "in": "query", + "description": "Indicates the related entities to be represented inline. The maximum depth is 2.", + "schema": { + "type": "string" + } + }, + { + "name": "$filter", + "in": "query", + "description": "Restricts the set of items returned. The maximum number of expressions is 100.", + "schema": { + "type": "string" + } + }, + { + "name": "$select", + "in": "query", + "description": "Limits the properties returned in the result.", + "schema": { + "type": "string" + } + }, + { + "name": "$orderby", + "in": "query", + "description": "Specifies the order in which items are returned. The maximum number of expressions is 5.", + "schema": { + "type": "string" + } + }, + { + "name": "$top", + "in": "query", + "description": "Limits the number of items returned from a collection. The maximum value is 1000.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "$skip", + "in": "query", + "description": "Excludes the specified number of items of the queried collection from the result.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "$count", + "in": "query", + "description": "Indicates whether the total count of items within a collection are returned in the result.", + "schema": { + "type": "boolean" + } + }, + { + "name": "X-UIPATH-OrganizationUnitId", + "in": "header", + "description": "Folder/OrganizationUnit Id", + "schema": { + "type": "integer", + "format": "int64" + } + } + ], + "responses": { + "200": { + "description": "Success", + "content": { + "application/octet-stream": { + "schema": { + "type": "string", + "format": "binary" + } + } + } + } + }, + "deprecated": true, + "security": [ + { + "OAuth2": [] + } + ] + } + }, + "/odata/QueueDefinitions/UiPath.Server.Configuration.OData.GetFoldersForQueue(id={id})": { + "get": { + "tags": [ + "QueueDefinitions" + ], + "summary": "Get all accesible folders where the queue is shared, and the total count of folders where it is shared (including unaccessible folders).", + "description": "OAuth required scopes: OR.Queues or OR.Queues.Read.\r\n\r\nRequires authentication.", + "operationId": "QueueDefinitions_GetFoldersForQueueById", + "parameters": [ + { + "name": "id", + "in": "path", + "required": true, + "schema": { + "type": "integer", + "format": "int64" + } + }, + { + "name": "$expand", + "in": "query", + "description": "Indicates the related entities to be represented inline. The maximum depth is 2.", + "schema": { + "type": "string" + } + }, + { + "name": "$select", + "in": "query", + "description": "Limits the properties returned in the result.", + "schema": { + "type": "string" + } + }, + { + "name": "X-UIPATH-OrganizationUnitId", + "in": "header", + "description": "Folder/OrganizationUnit Id", + "schema": { + "type": "integer", + "format": "int64" + } + } + ], + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/AccessibleFoldersDto" + } + } + } + } + }, + "security": [ + { + "OAuth2": [] + } + ] + } + }, + "/odata/QueueDefinitions/UiPath.Server.Configuration.OData.GetQueuesAcrossFolders": { + "get": { + "tags": [ + "QueueDefinitions" + ], + "summary": "Get the queues from all the folders in which the current user has the Queues.View permission, except the ones in the excluded folder.", + "description": "OAuth required scopes: OR.Queues or OR.Queues.Read.\r\n\r\nRequires authentication.", + "operationId": "QueueDefinitions_GetQueuesAcrossFolders", + "parameters": [ + { + "name": "excludeFolderId", + "in": "query", + "schema": { + "type": "integer", + "format": "int64" + } + }, + { + "name": "$expand", + "in": "query", + "description": "Indicates the related entities to be represented inline. The maximum depth is 2.", + "schema": { + "type": "string" + } + }, + { + "name": "$filter", + "in": "query", + "description": "Restricts the set of items returned. The maximum number of expressions is 100.", + "schema": { + "type": "string" + } + }, + { + "name": "$select", + "in": "query", + "description": "Limits the properties returned in the result.", + "schema": { + "type": "string" + } + }, + { + "name": "$orderby", + "in": "query", + "description": "Specifies the order in which items are returned. The maximum number of expressions is 5.", + "schema": { + "type": "string" + } + }, + { + "name": "$top", + "in": "query", + "description": "Limits the number of items returned from a collection. The maximum value is 1000.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "$skip", + "in": "query", + "description": "Excludes the specified number of items of the queried collection from the result.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "$count", + "in": "query", + "description": "Indicates whether the total count of items within a collection are returned in the result.", + "schema": { + "type": "boolean" + } + }, + { + "name": "X-UIPATH-OrganizationUnitId", + "in": "header", + "description": "Folder/OrganizationUnit Id", + "schema": { + "type": "integer", + "format": "int64" + } + } + ], + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ODataValueOfIEnumerableOfQueueDefinitionDto" + } + } + } + } + }, + "security": [ + { + "OAuth2": [] + } + ] + } + }, + "/odata/QueueDefinitions/UiPath.Server.Configuration.OData.ShareToFolders": { + "post": { + "tags": [ + "QueueDefinitions" + ], + "summary": "Makes the queue visible in the specified folders.", + "description": "OAuth required scopes: OR.Queues or OR.Queues.Write.\r\n\r\nRequires authentication.", + "operationId": "QueueDefinitions_ShareToFolders", + "parameters": [ + { + "name": "X-UIPATH-OrganizationUnitId", + "in": "header", + "description": "Folder/OrganizationUnit Id", + "schema": { + "type": "integer", + "format": "int64" + } + } + ], + "requestBody": { + "description": "Object containing the ids of the queue definitions and the ids of the folders where they should be shared.", + "content": { + "application/json;odata.metadata=minimal;odata.streaming=true": { + "schema": { + "$ref": "#/components/schemas/QueueFoldersShareDto" + } + }, + "application/json;odata.metadata=minimal;odata.streaming=false": { + "schema": { + "$ref": "#/components/schemas/QueueFoldersShareDto" + } + }, + "application/json;odata.metadata=minimal": { + "schema": { + "$ref": "#/components/schemas/QueueFoldersShareDto" + } + }, + "application/json;odata.metadata=full;odata.streaming=true": { + "schema": { + "$ref": "#/components/schemas/QueueFoldersShareDto" + } + }, + "application/json;odata.metadata=full;odata.streaming=false": { + "schema": { + "$ref": "#/components/schemas/QueueFoldersShareDto" + } + }, + "application/json;odata.metadata=full": { + "schema": { + "$ref": "#/components/schemas/QueueFoldersShareDto" + } + }, + "application/json;odata.metadata=none;odata.streaming=true": { + "schema": { + "$ref": "#/components/schemas/QueueFoldersShareDto" + } + }, + "application/json;odata.metadata=none;odata.streaming=false": { + "schema": { + "$ref": "#/components/schemas/QueueFoldersShareDto" + } + }, + "application/json;odata.metadata=none": { + "schema": { + "$ref": "#/components/schemas/QueueFoldersShareDto" + } + }, + "application/json;odata.streaming=true": { + "schema": { + "$ref": "#/components/schemas/QueueFoldersShareDto" + } + }, + "application/json;odata.streaming=false": { + "schema": { + "$ref": "#/components/schemas/QueueFoldersShareDto" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/QueueFoldersShareDto" + } + }, + "application/json-patch+json": { + "schema": { + "$ref": "#/components/schemas/QueueFoldersShareDto" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/QueueFoldersShareDto" + } + } + }, + "required": false + }, + "responses": { + "204": { + "description": "No Content", + "content": {} + }, + "404": { + "description": "A queue or one of the folders specified does not exist.", + "content": {} + } + }, + "security": [ + { + "OAuth2": [] + } + ], + "x-codegen-request-body-name": "body" + } + }, + "/odata/QueueItemComments": { + "get": { + "tags": [ + "QueueItemComments" + ], + "summary": "Gets the QueueItemComments.", + "description": "OAuth required scopes: OR.Queues or OR.Queues.Read.\r\n\r\nRequired permissions: Queues.View and Transactions.View.", + "operationId": "QueueItemComments_Get", + "parameters": [ + { + "name": "$expand", + "in": "query", + "description": "Indicates the related entities to be represented inline. The maximum depth is 2.", + "schema": { + "type": "string" + } + }, + { + "name": "$filter", + "in": "query", + "description": "Restricts the set of items returned. The maximum number of expressions is 100.", + "schema": { + "type": "string" + } + }, + { + "name": "$select", + "in": "query", + "description": "Limits the properties returned in the result.", + "schema": { + "type": "string" + } + }, + { + "name": "$orderby", + "in": "query", + "description": "Specifies the order in which items are returned. The maximum number of expressions is 5.", + "schema": { + "type": "string" + } + }, + { + "name": "$top", + "in": "query", + "description": "Limits the number of items returned from a collection. The maximum value is 1000.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "$skip", + "in": "query", + "description": "Excludes the specified number of items of the queried collection from the result.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "$count", + "in": "query", + "description": "Indicates whether the total count of items within a collection are returned in the result.", + "schema": { + "type": "boolean" + } + }, + { + "name": "X-UIPATH-OrganizationUnitId", + "in": "header", + "description": "Folder/OrganizationUnit Id", + "schema": { + "type": "integer", + "format": "int64" + } + } + ], + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ODataValueOfIEnumerableOfQueueItemCommentDto" + } + } + } + } + }, + "security": [ + { + "OAuth2": [] + } + ] + }, + "post": { + "tags": [ + "QueueItemComments" + ], + "summary": "Creates a QueueItemComment.", + "description": "OAuth required scopes: OR.Queues or OR.Queues.Write.\r\n\r\nRequired permissions: Queues.View and Transactions.Edit.\r\n\r\nNote: If the CreationTime is passed in in the UiPath.Orchestrator.Application.Dto.Queues.QueueItemCommentDto it will be overriden with server UTC time.", + "operationId": "QueueItemComments_Post", + "parameters": [ + { + "name": "X-UIPATH-OrganizationUnitId", + "in": "header", + "description": "Folder/OrganizationUnit Id", + "schema": { + "type": "integer", + "format": "int64" + } + } + ], + "requestBody": { + "content": { + "application/json;odata.metadata=minimal;odata.streaming=true": { + "schema": { + "$ref": "#/components/schemas/QueueItemCommentDto" + } + }, + "application/json;odata.metadata=minimal;odata.streaming=false": { + "schema": { + "$ref": "#/components/schemas/QueueItemCommentDto" + } + }, + "application/json;odata.metadata=minimal": { + "schema": { + "$ref": "#/components/schemas/QueueItemCommentDto" + } + }, + "application/json;odata.metadata=full;odata.streaming=true": { + "schema": { + "$ref": "#/components/schemas/QueueItemCommentDto" + } + }, + "application/json;odata.metadata=full;odata.streaming=false": { + "schema": { + "$ref": "#/components/schemas/QueueItemCommentDto" + } + }, + "application/json;odata.metadata=full": { + "schema": { + "$ref": "#/components/schemas/QueueItemCommentDto" + } + }, + "application/json;odata.metadata=none;odata.streaming=true": { + "schema": { + "$ref": "#/components/schemas/QueueItemCommentDto" + } + }, + "application/json;odata.metadata=none;odata.streaming=false": { + "schema": { + "$ref": "#/components/schemas/QueueItemCommentDto" + } + }, + "application/json;odata.metadata=none": { + "schema": { + "$ref": "#/components/schemas/QueueItemCommentDto" + } + }, + "application/json;odata.streaming=true": { + "schema": { + "$ref": "#/components/schemas/QueueItemCommentDto" + } + }, + "application/json;odata.streaming=false": { + "schema": { + "$ref": "#/components/schemas/QueueItemCommentDto" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/QueueItemCommentDto" + } + }, + "application/json-patch+json": { + "schema": { + "$ref": "#/components/schemas/QueueItemCommentDto" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/QueueItemCommentDto" + } + } + }, + "required": false + }, + "responses": { + "201": { + "description": "Created", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/QueueItemCommentDto" + } + } + } + } + }, + "security": [ + { + "OAuth2": [] + } + ], + "x-codegen-request-body-name": "body" + } + }, + "/odata/QueueItemComments({key})": { + "get": { + "tags": [ + "QueueItemComments" + ], + "summary": "Gets a QueueItemComment by Id.", + "description": "OAuth required scopes: OR.Queues or OR.Queues.Read.\r\n\r\nRequired permissions: Queues.View and Transactions.View.", + "operationId": "QueueItemComments_GetById", + "parameters": [ + { + "name": "key", + "in": "path", + "required": true, + "schema": { + "type": "integer", + "format": "int64" + } + }, + { + "name": "$expand", + "in": "query", + "description": "Indicates the related entities to be represented inline. The maximum depth is 2.", + "schema": { + "type": "string" + } + }, + { + "name": "$select", + "in": "query", + "description": "Limits the properties returned in the result.", + "schema": { + "type": "string" + } + }, + { + "name": "X-UIPATH-OrganizationUnitId", + "in": "header", + "description": "Folder/OrganizationUnit Id", + "schema": { + "type": "integer", + "format": "int64" + } + } + ], + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/QueueItemCommentDto" + } + } + } + } + }, + "security": [ + { + "OAuth2": [] + } + ] + }, + "put": { + "tags": [ + "QueueItemComments" + ], + "summary": "Updates a QueueItemComment", + "description": "OAuth required scopes: OR.Queues or OR.Queues.Write.\r\n\r\nRequired permissions: Queues.View and Transactions.Edit.", + "operationId": "QueueItemComments_PutById", + "parameters": [ + { + "name": "key", + "in": "path", + "required": true, + "schema": { + "type": "integer", + "format": "int64" + } + }, + { + "name": "X-UIPATH-OrganizationUnitId", + "in": "header", + "description": "Folder/OrganizationUnit Id", + "schema": { + "type": "integer", + "format": "int64" + } + } + ], + "requestBody": { + "content": { + "application/json;odata.metadata=minimal;odata.streaming=true": { + "schema": { + "$ref": "#/components/schemas/QueueItemCommentDto" + } + }, + "application/json;odata.metadata=minimal;odata.streaming=false": { + "schema": { + "$ref": "#/components/schemas/QueueItemCommentDto" + } + }, + "application/json;odata.metadata=minimal": { + "schema": { + "$ref": "#/components/schemas/QueueItemCommentDto" + } + }, + "application/json;odata.metadata=full;odata.streaming=true": { + "schema": { + "$ref": "#/components/schemas/QueueItemCommentDto" + } + }, + "application/json;odata.metadata=full;odata.streaming=false": { + "schema": { + "$ref": "#/components/schemas/QueueItemCommentDto" + } + }, + "application/json;odata.metadata=full": { + "schema": { + "$ref": "#/components/schemas/QueueItemCommentDto" + } + }, + "application/json;odata.metadata=none;odata.streaming=true": { + "schema": { + "$ref": "#/components/schemas/QueueItemCommentDto" + } + }, + "application/json;odata.metadata=none;odata.streaming=false": { + "schema": { + "$ref": "#/components/schemas/QueueItemCommentDto" + } + }, + "application/json;odata.metadata=none": { + "schema": { + "$ref": "#/components/schemas/QueueItemCommentDto" + } + }, + "application/json;odata.streaming=true": { + "schema": { + "$ref": "#/components/schemas/QueueItemCommentDto" + } + }, + "application/json;odata.streaming=false": { + "schema": { + "$ref": "#/components/schemas/QueueItemCommentDto" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/QueueItemCommentDto" + } + }, + "application/json-patch+json": { + "schema": { + "$ref": "#/components/schemas/QueueItemCommentDto" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/QueueItemCommentDto" + } + } + }, + "required": false + }, + "responses": { + "200": { + "description": "Success", + "content": {} + } + }, + "security": [ + { + "OAuth2": [] + } + ], + "x-codegen-request-body-name": "body" + }, + "delete": { + "tags": [ + "QueueItemComments" + ], + "summary": "Deletes a QueueItemComment.", + "description": "OAuth required scopes: OR.Queues or OR.Queues.Write.\r\n\r\nRequired permissions: Queues.View and Transactions.Edit.", + "operationId": "QueueItemComments_DeleteById", + "parameters": [ + { + "name": "key", + "in": "path", + "required": true, + "schema": { + "type": "integer", + "format": "int64" + } + }, + { + "name": "X-UIPATH-OrganizationUnitId", + "in": "header", + "description": "Folder/OrganizationUnit Id", + "schema": { + "type": "integer", + "format": "int64" + } + } + ], + "responses": { + "204": { + "description": "No Content", + "content": {} + } + }, + "security": [ + { + "OAuth2": [] + } + ] + } + }, + "/odata/QueueItemComments/UiPath.Server.Configuration.OData.GetQueueItemCommentsHistory(queueItemId={queueItemId})": { + "get": { + "tags": [ + "QueueItemComments" + ], + "summary": "Returns a collection of Queue Item Comments associated to a Queue Item and all its related Queue Items.\r\nA Queue Item is related to another if it was created as a retry of a failed Queue Item. They also share the same Key.", + "description": "OAuth required scopes: OR.Queues or OR.Queues.Read.\r\n\r\nRequired permissions: Queues.View and Transactions.View.", + "operationId": "QueueItemComments_GetQueueItemCommentsHistoryByQueueitemid", + "parameters": [ + { + "name": "queueItemId", + "in": "path", + "description": "The Id of the Queue Item for which the comment history is requested.", + "required": true, + "schema": { + "type": "integer", + "format": "int64" + } + }, + { + "name": "$expand", + "in": "query", + "description": "Indicates the related entities to be represented inline. The maximum depth is 2.", + "schema": { + "type": "string" + } + }, + { + "name": "$filter", + "in": "query", + "description": "Restricts the set of items returned. The maximum number of expressions is 100.", + "schema": { + "type": "string" + } + }, + { + "name": "$select", + "in": "query", + "description": "Limits the properties returned in the result.", + "schema": { + "type": "string" + } + }, + { + "name": "$orderby", + "in": "query", + "description": "Specifies the order in which items are returned. The maximum number of expressions is 5.", + "schema": { + "type": "string" + } + }, + { + "name": "$top", + "in": "query", + "description": "Limits the number of items returned from a collection. The maximum value is 1000.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "$skip", + "in": "query", + "description": "Excludes the specified number of items of the queried collection from the result.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "$count", + "in": "query", + "description": "Indicates whether the total count of items within a collection are returned in the result.", + "schema": { + "type": "boolean" + } + }, + { + "name": "X-UIPATH-OrganizationUnitId", + "in": "header", + "description": "Folder/OrganizationUnit Id", + "schema": { + "type": "integer", + "format": "int64" + } + } + ], + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ODataValueOfIEnumerableOfQueueItemCommentDto" + } + } + } + } + }, + "security": [ + { + "OAuth2": [] + } + ] + } + }, + "/odata/QueueItemEvents": { + "get": { + "tags": [ + "QueueItemEvents" + ], + "summary": "Gets the QueueItemEvents.", + "description": "OAuth required scopes: OR.Queues or OR.Queues.Read.\r\n\r\nRequired permissions: Queues.View and Transactions.View.", + "operationId": "QueueItemEvents_Get", + "parameters": [ + { + "name": "$expand", + "in": "query", + "description": "Indicates the related entities to be represented inline. The maximum depth is 2.", + "schema": { + "type": "string" + } + }, + { + "name": "$filter", + "in": "query", + "description": "Restricts the set of items returned. The maximum number of expressions is 100.", + "schema": { + "type": "string" + } + }, + { + "name": "$select", + "in": "query", + "description": "Limits the properties returned in the result.", + "schema": { + "type": "string" + } + }, + { + "name": "$orderby", + "in": "query", + "description": "Specifies the order in which items are returned. The maximum number of expressions is 5.", + "schema": { + "type": "string" + } + }, + { + "name": "$top", + "in": "query", + "description": "Limits the number of items returned from a collection. The maximum value is 1000.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "$skip", + "in": "query", + "description": "Excludes the specified number of items of the queried collection from the result.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "$count", + "in": "query", + "description": "Indicates whether the total count of items within a collection are returned in the result.", + "schema": { + "type": "boolean" + } + }, + { + "name": "X-UIPATH-OrganizationUnitId", + "in": "header", + "description": "Folder/OrganizationUnit Id", + "schema": { + "type": "integer", + "format": "int64" + } + } + ], + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ODataValueOfIEnumerableOfQueueItemEventDto" + } + } + } + } + }, + "security": [ + { + "OAuth2": [] + } + ] + } + }, + "/odata/QueueItemEvents({key})": { + "get": { + "tags": [ + "QueueItemEvents" + ], + "summary": "Gets a QueueItemEvent by Id.", + "description": "OAuth required scopes: OR.Queues or OR.Queues.Read.\r\n\r\nRequired permissions: Queues.View and Transactions.View.", + "operationId": "QueueItemEvents_GetById", + "parameters": [ + { + "name": "key", + "in": "path", + "required": true, + "schema": { + "type": "integer", + "format": "int64" + } + }, + { + "name": "$expand", + "in": "query", + "description": "Indicates the related entities to be represented inline. The maximum depth is 2.", + "schema": { + "type": "string" + } + }, + { + "name": "$select", + "in": "query", + "description": "Limits the properties returned in the result.", + "schema": { + "type": "string" + } + }, + { + "name": "X-UIPATH-OrganizationUnitId", + "in": "header", + "description": "Folder/OrganizationUnit Id", + "schema": { + "type": "integer", + "format": "int64" + } + } + ], + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/QueueItemEventDto" + } + } + } + } + }, + "security": [ + { + "OAuth2": [] + } + ] + } + }, + "/odata/QueueItemEvents/UiPath.Server.Configuration.OData.GetQueueItemEventsHistory(queueItemId={queueItemId})": { + "get": { + "tags": [ + "QueueItemEvents" + ], + "summary": "Returns a collection of Queue Item Events associated to a Queue Item and all its related Queue Items.\r\nA Queue Item is related to another if it was created as a retry of a failed Queue Item. They also share the same Key.", + "description": "OAuth required scopes: OR.Queues or OR.Queues.Read.\r\n\r\nRequired permissions: Queues.View and Transactions.View.", + "operationId": "QueueItemEvents_GetQueueItemEventsHistoryByQueueitemid", + "parameters": [ + { + "name": "queueItemId", + "in": "path", + "description": "The Id of the Queue Item for which the event history is requested.", + "required": true, + "schema": { + "type": "integer", + "format": "int64" + } + }, + { + "name": "$expand", + "in": "query", + "description": "Indicates the related entities to be represented inline. The maximum depth is 2.", + "schema": { + "type": "string" + } + }, + { + "name": "$filter", + "in": "query", + "description": "Restricts the set of items returned. The maximum number of expressions is 100.", + "schema": { + "type": "string" + } + }, + { + "name": "$select", + "in": "query", + "description": "Limits the properties returned in the result.", + "schema": { + "type": "string" + } + }, + { + "name": "$orderby", + "in": "query", + "description": "Specifies the order in which items are returned. The maximum number of expressions is 5.", + "schema": { + "type": "string" + } + }, + { + "name": "$top", + "in": "query", + "description": "Limits the number of items returned from a collection. The maximum value is 1000.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "$skip", + "in": "query", + "description": "Excludes the specified number of items of the queried collection from the result.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "$count", + "in": "query", + "description": "Indicates whether the total count of items within a collection are returned in the result.", + "schema": { + "type": "boolean" + } + }, + { + "name": "X-UIPATH-OrganizationUnitId", + "in": "header", + "description": "Folder/OrganizationUnit Id", + "schema": { + "type": "integer", + "format": "int64" + } + } + ], + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ODataValueOfIEnumerableOfQueueItemEventDto" + } + } + } + } + }, + "security": [ + { + "OAuth2": [] + } + ] + } + }, + "/odata/QueueItems": { + "get": { + "tags": [ + "QueueItems" + ], + "summary": "Gets a collection of queue items.", + "description": "OAuth required scopes: OR.Queues or OR.Queues.Read.\r\n\r\nRequired permissions: Queues.View and Transactions.View.", + "operationId": "QueueItems_Get", + "parameters": [ + { + "name": "mandatoryPermissions", + "in": "query", + "description": "If in a cross-folder scenario, these represent the additional permissions\r\n required in the folders the data is retrieved from; all permissions in this set must be met", + "style": "form", + "explode": true, + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + }, + { + "name": "atLeastOnePermissions", + "in": "query", + "description": "If in a cross-folder scenario, these represent the additional permissions\r\n required in the folders the data is retrieved from; at least one permission in this set must be met", + "style": "form", + "explode": true, + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + }, + { + "name": "$expand", + "in": "query", + "description": "Indicates the related entities to be represented inline. The maximum depth is 2.", + "schema": { + "type": "string" + } + }, + { + "name": "$filter", + "in": "query", + "description": "Restricts the set of items returned. The maximum number of expressions is 100.", + "schema": { + "type": "string" + } + }, + { + "name": "$select", + "in": "query", + "description": "Limits the properties returned in the result.", + "schema": { + "type": "string" + } + }, + { + "name": "$orderby", + "in": "query", + "description": "Specifies the order in which items are returned. The maximum number of expressions is 5.", + "schema": { + "type": "string" + } + }, + { + "name": "$top", + "in": "query", + "description": "Limits the number of items returned from a collection. The maximum value is 1000.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "$skip", + "in": "query", + "description": "Excludes the specified number of items of the queried collection from the result.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "$count", + "in": "query", + "description": "Indicates whether the total count of items within a collection are returned in the result.", + "schema": { + "type": "boolean" + } + }, + { + "name": "X-UIPATH-OrganizationUnitId", + "in": "header", + "description": "Folder/OrganizationUnit Id", + "schema": { + "type": "integer", + "format": "int64" + } + } + ], + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ODataValueOfIEnumerableOfQueueItemDto" + } + } + } + } + }, + "security": [ + { + "OAuth2": [] + } + ] + } + }, + "/odata/QueueItems({key})": { + "get": { + "tags": [ + "QueueItems" + ], + "summary": "Gets a queue item by Id.", + "description": "OAuth required scopes: OR.Queues or OR.Queues.Read.\r\n\r\nRequired permissions: Queues.View and Transactions.View.", + "operationId": "QueueItems_GetById", + "parameters": [ + { + "name": "key", + "in": "path", + "required": true, + "schema": { + "type": "integer", + "format": "int64" + } + }, + { + "name": "$expand", + "in": "query", + "description": "Indicates the related entities to be represented inline. The maximum depth is 2.", + "schema": { + "type": "string" + } + }, + { + "name": "$select", + "in": "query", + "description": "Limits the properties returned in the result.", + "schema": { + "type": "string" + } + }, + { + "name": "X-UIPATH-OrganizationUnitId", + "in": "header", + "description": "Folder/OrganizationUnit Id", + "schema": { + "type": "integer", + "format": "int64" + } + } + ], + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/QueueItemDto" + } + } + } + } + }, + "security": [ + { + "OAuth2": [] + } + ] + }, + "put": { + "tags": [ + "QueueItems" + ], + "summary": "Updates the QueueItem properties with the new values provided.", + "description": "OAuth required scopes: OR.Queues or OR.Queues.Write.\r\n\r\nRequired permissions: Queues.Edit and Transactions.Edit.\r\n\r\nOnly UiPath.Orchestrator.Application.Dto.Queues.QueueItemDto.Progress, UiPath.Orchestrator.Application.Dto.Queues.QueueItemDto.Priority, UiPath.Orchestrator.Application.Dto.Queues.QueueItemDto.DueDate, UiPath.Orchestrator.Application.Dto.Queues.QueueItemDto.DeferDate and UiPath.Orchestrator.Application.Dto.Queues.QueueItemDto.SpecificContent will be updated from given queueItemDto object.", + "operationId": "QueueItems_PutById", + "parameters": [ + { + "name": "key", + "in": "path", + "required": true, + "schema": { + "type": "integer", + "format": "int64" + } + }, + { + "name": "X-UIPATH-OrganizationUnitId", + "in": "header", + "description": "Folder/OrganizationUnit Id", + "schema": { + "type": "integer", + "format": "int64" + } + } + ], + "requestBody": { + "content": { + "application/json;odata.metadata=minimal;odata.streaming=true": { + "schema": { + "$ref": "#/components/schemas/QueueItemDataDto" + } + }, + "application/json;odata.metadata=minimal;odata.streaming=false": { + "schema": { + "$ref": "#/components/schemas/QueueItemDataDto" + } + }, + "application/json;odata.metadata=minimal": { + "schema": { + "$ref": "#/components/schemas/QueueItemDataDto" + } + }, + "application/json;odata.metadata=full;odata.streaming=true": { + "schema": { + "$ref": "#/components/schemas/QueueItemDataDto" + } + }, + "application/json;odata.metadata=full;odata.streaming=false": { + "schema": { + "$ref": "#/components/schemas/QueueItemDataDto" + } + }, + "application/json;odata.metadata=full": { + "schema": { + "$ref": "#/components/schemas/QueueItemDataDto" + } + }, + "application/json;odata.metadata=none;odata.streaming=true": { + "schema": { + "$ref": "#/components/schemas/QueueItemDataDto" + } + }, + "application/json;odata.metadata=none;odata.streaming=false": { + "schema": { + "$ref": "#/components/schemas/QueueItemDataDto" + } + }, + "application/json;odata.metadata=none": { + "schema": { + "$ref": "#/components/schemas/QueueItemDataDto" + } + }, + "application/json;odata.streaming=true": { + "schema": { + "$ref": "#/components/schemas/QueueItemDataDto" + } + }, + "application/json;odata.streaming=false": { + "schema": { + "$ref": "#/components/schemas/QueueItemDataDto" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/QueueItemDataDto" + } + }, + "application/json-patch+json": { + "schema": { + "$ref": "#/components/schemas/QueueItemDataDto" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/QueueItemDataDto" + } + } + }, + "required": false + }, + "responses": { + "200": { + "description": "Queue Item updated successfully.", + "content": {} + }, + "404": { + "description": "Queue Item does not exist.", + "content": {} + }, + "409": { + "description": "Conflict with Queue Item being updated.", + "content": {} + } + }, + "security": [ + { + "OAuth2": [] + } + ], + "x-codegen-request-body-name": "body" + }, + "delete": { + "tags": [ + "QueueItems" + ], + "summary": "Deletes a queue item by Id.", + "description": "OAuth required scopes: OR.Queues or OR.Queues.Write.\r\n\r\nRequired permissions: Queues.View and Transactions.Delete.", + "operationId": "QueueItems_DeleteById", + "parameters": [ + { + "name": "key", + "in": "path", + "required": true, + "schema": { + "type": "integer", + "format": "int64" + } + }, + { + "name": "X-UIPATH-OrganizationUnitId", + "in": "header", + "description": "Folder/OrganizationUnit Id", + "schema": { + "type": "integer", + "format": "int64" + } + } + ], + "responses": { + "204": { + "description": "No Content", + "content": {} + } + }, + "security": [ + { + "OAuth2": [] + } + ] + } + }, + "/odata/QueueItems({key})/UiPath.Server.Configuration.OData.GetItemLastRetry": { + "get": { + "tags": [ + "QueueItems" + ], + "summary": "Returns the last retry of a queue item.", + "description": "OAuth required scopes: OR.Queues or OR.Queues.Read.\r\n\r\nRequired permissions: Queues.View and Transactions.View.", + "operationId": "QueueItems_GetItemLastRetryById", + "parameters": [ + { + "name": "key", + "in": "path", + "required": true, + "schema": { + "type": "integer", + "format": "int64" + } + }, + { + "name": "$expand", + "in": "query", + "description": "Indicates the related entities to be represented inline. The maximum depth is 2.", + "schema": { + "type": "string" + } + }, + { + "name": "$filter", + "in": "query", + "description": "Restricts the set of items returned. The maximum number of expressions is 100.", + "schema": { + "type": "string" + } + }, + { + "name": "$select", + "in": "query", + "description": "Limits the properties returned in the result.", + "schema": { + "type": "string" + } + }, + { + "name": "$orderby", + "in": "query", + "description": "Specifies the order in which items are returned. The maximum number of expressions is 5.", + "schema": { + "type": "string" + } + }, + { + "name": "$top", + "in": "query", + "description": "Limits the number of items returned from a collection. The maximum value is 1000.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "$skip", + "in": "query", + "description": "Excludes the specified number of items of the queried collection from the result.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "$count", + "in": "query", + "description": "Indicates whether the total count of items within a collection are returned in the result.", + "schema": { + "type": "boolean" + } + }, + { + "name": "X-UIPATH-OrganizationUnitId", + "in": "header", + "description": "Folder/OrganizationUnit Id", + "schema": { + "type": "integer", + "format": "int64" + } + } + ], + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/QueueItemDto" + } + } + } + }, + "404": { + "description": "Not Found", + "content": {} + } + }, + "security": [ + { + "OAuth2": [] + } + ] + } + }, + "/odata/QueueItems({key})/UiPathODataSvc.GetItemProcessingHistory": { + "get": { + "tags": [ + "QueueItems" + ], + "summary": "Returns data about the processing history of the given queue item. Allows odata query options.", + "description": "OAuth required scopes: OR.Queues or OR.Queues.Read.\r\n\r\nRequired permissions: Queues.View and Transactions.View.", + "operationId": "QueueItems_GetItemProcessingHistoryById", + "parameters": [ + { + "name": "key", + "in": "path", + "required": true, + "schema": { + "type": "integer", + "format": "int64" + } + }, + { + "name": "$expand", + "in": "query", + "description": "Indicates the related entities to be represented inline. The maximum depth is 2.", + "schema": { + "type": "string" + } + }, + { + "name": "$filter", + "in": "query", + "description": "Restricts the set of items returned. The maximum number of expressions is 100.", + "schema": { + "type": "string" + } + }, + { + "name": "$select", + "in": "query", + "description": "Limits the properties returned in the result.", + "schema": { + "type": "string" + } + }, + { + "name": "$orderby", + "in": "query", + "description": "Specifies the order in which items are returned. The maximum number of expressions is 5.", + "schema": { + "type": "string" + } + }, + { + "name": "$top", + "in": "query", + "description": "Limits the number of items returned from a collection. The maximum value is 1000.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "$skip", + "in": "query", + "description": "Excludes the specified number of items of the queried collection from the result.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "$count", + "in": "query", + "description": "Indicates whether the total count of items within a collection are returned in the result.", + "schema": { + "type": "boolean" + } + }, + { + "name": "X-UIPATH-OrganizationUnitId", + "in": "header", + "description": "Folder/OrganizationUnit Id", + "schema": { + "type": "integer", + "format": "int64" + } + } + ], + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ODataValueOfIEnumerableOfQueueItemDto" + } + } + } + } + }, + "security": [ + { + "OAuth2": [] + } + ] + } + }, + "/odata/QueueItems({key})/UiPathODataSvc.SetTransactionProgress": { + "post": { + "tags": [ + "QueueItems" + ], + "summary": "Updates the progress field of a queue item with the status 'In Progress'.", + "description": "OAuth required scopes: OR.Queues or OR.Queues.Write.\r\n\r\nRequired permissions: Queues.View and Transactions.Edit.", + "operationId": "QueueItems_SetTransactionProgressById", + "parameters": [ + { + "name": "key", + "in": "path", + "required": true, + "schema": { + "type": "integer", + "format": "int64" + } + }, + { + "name": "X-UIPATH-OrganizationUnitId", + "in": "header", + "description": "Folder/OrganizationUnit Id", + "schema": { + "type": "integer", + "format": "int64" + } + } + ], + "requestBody": { + "description": "QueueItemId - The item's id.\r\n Progress - The value for the Progress field.", + "content": { + "application/json;odata.metadata=minimal;odata.streaming=true": { + "schema": { + "$ref": "#/components/schemas/QueueSetTransactionProgressRequest" + } + }, + "application/json;odata.metadata=minimal;odata.streaming=false": { + "schema": { + "$ref": "#/components/schemas/QueueSetTransactionProgressRequest" + } + }, + "application/json;odata.metadata=minimal": { + "schema": { + "$ref": "#/components/schemas/QueueSetTransactionProgressRequest" + } + }, + "application/json;odata.metadata=full;odata.streaming=true": { + "schema": { + "$ref": "#/components/schemas/QueueSetTransactionProgressRequest" + } + }, + "application/json;odata.metadata=full;odata.streaming=false": { + "schema": { + "$ref": "#/components/schemas/QueueSetTransactionProgressRequest" + } + }, + "application/json;odata.metadata=full": { + "schema": { + "$ref": "#/components/schemas/QueueSetTransactionProgressRequest" + } + }, + "application/json;odata.metadata=none;odata.streaming=true": { + "schema": { + "$ref": "#/components/schemas/QueueSetTransactionProgressRequest" + } + }, + "application/json;odata.metadata=none;odata.streaming=false": { + "schema": { + "$ref": "#/components/schemas/QueueSetTransactionProgressRequest" + } + }, + "application/json;odata.metadata=none": { + "schema": { + "$ref": "#/components/schemas/QueueSetTransactionProgressRequest" + } + }, + "application/json;odata.streaming=true": { + "schema": { + "$ref": "#/components/schemas/QueueSetTransactionProgressRequest" + } + }, + "application/json;odata.streaming=false": { + "schema": { + "$ref": "#/components/schemas/QueueSetTransactionProgressRequest" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/QueueSetTransactionProgressRequest" + } + }, + "application/json-patch+json": { + "schema": { + "$ref": "#/components/schemas/QueueSetTransactionProgressRequest" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/QueueSetTransactionProgressRequest" + } + } + }, + "required": false + }, + "responses": { + "200": { + "description": "Success", + "content": {} + } + }, + "security": [ + { + "OAuth2": [] + } + ], + "x-codegen-request-body-name": "body" + } + }, + "/odata/QueueItems/UiPath.Server.Configuration.OData.GetReviewers": { + "get": { + "tags": [ + "QueueItems" + ], + "summary": "Returns a collection of users having the permission for Queue Items review. Allows odata query options.", + "description": "OAuth required scopes: OR.Queues or OR.Queues.Read.\r\n\r\nRequired permissions: Queues.View and Transactions.Edit.", + "operationId": "QueueItems_GetReviewers", + "parameters": [ + { + "name": "$expand", + "in": "query", + "description": "Indicates the related entities to be represented inline. The maximum depth is 2.", + "schema": { + "type": "string" + } + }, + { + "name": "$filter", + "in": "query", + "description": "Restricts the set of items returned. The maximum number of expressions is 100.", + "schema": { + "type": "string" + } + }, + { + "name": "$select", + "in": "query", + "description": "Limits the properties returned in the result.", + "schema": { + "type": "string" + } + }, + { + "name": "$orderby", + "in": "query", + "description": "Specifies the order in which items are returned. The maximum number of expressions is 5.", + "schema": { + "type": "string" + } + }, + { + "name": "$top", + "in": "query", + "description": "Limits the number of items returned from a collection. The maximum value is 1000.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "$skip", + "in": "query", + "description": "Excludes the specified number of items of the queried collection from the result.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "$count", + "in": "query", + "description": "Indicates whether the total count of items within a collection are returned in the result.", + "schema": { + "type": "boolean" + } + }, + { + "name": "X-UIPATH-OrganizationUnitId", + "in": "header", + "description": "Folder/OrganizationUnit Id", + "schema": { + "type": "integer", + "format": "int64" + } + } + ], + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ODataValueOfIEnumerableOfSimpleUserDto" + } + } + } + } + }, + "security": [ + { + "OAuth2": [] + } + ] + } + }, + "/odata/QueueItems/UiPathODataSvc.DeleteBulk": { + "post": { + "tags": [ + "QueueItems" + ], + "summary": "Sets the given queue items' status to Deleted.", + "description": "OAuth required scopes: OR.Queues or OR.Queues.Write.\r\n\r\nRequired permissions: Queues.View and Transactions.Delete.", + "operationId": "QueueItems_DeleteBulk", + "parameters": [ + { + "name": "$expand", + "in": "query", + "description": "Indicates the related entities to be represented inline. The maximum depth is 2.", + "schema": { + "type": "string" + } + }, + { + "name": "$select", + "in": "query", + "description": "Limits the properties returned in the result.", + "schema": { + "type": "string" + } + }, + { + "name": "X-UIPATH-OrganizationUnitId", + "in": "header", + "description": "Folder/OrganizationUnit Id", + "schema": { + "type": "integer", + "format": "int64" + } + } + ], + "requestBody": { + "description": "QueueItems - The collection of ids of queue items to delete.", + "content": { + "application/json;odata.metadata=minimal;odata.streaming=true": { + "schema": { + "$ref": "#/components/schemas/QueueItemDeleteBulkRequest" + } + }, + "application/json;odata.metadata=minimal;odata.streaming=false": { + "schema": { + "$ref": "#/components/schemas/QueueItemDeleteBulkRequest" + } + }, + "application/json;odata.metadata=minimal": { + "schema": { + "$ref": "#/components/schemas/QueueItemDeleteBulkRequest" + } + }, + "application/json;odata.metadata=full;odata.streaming=true": { + "schema": { + "$ref": "#/components/schemas/QueueItemDeleteBulkRequest" + } + }, + "application/json;odata.metadata=full;odata.streaming=false": { + "schema": { + "$ref": "#/components/schemas/QueueItemDeleteBulkRequest" + } + }, + "application/json;odata.metadata=full": { + "schema": { + "$ref": "#/components/schemas/QueueItemDeleteBulkRequest" + } + }, + "application/json;odata.metadata=none;odata.streaming=true": { + "schema": { + "$ref": "#/components/schemas/QueueItemDeleteBulkRequest" + } + }, + "application/json;odata.metadata=none;odata.streaming=false": { + "schema": { + "$ref": "#/components/schemas/QueueItemDeleteBulkRequest" + } + }, + "application/json;odata.metadata=none": { + "schema": { + "$ref": "#/components/schemas/QueueItemDeleteBulkRequest" + } + }, + "application/json;odata.streaming=true": { + "schema": { + "$ref": "#/components/schemas/QueueItemDeleteBulkRequest" + } + }, + "application/json;odata.streaming=false": { + "schema": { + "$ref": "#/components/schemas/QueueItemDeleteBulkRequest" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/QueueItemDeleteBulkRequest" + } + }, + "application/json-patch+json": { + "schema": { + "$ref": "#/components/schemas/QueueItemDeleteBulkRequest" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/QueueItemDeleteBulkRequest" + } + } + }, + "required": false + }, + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/BulkOperationResponseDtoOfInt64" + } + } + } + } + }, + "security": [ + { + "OAuth2": [] + } + ], + "x-codegen-request-body-name": "body" + } + }, + "/odata/QueueItems/UiPathODataSvc.SetItemReviewer": { + "post": { + "tags": [ + "QueueItems" + ], + "summary": "Sets the reviewer for multiple queue items", + "description": "OAuth required scopes: OR.Queues or OR.Queues.Write.\r\n\r\nRequired permissions: Queues.View and Transactions.Edit.", + "operationId": "QueueItems_SetItemReviewer", + "parameters": [ + { + "name": "$expand", + "in": "query", + "description": "Indicates the related entities to be represented inline. The maximum depth is 2.", + "schema": { + "type": "string" + } + }, + { + "name": "$select", + "in": "query", + "description": "Limits the properties returned in the result.", + "schema": { + "type": "string" + } + }, + { + "name": "X-UIPATH-OrganizationUnitId", + "in": "header", + "description": "Folder/OrganizationUnit Id", + "schema": { + "type": "integer", + "format": "int64" + } + } + ], + "requestBody": { + "description": "UserId - The ID of the user to be set as the reviewer. If not set, the reviewer is cleared.\r\n QueueItems - The collection of ids of queue items for which the reviewer is set.", + "content": { + "application/json;odata.metadata=minimal;odata.streaming=true": { + "schema": { + "$ref": "#/components/schemas/QueueSetItemReviewerRequest" + } + }, + "application/json;odata.metadata=minimal;odata.streaming=false": { + "schema": { + "$ref": "#/components/schemas/QueueSetItemReviewerRequest" + } + }, + "application/json;odata.metadata=minimal": { + "schema": { + "$ref": "#/components/schemas/QueueSetItemReviewerRequest" + } + }, + "application/json;odata.metadata=full;odata.streaming=true": { + "schema": { + "$ref": "#/components/schemas/QueueSetItemReviewerRequest" + } + }, + "application/json;odata.metadata=full;odata.streaming=false": { + "schema": { + "$ref": "#/components/schemas/QueueSetItemReviewerRequest" + } + }, + "application/json;odata.metadata=full": { + "schema": { + "$ref": "#/components/schemas/QueueSetItemReviewerRequest" + } + }, + "application/json;odata.metadata=none;odata.streaming=true": { + "schema": { + "$ref": "#/components/schemas/QueueSetItemReviewerRequest" + } + }, + "application/json;odata.metadata=none;odata.streaming=false": { + "schema": { + "$ref": "#/components/schemas/QueueSetItemReviewerRequest" + } + }, + "application/json;odata.metadata=none": { + "schema": { + "$ref": "#/components/schemas/QueueSetItemReviewerRequest" + } + }, + "application/json;odata.streaming=true": { + "schema": { + "$ref": "#/components/schemas/QueueSetItemReviewerRequest" + } + }, + "application/json;odata.streaming=false": { + "schema": { + "$ref": "#/components/schemas/QueueSetItemReviewerRequest" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/QueueSetItemReviewerRequest" + } + }, + "application/json-patch+json": { + "schema": { + "$ref": "#/components/schemas/QueueSetItemReviewerRequest" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/QueueSetItemReviewerRequest" + } + } + }, + "required": false + }, + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/BulkOperationResponseDtoOfInt64" + } + } + } + } + }, + "security": [ + { + "OAuth2": [] + } + ], + "x-codegen-request-body-name": "body" + } + }, + "/odata/QueueItems/UiPathODataSvc.SetItemReviewStatus": { + "post": { + "tags": [ + "QueueItems" + ], + "summary": "Updates the review status of the specified queue items to an indicated state.", + "description": "OAuth required scopes: OR.Queues or OR.Queues.Write.\r\n\r\nRequired permissions: Queues.View and Transactions.Edit.", + "operationId": "QueueItems_SetItemReviewStatus", + "parameters": [ + { + "name": "$expand", + "in": "query", + "description": "Indicates the related entities to be represented inline. The maximum depth is 2.", + "schema": { + "type": "string" + } + }, + { + "name": "$select", + "in": "query", + "description": "Limits the properties returned in the result.", + "schema": { + "type": "string" + } + }, + { + "name": "X-UIPATH-OrganizationUnitId", + "in": "header", + "description": "Folder/OrganizationUnit Id", + "schema": { + "type": "integer", + "format": "int64" + } + } + ], + "requestBody": { + "description": "QueueItems - The collection of ids of queue items for which the state is set.\r\n Status - The new value for the review status.", + "content": { + "application/json;odata.metadata=minimal;odata.streaming=true": { + "schema": { + "$ref": "#/components/schemas/QueueSetItemReviewStatusRequest" + } + }, + "application/json;odata.metadata=minimal;odata.streaming=false": { + "schema": { + "$ref": "#/components/schemas/QueueSetItemReviewStatusRequest" + } + }, + "application/json;odata.metadata=minimal": { + "schema": { + "$ref": "#/components/schemas/QueueSetItemReviewStatusRequest" + } + }, + "application/json;odata.metadata=full;odata.streaming=true": { + "schema": { + "$ref": "#/components/schemas/QueueSetItemReviewStatusRequest" + } + }, + "application/json;odata.metadata=full;odata.streaming=false": { + "schema": { + "$ref": "#/components/schemas/QueueSetItemReviewStatusRequest" + } + }, + "application/json;odata.metadata=full": { + "schema": { + "$ref": "#/components/schemas/QueueSetItemReviewStatusRequest" + } + }, + "application/json;odata.metadata=none;odata.streaming=true": { + "schema": { + "$ref": "#/components/schemas/QueueSetItemReviewStatusRequest" + } + }, + "application/json;odata.metadata=none;odata.streaming=false": { + "schema": { + "$ref": "#/components/schemas/QueueSetItemReviewStatusRequest" + } + }, + "application/json;odata.metadata=none": { + "schema": { + "$ref": "#/components/schemas/QueueSetItemReviewStatusRequest" + } + }, + "application/json;odata.streaming=true": { + "schema": { + "$ref": "#/components/schemas/QueueSetItemReviewStatusRequest" + } + }, + "application/json;odata.streaming=false": { + "schema": { + "$ref": "#/components/schemas/QueueSetItemReviewStatusRequest" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/QueueSetItemReviewStatusRequest" + } + }, + "application/json-patch+json": { + "schema": { + "$ref": "#/components/schemas/QueueSetItemReviewStatusRequest" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/QueueSetItemReviewStatusRequest" + } + } + }, + "required": false + }, + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/BulkOperationResponseDtoOfInt64" + } + } + } + } + }, + "security": [ + { + "OAuth2": [] + } + ], + "x-codegen-request-body-name": "body" + } + }, + "/odata/QueueItems/UiPathODataSvc.UnsetItemReviewer": { + "post": { + "tags": [ + "QueueItems" + ], + "summary": "Unsets the reviewer for multiple queue items", + "description": "OAuth required scopes: OR.Queues or OR.Queues.Write.\r\n\r\nRequired permissions: Queues.View and Transactions.Edit.", + "operationId": "QueueItems_UnsetItemReviewer", + "parameters": [ + { + "name": "$expand", + "in": "query", + "description": "Indicates the related entities to be represented inline. The maximum depth is 2.", + "schema": { + "type": "string" + } + }, + { + "name": "$select", + "in": "query", + "description": "Limits the properties returned in the result.", + "schema": { + "type": "string" + } + }, + { + "name": "X-UIPATH-OrganizationUnitId", + "in": "header", + "description": "Folder/OrganizationUnit Id", + "schema": { + "type": "integer", + "format": "int64" + } + } + ], + "requestBody": { + "description": "QueueItems - The collection of ids of queue items for which the reviewer is unset.", + "content": { + "application/json;odata.metadata=minimal;odata.streaming=true": { + "schema": { + "$ref": "#/components/schemas/QueueUnsetItemReviewerRequest" + } + }, + "application/json;odata.metadata=minimal;odata.streaming=false": { + "schema": { + "$ref": "#/components/schemas/QueueUnsetItemReviewerRequest" + } + }, + "application/json;odata.metadata=minimal": { + "schema": { + "$ref": "#/components/schemas/QueueUnsetItemReviewerRequest" + } + }, + "application/json;odata.metadata=full;odata.streaming=true": { + "schema": { + "$ref": "#/components/schemas/QueueUnsetItemReviewerRequest" + } + }, + "application/json;odata.metadata=full;odata.streaming=false": { + "schema": { + "$ref": "#/components/schemas/QueueUnsetItemReviewerRequest" + } + }, + "application/json;odata.metadata=full": { + "schema": { + "$ref": "#/components/schemas/QueueUnsetItemReviewerRequest" + } + }, + "application/json;odata.metadata=none;odata.streaming=true": { + "schema": { + "$ref": "#/components/schemas/QueueUnsetItemReviewerRequest" + } + }, + "application/json;odata.metadata=none;odata.streaming=false": { + "schema": { + "$ref": "#/components/schemas/QueueUnsetItemReviewerRequest" + } + }, + "application/json;odata.metadata=none": { + "schema": { + "$ref": "#/components/schemas/QueueUnsetItemReviewerRequest" + } + }, + "application/json;odata.streaming=true": { + "schema": { + "$ref": "#/components/schemas/QueueUnsetItemReviewerRequest" + } + }, + "application/json;odata.streaming=false": { + "schema": { + "$ref": "#/components/schemas/QueueUnsetItemReviewerRequest" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/QueueUnsetItemReviewerRequest" + } + }, + "application/json-patch+json": { + "schema": { + "$ref": "#/components/schemas/QueueUnsetItemReviewerRequest" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/QueueUnsetItemReviewerRequest" + } + } + }, + "required": false + }, + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/BulkOperationResponseDtoOfInt64" + } + } + } + } + }, + "security": [ + { + "OAuth2": [] + } + ], + "x-codegen-request-body-name": "body" + } + }, + "/odata/QueueProcessingRecords/UiPathODataSvc.RetrieveLastDaysProcessingRecords(daysNo={daysNo},queueDefinitionId={queueDefinitionId})": { + "get": { + "tags": [ + "QueueProcessingRecords" + ], + "summary": "Returns the computed processing status for a given queue in the last specified days.", + "description": "OAuth required scopes: OR.Queues or OR.Queues.Read.\r\n\r\nRequired permissions: Queues.View and Transactions.View.", + "operationId": "QueueProcessingRecords_RetrieveLastDaysProcessingRecordsByDaysnoAndQueuedefinitionid", + "parameters": [ + { + "name": "daysNo", + "in": "path", + "description": "The number of days to go back from the present moment when calculating the report. If it is 0 the report will be computed for the last hour.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "queueDefinitionId", + "in": "path", + "description": "The Id of the queue for which the report is computed.", + "required": true, + "schema": { + "type": "integer", + "format": "int64" + } + }, + { + "name": "$expand", + "in": "query", + "description": "Indicates the related entities to be represented inline. The maximum depth is 2.", + "schema": { + "type": "string" + } + }, + { + "name": "$filter", + "in": "query", + "description": "Restricts the set of items returned. The maximum number of expressions is 100.", + "schema": { + "type": "string" + } + }, + { + "name": "$select", + "in": "query", + "description": "Limits the properties returned in the result.", + "schema": { + "type": "string" + } + }, + { + "name": "$orderby", + "in": "query", + "description": "Specifies the order in which items are returned. The maximum number of expressions is 5.", + "schema": { + "type": "string" + } + }, + { + "name": "$count", + "in": "query", + "description": "Indicates whether the total count of items within a collection are returned in the result.", + "schema": { + "type": "boolean" + } + }, + { + "name": "X-UIPATH-OrganizationUnitId", + "in": "header", + "description": "Folder/OrganizationUnit Id", + "schema": { + "type": "integer", + "format": "int64" + } + } + ], + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ODataValueOfIEnumerableOfQueueProcessingRecordDto" + } + } + } + } + }, + "security": [ + { + "OAuth2": [] + } + ] + } + }, + "/odata/QueueProcessingRecords/UiPathODataSvc.RetrieveQueuesProcessingStatus": { + "get": { + "tags": [ + "QueueProcessingRecords" + ], + "summary": "Returns the processing status for all queues. Allows odata query options.", + "description": "OAuth required scopes: OR.Queues or OR.Queues.Read.\r\n\r\nRequired permissions: Queues.View.", + "operationId": "QueueProcessingRecords_RetrieveQueuesProcessingStatus", + "parameters": [ + { + "name": "$expand", + "in": "query", + "description": "Indicates the related entities to be represented inline. The maximum depth is 2.", + "schema": { + "type": "string" + } + }, + { + "name": "$filter", + "in": "query", + "description": "Restricts the set of items returned. The maximum number of expressions is 100.", + "schema": { + "type": "string" + } + }, + { + "name": "$select", + "in": "query", + "description": "Limits the properties returned in the result.", + "schema": { + "type": "string" + } + }, + { + "name": "$orderby", + "in": "query", + "description": "Specifies the order in which items are returned. The maximum number of expressions is 5.", + "schema": { + "type": "string" + } + }, + { + "name": "$top", + "in": "query", + "description": "Limits the number of items returned from a collection. The maximum value is 1000.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "$skip", + "in": "query", + "description": "Excludes the specified number of items of the queried collection from the result.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "$count", + "in": "query", + "description": "Indicates whether the total count of items within a collection are returned in the result.", + "schema": { + "type": "boolean" + } + }, + { + "name": "X-UIPATH-OrganizationUnitId", + "in": "header", + "description": "Folder/OrganizationUnit Id", + "schema": { + "type": "integer", + "format": "int64" + } + } + ], + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ODataValueOfIEnumerableOfQueueProcessingStatusDto" + } + } + } + } + }, + "security": [ + { + "OAuth2": [] + } + ] + } + }, + "/odata/QueueRetention": { + "get": { + "tags": [ + "QueueRetention" + ], + "description": "OAuth required scopes: OR.Queues or OR.Queues.Read.\r\n\r\nRequired permissions: Queues.View.", + "operationId": "QueueRetention_Get", + "parameters": [ + { + "name": "$expand", + "in": "query", + "description": "Indicates the related entities to be represented inline. The maximum depth is 2.", + "schema": { + "type": "string" + } + }, + { + "name": "$filter", + "in": "query", + "description": "Restricts the set of items returned. The maximum number of expressions is 100.", + "schema": { + "type": "string" + } + }, + { + "name": "$select", + "in": "query", + "description": "Limits the properties returned in the result.", + "schema": { + "type": "string" + } + }, + { + "name": "$orderby", + "in": "query", + "description": "Specifies the order in which items are returned. The maximum number of expressions is 5.", + "schema": { + "type": "string" + } + }, + { + "name": "$top", + "in": "query", + "description": "Limits the number of items returned from a collection. The maximum value is 1000.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "$skip", + "in": "query", + "description": "Excludes the specified number of items of the queried collection from the result.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "$count", + "in": "query", + "description": "Indicates whether the total count of items within a collection are returned in the result.", + "schema": { + "type": "boolean" + } + }, + { + "name": "X-UIPATH-OrganizationUnitId", + "in": "header", + "description": "Folder/OrganizationUnit Id", + "schema": { + "type": "integer", + "format": "int64" + } + } + ], + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ODataValueOfIEnumerableOfQueueRetentionSettingDto" + } + } + } + } + }, + "security": [ + { + "OAuth2": [] + } + ] + } + }, + "/odata/QueueRetention({key})": { + "get": { + "tags": [ + "QueueRetention" + ], + "description": "OAuth required scopes: OR.Queues or OR.Queues.Read.\r\n\r\nRequired permissions: Queues.View.", + "operationId": "QueueRetention_GetById", + "parameters": [ + { + "name": "key", + "in": "path", + "required": true, + "schema": { + "type": "integer", + "format": "int64" + } + }, + { + "name": "$expand", + "in": "query", + "description": "Indicates the related entities to be represented inline. The maximum depth is 2.", + "schema": { + "type": "string" + } + }, + { + "name": "$select", + "in": "query", + "description": "Limits the properties returned in the result.", + "schema": { + "type": "string" + } + }, + { + "name": "X-UIPATH-OrganizationUnitId", + "in": "header", + "description": "Folder/OrganizationUnit Id", + "schema": { + "type": "integer", + "format": "int64" + } + } + ], + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/QueueRetentionSettingDto" + } + } + } + } + }, + "security": [ + { + "OAuth2": [] + } + ] + }, + "put": { + "tags": [ + "QueueRetention" + ], + "description": "OAuth required scopes: OR.Queues or OR.Queues.Write.\r\n\r\nRequired permissions: Queues.Edit.", + "operationId": "QueueRetention_PutById", + "parameters": [ + { + "name": "key", + "in": "path", + "required": true, + "schema": { + "type": "integer", + "format": "int64" + } + }, + { + "name": "X-UIPATH-OrganizationUnitId", + "in": "header", + "description": "Folder/OrganizationUnit Id", + "schema": { + "type": "integer", + "format": "int64" + } + } + ], + "requestBody": { + "content": { + "application/json;odata.metadata=minimal;odata.streaming=true": { + "schema": { + "$ref": "#/components/schemas/QueueRetentionSettingDto" + } + }, + "application/json;odata.metadata=minimal;odata.streaming=false": { + "schema": { + "$ref": "#/components/schemas/QueueRetentionSettingDto" + } + }, + "application/json;odata.metadata=minimal": { + "schema": { + "$ref": "#/components/schemas/QueueRetentionSettingDto" + } + }, + "application/json;odata.metadata=full;odata.streaming=true": { + "schema": { + "$ref": "#/components/schemas/QueueRetentionSettingDto" + } + }, + "application/json;odata.metadata=full;odata.streaming=false": { + "schema": { + "$ref": "#/components/schemas/QueueRetentionSettingDto" + } + }, + "application/json;odata.metadata=full": { + "schema": { + "$ref": "#/components/schemas/QueueRetentionSettingDto" + } + }, + "application/json;odata.metadata=none;odata.streaming=true": { + "schema": { + "$ref": "#/components/schemas/QueueRetentionSettingDto" + } + }, + "application/json;odata.metadata=none;odata.streaming=false": { + "schema": { + "$ref": "#/components/schemas/QueueRetentionSettingDto" + } + }, + "application/json;odata.metadata=none": { + "schema": { + "$ref": "#/components/schemas/QueueRetentionSettingDto" + } + }, + "application/json;odata.streaming=true": { + "schema": { + "$ref": "#/components/schemas/QueueRetentionSettingDto" + } + }, + "application/json;odata.streaming=false": { + "schema": { + "$ref": "#/components/schemas/QueueRetentionSettingDto" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/QueueRetentionSettingDto" + } + }, + "application/json-patch+json": { + "schema": { + "$ref": "#/components/schemas/QueueRetentionSettingDto" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/QueueRetentionSettingDto" + } + } + }, + "required": false + }, + "responses": { + "200": { + "description": "Success", + "content": {} + } + }, + "security": [ + { + "OAuth2": [] + } + ], + "x-codegen-request-body-name": "body" + }, + "delete": { + "tags": [ + "QueueRetention" + ], + "description": "OAuth required scopes: OR.Queues or OR.Queues.Write.\r\n\r\nRequired permissions: Queues.Edit.", + "operationId": "QueueRetention_DeleteById", + "parameters": [ + { + "name": "key", + "in": "path", + "required": true, + "schema": { + "type": "integer", + "format": "int64" + } + }, + { + "name": "X-UIPATH-OrganizationUnitId", + "in": "header", + "description": "Folder/OrganizationUnit Id", + "schema": { + "type": "integer", + "format": "int64" + } + } + ], + "responses": { + "204": { + "description": "No Content", + "content": {} + } + }, + "security": [ + { + "OAuth2": [] + } + ] + } + }, + "/odata/Queues({key})/UiPathODataSvc.SetTransactionResult": { + "post": { + "tags": [ + "Queues" + ], + "summary": "Sets the result of a transaction.", + "description": "OAuth required scopes: OR.Queues or OR.Queues.Write.\r\n\r\nRequired permissions: Queues.View and Transactions.Edit.", + "operationId": "Queues_SetTransactionResultById", + "parameters": [ + { + "name": "key", + "in": "path", + "required": true, + "schema": { + "type": "integer", + "format": "int64" + } + }, + { + "name": "X-UIPATH-OrganizationUnitId", + "in": "header", + "description": "Folder/OrganizationUnit Id", + "schema": { + "type": "integer", + "format": "int64" + } + } + ], + "requestBody": { + "content": { + "application/json;odata.metadata=minimal;odata.streaming=true": { + "schema": { + "$ref": "#/components/schemas/QueueSetTransactionResultRequest" + } + }, + "application/json;odata.metadata=minimal;odata.streaming=false": { + "schema": { + "$ref": "#/components/schemas/QueueSetTransactionResultRequest" + } + }, + "application/json;odata.metadata=minimal": { + "schema": { + "$ref": "#/components/schemas/QueueSetTransactionResultRequest" + } + }, + "application/json;odata.metadata=full;odata.streaming=true": { + "schema": { + "$ref": "#/components/schemas/QueueSetTransactionResultRequest" + } + }, + "application/json;odata.metadata=full;odata.streaming=false": { + "schema": { + "$ref": "#/components/schemas/QueueSetTransactionResultRequest" + } + }, + "application/json;odata.metadata=full": { + "schema": { + "$ref": "#/components/schemas/QueueSetTransactionResultRequest" + } + }, + "application/json;odata.metadata=none;odata.streaming=true": { + "schema": { + "$ref": "#/components/schemas/QueueSetTransactionResultRequest" + } + }, + "application/json;odata.metadata=none;odata.streaming=false": { + "schema": { + "$ref": "#/components/schemas/QueueSetTransactionResultRequest" + } + }, + "application/json;odata.metadata=none": { + "schema": { + "$ref": "#/components/schemas/QueueSetTransactionResultRequest" + } + }, + "application/json;odata.streaming=true": { + "schema": { + "$ref": "#/components/schemas/QueueSetTransactionResultRequest" + } + }, + "application/json;odata.streaming=false": { + "schema": { + "$ref": "#/components/schemas/QueueSetTransactionResultRequest" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/QueueSetTransactionResultRequest" + } + }, + "application/json-patch+json": { + "schema": { + "$ref": "#/components/schemas/QueueSetTransactionResultRequest" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/QueueSetTransactionResultRequest" + } + } + }, + "required": false + }, + "responses": { + "200": { + "description": "Success", + "content": {} + }, + "409": { + "description": "Conflict", + "content": {} + } + }, + "security": [ + { + "OAuth2": [] + } + ], + "x-codegen-request-body-name": "body" + } + }, + "/odata/Queues/UiPathODataSvc.AddQueueItem": { + "post": { + "tags": [ + "Queues" + ], + "summary": "Adds a new queue item.", + "description": "OAuth required scopes: OR.Queues or OR.Queues.Write.\r\n\r\nRequired permissions: Queues.View and Transactions.Create.", + "operationId": "Queues_AddQueueItem", + "parameters": [ + { + "name": "$expand", + "in": "query", + "description": "Indicates the related entities to be represented inline. The maximum depth is 2.", + "schema": { + "type": "string" + } + }, + { + "name": "$select", + "in": "query", + "description": "Limits the properties returned in the result.", + "schema": { + "type": "string" + } + }, + { + "name": "X-UIPATH-OrganizationUnitId", + "in": "header", + "description": "Folder/OrganizationUnit Id", + "schema": { + "type": "integer", + "format": "int64" + } + } + ], + "requestBody": { + "content": { + "application/json;odata.metadata=minimal;odata.streaming=true": { + "schema": { + "$ref": "#/components/schemas/AddQueueItemRequest" + } + }, + "application/json;odata.metadata=minimal;odata.streaming=false": { + "schema": { + "$ref": "#/components/schemas/AddQueueItemRequest" + } + }, + "application/json;odata.metadata=minimal": { + "schema": { + "$ref": "#/components/schemas/AddQueueItemRequest" + } + }, + "application/json;odata.metadata=full;odata.streaming=true": { + "schema": { + "$ref": "#/components/schemas/AddQueueItemRequest" + } + }, + "application/json;odata.metadata=full;odata.streaming=false": { + "schema": { + "$ref": "#/components/schemas/AddQueueItemRequest" + } + }, + "application/json;odata.metadata=full": { + "schema": { + "$ref": "#/components/schemas/AddQueueItemRequest" + } + }, + "application/json;odata.metadata=none;odata.streaming=true": { + "schema": { + "$ref": "#/components/schemas/AddQueueItemRequest" + } + }, + "application/json;odata.metadata=none;odata.streaming=false": { + "schema": { + "$ref": "#/components/schemas/AddQueueItemRequest" + } + }, + "application/json;odata.metadata=none": { + "schema": { + "$ref": "#/components/schemas/AddQueueItemRequest" + } + }, + "application/json;odata.streaming=true": { + "schema": { + "$ref": "#/components/schemas/AddQueueItemRequest" + } + }, + "application/json;odata.streaming=false": { + "schema": { + "$ref": "#/components/schemas/AddQueueItemRequest" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/AddQueueItemRequest" + } + }, + "application/json-patch+json": { + "schema": { + "$ref": "#/components/schemas/AddQueueItemRequest" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/AddQueueItemRequest" + } + } + }, + "required": false + }, + "responses": { + "201": { + "description": "Created", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/QueueItemDto" + } + } + } + } + }, + "security": [ + { + "OAuth2": [] + } + ], + "x-codegen-request-body-name": "body" + } + }, + "/odata/Queues/UiPathODataSvc.BulkAddQueueItems": { + "post": { + "tags": [ + "Queues" + ], + "summary": "Bulk adds queue items", + "description": "OAuth required scopes: OR.Queues or OR.Queues.Write.\r\n\r\nRequired permissions: Queues.View and Transactions.Create.", + "operationId": "Queues_BulkAddQueueItems", + "parameters": [ + { + "name": "$expand", + "in": "query", + "description": "Indicates the related entities to be represented inline. The maximum depth is 2.", + "schema": { + "type": "string" + } + }, + { + "name": "$select", + "in": "query", + "description": "Limits the properties returned in the result.", + "schema": { + "type": "string" + } + }, + { + "name": "X-UIPATH-OrganizationUnitId", + "in": "header", + "description": "Folder/OrganizationUnit Id", + "schema": { + "type": "integer", + "format": "int64" + } + } + ], + "requestBody": { + "content": { + "application/json;odata.metadata=minimal;odata.streaming=true": { + "schema": { + "$ref": "#/components/schemas/BulkAddQueueItemsRequest" + } + }, + "application/json;odata.metadata=minimal;odata.streaming=false": { + "schema": { + "$ref": "#/components/schemas/BulkAddQueueItemsRequest" + } + }, + "application/json;odata.metadata=minimal": { + "schema": { + "$ref": "#/components/schemas/BulkAddQueueItemsRequest" + } + }, + "application/json;odata.metadata=full;odata.streaming=true": { + "schema": { + "$ref": "#/components/schemas/BulkAddQueueItemsRequest" + } + }, + "application/json;odata.metadata=full;odata.streaming=false": { + "schema": { + "$ref": "#/components/schemas/BulkAddQueueItemsRequest" + } + }, + "application/json;odata.metadata=full": { + "schema": { + "$ref": "#/components/schemas/BulkAddQueueItemsRequest" + } + }, + "application/json;odata.metadata=none;odata.streaming=true": { + "schema": { + "$ref": "#/components/schemas/BulkAddQueueItemsRequest" + } + }, + "application/json;odata.metadata=none;odata.streaming=false": { + "schema": { + "$ref": "#/components/schemas/BulkAddQueueItemsRequest" + } + }, + "application/json;odata.metadata=none": { + "schema": { + "$ref": "#/components/schemas/BulkAddQueueItemsRequest" + } + }, + "application/json;odata.streaming=true": { + "schema": { + "$ref": "#/components/schemas/BulkAddQueueItemsRequest" + } + }, + "application/json;odata.streaming=false": { + "schema": { + "$ref": "#/components/schemas/BulkAddQueueItemsRequest" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/BulkAddQueueItemsRequest" + } + }, + "application/json-patch+json": { + "schema": { + "$ref": "#/components/schemas/BulkAddQueueItemsRequest" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/BulkAddQueueItemsRequest" + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/BulkOperationResponseDtoOfFailedQueueItemDto" + } + } + } + } + }, + "security": [ + { + "OAuth2": [] + } + ], + "x-codegen-request-body-name": "body" + } + }, + "/odata/Queues/UiPathODataSvc.StartTransaction": { + "post": { + "tags": [ + "Queues" + ], + "summary": "Starts a transaction.", + "description": "OAuth required scopes: OR.Queues or OR.Queues.Write.\r\n\r\nRequired permissions: Queues.View and Transactions.View and Transactions.Create and Transactions.Edit.", + "operationId": "Queues_StartTransaction", + "parameters": [ + { + "name": "$expand", + "in": "query", + "description": "Indicates the related entities to be represented inline. The maximum depth is 2.", + "schema": { + "type": "string" + } + }, + { + "name": "$select", + "in": "query", + "description": "Limits the properties returned in the result.", + "schema": { + "type": "string" + } + }, + { + "name": "X-UIPATH-OrganizationUnitId", + "in": "header", + "description": "Folder/OrganizationUnit Id", + "schema": { + "type": "integer", + "format": "int64" + } + } + ], + "requestBody": { + "content": { + "application/json;odata.metadata=minimal;odata.streaming=true": { + "schema": { + "$ref": "#/components/schemas/QueuesStartTransactionRequest" + } + }, + "application/json;odata.metadata=minimal;odata.streaming=false": { + "schema": { + "$ref": "#/components/schemas/QueuesStartTransactionRequest" + } + }, + "application/json;odata.metadata=minimal": { + "schema": { + "$ref": "#/components/schemas/QueuesStartTransactionRequest" + } + }, + "application/json;odata.metadata=full;odata.streaming=true": { + "schema": { + "$ref": "#/components/schemas/QueuesStartTransactionRequest" + } + }, + "application/json;odata.metadata=full;odata.streaming=false": { + "schema": { + "$ref": "#/components/schemas/QueuesStartTransactionRequest" + } + }, + "application/json;odata.metadata=full": { + "schema": { + "$ref": "#/components/schemas/QueuesStartTransactionRequest" + } + }, + "application/json;odata.metadata=none;odata.streaming=true": { + "schema": { + "$ref": "#/components/schemas/QueuesStartTransactionRequest" + } + }, + "application/json;odata.metadata=none;odata.streaming=false": { + "schema": { + "$ref": "#/components/schemas/QueuesStartTransactionRequest" + } + }, + "application/json;odata.metadata=none": { + "schema": { + "$ref": "#/components/schemas/QueuesStartTransactionRequest" + } + }, + "application/json;odata.streaming=true": { + "schema": { + "$ref": "#/components/schemas/QueuesStartTransactionRequest" + } + }, + "application/json;odata.streaming=false": { + "schema": { + "$ref": "#/components/schemas/QueuesStartTransactionRequest" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/QueuesStartTransactionRequest" + } + }, + "application/json-patch+json": { + "schema": { + "$ref": "#/components/schemas/QueuesStartTransactionRequest" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/QueuesStartTransactionRequest" + } + } + }, + "required": false + }, + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/QueueItemDto" + } + } + } + }, + "204": { + "description": "No Content", + "content": {} + } + }, + "security": [ + { + "OAuth2": [] + } + ], + "x-codegen-request-body-name": "body" + } + }, + "/odata/ReleaseRetention": { + "get": { + "tags": [ + "ReleaseRetention" + ], + "description": "OAuth required scopes: OR.Execution or OR.Execution.Read.\r\n\r\nRequired permissions: Processes.View.", + "operationId": "ReleaseRetention_Get", + "parameters": [ + { + "name": "$expand", + "in": "query", + "description": "Indicates the related entities to be represented inline. The maximum depth is 2.", + "schema": { + "type": "string" + } + }, + { + "name": "$filter", + "in": "query", + "description": "Restricts the set of items returned. The maximum number of expressions is 100.", + "schema": { + "type": "string" + } + }, + { + "name": "$select", + "in": "query", + "description": "Limits the properties returned in the result.", + "schema": { + "type": "string" + } + }, + { + "name": "$orderby", + "in": "query", + "description": "Specifies the order in which items are returned. The maximum number of expressions is 5.", + "schema": { + "type": "string" + } + }, + { + "name": "$top", + "in": "query", + "description": "Limits the number of items returned from a collection. The maximum value is 1000.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "$skip", + "in": "query", + "description": "Excludes the specified number of items of the queried collection from the result.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "$count", + "in": "query", + "description": "Indicates whether the total count of items within a collection are returned in the result.", + "schema": { + "type": "boolean" + } + }, + { + "name": "X-UIPATH-OrganizationUnitId", + "in": "header", + "description": "Folder/OrganizationUnit Id", + "schema": { + "type": "integer", + "format": "int64" + } + } + ], + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ODataValueOfIEnumerableOfReleaseRetentionSettingDto" + } + } + } + } + }, + "security": [ + { + "OAuth2": [] + } + ] + } + }, + "/odata/ReleaseRetention({key})": { + "get": { + "tags": [ + "ReleaseRetention" + ], + "description": "OAuth required scopes: OR.Execution or OR.Execution.Read.\r\n\r\nRequired permissions: Processes.View.", + "operationId": "ReleaseRetention_GetById", + "parameters": [ + { + "name": "key", + "in": "path", + "required": true, + "schema": { + "type": "integer", + "format": "int64" + } + }, + { + "name": "$expand", + "in": "query", + "description": "Indicates the related entities to be represented inline. The maximum depth is 2.", + "schema": { + "type": "string" + } + }, + { + "name": "$select", + "in": "query", + "description": "Limits the properties returned in the result.", + "schema": { + "type": "string" + } + }, + { + "name": "X-UIPATH-OrganizationUnitId", + "in": "header", + "description": "Folder/OrganizationUnit Id", + "schema": { + "type": "integer", + "format": "int64" + } + } + ], + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ReleaseRetentionSettingDto" + } + } + } + } + }, + "security": [ + { + "OAuth2": [] + } + ] + }, + "put": { + "tags": [ + "ReleaseRetention" + ], + "description": "OAuth required scopes: OR.Execution or OR.Execution.Write.\r\n\r\nRequired permissions: Processes.Edit.", + "operationId": "ReleaseRetention_PutById", + "parameters": [ + { + "name": "key", + "in": "path", + "required": true, + "schema": { + "type": "integer", + "format": "int64" + } + }, + { + "name": "X-UIPATH-OrganizationUnitId", + "in": "header", + "description": "Folder/OrganizationUnit Id", + "schema": { + "type": "integer", + "format": "int64" + } + } + ], + "requestBody": { + "content": { + "application/json;odata.metadata=minimal;odata.streaming=true": { + "schema": { + "$ref": "#/components/schemas/ReleaseRetentionSettingDto" + } + }, + "application/json;odata.metadata=minimal;odata.streaming=false": { + "schema": { + "$ref": "#/components/schemas/ReleaseRetentionSettingDto" + } + }, + "application/json;odata.metadata=minimal": { + "schema": { + "$ref": "#/components/schemas/ReleaseRetentionSettingDto" + } + }, + "application/json;odata.metadata=full;odata.streaming=true": { + "schema": { + "$ref": "#/components/schemas/ReleaseRetentionSettingDto" + } + }, + "application/json;odata.metadata=full;odata.streaming=false": { + "schema": { + "$ref": "#/components/schemas/ReleaseRetentionSettingDto" + } + }, + "application/json;odata.metadata=full": { + "schema": { + "$ref": "#/components/schemas/ReleaseRetentionSettingDto" + } + }, + "application/json;odata.metadata=none;odata.streaming=true": { + "schema": { + "$ref": "#/components/schemas/ReleaseRetentionSettingDto" + } + }, + "application/json;odata.metadata=none;odata.streaming=false": { + "schema": { + "$ref": "#/components/schemas/ReleaseRetentionSettingDto" + } + }, + "application/json;odata.metadata=none": { + "schema": { + "$ref": "#/components/schemas/ReleaseRetentionSettingDto" + } + }, + "application/json;odata.streaming=true": { + "schema": { + "$ref": "#/components/schemas/ReleaseRetentionSettingDto" + } + }, + "application/json;odata.streaming=false": { + "schema": { + "$ref": "#/components/schemas/ReleaseRetentionSettingDto" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/ReleaseRetentionSettingDto" + } + }, + "application/json-patch+json": { + "schema": { + "$ref": "#/components/schemas/ReleaseRetentionSettingDto" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/ReleaseRetentionSettingDto" + } + } + }, + "required": false + }, + "responses": { + "200": { + "description": "Success", + "content": {} + } + }, + "security": [ + { + "OAuth2": [] + } + ], + "x-codegen-request-body-name": "body" + }, + "delete": { + "tags": [ + "ReleaseRetention" + ], + "description": "OAuth required scopes: OR.Execution or OR.Execution.Write.\r\n\r\nRequired permissions: Processes.Edit.", + "operationId": "ReleaseRetention_DeleteById", + "parameters": [ + { + "name": "key", + "in": "path", + "required": true, + "schema": { + "type": "integer", + "format": "int64" + } + }, + { + "name": "X-UIPATH-OrganizationUnitId", + "in": "header", + "description": "Folder/OrganizationUnit Id", + "schema": { + "type": "integer", + "format": "int64" + } + } + ], + "responses": { + "204": { + "description": "No Content", + "content": {} + } + }, + "security": [ + { + "OAuth2": [] + } + ] + } + }, + "/odata/Releases": { + "get": { + "tags": [ + "Releases" + ], + "summary": "Gets multiple releases.", + "description": "OAuth required scopes: OR.Execution or OR.Execution.Read.\r\n\r\nRequired permissions: Processes.View.", + "operationId": "Releases_Get", + "parameters": [ + { + "name": "mandatoryPermissions", + "in": "query", + "description": "If in a cross-folder scenario, these represent the additional permissions\r\n required in the folders the data is retrieved from; all permissions in this set must be met", + "style": "form", + "explode": true, + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + }, + { + "name": "atLeastOnePermissions", + "in": "query", + "description": "If in a cross-folder scenario, these represent the additional permissions\r\n required in the folders the data is retrieved from; at least one permission in this set must be met", + "style": "form", + "explode": true, + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + }, + { + "name": "$expand", + "in": "query", + "description": "Indicates the related entities to be represented inline. The maximum depth is 2.", + "schema": { + "type": "string" + } + }, + { + "name": "$filter", + "in": "query", + "description": "Restricts the set of items returned. The maximum number of expressions is 100.", + "schema": { + "type": "string" + } + }, + { + "name": "$select", + "in": "query", + "description": "Limits the properties returned in the result.", + "schema": { + "type": "string" + } + }, + { + "name": "$orderby", + "in": "query", + "description": "Specifies the order in which items are returned. The maximum number of expressions is 5.", + "schema": { + "type": "string" + } + }, + { + "name": "$top", + "in": "query", + "description": "Limits the number of items returned from a collection. The maximum value is 1000.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "$skip", + "in": "query", + "description": "Excludes the specified number of items of the queried collection from the result.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "$count", + "in": "query", + "description": "Indicates whether the total count of items within a collection are returned in the result.", + "schema": { + "type": "boolean" + } + }, + { + "name": "X-UIPATH-OrganizationUnitId", + "in": "header", + "description": "Folder/OrganizationUnit Id", + "schema": { + "type": "integer", + "format": "int64" + } + } + ], + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ODataValueOfIEnumerableOfReleaseDto" + } + } + } + } + }, + "security": [ + { + "OAuth2": [] + } + ] + }, + "post": { + "tags": [ + "Releases" + ], + "summary": "Creates a new release.", + "description": "OAuth required scopes: OR.Execution or OR.Execution.Write.\r\n\r\nRequired permissions: (Processes.Create) and (RemoteControl.Create - Required when creating a process with live streaming enabled.).", + "operationId": "Releases_Post", + "parameters": [ + { + "name": "X-UIPATH-OrganizationUnitId", + "in": "header", + "description": "Folder/OrganizationUnit Id", + "schema": { + "type": "integer", + "format": "int64" + } + } + ], + "requestBody": { + "content": { + "application/json;odata.metadata=minimal;odata.streaming=true": { + "schema": { + "$ref": "#/components/schemas/ReleaseDto" + } + }, + "application/json;odata.metadata=minimal;odata.streaming=false": { + "schema": { + "$ref": "#/components/schemas/ReleaseDto" + } + }, + "application/json;odata.metadata=minimal": { + "schema": { + "$ref": "#/components/schemas/ReleaseDto" + } + }, + "application/json;odata.metadata=full;odata.streaming=true": { + "schema": { + "$ref": "#/components/schemas/ReleaseDto" + } + }, + "application/json;odata.metadata=full;odata.streaming=false": { + "schema": { + "$ref": "#/components/schemas/ReleaseDto" + } + }, + "application/json;odata.metadata=full": { + "schema": { + "$ref": "#/components/schemas/ReleaseDto" + } + }, + "application/json;odata.metadata=none;odata.streaming=true": { + "schema": { + "$ref": "#/components/schemas/ReleaseDto" + } + }, + "application/json;odata.metadata=none;odata.streaming=false": { + "schema": { + "$ref": "#/components/schemas/ReleaseDto" + } + }, + "application/json;odata.metadata=none": { + "schema": { + "$ref": "#/components/schemas/ReleaseDto" + } + }, + "application/json;odata.streaming=true": { + "schema": { + "$ref": "#/components/schemas/ReleaseDto" + } + }, + "application/json;odata.streaming=false": { + "schema": { + "$ref": "#/components/schemas/ReleaseDto" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/ReleaseDto" + } + }, + "application/json-patch+json": { + "schema": { + "$ref": "#/components/schemas/ReleaseDto" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/ReleaseDto" + } + } + }, + "required": false + }, + "responses": { + "201": { + "description": "Created", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ReleaseDto" + } + } + } + }, + "400": { + "description": "Bad Request", + "content": {} + } + }, + "security": [ + { + "OAuth2": [] + } + ], + "x-codegen-request-body-name": "body" + } + }, + "/odata/Releases({key})": { + "get": { + "tags": [ + "Releases" + ], + "summary": "Gets a release by id.", + "description": "OAuth required scopes: OR.Execution or OR.Execution.Read.\r\n\r\nRequired permissions: Processes.View.", + "operationId": "Releases_GetById", + "parameters": [ + { + "name": "key", + "in": "path", + "required": true, + "schema": { + "type": "integer", + "format": "int64" + } + }, + { + "name": "$expand", + "in": "query", + "description": "Indicates the related entities to be represented inline. The maximum depth is 2.", + "schema": { + "type": "string" + } + }, + { + "name": "$select", + "in": "query", + "description": "Limits the properties returned in the result.", + "schema": { + "type": "string" + } + }, + { + "name": "X-UIPATH-OrganizationUnitId", + "in": "header", + "description": "Folder/OrganizationUnit Id", + "schema": { + "type": "integer", + "format": "int64" + } + } + ], + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ReleaseDto" + } + } + } + } + }, + "security": [ + { + "OAuth2": [] + } + ] + }, + "put": { + "tags": [ + "Releases" + ], + "summary": "Edits a release.", + "description": "OAuth required scopes: OR.Execution or OR.Execution.Write.\r\n\r\nRequired permissions: (Processes.Edit) and (RemoteControl.Create - Required when changing the live streaming configuration.).", + "operationId": "Releases_PutById", + "parameters": [ + { + "name": "key", + "in": "path", + "required": true, + "schema": { + "type": "integer", + "format": "int64" + } + }, + { + "name": "X-UIPATH-OrganizationUnitId", + "in": "header", + "description": "Folder/OrganizationUnit Id", + "schema": { + "type": "integer", + "format": "int64" + } + } + ], + "requestBody": { + "content": { + "application/json;odata.metadata=minimal;odata.streaming=true": { + "schema": { + "$ref": "#/components/schemas/ReleaseDto" + } + }, + "application/json;odata.metadata=minimal;odata.streaming=false": { + "schema": { + "$ref": "#/components/schemas/ReleaseDto" + } + }, + "application/json;odata.metadata=minimal": { + "schema": { + "$ref": "#/components/schemas/ReleaseDto" + } + }, + "application/json;odata.metadata=full;odata.streaming=true": { + "schema": { + "$ref": "#/components/schemas/ReleaseDto" + } + }, + "application/json;odata.metadata=full;odata.streaming=false": { + "schema": { + "$ref": "#/components/schemas/ReleaseDto" + } + }, + "application/json;odata.metadata=full": { + "schema": { + "$ref": "#/components/schemas/ReleaseDto" + } + }, + "application/json;odata.metadata=none;odata.streaming=true": { + "schema": { + "$ref": "#/components/schemas/ReleaseDto" + } + }, + "application/json;odata.metadata=none;odata.streaming=false": { + "schema": { + "$ref": "#/components/schemas/ReleaseDto" + } + }, + "application/json;odata.metadata=none": { + "schema": { + "$ref": "#/components/schemas/ReleaseDto" + } + }, + "application/json;odata.streaming=true": { + "schema": { + "$ref": "#/components/schemas/ReleaseDto" + } + }, + "application/json;odata.streaming=false": { + "schema": { + "$ref": "#/components/schemas/ReleaseDto" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/ReleaseDto" + } + }, + "application/json-patch+json": { + "schema": { + "$ref": "#/components/schemas/ReleaseDto" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/ReleaseDto" + } + } + }, + "required": false + }, + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ReleaseDto" + } + } + } + } + }, + "security": [ + { + "OAuth2": [] + } + ], + "x-codegen-request-body-name": "body" + }, + "delete": { + "tags": [ + "Releases" + ], + "summary": "Deletes a release.", + "description": "OAuth required scopes: OR.Execution or OR.Execution.Write.\r\n\r\nRequired permissions: Processes.Delete.", + "operationId": "Releases_DeleteById", + "parameters": [ + { + "name": "key", + "in": "path", + "required": true, + "schema": { + "type": "integer", + "format": "int64" + } + }, + { + "name": "X-UIPATH-OrganizationUnitId", + "in": "header", + "description": "Folder/OrganizationUnit Id", + "schema": { + "type": "integer", + "format": "int64" + } + } + ], + "responses": { + "204": { + "description": "No Content", + "content": {} + } + }, + "security": [ + { + "OAuth2": [] + } + ] + }, + "patch": { + "tags": [ + "Releases" + ], + "summary": "Partially updates a release.", + "description": "OAuth required scopes: OR.Execution or OR.Execution.Write.\r\n\r\nRequired permissions: (Processes.Edit) and (RemoteControl.Create - Required when changing the live streaming configuration.).", + "operationId": "Releases_PatchById", + "parameters": [ + { + "name": "key", + "in": "path", + "required": true, + "schema": { + "type": "integer", + "format": "int64" + } + }, + { + "name": "X-UIPATH-OrganizationUnitId", + "in": "header", + "description": "Folder/OrganizationUnit Id", + "schema": { + "type": "integer", + "format": "int64" + } + } + ], + "requestBody": { + "content": { + "application/json;odata.metadata=minimal;odata.streaming=true": { + "schema": { + "$ref": "#/components/schemas/ReleaseDto" + } + }, + "application/json;odata.metadata=minimal;odata.streaming=false": { + "schema": { + "$ref": "#/components/schemas/ReleaseDto" + } + }, + "application/json;odata.metadata=minimal": { + "schema": { + "$ref": "#/components/schemas/ReleaseDto" + } + }, + "application/json;odata.metadata=full;odata.streaming=true": { + "schema": { + "$ref": "#/components/schemas/ReleaseDto" + } + }, + "application/json;odata.metadata=full;odata.streaming=false": { + "schema": { + "$ref": "#/components/schemas/ReleaseDto" + } + }, + "application/json;odata.metadata=full": { + "schema": { + "$ref": "#/components/schemas/ReleaseDto" + } + }, + "application/json;odata.metadata=none;odata.streaming=true": { + "schema": { + "$ref": "#/components/schemas/ReleaseDto" + } + }, + "application/json;odata.metadata=none;odata.streaming=false": { + "schema": { + "$ref": "#/components/schemas/ReleaseDto" + } + }, + "application/json;odata.metadata=none": { + "schema": { + "$ref": "#/components/schemas/ReleaseDto" + } + }, + "application/json;odata.streaming=true": { + "schema": { + "$ref": "#/components/schemas/ReleaseDto" + } + }, + "application/json;odata.streaming=false": { + "schema": { + "$ref": "#/components/schemas/ReleaseDto" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/ReleaseDto" + } + }, + "application/json-patch+json": { + "schema": { + "$ref": "#/components/schemas/ReleaseDto" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/ReleaseDto" + } + } + }, + "required": false + }, + "responses": { + "200": { + "description": "Success", + "content": {} + } + }, + "security": [ + { + "OAuth2": [] + } + ], + "x-codegen-request-body-name": "body" + } + }, + "/odata/Releases({key})/UiPath.Server.Configuration.OData.RollbackToPreviousReleaseVersion": { + "post": { + "tags": [ + "Releases" + ], + "summary": "Reverts the package versions for the given release to the last version it had before the current one.", + "description": "OAuth required scopes: OR.Execution or OR.Execution.Write.\r\n\r\nRequired permissions: Processes.Edit.", + "operationId": "Releases_RollbackToPreviousReleaseVersionById", + "parameters": [ + { + "name": "key", + "in": "path", + "required": true, + "schema": { + "type": "integer", + "format": "int64" + } + }, + { + "name": "mergePackageTags", + "in": "query", + "schema": { + "type": "boolean", + "default": false + } + }, + { + "name": "$expand", + "in": "query", + "description": "Indicates the related entities to be represented inline. The maximum depth is 2.", + "schema": { + "type": "string" + } + }, + { + "name": "$select", + "in": "query", + "description": "Limits the properties returned in the result.", + "schema": { + "type": "string" + } + }, + { + "name": "X-UIPATH-OrganizationUnitId", + "in": "header", + "description": "Folder/OrganizationUnit Id", + "schema": { + "type": "integer", + "format": "int64" + } + } + ], + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ODataValueOfInt64" + } + } + } + } + }, + "security": [ + { + "OAuth2": [] + } + ] + } + }, + "/odata/Releases({key})/UiPath.Server.Configuration.OData.UpdateToLatestPackageVersion": { + "post": { + "tags": [ + "Releases" + ], + "summary": "Updates the package version for the given release to the latest available.", + "description": "OAuth required scopes: OR.Execution or OR.Execution.Write.\r\n\r\nRequired permissions: Processes.Edit.", + "operationId": "Releases_UpdateToLatestPackageVersionById", + "parameters": [ + { + "name": "key", + "in": "path", + "required": true, + "schema": { + "type": "integer", + "format": "int64" + } + }, + { + "name": "mergePackageTags", + "in": "query", + "description": "Merge process tags with the new package version tags", + "schema": { + "type": "boolean", + "default": false + } + }, + { + "name": "$expand", + "in": "query", + "description": "Indicates the related entities to be represented inline. The maximum depth is 2.", + "schema": { + "type": "string" + } + }, + { + "name": "$select", + "in": "query", + "description": "Limits the properties returned in the result.", + "schema": { + "type": "string" + } + }, + { + "name": "X-UIPATH-OrganizationUnitId", + "in": "header", + "description": "Folder/OrganizationUnit Id", + "schema": { + "type": "integer", + "format": "int64" + } + } + ], + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ODataValueOfInt64" + } + } + } + } + }, + "security": [ + { + "OAuth2": [] + } + ] + } + }, + "/odata/Releases({key})/UiPath.Server.Configuration.OData.UpdateToSpecificPackageVersion": { + "post": { + "tags": [ + "Releases" + ], + "summary": "Updates the package version for the given release.", + "description": "OAuth required scopes: OR.Execution or OR.Execution.Write.\r\n\r\nRequired permissions: Processes.Edit.", + "operationId": "Releases_UpdateToSpecificPackageVersionById", + "parameters": [ + { + "name": "key", + "in": "path", + "required": true, + "schema": { + "type": "integer", + "format": "int64" + } + }, + { + "name": "$expand", + "in": "query", + "description": "Indicates the related entities to be represented inline. The maximum depth is 2.", + "schema": { + "type": "string" + } + }, + { + "name": "$select", + "in": "query", + "description": "Limits the properties returned in the result.", + "schema": { + "type": "string" + } + }, + { + "name": "X-UIPATH-OrganizationUnitId", + "in": "header", + "description": "Folder/OrganizationUnit Id", + "schema": { + "type": "integer", + "format": "int64" + } + } + ], + "requestBody": { + "description": "PackageVersion - The new package version.", + "content": { + "application/json;odata.metadata=minimal;odata.streaming=true": { + "schema": { + "$ref": "#/components/schemas/ReleasesUpdateToSpecificPackageVersionRequest" + } + }, + "application/json;odata.metadata=minimal;odata.streaming=false": { + "schema": { + "$ref": "#/components/schemas/ReleasesUpdateToSpecificPackageVersionRequest" + } + }, + "application/json;odata.metadata=minimal": { + "schema": { + "$ref": "#/components/schemas/ReleasesUpdateToSpecificPackageVersionRequest" + } + }, + "application/json;odata.metadata=full;odata.streaming=true": { + "schema": { + "$ref": "#/components/schemas/ReleasesUpdateToSpecificPackageVersionRequest" + } + }, + "application/json;odata.metadata=full;odata.streaming=false": { + "schema": { + "$ref": "#/components/schemas/ReleasesUpdateToSpecificPackageVersionRequest" + } + }, + "application/json;odata.metadata=full": { + "schema": { + "$ref": "#/components/schemas/ReleasesUpdateToSpecificPackageVersionRequest" + } + }, + "application/json;odata.metadata=none;odata.streaming=true": { + "schema": { + "$ref": "#/components/schemas/ReleasesUpdateToSpecificPackageVersionRequest" + } + }, + "application/json;odata.metadata=none;odata.streaming=false": { + "schema": { + "$ref": "#/components/schemas/ReleasesUpdateToSpecificPackageVersionRequest" + } + }, + "application/json;odata.metadata=none": { + "schema": { + "$ref": "#/components/schemas/ReleasesUpdateToSpecificPackageVersionRequest" + } + }, + "application/json;odata.streaming=true": { + "schema": { + "$ref": "#/components/schemas/ReleasesUpdateToSpecificPackageVersionRequest" + } + }, + "application/json;odata.streaming=false": { + "schema": { + "$ref": "#/components/schemas/ReleasesUpdateToSpecificPackageVersionRequest" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/ReleasesUpdateToSpecificPackageVersionRequest" + } + }, + "application/json-patch+json": { + "schema": { + "$ref": "#/components/schemas/ReleasesUpdateToSpecificPackageVersionRequest" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/ReleasesUpdateToSpecificPackageVersionRequest" + } + } + }, + "required": false + }, + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ODataValueOfInt64" + } + } + } + } + }, + "security": [ + { + "OAuth2": [] + } + ], + "x-codegen-request-body-name": "body" + } + }, + "/odata/Releases/UiPath.Server.Configuration.OData.UpdateToLatestPackageVersionBulk": { + "post": { + "tags": [ + "Releases" + ], + "summary": "Updates the package versions for the given releases to the latest available.", + "description": "OAuth required scopes: OR.Execution or OR.Execution.Write.\r\n\r\nRequired permissions: Processes.Edit.", + "operationId": "Releases_UpdateToLatestPackageVersionBulk", + "parameters": [ + { + "name": "$expand", + "in": "query", + "description": "Indicates the related entities to be represented inline. The maximum depth is 2.", + "schema": { + "type": "string" + } + }, + { + "name": "$select", + "in": "query", + "description": "Limits the properties returned in the result.", + "schema": { + "type": "string" + } + }, + { + "name": "X-UIPATH-OrganizationUnitId", + "in": "header", + "description": "Folder/OrganizationUnit Id", + "schema": { + "type": "integer", + "format": "int64" + } + } + ], + "requestBody": { + "content": { + "application/json;odata.metadata=minimal;odata.streaming=true": { + "schema": { + "$ref": "#/components/schemas/ReleasesUpdateToLatestPackageVersionBulkRequest" + } + }, + "application/json;odata.metadata=minimal;odata.streaming=false": { + "schema": { + "$ref": "#/components/schemas/ReleasesUpdateToLatestPackageVersionBulkRequest" + } + }, + "application/json;odata.metadata=minimal": { + "schema": { + "$ref": "#/components/schemas/ReleasesUpdateToLatestPackageVersionBulkRequest" + } + }, + "application/json;odata.metadata=full;odata.streaming=true": { + "schema": { + "$ref": "#/components/schemas/ReleasesUpdateToLatestPackageVersionBulkRequest" + } + }, + "application/json;odata.metadata=full;odata.streaming=false": { + "schema": { + "$ref": "#/components/schemas/ReleasesUpdateToLatestPackageVersionBulkRequest" + } + }, + "application/json;odata.metadata=full": { + "schema": { + "$ref": "#/components/schemas/ReleasesUpdateToLatestPackageVersionBulkRequest" + } + }, + "application/json;odata.metadata=none;odata.streaming=true": { + "schema": { + "$ref": "#/components/schemas/ReleasesUpdateToLatestPackageVersionBulkRequest" + } + }, + "application/json;odata.metadata=none;odata.streaming=false": { + "schema": { + "$ref": "#/components/schemas/ReleasesUpdateToLatestPackageVersionBulkRequest" + } + }, + "application/json;odata.metadata=none": { + "schema": { + "$ref": "#/components/schemas/ReleasesUpdateToLatestPackageVersionBulkRequest" + } + }, + "application/json;odata.streaming=true": { + "schema": { + "$ref": "#/components/schemas/ReleasesUpdateToLatestPackageVersionBulkRequest" + } + }, + "application/json;odata.streaming=false": { + "schema": { + "$ref": "#/components/schemas/ReleasesUpdateToLatestPackageVersionBulkRequest" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/ReleasesUpdateToLatestPackageVersionBulkRequest" + } + }, + "application/json-patch+json": { + "schema": { + "$ref": "#/components/schemas/ReleasesUpdateToLatestPackageVersionBulkRequest" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/ReleasesUpdateToLatestPackageVersionBulkRequest" + } + } + }, + "required": false + }, + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/BulkOperationResponseDtoOfInt64" + } + } + } + } + }, + "security": [ + { + "OAuth2": [] + } + ], + "x-codegen-request-body-name": "body" + } + }, + "/odata/RobotLogs": { + "get": { + "tags": [ + "RobotLogs" + ], + "summary": "Gets the robot logs.", + "description": "OAuth required scopes: OR.Monitoring or OR.Monitoring.Read.\r\n\r\nRequired permissions: Logs.View.", + "operationId": "RobotLogs_Get", + "parameters": [ + { + "name": "$expand", + "in": "query", + "description": "Indicates the related entities to be represented inline. The maximum depth is 2.", + "schema": { + "type": "string" + } + }, + { + "name": "$filter", + "in": "query", + "description": "Restricts the set of items returned. The maximum number of expressions is 100.", + "schema": { + "type": "string" + } + }, + { + "name": "$select", + "in": "query", + "description": "Limits the properties returned in the result.", + "schema": { + "type": "string" + } + }, + { + "name": "$orderby", + "in": "query", + "description": "Specifies the order in which items are returned. The maximum number of expressions is 5.", + "schema": { + "type": "string" + } + }, + { + "name": "$top", + "in": "query", + "description": "Limits the number of items returned from a collection. The maximum value is 1000.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "$skip", + "in": "query", + "description": "Excludes the specified number of items of the queried collection from the result.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "$count", + "in": "query", + "description": "Indicates whether the total count of items within a collection are returned in the result.", + "schema": { + "type": "boolean" + } + }, + { + "name": "X-UIPATH-OrganizationUnitId", + "in": "header", + "description": "Folder/OrganizationUnit Id", + "schema": { + "type": "integer", + "format": "int64" + } + } + ], + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ODataValueOfIEnumerableOfLogDto" + } + } + } + } + }, + "security": [ + { + "OAuth2": [] + } + ] + } + }, + "/odata/RobotLogs/UiPath.Server.Configuration.OData.Export": { + "post": { + "tags": [ + "RobotLogs" + ], + "summary": "Requests a CSV export of filtered items.", + "description": "OAuth required scopes: OR.Monitoring or OR.Monitoring.Write.\r\n\r\nRequired permissions: Logs.View.", + "operationId": "RobotLogs_Export", + "parameters": [ + { + "name": "$expand", + "in": "query", + "description": "Indicates the related entities to be represented inline. The maximum depth is 2.", + "schema": { + "type": "string" + } + }, + { + "name": "$filter", + "in": "query", + "description": "Restricts the set of items returned. The maximum number of expressions is 100.", + "schema": { + "type": "string" + } + }, + { + "name": "$select", + "in": "query", + "description": "Limits the properties returned in the result.", + "schema": { + "type": "string" + } + }, + { + "name": "$orderby", + "in": "query", + "description": "Specifies the order in which items are returned. The maximum number of expressions is 5.", + "schema": { + "type": "string" + } + }, + { + "name": "$top", + "in": "query", + "description": "Limits the number of items returned from a collection. The maximum value is 1000.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "$skip", + "in": "query", + "description": "Excludes the specified number of items of the queried collection from the result.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "$count", + "in": "query", + "description": "Indicates whether the total count of items within a collection are returned in the result.", + "schema": { + "type": "boolean" + } + }, + { + "name": "X-UIPATH-OrganizationUnitId", + "in": "header", + "description": "Folder/OrganizationUnit Id", + "schema": { + "type": "integer", + "format": "int64" + } + } + ], + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ExportModel" + } + } + } + } + }, + "security": [ + { + "OAuth2": [] + } + ] + } + }, + "/odata/RobotLogs/UiPath.Server.Configuration.OData.GetTotalCount": { + "get": { + "tags": [ + "RobotLogs" + ], + "summary": "Gets the total count of robot logs.\r\nThis might be different than the size of the count returned by GetRobotLogs which\r\nis limited by the max_result_window parameter for an Elasticsearch source.", + "description": "OAuth required scopes: OR.Monitoring or OR.Monitoring.Read.\r\n\r\nRequired permissions: Logs.View.", + "operationId": "RobotLogs_GetTotalCount", + "parameters": [ + { + "name": "$expand", + "in": "query", + "description": "Indicates the related entities to be represented inline. The maximum depth is 2.", + "schema": { + "type": "string" + } + }, + { + "name": "$filter", + "in": "query", + "description": "Restricts the set of items returned. The maximum number of expressions is 100.", + "schema": { + "type": "string" + } + }, + { + "name": "$select", + "in": "query", + "description": "Limits the properties returned in the result.", + "schema": { + "type": "string" + } + }, + { + "name": "$orderby", + "in": "query", + "description": "Specifies the order in which items are returned. The maximum number of expressions is 5.", + "schema": { + "type": "string" + } + }, + { + "name": "$top", + "in": "query", + "description": "Limits the number of items returned from a collection. The maximum value is 1000.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "$skip", + "in": "query", + "description": "Excludes the specified number of items of the queried collection from the result.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "$count", + "in": "query", + "description": "Indicates whether the total count of items within a collection are returned in the result.", + "schema": { + "type": "boolean" + } + }, + { + "name": "X-UIPATH-OrganizationUnitId", + "in": "header", + "description": "Folder/OrganizationUnit Id", + "schema": { + "type": "integer", + "format": "int64" + } + } + ], + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ODataValueOfInt64" + } + } + } + } + }, + "security": [ + { + "OAuth2": [] + } + ] + } + }, + "/odata/RobotLogs/UiPath.Server.Configuration.OData.Reports": { + "get": { + "tags": [ + "RobotLogs" + ], + "summary": "Reports.", + "description": "OAuth required scopes: OR.Monitoring or OR.Monitoring.Read.\r\n\r\nRequired permissions: Logs.View.\r\nDEPRECATED: \r\nPlease user other means to retrieve such reports: https://docs.uipath.com/orchestrator/automation-cloud/latest/release-notes/release-notes-june-2023#deprecation-of-reports-endpoints. This endpoint will be removed in future releases.", + "operationId": "RobotLogs_Reports", + "parameters": [ + { + "name": "fileNameSubject", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "$expand", + "in": "query", + "description": "Indicates the related entities to be represented inline. The maximum depth is 2.", + "schema": { + "type": "string" + } + }, + { + "name": "$filter", + "in": "query", + "description": "Restricts the set of items returned. The maximum number of expressions is 100.", + "schema": { + "type": "string" + } + }, + { + "name": "$select", + "in": "query", + "description": "Limits the properties returned in the result.", + "schema": { + "type": "string" + } + }, + { + "name": "$orderby", + "in": "query", + "description": "Specifies the order in which items are returned. The maximum number of expressions is 5.", + "schema": { + "type": "string" + } + }, + { + "name": "$top", + "in": "query", + "description": "Limits the number of items returned from a collection. The maximum value is 1000.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "$skip", + "in": "query", + "description": "Excludes the specified number of items of the queried collection from the result.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "$count", + "in": "query", + "description": "Indicates whether the total count of items within a collection are returned in the result.", + "schema": { + "type": "boolean" + } + }, + { + "name": "X-UIPATH-OrganizationUnitId", + "in": "header", + "description": "Folder/OrganizationUnit Id", + "schema": { + "type": "integer", + "format": "int64" + } + } + ], + "responses": { + "200": { + "description": "Success", + "content": { + "application/octet-stream": { + "schema": { + "type": "string", + "format": "binary" + } + } + } + } + }, + "deprecated": true, + "security": [ + { + "OAuth2": [] + } + ] + } + }, + "/odata/Robots": { + "get": { + "tags": [ + "Robots" + ], + "summary": "Gets robots.", + "description": "OAuth required scopes: OR.Robots or OR.Robots.Read.\r\n\r\nRequired permissions: Robots.View.", + "operationId": "Robots_Get", + "parameters": [ + { + "name": "$expand", + "in": "query", + "description": "Indicates the related entities to be represented inline. The maximum depth is 2.", + "schema": { + "type": "string" + } + }, + { + "name": "$filter", + "in": "query", + "description": "Restricts the set of items returned. The maximum number of expressions is 100.", + "schema": { + "type": "string" + } + }, + { + "name": "$select", + "in": "query", + "description": "Limits the properties returned in the result.", + "schema": { + "type": "string" + } + }, + { + "name": "$orderby", + "in": "query", + "description": "Specifies the order in which items are returned. The maximum number of expressions is 5.", + "schema": { + "type": "string" + } + }, + { + "name": "$top", + "in": "query", + "description": "Limits the number of items returned from a collection. The maximum value is 1000.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "$skip", + "in": "query", + "description": "Excludes the specified number of items of the queried collection from the result.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "$count", + "in": "query", + "description": "Indicates whether the total count of items within a collection are returned in the result.", + "schema": { + "type": "boolean" + } + }, + { + "name": "X-UIPATH-OrganizationUnitId", + "in": "header", + "description": "Folder/OrganizationUnit Id", + "schema": { + "type": "integer", + "format": "int64" + } + } + ], + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ODataValueOfIEnumerableOfRobotDto" + } + } + } + } + }, + "security": [ + { + "OAuth2": [] + } + ] + }, + "post": { + "tags": [ + "Robots" + ], + "summary": "Creates a new robot.", + "description": "OAuth required scopes: OR.Robots or OR.Robots.Write.\r\n\r\nRequired permissions: (Robots.Create - Floating Robot) and (Robots.Create and Machines.View - Standard Robot).", + "operationId": "Robots_Post", + "parameters": [ + { + "name": "X-UIPATH-OrganizationUnitId", + "in": "header", + "description": "Folder/OrganizationUnit Id", + "schema": { + "type": "integer", + "format": "int64" + } + } + ], + "requestBody": { + "content": { + "application/json;odata.metadata=minimal;odata.streaming=true": { + "schema": { + "$ref": "#/components/schemas/RobotDto" + } + }, + "application/json;odata.metadata=minimal;odata.streaming=false": { + "schema": { + "$ref": "#/components/schemas/RobotDto" + } + }, + "application/json;odata.metadata=minimal": { + "schema": { + "$ref": "#/components/schemas/RobotDto" + } + }, + "application/json;odata.metadata=full;odata.streaming=true": { + "schema": { + "$ref": "#/components/schemas/RobotDto" + } + }, + "application/json;odata.metadata=full;odata.streaming=false": { + "schema": { + "$ref": "#/components/schemas/RobotDto" + } + }, + "application/json;odata.metadata=full": { + "schema": { + "$ref": "#/components/schemas/RobotDto" + } + }, + "application/json;odata.metadata=none;odata.streaming=true": { + "schema": { + "$ref": "#/components/schemas/RobotDto" + } + }, + "application/json;odata.metadata=none;odata.streaming=false": { + "schema": { + "$ref": "#/components/schemas/RobotDto" + } + }, + "application/json;odata.metadata=none": { + "schema": { + "$ref": "#/components/schemas/RobotDto" + } + }, + "application/json;odata.streaming=true": { + "schema": { + "$ref": "#/components/schemas/RobotDto" + } + }, + "application/json;odata.streaming=false": { + "schema": { + "$ref": "#/components/schemas/RobotDto" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/RobotDto" + } + }, + "application/json-patch+json": { + "schema": { + "$ref": "#/components/schemas/RobotDto" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/RobotDto" + } + } + }, + "required": false + }, + "responses": { + "201": { + "description": "Created", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RobotDto" + } + } + } + } + }, + "security": [ + { + "OAuth2": [] + } + ], + "x-codegen-request-body-name": "body" + } + }, + "/odata/Robots({key})": { + "get": { + "tags": [ + "Robots" + ], + "summary": "Gets a single robot based on its key.", + "description": "OAuth required scopes: OR.Robots or OR.Robots.Read.\r\n\r\nRequired permissions: Robots.View.", + "operationId": "Robots_GetById", + "parameters": [ + { + "name": "key", + "in": "path", + "required": true, + "schema": { + "type": "integer", + "format": "int64" + } + }, + { + "name": "$expand", + "in": "query", + "description": "Indicates the related entities to be represented inline. The maximum depth is 2.", + "schema": { + "type": "string" + } + }, + { + "name": "$select", + "in": "query", + "description": "Limits the properties returned in the result.", + "schema": { + "type": "string" + } + }, + { + "name": "X-UIPATH-OrganizationUnitId", + "in": "header", + "description": "Folder/OrganizationUnit Id", + "schema": { + "type": "integer", + "format": "int64" + } + } + ], + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RobotDto" + } + } + } + } + }, + "security": [ + { + "OAuth2": [] + } + ] + }, + "put": { + "tags": [ + "Robots" + ], + "summary": "Edits a robot based on its key.", + "description": "OAuth required scopes: OR.Robots or OR.Robots.Write.\r\n\r\nRequired permissions: Robots.Edit.", + "operationId": "Robots_PutById", + "parameters": [ + { + "name": "key", + "in": "path", + "required": true, + "schema": { + "type": "integer", + "format": "int64" + } + }, + { + "name": "X-UIPATH-OrganizationUnitId", + "in": "header", + "description": "Folder/OrganizationUnit Id", + "schema": { + "type": "integer", + "format": "int64" + } + } + ], + "requestBody": { + "content": { + "application/json;odata.metadata=minimal;odata.streaming=true": { + "schema": { + "$ref": "#/components/schemas/RobotDto" + } + }, + "application/json;odata.metadata=minimal;odata.streaming=false": { + "schema": { + "$ref": "#/components/schemas/RobotDto" + } + }, + "application/json;odata.metadata=minimal": { + "schema": { + "$ref": "#/components/schemas/RobotDto" + } + }, + "application/json;odata.metadata=full;odata.streaming=true": { + "schema": { + "$ref": "#/components/schemas/RobotDto" + } + }, + "application/json;odata.metadata=full;odata.streaming=false": { + "schema": { + "$ref": "#/components/schemas/RobotDto" + } + }, + "application/json;odata.metadata=full": { + "schema": { + "$ref": "#/components/schemas/RobotDto" + } + }, + "application/json;odata.metadata=none;odata.streaming=true": { + "schema": { + "$ref": "#/components/schemas/RobotDto" + } + }, + "application/json;odata.metadata=none;odata.streaming=false": { + "schema": { + "$ref": "#/components/schemas/RobotDto" + } + }, + "application/json;odata.metadata=none": { + "schema": { + "$ref": "#/components/schemas/RobotDto" + } + }, + "application/json;odata.streaming=true": { + "schema": { + "$ref": "#/components/schemas/RobotDto" + } + }, + "application/json;odata.streaming=false": { + "schema": { + "$ref": "#/components/schemas/RobotDto" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/RobotDto" + } + }, + "application/json-patch+json": { + "schema": { + "$ref": "#/components/schemas/RobotDto" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/RobotDto" + } + } + }, + "required": false + }, + "responses": { + "200": { + "description": "Success", + "content": {} + } + }, + "security": [ + { + "OAuth2": [] + } + ], + "x-codegen-request-body-name": "body" + }, + "delete": { + "tags": [ + "Robots" + ], + "summary": "Deletes a robot based on its key.", + "description": "OAuth required scopes: OR.Robots or OR.Robots.Write.\r\n\r\nRequired permissions: Robots.Delete.", + "operationId": "Robots_DeleteById", + "parameters": [ + { + "name": "key", + "in": "path", + "required": true, + "schema": { + "type": "integer", + "format": "int64" + } + }, + { + "name": "X-UIPATH-OrganizationUnitId", + "in": "header", + "description": "Folder/OrganizationUnit Id", + "schema": { + "type": "integer", + "format": "int64" + } + } + ], + "responses": { + "204": { + "description": "No Content", + "content": {} + } + }, + "security": [ + { + "OAuth2": [] + } + ] + }, + "patch": { + "tags": [ + "Robots" + ], + "summary": "Partially updates a robot.", + "description": "OAuth required scopes: OR.Robots or OR.Robots.Write.\r\n\r\nRequired permissions: Robots.Edit.", + "operationId": "Robots_PatchById", + "parameters": [ + { + "name": "key", + "in": "path", + "required": true, + "schema": { + "type": "integer", + "format": "int64" + } + }, + { + "name": "X-UIPATH-OrganizationUnitId", + "in": "header", + "description": "Folder/OrganizationUnit Id", + "schema": { + "type": "integer", + "format": "int64" + } + } + ], + "requestBody": { + "content": { + "application/json;odata.metadata=minimal;odata.streaming=true": { + "schema": { + "$ref": "#/components/schemas/RobotDto" + } + }, + "application/json;odata.metadata=minimal;odata.streaming=false": { + "schema": { + "$ref": "#/components/schemas/RobotDto" + } + }, + "application/json;odata.metadata=minimal": { + "schema": { + "$ref": "#/components/schemas/RobotDto" + } + }, + "application/json;odata.metadata=full;odata.streaming=true": { + "schema": { + "$ref": "#/components/schemas/RobotDto" + } + }, + "application/json;odata.metadata=full;odata.streaming=false": { + "schema": { + "$ref": "#/components/schemas/RobotDto" + } + }, + "application/json;odata.metadata=full": { + "schema": { + "$ref": "#/components/schemas/RobotDto" + } + }, + "application/json;odata.metadata=none;odata.streaming=true": { + "schema": { + "$ref": "#/components/schemas/RobotDto" + } + }, + "application/json;odata.metadata=none;odata.streaming=false": { + "schema": { + "$ref": "#/components/schemas/RobotDto" + } + }, + "application/json;odata.metadata=none": { + "schema": { + "$ref": "#/components/schemas/RobotDto" + } + }, + "application/json;odata.streaming=true": { + "schema": { + "$ref": "#/components/schemas/RobotDto" + } + }, + "application/json;odata.streaming=false": { + "schema": { + "$ref": "#/components/schemas/RobotDto" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/RobotDto" + } + }, + "application/json-patch+json": { + "schema": { + "$ref": "#/components/schemas/RobotDto" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/RobotDto" + } + } + }, + "required": false + }, + "responses": { + "200": { + "description": "Success", + "content": {} + } + }, + "security": [ + { + "OAuth2": [] + } + ], + "x-codegen-request-body-name": "body" + } + }, + "/odata/Robots/UiPath.Server.Configuration.OData.ConvertToFloating": { + "post": { + "tags": [ + "Robots" + ], + "summary": "Convert a Standard Attended Robot to a Floating Robot.", + "description": "OAuth required scopes: OR.Robots or OR.Robots.Write.\r\n\r\nRequired permissions: Robots.Edit.", + "operationId": "Robots_ConvertToFloating", + "parameters": [ + { + "name": "X-UIPATH-OrganizationUnitId", + "in": "header", + "description": "Folder/OrganizationUnit Id", + "schema": { + "type": "integer", + "format": "int64" + } + } + ], + "requestBody": { + "content": { + "application/json;odata.metadata=minimal;odata.streaming=true": { + "schema": { + "$ref": "#/components/schemas/RobotsConvertToFloatingRequest" + } + }, + "application/json;odata.metadata=minimal;odata.streaming=false": { + "schema": { + "$ref": "#/components/schemas/RobotsConvertToFloatingRequest" + } + }, + "application/json;odata.metadata=minimal": { + "schema": { + "$ref": "#/components/schemas/RobotsConvertToFloatingRequest" + } + }, + "application/json;odata.metadata=full;odata.streaming=true": { + "schema": { + "$ref": "#/components/schemas/RobotsConvertToFloatingRequest" + } + }, + "application/json;odata.metadata=full;odata.streaming=false": { + "schema": { + "$ref": "#/components/schemas/RobotsConvertToFloatingRequest" + } + }, + "application/json;odata.metadata=full": { + "schema": { + "$ref": "#/components/schemas/RobotsConvertToFloatingRequest" + } + }, + "application/json;odata.metadata=none;odata.streaming=true": { + "schema": { + "$ref": "#/components/schemas/RobotsConvertToFloatingRequest" + } + }, + "application/json;odata.metadata=none;odata.streaming=false": { + "schema": { + "$ref": "#/components/schemas/RobotsConvertToFloatingRequest" + } + }, + "application/json;odata.metadata=none": { + "schema": { + "$ref": "#/components/schemas/RobotsConvertToFloatingRequest" + } + }, + "application/json;odata.streaming=true": { + "schema": { + "$ref": "#/components/schemas/RobotsConvertToFloatingRequest" + } + }, + "application/json;odata.streaming=false": { + "schema": { + "$ref": "#/components/schemas/RobotsConvertToFloatingRequest" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/RobotsConvertToFloatingRequest" + } + }, + "application/json-patch+json": { + "schema": { + "$ref": "#/components/schemas/RobotsConvertToFloatingRequest" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/RobotsConvertToFloatingRequest" + } + } + }, + "required": false + }, + "responses": { + "200": { + "description": "Success", + "content": {} + }, + "400": { + "description": "Invalid arguments", + "content": {} + }, + "409": { + "description": "Conflict", + "content": {} + } + }, + "security": [ + { + "OAuth2": [] + } + ], + "x-codegen-request-body-name": "body" + } + }, + "/odata/Robots/UiPath.Server.Configuration.OData.DeleteBulk": { + "post": { + "tags": [ + "Robots" + ], + "summary": "Deletes multiple robots based on their keys.", + "description": "OAuth required scopes: OR.Robots or OR.Robots.Write.\r\n\r\nRequired permissions: Robots.Delete.", + "operationId": "Robots_DeleteBulk", + "parameters": [ + { + "name": "X-UIPATH-OrganizationUnitId", + "in": "header", + "description": "Folder/OrganizationUnit Id", + "schema": { + "type": "integer", + "format": "int64" + } + } + ], + "requestBody": { + "content": { + "application/json;odata.metadata=minimal;odata.streaming=true": { + "schema": { + "$ref": "#/components/schemas/RobotDeleteBulkRequest" + } + }, + "application/json;odata.metadata=minimal;odata.streaming=false": { + "schema": { + "$ref": "#/components/schemas/RobotDeleteBulkRequest" + } + }, + "application/json;odata.metadata=minimal": { + "schema": { + "$ref": "#/components/schemas/RobotDeleteBulkRequest" + } + }, + "application/json;odata.metadata=full;odata.streaming=true": { + "schema": { + "$ref": "#/components/schemas/RobotDeleteBulkRequest" + } + }, + "application/json;odata.metadata=full;odata.streaming=false": { + "schema": { + "$ref": "#/components/schemas/RobotDeleteBulkRequest" + } + }, + "application/json;odata.metadata=full": { + "schema": { + "$ref": "#/components/schemas/RobotDeleteBulkRequest" + } + }, + "application/json;odata.metadata=none;odata.streaming=true": { + "schema": { + "$ref": "#/components/schemas/RobotDeleteBulkRequest" + } + }, + "application/json;odata.metadata=none;odata.streaming=false": { + "schema": { + "$ref": "#/components/schemas/RobotDeleteBulkRequest" + } + }, + "application/json;odata.metadata=none": { + "schema": { + "$ref": "#/components/schemas/RobotDeleteBulkRequest" + } + }, + "application/json;odata.streaming=true": { + "schema": { + "$ref": "#/components/schemas/RobotDeleteBulkRequest" + } + }, + "application/json;odata.streaming=false": { + "schema": { + "$ref": "#/components/schemas/RobotDeleteBulkRequest" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/RobotDeleteBulkRequest" + } + }, + "application/json-patch+json": { + "schema": { + "$ref": "#/components/schemas/RobotDeleteBulkRequest" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/RobotDeleteBulkRequest" + } + } + }, + "required": false + }, + "responses": { + "204": { + "description": "No Content", + "content": {} + }, + "400": { + "description": "Empty robotIds collection in payload", + "content": {} + } + }, + "security": [ + { + "OAuth2": [] + } + ], + "x-codegen-request-body-name": "body" + } + }, + "/odata/Robots/UiPath.Server.Configuration.OData.FindAllAcrossFolders": { + "get": { + "tags": [ + "Robots" + ], + "summary": "Get robots across all accessible folders.", + "description": "OAuth required scopes: OR.Robots or OR.Robots.Read.\r\n\r\nRequired permissions: Robots.View or Users.View or Machines.Create or Machines.Edit.", + "operationId": "Robots_FindAllAcrossFolders", + "parameters": [ + { + "name": "$expand", + "in": "query", + "description": "Indicates the related entities to be represented inline. The maximum depth is 2.", + "schema": { + "type": "string" + } + }, + { + "name": "$filter", + "in": "query", + "description": "Restricts the set of items returned. The maximum number of expressions is 100.", + "schema": { + "type": "string" + } + }, + { + "name": "$select", + "in": "query", + "description": "Limits the properties returned in the result.", + "schema": { + "type": "string" + } + }, + { + "name": "$orderby", + "in": "query", + "description": "Specifies the order in which items are returned. The maximum number of expressions is 5.", + "schema": { + "type": "string" + } + }, + { + "name": "$top", + "in": "query", + "description": "Limits the number of items returned from a collection. The maximum value is 1000.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "$skip", + "in": "query", + "description": "Excludes the specified number of items of the queried collection from the result.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "$count", + "in": "query", + "description": "Indicates whether the total count of items within a collection are returned in the result.", + "schema": { + "type": "boolean" + } + }, + { + "name": "X-UIPATH-OrganizationUnitId", + "in": "header", + "description": "Folder/OrganizationUnit Id", + "schema": { + "type": "integer", + "format": "int64" + } + } + ], + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ODataValueOfIEnumerableOfExtendedRobotDto" + } + } + } + } + }, + "security": [ + { + "OAuth2": [] + } + ] + } + }, + "/odata/Robots/UiPath.Server.Configuration.OData.GetConfiguredRobots": { + "get": { + "tags": [ + "Robots" + ], + "summary": "Gets robots autoprovisioned from users", + "description": "OAuth required scopes: OR.Robots or OR.Robots.Read.\r\n\r\nRequired permissions: (Users.View - Required only when the robot's user is expanded) and (Robots.View).", + "operationId": "Robots_GetConfiguredRobots", + "parameters": [ + { + "name": "$expand", + "in": "query", + "description": "Indicates the related entities to be represented inline. The maximum depth is 2.", + "schema": { + "type": "string" + } + }, + { + "name": "$filter", + "in": "query", + "description": "Restricts the set of items returned. The maximum number of expressions is 100.", + "schema": { + "type": "string" + } + }, + { + "name": "$select", + "in": "query", + "description": "Limits the properties returned in the result.", + "schema": { + "type": "string" + } + }, + { + "name": "$orderby", + "in": "query", + "description": "Specifies the order in which items are returned. The maximum number of expressions is 5.", + "schema": { + "type": "string" + } + }, + { + "name": "$top", + "in": "query", + "description": "Limits the number of items returned from a collection. The maximum value is 1000.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "$skip", + "in": "query", + "description": "Excludes the specified number of items of the queried collection from the result.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "$count", + "in": "query", + "description": "Indicates whether the total count of items within a collection are returned in the result.", + "schema": { + "type": "boolean" + } + }, + { + "name": "X-UIPATH-OrganizationUnitId", + "in": "header", + "description": "Folder/OrganizationUnit Id", + "schema": { + "type": "integer", + "format": "int64" + } + } + ], + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ODataValueOfIEnumerableOfExtendedRobotDto" + } + } + } + } + }, + "security": [ + { + "OAuth2": [] + } + ] + } + }, + "/odata/Robots/UiPath.Server.Configuration.OData.GetFolderRobots(folderId={folderId},machineId={machineId})": { + "get": { + "tags": [ + "Robots" + ], + "summary": "Get folder robots", + "description": "OAuth required scopes: OR.Robots or OR.Robots.Read.\r\n\r\nRequired permissions: (SubFolders.View or Units.View or Jobs.Create).", + "operationId": "Robots_GetFolderRobotsByFolderidAndMachineid", + "parameters": [ + { + "name": "folderId", + "in": "path", + "required": true, + "schema": { + "type": "integer", + "format": "int64" + } + }, + { + "name": "machineId", + "in": "path", + "required": true, + "schema": { + "type": "integer", + "format": "int64" + } + }, + { + "name": "$expand", + "in": "query", + "description": "Indicates the related entities to be represented inline. The maximum depth is 2.", + "schema": { + "type": "string" + } + }, + { + "name": "$filter", + "in": "query", + "description": "Restricts the set of items returned. The maximum number of expressions is 100.", + "schema": { + "type": "string" + } + }, + { + "name": "$select", + "in": "query", + "description": "Limits the properties returned in the result.", + "schema": { + "type": "string" + } + }, + { + "name": "$orderby", + "in": "query", + "description": "Specifies the order in which items are returned. The maximum number of expressions is 5.", + "schema": { + "type": "string" + } + }, + { + "name": "$top", + "in": "query", + "description": "Limits the number of items returned from a collection. The maximum value is 1000.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "$skip", + "in": "query", + "description": "Excludes the specified number of items of the queried collection from the result.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "$count", + "in": "query", + "description": "Indicates whether the total count of items within a collection are returned in the result.", + "schema": { + "type": "boolean" + } + }, + { + "name": "X-UIPATH-OrganizationUnitId", + "in": "header", + "description": "Folder/OrganizationUnit Id", + "schema": { + "type": "integer", + "format": "int64" + } + } + ], + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ODataValueOfIEnumerableOfExtendedRobotDto" + } + } + } + } + }, + "security": [ + { + "OAuth2": [] + } + ] + } + }, + "/odata/Robots/UiPath.Server.Configuration.OData.GetMachineNameToLicenseKeyMappings": { + "get": { + "tags": [ + "Robots" + ], + "summary": "Gets machine name to license key mapping.", + "description": "OAuth required scopes: OR.Robots or OR.Robots.Read.\r\n\r\nRequired permissions: Robots.Create and Machines.View.", + "operationId": "Robots_GetMachineNameToLicenseKeyMappings", + "parameters": [ + { + "name": "$expand", + "in": "query", + "description": "Indicates the related entities to be represented inline. The maximum depth is 2.", + "schema": { + "type": "string" + } + }, + { + "name": "$filter", + "in": "query", + "description": "Restricts the set of items returned. The maximum number of expressions is 100.", + "schema": { + "type": "string" + } + }, + { + "name": "$select", + "in": "query", + "description": "Limits the properties returned in the result.", + "schema": { + "type": "string" + } + }, + { + "name": "$orderby", + "in": "query", + "description": "Specifies the order in which items are returned. The maximum number of expressions is 5.", + "schema": { + "type": "string" + } + }, + { + "name": "$count", + "in": "query", + "description": "Indicates whether the total count of items within a collection are returned in the result.", + "schema": { + "type": "boolean" + } + }, + { + "name": "X-UIPATH-OrganizationUnitId", + "in": "header", + "description": "Folder/OrganizationUnit Id", + "schema": { + "type": "integer", + "format": "int64" + } + } + ], + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ODataValueOfIEnumerableOfKeyValuePairOfStringString" + } + } + } + } + }, + "security": [ + { + "OAuth2": [] + } + ] + } + }, + "/odata/Robots/UiPath.Server.Configuration.OData.GetRobotsForProcess(processId='{processId}')": { + "get": { + "tags": [ + "Robots" + ], + "summary": "Returns a collection of all robots that can execute the process with the provided Id.", + "description": "OAuth required scopes: OR.Robots or OR.Robots.Read.\r\n\r\nRequired permissions: Robots.View and Environments.View and Processes.View.", + "operationId": "Robots_GetRobotsForProcessByProcessid", + "parameters": [ + { + "name": "processId", + "in": "path", + "description": "The Id of the process for which the robots are fetched.", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "$expand", + "in": "query", + "description": "Indicates the related entities to be represented inline. The maximum depth is 2.", + "schema": { + "type": "string" + } + }, + { + "name": "$filter", + "in": "query", + "description": "Restricts the set of items returned. The maximum number of expressions is 100.", + "schema": { + "type": "string" + } + }, + { + "name": "$select", + "in": "query", + "description": "Limits the properties returned in the result.", + "schema": { + "type": "string" + } + }, + { + "name": "$orderby", + "in": "query", + "description": "Specifies the order in which items are returned. The maximum number of expressions is 5.", + "schema": { + "type": "string" + } + }, + { + "name": "$top", + "in": "query", + "description": "Limits the number of items returned from a collection. The maximum value is 1000.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "$skip", + "in": "query", + "description": "Excludes the specified number of items of the queried collection from the result.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "$count", + "in": "query", + "description": "Indicates whether the total count of items within a collection are returned in the result.", + "schema": { + "type": "boolean" + } + }, + { + "name": "X-UIPATH-OrganizationUnitId", + "in": "header", + "description": "Folder/OrganizationUnit Id", + "schema": { + "type": "integer", + "format": "int64" + } + } + ], + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ODataValueOfIEnumerableOfRobotDto" + } + } + } + } + }, + "security": [ + { + "OAuth2": [] + } + ] + } + }, + "/odata/Robots/UiPath.Server.Configuration.OData.GetRobotsFromFolder(folderId={folderId})": { + "get": { + "tags": [ + "Robots" + ], + "summary": "Gets all robots from a folder", + "description": "OAuth required scopes: OR.Robots or OR.Robots.Read.\r\n\r\nRequired permissions: (SubFolders.View or Units.View or Jobs.Create or Users.View).", + "operationId": "Robots_GetRobotsFromFolderByFolderid", + "parameters": [ + { + "name": "folderId", + "in": "path", + "required": true, + "schema": { + "type": "integer", + "format": "int64" + } + }, + { + "name": "machineId", + "in": "query", + "schema": { + "type": "integer", + "format": "int64" + } + }, + { + "name": "$expand", + "in": "query", + "description": "Indicates the related entities to be represented inline. The maximum depth is 2.", + "schema": { + "type": "string" + } + }, + { + "name": "$filter", + "in": "query", + "description": "Restricts the set of items returned. The maximum number of expressions is 100.", + "schema": { + "type": "string" + } + }, + { + "name": "$select", + "in": "query", + "description": "Limits the properties returned in the result.", + "schema": { + "type": "string" + } + }, + { + "name": "$orderby", + "in": "query", + "description": "Specifies the order in which items are returned. The maximum number of expressions is 5.", + "schema": { + "type": "string" + } + }, + { + "name": "$top", + "in": "query", + "description": "Limits the number of items returned from a collection. The maximum value is 1000.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "$skip", + "in": "query", + "description": "Excludes the specified number of items of the queried collection from the result.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "$count", + "in": "query", + "description": "Indicates whether the total count of items within a collection are returned in the result.", + "schema": { + "type": "boolean" + } + }, + { + "name": "X-UIPATH-OrganizationUnitId", + "in": "header", + "description": "Folder/OrganizationUnit Id", + "schema": { + "type": "integer", + "format": "int64" + } + } + ], + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ODataValueOfIEnumerableOfRobotsFromFolderModel" + } + } + } + } + }, + "security": [ + { + "OAuth2": [] + } + ] + } + }, + "/odata/Robots/UiPath.Server.Configuration.OData.GetUsernames": { + "get": { + "tags": [ + "Robots" + ], + "summary": "Gets usernames.", + "description": "OAuth required scopes: OR.Robots or OR.Robots.Read.\r\n\r\nRequired permissions: Robots.View.", + "operationId": "Robots_GetUsernames", + "parameters": [ + { + "name": "$expand", + "in": "query", + "description": "Indicates the related entities to be represented inline. The maximum depth is 2.", + "schema": { + "type": "string" + } + }, + { + "name": "$filter", + "in": "query", + "description": "Restricts the set of items returned. The maximum number of expressions is 100.", + "schema": { + "type": "string" + } + }, + { + "name": "$select", + "in": "query", + "description": "Limits the properties returned in the result.", + "schema": { + "type": "string" + } + }, + { + "name": "$orderby", + "in": "query", + "description": "Specifies the order in which items are returned. The maximum number of expressions is 5.", + "schema": { + "type": "string" + } + }, + { + "name": "$top", + "in": "query", + "description": "Limits the number of items returned from a collection. The maximum value is 1000.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "$skip", + "in": "query", + "description": "Excludes the specified number of items of the queried collection from the result.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "$count", + "in": "query", + "description": "Indicates whether the total count of items within a collection are returned in the result.", + "schema": { + "type": "boolean" + } + }, + { + "name": "X-UIPATH-OrganizationUnitId", + "in": "header", + "description": "Folder/OrganizationUnit Id", + "schema": { + "type": "integer", + "format": "int64" + } + } + ], + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ODataValueOfIEnumerableOfString" + } + } + } + } + }, + "security": [ + { + "OAuth2": [] + } + ] + } + }, + "/odata/Robots/UiPath.Server.Configuration.OData.ToggleEnabledStatus": { + "post": { + "tags": [ + "Robots" + ], + "summary": "Toggles the status of the robots (enabled/disabled)", + "description": "OAuth required scopes: OR.Robots or OR.Robots.Write.\r\n\r\nRequired permissions: Robots.Edit.", + "operationId": "Robots_ToggleEnabledStatus", + "parameters": [ + { + "name": "X-UIPATH-OrganizationUnitId", + "in": "header", + "description": "Folder/OrganizationUnit Id", + "schema": { + "type": "integer", + "format": "int64" + } + } + ], + "requestBody": { + "description": " disabled - If true the robots will be enabled, if false the robots will be disabled.\r\n robotIds - The collection of ids of the affected robots.", + "content": { + "application/json;odata.metadata=minimal;odata.streaming=true": { + "schema": { + "$ref": "#/components/schemas/RobotsToggleEnabledStatusRequest" + } + }, + "application/json;odata.metadata=minimal;odata.streaming=false": { + "schema": { + "$ref": "#/components/schemas/RobotsToggleEnabledStatusRequest" + } + }, + "application/json;odata.metadata=minimal": { + "schema": { + "$ref": "#/components/schemas/RobotsToggleEnabledStatusRequest" + } + }, + "application/json;odata.metadata=full;odata.streaming=true": { + "schema": { + "$ref": "#/components/schemas/RobotsToggleEnabledStatusRequest" + } + }, + "application/json;odata.metadata=full;odata.streaming=false": { + "schema": { + "$ref": "#/components/schemas/RobotsToggleEnabledStatusRequest" + } + }, + "application/json;odata.metadata=full": { + "schema": { + "$ref": "#/components/schemas/RobotsToggleEnabledStatusRequest" + } + }, + "application/json;odata.metadata=none;odata.streaming=true": { + "schema": { + "$ref": "#/components/schemas/RobotsToggleEnabledStatusRequest" + } + }, + "application/json;odata.metadata=none;odata.streaming=false": { + "schema": { + "$ref": "#/components/schemas/RobotsToggleEnabledStatusRequest" + } + }, + "application/json;odata.metadata=none": { + "schema": { + "$ref": "#/components/schemas/RobotsToggleEnabledStatusRequest" + } + }, + "application/json;odata.streaming=true": { + "schema": { + "$ref": "#/components/schemas/RobotsToggleEnabledStatusRequest" + } + }, + "application/json;odata.streaming=false": { + "schema": { + "$ref": "#/components/schemas/RobotsToggleEnabledStatusRequest" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/RobotsToggleEnabledStatusRequest" + } + }, + "application/json-patch+json": { + "schema": { + "$ref": "#/components/schemas/RobotsToggleEnabledStatusRequest" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/RobotsToggleEnabledStatusRequest" + } + } + }, + "required": false + }, + "responses": { + "200": { + "description": "Success", + "content": {} + } + }, + "security": [ + { + "OAuth2": [] + } + ], + "x-codegen-request-body-name": "body" + } + }, + "/odata/Roles": { + "get": { + "tags": [ + "Roles" + ], + "summary": "Gets roles.", + "description": "OAuth required scopes: OR.Users or OR.Users.Read.\r\n\r\nRequired permissions: Roles.View or Units.Edit or SubFolders.Edit.", + "operationId": "Roles_Get", + "parameters": [ + { + "name": "$expand", + "in": "query", + "description": "Indicates the related entities to be represented inline. The maximum depth is 2.", + "schema": { + "type": "string" + } + }, + { + "name": "$filter", + "in": "query", + "description": "Restricts the set of items returned. The maximum number of expressions is 100.", + "schema": { + "type": "string" + } + }, + { + "name": "$select", + "in": "query", + "description": "Limits the properties returned in the result.", + "schema": { + "type": "string" + } + }, + { + "name": "$orderby", + "in": "query", + "description": "Specifies the order in which items are returned. The maximum number of expressions is 5.", + "schema": { + "type": "string" + } + }, + { + "name": "$top", + "in": "query", + "description": "Limits the number of items returned from a collection. The maximum value is 1000.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "$skip", + "in": "query", + "description": "Excludes the specified number of items of the queried collection from the result.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "$count", + "in": "query", + "description": "Indicates whether the total count of items within a collection are returned in the result.", + "schema": { + "type": "boolean" + } + } + ], + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ODataValueOfIEnumerableOfRoleDto" + } + } + } + } + }, + "security": [ + { + "OAuth2": [] + } + ] + }, + "post": { + "tags": [ + "Roles" + ], + "summary": "Creates a new role - Creating mixed roles will not be supported in 21.10", + "description": "OAuth required scopes: OR.Users or OR.Users.Write.\r\n\r\nRequired permissions: Roles.Create.", + "operationId": "Roles_Post", + "requestBody": { + "content": { + "application/json;odata.metadata=minimal;odata.streaming=true": { + "schema": { + "$ref": "#/components/schemas/RoleDto" + } + }, + "application/json;odata.metadata=minimal;odata.streaming=false": { + "schema": { + "$ref": "#/components/schemas/RoleDto" + } + }, + "application/json;odata.metadata=minimal": { + "schema": { + "$ref": "#/components/schemas/RoleDto" + } + }, + "application/json;odata.metadata=full;odata.streaming=true": { + "schema": { + "$ref": "#/components/schemas/RoleDto" + } + }, + "application/json;odata.metadata=full;odata.streaming=false": { + "schema": { + "$ref": "#/components/schemas/RoleDto" + } + }, + "application/json;odata.metadata=full": { + "schema": { + "$ref": "#/components/schemas/RoleDto" + } + }, + "application/json;odata.metadata=none;odata.streaming=true": { + "schema": { + "$ref": "#/components/schemas/RoleDto" + } + }, + "application/json;odata.metadata=none;odata.streaming=false": { + "schema": { + "$ref": "#/components/schemas/RoleDto" + } + }, + "application/json;odata.metadata=none": { + "schema": { + "$ref": "#/components/schemas/RoleDto" + } + }, + "application/json;odata.streaming=true": { + "schema": { + "$ref": "#/components/schemas/RoleDto" + } + }, + "application/json;odata.streaming=false": { + "schema": { + "$ref": "#/components/schemas/RoleDto" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/RoleDto" + } + }, + "application/json-patch+json": { + "schema": { + "$ref": "#/components/schemas/RoleDto" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/RoleDto" + } + } + }, + "required": false + }, + "responses": { + "201": { + "description": "Created", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RoleDto" + } + } + } + } + }, + "security": [ + { + "OAuth2": [] + } + ], + "x-codegen-request-body-name": "body" + } + }, + "/odata/Roles({key})": { + "get": { + "tags": [ + "Roles" + ], + "summary": "Gets role based on its id.", + "description": "OAuth required scopes: OR.Users or OR.Users.Read.\r\n\r\nRequired permissions: Roles.View.", + "operationId": "Roles_GetById", + "parameters": [ + { + "name": "key", + "in": "path", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "$expand", + "in": "query", + "description": "Indicates the related entities to be represented inline. The maximum depth is 2.", + "schema": { + "type": "string" + } + }, + { + "name": "$select", + "in": "query", + "description": "Limits the properties returned in the result.", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RoleDto" + } + } + } + } + }, + "security": [ + { + "OAuth2": [] + } + ] + }, + "put": { + "tags": [ + "Roles" + ], + "summary": "Edits a role.", + "description": "OAuth required scopes: OR.Users or OR.Users.Write.\r\n\r\nRequired permissions: Roles.Edit.", + "operationId": "Roles_PutById", + "parameters": [ + { + "name": "key", + "in": "path", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "requestBody": { + "content": { + "application/json;odata.metadata=minimal;odata.streaming=true": { + "schema": { + "$ref": "#/components/schemas/RoleDto" + } + }, + "application/json;odata.metadata=minimal;odata.streaming=false": { + "schema": { + "$ref": "#/components/schemas/RoleDto" + } + }, + "application/json;odata.metadata=minimal": { + "schema": { + "$ref": "#/components/schemas/RoleDto" + } + }, + "application/json;odata.metadata=full;odata.streaming=true": { + "schema": { + "$ref": "#/components/schemas/RoleDto" + } + }, + "application/json;odata.metadata=full;odata.streaming=false": { + "schema": { + "$ref": "#/components/schemas/RoleDto" + } + }, + "application/json;odata.metadata=full": { + "schema": { + "$ref": "#/components/schemas/RoleDto" + } + }, + "application/json;odata.metadata=none;odata.streaming=true": { + "schema": { + "$ref": "#/components/schemas/RoleDto" + } + }, + "application/json;odata.metadata=none;odata.streaming=false": { + "schema": { + "$ref": "#/components/schemas/RoleDto" + } + }, + "application/json;odata.metadata=none": { + "schema": { + "$ref": "#/components/schemas/RoleDto" + } + }, + "application/json;odata.streaming=true": { + "schema": { + "$ref": "#/components/schemas/RoleDto" + } + }, + "application/json;odata.streaming=false": { + "schema": { + "$ref": "#/components/schemas/RoleDto" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/RoleDto" + } + }, + "application/json-patch+json": { + "schema": { + "$ref": "#/components/schemas/RoleDto" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/RoleDto" + } + } + }, + "required": false + }, + "responses": { + "200": { + "description": "Success", + "content": {} + } + }, + "security": [ + { + "OAuth2": [] + } + ], + "x-codegen-request-body-name": "body" + }, + "delete": { + "tags": [ + "Roles" + ], + "summary": "Deletes a role.", + "description": "OAuth required scopes: OR.Users or OR.Users.Write.\r\n\r\nRequired permissions: Roles.Delete.", + "operationId": "Roles_DeleteById", + "parameters": [ + { + "name": "key", + "in": "path", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "responses": { + "204": { + "description": "No Content", + "content": {} + } + }, + "security": [ + { + "OAuth2": [] + } + ] + } + }, + "/odata/Roles({key})/UiPath.Server.Configuration.OData.SetUsers": { + "post": { + "tags": [ + "Roles" + ], + "summary": "Associates a group of users with and dissociates another group of users from the given role.", + "description": "OAuth required scopes: OR.Users or OR.Users.Write.\r\n\r\nRequired permissions: Roles.Edit and Users.View.", + "operationId": "Roles_SetUsersById", + "parameters": [ + { + "name": "key", + "in": "path", + "description": "The role id.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "requestBody": { + "description": "addedUserIds - The id of the users to be associated with the role.\r\n removedUserIds - The id of the users to be dissociated from the role.", + "content": { + "application/json;odata.metadata=minimal;odata.streaming=true": { + "schema": { + "$ref": "#/components/schemas/SetUsersRequest" + } + }, + "application/json;odata.metadata=minimal;odata.streaming=false": { + "schema": { + "$ref": "#/components/schemas/SetUsersRequest" + } + }, + "application/json;odata.metadata=minimal": { + "schema": { + "$ref": "#/components/schemas/SetUsersRequest" + } + }, + "application/json;odata.metadata=full;odata.streaming=true": { + "schema": { + "$ref": "#/components/schemas/SetUsersRequest" + } + }, + "application/json;odata.metadata=full;odata.streaming=false": { + "schema": { + "$ref": "#/components/schemas/SetUsersRequest" + } + }, + "application/json;odata.metadata=full": { + "schema": { + "$ref": "#/components/schemas/SetUsersRequest" + } + }, + "application/json;odata.metadata=none;odata.streaming=true": { + "schema": { + "$ref": "#/components/schemas/SetUsersRequest" + } + }, + "application/json;odata.metadata=none;odata.streaming=false": { + "schema": { + "$ref": "#/components/schemas/SetUsersRequest" + } + }, + "application/json;odata.metadata=none": { + "schema": { + "$ref": "#/components/schemas/SetUsersRequest" + } + }, + "application/json;odata.streaming=true": { + "schema": { + "$ref": "#/components/schemas/SetUsersRequest" + } + }, + "application/json;odata.streaming=false": { + "schema": { + "$ref": "#/components/schemas/SetUsersRequest" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/SetUsersRequest" + } + }, + "application/json-patch+json": { + "schema": { + "$ref": "#/components/schemas/SetUsersRequest" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/SetUsersRequest" + } + } + }, + "required": false + }, + "responses": { + "204": { + "description": "Nothing returned", + "content": {} + } + }, + "security": [ + { + "OAuth2": [] + } + ], + "x-codegen-request-body-name": "body" + } + }, + "/odata/Roles/UiPath.Server.Configuration.OData.GetUserIdsForRole(key={key})": { + "get": { + "tags": [ + "Roles" + ], + "summary": "Returns a collection of all the ids of the users associated to a role based on role Id.", + "description": "OAuth required scopes: OR.Users or OR.Users.Read.\r\n\r\nRequired permissions: Roles.View or Users.View.", + "operationId": "Roles_GetUserIdsForRoleByKey", + "parameters": [ + { + "name": "key", + "in": "path", + "description": "The Id of the role for which the robot ids are fetched.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "$expand", + "in": "query", + "description": "Indicates the related entities to be represented inline. The maximum depth is 2.", + "schema": { + "type": "string" + } + }, + { + "name": "$filter", + "in": "query", + "description": "Restricts the set of items returned. The maximum number of expressions is 100.", + "schema": { + "type": "string" + } + }, + { + "name": "$select", + "in": "query", + "description": "Limits the properties returned in the result.", + "schema": { + "type": "string" + } + }, + { + "name": "$orderby", + "in": "query", + "description": "Specifies the order in which items are returned. The maximum number of expressions is 5.", + "schema": { + "type": "string" + } + }, + { + "name": "$count", + "in": "query", + "description": "Indicates whether the total count of items within a collection are returned in the result.", + "schema": { + "type": "boolean" + } + } + ], + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ODataValueOfIEnumerableOfInt64" + } + } + } + } + }, + "security": [ + { + "OAuth2": [] + } + ] + } + }, + "/odata/Roles/UiPath.Server.Configuration.OData.GetUsersForRole(key={key})": { + "get": { + "tags": [ + "Roles" + ], + "summary": "Returns a collection of all users and, if no other sorting is provided, will place first those associated to a role.Allows odata query options.", + "description": "OAuth required scopes: OR.Users or OR.Users.Read.\r\n\r\nRequired permissions: Roles.View and Users.View.", + "operationId": "Roles_GetUsersForRoleByKey", + "parameters": [ + { + "name": "key", + "in": "path", + "description": "The Id of the role for which the associated users are placed first.", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "$expand", + "in": "query", + "description": "Indicates the related entities to be represented inline. The maximum depth is 2.", + "schema": { + "type": "string" + } + }, + { + "name": "$filter", + "in": "query", + "description": "Restricts the set of items returned. The maximum number of expressions is 100.", + "schema": { + "type": "string" + } + }, + { + "name": "$select", + "in": "query", + "description": "Limits the properties returned in the result.", + "schema": { + "type": "string" + } + }, + { + "name": "$orderby", + "in": "query", + "description": "Specifies the order in which items are returned. The maximum number of expressions is 5.", + "schema": { + "type": "string" + } + }, + { + "name": "$top", + "in": "query", + "description": "Limits the number of items returned from a collection. The maximum value is 1000.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "$skip", + "in": "query", + "description": "Excludes the specified number of items of the queried collection from the result.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "$count", + "in": "query", + "description": "Indicates whether the total count of items within a collection are returned in the result.", + "schema": { + "type": "boolean" + } + } + ], + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ODataValueOfIEnumerableOfUserDto" + } + } + } + } + }, + "security": [ + { + "OAuth2": [] + } + ] + } + }, + "/odata/Sessions": { + "get": { + "tags": [ + "Sessions" + ], + "summary": "Gets the sessions for the current folder.", + "description": "OAuth required scopes: OR.Robots or OR.Robots.Read.\r\n\r\nRequired permissions: Robots.View.", + "operationId": "Sessions_Get", + "parameters": [ + { + "name": "$expand", + "in": "query", + "description": "Indicates the related entities to be represented inline. The maximum depth is 2.", + "schema": { + "type": "string" + } + }, + { + "name": "$filter", + "in": "query", + "description": "Restricts the set of items returned. The maximum number of expressions is 100.", + "schema": { + "type": "string" + } + }, + { + "name": "$select", + "in": "query", + "description": "Limits the properties returned in the result.", + "schema": { + "type": "string" + } + }, + { + "name": "$orderby", + "in": "query", + "description": "Specifies the order in which items are returned. The maximum number of expressions is 5.", + "schema": { + "type": "string" + } + }, + { + "name": "$top", + "in": "query", + "description": "Limits the number of items returned from a collection. The maximum value is 1000.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "$skip", + "in": "query", + "description": "Excludes the specified number of items of the queried collection from the result.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "$count", + "in": "query", + "description": "Indicates whether the total count of items within a collection are returned in the result.", + "schema": { + "type": "boolean" + } + }, + { + "name": "X-UIPATH-OrganizationUnitId", + "in": "header", + "description": "Folder/OrganizationUnit Id", + "schema": { + "type": "integer", + "format": "int64" + } + } + ], + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ODataValueOfIEnumerableOfSessionDto" + } + } + } + } + }, + "security": [ + { + "OAuth2": [] + } + ] + } + }, + "/odata/Sessions({key})/UiPath.Server.Configuration.OData.ToggleMachineSessionDebugMode": { + "post": { + "tags": [ + "Sessions" + ], + "summary": "Toggles the debug mode for the specified machine session", + "description": "OAuth required scopes: OR.Robots or OR.Robots.Write.\r\n\r\nRequired permissions: Robots.Edit.", + "operationId": "Sessions_ToggleMachineSessionDebugModeById", + "parameters": [ + { + "name": "key", + "in": "path", + "required": true, + "schema": { + "type": "integer", + "format": "int64" + } + } + ], + "requestBody": { + "content": { + "application/json;odata.metadata=minimal;odata.streaming=true": { + "schema": { + "$ref": "#/components/schemas/SessionsToggleMachineSessionDebugModeRequest" + } + }, + "application/json;odata.metadata=minimal;odata.streaming=false": { + "schema": { + "$ref": "#/components/schemas/SessionsToggleMachineSessionDebugModeRequest" + } + }, + "application/json;odata.metadata=minimal": { + "schema": { + "$ref": "#/components/schemas/SessionsToggleMachineSessionDebugModeRequest" + } + }, + "application/json;odata.metadata=full;odata.streaming=true": { + "schema": { + "$ref": "#/components/schemas/SessionsToggleMachineSessionDebugModeRequest" + } + }, + "application/json;odata.metadata=full;odata.streaming=false": { + "schema": { + "$ref": "#/components/schemas/SessionsToggleMachineSessionDebugModeRequest" + } + }, + "application/json;odata.metadata=full": { + "schema": { + "$ref": "#/components/schemas/SessionsToggleMachineSessionDebugModeRequest" + } + }, + "application/json;odata.metadata=none;odata.streaming=true": { + "schema": { + "$ref": "#/components/schemas/SessionsToggleMachineSessionDebugModeRequest" + } + }, + "application/json;odata.metadata=none;odata.streaming=false": { + "schema": { + "$ref": "#/components/schemas/SessionsToggleMachineSessionDebugModeRequest" + } + }, + "application/json;odata.metadata=none": { + "schema": { + "$ref": "#/components/schemas/SessionsToggleMachineSessionDebugModeRequest" + } + }, + "application/json;odata.streaming=true": { + "schema": { + "$ref": "#/components/schemas/SessionsToggleMachineSessionDebugModeRequest" + } + }, + "application/json;odata.streaming=false": { + "schema": { + "$ref": "#/components/schemas/SessionsToggleMachineSessionDebugModeRequest" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/SessionsToggleMachineSessionDebugModeRequest" + } + }, + "application/json-patch+json": { + "schema": { + "$ref": "#/components/schemas/SessionsToggleMachineSessionDebugModeRequest" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/SessionsToggleMachineSessionDebugModeRequest" + } + } + }, + "required": false + }, + "responses": { + "204": { + "description": "No Content", + "content": {} + }, + "400": { + "description": "Bad Request", + "content": {} + } + }, + "security": [ + { + "OAuth2": [] + } + ], + "x-codegen-request-body-name": "body" + } + }, + "/odata/Sessions/UiPath.Server.Configuration.OData.DeleteInactiveUnattendedSessions": { + "post": { + "tags": [ + "Sessions" + ], + "summary": "Deletes disconnected or unresponsive sessions", + "description": "OAuth required scopes: OR.Robots or OR.Robots.Write.\r\n\r\nRequired permissions: Robots.Delete.", + "operationId": "Sessions_DeleteInactiveUnattendedSessions", + "requestBody": { + "content": { + "application/json;odata.metadata=minimal;odata.streaming=true": { + "schema": { + "$ref": "#/components/schemas/DeleteInactiveSessionsParameters" + } + }, + "application/json;odata.metadata=minimal;odata.streaming=false": { + "schema": { + "$ref": "#/components/schemas/DeleteInactiveSessionsParameters" + } + }, + "application/json;odata.metadata=minimal": { + "schema": { + "$ref": "#/components/schemas/DeleteInactiveSessionsParameters" + } + }, + "application/json;odata.metadata=full;odata.streaming=true": { + "schema": { + "$ref": "#/components/schemas/DeleteInactiveSessionsParameters" + } + }, + "application/json;odata.metadata=full;odata.streaming=false": { + "schema": { + "$ref": "#/components/schemas/DeleteInactiveSessionsParameters" + } + }, + "application/json;odata.metadata=full": { + "schema": { + "$ref": "#/components/schemas/DeleteInactiveSessionsParameters" + } + }, + "application/json;odata.metadata=none;odata.streaming=true": { + "schema": { + "$ref": "#/components/schemas/DeleteInactiveSessionsParameters" + } + }, + "application/json;odata.metadata=none;odata.streaming=false": { + "schema": { + "$ref": "#/components/schemas/DeleteInactiveSessionsParameters" + } + }, + "application/json;odata.metadata=none": { + "schema": { + "$ref": "#/components/schemas/DeleteInactiveSessionsParameters" + } + }, + "application/json;odata.streaming=true": { + "schema": { + "$ref": "#/components/schemas/DeleteInactiveSessionsParameters" + } + }, + "application/json;odata.streaming=false": { + "schema": { + "$ref": "#/components/schemas/DeleteInactiveSessionsParameters" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/DeleteInactiveSessionsParameters" + } + }, + "application/json-patch+json": { + "schema": { + "$ref": "#/components/schemas/DeleteInactiveSessionsParameters" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/DeleteInactiveSessionsParameters" + } + } + }, + "required": false + }, + "responses": { + "204": { + "description": "No Content", + "content": {} + } + }, + "security": [ + { + "OAuth2": [] + } + ], + "x-codegen-request-body-name": "body" + } + }, + "/odata/Sessions/UiPath.Server.Configuration.OData.GetGlobalSessions": { + "get": { + "tags": [ + "Sessions" + ], + "summary": "Gets all the tenant sessions.", + "description": "OAuth required scopes: OR.Robots or OR.Robots.Read.\r\n\r\nRequired permissions: (Robots.View and Users.View - Classic and modern robot sessions are returned.) and (Users.View or Machines.Create or Machines.Edit - Modern robot sessions are returned. Users.View is required only when the robot is expanded) and (Robots.View - Classic robot sessions are returned. Users.View is required only when the robot is expanded).", + "operationId": "Sessions_GetGlobalSessions", + "parameters": [ + { + "name": "$expand", + "in": "query", + "description": "Indicates the related entities to be represented inline. The maximum depth is 2.", + "schema": { + "type": "string" + } + }, + { + "name": "$filter", + "in": "query", + "description": "Restricts the set of items returned. The maximum number of expressions is 100.", + "schema": { + "type": "string" + } + }, + { + "name": "$select", + "in": "query", + "description": "Limits the properties returned in the result.", + "schema": { + "type": "string" + } + }, + { + "name": "$orderby", + "in": "query", + "description": "Specifies the order in which items are returned. The maximum number of expressions is 5.", + "schema": { + "type": "string" + } + }, + { + "name": "$top", + "in": "query", + "description": "Limits the number of items returned from a collection. The maximum value is 1000.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "$skip", + "in": "query", + "description": "Excludes the specified number of items of the queried collection from the result.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "$count", + "in": "query", + "description": "Indicates whether the total count of items within a collection are returned in the result.", + "schema": { + "type": "boolean" + } + } + ], + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ODataValueOfIEnumerableOfSessionDto" + } + } + } + } + }, + "security": [ + { + "OAuth2": [] + } + ] + } + }, + "/odata/Sessions/UiPath.Server.Configuration.OData.GetMachineSessionRuntimes": { + "get": { + "tags": [ + "Sessions" + ], + "summary": "Gets machine runtime sessions", + "description": "OAuth required scopes: OR.Robots or OR.Robots.Read.\r\n\r\nRequired permissions: Machines.View.", + "operationId": "Sessions_GetMachineSessionRuntimes", + "parameters": [ + { + "name": "runtimeType", + "in": "query", + "schema": { + "type": "string", + "enum": [ + "NonProduction", + "Attended", + "Unattended", + "Development", + "Studio", + "RpaDeveloper", + "StudioX", + "CitizenDeveloper", + "Headless", + "StudioPro", + "RpaDeveloperPro", + "TestAutomation", + "AutomationCloud", + "Serverless", + "AutomationKit", + "ServerlessTestAutomation", + "AutomationCloudTestAutomation", + "AttendedStudioWeb" + ], + "x-ms-enum": { + "name": "RobotType", + "modelAsString": false + } + }, + "x-ms-enum": { + "name": "RobotType", + "modelAsString": false + } + }, + { + "name": "$expand", + "in": "query", + "description": "Indicates the related entities to be represented inline. The maximum depth is 2.", + "schema": { + "type": "string" + } + }, + { + "name": "$filter", + "in": "query", + "description": "Restricts the set of items returned. The maximum number of expressions is 100.", + "schema": { + "type": "string" + } + }, + { + "name": "$select", + "in": "query", + "description": "Limits the properties returned in the result.", + "schema": { + "type": "string" + } + }, + { + "name": "$orderby", + "in": "query", + "description": "Specifies the order in which items are returned. The maximum number of expressions is 5.", + "schema": { + "type": "string" + } + }, + { + "name": "$top", + "in": "query", + "description": "Limits the number of items returned from a collection. The maximum value is 1000.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "$skip", + "in": "query", + "description": "Excludes the specified number of items of the queried collection from the result.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "$count", + "in": "query", + "description": "Indicates whether the total count of items within a collection are returned in the result.", + "schema": { + "type": "boolean" + } + } + ], + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ODataValueOfIEnumerableOfMachineSessionRuntimeDto" + } + } + } + } + }, + "security": [ + { + "OAuth2": [] + } + ] + } + }, + "/odata/Sessions/UiPath.Server.Configuration.OData.GetMachineSessionRuntimesByFolderId(folderId={folderId})": { + "get": { + "tags": [ + "Sessions" + ], + "summary": "Gets machine runtime sessions by folder id", + "description": "OAuth required scopes: OR.Robots or OR.Robots.Read.\r\n\r\nRequired permissions: (Machines.View or Jobs.Create).", + "operationId": "Sessions_GetMachineSessionRuntimesByFolderId", + "parameters": [ + { + "name": "folderId", + "in": "path", + "required": true, + "schema": { + "type": "integer", + "format": "int64" + } + }, + { + "name": "robotId", + "in": "query", + "schema": { + "type": "integer", + "format": "int64" + } + }, + { + "name": "runtimeType", + "in": "query", + "schema": { + "type": "string", + "enum": [ + "NonProduction", + "Attended", + "Unattended", + "Development", + "Studio", + "RpaDeveloper", + "StudioX", + "CitizenDeveloper", + "Headless", + "StudioPro", + "RpaDeveloperPro", + "TestAutomation", + "AutomationCloud", + "Serverless", + "AutomationKit", + "ServerlessTestAutomation", + "AutomationCloudTestAutomation", + "AttendedStudioWeb" + ], + "x-ms-enum": { + "name": "RobotType", + "modelAsString": false + } + }, + "x-ms-enum": { + "name": "RobotType", + "modelAsString": false + } + }, + { + "name": "$expand", + "in": "query", + "description": "Indicates the related entities to be represented inline. The maximum depth is 2.", + "schema": { + "type": "string" + } + }, + { + "name": "$filter", + "in": "query", + "description": "Restricts the set of items returned. The maximum number of expressions is 100.", + "schema": { + "type": "string" + } + }, + { + "name": "$select", + "in": "query", + "description": "Limits the properties returned in the result.", + "schema": { + "type": "string" + } + }, + { + "name": "$orderby", + "in": "query", + "description": "Specifies the order in which items are returned. The maximum number of expressions is 5.", + "schema": { + "type": "string" + } + }, + { + "name": "$top", + "in": "query", + "description": "Limits the number of items returned from a collection. The maximum value is 1000.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "$skip", + "in": "query", + "description": "Excludes the specified number of items of the queried collection from the result.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "$count", + "in": "query", + "description": "Indicates whether the total count of items within a collection are returned in the result.", + "schema": { + "type": "boolean" + } + } + ], + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ODataValueOfIEnumerableOfMachineSessionRuntimeDto" + } + } + } + } + }, + "security": [ + { + "OAuth2": [] + } + ] + } + }, + "/odata/Sessions/UiPath.Server.Configuration.OData.GetMachineSessions(key={key})": { + "get": { + "tags": [ + "Sessions" + ], + "summary": "Get sessions for a machine", + "description": "OAuth required scopes: OR.Robots or OR.Robots.Read.\r\n\r\nRequired permissions: Machines.View.", + "operationId": "Sessions_GetMachineSessionsByKey", + "parameters": [ + { + "name": "key", + "in": "path", + "required": true, + "schema": { + "type": "integer", + "format": "int64" + } + }, + { + "name": "$expand", + "in": "query", + "description": "Indicates the related entities to be represented inline. The maximum depth is 2.", + "schema": { + "type": "string" + } + }, + { + "name": "$filter", + "in": "query", + "description": "Restricts the set of items returned. The maximum number of expressions is 100.", + "schema": { + "type": "string" + } + }, + { + "name": "$select", + "in": "query", + "description": "Limits the properties returned in the result.", + "schema": { + "type": "string" + } + }, + { + "name": "$orderby", + "in": "query", + "description": "Specifies the order in which items are returned. The maximum number of expressions is 5.", + "schema": { + "type": "string" + } + }, + { + "name": "$top", + "in": "query", + "description": "Limits the number of items returned from a collection. The maximum value is 1000.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "$skip", + "in": "query", + "description": "Excludes the specified number of items of the queried collection from the result.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "$count", + "in": "query", + "description": "Indicates whether the total count of items within a collection are returned in the result.", + "schema": { + "type": "boolean" + } + } + ], + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ODataValueOfIEnumerableOfMachineSessionDto" + } + } + } + } + }, + "security": [ + { + "OAuth2": [] + } + ] + } + }, + "/odata/Sessions/UiPath.Server.Configuration.OData.GetUsernames": { + "get": { + "tags": [ + "Sessions" + ], + "summary": "Gets usernames.", + "description": "OAuth required scopes: OR.Robots or OR.Robots.Read.\r\n\r\nRequired permissions: Robots.View or Users.View.", + "operationId": "Sessions_GetUsernames", + "parameters": [ + { + "name": "$expand", + "in": "query", + "description": "Indicates the related entities to be represented inline. The maximum depth is 2.", + "schema": { + "type": "string" + } + }, + { + "name": "$filter", + "in": "query", + "description": "Restricts the set of items returned. The maximum number of expressions is 100.", + "schema": { + "type": "string" + } + }, + { + "name": "$select", + "in": "query", + "description": "Limits the properties returned in the result.", + "schema": { + "type": "string" + } + }, + { + "name": "$orderby", + "in": "query", + "description": "Specifies the order in which items are returned. The maximum number of expressions is 5.", + "schema": { + "type": "string" + } + }, + { + "name": "$top", + "in": "query", + "description": "Limits the number of items returned from a collection. The maximum value is 1000.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "$skip", + "in": "query", + "description": "Excludes the specified number of items of the queried collection from the result.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "$count", + "in": "query", + "description": "Indicates whether the total count of items within a collection are returned in the result.", + "schema": { + "type": "boolean" + } + } + ], + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ODataValueOfIEnumerableOfString" + } + } + } + } + }, + "security": [ + { + "OAuth2": [] + } + ] + } + }, + "/odata/Sessions/UiPath.Server.Configuration.OData.SetMaintenanceMode": { + "post": { + "tags": [ + "Sessions" + ], + "summary": "Sets the execution capabilities for a specified host", + "description": "OAuth required scopes: OR.Robots or OR.Robots.Write.\r\n\r\nRequired permissions: Robots.Edit.", + "operationId": "Sessions_SetMaintenanceMode", + "requestBody": { + "content": { + "application/json;odata.metadata=minimal;odata.streaming=true": { + "schema": { + "$ref": "#/components/schemas/SessionMaintenanceModeParameters" + } + }, + "application/json;odata.metadata=minimal;odata.streaming=false": { + "schema": { + "$ref": "#/components/schemas/SessionMaintenanceModeParameters" + } + }, + "application/json;odata.metadata=minimal": { + "schema": { + "$ref": "#/components/schemas/SessionMaintenanceModeParameters" + } + }, + "application/json;odata.metadata=full;odata.streaming=true": { + "schema": { + "$ref": "#/components/schemas/SessionMaintenanceModeParameters" + } + }, + "application/json;odata.metadata=full;odata.streaming=false": { + "schema": { + "$ref": "#/components/schemas/SessionMaintenanceModeParameters" + } + }, + "application/json;odata.metadata=full": { + "schema": { + "$ref": "#/components/schemas/SessionMaintenanceModeParameters" + } + }, + "application/json;odata.metadata=none;odata.streaming=true": { + "schema": { + "$ref": "#/components/schemas/SessionMaintenanceModeParameters" + } + }, + "application/json;odata.metadata=none;odata.streaming=false": { + "schema": { + "$ref": "#/components/schemas/SessionMaintenanceModeParameters" + } + }, + "application/json;odata.metadata=none": { + "schema": { + "$ref": "#/components/schemas/SessionMaintenanceModeParameters" + } + }, + "application/json;odata.streaming=true": { + "schema": { + "$ref": "#/components/schemas/SessionMaintenanceModeParameters" + } + }, + "application/json;odata.streaming=false": { + "schema": { + "$ref": "#/components/schemas/SessionMaintenanceModeParameters" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/SessionMaintenanceModeParameters" + } + }, + "application/json-patch+json": { + "schema": { + "$ref": "#/components/schemas/SessionMaintenanceModeParameters" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/SessionMaintenanceModeParameters" + } + } + }, + "required": false + }, + "responses": { + "204": { + "description": "No Content", + "content": {} + } + }, + "security": [ + { + "OAuth2": [] + } + ], + "x-codegen-request-body-name": "body" + } + }, + "/odata/Settings": { + "get": { + "tags": [ + "Settings" + ], + "summary": "Gets the settings.", + "description": "OAuth required scopes: OR.Settings or OR.Settings.Read.\r\n\r\nRequired permissions: Settings.View.", + "operationId": "Settings_Get", + "parameters": [ + { + "name": "$expand", + "in": "query", + "description": "Indicates the related entities to be represented inline. The maximum depth is 2.", + "schema": { + "type": "string" + } + }, + { + "name": "$filter", + "in": "query", + "description": "Restricts the set of items returned. The maximum number of expressions is 100.", + "schema": { + "type": "string" + } + }, + { + "name": "$select", + "in": "query", + "description": "Limits the properties returned in the result.", + "schema": { + "type": "string" + } + }, + { + "name": "$orderby", + "in": "query", + "description": "Specifies the order in which items are returned. The maximum number of expressions is 5.", + "schema": { + "type": "string" + } + }, + { + "name": "$top", + "in": "query", + "description": "Limits the number of items returned from a collection. The maximum value is 1000.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "$skip", + "in": "query", + "description": "Excludes the specified number of items of the queried collection from the result.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "$count", + "in": "query", + "description": "Indicates whether the total count of items within a collection are returned in the result.", + "schema": { + "type": "boolean" + } + } + ], + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ODataValueOfIEnumerableOfSettingsDto" + } + } + } + } + }, + "security": [ + { + "OAuth2": [] + } + ] + } + }, + "/odata/Settings('{key}')": { + "get": { + "tags": [ + "Settings" + ], + "summary": "Gets a settings value based on its key.", + "description": "OAuth required scopes: OR.Settings or OR.Settings.Read.\r\n\r\nRequired permissions: Settings.View.", + "operationId": "Settings_GetById", + "parameters": [ + { + "name": "key", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "$expand", + "in": "query", + "description": "Indicates the related entities to be represented inline. The maximum depth is 2.", + "schema": { + "type": "string" + } + }, + { + "name": "$select", + "in": "query", + "description": "Limits the properties returned in the result.", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ODataValueOfString" + } + } + } + } + }, + "security": [ + { + "OAuth2": [] + } + ] + }, + "put": { + "tags": [ + "Settings" + ], + "summary": "Edits a setting.", + "description": "OAuth required scopes: OR.Settings or OR.Settings.Write.\r\n\r\nRequired permissions: Settings.Edit.", + "operationId": "Settings_PutById", + "parameters": [ + { + "name": "key", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json;odata.metadata=minimal;odata.streaming=true": { + "schema": { + "$ref": "#/components/schemas/SettingsDto" + } + }, + "application/json;odata.metadata=minimal;odata.streaming=false": { + "schema": { + "$ref": "#/components/schemas/SettingsDto" + } + }, + "application/json;odata.metadata=minimal": { + "schema": { + "$ref": "#/components/schemas/SettingsDto" + } + }, + "application/json;odata.metadata=full;odata.streaming=true": { + "schema": { + "$ref": "#/components/schemas/SettingsDto" + } + }, + "application/json;odata.metadata=full;odata.streaming=false": { + "schema": { + "$ref": "#/components/schemas/SettingsDto" + } + }, + "application/json;odata.metadata=full": { + "schema": { + "$ref": "#/components/schemas/SettingsDto" + } + }, + "application/json;odata.metadata=none;odata.streaming=true": { + "schema": { + "$ref": "#/components/schemas/SettingsDto" + } + }, + "application/json;odata.metadata=none;odata.streaming=false": { + "schema": { + "$ref": "#/components/schemas/SettingsDto" + } + }, + "application/json;odata.metadata=none": { + "schema": { + "$ref": "#/components/schemas/SettingsDto" + } + }, + "application/json;odata.streaming=true": { + "schema": { + "$ref": "#/components/schemas/SettingsDto" + } + }, + "application/json;odata.streaming=false": { + "schema": { + "$ref": "#/components/schemas/SettingsDto" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/SettingsDto" + } + }, + "application/json-patch+json": { + "schema": { + "$ref": "#/components/schemas/SettingsDto" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/SettingsDto" + } + } + }, + "required": false + }, + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/SettingsDto" + } + } + } + } + }, + "security": [ + { + "OAuth2": [] + } + ], + "x-codegen-request-body-name": "body" + } + }, + "/odata/Settings/UiPath.Server.Configuration.OData.ActivateLicenseOffline": { + "post": { + "tags": [ + "Settings" + ], + "summary": "Uploads a new offline license activation.\r\nThe content of the license is sent as a file embedded in the HTTP request.", + "description": "OAuth required scopes: OR.Settings or OR.Settings.Write.\r\n\r\nRequired permissions: License.Create or License.Edit.", + "operationId": "Settings_ActivateLicenseOffline", + "requestBody": { + "content": { + "multipart/form-data": { + "schema": { + "required": [ + "file" + ], + "type": "object", + "properties": { + "file": { + "type": "string", + "format": "binary" + } + } + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "Success", + "content": {} + }, + "400": { + "description": "Bad Request", + "content": {} + } + }, + "security": [ + { + "OAuth2": [] + } + ] + } + }, + "/odata/Settings/UiPath.Server.Configuration.OData.ActivateLicenseOnline": { + "post": { + "tags": [ + "Settings" + ], + "summary": "Activate the license for a specific tenant", + "description": "OAuth required scopes: OR.Settings or OR.Settings.Write.\r\n\r\nRequired permissions: License.Create or License.Edit.", + "operationId": "Settings_ActivateLicenseOnline", + "requestBody": { + "content": { + "application/json;odata.metadata=minimal;odata.streaming=true": { + "schema": { + "$ref": "#/components/schemas/LicenseRequest" + } + }, + "application/json;odata.metadata=minimal;odata.streaming=false": { + "schema": { + "$ref": "#/components/schemas/LicenseRequest" + } + }, + "application/json;odata.metadata=minimal": { + "schema": { + "$ref": "#/components/schemas/LicenseRequest" + } + }, + "application/json;odata.metadata=full;odata.streaming=true": { + "schema": { + "$ref": "#/components/schemas/LicenseRequest" + } + }, + "application/json;odata.metadata=full;odata.streaming=false": { + "schema": { + "$ref": "#/components/schemas/LicenseRequest" + } + }, + "application/json;odata.metadata=full": { + "schema": { + "$ref": "#/components/schemas/LicenseRequest" + } + }, + "application/json;odata.metadata=none;odata.streaming=true": { + "schema": { + "$ref": "#/components/schemas/LicenseRequest" + } + }, + "application/json;odata.metadata=none;odata.streaming=false": { + "schema": { + "$ref": "#/components/schemas/LicenseRequest" + } + }, + "application/json;odata.metadata=none": { + "schema": { + "$ref": "#/components/schemas/LicenseRequest" + } + }, + "application/json;odata.streaming=true": { + "schema": { + "$ref": "#/components/schemas/LicenseRequest" + } + }, + "application/json;odata.streaming=false": { + "schema": { + "$ref": "#/components/schemas/LicenseRequest" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/LicenseRequest" + } + }, + "application/json-patch+json": { + "schema": { + "$ref": "#/components/schemas/LicenseRequest" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/LicenseRequest" + } + } + }, + "required": false + }, + "responses": { + "200": { + "description": "Success", + "content": {} + }, + "400": { + "description": "Invalid parameters", + "content": {} + } + }, + "security": [ + { + "OAuth2": [] + } + ], + "x-codegen-request-body-name": "body" + } + }, + "/odata/Settings/UiPath.Server.Configuration.OData.DeactivateLicenseOnline": { + "post": { + "tags": [ + "Settings" + ], + "summary": "Deactivate the license for a specific tenant", + "description": "OAuth required scopes: OR.Settings or OR.Settings.Write.\r\n\r\nRequired permissions: License.Delete.", + "operationId": "Settings_DeactivateLicenseOnline", + "responses": { + "200": { + "description": "Success", + "content": {} + }, + "400": { + "description": "Invalid parameters", + "content": {} + } + }, + "security": [ + { + "OAuth2": [] + } + ] + } + }, + "/odata/Settings/UiPath.Server.Configuration.OData.DeleteBulk": { + "post": { + "tags": [ + "Settings" + ], + "summary": "Deletes values for the specified settings in the Tenant scope.", + "description": "OAuth required scopes: OR.Settings or OR.Settings.Write.\r\n\r\nRequired permissions: Settings.Delete.", + "operationId": "Settings_DeleteBulk", + "requestBody": { + "description": "Settings - The collection of settings to be deleted.", + "content": { + "application/json;odata.metadata=minimal;odata.streaming=true": { + "schema": { + "$ref": "#/components/schemas/SettingsDeleteBulkRequest" + } + }, + "application/json;odata.metadata=minimal;odata.streaming=false": { + "schema": { + "$ref": "#/components/schemas/SettingsDeleteBulkRequest" + } + }, + "application/json;odata.metadata=minimal": { + "schema": { + "$ref": "#/components/schemas/SettingsDeleteBulkRequest" + } + }, + "application/json;odata.metadata=full;odata.streaming=true": { + "schema": { + "$ref": "#/components/schemas/SettingsDeleteBulkRequest" + } + }, + "application/json;odata.metadata=full;odata.streaming=false": { + "schema": { + "$ref": "#/components/schemas/SettingsDeleteBulkRequest" + } + }, + "application/json;odata.metadata=full": { + "schema": { + "$ref": "#/components/schemas/SettingsDeleteBulkRequest" + } + }, + "application/json;odata.metadata=none;odata.streaming=true": { + "schema": { + "$ref": "#/components/schemas/SettingsDeleteBulkRequest" + } + }, + "application/json;odata.metadata=none;odata.streaming=false": { + "schema": { + "$ref": "#/components/schemas/SettingsDeleteBulkRequest" + } + }, + "application/json;odata.metadata=none": { + "schema": { + "$ref": "#/components/schemas/SettingsDeleteBulkRequest" + } + }, + "application/json;odata.streaming=true": { + "schema": { + "$ref": "#/components/schemas/SettingsDeleteBulkRequest" + } + }, + "application/json;odata.streaming=false": { + "schema": { + "$ref": "#/components/schemas/SettingsDeleteBulkRequest" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/SettingsDeleteBulkRequest" + } + }, + "application/json-patch+json": { + "schema": { + "$ref": "#/components/schemas/SettingsDeleteBulkRequest" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/SettingsDeleteBulkRequest" + } + } + }, + "required": false + }, + "responses": { + "204": { + "description": "No Content", + "content": {} + } + }, + "security": [ + { + "OAuth2": [] + } + ], + "x-codegen-request-body-name": "body" + } + }, + "/odata/Settings/UiPath.Server.Configuration.OData.DeleteLicense": { + "post": { + "tags": [ + "Settings" + ], + "summary": "Removes the license", + "description": "OAuth required scopes: OR.Settings or OR.Settings.Write.\r\n\r\nRequired permissions: License.Delete.", + "operationId": "Settings_DeleteLicense", + "responses": { + "200": { + "description": "Success", + "content": {} + } + }, + "security": [ + { + "OAuth2": [] + } + ] + } + }, + "/odata/Settings/UiPath.Server.Configuration.OData.GetActivitySettings": { + "get": { + "tags": [ + "Settings" + ], + "summary": "Returns Orchestrator settings used by activities", + "description": "OAuth required scopes: OR.Settings or OR.Settings.Read.\r\n\r\nRequires authentication.", + "operationId": "Settings_GetActivitySettings", + "parameters": [ + { + "name": "$expand", + "in": "query", + "description": "Indicates the related entities to be represented inline. The maximum depth is 2.", + "schema": { + "type": "string" + } + }, + { + "name": "$select", + "in": "query", + "description": "Limits the properties returned in the result.", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ActivitySettingsDto" + } + } + } + } + }, + "security": [ + { + "OAuth2": [] + } + ] + } + }, + "/odata/Settings/UiPath.Server.Configuration.OData.GetAuthenticationSettings": { + "get": { + "tags": [ + "Settings" + ], + "summary": "Gets the authentication settings", + "description": "OAuth required scopes: OR.Settings or OR.Settings.Read.", + "operationId": "Settings_GetAuthenticationSettings", + "parameters": [ + { + "name": "$expand", + "in": "query", + "description": "Indicates the related entities to be represented inline. The maximum depth is 2.", + "schema": { + "type": "string" + } + }, + { + "name": "$select", + "in": "query", + "description": "Limits the properties returned in the result.", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ResponseDictionaryDto" + } + } + } + } + } + } + }, + "/odata/Settings/UiPath.Server.Configuration.OData.GetCalendar": { + "get": { + "tags": [ + "Settings" + ], + "summary": "Gets custom calendar, with excluded dates in UTC, for current tenant", + "description": "OAuth required scopes: OR.Settings or OR.Settings.Read.\r\n\r\nRequired permissions: Settings.View.\r\nDEPRECATED: \r\nThis API is deprecated. Please do not use it any longer. Use /odata/Calendars instead.", + "operationId": "Settings_GetCalendar", + "parameters": [ + { + "name": "$expand", + "in": "query", + "description": "Indicates the related entities to be represented inline. The maximum depth is 2.", + "schema": { + "type": "string" + } + }, + { + "name": "$select", + "in": "query", + "description": "Limits the properties returned in the result.", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/CalendarDto" + } + } + } + } + }, + "deprecated": true, + "security": [ + { + "OAuth2": [] + } + ] + } + }, + "/odata/Settings/UiPath.Server.Configuration.OData.GetConnectionString": { + "get": { + "tags": [ + "Settings" + ], + "summary": "Gets the connection string", + "description": "OAuth required scopes: OR.Settings or OR.Settings.Read.\r\n\r\nRequired permissions: Settings.View.", + "operationId": "Settings_GetConnectionString", + "parameters": [ + { + "name": "$expand", + "in": "query", + "description": "Indicates the related entities to be represented inline. The maximum depth is 2.", + "schema": { + "type": "string" + } + }, + { + "name": "$select", + "in": "query", + "description": "Limits the properties returned in the result.", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ODataValueOfString" + } + } + } + } + }, + "security": [ + { + "OAuth2": [] + } + ] + } + }, + "/odata/Settings/UiPath.Server.Configuration.OData.GetDeactivateLicenseOffline": { + "post": { + "tags": [ + "Settings" + ], + "summary": "Deactivate the license offline for a specific tenant", + "description": "OAuth required scopes: OR.Settings or OR.Settings.Write.\r\n\r\nRequired permissions: License.Delete.", + "operationId": "Settings_GetDeactivateLicenseOffline", + "parameters": [ + { + "name": "$expand", + "in": "query", + "description": "Indicates the related entities to be represented inline. The maximum depth is 2.", + "schema": { + "type": "string" + } + }, + { + "name": "$select", + "in": "query", + "description": "Limits the properties returned in the result.", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ODataValueOfString" + } + } + } + }, + "400": { + "description": "Invalid parameters", + "content": {} + } + }, + "security": [ + { + "OAuth2": [] + } + ] + } + }, + "/odata/Settings/UiPath.Server.Configuration.OData.GetExecutionSettingsConfiguration(scope={scope})": { + "get": { + "tags": [ + "Settings" + ], + "summary": "Gets the execution settings configuration (display name, value type, etc.).\r\nIf scope is 0 (Global), the default values will be the initial ones. If scope is 1 (Robot), then\r\nthe default values will be the actual values set globally.\r\ne.g., Resolution width\r\nAssume it was set globally to 720.\r\nThen within the config returned by this function, the default value for this setting will be:\r\n- 0 for scope = 0 and\r\n- 720 for scope = 1.", + "description": "OAuth required scopes: OR.Settings or OR.Settings.Read.\r\n\r\nRequired permissions: Settings.Edit or Robots.Create or Robots.Edit.", + "operationId": "Settings_GetExecutionSettingsConfigurationByScope", + "parameters": [ + { + "name": "scope", + "in": "path", + "description": "Scope of the configuration; 0 for Global, 1 for Robot", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "$expand", + "in": "query", + "description": "Indicates the related entities to be represented inline. The maximum depth is 2.", + "schema": { + "type": "string" + } + }, + { + "name": "$select", + "in": "query", + "description": "Limits the properties returned in the result.", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ExecutionSettingsConfiguration" + } + } + } + } + }, + "security": [ + { + "OAuth2": [] + } + ] + } + }, + "/odata/Settings/UiPath.Server.Configuration.OData.GetLanguages": { + "get": { + "tags": [ + "Settings" + ], + "summary": "Gets supported languages", + "description": "OAuth required scopes: OR.Settings or OR.Settings.Read.", + "operationId": "Settings_GetLanguages", + "parameters": [ + { + "name": "$expand", + "in": "query", + "description": "Indicates the related entities to be represented inline. The maximum depth is 2.", + "schema": { + "type": "string" + } + }, + { + "name": "$select", + "in": "query", + "description": "Limits the properties returned in the result.", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ListResultDtoOfLanguageInfo" + } + } + } + } + } + } + }, + "/odata/Settings/UiPath.Server.Configuration.OData.GetLicense": { + "get": { + "tags": [ + "Settings" + ], + "summary": "Retrieves the current license information.", + "description": "OAuth required scopes: OR.Settings or OR.Settings.Read.\r\n\r\nRequires authentication.", + "operationId": "Settings_GetLicense", + "parameters": [ + { + "name": "$expand", + "in": "query", + "description": "Indicates the related entities to be represented inline. The maximum depth is 2.", + "schema": { + "type": "string" + } + }, + { + "name": "$select", + "in": "query", + "description": "Limits the properties returned in the result.", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/LicenseDto" + } + } + } + } + }, + "security": [ + { + "OAuth2": [] + } + ] + } + }, + "/odata/Settings/UiPath.Server.Configuration.OData.GetLicenseOffline": { + "post": { + "tags": [ + "Settings" + ], + "summary": "Create the offline activation request for a specific tenant", + "description": "OAuth required scopes: OR.Settings or OR.Settings.Write.\r\n\r\nRequired permissions: License.Create or License.Edit.", + "operationId": "Settings_GetLicenseOffline", + "parameters": [ + { + "name": "$expand", + "in": "query", + "description": "Indicates the related entities to be represented inline. The maximum depth is 2.", + "schema": { + "type": "string" + } + }, + { + "name": "$select", + "in": "query", + "description": "Limits the properties returned in the result.", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json;odata.metadata=minimal;odata.streaming=true": { + "schema": { + "$ref": "#/components/schemas/LicenseRequest" + } + }, + "application/json;odata.metadata=minimal;odata.streaming=false": { + "schema": { + "$ref": "#/components/schemas/LicenseRequest" + } + }, + "application/json;odata.metadata=minimal": { + "schema": { + "$ref": "#/components/schemas/LicenseRequest" + } + }, + "application/json;odata.metadata=full;odata.streaming=true": { + "schema": { + "$ref": "#/components/schemas/LicenseRequest" + } + }, + "application/json;odata.metadata=full;odata.streaming=false": { + "schema": { + "$ref": "#/components/schemas/LicenseRequest" + } + }, + "application/json;odata.metadata=full": { + "schema": { + "$ref": "#/components/schemas/LicenseRequest" + } + }, + "application/json;odata.metadata=none;odata.streaming=true": { + "schema": { + "$ref": "#/components/schemas/LicenseRequest" + } + }, + "application/json;odata.metadata=none;odata.streaming=false": { + "schema": { + "$ref": "#/components/schemas/LicenseRequest" + } + }, + "application/json;odata.metadata=none": { + "schema": { + "$ref": "#/components/schemas/LicenseRequest" + } + }, + "application/json;odata.streaming=true": { + "schema": { + "$ref": "#/components/schemas/LicenseRequest" + } + }, + "application/json;odata.streaming=false": { + "schema": { + "$ref": "#/components/schemas/LicenseRequest" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/LicenseRequest" + } + }, + "application/json-patch+json": { + "schema": { + "$ref": "#/components/schemas/LicenseRequest" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/LicenseRequest" + } + } + }, + "required": false + }, + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ODataValueOfString" + } + } + } + }, + "400": { + "description": "Invalid parameters", + "content": {} + } + }, + "security": [ + { + "OAuth2": [] + } + ], + "x-codegen-request-body-name": "body" + } + }, + "/odata/Settings/UiPath.Server.Configuration.OData.GetSecureStoreConfiguration(storeTypeName='{storeTypeName}')": { + "get": { + "tags": [ + "Settings" + ], + "summary": "Gets the configuration format for a Secure store", + "description": "OAuth required scopes: OR.Settings or OR.Settings.Read.\r\n\r\nRequired permissions: Settings.View.", + "operationId": "Settings_GetSecureStoreConfigurationByStoretypename", + "parameters": [ + { + "name": "storeTypeName", + "in": "path", + "description": "name of the secure store type", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "proxyId", + "in": "query", + "description": "id of the hosted credential store", + "schema": { + "type": "integer", + "format": "int64" + } + }, + { + "name": "$expand", + "in": "query", + "description": "Indicates the related entities to be represented inline. The maximum depth is 2.", + "schema": { + "type": "string" + } + }, + { + "name": "$filter", + "in": "query", + "description": "Restricts the set of items returned. The maximum number of expressions is 100.", + "schema": { + "type": "string" + } + }, + { + "name": "$select", + "in": "query", + "description": "Limits the properties returned in the result.", + "schema": { + "type": "string" + } + }, + { + "name": "$orderby", + "in": "query", + "description": "Specifies the order in which items are returned. The maximum number of expressions is 5.", + "schema": { + "type": "string" + } + }, + { + "name": "$count", + "in": "query", + "description": "Indicates whether the total count of items within a collection are returned in the result.", + "schema": { + "type": "boolean" + } + } + ], + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ODataValueOfIEnumerableOfConfigurationEntry" + } + } + } + } + }, + "security": [ + { + "OAuth2": [] + } + ] + } + }, + "/odata/Settings/UiPath.Server.Configuration.OData.GetTimezones": { + "get": { + "tags": [ + "Settings" + ], + "summary": "Gets timezones.", + "description": "OAuth required scopes: OR.Settings or OR.Settings.Read.", + "operationId": "Settings_GetTimezones", + "parameters": [ + { + "name": "$expand", + "in": "query", + "description": "Indicates the related entities to be represented inline. The maximum depth is 2.", + "schema": { + "type": "string" + } + }, + { + "name": "$select", + "in": "query", + "description": "Limits the properties returned in the result.", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ListResultDtoOfNameValueDto" + } + } + } + } + } + } + }, + "/odata/Settings/UiPath.Server.Configuration.OData.GetUpdateSettings": { + "get": { + "tags": [ + "Settings" + ], + "summary": "Gets the update settings", + "description": "OAuth required scopes: OR.Settings or OR.Settings.Read.", + "operationId": "Settings_GetUpdateSettings", + "parameters": [ + { + "name": "$expand", + "in": "query", + "description": "Indicates the related entities to be represented inline. The maximum depth is 2.", + "schema": { + "type": "string" + } + }, + { + "name": "$select", + "in": "query", + "description": "Limits the properties returned in the result.", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/UpdateSettingsDto" + } + } + } + } + } + } + }, + "/odata/Settings/UiPath.Server.Configuration.OData.GetWebSettings": { + "get": { + "tags": [ + "Settings" + ], + "summary": "Returns a collection of key value pairs representing settings used by Orchestrator web client.", + "description": "OAuth required scopes: OR.Settings or OR.Settings.Read.\r\n\r\nRequires authentication.", + "operationId": "Settings_GetWebSettings", + "parameters": [ + { + "name": "$expand", + "in": "query", + "description": "Indicates the related entities to be represented inline. The maximum depth is 2.", + "schema": { + "type": "string" + } + }, + { + "name": "$select", + "in": "query", + "description": "Limits the properties returned in the result.", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ResponseDictionaryDto" + } + } + } + } + }, + "security": [ + { + "OAuth2": [] + } + ] + } + }, + "/odata/Settings/UiPath.Server.Configuration.OData.SetCalendar": { + "post": { + "tags": [ + "Settings" + ], + "summary": "Sets custom calendar, with excluded dates in UTC, for current tenant", + "description": "OAuth required scopes: OR.Settings or OR.Settings.Write.\r\n\r\nRequired permissions: Settings.Edit.\r\nDEPRECATED: \r\nThis API is deprecated. Please do not use it any longer. Use /odata/Calendars instead.", + "operationId": "Settings_SetCalendar", + "requestBody": { + "content": { + "application/json;odata.metadata=minimal;odata.streaming=true": { + "schema": { + "$ref": "#/components/schemas/CalendarDto" + } + }, + "application/json;odata.metadata=minimal;odata.streaming=false": { + "schema": { + "$ref": "#/components/schemas/CalendarDto" + } + }, + "application/json;odata.metadata=minimal": { + "schema": { + "$ref": "#/components/schemas/CalendarDto" + } + }, + "application/json;odata.metadata=full;odata.streaming=true": { + "schema": { + "$ref": "#/components/schemas/CalendarDto" + } + }, + "application/json;odata.metadata=full;odata.streaming=false": { + "schema": { + "$ref": "#/components/schemas/CalendarDto" + } + }, + "application/json;odata.metadata=full": { + "schema": { + "$ref": "#/components/schemas/CalendarDto" + } + }, + "application/json;odata.metadata=none;odata.streaming=true": { + "schema": { + "$ref": "#/components/schemas/CalendarDto" + } + }, + "application/json;odata.metadata=none;odata.streaming=false": { + "schema": { + "$ref": "#/components/schemas/CalendarDto" + } + }, + "application/json;odata.metadata=none": { + "schema": { + "$ref": "#/components/schemas/CalendarDto" + } + }, + "application/json;odata.streaming=true": { + "schema": { + "$ref": "#/components/schemas/CalendarDto" + } + }, + "application/json;odata.streaming=false": { + "schema": { + "$ref": "#/components/schemas/CalendarDto" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/CalendarDto" + } + }, + "application/json-patch+json": { + "schema": { + "$ref": "#/components/schemas/CalendarDto" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/CalendarDto" + } + } + }, + "required": false + }, + "responses": { + "200": { + "description": "Success", + "content": {} + } + }, + "deprecated": true, + "security": [ + { + "OAuth2": [] + } + ], + "x-codegen-request-body-name": "body" + } + }, + "/odata/Settings/UiPath.Server.Configuration.OData.UpdateBulk": { + "post": { + "tags": [ + "Settings" + ], + "summary": "Updates the current settings.", + "description": "OAuth required scopes: OR.Settings or OR.Settings.Write.\r\n\r\nRequired permissions: Settings.Edit.", + "operationId": "Settings_UpdateBulk", + "requestBody": { + "description": "Settings - The collection of settings to be updated.", + "content": { + "application/json;odata.metadata=minimal;odata.streaming=true": { + "schema": { + "$ref": "#/components/schemas/SettingsUpdateBulkRequest" + } + }, + "application/json;odata.metadata=minimal;odata.streaming=false": { + "schema": { + "$ref": "#/components/schemas/SettingsUpdateBulkRequest" + } + }, + "application/json;odata.metadata=minimal": { + "schema": { + "$ref": "#/components/schemas/SettingsUpdateBulkRequest" + } + }, + "application/json;odata.metadata=full;odata.streaming=true": { + "schema": { + "$ref": "#/components/schemas/SettingsUpdateBulkRequest" + } + }, + "application/json;odata.metadata=full;odata.streaming=false": { + "schema": { + "$ref": "#/components/schemas/SettingsUpdateBulkRequest" + } + }, + "application/json;odata.metadata=full": { + "schema": { + "$ref": "#/components/schemas/SettingsUpdateBulkRequest" + } + }, + "application/json;odata.metadata=none;odata.streaming=true": { + "schema": { + "$ref": "#/components/schemas/SettingsUpdateBulkRequest" + } + }, + "application/json;odata.metadata=none;odata.streaming=false": { + "schema": { + "$ref": "#/components/schemas/SettingsUpdateBulkRequest" + } + }, + "application/json;odata.metadata=none": { + "schema": { + "$ref": "#/components/schemas/SettingsUpdateBulkRequest" + } + }, + "application/json;odata.streaming=true": { + "schema": { + "$ref": "#/components/schemas/SettingsUpdateBulkRequest" + } + }, + "application/json;odata.streaming=false": { + "schema": { + "$ref": "#/components/schemas/SettingsUpdateBulkRequest" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/SettingsUpdateBulkRequest" + } + }, + "application/json-patch+json": { + "schema": { + "$ref": "#/components/schemas/SettingsUpdateBulkRequest" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/SettingsUpdateBulkRequest" + } + } + }, + "required": false + }, + "responses": { + "200": { + "description": "Success", + "content": {} + } + }, + "security": [ + { + "OAuth2": [] + } + ], + "x-codegen-request-body-name": "body" + } + }, + "/odata/Settings/UiPath.Server.Configuration.OData.UpdateLicenseOnline": { + "post": { + "tags": [ + "Settings" + ], + "summary": "Update the license for a specific tenant", + "description": "OAuth required scopes: OR.Settings or OR.Settings.Write.\r\n\r\nRequired permissions: License.Edit.", + "operationId": "Settings_UpdateLicenseOnline", + "responses": { + "200": { + "description": "Success", + "content": {} + }, + "400": { + "description": "Invalid parameters", + "content": {} + } + }, + "security": [ + { + "OAuth2": [] + } + ] + } + }, + "/odata/Settings/UiPath.Server.Configuration.OData.UpdateUserSetting": { + "post": { + "tags": [ + "Settings" + ], + "summary": "Edits a user setting.", + "description": "OAuth required scopes: OR.Settings or OR.Settings.Write.\r\n\r\nRequires authentication.", + "operationId": "Settings_UpdateUserSetting", + "parameters": [ + { + "name": "$expand", + "in": "query", + "description": "Indicates the related entities to be represented inline. The maximum depth is 2.", + "schema": { + "type": "string" + } + }, + { + "name": "$select", + "in": "query", + "description": "Limits the properties returned in the result.", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json;odata.metadata=minimal;odata.streaming=true": { + "schema": { + "$ref": "#/components/schemas/UpdateUserSettingRequest" + } + }, + "application/json;odata.metadata=minimal;odata.streaming=false": { + "schema": { + "$ref": "#/components/schemas/UpdateUserSettingRequest" + } + }, + "application/json;odata.metadata=minimal": { + "schema": { + "$ref": "#/components/schemas/UpdateUserSettingRequest" + } + }, + "application/json;odata.metadata=full;odata.streaming=true": { + "schema": { + "$ref": "#/components/schemas/UpdateUserSettingRequest" + } + }, + "application/json;odata.metadata=full;odata.streaming=false": { + "schema": { + "$ref": "#/components/schemas/UpdateUserSettingRequest" + } + }, + "application/json;odata.metadata=full": { + "schema": { + "$ref": "#/components/schemas/UpdateUserSettingRequest" + } + }, + "application/json;odata.metadata=none;odata.streaming=true": { + "schema": { + "$ref": "#/components/schemas/UpdateUserSettingRequest" + } + }, + "application/json;odata.metadata=none;odata.streaming=false": { + "schema": { + "$ref": "#/components/schemas/UpdateUserSettingRequest" + } + }, + "application/json;odata.metadata=none": { + "schema": { + "$ref": "#/components/schemas/UpdateUserSettingRequest" + } + }, + "application/json;odata.streaming=true": { + "schema": { + "$ref": "#/components/schemas/UpdateUserSettingRequest" + } + }, + "application/json;odata.streaming=false": { + "schema": { + "$ref": "#/components/schemas/UpdateUserSettingRequest" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/UpdateUserSettingRequest" + } + }, + "application/json-patch+json": { + "schema": { + "$ref": "#/components/schemas/UpdateUserSettingRequest" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/UpdateUserSettingRequest" + } + } + }, + "required": false + }, + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/SettingsDto" + } + } + } + } + }, + "security": [ + { + "OAuth2": [] + } + ], + "x-codegen-request-body-name": "body" + } + }, + "/odata/Settings/UiPath.Server.Configuration.OData.UploadLicense": { + "post": { + "tags": [ + "Settings" + ], + "summary": "Uploads a new license file that was previously generated with Regutil. The content of the license is sent as a file embedded in the HTTP request.", + "description": "OAuth required scopes: OR.Settings or OR.Settings.Write.\r\n\r\nRequired permissions: License.Create or License.Edit.", + "operationId": "Settings_UploadLicense", + "requestBody": { + "content": { + "multipart/form-data": { + "schema": { + "required": [ + "file" + ], + "type": "object", + "properties": { + "file": { + "type": "string", + "format": "binary" + } + } + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "Success", + "content": {} + } + }, + "security": [ + { + "OAuth2": [] + } + ] + } + }, + "/odata/Settings/UiPath.Server.Configuration.OData.VerifySmtpSetting": { + "post": { + "tags": [ + "Settings" + ], + "summary": "Verify whether the given SMTP settings are correct or not by sending an email to a recipient.", + "description": "OAuth required scopes: OR.Settings or OR.Settings.Write.\r\n\r\nRequired permissions: Settings.Edit.", + "operationId": "Settings_VerifySmtpSetting", + "requestBody": { + "description": "SMTP setting parameters", + "content": { + "application/json;odata.metadata=minimal;odata.streaming=true": { + "schema": { + "$ref": "#/components/schemas/VerifySmtpSettingRequest" + } + }, + "application/json;odata.metadata=minimal;odata.streaming=false": { + "schema": { + "$ref": "#/components/schemas/VerifySmtpSettingRequest" + } + }, + "application/json;odata.metadata=minimal": { + "schema": { + "$ref": "#/components/schemas/VerifySmtpSettingRequest" + } + }, + "application/json;odata.metadata=full;odata.streaming=true": { + "schema": { + "$ref": "#/components/schemas/VerifySmtpSettingRequest" + } + }, + "application/json;odata.metadata=full;odata.streaming=false": { + "schema": { + "$ref": "#/components/schemas/VerifySmtpSettingRequest" + } + }, + "application/json;odata.metadata=full": { + "schema": { + "$ref": "#/components/schemas/VerifySmtpSettingRequest" + } + }, + "application/json;odata.metadata=none;odata.streaming=true": { + "schema": { + "$ref": "#/components/schemas/VerifySmtpSettingRequest" + } + }, + "application/json;odata.metadata=none;odata.streaming=false": { + "schema": { + "$ref": "#/components/schemas/VerifySmtpSettingRequest" + } + }, + "application/json;odata.metadata=none": { + "schema": { + "$ref": "#/components/schemas/VerifySmtpSettingRequest" + } + }, + "application/json;odata.streaming=true": { + "schema": { + "$ref": "#/components/schemas/VerifySmtpSettingRequest" + } + }, + "application/json;odata.streaming=false": { + "schema": { + "$ref": "#/components/schemas/VerifySmtpSettingRequest" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/VerifySmtpSettingRequest" + } + }, + "application/json-patch+json": { + "schema": { + "$ref": "#/components/schemas/VerifySmtpSettingRequest" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/VerifySmtpSettingRequest" + } + } + }, + "required": false + }, + "responses": { + "200": { + "description": "Success", + "content": {} + }, + "400": { + "description": "Bad Request", + "content": {} + } + }, + "security": [ + { + "OAuth2": [] + } + ], + "x-codegen-request-body-name": "body" + } + }, + "/odata/TaskActivities/UiPath.Server.Configuration.OData.GetByTaskId(taskId={taskId})": { + "get": { + "tags": [ + "TaskActivities" + ], + "summary": "Gets Task Activities for a Task", + "description": "OAuth required scopes: OR.Tasks or OR.Tasks.Read.\r\n\r\nRequired permissions: Tasks.View.", + "operationId": "TaskActivities_GetByTaskId", + "parameters": [ + { + "name": "taskId", + "in": "path", + "description": "Id of task", + "required": true, + "schema": { + "type": "integer", + "format": "int64" + } + }, + { + "name": "$expand", + "in": "query", + "description": "Indicates the related entities to be represented inline. The maximum depth is 2.", + "schema": { + "type": "string" + } + }, + { + "name": "$filter", + "in": "query", + "description": "Restricts the set of items returned. The maximum number of expressions is 100.", + "schema": { + "type": "string" + } + }, + { + "name": "$select", + "in": "query", + "description": "Limits the properties returned in the result.", + "schema": { + "type": "string" + } + }, + { + "name": "$orderby", + "in": "query", + "description": "Specifies the order in which items are returned. The maximum number of expressions is 5.", + "schema": { + "type": "string" + } + }, + { + "name": "$top", + "in": "query", + "description": "Limits the number of items returned from a collection. The maximum value is 1000.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "$skip", + "in": "query", + "description": "Excludes the specified number of items of the queried collection from the result.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "$count", + "in": "query", + "description": "Indicates whether the total count of items within a collection are returned in the result.", + "schema": { + "type": "boolean" + } + }, + { + "name": "X-UIPATH-OrganizationUnitId", + "in": "header", + "description": "Folder/OrganizationUnit Id", + "schema": { + "type": "integer", + "format": "int64" + } + } + ], + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ODataValueOfIEnumerableOfTaskActivityDto" + } + } + } + } + }, + "security": [ + { + "OAuth2": [] + } + ] + } + }, + "/odata/TaskCatalogs": { + "get": { + "tags": [ + "TaskCatalogs" + ], + "summary": "Gets Task Catalog objects with the given OData queries.", + "description": "OAuth required scopes: OR.Tasks or OR.Tasks.Read.\r\n\r\nRequired permissions: TaskCatalogs.View.", + "operationId": "TaskCatalogs_Get", + "parameters": [ + { + "name": "$expand", + "in": "query", + "description": "Indicates the related entities to be represented inline. The maximum depth is 2.", + "schema": { + "type": "string" + } + }, + { + "name": "$filter", + "in": "query", + "description": "Restricts the set of items returned. The maximum number of expressions is 100.", + "schema": { + "type": "string" + } + }, + { + "name": "$select", + "in": "query", + "description": "Limits the properties returned in the result.", + "schema": { + "type": "string" + } + }, + { + "name": "$orderby", + "in": "query", + "description": "Specifies the order in which items are returned. The maximum number of expressions is 5.", + "schema": { + "type": "string" + } + }, + { + "name": "$top", + "in": "query", + "description": "Limits the number of items returned from a collection. The maximum value is 1000.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "$skip", + "in": "query", + "description": "Excludes the specified number of items of the queried collection from the result.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "$count", + "in": "query", + "description": "Indicates whether the total count of items within a collection are returned in the result.", + "schema": { + "type": "boolean" + } + }, + { + "name": "X-UIPATH-OrganizationUnitId", + "in": "header", + "description": "Folder/OrganizationUnit Id", + "schema": { + "type": "integer", + "format": "int64" + } + } + ], + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ODataValueOfIEnumerableOfTaskCatalogDto" + } + } + } + } + }, + "security": [ + { + "OAuth2": [] + } + ] + } + }, + "/odata/TaskCatalogs({key})": { + "get": { + "tags": [ + "TaskCatalogs" + ], + "summary": "Gets a Task Catalog item by Id.", + "description": "OAuth required scopes: OR.Tasks or OR.Tasks.Read.\r\n\r\nRequired permissions: TaskCatalogs.View.", + "operationId": "TaskCatalogs_GetById", + "parameters": [ + { + "name": "key", + "in": "path", + "description": "id of the object", + "required": true, + "schema": { + "type": "integer", + "format": "int64" + } + }, + { + "name": "$expand", + "in": "query", + "description": "Indicates the related entities to be represented inline. The maximum depth is 2.", + "schema": { + "type": "string" + } + }, + { + "name": "$select", + "in": "query", + "description": "Limits the properties returned in the result.", + "schema": { + "type": "string" + } + }, + { + "name": "X-UIPATH-OrganizationUnitId", + "in": "header", + "description": "Folder/OrganizationUnit Id", + "schema": { + "type": "integer", + "format": "int64" + } + } + ], + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/TaskCatalogDto" + } + } + } + }, + "404": { + "description": "Not Found", + "content": {} + } + }, + "security": [ + { + "OAuth2": [] + } + ] + }, + "delete": { + "tags": [ + "TaskCatalogs" + ], + "summary": "Deletes Task Catalog.", + "description": "OAuth required scopes: OR.Tasks or OR.Tasks.Write.\r\n\r\nRequired permissions: TaskCatalogs.Delete.", + "operationId": "TaskCatalogs_DeleteById", + "parameters": [ + { + "name": "key", + "in": "path", + "description": "Id of the catalog to be deleted", + "required": true, + "schema": { + "type": "integer", + "format": "int64" + } + }, + { + "name": "X-UIPATH-OrganizationUnitId", + "in": "header", + "description": "Folder/OrganizationUnit Id", + "schema": { + "type": "integer", + "format": "int64" + } + } + ], + "responses": { + "204": { + "description": "Successfully deleted task catalog.", + "content": {} + }, + "400": { + "description": "Bad Request", + "content": {} + }, + "409": { + "description": "Catalog have associated tasks.", + "content": {} + } + }, + "security": [ + { + "OAuth2": [] + } + ] + } + }, + "/odata/TaskCatalogs({key})/UiPath.Server.Configuration.OData.UpdateTaskCatalog": { + "post": { + "tags": [ + "TaskCatalogs" + ], + "summary": "Updates Task Catalog.", + "description": "OAuth required scopes: OR.Tasks or OR.Tasks.Write.\r\n\r\nRequired permissions: TaskCatalogs.Edit.", + "operationId": "TaskCatalogs_UpdateTaskCatalogById", + "parameters": [ + { + "name": "key", + "in": "path", + "description": "Key of the object", + "required": true, + "schema": { + "type": "integer", + "format": "int64" + } + }, + { + "name": "X-UIPATH-OrganizationUnitId", + "in": "header", + "description": "Folder/OrganizationUnit Id", + "schema": { + "type": "integer", + "format": "int64" + } + } + ], + "requestBody": { + "description": "TaskCatalog to be updated", + "content": { + "application/json;odata.metadata=minimal;odata.streaming=true": { + "schema": { + "$ref": "#/components/schemas/TaskCatalogRequest" + } + }, + "application/json;odata.metadata=minimal;odata.streaming=false": { + "schema": { + "$ref": "#/components/schemas/TaskCatalogRequest" + } + }, + "application/json;odata.metadata=minimal": { + "schema": { + "$ref": "#/components/schemas/TaskCatalogRequest" + } + }, + "application/json;odata.metadata=full;odata.streaming=true": { + "schema": { + "$ref": "#/components/schemas/TaskCatalogRequest" + } + }, + "application/json;odata.metadata=full;odata.streaming=false": { + "schema": { + "$ref": "#/components/schemas/TaskCatalogRequest" + } + }, + "application/json;odata.metadata=full": { + "schema": { + "$ref": "#/components/schemas/TaskCatalogRequest" + } + }, + "application/json;odata.metadata=none;odata.streaming=true": { + "schema": { + "$ref": "#/components/schemas/TaskCatalogRequest" + } + }, + "application/json;odata.metadata=none;odata.streaming=false": { + "schema": { + "$ref": "#/components/schemas/TaskCatalogRequest" + } + }, + "application/json;odata.metadata=none": { + "schema": { + "$ref": "#/components/schemas/TaskCatalogRequest" + } + }, + "application/json;odata.streaming=true": { + "schema": { + "$ref": "#/components/schemas/TaskCatalogRequest" + } + }, + "application/json;odata.streaming=false": { + "schema": { + "$ref": "#/components/schemas/TaskCatalogRequest" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/TaskCatalogRequest" + } + }, + "application/json-patch+json": { + "schema": { + "$ref": "#/components/schemas/TaskCatalogRequest" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/TaskCatalogRequest" + } + } + }, + "required": false + }, + "responses": { + "200": { + "description": "Updated", + "content": {} + }, + "404": { + "description": "Not Found", + "content": {} + } + }, + "security": [ + { + "OAuth2": [] + } + ], + "x-codegen-request-body-name": "body" + } + }, + "/odata/TaskCatalogs/UiPath.Server.Configuration.OData.CreateTaskCatalog": { + "post": { + "tags": [ + "TaskCatalogs" + ], + "summary": "Creates a new Task Catalog.", + "description": "OAuth required scopes: OR.Tasks or OR.Tasks.Write.\r\n\r\nRequired permissions: TaskCatalogs.Create.", + "operationId": "TaskCatalogs_CreateTaskCatalog", + "parameters": [ + { + "name": "$expand", + "in": "query", + "description": "Indicates the related entities to be represented inline. The maximum depth is 2.", + "schema": { + "type": "string" + } + }, + { + "name": "$select", + "in": "query", + "description": "Limits the properties returned in the result.", + "schema": { + "type": "string" + } + }, + { + "name": "X-UIPATH-OrganizationUnitId", + "in": "header", + "description": "Folder/OrganizationUnit Id", + "schema": { + "type": "integer", + "format": "int64" + } + } + ], + "requestBody": { + "description": "The task catalog to be created.", + "content": { + "application/json;odata.metadata=minimal;odata.streaming=true": { + "schema": { + "$ref": "#/components/schemas/TaskCatalogRequest" + } + }, + "application/json;odata.metadata=minimal;odata.streaming=false": { + "schema": { + "$ref": "#/components/schemas/TaskCatalogRequest" + } + }, + "application/json;odata.metadata=minimal": { + "schema": { + "$ref": "#/components/schemas/TaskCatalogRequest" + } + }, + "application/json;odata.metadata=full;odata.streaming=true": { + "schema": { + "$ref": "#/components/schemas/TaskCatalogRequest" + } + }, + "application/json;odata.metadata=full;odata.streaming=false": { + "schema": { + "$ref": "#/components/schemas/TaskCatalogRequest" + } + }, + "application/json;odata.metadata=full": { + "schema": { + "$ref": "#/components/schemas/TaskCatalogRequest" + } + }, + "application/json;odata.metadata=none;odata.streaming=true": { + "schema": { + "$ref": "#/components/schemas/TaskCatalogRequest" + } + }, + "application/json;odata.metadata=none;odata.streaming=false": { + "schema": { + "$ref": "#/components/schemas/TaskCatalogRequest" + } + }, + "application/json;odata.metadata=none": { + "schema": { + "$ref": "#/components/schemas/TaskCatalogRequest" + } + }, + "application/json;odata.streaming=true": { + "schema": { + "$ref": "#/components/schemas/TaskCatalogRequest" + } + }, + "application/json;odata.streaming=false": { + "schema": { + "$ref": "#/components/schemas/TaskCatalogRequest" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/TaskCatalogRequest" + } + }, + "application/json-patch+json": { + "schema": { + "$ref": "#/components/schemas/TaskCatalogRequest" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/TaskCatalogRequest" + } + } + }, + "required": false + }, + "responses": { + "201": { + "description": "Created response.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/TaskCatalogDto" + } + } + } + } + }, + "security": [ + { + "OAuth2": [] + } + ], + "x-codegen-request-body-name": "body" + } + }, + "/odata/TaskCatalogs/UiPath.Server.Configuration.OData.GetFoldersForTaskCatalog(id={id})": { + "get": { + "tags": [ + "TaskCatalogs" + ], + "summary": "Get all accessible folders where the task catalog is shared, and the total count of folders where it is shared (including unaccessible folders).", + "description": "OAuth required scopes: OR.Tasks or OR.Tasks.Read.\r\n\r\nRequires authentication.", + "operationId": "TaskCatalogs_GetFoldersForTaskCatalogById", + "parameters": [ + { + "name": "id", + "in": "path", + "required": true, + "schema": { + "type": "integer", + "format": "int64" + } + }, + { + "name": "$expand", + "in": "query", + "description": "Indicates the related entities to be represented inline. The maximum depth is 2.", + "schema": { + "type": "string" + } + }, + { + "name": "$select", + "in": "query", + "description": "Limits the properties returned in the result.", + "schema": { + "type": "string" + } + }, + { + "name": "X-UIPATH-OrganizationUnitId", + "in": "header", + "description": "Folder/OrganizationUnit Id", + "schema": { + "type": "integer", + "format": "int64" + } + } + ], + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/AccessibleFoldersDto" + } + } + } + } + }, + "security": [ + { + "OAuth2": [] + } + ] + } + }, + "/odata/TaskCatalogs/UiPath.Server.Configuration.OData.GetTaskCatalogExtendedDetails(taskCatalogId={taskCatalogId})": { + "get": { + "tags": [ + "TaskCatalogs" + ], + "summary": "Validates task catalog deletion request.", + "description": "OAuth required scopes: OR.Tasks or OR.Tasks.Read.\r\n\r\nRequires authentication.", + "operationId": "TaskCatalogs_GetTaskCatalogExtendedDetailsByTaskcatalogid", + "parameters": [ + { + "name": "taskCatalogId", + "in": "path", + "description": "Id of task catalog", + "required": true, + "schema": { + "type": "integer", + "format": "int64" + } + }, + { + "name": "$expand", + "in": "query", + "description": "Indicates the related entities to be represented inline. The maximum depth is 2.", + "schema": { + "type": "string" + } + }, + { + "name": "$select", + "in": "query", + "description": "Limits the properties returned in the result.", + "schema": { + "type": "string" + } + }, + { + "name": "X-UIPATH-OrganizationUnitId", + "in": "header", + "description": "Folder/OrganizationUnit Id", + "schema": { + "type": "integer", + "format": "int64" + } + } + ], + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/TaskCatalogExtendedDetailsDto" + } + } + } + }, + "400": { + "description": "Bad Request", + "content": {} + } + }, + "security": [ + { + "OAuth2": [] + } + ] + } + }, + "/odata/TaskCatalogs/UiPath.Server.Configuration.OData.GetTaskCatalogsFromFoldersWithPermissions": { + "get": { + "tags": [ + "TaskCatalogs" + ], + "summary": "Gets Task Catalogs across folders having given permission with the given OData queries .", + "description": "OAuth required scopes: OR.Tasks or OR.Tasks.Read.\r\n\r\nRequires authentication.", + "operationId": "TaskCatalogs_GetTaskCatalogsFromFoldersWithPermissions", + "parameters": [ + { + "name": "mandatoryPermissions", + "in": "query", + "description": "These represent the additional permissions over TaskCatalog.Read required in the folders the data is retrieved from; all permissions in this set must be met", + "style": "form", + "explode": true, + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + }, + { + "name": "excludeFolderId", + "in": "query", + "description": "The task catalogs beloging to this folder will be excluded.", + "schema": { + "type": "integer", + "format": "int64" + } + }, + { + "name": "distinctBySelect", + "in": "query", + "description": "Return distinct attributes from task catalog for select query. Select param must have exactly 1 value if this is enabled", + "schema": { + "type": "boolean" + } + }, + { + "name": "$expand", + "in": "query", + "description": "Indicates the related entities to be represented inline. The maximum depth is 2.", + "schema": { + "type": "string" + } + }, + { + "name": "$filter", + "in": "query", + "description": "Restricts the set of items returned. The maximum number of expressions is 100.", + "schema": { + "type": "string" + } + }, + { + "name": "$select", + "in": "query", + "description": "Limits the properties returned in the result.", + "schema": { + "type": "string" + } + }, + { + "name": "$orderby", + "in": "query", + "description": "Specifies the order in which items are returned. The maximum number of expressions is 5.", + "schema": { + "type": "string" + } + }, + { + "name": "$top", + "in": "query", + "description": "Limits the number of items returned from a collection. The maximum value is 1000.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "$skip", + "in": "query", + "description": "Excludes the specified number of items of the queried collection from the result.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "$count", + "in": "query", + "description": "Indicates whether the total count of items within a collection are returned in the result.", + "schema": { + "type": "boolean" + } + }, + { + "name": "X-UIPATH-OrganizationUnitId", + "in": "header", + "description": "Folder/OrganizationUnit Id", + "schema": { + "type": "integer", + "format": "int64" + } + } + ], + "responses": { + "200": { + "description": "Ok.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ODataValueOfIEnumerableOfTaskCatalogDto" + } + } + } + } + }, + "security": [ + { + "OAuth2": [] + } + ] + } + }, + "/odata/TaskCatalogs/UiPath.Server.Configuration.OData.ShareToFolders": { + "post": { + "tags": [ + "TaskCatalogs" + ], + "summary": "Makes the task catalogs visible in the specified folders.", + "description": "OAuth required scopes: OR.Tasks or OR.Tasks.Write.\r\n\r\nRequires authentication.", + "operationId": "TaskCatalogs_ShareToFolders", + "parameters": [ + { + "name": "X-UIPATH-OrganizationUnitId", + "in": "header", + "description": "Folder/OrganizationUnit Id", + "schema": { + "type": "integer", + "format": "int64" + } + } + ], + "requestBody": { + "description": "Object containing the ids of the task catalogs and the ids of the folders where it should be shared.", + "content": { + "application/json;odata.metadata=minimal;odata.streaming=true": { + "schema": { + "$ref": "#/components/schemas/TaskCatalogFoldersShareDto" + } + }, + "application/json;odata.metadata=minimal;odata.streaming=false": { + "schema": { + "$ref": "#/components/schemas/TaskCatalogFoldersShareDto" + } + }, + "application/json;odata.metadata=minimal": { + "schema": { + "$ref": "#/components/schemas/TaskCatalogFoldersShareDto" + } + }, + "application/json;odata.metadata=full;odata.streaming=true": { + "schema": { + "$ref": "#/components/schemas/TaskCatalogFoldersShareDto" + } + }, + "application/json;odata.metadata=full;odata.streaming=false": { + "schema": { + "$ref": "#/components/schemas/TaskCatalogFoldersShareDto" + } + }, + "application/json;odata.metadata=full": { + "schema": { + "$ref": "#/components/schemas/TaskCatalogFoldersShareDto" + } + }, + "application/json;odata.metadata=none;odata.streaming=true": { + "schema": { + "$ref": "#/components/schemas/TaskCatalogFoldersShareDto" + } + }, + "application/json;odata.metadata=none;odata.streaming=false": { + "schema": { + "$ref": "#/components/schemas/TaskCatalogFoldersShareDto" + } + }, + "application/json;odata.metadata=none": { + "schema": { + "$ref": "#/components/schemas/TaskCatalogFoldersShareDto" + } + }, + "application/json;odata.streaming=true": { + "schema": { + "$ref": "#/components/schemas/TaskCatalogFoldersShareDto" + } + }, + "application/json;odata.streaming=false": { + "schema": { + "$ref": "#/components/schemas/TaskCatalogFoldersShareDto" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/TaskCatalogFoldersShareDto" + } + }, + "application/json-patch+json": { + "schema": { + "$ref": "#/components/schemas/TaskCatalogFoldersShareDto" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/TaskCatalogFoldersShareDto" + } + } + }, + "required": false + }, + "responses": { + "204": { + "description": "No Content", + "content": {} + }, + "404": { + "description": "One of the specified entities does not exist.", + "content": {} + } + }, + "security": [ + { + "OAuth2": [] + } + ], + "x-codegen-request-body-name": "body" + } + }, + "/odata/TaskDefinitions": { + "get": { + "tags": [ + "TaskDefinitions" + ], + "summary": "Gets Task Definition objects with the given OData queries.", + "description": "OAuth required scopes: OR.Tasks or OR.Tasks.Read.\r\n\r\nRequired permissions: ActionDesign.View.", + "operationId": "TaskDefinitions_Get", + "parameters": [ + { + "name": "$expand", + "in": "query", + "description": "Indicates the related entities to be represented inline. The maximum depth is 2.", + "schema": { + "type": "string" + } + }, + { + "name": "$filter", + "in": "query", + "description": "Restricts the set of items returned. The maximum number of expressions is 100.", + "schema": { + "type": "string" + } + }, + { + "name": "$select", + "in": "query", + "description": "Limits the properties returned in the result.", + "schema": { + "type": "string" + } + }, + { + "name": "$orderby", + "in": "query", + "description": "Specifies the order in which items are returned. The maximum number of expressions is 5.", + "schema": { + "type": "string" + } + }, + { + "name": "$top", + "in": "query", + "description": "Limits the number of items returned from a collection. The maximum value is 1000.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "$skip", + "in": "query", + "description": "Excludes the specified number of items of the queried collection from the result.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "$count", + "in": "query", + "description": "Indicates whether the total count of items within a collection are returned in the result.", + "schema": { + "type": "boolean" + } + } + ], + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ODataValueOfIEnumerableOfTaskDefinitionDto" + } + } + } + } + }, + "security": [ + { + "OAuth2": [] + } + ] + } + }, + "/odata/TaskDefinitions({key})": { + "get": { + "tags": [ + "TaskDefinitions" + ], + "summary": "Gets a Task Definition item by Id.", + "description": "OAuth required scopes: OR.Tasks or OR.Tasks.Read.\r\n\r\nRequired permissions: ActionDesign.View.", + "operationId": "TaskDefinitions_GetById", + "parameters": [ + { + "name": "key", + "in": "path", + "description": "id of the object", + "required": true, + "schema": { + "type": "integer", + "format": "int64" + } + }, + { + "name": "$expand", + "in": "query", + "description": "Indicates the related entities to be represented inline. The maximum depth is 2.", + "schema": { + "type": "string" + } + }, + { + "name": "$select", + "in": "query", + "description": "Limits the properties returned in the result.", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/TaskDefinitionDto" + } + } + } + }, + "404": { + "description": "Not Found", + "content": {} + } + }, + "security": [ + { + "OAuth2": [] + } + ] + } + }, + "/odata/TaskDefinitions({key})/UiPath.Server.Configuration.OData.UpdateTaskDefinition": { + "post": { + "tags": [ + "TaskDefinitions" + ], + "summary": "Updates Task Definition.", + "description": "OAuth required scopes: OR.Tasks or OR.Tasks.Write.\r\n\r\nRequired permissions: ActionDesign.Edit.", + "operationId": "TaskDefinitions_UpdateTaskDefinitionById", + "parameters": [ + { + "name": "key", + "in": "path", + "description": "Key of the object", + "required": true, + "schema": { + "type": "integer", + "format": "int64" + } + } + ], + "requestBody": { + "description": "TaskDefinition to be updated", + "content": { + "application/json;odata.metadata=minimal;odata.streaming=true": { + "schema": { + "$ref": "#/components/schemas/TaskDefinitionRequest" + } + }, + "application/json;odata.metadata=minimal;odata.streaming=false": { + "schema": { + "$ref": "#/components/schemas/TaskDefinitionRequest" + } + }, + "application/json;odata.metadata=minimal": { + "schema": { + "$ref": "#/components/schemas/TaskDefinitionRequest" + } + }, + "application/json;odata.metadata=full;odata.streaming=true": { + "schema": { + "$ref": "#/components/schemas/TaskDefinitionRequest" + } + }, + "application/json;odata.metadata=full;odata.streaming=false": { + "schema": { + "$ref": "#/components/schemas/TaskDefinitionRequest" + } + }, + "application/json;odata.metadata=full": { + "schema": { + "$ref": "#/components/schemas/TaskDefinitionRequest" + } + }, + "application/json;odata.metadata=none;odata.streaming=true": { + "schema": { + "$ref": "#/components/schemas/TaskDefinitionRequest" + } + }, + "application/json;odata.metadata=none;odata.streaming=false": { + "schema": { + "$ref": "#/components/schemas/TaskDefinitionRequest" + } + }, + "application/json;odata.metadata=none": { + "schema": { + "$ref": "#/components/schemas/TaskDefinitionRequest" + } + }, + "application/json;odata.streaming=true": { + "schema": { + "$ref": "#/components/schemas/TaskDefinitionRequest" + } + }, + "application/json;odata.streaming=false": { + "schema": { + "$ref": "#/components/schemas/TaskDefinitionRequest" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/TaskDefinitionRequest" + } + }, + "application/json-patch+json": { + "schema": { + "$ref": "#/components/schemas/TaskDefinitionRequest" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/TaskDefinitionRequest" + } + } + }, + "required": false + }, + "responses": { + "200": { + "description": "Updated", + "content": {} + }, + "404": { + "description": "Not Found", + "content": {} + } + }, + "security": [ + { + "OAuth2": [] + } + ], + "x-codegen-request-body-name": "body" + } + }, + "/odata/TaskDefinitions/UiPath.Server.Configuration.OData.CreateTaskDefinition": { + "post": { + "tags": [ + "TaskDefinitions" + ], + "summary": "Creates a new Task Definition.", + "description": "OAuth required scopes: OR.Tasks or OR.Tasks.Write.\r\n\r\nRequired permissions: ActionDesign.Create.", + "operationId": "TaskDefinitions_CreateTaskDefinition", + "parameters": [ + { + "name": "$expand", + "in": "query", + "description": "Indicates the related entities to be represented inline. The maximum depth is 2.", + "schema": { + "type": "string" + } + }, + { + "name": "$select", + "in": "query", + "description": "Limits the properties returned in the result.", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "description": "The Task Definition to be created.", + "content": { + "application/json;odata.metadata=minimal;odata.streaming=true": { + "schema": { + "$ref": "#/components/schemas/TaskDefinitionRequest" + } + }, + "application/json;odata.metadata=minimal;odata.streaming=false": { + "schema": { + "$ref": "#/components/schemas/TaskDefinitionRequest" + } + }, + "application/json;odata.metadata=minimal": { + "schema": { + "$ref": "#/components/schemas/TaskDefinitionRequest" + } + }, + "application/json;odata.metadata=full;odata.streaming=true": { + "schema": { + "$ref": "#/components/schemas/TaskDefinitionRequest" + } + }, + "application/json;odata.metadata=full;odata.streaming=false": { + "schema": { + "$ref": "#/components/schemas/TaskDefinitionRequest" + } + }, + "application/json;odata.metadata=full": { + "schema": { + "$ref": "#/components/schemas/TaskDefinitionRequest" + } + }, + "application/json;odata.metadata=none;odata.streaming=true": { + "schema": { + "$ref": "#/components/schemas/TaskDefinitionRequest" + } + }, + "application/json;odata.metadata=none;odata.streaming=false": { + "schema": { + "$ref": "#/components/schemas/TaskDefinitionRequest" + } + }, + "application/json;odata.metadata=none": { + "schema": { + "$ref": "#/components/schemas/TaskDefinitionRequest" + } + }, + "application/json;odata.streaming=true": { + "schema": { + "$ref": "#/components/schemas/TaskDefinitionRequest" + } + }, + "application/json;odata.streaming=false": { + "schema": { + "$ref": "#/components/schemas/TaskDefinitionRequest" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/TaskDefinitionRequest" + } + }, + "application/json-patch+json": { + "schema": { + "$ref": "#/components/schemas/TaskDefinitionRequest" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/TaskDefinitionRequest" + } + } + }, + "required": false + }, + "responses": { + "201": { + "description": "Created response.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/TaskDefinitionDto" + } + } + } + } + }, + "security": [ + { + "OAuth2": [] + } + ], + "x-codegen-request-body-name": "body" + } + }, + "/odata/TaskNotes/UiPath.Server.Configuration.OData.CreateTaskNote": { + "post": { + "tags": [ + "TaskNotes" + ], + "summary": "Adds a task note.", + "description": "OAuth required scopes: OR.Tasks or OR.Tasks.Write.\r\n\r\nRequired permissions: Tasks.Edit.", + "operationId": "TaskNotes_CreateTaskNote", + "parameters": [ + { + "name": "$expand", + "in": "query", + "description": "Indicates the related entities to be represented inline. The maximum depth is 2.", + "schema": { + "type": "string" + } + }, + { + "name": "$select", + "in": "query", + "description": "Limits the properties returned in the result.", + "schema": { + "type": "string" + } + }, + { + "name": "X-UIPATH-OrganizationUnitId", + "in": "header", + "description": "Folder/OrganizationUnit Id", + "schema": { + "type": "integer", + "format": "int64" + } + } + ], + "requestBody": { + "description": "The note to be created.", + "content": { + "application/json;odata.metadata=minimal;odata.streaming=true": { + "schema": { + "$ref": "#/components/schemas/TaskNoteCreateRequest" + } + }, + "application/json;odata.metadata=minimal;odata.streaming=false": { + "schema": { + "$ref": "#/components/schemas/TaskNoteCreateRequest" + } + }, + "application/json;odata.metadata=minimal": { + "schema": { + "$ref": "#/components/schemas/TaskNoteCreateRequest" + } + }, + "application/json;odata.metadata=full;odata.streaming=true": { + "schema": { + "$ref": "#/components/schemas/TaskNoteCreateRequest" + } + }, + "application/json;odata.metadata=full;odata.streaming=false": { + "schema": { + "$ref": "#/components/schemas/TaskNoteCreateRequest" + } + }, + "application/json;odata.metadata=full": { + "schema": { + "$ref": "#/components/schemas/TaskNoteCreateRequest" + } + }, + "application/json;odata.metadata=none;odata.streaming=true": { + "schema": { + "$ref": "#/components/schemas/TaskNoteCreateRequest" + } + }, + "application/json;odata.metadata=none;odata.streaming=false": { + "schema": { + "$ref": "#/components/schemas/TaskNoteCreateRequest" + } + }, + "application/json;odata.metadata=none": { + "schema": { + "$ref": "#/components/schemas/TaskNoteCreateRequest" + } + }, + "application/json;odata.streaming=true": { + "schema": { + "$ref": "#/components/schemas/TaskNoteCreateRequest" + } + }, + "application/json;odata.streaming=false": { + "schema": { + "$ref": "#/components/schemas/TaskNoteCreateRequest" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/TaskNoteCreateRequest" + } + }, + "application/json-patch+json": { + "schema": { + "$ref": "#/components/schemas/TaskNoteCreateRequest" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/TaskNoteCreateRequest" + } + } + }, + "required": false + }, + "responses": { + "201": { + "description": "Created", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/TaskNoteDto" + } + } + } + } + }, + "security": [ + { + "OAuth2": [] + } + ], + "x-codegen-request-body-name": "body" + } + }, + "/odata/TaskNotes/UiPath.Server.Configuration.OData.GetByTaskId(taskId={taskId})": { + "get": { + "tags": [ + "TaskNotes" + ], + "summary": "Gets Task Notes for a Task", + "description": "OAuth required scopes: OR.Tasks or OR.Tasks.Read.\r\n\r\nRequired permissions: Tasks.View.", + "operationId": "TaskNotes_GetByTaskId", + "parameters": [ + { + "name": "taskId", + "in": "path", + "description": "Id of the task", + "required": true, + "schema": { + "type": "integer", + "format": "int64" + } + }, + { + "name": "$expand", + "in": "query", + "description": "Indicates the related entities to be represented inline. The maximum depth is 2.", + "schema": { + "type": "string" + } + }, + { + "name": "$filter", + "in": "query", + "description": "Restricts the set of items returned. The maximum number of expressions is 100.", + "schema": { + "type": "string" + } + }, + { + "name": "$select", + "in": "query", + "description": "Limits the properties returned in the result.", + "schema": { + "type": "string" + } + }, + { + "name": "$orderby", + "in": "query", + "description": "Specifies the order in which items are returned. The maximum number of expressions is 5.", + "schema": { + "type": "string" + } + }, + { + "name": "$top", + "in": "query", + "description": "Limits the number of items returned from a collection. The maximum value is 1000.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "$skip", + "in": "query", + "description": "Excludes the specified number of items of the queried collection from the result.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "$count", + "in": "query", + "description": "Indicates whether the total count of items within a collection are returned in the result.", + "schema": { + "type": "boolean" + } + }, + { + "name": "X-UIPATH-OrganizationUnitId", + "in": "header", + "description": "Folder/OrganizationUnit Id", + "schema": { + "type": "integer", + "format": "int64" + } + } + ], + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ODataValueOfIEnumerableOfTaskNoteDto" + } + } + } + } + }, + "security": [ + { + "OAuth2": [] + } + ] + } + }, + "/odata/Tasks": { + "get": { + "tags": [ + "Tasks" + ], + "summary": "Gets Task objects from classic folders with the given OData queries.", + "description": "OAuth required scopes: OR.Tasks or OR.Tasks.Read.\r\n\r\nRequires authentication.", + "operationId": "Tasks_Get", + "parameters": [ + { + "name": "$expand", + "in": "query", + "description": "Indicates the related entities to be represented inline. The maximum depth is 2.", + "schema": { + "type": "string" + } + }, + { + "name": "$filter", + "in": "query", + "description": "Restricts the set of items returned. The maximum number of expressions is 100.", + "schema": { + "type": "string" + } + }, + { + "name": "$select", + "in": "query", + "description": "Limits the properties returned in the result.", + "schema": { + "type": "string" + } + }, + { + "name": "$orderby", + "in": "query", + "description": "Specifies the order in which items are returned. The maximum number of expressions is 5.", + "schema": { + "type": "string" + } + }, + { + "name": "$top", + "in": "query", + "description": "Limits the number of items returned from a collection. The maximum value is 1000.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "$skip", + "in": "query", + "description": "Excludes the specified number of items of the queried collection from the result.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "$count", + "in": "query", + "description": "Indicates whether the total count of items within a collection are returned in the result.", + "schema": { + "type": "boolean" + } + }, + { + "name": "X-UIPATH-OrganizationUnitId", + "in": "header", + "description": "Folder/OrganizationUnit Id", + "schema": { + "type": "integer", + "format": "int64" + } + } + ], + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ODataValueOfIEnumerableOfTaskDto" + } + } + } + } + }, + "security": [ + { + "OAuth2": [] + } + ] + } + }, + "/odata/Tasks({key})": { + "get": { + "tags": [ + "Tasks" + ], + "summary": "Gets a Task with the given primary key.", + "description": "OAuth required scopes: OR.Tasks or OR.Tasks.Read.\r\n\r\nRequires authentication.", + "operationId": "Tasks_GetById", + "parameters": [ + { + "name": "key", + "in": "path", + "description": "The primary key of the Task to be retrieved.", + "required": true, + "schema": { + "type": "integer", + "format": "int64" + } + }, + { + "name": "$expand", + "in": "query", + "description": "Indicates the related entities to be represented inline. The maximum depth is 2.", + "schema": { + "type": "string" + } + }, + { + "name": "$select", + "in": "query", + "description": "Limits the properties returned in the result.", + "schema": { + "type": "string" + } + }, + { + "name": "X-UIPATH-OrganizationUnitId", + "in": "header", + "description": "Folder/OrganizationUnit Id", + "schema": { + "type": "integer", + "format": "int64" + } + } + ], + "responses": { + "200": { + "description": "Ok result of Task object.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/TaskDto" + } + } + } + }, + "404": { + "description": "Not found result.", + "content": {} + } + }, + "security": [ + { + "OAuth2": [] + } + ] + } + }, + "/odata/Tasks/UiPath.Server.Configuration.OData.AssignTasks": { + "post": { + "tags": [ + "Tasks" + ], + "summary": "Assigns the tasks to given users.", + "description": "OAuth required scopes: OR.Tasks or OR.Tasks.Write.\r\n\r\nRequires authentication.", + "operationId": "Tasks_AssignTasks", + "parameters": [ + { + "name": "$expand", + "in": "query", + "description": "Indicates the related entities to be represented inline. The maximum depth is 2.", + "schema": { + "type": "string" + } + }, + { + "name": "$filter", + "in": "query", + "description": "Restricts the set of items returned. The maximum number of expressions is 100.", + "schema": { + "type": "string" + } + }, + { + "name": "$select", + "in": "query", + "description": "Limits the properties returned in the result.", + "schema": { + "type": "string" + } + }, + { + "name": "$orderby", + "in": "query", + "description": "Specifies the order in which items are returned. The maximum number of expressions is 5.", + "schema": { + "type": "string" + } + }, + { + "name": "$count", + "in": "query", + "description": "Indicates whether the total count of items within a collection are returned in the result.", + "schema": { + "type": "boolean" + } + }, + { + "name": "X-UIPATH-OrganizationUnitId", + "in": "header", + "description": "Folder/OrganizationUnit Id", + "schema": { + "type": "integer", + "format": "int64" + } + } + ], + "requestBody": { + "description": "The json containing task and user Ids for assignment.", + "content": { + "application/json;odata.metadata=minimal;odata.streaming=true": { + "schema": { + "$ref": "#/components/schemas/TasksAssignRequest" + } + }, + "application/json;odata.metadata=minimal;odata.streaming=false": { + "schema": { + "$ref": "#/components/schemas/TasksAssignRequest" + } + }, + "application/json;odata.metadata=minimal": { + "schema": { + "$ref": "#/components/schemas/TasksAssignRequest" + } + }, + "application/json;odata.metadata=full;odata.streaming=true": { + "schema": { + "$ref": "#/components/schemas/TasksAssignRequest" + } + }, + "application/json;odata.metadata=full;odata.streaming=false": { + "schema": { + "$ref": "#/components/schemas/TasksAssignRequest" + } + }, + "application/json;odata.metadata=full": { + "schema": { + "$ref": "#/components/schemas/TasksAssignRequest" + } + }, + "application/json;odata.metadata=none;odata.streaming=true": { + "schema": { + "$ref": "#/components/schemas/TasksAssignRequest" + } + }, + "application/json;odata.metadata=none;odata.streaming=false": { + "schema": { + "$ref": "#/components/schemas/TasksAssignRequest" + } + }, + "application/json;odata.metadata=none": { + "schema": { + "$ref": "#/components/schemas/TasksAssignRequest" + } + }, + "application/json;odata.streaming=true": { + "schema": { + "$ref": "#/components/schemas/TasksAssignRequest" + } + }, + "application/json;odata.streaming=false": { + "schema": { + "$ref": "#/components/schemas/TasksAssignRequest" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/TasksAssignRequest" + } + }, + "application/json-patch+json": { + "schema": { + "$ref": "#/components/schemas/TasksAssignRequest" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/TasksAssignRequest" + } + } + }, + "required": false + }, + "responses": { + "200": { + "description": "Update successful.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ODataValueOfIEnumerableOfTaskOperationErrorResponse" + } + } + } + } + }, + "security": [ + { + "OAuth2": [] + } + ], + "x-codegen-request-body-name": "body" + } + }, + "/odata/Tasks/UiPath.Server.Configuration.OData.DeleteTasks": { + "post": { + "tags": [ + "Tasks" + ], + "summary": "Deletes the tasks.", + "description": "OAuth required scopes: OR.Tasks or OR.Tasks.Write.\r\n\r\nRequires authentication.", + "operationId": "Tasks_DeleteTasks", + "parameters": [ + { + "name": "$expand", + "in": "query", + "description": "Indicates the related entities to be represented inline. The maximum depth is 2.", + "schema": { + "type": "string" + } + }, + { + "name": "$filter", + "in": "query", + "description": "Restricts the set of items returned. The maximum number of expressions is 100.", + "schema": { + "type": "string" + } + }, + { + "name": "$select", + "in": "query", + "description": "Limits the properties returned in the result.", + "schema": { + "type": "string" + } + }, + { + "name": "$orderby", + "in": "query", + "description": "Specifies the order in which items are returned. The maximum number of expressions is 5.", + "schema": { + "type": "string" + } + }, + { + "name": "$count", + "in": "query", + "description": "Indicates whether the total count of items within a collection are returned in the result.", + "schema": { + "type": "boolean" + } + }, + { + "name": "X-UIPATH-OrganizationUnitId", + "in": "header", + "description": "Folder/OrganizationUnit Id", + "schema": { + "type": "integer", + "format": "int64" + } + } + ], + "requestBody": { + "description": "The json containing list of task ids for deletion.", + "content": { + "application/json;odata.metadata=minimal;odata.streaming=true": { + "schema": { + "$ref": "#/components/schemas/TasksDeleteRequest" + } + }, + "application/json;odata.metadata=minimal;odata.streaming=false": { + "schema": { + "$ref": "#/components/schemas/TasksDeleteRequest" + } + }, + "application/json;odata.metadata=minimal": { + "schema": { + "$ref": "#/components/schemas/TasksDeleteRequest" + } + }, + "application/json;odata.metadata=full;odata.streaming=true": { + "schema": { + "$ref": "#/components/schemas/TasksDeleteRequest" + } + }, + "application/json;odata.metadata=full;odata.streaming=false": { + "schema": { + "$ref": "#/components/schemas/TasksDeleteRequest" + } + }, + "application/json;odata.metadata=full": { + "schema": { + "$ref": "#/components/schemas/TasksDeleteRequest" + } + }, + "application/json;odata.metadata=none;odata.streaming=true": { + "schema": { + "$ref": "#/components/schemas/TasksDeleteRequest" + } + }, + "application/json;odata.metadata=none;odata.streaming=false": { + "schema": { + "$ref": "#/components/schemas/TasksDeleteRequest" + } + }, + "application/json;odata.metadata=none": { + "schema": { + "$ref": "#/components/schemas/TasksDeleteRequest" + } + }, + "application/json;odata.streaming=true": { + "schema": { + "$ref": "#/components/schemas/TasksDeleteRequest" + } + }, + "application/json;odata.streaming=false": { + "schema": { + "$ref": "#/components/schemas/TasksDeleteRequest" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/TasksDeleteRequest" + } + }, + "application/json-patch+json": { + "schema": { + "$ref": "#/components/schemas/TasksDeleteRequest" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/TasksDeleteRequest" + } + } + }, + "required": false + }, + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ODataValueOfIEnumerableOfTaskOperationErrorResponse" + } + } + } + } + }, + "security": [ + { + "OAuth2": [] + } + ], + "x-codegen-request-body-name": "body" + } + }, + "/odata/Tasks/UiPath.Server.Configuration.OData.EditTaskMetadata": { + "post": { + "tags": [ + "Tasks" + ], + "summary": "Edits the metadata of a task", + "description": "OAuth required scopes: OR.Tasks or OR.Tasks.Write.\r\n\r\nRequires authentication.", + "operationId": "Tasks_EditTaskMetadata", + "parameters": [ + { + "name": "X-UIPATH-OrganizationUnitId", + "in": "header", + "description": "Folder/OrganizationUnit Id", + "schema": { + "type": "integer", + "format": "int64" + } + } + ], + "requestBody": { + "content": { + "application/json;odata.metadata=minimal;odata.streaming=true": { + "schema": { + "$ref": "#/components/schemas/EditTaskMetadataRequest" + } + }, + "application/json;odata.metadata=minimal;odata.streaming=false": { + "schema": { + "$ref": "#/components/schemas/EditTaskMetadataRequest" + } + }, + "application/json;odata.metadata=minimal": { + "schema": { + "$ref": "#/components/schemas/EditTaskMetadataRequest" + } + }, + "application/json;odata.metadata=full;odata.streaming=true": { + "schema": { + "$ref": "#/components/schemas/EditTaskMetadataRequest" + } + }, + "application/json;odata.metadata=full;odata.streaming=false": { + "schema": { + "$ref": "#/components/schemas/EditTaskMetadataRequest" + } + }, + "application/json;odata.metadata=full": { + "schema": { + "$ref": "#/components/schemas/EditTaskMetadataRequest" + } + }, + "application/json;odata.metadata=none;odata.streaming=true": { + "schema": { + "$ref": "#/components/schemas/EditTaskMetadataRequest" + } + }, + "application/json;odata.metadata=none;odata.streaming=false": { + "schema": { + "$ref": "#/components/schemas/EditTaskMetadataRequest" + } + }, + "application/json;odata.metadata=none": { + "schema": { + "$ref": "#/components/schemas/EditTaskMetadataRequest" + } + }, + "application/json;odata.streaming=true": { + "schema": { + "$ref": "#/components/schemas/EditTaskMetadataRequest" + } + }, + "application/json;odata.streaming=false": { + "schema": { + "$ref": "#/components/schemas/EditTaskMetadataRequest" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/EditTaskMetadataRequest" + } + }, + "application/json-patch+json": { + "schema": { + "$ref": "#/components/schemas/EditTaskMetadataRequest" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/EditTaskMetadataRequest" + } + } + }, + "required": false + }, + "responses": { + "200": { + "description": "Ok task successfully edited.", + "content": {} + }, + "404": { + "description": "Not found result.", + "content": {} + } + }, + "security": [ + { + "OAuth2": [] + } + ], + "x-codegen-request-body-name": "body" + } + }, + "/odata/Tasks/UiPath.Server.Configuration.OData.GetTaskPermissions": { + "get": { + "tags": [ + "Tasks" + ], + "summary": "Gets all the tasks related permissions for the logged in user on the folder in session", + "description": "OAuth required scopes: OR.Tasks or OR.Tasks.Read.\r\n\r\nRequires authentication.", + "operationId": "Tasks_GetTaskPermissions", + "parameters": [ + { + "name": "$expand", + "in": "query", + "description": "Indicates the related entities to be represented inline. The maximum depth is 2.", + "schema": { + "type": "string" + } + }, + { + "name": "$filter", + "in": "query", + "description": "Restricts the set of items returned. The maximum number of expressions is 100.", + "schema": { + "type": "string" + } + }, + { + "name": "$select", + "in": "query", + "description": "Limits the properties returned in the result.", + "schema": { + "type": "string" + } + }, + { + "name": "$orderby", + "in": "query", + "description": "Specifies the order in which items are returned. The maximum number of expressions is 5.", + "schema": { + "type": "string" + } + }, + { + "name": "$count", + "in": "query", + "description": "Indicates whether the total count of items within a collection are returned in the result.", + "schema": { + "type": "boolean" + } + }, + { + "name": "X-UIPATH-OrganizationUnitId", + "in": "header", + "description": "Folder/OrganizationUnit Id", + "schema": { + "type": "integer", + "format": "int64" + } + } + ], + "responses": { + "200": { + "description": "Ok.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ODataValueOfIEnumerableOfPermissionDto" + } + } + } + } + }, + "security": [ + { + "OAuth2": [] + } + ] + } + }, + "/odata/Tasks/UiPath.Server.Configuration.OData.GetTasksAcrossFolders": { + "get": { + "tags": [ + "Tasks" + ], + "summary": "Gets Task objects across folders (including Modern folders) with the given OData queries.", + "description": "OAuth required scopes: OR.Tasks or OR.Tasks.Read.\r\n\r\nRequires authentication.", + "operationId": "Tasks_GetTasksAcrossFolders", + "parameters": [ + { + "name": "event", + "in": "query", + "description": "Operation performed on the task", + "schema": { + "type": "string", + "enum": [ + "ForwardedEver" + ], + "x-ms-enum": { + "name": "TaskEvent", + "modelAsString": false + } + }, + "x-ms-enum": { + "name": "TaskEvent", + "modelAsString": false + } + }, + { + "name": "$expand", + "in": "query", + "description": "Indicates the related entities to be represented inline. The maximum depth is 2.", + "schema": { + "type": "string" + } + }, + { + "name": "$filter", + "in": "query", + "description": "Restricts the set of items returned. The maximum number of expressions is 100.", + "schema": { + "type": "string" + } + }, + { + "name": "$select", + "in": "query", + "description": "Limits the properties returned in the result.", + "schema": { + "type": "string" + } + }, + { + "name": "$orderby", + "in": "query", + "description": "Specifies the order in which items are returned. The maximum number of expressions is 5.", + "schema": { + "type": "string" + } + }, + { + "name": "$top", + "in": "query", + "description": "Limits the number of items returned from a collection. The maximum value is 1000.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "$skip", + "in": "query", + "description": "Excludes the specified number of items of the queried collection from the result.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "$count", + "in": "query", + "description": "Indicates whether the total count of items within a collection are returned in the result.", + "schema": { + "type": "boolean" + } + }, + { + "name": "X-UIPATH-OrganizationUnitId", + "in": "header", + "description": "Folder/OrganizationUnit Id", + "schema": { + "type": "integer", + "format": "int64" + } + } + ], + "responses": { + "200": { + "description": "Ok.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ODataValueOfIEnumerableOfTaskDto" + } + } + } + } + }, + "security": [ + { + "OAuth2": [] + } + ] + } + }, + "/odata/Tasks/UiPath.Server.Configuration.OData.GetTasksAcrossFoldersForAdmin": { + "get": { + "tags": [ + "Tasks" + ], + "summary": "Gets Task objects across folders (including Modern folders) where the current user has task admin permissions, with the given OData query options", + "description": "OAuth required scopes: OR.Tasks or OR.Tasks.Read.\r\n\r\nRequires authentication.", + "operationId": "Tasks_GetTasksAcrossFoldersForAdmin", + "parameters": [ + { + "name": "event", + "in": "query", + "description": "Operation performed on the task", + "schema": { + "type": "string", + "enum": [ + "ForwardedEver" + ], + "x-ms-enum": { + "name": "TaskEvent", + "modelAsString": false + } + }, + "x-ms-enum": { + "name": "TaskEvent", + "modelAsString": false + } + }, + { + "name": "$expand", + "in": "query", + "description": "Indicates the related entities to be represented inline. The maximum depth is 2.", + "schema": { + "type": "string" + } + }, + { + "name": "$filter", + "in": "query", + "description": "Restricts the set of items returned. The maximum number of expressions is 100.", + "schema": { + "type": "string" + } + }, + { + "name": "$select", + "in": "query", + "description": "Limits the properties returned in the result.", + "schema": { + "type": "string" + } + }, + { + "name": "$orderby", + "in": "query", + "description": "Specifies the order in which items are returned. The maximum number of expressions is 5.", + "schema": { + "type": "string" + } + }, + { + "name": "$top", + "in": "query", + "description": "Limits the number of items returned from a collection. The maximum value is 1000.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "$skip", + "in": "query", + "description": "Excludes the specified number of items of the queried collection from the result.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "$count", + "in": "query", + "description": "Indicates whether the total count of items within a collection are returned in the result.", + "schema": { + "type": "boolean" + } + }, + { + "name": "X-UIPATH-OrganizationUnitId", + "in": "header", + "description": "Folder/OrganizationUnit Id", + "schema": { + "type": "integer", + "format": "int64" + } + } + ], + "responses": { + "200": { + "description": "Ok.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ODataValueOfIEnumerableOfTaskDto" + } + } + } + } + }, + "security": [ + { + "OAuth2": [] + } + ] + } + }, + "/odata/Tasks/UiPath.Server.Configuration.OData.GetTaskUsers(organizationUnitId={organizationUnitId})": { + "get": { + "tags": [ + "Tasks" + ], + "summary": "Gets users in given Organization Unit, who have Tasks.View and Tasks.Edit permissions", + "description": "OAuth required scopes: OR.Tasks or OR.Tasks.Read.\r\n\r\nRequired permissions: Tasks.View and Tasks.Edit.", + "operationId": "Tasks_GetTaskUsersByOrganizationunitid", + "parameters": [ + { + "name": "organizationUnitId", + "in": "path", + "description": "organizationUnitId of the task", + "required": true, + "schema": { + "type": "integer", + "format": "int64" + } + }, + { + "name": "$expand", + "in": "query", + "description": "Indicates the related entities to be represented inline. The maximum depth is 2.", + "schema": { + "type": "string" + } + }, + { + "name": "$filter", + "in": "query", + "description": "Restricts the set of items returned. The maximum number of expressions is 100.", + "schema": { + "type": "string" + } + }, + { + "name": "$select", + "in": "query", + "description": "Limits the properties returned in the result.", + "schema": { + "type": "string" + } + }, + { + "name": "$orderby", + "in": "query", + "description": "Specifies the order in which items are returned. The maximum number of expressions is 5.", + "schema": { + "type": "string" + } + }, + { + "name": "$top", + "in": "query", + "description": "Limits the number of items returned from a collection. The maximum value is 1000.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "$skip", + "in": "query", + "description": "Excludes the specified number of items of the queried collection from the result.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "$count", + "in": "query", + "description": "Indicates whether the total count of items within a collection are returned in the result.", + "schema": { + "type": "boolean" + } + }, + { + "name": "X-UIPATH-OrganizationUnitId", + "in": "header", + "description": "Folder/OrganizationUnit Id", + "schema": { + "type": "integer", + "format": "int64" + } + } + ], + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ODataValueOfIEnumerableOfUserLoginInfoDto" + } + } + } + } + }, + "security": [ + { + "OAuth2": [] + } + ] + } + }, + "/odata/Tasks/UiPath.Server.Configuration.OData.ReassignTasks": { + "post": { + "tags": [ + "Tasks" + ], + "summary": "Reassigns the tasks to given users.", + "description": "OAuth required scopes: OR.Tasks or OR.Tasks.Write.\r\n\r\nRequires authentication.", + "operationId": "Tasks_ReassignTasks", + "parameters": [ + { + "name": "$expand", + "in": "query", + "description": "Indicates the related entities to be represented inline. The maximum depth is 2.", + "schema": { + "type": "string" + } + }, + { + "name": "$filter", + "in": "query", + "description": "Restricts the set of items returned. The maximum number of expressions is 100.", + "schema": { + "type": "string" + } + }, + { + "name": "$select", + "in": "query", + "description": "Limits the properties returned in the result.", + "schema": { + "type": "string" + } + }, + { + "name": "$orderby", + "in": "query", + "description": "Specifies the order in which items are returned. The maximum number of expressions is 5.", + "schema": { + "type": "string" + } + }, + { + "name": "$count", + "in": "query", + "description": "Indicates whether the total count of items within a collection are returned in the result.", + "schema": { + "type": "boolean" + } + }, + { + "name": "X-UIPATH-OrganizationUnitId", + "in": "header", + "description": "Folder/OrganizationUnit Id", + "schema": { + "type": "integer", + "format": "int64" + } + } + ], + "requestBody": { + "description": "The json containing task and user Ids for reassignment.", + "content": { + "application/json;odata.metadata=minimal;odata.streaming=true": { + "schema": { + "$ref": "#/components/schemas/TasksAssignRequest" + } + }, + "application/json;odata.metadata=minimal;odata.streaming=false": { + "schema": { + "$ref": "#/components/schemas/TasksAssignRequest" + } + }, + "application/json;odata.metadata=minimal": { + "schema": { + "$ref": "#/components/schemas/TasksAssignRequest" + } + }, + "application/json;odata.metadata=full;odata.streaming=true": { + "schema": { + "$ref": "#/components/schemas/TasksAssignRequest" + } + }, + "application/json;odata.metadata=full;odata.streaming=false": { + "schema": { + "$ref": "#/components/schemas/TasksAssignRequest" + } + }, + "application/json;odata.metadata=full": { + "schema": { + "$ref": "#/components/schemas/TasksAssignRequest" + } + }, + "application/json;odata.metadata=none;odata.streaming=true": { + "schema": { + "$ref": "#/components/schemas/TasksAssignRequest" + } + }, + "application/json;odata.metadata=none;odata.streaming=false": { + "schema": { + "$ref": "#/components/schemas/TasksAssignRequest" + } + }, + "application/json;odata.metadata=none": { + "schema": { + "$ref": "#/components/schemas/TasksAssignRequest" + } + }, + "application/json;odata.streaming=true": { + "schema": { + "$ref": "#/components/schemas/TasksAssignRequest" + } + }, + "application/json;odata.streaming=false": { + "schema": { + "$ref": "#/components/schemas/TasksAssignRequest" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/TasksAssignRequest" + } + }, + "application/json-patch+json": { + "schema": { + "$ref": "#/components/schemas/TasksAssignRequest" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/TasksAssignRequest" + } + } + }, + "required": false + }, + "responses": { + "200": { + "description": "Update successful.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ODataValueOfIEnumerableOfTaskOperationErrorResponse" + } + } + } + } + }, + "security": [ + { + "OAuth2": [] + } + ], + "x-codegen-request-body-name": "body" + } + }, + "/odata/Tasks/UiPath.Server.Configuration.OData.UnassignTasks": { + "post": { + "tags": [ + "Tasks" + ], + "summary": "Unassigns the tasks from the users.", + "description": "OAuth required scopes: OR.Tasks or OR.Tasks.Write.\r\n\r\nRequires authentication.", + "operationId": "Tasks_UnassignTasks", + "parameters": [ + { + "name": "$expand", + "in": "query", + "description": "Indicates the related entities to be represented inline. The maximum depth is 2.", + "schema": { + "type": "string" + } + }, + { + "name": "$filter", + "in": "query", + "description": "Restricts the set of items returned. The maximum number of expressions is 100.", + "schema": { + "type": "string" + } + }, + { + "name": "$select", + "in": "query", + "description": "Limits the properties returned in the result.", + "schema": { + "type": "string" + } + }, + { + "name": "$orderby", + "in": "query", + "description": "Specifies the order in which items are returned. The maximum number of expressions is 5.", + "schema": { + "type": "string" + } + }, + { + "name": "$count", + "in": "query", + "description": "Indicates whether the total count of items within a collection are returned in the result.", + "schema": { + "type": "boolean" + } + }, + { + "name": "X-UIPATH-OrganizationUnitId", + "in": "header", + "description": "Folder/OrganizationUnit Id", + "schema": { + "type": "integer", + "format": "int64" + } + } + ], + "requestBody": { + "description": "The json containing list of task ids for un-assignments.", + "content": { + "application/json;odata.metadata=minimal;odata.streaming=true": { + "schema": { + "$ref": "#/components/schemas/TasksDeleteRequest" + } + }, + "application/json;odata.metadata=minimal;odata.streaming=false": { + "schema": { + "$ref": "#/components/schemas/TasksDeleteRequest" + } + }, + "application/json;odata.metadata=minimal": { + "schema": { + "$ref": "#/components/schemas/TasksDeleteRequest" + } + }, + "application/json;odata.metadata=full;odata.streaming=true": { + "schema": { + "$ref": "#/components/schemas/TasksDeleteRequest" + } + }, + "application/json;odata.metadata=full;odata.streaming=false": { + "schema": { + "$ref": "#/components/schemas/TasksDeleteRequest" + } + }, + "application/json;odata.metadata=full": { + "schema": { + "$ref": "#/components/schemas/TasksDeleteRequest" + } + }, + "application/json;odata.metadata=none;odata.streaming=true": { + "schema": { + "$ref": "#/components/schemas/TasksDeleteRequest" + } + }, + "application/json;odata.metadata=none;odata.streaming=false": { + "schema": { + "$ref": "#/components/schemas/TasksDeleteRequest" + } + }, + "application/json;odata.metadata=none": { + "schema": { + "$ref": "#/components/schemas/TasksDeleteRequest" + } + }, + "application/json;odata.streaming=true": { + "schema": { + "$ref": "#/components/schemas/TasksDeleteRequest" + } + }, + "application/json;odata.streaming=false": { + "schema": { + "$ref": "#/components/schemas/TasksDeleteRequest" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/TasksDeleteRequest" + } + }, + "application/json-patch+json": { + "schema": { + "$ref": "#/components/schemas/TasksDeleteRequest" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/TasksDeleteRequest" + } + } + }, + "required": false + }, + "responses": { + "200": { + "description": "Update successful.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ODataValueOfIEnumerableOfTaskOperationErrorResponse" + } + } + } + } + }, + "security": [ + { + "OAuth2": [] + } + ], + "x-codegen-request-body-name": "body" + } + }, + "/odata/Tenants": { + "get": { + "tags": [ + "Tenants" + ], + "summary": "Gets tenants.", + "description": "OAuth required scopes: OR.Administration or OR.Administration.Read.\r\n\r\nHost only. Requires authentication.", + "operationId": "Tenants_Get", + "parameters": [ + { + "name": "skipLastLoginTime", + "in": "query", + "description": "Skips computation of last login time for an improved performance", + "schema": { + "type": "boolean", + "default": false + } + }, + { + "name": "$expand", + "in": "query", + "description": "Indicates the related entities to be represented inline. The maximum depth is 2.", + "schema": { + "type": "string" + } + }, + { + "name": "$filter", + "in": "query", + "description": "Restricts the set of items returned. The maximum number of expressions is 100.", + "schema": { + "type": "string" + } + }, + { + "name": "$select", + "in": "query", + "description": "Limits the properties returned in the result.", + "schema": { + "type": "string" + } + }, + { + "name": "$orderby", + "in": "query", + "description": "Specifies the order in which items are returned. The maximum number of expressions is 5.", + "schema": { + "type": "string" + } + }, + { + "name": "$top", + "in": "query", + "description": "Limits the number of items returned from a collection. The maximum value is 1000.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "$skip", + "in": "query", + "description": "Excludes the specified number of items of the queried collection from the result.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "$count", + "in": "query", + "description": "Indicates whether the total count of items within a collection are returned in the result.", + "schema": { + "type": "boolean" + } + } + ], + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ODataValueOfIEnumerableOfTenantDto" + } + } + } + } + }, + "security": [ + { + "OAuth2": [] + } + ] + }, + "post": { + "tags": [ + "Tenants" + ], + "summary": "Creates a tenant.", + "description": "OAuth required scopes: OR.Administration or OR.Administration.Write.\r\n\r\nHost only. Requires authentication.", + "operationId": "Tenants_Post", + "requestBody": { + "content": { + "application/json;odata.metadata=minimal;odata.streaming=true": { + "schema": { + "$ref": "#/components/schemas/TenantDto" + } + }, + "application/json;odata.metadata=minimal;odata.streaming=false": { + "schema": { + "$ref": "#/components/schemas/TenantDto" + } + }, + "application/json;odata.metadata=minimal": { + "schema": { + "$ref": "#/components/schemas/TenantDto" + } + }, + "application/json;odata.metadata=full;odata.streaming=true": { + "schema": { + "$ref": "#/components/schemas/TenantDto" + } + }, + "application/json;odata.metadata=full;odata.streaming=false": { + "schema": { + "$ref": "#/components/schemas/TenantDto" + } + }, + "application/json;odata.metadata=full": { + "schema": { + "$ref": "#/components/schemas/TenantDto" + } + }, + "application/json;odata.metadata=none;odata.streaming=true": { + "schema": { + "$ref": "#/components/schemas/TenantDto" + } + }, + "application/json;odata.metadata=none;odata.streaming=false": { + "schema": { + "$ref": "#/components/schemas/TenantDto" + } + }, + "application/json;odata.metadata=none": { + "schema": { + "$ref": "#/components/schemas/TenantDto" + } + }, + "application/json;odata.streaming=true": { + "schema": { + "$ref": "#/components/schemas/TenantDto" + } + }, + "application/json;odata.streaming=false": { + "schema": { + "$ref": "#/components/schemas/TenantDto" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/TenantDto" + } + }, + "application/json-patch+json": { + "schema": { + "$ref": "#/components/schemas/TenantDto" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/TenantDto" + } + } + }, + "required": false + }, + "responses": { + "201": { + "description": "Created", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/TenantDto" + } + } + } + } + }, + "security": [ + { + "OAuth2": [] + } + ], + "x-codegen-request-body-name": "body" + } + }, + "/odata/Tenants({key})": { + "get": { + "tags": [ + "Tenants" + ], + "summary": "Gets a single tenant based on its id.", + "description": "OAuth required scopes: OR.Administration or OR.Administration.Read.\r\n\r\nHost only. Requires authentication.", + "operationId": "Tenants_GetById", + "parameters": [ + { + "name": "key", + "in": "path", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "$expand", + "in": "query", + "description": "Indicates the related entities to be represented inline. The maximum depth is 2.", + "schema": { + "type": "string" + } + }, + { + "name": "$select", + "in": "query", + "description": "Limits the properties returned in the result.", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/TenantDto" + } + } + } + } + }, + "security": [ + { + "OAuth2": [] + } + ] + }, + "delete": { + "tags": [ + "Tenants" + ], + "summary": "Deletes a tenant based on its id.", + "description": "OAuth required scopes: OR.Administration or OR.Administration.Write.\r\n\r\nHost only. Requires authentication.", + "operationId": "Tenants_DeleteById", + "parameters": [ + { + "name": "key", + "in": "path", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "responses": { + "204": { + "description": "No Content", + "content": {} + } + }, + "security": [ + { + "OAuth2": [] + } + ] + }, + "patch": { + "tags": [ + "Tenants" + ], + "summary": "Partially updates a tenant", + "description": "OAuth required scopes: OR.Administration or OR.Administration.Write.\r\n\r\nHost only. Requires authentication.", + "operationId": "Tenants_PatchById", + "parameters": [ + { + "name": "key", + "in": "path", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "requestBody": { + "content": { + "application/json;odata.metadata=minimal;odata.streaming=true": { + "schema": { + "$ref": "#/components/schemas/TenantDto" + } + }, + "application/json;odata.metadata=minimal;odata.streaming=false": { + "schema": { + "$ref": "#/components/schemas/TenantDto" + } + }, + "application/json;odata.metadata=minimal": { + "schema": { + "$ref": "#/components/schemas/TenantDto" + } + }, + "application/json;odata.metadata=full;odata.streaming=true": { + "schema": { + "$ref": "#/components/schemas/TenantDto" + } + }, + "application/json;odata.metadata=full;odata.streaming=false": { + "schema": { + "$ref": "#/components/schemas/TenantDto" + } + }, + "application/json;odata.metadata=full": { + "schema": { + "$ref": "#/components/schemas/TenantDto" + } + }, + "application/json;odata.metadata=none;odata.streaming=true": { + "schema": { + "$ref": "#/components/schemas/TenantDto" + } + }, + "application/json;odata.metadata=none;odata.streaming=false": { + "schema": { + "$ref": "#/components/schemas/TenantDto" + } + }, + "application/json;odata.metadata=none": { + "schema": { + "$ref": "#/components/schemas/TenantDto" + } + }, + "application/json;odata.streaming=true": { + "schema": { + "$ref": "#/components/schemas/TenantDto" + } + }, + "application/json;odata.streaming=false": { + "schema": { + "$ref": "#/components/schemas/TenantDto" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/TenantDto" + } + }, + "application/json-patch+json": { + "schema": { + "$ref": "#/components/schemas/TenantDto" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/TenantDto" + } + } + }, + "required": false + }, + "responses": { + "200": { + "description": "Success", + "content": {} + } + }, + "security": [ + { + "OAuth2": [] + } + ], + "x-codegen-request-body-name": "body" + } + }, + "/odata/Tenants/UiPath.Server.Configuration.OData.SetActive": { + "post": { + "tags": [ + "Tenants" + ], + "summary": "Toggles the active status of tenants", + "description": "OAuth required scopes: OR.Administration or OR.Administration.Write.\r\n\r\nHost only. Requires authentication.", + "operationId": "Tenants_SetActive", + "requestBody": { + "content": { + "application/json;odata.metadata=minimal;odata.streaming=true": { + "schema": { + "$ref": "#/components/schemas/TenantSetActiveRequest" + } + }, + "application/json;odata.metadata=minimal;odata.streaming=false": { + "schema": { + "$ref": "#/components/schemas/TenantSetActiveRequest" + } + }, + "application/json;odata.metadata=minimal": { + "schema": { + "$ref": "#/components/schemas/TenantSetActiveRequest" + } + }, + "application/json;odata.metadata=full;odata.streaming=true": { + "schema": { + "$ref": "#/components/schemas/TenantSetActiveRequest" + } + }, + "application/json;odata.metadata=full;odata.streaming=false": { + "schema": { + "$ref": "#/components/schemas/TenantSetActiveRequest" + } + }, + "application/json;odata.metadata=full": { + "schema": { + "$ref": "#/components/schemas/TenantSetActiveRequest" + } + }, + "application/json;odata.metadata=none;odata.streaming=true": { + "schema": { + "$ref": "#/components/schemas/TenantSetActiveRequest" + } + }, + "application/json;odata.metadata=none;odata.streaming=false": { + "schema": { + "$ref": "#/components/schemas/TenantSetActiveRequest" + } + }, + "application/json;odata.metadata=none": { + "schema": { + "$ref": "#/components/schemas/TenantSetActiveRequest" + } + }, + "application/json;odata.streaming=true": { + "schema": { + "$ref": "#/components/schemas/TenantSetActiveRequest" + } + }, + "application/json;odata.streaming=false": { + "schema": { + "$ref": "#/components/schemas/TenantSetActiveRequest" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/TenantSetActiveRequest" + } + }, + "application/json-patch+json": { + "schema": { + "$ref": "#/components/schemas/TenantSetActiveRequest" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/TenantSetActiveRequest" + } + } + }, + "required": false + }, + "responses": { + "200": { + "description": "Success", + "content": {} + } + }, + "security": [ + { + "OAuth2": [] + } + ], + "x-codegen-request-body-name": "body" + } + }, + "/odata/TestCaseDefinitions": { + "get": { + "tags": [ + "TestCaseDefinitions" + ], + "summary": "Returns a list of Test Case Definitions", + "description": "OAuth required scopes: OR.TestSets or OR.TestSets.Read.\r\n\r\nRequired permissions: TestSets.View.\r\n\r\nResponses:\r\n200 Returns a list of Test Case Definitions filtered with queryOptions\r\n403 If the caller doesn't have permissions to view Test Case Definitions", + "operationId": "TestCaseDefinitions_Get", + "parameters": [ + { + "name": "$expand", + "in": "query", + "description": "Indicates the related entities to be represented inline. The maximum depth is 2.", + "schema": { + "type": "string" + } + }, + { + "name": "$filter", + "in": "query", + "description": "Restricts the set of items returned. The maximum number of expressions is 100.", + "schema": { + "type": "string" + } + }, + { + "name": "$select", + "in": "query", + "description": "Limits the properties returned in the result.", + "schema": { + "type": "string" + } + }, + { + "name": "$orderby", + "in": "query", + "description": "Specifies the order in which items are returned. The maximum number of expressions is 5.", + "schema": { + "type": "string" + } + }, + { + "name": "$top", + "in": "query", + "description": "Limits the number of items returned from a collection. The maximum value is 1000.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "$skip", + "in": "query", + "description": "Excludes the specified number of items of the queried collection from the result.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "$count", + "in": "query", + "description": "Indicates whether the total count of items within a collection are returned in the result.", + "schema": { + "type": "boolean" + } + } + ], + "responses": { + "200": { + "description": "Returns a list of Test Case Definitions filtered with queryOptions", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ODataValueOfIEnumerableOfTestCaseDefinitionDto" + } + } + } + } + }, + "security": [ + { + "OAuth2": [] + } + ] + } + }, + "/odata/TestCaseExecutions": { + "get": { + "tags": [ + "TestCaseExecutions" + ], + "summary": "Returns a list of Test Case Executions", + "description": "OAuth required scopes: OR.TestSetExecutions or OR.TestSetExecutions.Read.\r\n\r\nRequired permissions: TestSetExecutions.View.\r\n\r\nResponses:\r\n200 Return a specific Test Case Execution identified by key\r\n403 If the caller doesn't have permissions to view Test Set Executions", + "operationId": "TestCaseExecutions_Get", + "parameters": [ + { + "name": "$expand", + "in": "query", + "description": "Indicates the related entities to be represented inline. The maximum depth is 2.", + "schema": { + "type": "string" + } + }, + { + "name": "$filter", + "in": "query", + "description": "Restricts the set of items returned. The maximum number of expressions is 100.", + "schema": { + "type": "string" + } + }, + { + "name": "$select", + "in": "query", + "description": "Limits the properties returned in the result.", + "schema": { + "type": "string" + } + }, + { + "name": "$orderby", + "in": "query", + "description": "Specifies the order in which items are returned. The maximum number of expressions is 5.", + "schema": { + "type": "string" + } + }, + { + "name": "$top", + "in": "query", + "description": "Limits the number of items returned from a collection. The maximum value is 1000.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "$skip", + "in": "query", + "description": "Excludes the specified number of items of the queried collection from the result.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "$count", + "in": "query", + "description": "Indicates whether the total count of items within a collection are returned in the result.", + "schema": { + "type": "boolean" + } + }, + { + "name": "X-UIPATH-OrganizationUnitId", + "in": "header", + "description": "Folder/OrganizationUnit Id", + "schema": { + "type": "integer", + "format": "int64" + } + } + ], + "responses": { + "200": { + "description": "Returns a list of Test Case Executions filtered with queryOptions", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ODataValueOfIEnumerableOfTestCaseExecutionDto" + } + } + } + } + }, + "security": [ + { + "OAuth2": [] + } + ] + } + }, + "/odata/TestCaseExecutions({key})": { + "get": { + "tags": [ + "TestCaseExecutions" + ], + "summary": "Return a specific Test Case Execution identified by key", + "description": "OAuth required scopes: OR.TestSetExecutions or OR.TestSetExecutions.Read.\r\n\r\nRequired permissions: TestSetExecutions.View.\r\n\r\nResponses:\r\n200 Return a specific Test Case Execution identified by key\r\n403 If the caller doesn't have permissions to view Test Set Executions\r\n404 If the test case execution is not found", + "operationId": "TestCaseExecutions_GetById", + "parameters": [ + { + "name": "key", + "in": "path", + "required": true, + "schema": { + "type": "integer", + "format": "int64" + } + }, + { + "name": "$expand", + "in": "query", + "description": "Indicates the related entities to be represented inline. The maximum depth is 2.", + "schema": { + "type": "string" + } + }, + { + "name": "$select", + "in": "query", + "description": "Limits the properties returned in the result.", + "schema": { + "type": "string" + } + }, + { + "name": "X-UIPATH-OrganizationUnitId", + "in": "header", + "description": "Folder/OrganizationUnit Id", + "schema": { + "type": "integer", + "format": "int64" + } + } + ], + "responses": { + "200": { + "description": "Return a specific Test Case Execution identified by key", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/TestCaseExecutionDto" + } + } + } + } + }, + "security": [ + { + "OAuth2": [] + } + ] + } + }, + "/odata/TestDataQueueItems": { + "get": { + "tags": [ + "TestDataQueueItems" + ], + "summary": "Return a list of test data queue items", + "description": "OAuth required scopes: OR.TestDataQueues or OR.TestDataQueues.Read.\r\n\r\nRequired permissions: TestDataQueueItems.View.\r\n\r\nResponses:\r\n200 Returns a list of test data queue items filtered with queryOptions\r\n403 If the caller doesn't have permissions to view test data queue items", + "operationId": "TestDataQueueItems_Get", + "parameters": [ + { + "name": "$expand", + "in": "query", + "description": "Indicates the related entities to be represented inline. The maximum depth is 2.", + "schema": { + "type": "string" + } + }, + { + "name": "$filter", + "in": "query", + "description": "Restricts the set of items returned. The maximum number of expressions is 100.", + "schema": { + "type": "string" + } + }, + { + "name": "$select", + "in": "query", + "description": "Limits the properties returned in the result.", + "schema": { + "type": "string" + } + }, + { + "name": "$orderby", + "in": "query", + "description": "Specifies the order in which items are returned. The maximum number of expressions is 5.", + "schema": { + "type": "string" + } + }, + { + "name": "$top", + "in": "query", + "description": "Limits the number of items returned from a collection. The maximum value is 1000.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "$skip", + "in": "query", + "description": "Excludes the specified number of items of the queried collection from the result.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "$count", + "in": "query", + "description": "Indicates whether the total count of items within a collection are returned in the result.", + "schema": { + "type": "boolean" + } + }, + { + "name": "X-UIPATH-OrganizationUnitId", + "in": "header", + "description": "Folder/OrganizationUnit Id", + "schema": { + "type": "integer", + "format": "int64" + } + } + ], + "responses": { + "200": { + "description": "Returns a list of test data queue items filtered with queryOptions", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ODataValueOfIEnumerableOfTestDataQueueItemODataDto" + } + } + } + } + }, + "security": [ + { + "OAuth2": [] + } + ] + } + }, + "/odata/TestDataQueueItems({key})": { + "get": { + "tags": [ + "TestDataQueueItems" + ], + "summary": "Return a specific test data queue item identified by key", + "description": "OAuth required scopes: OR.TestDataQueues or OR.TestDataQueues.Read.\r\n\r\nRequired permissions: TestDataQueueItems.View.\r\n\r\nResponses:\r\n200 Returns a specific test data queue item identified by key\r\n403 If the caller doesn't have permissions to view test data queue items\r\n404 If the test data queue item is not found", + "operationId": "TestDataQueueItems_GetById", + "parameters": [ + { + "name": "key", + "in": "path", + "required": true, + "schema": { + "type": "integer", + "format": "int64" + } + }, + { + "name": "$expand", + "in": "query", + "description": "Indicates the related entities to be represented inline. The maximum depth is 2.", + "schema": { + "type": "string" + } + }, + { + "name": "$select", + "in": "query", + "description": "Limits the properties returned in the result.", + "schema": { + "type": "string" + } + }, + { + "name": "X-UIPATH-OrganizationUnitId", + "in": "header", + "description": "Folder/OrganizationUnit Id", + "schema": { + "type": "integer", + "format": "int64" + } + } + ], + "responses": { + "200": { + "description": "Returns a specific test data queue item identified by key", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/TestDataQueueItemODataDto" + } + } + } + } + }, + "security": [ + { + "OAuth2": [] + } + ] + } + }, + "/odata/TestDataQueues": { + "get": { + "tags": [ + "TestDataQueues" + ], + "summary": "Return a list of test data queues", + "description": "OAuth required scopes: OR.TestDataQueues or OR.TestDataQueues.Read.\r\n\r\nRequired permissions: TestDataQueues.View.\r\n\r\nResponses:\r\n200 Returns a list of test data queues filtered with queryOptions\r\n403 If the caller doesn't have permissions to view test data queues", + "operationId": "TestDataQueues_Get", + "parameters": [ + { + "name": "$expand", + "in": "query", + "description": "Indicates the related entities to be represented inline. The maximum depth is 2.", + "schema": { + "type": "string" + } + }, + { + "name": "$filter", + "in": "query", + "description": "Restricts the set of items returned. The maximum number of expressions is 100.", + "schema": { + "type": "string" + } + }, + { + "name": "$select", + "in": "query", + "description": "Limits the properties returned in the result.", + "schema": { + "type": "string" + } + }, + { + "name": "$orderby", + "in": "query", + "description": "Specifies the order in which items are returned. The maximum number of expressions is 5.", + "schema": { + "type": "string" + } + }, + { + "name": "$top", + "in": "query", + "description": "Limits the number of items returned from a collection. The maximum value is 1000.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "$skip", + "in": "query", + "description": "Excludes the specified number of items of the queried collection from the result.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "$count", + "in": "query", + "description": "Indicates whether the total count of items within a collection are returned in the result.", + "schema": { + "type": "boolean" + } + }, + { + "name": "X-UIPATH-OrganizationUnitId", + "in": "header", + "description": "Folder/OrganizationUnit Id", + "schema": { + "type": "integer", + "format": "int64" + } + } + ], + "responses": { + "200": { + "description": "Returns a list of test data queues filtered with queryOptions", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ODataValueOfIEnumerableOfTestDataQueueDto" + } + } + } + } + }, + "security": [ + { + "OAuth2": [] + } + ] + }, + "post": { + "tags": [ + "TestDataQueues" + ], + "summary": "Create a new test data queue", + "description": "OAuth required scopes: OR.TestDataQueues or OR.TestDataQueues.Write.\r\n\r\nRequired permissions: TestDataQueues.Create.\r\n\r\nResponses:\r\n201 Returns the newly created test data queue\r\n403 If the caller doesn't have permissions to create test data queues\r\n409 If a queue with the same name already exists", + "operationId": "TestDataQueues_Post", + "parameters": [ + { + "name": "X-UIPATH-OrganizationUnitId", + "in": "header", + "description": "Folder/OrganizationUnit Id", + "schema": { + "type": "integer", + "format": "int64" + } + } + ], + "requestBody": { + "content": { + "application/json;odata.metadata=minimal;odata.streaming=true": { + "schema": { + "$ref": "#/components/schemas/TestDataQueueDto" + } + }, + "application/json;odata.metadata=minimal;odata.streaming=false": { + "schema": { + "$ref": "#/components/schemas/TestDataQueueDto" + } + }, + "application/json;odata.metadata=minimal": { + "schema": { + "$ref": "#/components/schemas/TestDataQueueDto" + } + }, + "application/json;odata.metadata=full;odata.streaming=true": { + "schema": { + "$ref": "#/components/schemas/TestDataQueueDto" + } + }, + "application/json;odata.metadata=full;odata.streaming=false": { + "schema": { + "$ref": "#/components/schemas/TestDataQueueDto" + } + }, + "application/json;odata.metadata=full": { + "schema": { + "$ref": "#/components/schemas/TestDataQueueDto" + } + }, + "application/json;odata.metadata=none;odata.streaming=true": { + "schema": { + "$ref": "#/components/schemas/TestDataQueueDto" + } + }, + "application/json;odata.metadata=none;odata.streaming=false": { + "schema": { + "$ref": "#/components/schemas/TestDataQueueDto" + } + }, + "application/json;odata.metadata=none": { + "schema": { + "$ref": "#/components/schemas/TestDataQueueDto" + } + }, + "application/json;odata.streaming=true": { + "schema": { + "$ref": "#/components/schemas/TestDataQueueDto" + } + }, + "application/json;odata.streaming=false": { + "schema": { + "$ref": "#/components/schemas/TestDataQueueDto" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/TestDataQueueDto" + } + }, + "application/json-patch+json": { + "schema": { + "$ref": "#/components/schemas/TestDataQueueDto" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/TestDataQueueDto" + } + } + }, + "required": false + }, + "responses": { + "201": { + "description": "Returns the newly created test data queue", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/TestDataQueueDto" + } + } + } + } + }, + "security": [ + { + "OAuth2": [] + } + ], + "x-codegen-request-body-name": "body" + } + }, + "/odata/TestDataQueues({key})": { + "get": { + "tags": [ + "TestDataQueues" + ], + "summary": "Return a specific test data queue identified by key", + "description": "OAuth required scopes: OR.TestDataQueues or OR.TestDataQueues.Read.\r\n\r\nRequired permissions: TestDataQueues.View.\r\n\r\nResponses:\r\n200 Returns a specific test data queue identified by key\r\n403 If the caller doesn't have permissions to view test data queues\r\n404 If the test data queue is not found", + "operationId": "TestDataQueues_GetById", + "parameters": [ + { + "name": "key", + "in": "path", + "required": true, + "schema": { + "type": "integer", + "format": "int64" + } + }, + { + "name": "$expand", + "in": "query", + "description": "Indicates the related entities to be represented inline. The maximum depth is 2.", + "schema": { + "type": "string" + } + }, + { + "name": "$select", + "in": "query", + "description": "Limits the properties returned in the result.", + "schema": { + "type": "string" + } + }, + { + "name": "X-UIPATH-OrganizationUnitId", + "in": "header", + "description": "Folder/OrganizationUnit Id", + "schema": { + "type": "integer", + "format": "int64" + } + } + ], + "responses": { + "200": { + "description": "Returns a specific test data queue identified by key", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/TestDataQueueDto" + } + } + } + } + }, + "security": [ + { + "OAuth2": [] + } + ] + }, + "put": { + "tags": [ + "TestDataQueues" + ], + "summary": "Update an existing test data queue", + "description": "OAuth required scopes: OR.TestDataQueues or OR.TestDataQueues.Write.\r\n\r\nRequired permissions: TestDataQueues.Edit.\r\n\r\nResponses:\r\n200 Returns the updated test data queue\r\n403 If the caller doesn't have permissions to update test data queues\r\n409 If trying to change the queue name", + "operationId": "TestDataQueues_PutById", + "parameters": [ + { + "name": "key", + "in": "path", + "description": "Id of the test data queue to be updated", + "required": true, + "schema": { + "type": "integer", + "format": "int64" + } + }, + { + "name": "X-UIPATH-OrganizationUnitId", + "in": "header", + "description": "Folder/OrganizationUnit Id", + "schema": { + "type": "integer", + "format": "int64" + } + } + ], + "requestBody": { + "description": "Update information", + "content": { + "application/json;odata.metadata=minimal;odata.streaming=true": { + "schema": { + "$ref": "#/components/schemas/TestDataQueueDto" + } + }, + "application/json;odata.metadata=minimal;odata.streaming=false": { + "schema": { + "$ref": "#/components/schemas/TestDataQueueDto" + } + }, + "application/json;odata.metadata=minimal": { + "schema": { + "$ref": "#/components/schemas/TestDataQueueDto" + } + }, + "application/json;odata.metadata=full;odata.streaming=true": { + "schema": { + "$ref": "#/components/schemas/TestDataQueueDto" + } + }, + "application/json;odata.metadata=full;odata.streaming=false": { + "schema": { + "$ref": "#/components/schemas/TestDataQueueDto" + } + }, + "application/json;odata.metadata=full": { + "schema": { + "$ref": "#/components/schemas/TestDataQueueDto" + } + }, + "application/json;odata.metadata=none;odata.streaming=true": { + "schema": { + "$ref": "#/components/schemas/TestDataQueueDto" + } + }, + "application/json;odata.metadata=none;odata.streaming=false": { + "schema": { + "$ref": "#/components/schemas/TestDataQueueDto" + } + }, + "application/json;odata.metadata=none": { + "schema": { + "$ref": "#/components/schemas/TestDataQueueDto" + } + }, + "application/json;odata.streaming=true": { + "schema": { + "$ref": "#/components/schemas/TestDataQueueDto" + } + }, + "application/json;odata.streaming=false": { + "schema": { + "$ref": "#/components/schemas/TestDataQueueDto" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/TestDataQueueDto" + } + }, + "application/json-patch+json": { + "schema": { + "$ref": "#/components/schemas/TestDataQueueDto" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/TestDataQueueDto" + } + } + }, + "required": false + }, + "responses": { + "200": { + "description": "Returns the updated test data queue", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/TestDataQueueDto" + } + } + } + } + }, + "security": [ + { + "OAuth2": [] + } + ], + "x-codegen-request-body-name": "body" + }, + "delete": { + "tags": [ + "TestDataQueues" + ], + "summary": "Delete an existing test data queue", + "description": "OAuth required scopes: OR.TestDataQueues or OR.TestDataQueues.Write.\r\n\r\nRequired permissions: TestDataQueues.Delete.\r\n\r\nResponses:\r\n204 The test data queue was deleted\r\n403 If the caller doesn't have permissions to delete test data queues", + "operationId": "TestDataQueues_DeleteById", + "parameters": [ + { + "name": "key", + "in": "path", + "description": "Id of the test data queue to be deleted", + "required": true, + "schema": { + "type": "integer", + "format": "int64" + } + }, + { + "name": "X-UIPATH-OrganizationUnitId", + "in": "header", + "description": "Folder/OrganizationUnit Id", + "schema": { + "type": "integer", + "format": "int64" + } + } + ], + "responses": { + "204": { + "description": "No Content", + "content": {} + } + }, + "security": [ + { + "OAuth2": [] + } + ] + } + }, + "/odata/TestSetExecutions": { + "get": { + "tags": [ + "TestSetExecutions" + ], + "summary": "Returns a list of Test Set Executions cross-folder when no current folder is sent by header.\r\nIt will return Test Set Executions from folder where current user has TestSetExecutionsView.\r\nIf there is none, will return forbidden.", + "description": "OAuth required scopes: OR.TestSetExecutions or OR.TestSetExecutions.Read.\r\n\r\nRequired permissions: TestSetExecutions.View.\r\n\r\nResponses:\r\n200 Returns a list of Test Set Executions filtered with queryOptions\r\n403 If the caller doesn't have permissions to view Test Set Executions", + "operationId": "TestSetExecutions_Get", + "parameters": [ + { + "name": "mandatoryPermissions", + "in": "query", + "description": "If in a cross-folder scenario, these represent the additional permissions\r\n required in the folders the data is retrieved from; all permissions in this set must be met", + "style": "form", + "explode": true, + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + }, + { + "name": "atLeastOnePermissions", + "in": "query", + "description": "If in a cross-folder scenario, these represent the additional permissions\r\n required in the folders the data is retrieved from; at least one permission in this set must be met", + "style": "form", + "explode": true, + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + }, + { + "name": "$expand", + "in": "query", + "description": "Indicates the related entities to be represented inline. The maximum depth is 2.", + "schema": { + "type": "string" + } + }, + { + "name": "$filter", + "in": "query", + "description": "Restricts the set of items returned. The maximum number of expressions is 100.", + "schema": { + "type": "string" + } + }, + { + "name": "$select", + "in": "query", + "description": "Limits the properties returned in the result.", + "schema": { + "type": "string" + } + }, + { + "name": "$orderby", + "in": "query", + "description": "Specifies the order in which items are returned. The maximum number of expressions is 5.", + "schema": { + "type": "string" + } + }, + { + "name": "$top", + "in": "query", + "description": "Limits the number of items returned from a collection. The maximum value is 1000.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "$skip", + "in": "query", + "description": "Excludes the specified number of items of the queried collection from the result.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "$count", + "in": "query", + "description": "Indicates whether the total count of items within a collection are returned in the result.", + "schema": { + "type": "boolean" + } + }, + { + "name": "X-UIPATH-OrganizationUnitId", + "in": "header", + "description": "Folder/OrganizationUnit Id", + "schema": { + "type": "integer", + "format": "int64" + } + } + ], + "responses": { + "200": { + "description": "Returns a list of Test Set Executions filtered with queryOptions", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ODataValueOfIEnumerableOfTestSetExecutionDto" + } + } + } + } + }, + "security": [ + { + "OAuth2": [] + } + ] + } + }, + "/odata/TestSetExecutions({key})": { + "get": { + "tags": [ + "TestSetExecutions" + ], + "summary": "Return a specific Test Set Execution identified by key", + "description": "OAuth required scopes: OR.TestSetExecutions or OR.TestSetExecutions.Read.\r\n\r\nRequired permissions: TestSetExecutions.View.\r\n\r\nResponses:\r\n200 Return a specific Test Set Execution identified by key\r\n403 If the caller doesn't have permissions to view Test Set Executions\r\n404 It the test set execution is not found", + "operationId": "TestSetExecutions_GetById", + "parameters": [ + { + "name": "key", + "in": "path", + "required": true, + "schema": { + "type": "integer", + "format": "int64" + } + }, + { + "name": "$expand", + "in": "query", + "description": "Indicates the related entities to be represented inline. The maximum depth is 2.", + "schema": { + "type": "string" + } + }, + { + "name": "$select", + "in": "query", + "description": "Limits the properties returned in the result.", + "schema": { + "type": "string" + } + }, + { + "name": "X-UIPATH-OrganizationUnitId", + "in": "header", + "description": "Folder/OrganizationUnit Id", + "schema": { + "type": "integer", + "format": "int64" + } + } + ], + "responses": { + "200": { + "description": "Return a specific Test Set Execution identified by key", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/TestSetExecutionDto" + } + } + } + } + }, + "security": [ + { + "OAuth2": [] + } + ] + } + }, + "/odata/TestSets": { + "get": { + "tags": [ + "TestSets" + ], + "summary": "Returns a list of Test Sets cross-folder when no current folder is sent by header.\r\nIt will return Test Sets from folder where current user has TestSetsView.\r\nIf there is none, will return forbidden.", + "description": "OAuth required scopes: OR.TestSets or OR.TestSets.Read.\r\n\r\nRequired permissions: TestSets.View.\r\n\r\nResponses:\r\n200 Returns a list of Test Sets filtered with queryOptions\r\n403 If the caller doesn't have permissions to view Test Sets", + "operationId": "TestSets_Get", + "parameters": [ + { + "name": "mandatoryPermissions", + "in": "query", + "style": "form", + "explode": true, + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + }, + { + "name": "atLeastOnePermissions", + "in": "query", + "style": "form", + "explode": true, + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + }, + { + "name": "$expand", + "in": "query", + "description": "Indicates the related entities to be represented inline. The maximum depth is 2.", + "schema": { + "type": "string" + } + }, + { + "name": "$filter", + "in": "query", + "description": "Restricts the set of items returned. The maximum number of expressions is 100.", + "schema": { + "type": "string" + } + }, + { + "name": "$select", + "in": "query", + "description": "Limits the properties returned in the result.", + "schema": { + "type": "string" + } + }, + { + "name": "$orderby", + "in": "query", + "description": "Specifies the order in which items are returned. The maximum number of expressions is 5.", + "schema": { + "type": "string" + } + }, + { + "name": "$top", + "in": "query", + "description": "Limits the number of items returned from a collection. The maximum value is 1000.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "$skip", + "in": "query", + "description": "Excludes the specified number of items of the queried collection from the result.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "$count", + "in": "query", + "description": "Indicates whether the total count of items within a collection are returned in the result.", + "schema": { + "type": "boolean" + } + }, + { + "name": "X-UIPATH-OrganizationUnitId", + "in": "header", + "description": "Folder/OrganizationUnit Id", + "schema": { + "type": "integer", + "format": "int64" + } + } + ], + "responses": { + "200": { + "description": "Returns a list of Test Sets filtered with queryOptions", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ODataValueOfIEnumerableOfTestSetDto" + } + } + } + } + }, + "security": [ + { + "OAuth2": [] + } + ] + }, + "post": { + "tags": [ + "TestSets" + ], + "summary": "Creates a new Test Set", + "description": "OAuth required scopes: OR.TestSets or OR.TestSets.Write.\r\n\r\nRequired permissions: TestSets.Create.\r\n\r\nResponses:\r\n201 Returns the newly created Test Set\r\n403 If the caller doesn't have permissions to create Test Sets", + "operationId": "TestSets_Post", + "parameters": [ + { + "name": "X-UIPATH-OrganizationUnitId", + "in": "header", + "description": "Folder/OrganizationUnit Id", + "schema": { + "type": "integer", + "format": "int64" + } + } + ], + "requestBody": { + "content": { + "application/json;odata.metadata=minimal;odata.streaming=true": { + "schema": { + "$ref": "#/components/schemas/TestSetDto" + } + }, + "application/json;odata.metadata=minimal;odata.streaming=false": { + "schema": { + "$ref": "#/components/schemas/TestSetDto" + } + }, + "application/json;odata.metadata=minimal": { + "schema": { + "$ref": "#/components/schemas/TestSetDto" + } + }, + "application/json;odata.metadata=full;odata.streaming=true": { + "schema": { + "$ref": "#/components/schemas/TestSetDto" + } + }, + "application/json;odata.metadata=full;odata.streaming=false": { + "schema": { + "$ref": "#/components/schemas/TestSetDto" + } + }, + "application/json;odata.metadata=full": { + "schema": { + "$ref": "#/components/schemas/TestSetDto" + } + }, + "application/json;odata.metadata=none;odata.streaming=true": { + "schema": { + "$ref": "#/components/schemas/TestSetDto" + } + }, + "application/json;odata.metadata=none;odata.streaming=false": { + "schema": { + "$ref": "#/components/schemas/TestSetDto" + } + }, + "application/json;odata.metadata=none": { + "schema": { + "$ref": "#/components/schemas/TestSetDto" + } + }, + "application/json;odata.streaming=true": { + "schema": { + "$ref": "#/components/schemas/TestSetDto" + } + }, + "application/json;odata.streaming=false": { + "schema": { + "$ref": "#/components/schemas/TestSetDto" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/TestSetDto" + } + }, + "application/json-patch+json": { + "schema": { + "$ref": "#/components/schemas/TestSetDto" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/TestSetDto" + } + } + }, + "required": false + }, + "responses": { + "201": { + "description": "Returns the newly created Test Set", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/TestSetDto" + } + } + } + } + }, + "security": [ + { + "OAuth2": [] + } + ], + "x-codegen-request-body-name": "body" + } + }, + "/odata/TestSets({key})": { + "get": { + "tags": [ + "TestSets" + ], + "summary": "Return a specific Test Set identified by key", + "description": "OAuth required scopes: OR.TestSets or OR.TestSets.Read.\r\n\r\nRequired permissions: TestSets.View.\r\n\r\nResponses:\r\n200 Return a specific Test Set identified by key\r\n403 If the caller doesn't have permissions to view Test Sets\r\n404 If the Test Set is not found", + "operationId": "TestSets_GetById", + "parameters": [ + { + "name": "key", + "in": "path", + "required": true, + "schema": { + "type": "integer", + "format": "int64" + } + }, + { + "name": "$expand", + "in": "query", + "description": "Indicates the related entities to be represented inline. The maximum depth is 2.", + "schema": { + "type": "string" + } + }, + { + "name": "$select", + "in": "query", + "description": "Limits the properties returned in the result.", + "schema": { + "type": "string" + } + }, + { + "name": "X-UIPATH-OrganizationUnitId", + "in": "header", + "description": "Folder/OrganizationUnit Id", + "schema": { + "type": "integer", + "format": "int64" + } + } + ], + "responses": { + "200": { + "description": "Return a specific Test Set identified by key", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/TestSetDto" + } + } + } + } + }, + "security": [ + { + "OAuth2": [] + } + ] + }, + "put": { + "tags": [ + "TestSets" + ], + "summary": "Update an existing Test Set", + "description": "OAuth required scopes: OR.TestSets or OR.TestSets.Write.\r\n\r\nRequired permissions: TestSets.Edit.\r\n\r\nResponses:\r\n200 Returns the updated Test Set\r\n403 If the caller doesn't have permissions to update Test Sets", + "operationId": "TestSets_PutById", + "parameters": [ + { + "name": "key", + "in": "path", + "description": "ID of the Test Set to be updated", + "required": true, + "schema": { + "type": "integer", + "format": "int64" + } + }, + { + "name": "X-UIPATH-OrganizationUnitId", + "in": "header", + "description": "Folder/OrganizationUnit Id", + "schema": { + "type": "integer", + "format": "int64" + } + } + ], + "requestBody": { + "description": "Update information", + "content": { + "application/json;odata.metadata=minimal;odata.streaming=true": { + "schema": { + "$ref": "#/components/schemas/TestSetDto" + } + }, + "application/json;odata.metadata=minimal;odata.streaming=false": { + "schema": { + "$ref": "#/components/schemas/TestSetDto" + } + }, + "application/json;odata.metadata=minimal": { + "schema": { + "$ref": "#/components/schemas/TestSetDto" + } + }, + "application/json;odata.metadata=full;odata.streaming=true": { + "schema": { + "$ref": "#/components/schemas/TestSetDto" + } + }, + "application/json;odata.metadata=full;odata.streaming=false": { + "schema": { + "$ref": "#/components/schemas/TestSetDto" + } + }, + "application/json;odata.metadata=full": { + "schema": { + "$ref": "#/components/schemas/TestSetDto" + } + }, + "application/json;odata.metadata=none;odata.streaming=true": { + "schema": { + "$ref": "#/components/schemas/TestSetDto" + } + }, + "application/json;odata.metadata=none;odata.streaming=false": { + "schema": { + "$ref": "#/components/schemas/TestSetDto" + } + }, + "application/json;odata.metadata=none": { + "schema": { + "$ref": "#/components/schemas/TestSetDto" + } + }, + "application/json;odata.streaming=true": { + "schema": { + "$ref": "#/components/schemas/TestSetDto" + } + }, + "application/json;odata.streaming=false": { + "schema": { + "$ref": "#/components/schemas/TestSetDto" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/TestSetDto" + } + }, + "application/json-patch+json": { + "schema": { + "$ref": "#/components/schemas/TestSetDto" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/TestSetDto" + } + } + }, + "required": false + }, + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/TestSetDto" + } + } + } + } + }, + "security": [ + { + "OAuth2": [] + } + ], + "x-codegen-request-body-name": "body" + }, + "delete": { + "tags": [ + "TestSets" + ], + "summary": "Delete a test set", + "description": "OAuth required scopes: OR.TestSets or OR.TestSets.Write.\r\n\r\nRequired permissions: TestSets.Delete.\r\n\r\nResponses:\r\n204 The Test Set was deleted\r\n403 If the caller doesn't have permissions to delete Test Sets", + "operationId": "TestSets_DeleteById", + "parameters": [ + { + "name": "key", + "in": "path", + "description": "ID of the Test Set to delete", + "required": true, + "schema": { + "type": "integer", + "format": "int64" + } + }, + { + "name": "X-UIPATH-OrganizationUnitId", + "in": "header", + "description": "Folder/OrganizationUnit Id", + "schema": { + "type": "integer", + "format": "int64" + } + } + ], + "responses": { + "204": { + "description": "No Content", + "content": {} + } + }, + "security": [ + { + "OAuth2": [] + } + ] + } + }, + "/odata/TestSetSchedules": { + "get": { + "tags": [ + "TestSetSchedules" + ], + "summary": "Returns a list of test set execution schedules", + "description": "OAuth required scopes: OR.TestSetSchedules or OR.TestSetSchedules.Read.\r\n\r\nRequired permissions: TestSetSchedules.View.\r\n\r\nResponses:\r\n200 Returns a list of test set execution schedules filtered with queryOptions\r\n403 If the caller doesn't have permissions to view test set execution schedules", + "operationId": "TestSetSchedules_Get", + "parameters": [ + { + "name": "$expand", + "in": "query", + "description": "Indicates the related entities to be represented inline. The maximum depth is 2.", + "schema": { + "type": "string" + } + }, + { + "name": "$filter", + "in": "query", + "description": "Restricts the set of items returned. The maximum number of expressions is 100.", + "schema": { + "type": "string" + } + }, + { + "name": "$select", + "in": "query", + "description": "Limits the properties returned in the result.", + "schema": { + "type": "string" + } + }, + { + "name": "$orderby", + "in": "query", + "description": "Specifies the order in which items are returned. The maximum number of expressions is 5.", + "schema": { + "type": "string" + } + }, + { + "name": "$top", + "in": "query", + "description": "Limits the number of items returned from a collection. The maximum value is 1000.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "$skip", + "in": "query", + "description": "Excludes the specified number of items of the queried collection from the result.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "$count", + "in": "query", + "description": "Indicates whether the total count of items within a collection are returned in the result.", + "schema": { + "type": "boolean" + } + }, + { + "name": "X-UIPATH-OrganizationUnitId", + "in": "header", + "description": "Folder/OrganizationUnit Id", + "schema": { + "type": "integer", + "format": "int64" + } + } + ], + "responses": { + "200": { + "description": "Returns a list of test set execution schedules filtered with queryOptions", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ODataValueOfIEnumerableOfTestSetScheduleDto" + } + } + } + } + }, + "security": [ + { + "OAuth2": [] + } + ] + }, + "post": { + "tags": [ + "TestSetSchedules" + ], + "summary": "Creates a new test set execution schedule", + "description": "OAuth required scopes: OR.TestSetSchedules or OR.TestSetSchedules.Write.\r\n\r\nRequired permissions: TestSetSchedules.Create.\r\n\r\nResponses:\r\n201 Returns the newly created test set execution schedule\r\n403 If the caller doesn't have permissions to create test set execution schedules", + "operationId": "TestSetSchedules_Post", + "parameters": [ + { + "name": "X-UIPATH-OrganizationUnitId", + "in": "header", + "description": "Folder/OrganizationUnit Id", + "schema": { + "type": "integer", + "format": "int64" + } + } + ], + "requestBody": { + "content": { + "application/json;odata.metadata=minimal;odata.streaming=true": { + "schema": { + "$ref": "#/components/schemas/TestSetScheduleDto" + } + }, + "application/json;odata.metadata=minimal;odata.streaming=false": { + "schema": { + "$ref": "#/components/schemas/TestSetScheduleDto" + } + }, + "application/json;odata.metadata=minimal": { + "schema": { + "$ref": "#/components/schemas/TestSetScheduleDto" + } + }, + "application/json;odata.metadata=full;odata.streaming=true": { + "schema": { + "$ref": "#/components/schemas/TestSetScheduleDto" + } + }, + "application/json;odata.metadata=full;odata.streaming=false": { + "schema": { + "$ref": "#/components/schemas/TestSetScheduleDto" + } + }, + "application/json;odata.metadata=full": { + "schema": { + "$ref": "#/components/schemas/TestSetScheduleDto" + } + }, + "application/json;odata.metadata=none;odata.streaming=true": { + "schema": { + "$ref": "#/components/schemas/TestSetScheduleDto" + } + }, + "application/json;odata.metadata=none;odata.streaming=false": { + "schema": { + "$ref": "#/components/schemas/TestSetScheduleDto" + } + }, + "application/json;odata.metadata=none": { + "schema": { + "$ref": "#/components/schemas/TestSetScheduleDto" + } + }, + "application/json;odata.streaming=true": { + "schema": { + "$ref": "#/components/schemas/TestSetScheduleDto" + } + }, + "application/json;odata.streaming=false": { + "schema": { + "$ref": "#/components/schemas/TestSetScheduleDto" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/TestSetScheduleDto" + } + }, + "application/json-patch+json": { + "schema": { + "$ref": "#/components/schemas/TestSetScheduleDto" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/TestSetScheduleDto" + } + } + }, + "required": false + }, + "responses": { + "201": { + "description": "Returns the newly created test set execution schedule", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/TestSetScheduleDto" + } + } + } + } + }, + "security": [ + { + "OAuth2": [] + } + ], + "x-codegen-request-body-name": "body" + } + }, + "/odata/TestSetSchedules({key})": { + "get": { + "tags": [ + "TestSetSchedules" + ], + "summary": "Return a specific test set execution schedule identified by key", + "description": "OAuth required scopes: OR.TestSetSchedules or OR.TestSetSchedules.Read.\r\n\r\nRequired permissions: TestSetSchedules.View.\r\n\r\nResponses:\r\n200 Return a specific test set execution schedule identified by key\r\n403 If the caller doesn't have permissions to view test set execution schedules\r\n404 It the test set execution schedule is not found", + "operationId": "TestSetSchedules_GetById", + "parameters": [ + { + "name": "key", + "in": "path", + "required": true, + "schema": { + "type": "integer", + "format": "int64" + } + }, + { + "name": "$expand", + "in": "query", + "description": "Indicates the related entities to be represented inline. The maximum depth is 2.", + "schema": { + "type": "string" + } + }, + { + "name": "$select", + "in": "query", + "description": "Limits the properties returned in the result.", + "schema": { + "type": "string" + } + }, + { + "name": "X-UIPATH-OrganizationUnitId", + "in": "header", + "description": "Folder/OrganizationUnit Id", + "schema": { + "type": "integer", + "format": "int64" + } + } + ], + "responses": { + "200": { + "description": "Return a specific test set execution schedule identified by key", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/TestSetScheduleDto" + } + } + } + } + }, + "security": [ + { + "OAuth2": [] + } + ] + }, + "put": { + "tags": [ + "TestSetSchedules" + ], + "summary": "Update an existing test set execution schedule", + "description": "OAuth required scopes: OR.TestSetSchedules or OR.TestSetSchedules.Write.\r\n\r\nRequired permissions: TestSetSchedules.Edit.\r\n\r\nResponses:\r\n201 Returns the updated test set execution schedule\r\n403 If the caller doesn't have permissions to update test set execution schedules", + "operationId": "TestSetSchedules_PutById", + "parameters": [ + { + "name": "key", + "in": "path", + "description": "ID of the test set execution schedule to be updated", + "required": true, + "schema": { + "type": "integer", + "format": "int64" + } + }, + { + "name": "X-UIPATH-OrganizationUnitId", + "in": "header", + "description": "Folder/OrganizationUnit Id", + "schema": { + "type": "integer", + "format": "int64" + } + } + ], + "requestBody": { + "description": "Update information", + "content": { + "application/json;odata.metadata=minimal;odata.streaming=true": { + "schema": { + "$ref": "#/components/schemas/TestSetScheduleDto" + } + }, + "application/json;odata.metadata=minimal;odata.streaming=false": { + "schema": { + "$ref": "#/components/schemas/TestSetScheduleDto" + } + }, + "application/json;odata.metadata=minimal": { + "schema": { + "$ref": "#/components/schemas/TestSetScheduleDto" + } + }, + "application/json;odata.metadata=full;odata.streaming=true": { + "schema": { + "$ref": "#/components/schemas/TestSetScheduleDto" + } + }, + "application/json;odata.metadata=full;odata.streaming=false": { + "schema": { + "$ref": "#/components/schemas/TestSetScheduleDto" + } + }, + "application/json;odata.metadata=full": { + "schema": { + "$ref": "#/components/schemas/TestSetScheduleDto" + } + }, + "application/json;odata.metadata=none;odata.streaming=true": { + "schema": { + "$ref": "#/components/schemas/TestSetScheduleDto" + } + }, + "application/json;odata.metadata=none;odata.streaming=false": { + "schema": { + "$ref": "#/components/schemas/TestSetScheduleDto" + } + }, + "application/json;odata.metadata=none": { + "schema": { + "$ref": "#/components/schemas/TestSetScheduleDto" + } + }, + "application/json;odata.streaming=true": { + "schema": { + "$ref": "#/components/schemas/TestSetScheduleDto" + } + }, + "application/json;odata.streaming=false": { + "schema": { + "$ref": "#/components/schemas/TestSetScheduleDto" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/TestSetScheduleDto" + } + }, + "application/json-patch+json": { + "schema": { + "$ref": "#/components/schemas/TestSetScheduleDto" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/TestSetScheduleDto" + } + } + }, + "required": false + }, + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/TestSetScheduleDto" + } + } + } + } + }, + "security": [ + { + "OAuth2": [] + } + ], + "x-codegen-request-body-name": "body" + }, + "delete": { + "tags": [ + "TestSetSchedules" + ], + "summary": "Delete an existing test set execution schedule", + "description": "OAuth required scopes: OR.TestSetSchedules or OR.TestSetSchedules.Write.\r\n\r\nRequired permissions: TestSetSchedules.Delete.\r\n\r\nResponses:\r\n204 The test set execution schedule was deleted\r\n403 If the caller doesn't have permissions to delete test set execution schedules", + "operationId": "TestSetSchedules_DeleteById", + "parameters": [ + { + "name": "key", + "in": "path", + "description": "ID of the test set execution schedule to be deleted", + "required": true, + "schema": { + "type": "integer", + "format": "int64" + } + }, + { + "name": "X-UIPATH-OrganizationUnitId", + "in": "header", + "description": "Folder/OrganizationUnit Id", + "schema": { + "type": "integer", + "format": "int64" + } + } + ], + "responses": { + "204": { + "description": "No Content", + "content": {} + } + }, + "security": [ + { + "OAuth2": [] + } + ] + } + }, + "/odata/TestSetSchedules/UiPath.Server.Configuration.OData.SetEnabled": { + "post": { + "tags": [ + "TestSetSchedules" + ], + "summary": "Enables / disables a list of test set execution schedules.", + "description": "OAuth required scopes: OR.TestSetSchedules or OR.TestSetSchedules.Write.\r\n\r\nRequired permissions: TestSetSchedules.Edit.", + "operationId": "TestSetSchedules_SetEnabled", + "parameters": [ + { + "name": "$expand", + "in": "query", + "description": "Indicates the related entities to be represented inline. The maximum depth is 2.", + "schema": { + "type": "string" + } + }, + { + "name": "$select", + "in": "query", + "description": "Limits the properties returned in the result.", + "schema": { + "type": "string" + } + }, + { + "name": "X-UIPATH-OrganizationUnitId", + "in": "header", + "description": "Folder/OrganizationUnit Id", + "schema": { + "type": "integer", + "format": "int64" + } + } + ], + "requestBody": { + "description": "enabled: if true the test set schedules will be enabled, if false they will be disabled.\r\n scheduleIds: the ids of the test set schedules to be enabled or disabled.", + "content": { + "application/json;odata.metadata=minimal;odata.streaming=true": { + "schema": { + "$ref": "#/components/schemas/TestSetSchedulesEnabledRequest" + } + }, + "application/json;odata.metadata=minimal;odata.streaming=false": { + "schema": { + "$ref": "#/components/schemas/TestSetSchedulesEnabledRequest" + } + }, + "application/json;odata.metadata=minimal": { + "schema": { + "$ref": "#/components/schemas/TestSetSchedulesEnabledRequest" + } + }, + "application/json;odata.metadata=full;odata.streaming=true": { + "schema": { + "$ref": "#/components/schemas/TestSetSchedulesEnabledRequest" + } + }, + "application/json;odata.metadata=full;odata.streaming=false": { + "schema": { + "$ref": "#/components/schemas/TestSetSchedulesEnabledRequest" + } + }, + "application/json;odata.metadata=full": { + "schema": { + "$ref": "#/components/schemas/TestSetSchedulesEnabledRequest" + } + }, + "application/json;odata.metadata=none;odata.streaming=true": { + "schema": { + "$ref": "#/components/schemas/TestSetSchedulesEnabledRequest" + } + }, + "application/json;odata.metadata=none;odata.streaming=false": { + "schema": { + "$ref": "#/components/schemas/TestSetSchedulesEnabledRequest" + } + }, + "application/json;odata.metadata=none": { + "schema": { + "$ref": "#/components/schemas/TestSetSchedulesEnabledRequest" + } + }, + "application/json;odata.streaming=true": { + "schema": { + "$ref": "#/components/schemas/TestSetSchedulesEnabledRequest" + } + }, + "application/json;odata.streaming=false": { + "schema": { + "$ref": "#/components/schemas/TestSetSchedulesEnabledRequest" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/TestSetSchedulesEnabledRequest" + } + }, + "application/json-patch+json": { + "schema": { + "$ref": "#/components/schemas/TestSetSchedulesEnabledRequest" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/TestSetSchedulesEnabledRequest" + } + } + }, + "required": false + }, + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ODataValueOfBoolean" + } + } + } + } + }, + "security": [ + { + "OAuth2": [] + } + ], + "x-codegen-request-body-name": "body" + } + }, + "/odata/Users": { + "get": { + "tags": [ + "Users" + ], + "summary": "Gets users.", + "description": "OAuth required scopes: OR.Users or OR.Users.Read.\r\n\r\nRequired permissions: Users.View.", + "operationId": "Users_Get", + "parameters": [ + { + "name": "$expand", + "in": "query", + "description": "Indicates the related entities to be represented inline. The maximum depth is 2.", + "schema": { + "type": "string" + } + }, + { + "name": "$filter", + "in": "query", + "description": "Restricts the set of items returned. The maximum number of expressions is 100.", + "schema": { + "type": "string" + } + }, + { + "name": "$select", + "in": "query", + "description": "Limits the properties returned in the result.", + "schema": { + "type": "string" + } + }, + { + "name": "$orderby", + "in": "query", + "description": "Specifies the order in which items are returned. The maximum number of expressions is 5.", + "schema": { + "type": "string" + } + }, + { + "name": "$top", + "in": "query", + "description": "Limits the number of items returned from a collection. The maximum value is 1000.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "$skip", + "in": "query", + "description": "Excludes the specified number of items of the queried collection from the result.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "$count", + "in": "query", + "description": "Indicates whether the total count of items within a collection are returned in the result.", + "schema": { + "type": "boolean" + } + } + ], + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ODataValueOfIEnumerableOfUserDto" + } + } + } + } + }, + "security": [ + { + "OAuth2": [] + } + ] + }, + "post": { + "tags": [ + "Users" + ], + "summary": "Creates a new user.", + "description": "OAuth required scopes: OR.Users or OR.Users.Write.\r\n\r\nRequired permissions: Users.Create.", + "operationId": "Users_Post", + "requestBody": { + "content": { + "application/json;odata.metadata=minimal;odata.streaming=true": { + "schema": { + "$ref": "#/components/schemas/UserDto" + } + }, + "application/json;odata.metadata=minimal;odata.streaming=false": { + "schema": { + "$ref": "#/components/schemas/UserDto" + } + }, + "application/json;odata.metadata=minimal": { + "schema": { + "$ref": "#/components/schemas/UserDto" + } + }, + "application/json;odata.metadata=full;odata.streaming=true": { + "schema": { + "$ref": "#/components/schemas/UserDto" + } + }, + "application/json;odata.metadata=full;odata.streaming=false": { + "schema": { + "$ref": "#/components/schemas/UserDto" + } + }, + "application/json;odata.metadata=full": { + "schema": { + "$ref": "#/components/schemas/UserDto" + } + }, + "application/json;odata.metadata=none;odata.streaming=true": { + "schema": { + "$ref": "#/components/schemas/UserDto" + } + }, + "application/json;odata.metadata=none;odata.streaming=false": { + "schema": { + "$ref": "#/components/schemas/UserDto" + } + }, + "application/json;odata.metadata=none": { + "schema": { + "$ref": "#/components/schemas/UserDto" + } + }, + "application/json;odata.streaming=true": { + "schema": { + "$ref": "#/components/schemas/UserDto" + } + }, + "application/json;odata.streaming=false": { + "schema": { + "$ref": "#/components/schemas/UserDto" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/UserDto" + } + }, + "application/json-patch+json": { + "schema": { + "$ref": "#/components/schemas/UserDto" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/UserDto" + } + } + }, + "required": false + }, + "responses": { + "201": { + "description": "Created", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/UserDto" + } + } + } + } + }, + "security": [ + { + "OAuth2": [] + } + ], + "x-codegen-request-body-name": "body" + } + }, + "/odata/Users({key})": { + "get": { + "tags": [ + "Users" + ], + "summary": "Gets a user based on its id.", + "description": "OAuth required scopes: OR.Users or OR.Users.Read.\r\n\r\nRequires authentication.", + "operationId": "Users_GetById", + "parameters": [ + { + "name": "key", + "in": "path", + "required": true, + "schema": { + "type": "integer", + "format": "int64" + } + }, + { + "name": "$expand", + "in": "query", + "description": "Indicates the related entities to be represented inline. The maximum depth is 2.", + "schema": { + "type": "string" + } + }, + { + "name": "$select", + "in": "query", + "description": "Limits the properties returned in the result.", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/UserDto" + } + } + } + } + }, + "security": [ + { + "OAuth2": [] + } + ] + }, + "put": { + "tags": [ + "Users" + ], + "summary": "Edits a user.", + "description": "OAuth required scopes: OR.Users or OR.Users.Write.\r\n\r\nRequired permissions: Users.Edit or Robots.Create or Robots.Edit or Robots.Delete.", + "operationId": "Users_PutById", + "parameters": [ + { + "name": "key", + "in": "path", + "required": true, + "schema": { + "type": "integer", + "format": "int64" + } + } + ], + "requestBody": { + "content": { + "application/json;odata.metadata=minimal;odata.streaming=true": { + "schema": { + "$ref": "#/components/schemas/UserDto" + } + }, + "application/json;odata.metadata=minimal;odata.streaming=false": { + "schema": { + "$ref": "#/components/schemas/UserDto" + } + }, + "application/json;odata.metadata=minimal": { + "schema": { + "$ref": "#/components/schemas/UserDto" + } + }, + "application/json;odata.metadata=full;odata.streaming=true": { + "schema": { + "$ref": "#/components/schemas/UserDto" + } + }, + "application/json;odata.metadata=full;odata.streaming=false": { + "schema": { + "$ref": "#/components/schemas/UserDto" + } + }, + "application/json;odata.metadata=full": { + "schema": { + "$ref": "#/components/schemas/UserDto" + } + }, + "application/json;odata.metadata=none;odata.streaming=true": { + "schema": { + "$ref": "#/components/schemas/UserDto" + } + }, + "application/json;odata.metadata=none;odata.streaming=false": { + "schema": { + "$ref": "#/components/schemas/UserDto" + } + }, + "application/json;odata.metadata=none": { + "schema": { + "$ref": "#/components/schemas/UserDto" + } + }, + "application/json;odata.streaming=true": { + "schema": { + "$ref": "#/components/schemas/UserDto" + } + }, + "application/json;odata.streaming=false": { + "schema": { + "$ref": "#/components/schemas/UserDto" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/UserDto" + } + }, + "application/json-patch+json": { + "schema": { + "$ref": "#/components/schemas/UserDto" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/UserDto" + } + } + }, + "required": false + }, + "responses": { + "200": { + "description": "Success", + "content": {} + } + }, + "security": [ + { + "OAuth2": [] + } + ], + "x-codegen-request-body-name": "body" + }, + "delete": { + "tags": [ + "Users" + ], + "summary": "Deletes a user.", + "description": "OAuth required scopes: OR.Users or OR.Users.Write.\r\n\r\nRequired permissions: Users.Delete.", + "operationId": "Users_DeleteById", + "parameters": [ + { + "name": "key", + "in": "path", + "required": true, + "schema": { + "type": "integer", + "format": "int64" + } + } + ], + "responses": { + "204": { + "description": "No Content", + "content": {} + } + }, + "security": [ + { + "OAuth2": [] + } + ] + }, + "patch": { + "tags": [ + "Users" + ], + "summary": "Partially updates a user.\r\nCannot update roles or organization units via this endpoint.", + "description": "OAuth required scopes: OR.Users or OR.Users.Write.\r\n\r\nRequires authentication.", + "operationId": "Users_PatchById", + "parameters": [ + { + "name": "key", + "in": "path", + "required": true, + "schema": { + "type": "integer", + "format": "int64" + } + } + ], + "requestBody": { + "content": { + "application/json;odata.metadata=minimal;odata.streaming=true": { + "schema": { + "$ref": "#/components/schemas/UserDto" + } + }, + "application/json;odata.metadata=minimal;odata.streaming=false": { + "schema": { + "$ref": "#/components/schemas/UserDto" + } + }, + "application/json;odata.metadata=minimal": { + "schema": { + "$ref": "#/components/schemas/UserDto" + } + }, + "application/json;odata.metadata=full;odata.streaming=true": { + "schema": { + "$ref": "#/components/schemas/UserDto" + } + }, + "application/json;odata.metadata=full;odata.streaming=false": { + "schema": { + "$ref": "#/components/schemas/UserDto" + } + }, + "application/json;odata.metadata=full": { + "schema": { + "$ref": "#/components/schemas/UserDto" + } + }, + "application/json;odata.metadata=none;odata.streaming=true": { + "schema": { + "$ref": "#/components/schemas/UserDto" + } + }, + "application/json;odata.metadata=none;odata.streaming=false": { + "schema": { + "$ref": "#/components/schemas/UserDto" + } + }, + "application/json;odata.metadata=none": { + "schema": { + "$ref": "#/components/schemas/UserDto" + } + }, + "application/json;odata.streaming=true": { + "schema": { + "$ref": "#/components/schemas/UserDto" + } + }, + "application/json;odata.streaming=false": { + "schema": { + "$ref": "#/components/schemas/UserDto" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/UserDto" + } + }, + "application/json-patch+json": { + "schema": { + "$ref": "#/components/schemas/UserDto" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/UserDto" + } + } + }, + "required": false + }, + "responses": { + "200": { + "description": "Success", + "content": {} + } + }, + "security": [ + { + "OAuth2": [] + } + ], + "x-codegen-request-body-name": "body" + } + }, + "/odata/Users({key})/UiPath.Server.Configuration.OData.AssignRoles": { + "post": { + "tags": [ + "Users" + ], + "description": "OAuth required scopes: OR.Users or OR.Users.Write.\r\n\r\nRequired permissions: Users.Edit or Users.Create.", + "operationId": "Users_AssignRolesById", + "parameters": [ + { + "name": "key", + "in": "path", + "required": true, + "schema": { + "type": "integer", + "format": "int64" + } + } + ], + "requestBody": { + "content": { + "application/json;odata.metadata=minimal;odata.streaming=true": { + "schema": { + "$ref": "#/components/schemas/UserAssignRolesRequest" + } + }, + "application/json;odata.metadata=minimal;odata.streaming=false": { + "schema": { + "$ref": "#/components/schemas/UserAssignRolesRequest" + } + }, + "application/json;odata.metadata=minimal": { + "schema": { + "$ref": "#/components/schemas/UserAssignRolesRequest" + } + }, + "application/json;odata.metadata=full;odata.streaming=true": { + "schema": { + "$ref": "#/components/schemas/UserAssignRolesRequest" + } + }, + "application/json;odata.metadata=full;odata.streaming=false": { + "schema": { + "$ref": "#/components/schemas/UserAssignRolesRequest" + } + }, + "application/json;odata.metadata=full": { + "schema": { + "$ref": "#/components/schemas/UserAssignRolesRequest" + } + }, + "application/json;odata.metadata=none;odata.streaming=true": { + "schema": { + "$ref": "#/components/schemas/UserAssignRolesRequest" + } + }, + "application/json;odata.metadata=none;odata.streaming=false": { + "schema": { + "$ref": "#/components/schemas/UserAssignRolesRequest" + } + }, + "application/json;odata.metadata=none": { + "schema": { + "$ref": "#/components/schemas/UserAssignRolesRequest" + } + }, + "application/json;odata.streaming=true": { + "schema": { + "$ref": "#/components/schemas/UserAssignRolesRequest" + } + }, + "application/json;odata.streaming=false": { + "schema": { + "$ref": "#/components/schemas/UserAssignRolesRequest" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/UserAssignRolesRequest" + } + }, + "application/json-patch+json": { + "schema": { + "$ref": "#/components/schemas/UserAssignRolesRequest" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/UserAssignRolesRequest" + } + } + }, + "required": false + }, + "responses": { + "200": { + "description": "Success", + "content": {} + } + }, + "security": [ + { + "OAuth2": [] + } + ], + "x-codegen-request-body-name": "body" + } + }, + "/odata/Users({key})/UiPath.Server.Configuration.OData.ChangePassword": { + "post": { + "tags": [ + "Users" + ], + "summary": "Changes the password of the user.", + "description": "OAuth required scopes: OR.Users or OR.Users.Write.", + "operationId": "Users_ChangePasswordById", + "parameters": [ + { + "name": "key", + "in": "path", + "required": true, + "schema": { + "type": "integer", + "format": "int64" + } + } + ], + "requestBody": { + "description": "CurrentPassword - The current password of the user.\r\n NewPassword - Then new password of the user.", + "content": { + "application/json;odata.metadata=minimal;odata.streaming=true": { + "schema": { + "$ref": "#/components/schemas/ChangePasswordDto" + } + }, + "application/json;odata.metadata=minimal;odata.streaming=false": { + "schema": { + "$ref": "#/components/schemas/ChangePasswordDto" + } + }, + "application/json;odata.metadata=minimal": { + "schema": { + "$ref": "#/components/schemas/ChangePasswordDto" + } + }, + "application/json;odata.metadata=full;odata.streaming=true": { + "schema": { + "$ref": "#/components/schemas/ChangePasswordDto" + } + }, + "application/json;odata.metadata=full;odata.streaming=false": { + "schema": { + "$ref": "#/components/schemas/ChangePasswordDto" + } + }, + "application/json;odata.metadata=full": { + "schema": { + "$ref": "#/components/schemas/ChangePasswordDto" + } + }, + "application/json;odata.metadata=none;odata.streaming=true": { + "schema": { + "$ref": "#/components/schemas/ChangePasswordDto" + } + }, + "application/json;odata.metadata=none;odata.streaming=false": { + "schema": { + "$ref": "#/components/schemas/ChangePasswordDto" + } + }, + "application/json;odata.metadata=none": { + "schema": { + "$ref": "#/components/schemas/ChangePasswordDto" + } + }, + "application/json;odata.streaming=true": { + "schema": { + "$ref": "#/components/schemas/ChangePasswordDto" + } + }, + "application/json;odata.streaming=false": { + "schema": { + "$ref": "#/components/schemas/ChangePasswordDto" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/ChangePasswordDto" + } + }, + "application/json-patch+json": { + "schema": { + "$ref": "#/components/schemas/ChangePasswordDto" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/ChangePasswordDto" + } + } + }, + "required": false + }, + "responses": { + "200": { + "description": "Success", + "content": {} + } + }, + "x-codegen-request-body-name": "body" + } + }, + "/odata/Users({key})/UiPath.Server.Configuration.OData.ChangeUserCulture": { + "post": { + "tags": [ + "Users" + ], + "summary": "Changes the culture for the specified user", + "description": "OAuth required scopes: OR.Users or OR.Users.Write.\r\n\r\nRequired permissions: Users.Edit.", + "operationId": "Users_ChangeUserCultureById", + "parameters": [ + { + "name": "key", + "in": "path", + "required": true, + "schema": { + "type": "integer", + "format": "int64" + } + } + ], + "requestBody": { + "content": { + "application/json;odata.metadata=minimal;odata.streaming=true": { + "schema": { + "$ref": "#/components/schemas/UserChangeCultureRequest" + } + }, + "application/json;odata.metadata=minimal;odata.streaming=false": { + "schema": { + "$ref": "#/components/schemas/UserChangeCultureRequest" + } + }, + "application/json;odata.metadata=minimal": { + "schema": { + "$ref": "#/components/schemas/UserChangeCultureRequest" + } + }, + "application/json;odata.metadata=full;odata.streaming=true": { + "schema": { + "$ref": "#/components/schemas/UserChangeCultureRequest" + } + }, + "application/json;odata.metadata=full;odata.streaming=false": { + "schema": { + "$ref": "#/components/schemas/UserChangeCultureRequest" + } + }, + "application/json;odata.metadata=full": { + "schema": { + "$ref": "#/components/schemas/UserChangeCultureRequest" + } + }, + "application/json;odata.metadata=none;odata.streaming=true": { + "schema": { + "$ref": "#/components/schemas/UserChangeCultureRequest" + } + }, + "application/json;odata.metadata=none;odata.streaming=false": { + "schema": { + "$ref": "#/components/schemas/UserChangeCultureRequest" + } + }, + "application/json;odata.metadata=none": { + "schema": { + "$ref": "#/components/schemas/UserChangeCultureRequest" + } + }, + "application/json;odata.streaming=true": { + "schema": { + "$ref": "#/components/schemas/UserChangeCultureRequest" + } + }, + "application/json;odata.streaming=false": { + "schema": { + "$ref": "#/components/schemas/UserChangeCultureRequest" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/UserChangeCultureRequest" + } + }, + "application/json-patch+json": { + "schema": { + "$ref": "#/components/schemas/UserChangeCultureRequest" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/UserChangeCultureRequest" + } + } + }, + "required": false + }, + "responses": { + "200": { + "description": "Success", + "content": {} + } + }, + "security": [ + { + "OAuth2": [] + } + ], + "x-codegen-request-body-name": "body" + } + }, + "/odata/Users({key})/UiPath.Server.Configuration.OData.SetActive": { + "post": { + "tags": [ + "Users" + ], + "summary": "Activate or deactivate a user", + "description": "OAuth required scopes: OR.Users or OR.Users.Write.\r\n\r\nRequired permissions: Users.Edit.", + "operationId": "Users_SetActiveById", + "parameters": [ + { + "name": "key", + "in": "path", + "required": true, + "schema": { + "type": "integer", + "format": "int64" + } + } + ], + "requestBody": { + "content": { + "application/json;odata.metadata=minimal;odata.streaming=true": { + "schema": { + "$ref": "#/components/schemas/UsersSetActiveRequest" + } + }, + "application/json;odata.metadata=minimal;odata.streaming=false": { + "schema": { + "$ref": "#/components/schemas/UsersSetActiveRequest" + } + }, + "application/json;odata.metadata=minimal": { + "schema": { + "$ref": "#/components/schemas/UsersSetActiveRequest" + } + }, + "application/json;odata.metadata=full;odata.streaming=true": { + "schema": { + "$ref": "#/components/schemas/UsersSetActiveRequest" + } + }, + "application/json;odata.metadata=full;odata.streaming=false": { + "schema": { + "$ref": "#/components/schemas/UsersSetActiveRequest" + } + }, + "application/json;odata.metadata=full": { + "schema": { + "$ref": "#/components/schemas/UsersSetActiveRequest" + } + }, + "application/json;odata.metadata=none;odata.streaming=true": { + "schema": { + "$ref": "#/components/schemas/UsersSetActiveRequest" + } + }, + "application/json;odata.metadata=none;odata.streaming=false": { + "schema": { + "$ref": "#/components/schemas/UsersSetActiveRequest" + } + }, + "application/json;odata.metadata=none": { + "schema": { + "$ref": "#/components/schemas/UsersSetActiveRequest" + } + }, + "application/json;odata.streaming=true": { + "schema": { + "$ref": "#/components/schemas/UsersSetActiveRequest" + } + }, + "application/json;odata.streaming=false": { + "schema": { + "$ref": "#/components/schemas/UsersSetActiveRequest" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/UsersSetActiveRequest" + } + }, + "application/json-patch+json": { + "schema": { + "$ref": "#/components/schemas/UsersSetActiveRequest" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/UsersSetActiveRequest" + } + } + }, + "required": false + }, + "responses": { + "200": { + "description": "Success", + "content": {} + } + }, + "security": [ + { + "OAuth2": [] + } + ], + "x-codegen-request-body-name": "body" + } + }, + "/odata/Users({key})/UiPath.Server.Configuration.OData.ToggleOrganizationUnit": { + "post": { + "tags": [ + "Users" + ], + "summary": "Associates/dissociates the given user with/from an organization unit based on toggle parameter.", + "description": "OAuth required scopes: OR.Users or OR.Users.Write.\r\n\r\nRequired permissions: Users.Edit.", + "operationId": "Users_ToggleOrganizationUnitById", + "parameters": [ + { + "name": "key", + "in": "path", + "required": true, + "schema": { + "type": "integer", + "format": "int64" + } + } + ], + "requestBody": { + "description": "Toggle - States whether to associate or to dissociate the organization unit with/from the user.\r\n OrganizationUnitId - The id of the organization unit to be associated/dissociated.", + "content": { + "application/json;odata.metadata=minimal;odata.streaming=true": { + "schema": { + "$ref": "#/components/schemas/UsersToggleOrganizationUnitRequest" + } + }, + "application/json;odata.metadata=minimal;odata.streaming=false": { + "schema": { + "$ref": "#/components/schemas/UsersToggleOrganizationUnitRequest" + } + }, + "application/json;odata.metadata=minimal": { + "schema": { + "$ref": "#/components/schemas/UsersToggleOrganizationUnitRequest" + } + }, + "application/json;odata.metadata=full;odata.streaming=true": { + "schema": { + "$ref": "#/components/schemas/UsersToggleOrganizationUnitRequest" + } + }, + "application/json;odata.metadata=full;odata.streaming=false": { + "schema": { + "$ref": "#/components/schemas/UsersToggleOrganizationUnitRequest" + } + }, + "application/json;odata.metadata=full": { + "schema": { + "$ref": "#/components/schemas/UsersToggleOrganizationUnitRequest" + } + }, + "application/json;odata.metadata=none;odata.streaming=true": { + "schema": { + "$ref": "#/components/schemas/UsersToggleOrganizationUnitRequest" + } + }, + "application/json;odata.metadata=none;odata.streaming=false": { + "schema": { + "$ref": "#/components/schemas/UsersToggleOrganizationUnitRequest" + } + }, + "application/json;odata.metadata=none": { + "schema": { + "$ref": "#/components/schemas/UsersToggleOrganizationUnitRequest" + } + }, + "application/json;odata.streaming=true": { + "schema": { + "$ref": "#/components/schemas/UsersToggleOrganizationUnitRequest" + } + }, + "application/json;odata.streaming=false": { + "schema": { + "$ref": "#/components/schemas/UsersToggleOrganizationUnitRequest" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/UsersToggleOrganizationUnitRequest" + } + }, + "application/json-patch+json": { + "schema": { + "$ref": "#/components/schemas/UsersToggleOrganizationUnitRequest" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/UsersToggleOrganizationUnitRequest" + } + } + }, + "required": false + }, + "responses": { + "200": { + "description": "Success", + "content": {} + } + }, + "security": [ + { + "OAuth2": [] + } + ], + "x-codegen-request-body-name": "body" + } + }, + "/odata/Users({key})/UiPath.Server.Configuration.OData.ToggleRole": { + "post": { + "tags": [ + "Users" + ], + "summary": "Associates/dissociates the given user with/from a role based on toggle parameter.", + "description": "OAuth required scopes: OR.Users or OR.Users.Write.\r\n\r\nRequired permissions: Users.Edit.", + "operationId": "Users_ToggleRoleById", + "parameters": [ + { + "name": "key", + "in": "path", + "required": true, + "schema": { + "type": "integer", + "format": "int64" + } + } + ], + "requestBody": { + "description": "Toggle - States whether to associate or to dissociate the role with/from the user.\r\n Role - The name of the role to be associated/dissociated.", + "content": { + "application/json;odata.metadata=minimal;odata.streaming=true": { + "schema": { + "$ref": "#/components/schemas/UsersToggleRoleRequest" + } + }, + "application/json;odata.metadata=minimal;odata.streaming=false": { + "schema": { + "$ref": "#/components/schemas/UsersToggleRoleRequest" + } + }, + "application/json;odata.metadata=minimal": { + "schema": { + "$ref": "#/components/schemas/UsersToggleRoleRequest" + } + }, + "application/json;odata.metadata=full;odata.streaming=true": { + "schema": { + "$ref": "#/components/schemas/UsersToggleRoleRequest" + } + }, + "application/json;odata.metadata=full;odata.streaming=false": { + "schema": { + "$ref": "#/components/schemas/UsersToggleRoleRequest" + } + }, + "application/json;odata.metadata=full": { + "schema": { + "$ref": "#/components/schemas/UsersToggleRoleRequest" + } + }, + "application/json;odata.metadata=none;odata.streaming=true": { + "schema": { + "$ref": "#/components/schemas/UsersToggleRoleRequest" + } + }, + "application/json;odata.metadata=none;odata.streaming=false": { + "schema": { + "$ref": "#/components/schemas/UsersToggleRoleRequest" + } + }, + "application/json;odata.metadata=none": { + "schema": { + "$ref": "#/components/schemas/UsersToggleRoleRequest" + } + }, + "application/json;odata.streaming=true": { + "schema": { + "$ref": "#/components/schemas/UsersToggleRoleRequest" + } + }, + "application/json;odata.streaming=false": { + "schema": { + "$ref": "#/components/schemas/UsersToggleRoleRequest" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/UsersToggleRoleRequest" + } + }, + "application/json-patch+json": { + "schema": { + "$ref": "#/components/schemas/UsersToggleRoleRequest" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/UsersToggleRoleRequest" + } + } + }, + "required": false + }, + "responses": { + "200": { + "description": "Success", + "content": {} + } + }, + "security": [ + { + "OAuth2": [] + } + ], + "x-codegen-request-body-name": "body" + } + }, + "/odata/Users/UiPath.Server.Configuration.OData.ChangeCulture": { + "post": { + "tags": [ + "Users" + ], + "summary": "Changes the culture for the current user", + "description": "OAuth required scopes: OR.Users or OR.Users.Write.\r\n\r\nRequires authentication.", + "operationId": "Users_ChangeCulture", + "requestBody": { + "content": { + "application/json;odata.metadata=minimal;odata.streaming=true": { + "schema": { + "$ref": "#/components/schemas/UserChangeCultureRequest" + } + }, + "application/json;odata.metadata=minimal;odata.streaming=false": { + "schema": { + "$ref": "#/components/schemas/UserChangeCultureRequest" + } + }, + "application/json;odata.metadata=minimal": { + "schema": { + "$ref": "#/components/schemas/UserChangeCultureRequest" + } + }, + "application/json;odata.metadata=full;odata.streaming=true": { + "schema": { + "$ref": "#/components/schemas/UserChangeCultureRequest" + } + }, + "application/json;odata.metadata=full;odata.streaming=false": { + "schema": { + "$ref": "#/components/schemas/UserChangeCultureRequest" + } + }, + "application/json;odata.metadata=full": { + "schema": { + "$ref": "#/components/schemas/UserChangeCultureRequest" + } + }, + "application/json;odata.metadata=none;odata.streaming=true": { + "schema": { + "$ref": "#/components/schemas/UserChangeCultureRequest" + } + }, + "application/json;odata.metadata=none;odata.streaming=false": { + "schema": { + "$ref": "#/components/schemas/UserChangeCultureRequest" + } + }, + "application/json;odata.metadata=none": { + "schema": { + "$ref": "#/components/schemas/UserChangeCultureRequest" + } + }, + "application/json;odata.streaming=true": { + "schema": { + "$ref": "#/components/schemas/UserChangeCultureRequest" + } + }, + "application/json;odata.streaming=false": { + "schema": { + "$ref": "#/components/schemas/UserChangeCultureRequest" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/UserChangeCultureRequest" + } + }, + "application/json-patch+json": { + "schema": { + "$ref": "#/components/schemas/UserChangeCultureRequest" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/UserChangeCultureRequest" + } + } + }, + "required": false + }, + "responses": { + "200": { + "description": "Success", + "content": {} + } + }, + "security": [ + { + "OAuth2": [] + } + ], + "x-codegen-request-body-name": "body" + } + }, + "/odata/Users/UiPath.Server.Configuration.OData.GetCurrentPermissions": { + "get": { + "tags": [ + "Users" + ], + "summary": "Returns a user permission collection containing data about the current user and all the permissions it has.", + "description": "OAuth required scopes: OR.Users or OR.Users.Read.\r\n\r\nRequires authentication.", + "operationId": "Users_GetCurrentPermissions", + "parameters": [ + { + "name": "$expand", + "in": "query", + "description": "Indicates the related entities to be represented inline. The maximum depth is 2.", + "schema": { + "type": "string" + } + }, + { + "name": "$select", + "in": "query", + "description": "Limits the properties returned in the result.", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/UserPermissionsCollection" + } + } + } + }, + "401": { + "description": "Unauthorized", + "content": {} + } + }, + "security": [ + { + "OAuth2": [] + } + ] + } + }, + "/odata/Users/UiPath.Server.Configuration.OData.GetCurrentUser": { + "get": { + "tags": [ + "Users" + ], + "summary": "Returns details about the user currently logged into Orchestrator.", + "description": "OAuth required scopes: OR.Users or OR.Users.Read.", + "operationId": "Users_GetCurrentUser", + "parameters": [ + { + "name": "$expand", + "in": "query", + "description": "Indicates the related entities to be represented inline. The maximum depth is 2.", + "schema": { + "type": "string" + } + }, + { + "name": "$select", + "in": "query", + "description": "Limits the properties returned in the result.", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/UserDto" + } + } + } + }, + "204": { + "description": "No Content", + "content": {} + } + }, + "security": [ + { + "OAuth2": [] + } + ] + } + }, + "/odata/Users/UiPath.Server.Configuration.OData.UpdatePassword": { + "post": { + "tags": [ + "Users" + ], + "summary": "Updates the user password for the provided Username and Tenancy Name.\r\nThis endpoint is intended to be used via API to update the first login password.", + "description": "OAuth required scopes: OR.Users or OR.Users.Write.", + "operationId": "Users_UpdatePassword", + "requestBody": { + "content": { + "application/json;odata.metadata=minimal;odata.streaming=true": { + "schema": { + "$ref": "#/components/schemas/UpdateUserPasswordDto" + } + }, + "application/json;odata.metadata=minimal;odata.streaming=false": { + "schema": { + "$ref": "#/components/schemas/UpdateUserPasswordDto" + } + }, + "application/json;odata.metadata=minimal": { + "schema": { + "$ref": "#/components/schemas/UpdateUserPasswordDto" + } + }, + "application/json;odata.metadata=full;odata.streaming=true": { + "schema": { + "$ref": "#/components/schemas/UpdateUserPasswordDto" + } + }, + "application/json;odata.metadata=full;odata.streaming=false": { + "schema": { + "$ref": "#/components/schemas/UpdateUserPasswordDto" + } + }, + "application/json;odata.metadata=full": { + "schema": { + "$ref": "#/components/schemas/UpdateUserPasswordDto" + } + }, + "application/json;odata.metadata=none;odata.streaming=true": { + "schema": { + "$ref": "#/components/schemas/UpdateUserPasswordDto" + } + }, + "application/json;odata.metadata=none;odata.streaming=false": { + "schema": { + "$ref": "#/components/schemas/UpdateUserPasswordDto" + } + }, + "application/json;odata.metadata=none": { + "schema": { + "$ref": "#/components/schemas/UpdateUserPasswordDto" + } + }, + "application/json;odata.streaming=true": { + "schema": { + "$ref": "#/components/schemas/UpdateUserPasswordDto" + } + }, + "application/json;odata.streaming=false": { + "schema": { + "$ref": "#/components/schemas/UpdateUserPasswordDto" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/UpdateUserPasswordDto" + } + }, + "application/json-patch+json": { + "schema": { + "$ref": "#/components/schemas/UpdateUserPasswordDto" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/UpdateUserPasswordDto" + } + } + }, + "required": false + }, + "responses": { + "200": { + "description": "User password successfully updated.", + "content": {} + }, + "400": { + "description": "Invalid authentication credentials.", + "content": {} + } + }, + "x-codegen-request-body-name": "body" + } + }, + "/odata/Users/UiPath.Server.Configuration.OData.Validate(userIds=[{userIds}])": { + "get": { + "tags": [ + "Users" + ], + "summary": "Validates if the robots for the given users are busy", + "description": "OAuth required scopes: OR.Users or OR.Users.Read.\r\n\r\nRequired permissions: Users.View.", + "operationId": "Users_ValidateByUserids", + "parameters": [ + { + "name": "userIds", + "in": "path", + "description": "The Id of the users to check", + "required": true, + "style": "simple", + "explode": false, + "schema": { + "type": "array", + "items": { + "type": "integer", + "format": "int64" + } + } + }, + { + "name": "$expand", + "in": "query", + "description": "Indicates the related entities to be represented inline. The maximum depth is 2.", + "schema": { + "type": "string" + } + }, + { + "name": "$filter", + "in": "query", + "description": "Restricts the set of items returned. The maximum number of expressions is 100.", + "schema": { + "type": "string" + } + }, + { + "name": "$select", + "in": "query", + "description": "Limits the properties returned in the result.", + "schema": { + "type": "string" + } + }, + { + "name": "$orderby", + "in": "query", + "description": "Specifies the order in which items are returned. The maximum number of expressions is 5.", + "schema": { + "type": "string" + } + }, + { + "name": "$count", + "in": "query", + "description": "Indicates whether the total count of items within a collection are returned in the result.", + "schema": { + "type": "boolean" + } + } + ], + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ODataValueOfIDictionaryOfInt64Boolean" + } + } + } + } + }, + "security": [ + { + "OAuth2": [] + } + ] + } + }, + "/odata/Webhooks": { + "get": { + "tags": [ + "Webhooks" + ], + "summary": "List webhooks", + "description": "OAuth required scopes: OR.Webhooks or OR.Webhooks.Read.\r\n\r\nRequired permissions: Webhooks.View.", + "operationId": "Webhooks_Get", + "parameters": [ + { + "name": "$expand", + "in": "query", + "description": "Indicates the related entities to be represented inline. The maximum depth is 2.", + "schema": { + "type": "string" + } + }, + { + "name": "$filter", + "in": "query", + "description": "Restricts the set of items returned. The maximum number of expressions is 100.", + "schema": { + "type": "string" + } + }, + { + "name": "$select", + "in": "query", + "description": "Limits the properties returned in the result.", + "schema": { + "type": "string" + } + }, + { + "name": "$orderby", + "in": "query", + "description": "Specifies the order in which items are returned. The maximum number of expressions is 5.", + "schema": { + "type": "string" + } + }, + { + "name": "$top", + "in": "query", + "description": "Limits the number of items returned from a collection. The maximum value is 1000.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "$skip", + "in": "query", + "description": "Excludes the specified number of items of the queried collection from the result.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "$count", + "in": "query", + "description": "Indicates whether the total count of items within a collection are returned in the result.", + "schema": { + "type": "boolean" + } + } + ], + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ODataValueOfIEnumerableOfWebhookDto" + } + } + } + } + }, + "security": [ + { + "OAuth2": [] + } + ] + }, + "post": { + "tags": [ + "Webhooks" + ], + "summary": "Create a new webhook subscription", + "description": "OAuth required scopes: OR.Webhooks or OR.Webhooks.Write.\r\n\r\nRequired permissions: Webhooks.Create.", + "operationId": "Webhooks_Post", + "requestBody": { + "content": { + "application/json;odata.metadata=minimal;odata.streaming=true": { + "schema": { + "$ref": "#/components/schemas/WebhookDto" + } + }, + "application/json;odata.metadata=minimal;odata.streaming=false": { + "schema": { + "$ref": "#/components/schemas/WebhookDto" + } + }, + "application/json;odata.metadata=minimal": { + "schema": { + "$ref": "#/components/schemas/WebhookDto" + } + }, + "application/json;odata.metadata=full;odata.streaming=true": { + "schema": { + "$ref": "#/components/schemas/WebhookDto" + } + }, + "application/json;odata.metadata=full;odata.streaming=false": { + "schema": { + "$ref": "#/components/schemas/WebhookDto" + } + }, + "application/json;odata.metadata=full": { + "schema": { + "$ref": "#/components/schemas/WebhookDto" + } + }, + "application/json;odata.metadata=none;odata.streaming=true": { + "schema": { + "$ref": "#/components/schemas/WebhookDto" + } + }, + "application/json;odata.metadata=none;odata.streaming=false": { + "schema": { + "$ref": "#/components/schemas/WebhookDto" + } + }, + "application/json;odata.metadata=none": { + "schema": { + "$ref": "#/components/schemas/WebhookDto" + } + }, + "application/json;odata.streaming=true": { + "schema": { + "$ref": "#/components/schemas/WebhookDto" + } + }, + "application/json;odata.streaming=false": { + "schema": { + "$ref": "#/components/schemas/WebhookDto" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/WebhookDto" + } + }, + "application/json-patch+json": { + "schema": { + "$ref": "#/components/schemas/WebhookDto" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/WebhookDto" + } + } + }, + "required": false + }, + "responses": { + "201": { + "description": "Created", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/WebhookDto" + } + } + } + } + }, + "security": [ + { + "OAuth2": [] + } + ], + "x-codegen-request-body-name": "body" + } + }, + "/odata/Webhooks({key})": { + "get": { + "tags": [ + "Webhooks" + ], + "summary": "Gets a single webhook", + "description": "OAuth required scopes: OR.Webhooks or OR.Webhooks.Read.\r\n\r\nRequired permissions: Webhooks.View.", + "operationId": "Webhooks_GetById", + "parameters": [ + { + "name": "key", + "in": "path", + "required": true, + "schema": { + "type": "integer", + "format": "int64" + } + }, + { + "name": "$expand", + "in": "query", + "description": "Indicates the related entities to be represented inline. The maximum depth is 2.", + "schema": { + "type": "string" + } + }, + { + "name": "$select", + "in": "query", + "description": "Limits the properties returned in the result.", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/WebhookDto" + } + } + } + } + }, + "security": [ + { + "OAuth2": [] + } + ] + }, + "put": { + "tags": [ + "Webhooks" + ], + "summary": "Update an existing webhook subscription", + "description": "OAuth required scopes: OR.Webhooks or OR.Webhooks.Write.\r\n\r\nRequired permissions: Webhooks.Edit.", + "operationId": "Webhooks_PutById", + "parameters": [ + { + "name": "key", + "in": "path", + "required": true, + "schema": { + "type": "integer", + "format": "int64" + } + } + ], + "requestBody": { + "content": { + "application/json;odata.metadata=minimal;odata.streaming=true": { + "schema": { + "$ref": "#/components/schemas/WebhookDto" + } + }, + "application/json;odata.metadata=minimal;odata.streaming=false": { + "schema": { + "$ref": "#/components/schemas/WebhookDto" + } + }, + "application/json;odata.metadata=minimal": { + "schema": { + "$ref": "#/components/schemas/WebhookDto" + } + }, + "application/json;odata.metadata=full;odata.streaming=true": { + "schema": { + "$ref": "#/components/schemas/WebhookDto" + } + }, + "application/json;odata.metadata=full;odata.streaming=false": { + "schema": { + "$ref": "#/components/schemas/WebhookDto" + } + }, + "application/json;odata.metadata=full": { + "schema": { + "$ref": "#/components/schemas/WebhookDto" + } + }, + "application/json;odata.metadata=none;odata.streaming=true": { + "schema": { + "$ref": "#/components/schemas/WebhookDto" + } + }, + "application/json;odata.metadata=none;odata.streaming=false": { + "schema": { + "$ref": "#/components/schemas/WebhookDto" + } + }, + "application/json;odata.metadata=none": { + "schema": { + "$ref": "#/components/schemas/WebhookDto" + } + }, + "application/json;odata.streaming=true": { + "schema": { + "$ref": "#/components/schemas/WebhookDto" + } + }, + "application/json;odata.streaming=false": { + "schema": { + "$ref": "#/components/schemas/WebhookDto" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/WebhookDto" + } + }, + "application/json-patch+json": { + "schema": { + "$ref": "#/components/schemas/WebhookDto" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/WebhookDto" + } + } + }, + "required": false + }, + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/WebhookDto" + } + } + } + } + }, + "security": [ + { + "OAuth2": [] + } + ], + "x-codegen-request-body-name": "body" + }, + "delete": { + "tags": [ + "Webhooks" + ], + "summary": "Delete a webhook subscription", + "description": "OAuth required scopes: OR.Webhooks or OR.Webhooks.Write.\r\n\r\nRequired permissions: Webhooks.Delete.", + "operationId": "Webhooks_DeleteById", + "parameters": [ + { + "name": "key", + "in": "path", + "required": true, + "schema": { + "type": "integer", + "format": "int64" + } + } + ], + "responses": { + "204": { + "description": "No Content", + "content": {} + } + }, + "security": [ + { + "OAuth2": [] + } + ] + }, + "patch": { + "tags": [ + "Webhooks" + ], + "summary": "Patches a webhook", + "description": "OAuth required scopes: OR.Webhooks or OR.Webhooks.Write.\r\n\r\nRequired permissions: Webhooks.Edit.", + "operationId": "Webhooks_PatchById", + "parameters": [ + { + "name": "key", + "in": "path", + "required": true, + "schema": { + "type": "integer", + "format": "int64" + } + } + ], + "requestBody": { + "content": { + "application/json;odata.metadata=minimal;odata.streaming=true": { + "schema": { + "$ref": "#/components/schemas/WebhookDto" + } + }, + "application/json;odata.metadata=minimal;odata.streaming=false": { + "schema": { + "$ref": "#/components/schemas/WebhookDto" + } + }, + "application/json;odata.metadata=minimal": { + "schema": { + "$ref": "#/components/schemas/WebhookDto" + } + }, + "application/json;odata.metadata=full;odata.streaming=true": { + "schema": { + "$ref": "#/components/schemas/WebhookDto" + } + }, + "application/json;odata.metadata=full;odata.streaming=false": { + "schema": { + "$ref": "#/components/schemas/WebhookDto" + } + }, + "application/json;odata.metadata=full": { + "schema": { + "$ref": "#/components/schemas/WebhookDto" + } + }, + "application/json;odata.metadata=none;odata.streaming=true": { + "schema": { + "$ref": "#/components/schemas/WebhookDto" + } + }, + "application/json;odata.metadata=none;odata.streaming=false": { + "schema": { + "$ref": "#/components/schemas/WebhookDto" + } + }, + "application/json;odata.metadata=none": { + "schema": { + "$ref": "#/components/schemas/WebhookDto" + } + }, + "application/json;odata.streaming=true": { + "schema": { + "$ref": "#/components/schemas/WebhookDto" + } + }, + "application/json;odata.streaming=false": { + "schema": { + "$ref": "#/components/schemas/WebhookDto" + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/WebhookDto" + } + }, + "application/json-patch+json": { + "schema": { + "$ref": "#/components/schemas/WebhookDto" + } + }, + "application/*+json": { + "schema": { + "$ref": "#/components/schemas/WebhookDto" + } + } + }, + "required": false + }, + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/WebhookDto" + } + } + } + } + }, + "security": [ + { + "OAuth2": [] + } + ], + "x-codegen-request-body-name": "body" + } + }, + "/odata/Webhooks({key})/UiPath.Server.Configuration.OData.Ping": { + "post": { + "tags": [ + "Webhooks" + ], + "summary": "Sends a Ping request to webhook endpoint.\r\nUsed for testing connectivity and availability of target URL", + "description": "OAuth required scopes: OR.Webhooks or OR.Webhooks.Write.\r\n\r\nRequired permissions: Webhooks.View.", + "operationId": "Webhooks_PingById", + "parameters": [ + { + "name": "key", + "in": "path", + "required": true, + "schema": { + "type": "integer", + "format": "int64" + } + }, + { + "name": "$expand", + "in": "query", + "description": "Indicates the related entities to be represented inline. The maximum depth is 2.", + "schema": { + "type": "string" + } + }, + { + "name": "$select", + "in": "query", + "description": "Limits the properties returned in the result.", + "schema": { + "type": "string" + } + } + ], + "responses": { + "202": { + "description": "Accepted", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/PingEventDto" + } + } + } + } + }, + "security": [ + { + "OAuth2": [] + } + ] + } + }, + "/odata/Webhooks/UiPath.Server.Configuration.OData.GetEventTypes": { + "get": { + "tags": [ + "Webhooks" + ], + "summary": "Gets the list of event types a webhook can subscribe to", + "description": "OAuth required scopes: OR.Webhooks or OR.Webhooks.Read.\r\n\r\nRequired permissions: Webhooks.View.", + "operationId": "Webhooks_GetEventTypes", + "parameters": [ + { + "name": "$expand", + "in": "query", + "description": "Indicates the related entities to be represented inline. The maximum depth is 2.", + "schema": { + "type": "string" + } + }, + { + "name": "$filter", + "in": "query", + "description": "Restricts the set of items returned. The maximum number of expressions is 100.", + "schema": { + "type": "string" + } + }, + { + "name": "$select", + "in": "query", + "description": "Limits the properties returned in the result.", + "schema": { + "type": "string" + } + }, + { + "name": "$orderby", + "in": "query", + "description": "Specifies the order in which items are returned. The maximum number of expressions is 5.", + "schema": { + "type": "string" + } + }, + { + "name": "$count", + "in": "query", + "description": "Indicates whether the total count of items within a collection are returned in the result.", + "schema": { + "type": "boolean" + } + } + ], + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ODataValueOfIEnumerableOfWebhookEventTypeDto" + } + } + } + } + }, + "security": [ + { + "OAuth2": [] + } + ] + } + }, + "/odata/Webhooks/UiPath.Server.Configuration.OData.TriggerCustom": { + "post": { + "tags": [ + "Webhooks" + ], + "summary": "Triggers an event of type \"custom\"", + "description": "OAuth required scopes: OR.Webhooks or OR.Webhooks.Write.\r\n\r\nRequired permissions: Webhooks.View.", + "operationId": "Webhooks_TriggerCustom", + "parameters": [ + { + "name": "$expand", + "in": "query", + "description": "Indicates the related entities to be represented inline. The maximum depth is 2.", + "schema": { + "type": "string" + } + }, + { + "name": "$select", + "in": "query", + "description": "Limits the properties returned in the result.", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "description": "Any custom event data payload", + "content": { + "application/json;odata.metadata=minimal;odata.streaming=true": { + "schema": { + "type": "object", + "additionalProperties": { + "type": "object" + } + } + }, + "application/json;odata.metadata=minimal;odata.streaming=false": { + "schema": { + "type": "object", + "additionalProperties": { + "type": "object" + } + } + }, + "application/json;odata.metadata=minimal": { + "schema": { + "type": "object", + "additionalProperties": { + "type": "object" + } + } + }, + "application/json;odata.metadata=full;odata.streaming=true": { + "schema": { + "type": "object", + "additionalProperties": { + "type": "object" + } + } + }, + "application/json;odata.metadata=full;odata.streaming=false": { + "schema": { + "type": "object", + "additionalProperties": { + "type": "object" + } + } + }, + "application/json;odata.metadata=full": { + "schema": { + "type": "object", + "additionalProperties": { + "type": "object" + } + } + }, + "application/json;odata.metadata=none;odata.streaming=true": { + "schema": { + "type": "object", + "additionalProperties": { + "type": "object" + } + } + }, + "application/json;odata.metadata=none;odata.streaming=false": { + "schema": { + "type": "object", + "additionalProperties": { + "type": "object" + } + } + }, + "application/json;odata.metadata=none": { + "schema": { + "type": "object", + "additionalProperties": { + "type": "object" + } + } + }, + "application/json;odata.streaming=true": { + "schema": { + "type": "object", + "additionalProperties": { + "type": "object" + } + } + }, + "application/json;odata.streaming=false": { + "schema": { + "type": "object", + "additionalProperties": { + "type": "object" + } + } + }, + "application/json": { + "schema": { + "type": "object", + "additionalProperties": { + "type": "object" + } + } + }, + "application/json-patch+json": { + "schema": { + "type": "object", + "additionalProperties": { + "type": "object" + } + } + }, + "application/*+json": { + "schema": { + "type": "object", + "additionalProperties": { + "type": "object" + } + } + } + }, + "required": false + }, + "responses": { + "202": { + "description": "Accepted", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/CustomEventDto" + } + } + } + } + }, + "security": [ + { + "OAuth2": [] + } + ], + "x-codegen-request-body-name": "body" + } + }, + "/tasks/AppTasks/CompleteAppTask": { + "post": { + "tags": [ + "AppTasks" + ], + "summary": "Complete the task by saving app task data and action taken", + "description": "OAuth required scopes: OR.Tasks or OR.Tasks.Write.\r\n\r\nRequired permissions: Tasks.Edit.", + "operationId": "AppTasks_CompleteAppTask", + "parameters": [ + { + "name": "X-UIPATH-OrganizationUnitId", + "in": "header", + "description": "Folder/OrganizationUnit Id", + "schema": { + "type": "integer", + "format": "int64" + } + } + ], + "requestBody": { + "description": "TaskCompletionRequest", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/TaskCompletionRequest" + } + } + }, + "required": false + }, + "responses": { + "204": { + "description": "No Content", + "content": {} + }, + "400": { + "description": "Bad Request", + "content": {} + }, + "404": { + "description": "Not Found", + "content": {} + } + }, + "security": [ + { + "OAuth2": [] + } + ], + "x-codegen-request-body-name": "body" + } + }, + "/tasks/AppTasks/CreateAppTask": { + "post": { + "tags": [ + "AppTasks" + ], + "summary": "Creates a new App Task.", + "description": "OAuth required scopes: OR.Tasks or OR.Tasks.Write.\r\n\r\nRequired permissions: Tasks.Create.", + "operationId": "AppTasks_CreateAppTask", + "parameters": [ + { + "name": "X-UIPATH-OrganizationUnitId", + "in": "header", + "description": "Folder/OrganizationUnit Id", + "schema": { + "type": "integer", + "format": "int64" + } + } + ], + "requestBody": { + "description": "The app task to be created.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/AppTasksCreateRequest" + } + } + }, + "required": false + }, + "responses": { + "201": { + "description": "Created", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/AppTasksDataDto" + } + } + } + }, + "400": { + "description": "Bad Request", + "content": {} + } + }, + "security": [ + { + "OAuth2": [] + } + ], + "x-codegen-request-body-name": "body" + } + }, + "/tasks/AppTasks/GetAppTaskById": { + "get": { + "tags": [ + "AppTasks" + ], + "summary": "Returns dto to render app task", + "description": "OAuth required scopes: OR.Tasks or OR.Tasks.Read.\r\n\r\nRequired permissions: Tasks.View.", + "operationId": "AppTasks_GetAppTaskById", + "parameters": [ + { + "name": "taskId", + "in": "query", + "description": "Task id", + "schema": { + "type": "integer", + "format": "int64" + } + }, + { + "name": "X-UIPATH-OrganizationUnitId", + "in": "header", + "description": "Folder/OrganizationUnit Id", + "schema": { + "type": "integer", + "format": "int64" + } + } + ], + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/AppTasksDataDto" + } + } + } + }, + "404": { + "description": "Not Found", + "content": {} + } + }, + "security": [ + { + "OAuth2": [] + } + ] + } + }, + "/tasks/AppTasks/SaveAndReassignAppTasks": { + "post": { + "tags": [ + "AppTasks" + ], + "summary": "Save changes done by the current user and Reassign Task to another user", + "description": "OAuth required scopes: OR.Tasks or OR.Tasks.Write.\r\n\r\nRequired permissions: Tasks.Edit.", + "operationId": "AppTasks_SaveAndReassignAppTasks", + "parameters": [ + { + "name": "X-UIPATH-OrganizationUnitId", + "in": "header", + "description": "Folder/OrganizationUnit Id", + "schema": { + "type": "integer", + "format": "int64" + } + } + ], + "requestBody": { + "description": "TaskSaveAndReassignmentRequest", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/TaskSaveAndReassignmentRequest" + } + } + }, + "required": false + }, + "responses": { + "204": { + "description": "No Content", + "content": {} + }, + "400": { + "description": "Bad Request", + "content": {} + }, + "404": { + "description": "Not Found", + "content": {} + } + }, + "security": [ + { + "OAuth2": [] + } + ], + "x-codegen-request-body-name": "body" + } + }, + "/tasks/AppTasks/SaveAppTasksData": { + "put": { + "tags": [ + "AppTasks" + ], + "summary": "Save task data", + "description": "OAuth required scopes: OR.Tasks or OR.Tasks.Write.\r\n\r\nRequired permissions: Tasks.Edit.", + "operationId": "AppTasks_SaveAppTasksData", + "parameters": [ + { + "name": "X-UIPATH-OrganizationUnitId", + "in": "header", + "description": "Folder/OrganizationUnit Id", + "schema": { + "type": "integer", + "format": "int64" + } + } + ], + "requestBody": { + "description": "TaskDataSaveRequest", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/TaskDataSaveRequest" + } + } + }, + "required": false + }, + "responses": { + "204": { + "description": "No Content", + "content": {} + }, + "400": { + "description": "Bad Request", + "content": {} + }, + "404": { + "description": "Not Found", + "content": {} + } + }, + "security": [ + { + "OAuth2": [] + } + ], + "x-codegen-request-body-name": "body" + } + }, + "/tasks/GenericTasks/CompleteTask": { + "post": { + "tags": [ + "GenericTasks" + ], + "summary": "Complete the task by saving task data and action taken", + "description": "OAuth required scopes: OR.Tasks or OR.Tasks.Write.\r\n\r\nRequired permissions: Tasks.Edit.", + "operationId": "GenericTasks_CompleteTask", + "parameters": [ + { + "name": "X-UIPATH-OrganizationUnitId", + "in": "header", + "description": "Folder/OrganizationUnit Id", + "schema": { + "type": "integer", + "format": "int64" + } + } + ], + "requestBody": { + "description": "TaskCompletionRequest", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/TaskCompletionRequest" + } + } + }, + "required": false + }, + "responses": { + "204": { + "description": "No Content", + "content": {} + }, + "400": { + "description": "Bad Request", + "content": {} + }, + "404": { + "description": "Not Found", + "content": {} + } + }, + "security": [ + { + "OAuth2": [] + } + ], + "x-codegen-request-body-name": "body" + } + }, + "/tasks/GenericTasks/CreateTask": { + "post": { + "tags": [ + "GenericTasks" + ], + "summary": "Creates a new Generic Task.", + "description": "OAuth required scopes: OR.Tasks or OR.Tasks.Write.\r\n\r\nRequired permissions: Tasks.Create.", + "operationId": "GenericTasks_CreateTask", + "parameters": [ + { + "name": "X-UIPATH-OrganizationUnitId", + "in": "header", + "description": "Folder/OrganizationUnit Id", + "schema": { + "type": "integer", + "format": "int64" + } + } + ], + "requestBody": { + "description": "The task to be created.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/TaskCreateRequest" + } + } + }, + "required": false + }, + "responses": { + "201": { + "description": "Created", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/TaskDataDto" + } + } + } + } + }, + "security": [ + { + "OAuth2": [] + } + ], + "x-codegen-request-body-name": "body" + } + }, + "/tasks/GenericTasks/GetTaskDataById": { + "get": { + "tags": [ + "GenericTasks" + ], + "summary": "Returns task data dto", + "description": "OAuth required scopes: OR.Tasks or OR.Tasks.Read.\r\n\r\nRequired permissions: Tasks.View.", + "operationId": "GenericTasks_GetTaskDataById", + "parameters": [ + { + "name": "taskId", + "in": "query", + "description": "Task id", + "schema": { + "type": "integer", + "format": "int64" + } + }, + { + "name": "X-UIPATH-OrganizationUnitId", + "in": "header", + "description": "Folder/OrganizationUnit Id", + "schema": { + "type": "integer", + "format": "int64" + } + } + ], + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/TaskDataDto" + } + } + } + }, + "404": { + "description": "Not Found", + "content": {} + } + }, + "security": [ + { + "OAuth2": [] + } + ] + } + }, + "/tasks/GenericTasks/SaveAndReassignTask": { + "post": { + "tags": [ + "GenericTasks" + ], + "summary": "Save changes done by the current user and Reassign Task to another user", + "description": "OAuth required scopes: OR.Tasks or OR.Tasks.Write.\r\n\r\nRequired permissions: Tasks.Edit.", + "operationId": "GenericTasks_SaveAndReassignTask", + "parameters": [ + { + "name": "X-UIPATH-OrganizationUnitId", + "in": "header", + "description": "Folder/OrganizationUnit Id", + "schema": { + "type": "integer", + "format": "int64" + } + } + ], + "requestBody": { + "description": "TaskSaveAndReassignmentRequest", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/TaskSaveAndReassignmentRequest" + } + } + }, + "required": false + }, + "responses": { + "204": { + "description": "No Content", + "content": {} + }, + "400": { + "description": "Bad Request", + "content": {} + }, + "404": { + "description": "Not Found", + "content": {} + } + }, + "security": [ + { + "OAuth2": [] + } + ], + "x-codegen-request-body-name": "body" + } + }, + "/tasks/GenericTasks/SaveTaskData": { + "put": { + "tags": [ + "GenericTasks" + ], + "summary": "Save Task data", + "description": "OAuth required scopes: OR.Tasks or OR.Tasks.Write.\r\n\r\nRequired permissions: Tasks.Edit.", + "operationId": "GenericTasks_SaveTaskData", + "parameters": [ + { + "name": "X-UIPATH-OrganizationUnitId", + "in": "header", + "description": "Folder/OrganizationUnit Id", + "schema": { + "type": "integer", + "format": "int64" + } + } + ], + "requestBody": { + "description": "TaskDataSaveRequest", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/TaskDataSaveRequest" + } + } + }, + "required": false + }, + "responses": { + "204": { + "description": "No Content", + "content": {} + }, + "400": { + "description": "Bad Request", + "content": {} + }, + "404": { + "description": "Not Found", + "content": {} + } + }, + "security": [ + { + "OAuth2": [] + } + ], + "x-codegen-request-body-name": "body" + } + }, + "/tasks/GenericTasks/SaveTaskTags": { + "put": { + "tags": [ + "GenericTasks" + ], + "summary": "Save tags for a task", + "description": "OAuth required scopes: OR.Tasks or OR.Tasks.Write.\r\n\r\nRequired permissions: Tasks.Edit.", + "operationId": "GenericTasks_SaveTaskTags", + "parameters": [ + { + "name": "X-UIPATH-OrganizationUnitId", + "in": "header", + "description": "Folder/OrganizationUnit Id", + "schema": { + "type": "integer", + "format": "int64" + } + } + ], + "requestBody": { + "description": "TaskTagsSaveRequest", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/TaskTagsSaveRequest" + } + } + }, + "required": false + }, + "responses": { + "204": { + "description": "No Content", + "content": {} + }, + "400": { + "description": "Bad Request", + "content": {} + }, + "404": { + "description": "Not Found", + "content": {} + } + }, + "security": [ + { + "OAuth2": [] + } + ], + "x-codegen-request-body-name": "body" + } + } + }, + "components": { + "schemas": { + "AccessibleFoldersDto": { + "type": "object", + "properties": { + "AccessibleFolders": { + "type": "array", + "items": { + "$ref": "#/components/schemas/SimpleFolderDto" + } + }, + "TotalFoldersCount": { + "type": "integer", + "format": "int32" + } + } + }, + "ActivitySettingsDto": { + "type": "object", + "properties": { + "ApiVersion": { + "type": "string", + "description": "Current Orchestrator api version" + }, + "SignalR": { + "$ref": "#/components/schemas/SignalRActivitySettingsDto" + } + }, + "description": "Activity settings" + }, + "AddQueueItemRequest": { + "required": [ + "itemData" + ], + "type": "object", + "properties": { + "itemData": { + "$ref": "#/components/schemas/QueueItemDataDto" + } + } + }, + "AjaxResponse": { + "type": "object", + "properties": { + "result": { + "type": "object" + }, + "targetUrl": { + "type": "string" + }, + "success": { + "type": "boolean" + }, + "error": { + "$ref": "#/components/schemas/ErrorInfo" + }, + "unAuthorizedRequest": { + "type": "boolean" + }, + "__abp": { + "type": "boolean", + "readOnly": true + } + } + }, + "AlertDto": { + "required": [ + "Severity" + ], + "type": "object", + "properties": { + "NotificationName": { + "type": "string", + "description": "The name of a specific type of notification, e.g. Robot.StatusChanged.NotResponding." + }, + "Data": { + "type": "string", + "description": "Stores data about the context in which the event occurred, in JSON format." + }, + "Component": { + "type": "string", + "description": "The component that raised the alert.", + "enum": [ + "Robots", + "Transactions", + "Schedules", + "Jobs", + "Process", + "Tasks", + "Queues", + "Folders", + "PersonalWorkspaces", + "TestAutomation", + "Insights", + "CloudRobots", + "ConnectedTriggers", + "Serverless", + "Export" + ], + "x-ms-enum": { + "name": "AlertDtoComponent", + "modelAsString": false + } + }, + "Severity": { + "type": "string", + "description": "The severity level of the alert.", + "enum": [ + "Info", + "Success", + "Warn", + "Error", + "Fatal" + ], + "x-ms-enum": { + "name": "AlertDtoSeverity", + "modelAsString": false + } + }, + "CreationTime": { + "type": "string", + "description": "The date and time when the alert was generated.", + "format": "date-time" + }, + "State": { + "type": "string", + "description": "Defines if a specified notification has been read or not.\r\nMembers: Unread (0) - the specified notification has not been marked as read; Read (1) - the specified notification has been marked as read.", + "enum": [ + "Unread", + "Read" + ], + "x-ms-enum": { + "name": "AlertDtoState", + "modelAsString": false + } + }, + "UserNotificationId": { + "type": "string", + "description": "The database unique identifier for the alert notification sent to the current user.", + "format": "uuid" + }, + "DeepLinkRelativeUrl": { + "type": "string", + "description": "Relative deep link for front-end usage.\r\ne.g /alerts/deeplink/{alert_title}?{alert_param1}={alert_param1_value}&{alert_param2}={alert_param2_value}" + }, + "Id": { + "type": "string", + "format": "uuid" + } + }, + "description": "Stores notification data used to inform the users about specific application events." + }, + "AlertsMarkAsReadRequest": { + "required": [ + "ids" + ], + "type": "object", + "properties": { + "ids": { + "type": "array", + "items": { + "type": "string", + "format": "uuid" + } + } + } + }, + "AppTasksCreateRequest": { + "required": [ + "appId", + "appVersion", + "taskDefinitionId", + "title" + ], + "type": "object", + "properties": { + "taskDefinitionId": { + "type": "integer", + "description": "Id for associated task definition", + "format": "int64" + }, + "taskDefinitionVersion": { + "type": "integer", + "description": "Version of Task Definition to get associated properties", + "format": "int32" + }, + "appId": { + "maxLength": 34, + "minLength": 1, + "type": "string", + "description": "Id representing AppId for AppTask" + }, + "appVersion": { + "type": "integer", + "description": "Version of App for AppTask", + "format": "int32" + }, + "type": { + "type": "string", + "description": "Gets or sets type of this task, allowed type is 'ExternalTask'.", + "enum": [ + "FormTask", + "ExternalTask", + "DocumentValidationTask", + "DocumentClassificationTask", + "DataLabelingTask", + "AppTask" + ], + "x-ms-enum": { + "name": "TaskCreateRequestType", + "modelAsString": false + } + }, + "title": { + "maxLength": 512, + "minLength": 0, + "type": "string", + "description": "Gets or sets title of this task." + }, + "priority": { + "type": "string", + "description": "Gets or sets priority of this task.", + "enum": [ + "Low", + "Medium", + "High", + "Critical" + ], + "x-ms-enum": { + "name": "BaseTaskCreateRequestPriority", + "modelAsString": false + } + }, + "data": { + "type": "object", + "description": "Task data" + }, + "taskCatalogName": { + "maxLength": 50, + "type": "string", + "description": "Gets or sets the task catalog/category of the task" + }, + "externalTag": { + "maxLength": 128, + "type": "string", + "description": "Reference or name of external system" + }, + "tags": { + "type": "array", + "description": "List of tags associated to the task.", + "items": { + "$ref": "#/components/schemas/TagDto" + } + } + }, + "description": "Class with only attributes needed for Creating Task (TaskType = TaskType.AppTask)" + }, + "AppTasksDataDto": { + "type": "object", + "properties": { + "appTasksMetadata": { + "$ref": "#/components/schemas/AppTasksMetadataDto" + }, + "status": { + "type": "string", + "description": "Task status", + "enum": [ + "Unassigned", + "Pending", + "Completed" + ], + "x-ms-enum": { + "name": "TaskDataDtoStatus", + "modelAsString": false + } + }, + "data": { + "type": "object", + "description": "Task form data json" + }, + "action": { + "type": "string", + "description": "Task form action" + }, + "waitJobState": { + "type": "string", + "description": "State of the job(if any) waiting on the current task", + "enum": [ + "Pending", + "Running", + "Stopping", + "Terminating", + "Faulted", + "Successful", + "Stopped", + "Suspended", + "Resumed" + ], + "x-ms-enum": { + "name": "TaskDataDtoWaitJobState", + "modelAsString": false + } + }, + "organizationUnitFullyQualifiedName": { + "type": "string", + "description": "Fully qualified folder name" + }, + "tags": { + "type": "array", + "description": "List of tags associated to the task.", + "items": { + "$ref": "#/components/schemas/TagDto" + } + }, + "assignedToUser": { + "$ref": "#/components/schemas/UserLoginInfoDto" + }, + "title": { + "type": "string", + "description": "Gets or sets title of this task." + }, + "type": { + "type": "string", + "description": "Gets or sets type of this task.", + "enum": [ + "FormTask", + "ExternalTask", + "DocumentValidationTask", + "DocumentClassificationTask", + "DataLabelingTask", + "AppTask" + ], + "x-ms-enum": { + "name": "TaskMetadataDtoType", + "modelAsString": false + } + }, + "priority": { + "type": "string", + "description": "Gets or sets priority of this task.", + "enum": [ + "Low", + "Medium", + "High", + "Critical" + ], + "x-ms-enum": { + "name": "TaskMetadataDtoPriority", + "modelAsString": false + } + }, + "assignedToUserId": { + "type": "integer", + "description": "Gets the id of the actual assigned user, if any.", + "format": "int64" + }, + "organizationUnitId": { + "type": "integer", + "description": "Gets or sets the folder/organization-unit id.", + "format": "int64" + }, + "externalTag": { + "type": "string", + "description": "Identifier of external system where this task is handled" + }, + "creatorJobKey": { + "type": "string", + "description": "Key of the job which created this task", + "format": "uuid" + }, + "waitJobKey": { + "type": "string", + "description": "Key job which is waiting on this task", + "format": "uuid" + }, + "lastAssignedTime": { + "type": "string", + "description": "Datetime when task was last assigned.", + "format": "date-time" + }, + "completionTime": { + "type": "string", + "description": "Datetime when task was completed.", + "format": "date-time" + }, + "isDeleted": { + "type": "boolean" + }, + "deleterUserId": { + "type": "integer", + "format": "int64" + }, + "deletionTime": { + "type": "string", + "format": "date-time" + }, + "lastModificationTime": { + "type": "string", + "format": "date-time" + }, + "lastModifierUserId": { + "type": "integer", + "format": "int64" + }, + "creationTime": { + "type": "string", + "format": "date-time" + }, + "creatorUserId": { + "type": "integer", + "format": "int64" + }, + "id": { + "type": "integer", + "format": "int64" + } + }, + "description": "Dto with attributes required for App Task" + }, + "AppTasksMetadataDto": { + "type": "object", + "properties": { + "appId": { + "type": "string", + "description": "Associated App Id for App Tasks" + }, + "appVersion": { + "type": "integer", + "description": "Associated App Version for App Tasks", + "format": "int32" + }, + "creationTime": { + "type": "string", + "format": "date-time" + }, + "creatorUserId": { + "type": "integer", + "format": "int64" + }, + "id": { + "type": "integer", + "format": "int64" + } + } + }, + "ArgumentMetadata": { + "type": "object", + "properties": { + "Input": { + "type": "string" + }, + "Output": { + "type": "string" + } + } + }, + "AssetCreatedEvent": { + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "description": { + "type": "string" + }, + "key": { + "type": "string", + "format": "uuid" + }, + "assetType": { + "type": "string", + "description": "Defines what type of value is stored by an asset.", + "enum": [ + "DBConnectionString", + "HttpConnectionString", + "Text", + "Bool", + "Integer", + "Credential", + "WindowsCredential", + "KeyValueList" + ], + "x-ms-enum": { + "name": "AssetCreatedEventAssetType", + "modelAsString": false + } + }, + "assetScope": { + "type": "string", + "description": "Defines the visibility level of an asset.", + "enum": [ + "Global", + "PerRobot" + ], + "x-ms-enum": { + "name": "AssetCreatedEventAssetScope", + "modelAsString": false + } + }, + "tags": { + "type": "array", + "items": { + "$ref": "#/components/schemas/TagDto" + } + }, + "folderKeys": { + "type": "array", + "items": { + "type": "string", + "format": "uuid" + } + }, + "eventTime": { + "type": "string", + "format": "date-time" + }, + "eventSource": { + "type": "object" + } + } + }, + "AssetDeletedEvent": { + "type": "object", + "properties": { + "key": { + "type": "string", + "format": "uuid" + }, + "name": { + "type": "string" + }, + "assetType": { + "type": "string", + "description": "Defines what type of value is stored by an asset.", + "enum": [ + "DBConnectionString", + "HttpConnectionString", + "Text", + "Bool", + "Integer", + "Credential", + "WindowsCredential", + "KeyValueList" + ], + "x-ms-enum": { + "name": "AssetDeletedEventAssetType", + "modelAsString": false + } + }, + "assetScope": { + "type": "string", + "description": "Defines the visibility level of an asset.", + "enum": [ + "Global", + "PerRobot" + ], + "x-ms-enum": { + "name": "AssetDeletedEventAssetScope", + "modelAsString": false + } + }, + "folderKeys": { + "type": "array", + "items": { + "type": "string", + "format": "uuid" + } + }, + "eventTime": { + "type": "string", + "format": "date-time" + }, + "eventSource": { + "type": "object" + } + } + }, + "AssetDto": { + "required": [ + "Name", + "ValueScope" + ], + "type": "object", + "properties": { + "Key": { + "type": "string", + "description": "An unique identifier", + "format": "uuid" + }, + "Name": { + "maxLength": 256, + "minLength": 1, + "type": "string", + "description": "A custom name for the asset." + }, + "CanBeDeleted": { + "type": "boolean", + "description": "States if an assets can be deleted. The default value of this property is true." + }, + "ValueScope": { + "type": "string", + "description": "Defines the scope of the asset.", + "enum": [ + "Global", + "PerRobot" + ], + "x-ms-enum": { + "name": "AssetDtoValueScope", + "modelAsString": false + } + }, + "ValueType": { + "type": "string", + "description": "Defines the type of value stored by the asset.", + "enum": [ + "DBConnectionString", + "HttpConnectionString", + "Text", + "Bool", + "Integer", + "Credential", + "WindowsCredential", + "KeyValueList" + ], + "x-ms-enum": { + "name": "AssetDtoValueType", + "modelAsString": false + } + }, + "Value": { + "type": "string", + "description": "The textual representation of the asset value, irrespective of value type." + }, + "StringValue": { + "maxLength": 1000000, + "type": "string", + "description": "The value of the asset when the value type is Text. Empty when the value type is not Text." + }, + "BoolValue": { + "type": "boolean", + "description": "The value of the asset when the value type is Bool. False when the value type is not Bool." + }, + "IntValue": { + "type": "integer", + "description": "The value of the asset when the value type is Integer. 0 when the value type is not Integer.", + "format": "int32" + }, + "CredentialUsername": { + "maxLength": 512, + "type": "string", + "description": "The user name when the value type is Credential. Empty when the value type is not Credential." + }, + "CredentialPassword": { + "maxLength": 25000, + "type": "string", + "description": "The password when the value type is Credential. Empty when the value type is not Credential." + }, + "ExternalName": { + "maxLength": 450, + "minLength": 0, + "type": "string", + "description": "Contains the value of the key in the external store used to store the credentials." + }, + "CredentialStoreId": { + "type": "integer", + "description": "The Credential Store used to store the credentials.", + "format": "int64" + }, + "KeyValueList": { + "type": "array", + "description": "A collection of key value pairs when the type is KeyValueList. Empty when the value type is not KeyValueList.", + "items": { + "$ref": "#/components/schemas/CustomKeyValuePair" + } + }, + "HasDefaultValue": { + "type": "boolean", + "description": "The asset has a default value set. This value will be null when set from legacy components that don't support\r\nthe PerRobot assets with default value feature." + }, + "Description": { + "maxLength": 250, + "type": "string", + "description": "The description of the asset." + }, + "RobotValues": { + "type": "array", + "description": "The collection of asset values per robot. Empty if the asset type is Global or PerUser.", + "items": { + "$ref": "#/components/schemas/AssetRobotValueDto" + } + }, + "UserValues": { + "type": "array", + "description": "The collection of asset values per user. Empty if the asset type is Global or PerRobot.", + "items": { + "$ref": "#/components/schemas/AssetUserValueDto" + } + }, + "Tags": { + "type": "array", + "items": { + "$ref": "#/components/schemas/TagDto" + } + }, + "FoldersCount": { + "type": "integer", + "description": "Number of folders where the asset is shared.", + "format": "int32" + }, + "LastModificationTime": { + "type": "string", + "format": "date-time" + }, + "LastModifierUserId": { + "type": "integer", + "format": "int64" + }, + "CreationTime": { + "type": "string", + "format": "date-time" + }, + "CreatorUserId": { + "type": "integer", + "format": "int64" + }, + "Id": { + "type": "integer", + "format": "int64" + } + }, + "description": "Stores specific data so that robots can easily have access to it." + }, + "AssetFoldersShareDto": { + "type": "object", + "properties": { + "AssetIds": { + "type": "array", + "items": { + "type": "integer", + "format": "int64" + } + }, + "ToAddFolderIds": { + "type": "array", + "items": { + "type": "integer", + "format": "int64" + } + }, + "ToRemoveFolderIds": { + "type": "array", + "items": { + "type": "integer", + "format": "int64" + } + } + } + }, + "AssetRobotValueDto": { + "type": "object", + "properties": { + "RobotId": { + "type": "integer", + "description": "The Id of the robot with which the asset is associated.", + "format": "int64" + }, + "RobotName": { + "type": "string", + "description": "The name of the robot with which the asset is associated." + }, + "KeyTrail": { + "type": "string", + "description": "Masked value of the robot key." + }, + "ValueType": { + "type": "string", + "description": "Defines the type of value stored by the asset.", + "enum": [ + "DBConnectionString", + "HttpConnectionString", + "Text", + "Bool", + "Integer", + "Credential", + "WindowsCredential", + "KeyValueList" + ], + "x-ms-enum": { + "name": "AssetRobotValueDtoValueType", + "modelAsString": false + } + }, + "StringValue": { + "maxLength": 1000000, + "type": "string", + "description": "The value of the asset when the value type is Text. Empty when the value type is not Text." + }, + "BoolValue": { + "type": "boolean", + "description": "The value of the asset when the value type is Bool. False when the value type is not Bool." + }, + "IntValue": { + "type": "integer", + "description": "The value of the asset when the value type is Integer. 0 when the value type is not Integer.", + "format": "int32" + }, + "Value": { + "type": "string", + "description": "The textual representation of the asset value, irrespective of value type." + }, + "CredentialUsername": { + "type": "string", + "description": "The user name when the value type is Credential. Empty when the value type is not Credential." + }, + "CredentialPassword": { + "type": "string", + "description": "The password when the value type is Credential. Empty when the value type is not Credential." + }, + "ExternalName": { + "maxLength": 450, + "minLength": 0, + "type": "string", + "description": "Contains the value of the key in the external store used to store the credentials." + }, + "CredentialStoreId": { + "type": "integer", + "description": "The Credential Store used to store the credentials.", + "format": "int64" + }, + "KeyValueList": { + "type": "array", + "description": "A collection of key value pairs when the type is KeyValueList. Empty when the value type is not KeyValueList.", + "items": { + "$ref": "#/components/schemas/CustomKeyValuePair" + } + }, + "Id": { + "type": "integer", + "format": "int64" + } + }, + "description": "Stores the value of an asset associated with a robot as well as the robot association data." + }, + "AssetUpdatedEvent": { + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "description": { + "type": "string" + }, + "key": { + "type": "string", + "format": "uuid" + }, + "assetType": { + "type": "string", + "description": "Defines what type of value is stored by an asset.", + "enum": [ + "DBConnectionString", + "HttpConnectionString", + "Text", + "Bool", + "Integer", + "Credential", + "WindowsCredential", + "KeyValueList" + ], + "x-ms-enum": { + "name": "AssetUpdatedEventAssetType", + "modelAsString": false + } + }, + "assetScope": { + "type": "string", + "description": "Defines the visibility level of an asset.", + "enum": [ + "Global", + "PerRobot" + ], + "x-ms-enum": { + "name": "AssetUpdatedEventAssetScope", + "modelAsString": false + } + }, + "tags": { + "type": "array", + "items": { + "$ref": "#/components/schemas/TagDto" + } + }, + "folderKeys": { + "type": "array", + "items": { + "type": "string", + "format": "uuid" + } + }, + "eventTime": { + "type": "string", + "format": "date-time" + }, + "eventSource": { + "type": "object" + } + } + }, + "AssetUserValueDto": { + "type": "object", + "properties": { + "UserId": { + "type": "integer", + "description": "The Id of the user with which the asset is associated.", + "format": "int64" + }, + "UserName": { + "type": "string", + "description": "The name of the user which the asset is associated." + }, + "MachineId": { + "type": "integer", + "description": "The Id of the machine which the asset is associated", + "format": "int64" + }, + "MachineName": { + "type": "string", + "description": "The name of the machine which the asset is associated." + }, + "ValueType": { + "type": "string", + "description": "Defines the type of value stored by the asset.", + "enum": [ + "DBConnectionString", + "HttpConnectionString", + "Text", + "Bool", + "Integer", + "Credential", + "WindowsCredential", + "KeyValueList" + ], + "x-ms-enum": { + "name": "AssetUserValueDtoValueType", + "modelAsString": false + } + }, + "StringValue": { + "maxLength": 1000000, + "type": "string", + "description": "The value of the asset when the value type is Text. Empty when the value type is not Text." + }, + "BoolValue": { + "type": "boolean", + "description": "The value of the asset when the value type is Bool. False when the value type is not Bool." + }, + "IntValue": { + "type": "integer", + "description": "The value of the asset when the value type is Integer. 0 when the value type is not Integer.", + "format": "int32" + }, + "Value": { + "type": "string", + "description": "The textual representation of the asset value, irrespective of value type." + }, + "CredentialUsername": { + "type": "string", + "description": "The user name when the value type is Credential. Empty when the value type is not Credential." + }, + "CredentialPassword": { + "type": "string", + "description": "The password when the value type is Credential. Empty when the value type is not Credential." + }, + "CredentialStoreId": { + "type": "integer", + "description": "The Credential Store used to store the credentials.", + "format": "int64" + }, + "ExternalName": { + "maxLength": 450, + "minLength": 0, + "type": "string", + "description": "Contains the value of the key in the external store used to store the credentials." + }, + "KeyValueList": { + "type": "array", + "description": "A collection of key value pairs when the type is KeyValueList. Empty when the value type is not KeyValueList.", + "items": { + "$ref": "#/components/schemas/CustomKeyValuePair" + } + }, + "Id": { + "type": "integer", + "format": "int64" + } + }, + "description": "Stores the value of an asset associated with a user." + }, + "AssetsGetRobotByNameAndKeyRequest": { + "required": [ + "assetName", + "robotKey" + ], + "type": "object", + "properties": { + "robotKey": { + "minLength": 1, + "type": "string" + }, + "assetName": { + "minLength": 1, + "type": "string" + } + } + }, + "AssetsSetRobotAssetsByKeyRequest": { + "required": [ + "robotAsset", + "robotKey" + ], + "type": "object", + "properties": { + "robotKey": { + "minLength": 1, + "type": "string" + }, + "robotAsset": { + "$ref": "#/components/schemas/RobotAssetDto" + } + } + }, + "AttendedRobotDto": { + "type": "object", + "properties": { + "UserName": { + "maxLength": 100, + "minLength": 0, + "type": "string", + "description": "The UserName used to authenticate on the Host Machine." + }, + "ExecutionSettings": { + "type": "object", + "additionalProperties": { + "type": "object" + }, + "description": "An object containing execution settings for the Robot." + }, + "RobotId": { + "type": "integer", + "description": "The actual Id of the provisioned Robot.", + "format": "int64" + }, + "RobotType": { + "type": "string", + "description": "The actual Type of the provisioned Robot.", + "enum": [ + "NonProduction", + "Attended", + "Unattended", + "Development", + "Studio", + "RpaDeveloper", + "StudioX", + "CitizenDeveloper", + "Headless", + "StudioPro", + "RpaDeveloperPro", + "TestAutomation", + "AutomationCloud", + "Serverless", + "AutomationKit", + "ServerlessTestAutomation", + "AutomationCloudTestAutomation", + "AttendedStudioWeb" + ], + "x-ms-enum": { + "name": "AttendedRobotDtoRobotType", + "modelAsString": false + } + } + } + }, + "AuditLogDto": { + "type": "object", + "properties": { + "ServiceName": { + "type": "string", + "description": "The name of the Orchestrator service that performed a given action in the system." + }, + "MethodName": { + "type": "string", + "description": "The name of the service method that performed a given action in the system." + }, + "Parameters": { + "type": "string", + "description": "JSON representation of the method parameters and their values for the given action." + }, + "ExecutionTime": { + "type": "string", + "description": "The date and time when the action was performed.", + "format": "date-time" + }, + "Action": { + "type": "string", + "description": "The action performed (create, update, delete etc)", + "enum": [ + "Unknown", + "Create", + "Update", + "Delete", + "StartJob", + "StopJob", + "Associate", + "Upload", + "ChangeStatus", + "Import", + "ChangePassword", + "Register", + "Toggle", + "ResetPassword", + "PasswordResetAttempt", + "Download", + "Acknowledge", + "Activate", + "Assign", + "BulkUpload", + "UpdateFeature", + "ResumeJob", + "Start", + "End", + "Skip", + "Unassign", + "Deactivate", + "CreateBlobFileSas", + "DeleteBlobFile", + "Move", + "Set", + "StartDelete", + "ExploreStart", + "ExploreEnd", + "Save", + "Convert", + "Forward", + "BulkComplete", + "BulkSave", + "ForceStopJob", + "MigrateFolder", + "EditTaskMetadata", + "Archive", + "StartMigrateFolders", + "ToggleUserFolderSubscription", + "StartUninstall", + "StartInstall", + "VideoAccess", + "AutomaticallyExploreEnd", + "InstallState", + "FinishInstall", + "FinishUninstall" + ], + "x-ms-enum": { + "name": "AuditLogDtoAction", + "modelAsString": false + } + }, + "Component": { + "type": "string", + "description": "The component for which the action was performed", + "enum": [ + "Unknown", + "Assets", + "Environments", + "Processes", + "Queues", + "Robots", + "Roles", + "Schedules", + "Users", + "Comments", + "Units", + "Jobs", + "Settings", + "Packages", + "License", + "Tenant", + "Machines", + "Libraries", + "Webhooks", + "ExecutionMedia", + "Monitoring", + "CredentialStores", + "DefaultCredentialStores", + "TaskCatalogs", + "Tasks", + "Maintenance", + "Folders", + "DirectoryService", + "Buckets", + "DataRetentionPolicies", + "TenantMove", + "Secrets", + "PersonalWorkspaces", + "CloudSubscriptions", + "CloudSnapshots", + "Sessions", + "CredentialsProxies", + "StudioWeb", + "AutomationSolutions", + "RemoteControl", + "TaskSolutions", + "TaskDefinitions", + "TestSets", + "TestSetSchedules", + "TestDataQueues", + "TestDataQueueItems" + ], + "x-ms-enum": { + "name": "AuditLogDtoComponent", + "modelAsString": false + } + }, + "DisplayName": { + "type": "string", + "description": "The display name of the resource acted on, usually Name" + }, + "EntityId": { + "type": "integer", + "description": "The Id of the resource acted on", + "format": "int64" + }, + "OperationText": { + "type": "string", + "description": "User friendly description of the change, e.g. \"User X created robot Y\"" + }, + "UserName": { + "type": "string", + "description": "UserName that sent the request" + }, + "UserType": { + "type": "string", + "description": "The type of user that sent the request", + "enum": [ + "User", + "Robot", + "DirectoryUser", + "DirectoryGroup", + "DirectoryRobot", + "DirectoryExternalApplication" + ], + "x-ms-enum": { + "name": "AuditLogDtoUserType", + "modelAsString": false + } + }, + "Entities": { + "type": "array", + "description": "Audit entity details collection", + "items": { + "$ref": "#/components/schemas/AuditLogEntityDto" + } + }, + "ExternalClientId": { + "type": "string", + "description": "External client identifier. Example: OAuth 3rd party app identifier that called Orchestrator." + }, + "UserId": { + "type": "integer", + "format": "int64" + }, + "UserIsDeleted": { + "type": "boolean", + "description": "Marks whether the users that did the action was deleted in the meantime" + }, + "Id": { + "type": "integer", + "format": "int64" + } + }, + "description": "Stores audit information about any action performed in Orchestrator." + }, + "AuditLogEntityDto": { + "type": "object", + "properties": { + "AuditLogId": { + "type": "integer", + "description": "Business audit entry that triggered the changes", + "format": "int64" + }, + "CustomData": { + "type": "string", + "description": "Data about the old/new/included values" + }, + "EntityId": { + "type": "integer", + "description": "The Id of the referred entity", + "format": "int64" + }, + "EntityName": { + "type": "string", + "description": "The name of the entity the auditLog refers to" + }, + "Action": { + "type": "string", + "description": "The action (created, updated, deleted etc)", + "enum": [ + "Unknown", + "Create", + "Update", + "Delete", + "StartJob", + "StopJob", + "Associate", + "Upload", + "ChangeStatus", + "Import", + "ChangePassword", + "Register", + "Toggle", + "ResetPassword", + "PasswordResetAttempt", + "Download", + "Acknowledge", + "Activate", + "Assign", + "BulkUpload", + "UpdateFeature", + "ResumeJob", + "Start", + "End", + "Skip", + "Unassign", + "Deactivate", + "CreateBlobFileSas", + "DeleteBlobFile", + "Move", + "Set", + "StartDelete", + "ExploreStart", + "ExploreEnd", + "Save", + "Convert", + "Forward", + "BulkComplete", + "BulkSave", + "ForceStopJob", + "MigrateFolder", + "EditTaskMetadata", + "Archive", + "StartMigrateFolders", + "ToggleUserFolderSubscription", + "StartUninstall", + "StartInstall", + "VideoAccess", + "AutomaticallyExploreEnd", + "InstallState", + "FinishInstall", + "FinishUninstall" + ], + "x-ms-enum": { + "name": "AuditLogEntityDtoAction", + "modelAsString": false + } + }, + "Id": { + "type": "integer", + "format": "int64" + } + }, + "description": "Stores audit information about any action performed in Orchestrator." + }, + "BlobFileAccessDto": { + "type": "object", + "properties": { + "Uri": { + "type": "string" + }, + "Verb": { + "type": "string" + }, + "RequiresAuth": { + "type": "boolean" + }, + "Headers": { + "$ref": "#/components/schemas/ResponseDictionaryDto" + } + } + }, + "BlobFileDto": { + "type": "object", + "properties": { + "FullPath": { + "type": "string" + }, + "ContentType": { + "type": "string" + }, + "Size": { + "type": "integer", + "format": "int64" + }, + "IsDirectory": { + "type": "boolean" + }, + "Id": { + "type": "string" + } + } + }, + "BucketDto": { + "required": [ + "Identifier", + "Name" + ], + "type": "object", + "properties": { + "Name": { + "maxLength": 128, + "minLength": 0, + "type": "string", + "description": "Display name of the Bucket" + }, + "Description": { + "maxLength": 512, + "minLength": 0, + "type": "string", + "description": "Description of the Bucket" + }, + "Identifier": { + "type": "string", + "description": "A stable unique identifier", + "format": "uuid" + }, + "StorageProvider": { + "type": "string", + "description": "Provider Name.\r\nOtherwise one of the supported providers:\r\n- FileSystem\r\n- Azure\r\n- Amazon\r\n- Minio\r\n- S3Compatible\r\nLeave null for built-in Orchestrator host provider." + }, + "StorageParameters": { + "type": "string", + "description": "Provider specific initialization parameters.\r\nUse a $Password for where the password should be inserted.\r\nLeave null for built-in Orchestrator host provider." + }, + "StorageContainer": { + "type": "string", + "description": "Provider specific Container name (AWS, WASB).\r\nLeave null for built-in Orchestrator host provider." + }, + "Options": { + "type": "string", + "description": "Bucket options", + "enum": [ + "None", + "ReadOnly", + "AuditReadAccess", + "AccessDataThroughOrchestrator" + ], + "x-ms-enum": { + "name": "BucketDtoOptions", + "modelAsString": false + } + }, + "CredentialStoreId": { + "type": "integer", + "description": "Credential store used to keep the provider access password.\r\nLeave null for built-in Orchestrator host provider.", + "format": "int64" + }, + "ExternalName": { + "maxLength": 450, + "minLength": 0, + "type": "string", + "description": "The external name of the password in the credential store.\r\nIf null, it defaults to the bucket name.\r\nLeave null for built-in Orchestrator host provider." + }, + "Password": { + "type": "string", + "description": "Provider specific password/secret.\r\nIt is inserted as a replacement of the $Password token in the StorageParameters.\r\nLeave null for built-in Orchestrator host provider." + }, + "FoldersCount": { + "type": "integer", + "description": "Number of folders where the bucket is shared.", + "format": "int32" + }, + "Tags": { + "type": "array", + "items": { + "$ref": "#/components/schemas/TagDto" + } + }, + "Id": { + "type": "integer", + "format": "int64" + } + } + }, + "BucketFoldersShareDto": { + "type": "object", + "properties": { + "BucketIds": { + "type": "array", + "items": { + "type": "integer", + "format": "int64" + } + }, + "ToAddFolderIds": { + "type": "array", + "items": { + "type": "integer", + "format": "int64" + } + }, + "ToRemoveFolderIds": { + "type": "array", + "items": { + "type": "integer", + "format": "int64" + } + } + } + }, + "BuildTestSetRequestMessage": { + "required": [ + "releaseId", + "versionNumber" + ], + "type": "object", + "properties": { + "releaseId": { + "type": "integer", + "format": "int64" + }, + "versionNumber": { + "minLength": 1, + "type": "string" + }, + "testCaseUniqueIds": { + "type": "array", + "items": { + "type": "string", + "format": "uuid" + } + }, + "enableCoverage": { + "type": "boolean" + } + } + }, + "BulkAddQueueItemsRequest": { + "required": [ + "commitType", + "queueName" + ], + "type": "object", + "properties": { + "queueName": { + "minLength": 1, + "type": "string" + }, + "commitType": { + "type": "string", + "enum": [ + "AllOrNothing", + "StopOnFirstFailure", + "ProcessAllIndependently" + ], + "x-ms-enum": { + "name": "BulkAddQueueItemsRequestCommitType", + "modelAsString": false + } + }, + "queueItems": { + "type": "array", + "items": { + "$ref": "#/components/schemas/QueueItemDataDto" + } + } + } + }, + "BulkItemDtoOfString": { + "type": "object", + "properties": { + "Key": { + "type": "string" + }, + "Status": { + "type": "string", + "enum": [ + "Continue", + "SwitchingProtocols", + "Processing", + "EarlyHints", + "OK", + "Created", + "Accepted", + "NonAuthoritativeInformation", + "NoContent", + "ResetContent", + "PartialContent", + "MultiStatus", + "AlreadyReported", + "IMUsed", + "MultipleChoices", + "Ambiguous", + "MovedPermanently", + "Moved", + "Found", + "Redirect", + "SeeOther", + "RedirectMethod", + "NotModified", + "UseProxy", + "Unused", + "TemporaryRedirect", + "RedirectKeepVerb", + "PermanentRedirect", + "BadRequest", + "Unauthorized", + "PaymentRequired", + "Forbidden", + "NotFound", + "MethodNotAllowed", + "NotAcceptable", + "ProxyAuthenticationRequired", + "RequestTimeout", + "Conflict", + "Gone", + "LengthRequired", + "PreconditionFailed", + "RequestEntityTooLarge", + "RequestUriTooLong", + "UnsupportedMediaType", + "RequestedRangeNotSatisfiable", + "ExpectationFailed", + "MisdirectedRequest", + "UnprocessableEntity", + "UnprocessableContent", + "Locked", + "FailedDependency", + "UpgradeRequired", + "PreconditionRequired", + "TooManyRequests", + "RequestHeaderFieldsTooLarge", + "UnavailableForLegalReasons", + "InternalServerError", + "NotImplemented", + "BadGateway", + "ServiceUnavailable", + "GatewayTimeout", + "HttpVersionNotSupported", + "VariantAlsoNegotiates", + "InsufficientStorage", + "LoopDetected", + "NotExtended", + "NetworkAuthenticationRequired" + ], + "x-ms-enum": { + "name": "BulkItemDto`1Status", + "modelAsString": false + } + }, + "Body": { + "type": "string" + } + } + }, + "BulkOperationErrorResponse": { + "type": "object", + "properties": { + "taskId": { + "type": "integer", + "description": "Gets or sets the taskId for this task operation.", + "format": "int64" + }, + "errorCode": { + "type": "integer", + "description": "Gets or sets the code of error occurred during this task's operation.", + "format": "int32" + }, + "errorMessage": { + "type": "string", + "description": "Gets or sets the translated message of error occurred during this task's operation." + } + } + }, + "BulkOperationResponseDtoOfFailedQueueItemDto": { + "type": "object", + "properties": { + "success": { + "type": "boolean" + }, + "message": { + "type": "string" + }, + "failedItems": { + "type": "array", + "items": { + "$ref": "#/components/schemas/FailedQueueItemDto" + } + } + } + }, + "BulkOperationResponseDtoOfInt64": { + "type": "object", + "properties": { + "Success": { + "type": "boolean" + }, + "Message": { + "type": "string" + }, + "FailedItems": { + "type": "array", + "items": { + "type": "integer", + "format": "int64" + } + } + } + }, + "BulkTasksCompletionRequest": { + "required": [ + "action", + "data", + "taskIds" + ], + "type": "object", + "properties": { + "action": { + "minLength": 1, + "type": "string", + "description": "Action taken on this task" + }, + "taskIds": { + "type": "array", + "description": "List of Task Ids which have to be Bulk edited", + "items": { + "type": "integer", + "format": "int64" + } + }, + "data": { + "type": "object", + "description": "Task data json" + }, + "title": { + "maxLength": 512, + "type": "string", + "description": "Title of tasks" + }, + "taskCatalogId": { + "type": "integer", + "description": "Action Catalog to be associated with the tasks", + "format": "int64" + }, + "unsetTaskCatalog": { + "type": "boolean", + "description": "Unset/Unassociate action catalogs with the tasks\r\nSet to true for unassociating catalog" + }, + "priority": { + "type": "string", + "description": "Priority of tasks", + "enum": [ + "Low", + "Medium", + "High", + "Critical" + ], + "x-ms-enum": { + "name": "BulkTasksDataUpdateRequestPriority", + "modelAsString": false + } + }, + "noteText": { + "maxLength": 512, + "type": "string", + "description": "Comment to be added while doing the bulk operation" + } + } + }, + "BulkTasksDataUpdateRequest": { + "required": [ + "data", + "taskIds" + ], + "type": "object", + "properties": { + "taskIds": { + "type": "array", + "description": "List of Task Ids which have to be Bulk edited", + "items": { + "type": "integer", + "format": "int64" + } + }, + "data": { + "type": "object", + "description": "Task data json" + }, + "title": { + "maxLength": 512, + "type": "string", + "description": "Title of tasks" + }, + "taskCatalogId": { + "type": "integer", + "description": "Action Catalog to be associated with the tasks", + "format": "int64" + }, + "unsetTaskCatalog": { + "type": "boolean", + "description": "Unset/Unassociate action catalogs with the tasks\r\nSet to true for unassociating catalog" + }, + "priority": { + "type": "string", + "description": "Priority of tasks", + "enum": [ + "Low", + "Medium", + "High", + "Critical" + ], + "x-ms-enum": { + "name": "BulkTasksDataUpdateRequestPriority", + "modelAsString": false + } + }, + "noteText": { + "maxLength": 512, + "type": "string", + "description": "Comment to be added while doing the bulk operation" + } + } + }, + "CalendarDto": { + "type": "object", + "properties": { + "TimeZoneId": { + "maxLength": 80, + "type": "string" + }, + "ExcludedDates": { + "type": "array", + "items": { + "type": "string", + "format": "date-time" + } + } + } + }, + "CalendarExistsRequest": { + "required": [ + "calendarName" + ], + "type": "object", + "properties": { + "calendarName": { + "minLength": 1, + "type": "string" + } + } + }, + "ChangePasswordDto": { + "type": "object", + "properties": { + "CurrentPassword": { + "type": "string", + "description": "Existing user password" + }, + "NewPassword": { + "type": "string", + "description": "The new user password" + } + }, + "description": "Encapsulates information needed to change user password" + }, + "CloudTemplateDto": { + "properties": { + "externalPoolKey": { + "type": "string", + "description": "The external pool associated with the machine.", + "format": "uuid" + }, + "hosting": { + "type": "string", + "description": "The Hosting type of the spec", + "enum": [ + "Customer", + "System" + ], + "x-ms-enum": { + "name": "CloudTemplateDtoHosting", + "modelAsString": false + } + } + }, + "description": "The cloud template that hosts the Robot", + "allOf": [ + { + "$ref": "#/components/schemas/MachineDto" + } + ] + }, + "ConfigurationEntry": { + "type": "object", + "properties": { + "Key": { + "type": "string" + }, + "DisplayName": { + "type": "string" + }, + "ValueType": { + "type": "string", + "enum": [ + "String", + "Number", + "Choice", + "Boolean", + "Section", + "Secret", + "SecretFile" + ], + "x-ms-enum": { + "name": "ConfigurationEntryValueType", + "modelAsString": false + } + } + } + }, + "ConsumptionLicenseDto": { + "type": "object", + "properties": { + "reference": { + "type": "string" + }, + "type": { + "type": "string" + }, + "count": { + "type": "integer", + "format": "int64" + } + } + }, + "ConsumptionLicenseStatsModel": { + "type": "object", + "properties": { + "type": { + "type": "string" + }, + "used": { + "type": "integer", + "format": "int64" + }, + "total": { + "type": "integer", + "format": "int64" + }, + "timestamp": { + "type": "string", + "format": "date-time" + } + } + }, + "CountStats": { + "type": "object", + "properties": { + "title": { + "type": "string" + }, + "count": { + "type": "integer", + "format": "int64" + }, + "hasPermissions": { + "type": "boolean", + "description": "Gives a more descriptive result when getting stats through the API (as opposed to -1 for the count)\r\nused only when serializing the count stats", + "readOnly": true + } + } + }, + "CredentialSetDefaultStoreForResourceTypeRequest": { + "required": [ + "resourceType" + ], + "type": "object", + "properties": { + "resourceType": { + "type": "string", + "description": "This enum describes the type of resources that can be stored in the Credential Store. When\r\na new resource type is added, the default needs to be initialized in 3 places:\r\n1. Existing tenants: At migration time.\r\n2. Default tenant: At seed time in DefaultTenantCreator.cs.\r\n3. New tenants: In TenantService.cs.", + "enum": [ + "AssetCredential", + "RobotCredential", + "BucketCredential", + "Secrets" + ], + "x-ms-enum": { + "name": "CredentialSetDefaultStoreForResourceTypeRequestResourceType", + "modelAsString": false + } + } + } + }, + "CredentialStoreDetailsDto": { + "type": "object", + "properties": { + "IsReadOnly": { + "type": "boolean", + "description": "Current store is read only" + } + }, + "description": "Details about credential store" + }, + "CredentialStoreDto": { + "required": [ + "Name", + "Type" + ], + "type": "object", + "properties": { + "ProxyId": { + "type": "integer", + "format": "int64" + }, + "ProxyType": { + "type": "string", + "enum": [ + "Connected", + "Disconnected" + ], + "x-ms-enum": { + "name": "CredentialStoreDtoProxyType", + "modelAsString": false + } + }, + "HostName": { + "type": "string" + }, + "Name": { + "minLength": 1, + "type": "string" + }, + "Type": { + "minLength": 1, + "type": "string" + }, + "AdditionalConfiguration": { + "type": "string", + "description": "Additional information specific to the type of the Credential Store." + }, + "Details": { + "$ref": "#/components/schemas/CredentialStoreDetailsDto" + }, + "DefaultCredentialStores": { + "type": "array", + "description": "Default credential stores", + "items": { + "$ref": "#/components/schemas/DefaultCredentialStoreDto" + } + }, + "Id": { + "type": "integer", + "format": "int64" + } + }, + "description": "Defines the properties of a Credential Store." + }, + "CredentialStoreResourceDto": { + "required": [ + "Name", + "Type" + ], + "type": "object", + "properties": { + "Name": { + "minLength": 1, + "type": "string" + }, + "Type": { + "type": "string", + "description": "This enum describes the type of resources that can be stored in the Credential Store. When\r\na new resource type is added, the default needs to be initialized in 3 places:\r\n1. Existing tenants: At migration time.\r\n2. Default tenant: At seed time in DefaultTenantCreator.cs.\r\n3. New tenants: In TenantService.cs.", + "enum": [ + "AssetCredential", + "RobotCredential", + "BucketCredential", + "Secrets" + ], + "x-ms-enum": { + "name": "CredentialStoreResourceDtoType", + "modelAsString": false + } + }, + "Id": { + "type": "integer", + "format": "int64" + } + }, + "description": "Defines the resources such as assets, robots or bucket for a Credential Store." + }, + "CredentialsProxyResourceDto": { + "required": [ + "CredentialStoreId", + "CredentialStoreName", + "Name", + "Type" + ], + "type": "object", + "properties": { + "Name": { + "minLength": 1, + "type": "string" + }, + "Type": { + "type": "string", + "description": "This enum describes the type of resources that can be affiliated to a Credentials Proxy.", + "enum": [ + "AssetCredential", + "RobotCredential", + "BucketCredential", + "Secrets", + "CredentialStore" + ], + "x-ms-enum": { + "name": "CredentialsProxyResourceDtoType", + "modelAsString": false + } + }, + "CredentialStoreId": { + "type": "integer", + "format": "int64" + }, + "CredentialStoreName": { + "minLength": 1, + "type": "string" + }, + "Id": { + "type": "integer", + "format": "int64" + } + }, + "description": "Defines the resources such as credential stores, assets, robots or bucket for a Credentials Proxy." + }, + "CustomEventDto": { + "required": [ + "EventId", + "Timestamp", + "Type" + ], + "type": "object", + "properties": { + "Type": { + "minLength": 1, + "type": "string" + }, + "EventId": { + "maxLength": 50, + "minLength": 0, + "type": "string" + }, + "EntityKey": { + "type": "string", + "format": "uuid" + }, + "Timestamp": { + "type": "string", + "format": "date-time" + }, + "EventData": { + "type": "object", + "additionalProperties": { + "type": "object" + } + }, + "EventTime": { + "type": "string", + "format": "date-time" + }, + "EventSourceId": { + "type": "integer", + "format": "int64", + "readOnly": true + }, + "TenantId": { + "type": "integer", + "format": "int32" + }, + "OrganizationUnitId": { + "type": "integer", + "format": "int64" + }, + "OrganizationUnitKey": { + "type": "string", + "format": "uuid" + }, + "UserId": { + "type": "integer", + "format": "int64" + } + }, + "description": "An event triggered by a robot Orchestrator activity", + "x-webhook-event": "custom" + }, + "CustomKeyValuePair": { + "type": "object", + "properties": { + "Key": { + "type": "string", + "description": "A piece of text representing the key." + }, + "Value": { + "type": "string", + "description": "A piece of text representing the value." + } + }, + "description": "Stores a custom pair of key and value for assets with type KeyValueList." + }, + "DeactivateLicenseRequest": { + "type": "object", + "properties": { + "tenantId": { + "type": "integer", + "format": "int32" + } + } + }, + "DefaultCredentialStoreDto": { + "required": [ + "ResourceType" + ], + "type": "object", + "properties": { + "ResourceType": { + "type": "string", + "description": "This enum describes the type of resources that can be stored in the Credential Store. When\r\na new resource type is added, the default needs to be initialized in 3 places:\r\n1. Existing tenants: At migration time.\r\n2. Default tenant: At seed time in DefaultTenantCreator.cs.\r\n3. New tenants: In TenantService.cs.", + "enum": [ + "AssetCredential", + "RobotCredential", + "BucketCredential", + "Secrets" + ], + "x-ms-enum": { + "name": "DefaultCredentialStoreDtoResourceType", + "modelAsString": false + } + }, + "Id": { + "type": "integer", + "format": "int64" + } + } + }, + "DeleteInactiveSessionsParameters": { + "type": "object", + "properties": { + "sessionIds": { + "type": "array", + "items": { + "type": "integer", + "format": "int64" + } + } + } + }, + "DirectoryObjectDto": { + "type": "object", + "properties": { + "type": { + "type": "string", + "readOnly": true, + "enum": [ + "User", + "Group", + "Machine", + "Robot", + "ExternalApplication" + ], + "x-ms-enum": { + "name": "DirectoryObjectDtoType", + "modelAsString": false + } + }, + "source": { + "type": "string" + }, + "domain": { + "type": "string" + }, + "identifier": { + "type": "string" + }, + "identityName": { + "type": "string" + }, + "displayName": { + "type": "string", + "readOnly": true + } + } + }, + "DirectoryPermissionDto": { + "type": "object", + "properties": { + "directoryGroup": { + "type": "string" + }, + "organizationUnits": { + "type": "array", + "items": { + "$ref": "#/components/schemas/UserOrganizationUnitDto" + } + }, + "roles": { + "type": "array", + "items": { + "$ref": "#/components/schemas/LightRoleDto" + } + } + } + }, + "DomainDto": { + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "isDefault": { + "type": "boolean" + } + } + }, + "DomainUserAssignmentDto": { + "type": "object", + "properties": { + "Domain": { + "type": "string" + }, + "UserName": { + "type": "string" + }, + "DirectoryIdentifier": { + "type": "string" + }, + "UserType": { + "type": "string", + "enum": [ + "User", + "Robot", + "DirectoryUser", + "DirectoryGroup", + "DirectoryRobot", + "DirectoryExternalApplication" + ], + "x-ms-enum": { + "name": "DomainUserAssignmentDtoUserType", + "modelAsString": false + } + }, + "RolesPerFolder": { + "type": "array", + "items": { + "$ref": "#/components/schemas/FolderRolesDto" + } + } + } + }, + "EditTaskMetadataRequest": { + "required": [ + "TaskId" + ], + "type": "object", + "properties": { + "TaskId": { + "type": "integer", + "description": "Id of Task which have to be edited", + "format": "int64" + }, + "Title": { + "maxLength": 512, + "type": "string", + "description": "Title of task" + }, + "TaskCatalogId": { + "type": "integer", + "description": "Action Catalog to be associated with the task", + "format": "int64" + }, + "UnsetTaskCatalog": { + "type": "boolean", + "description": "Unset/Unassociate action catalogs with the task\r\nSet to true for unassociating catalog" + }, + "Priority": { + "type": "string", + "description": "Priority of task", + "enum": [ + "Low", + "Medium", + "High", + "Critical" + ], + "x-ms-enum": { + "name": "EditTaskMetadataRequestPriority", + "modelAsString": false + } + }, + "NoteText": { + "maxLength": 512, + "type": "string", + "description": "Comment to be added while doing the edit operation" + } + } + }, + "EntryPointDataVariationDto": { + "type": "object", + "properties": { + "Content": { + "type": "string" + }, + "ContentType": { + "type": "string", + "enum": [ + "Json" + ], + "x-ms-enum": { + "name": "EntryPointDataVariationDtoContentType", + "modelAsString": false + } + }, + "Id": { + "type": "integer", + "format": "int64" + } + } + }, + "EntryPointDto": { + "type": "object", + "properties": { + "UniqueId": { + "type": "string", + "format": "uuid" + }, + "Path": { + "type": "string" + }, + "InputArguments": { + "type": "string" + }, + "OutputArguments": { + "type": "string" + }, + "DataVariation": { + "$ref": "#/components/schemas/EntryPointDataVariationDto" + }, + "Id": { + "type": "integer", + "format": "int64" + } + } + }, + "EnvironmentDto": { + "required": [ + "Name" + ], + "type": "object", + "properties": { + "Name": { + "maxLength": 100, + "minLength": 0, + "type": "string", + "description": "A custom name for the environment." + }, + "Description": { + "maxLength": 500, + "minLength": 0, + "type": "string", + "description": "Used to add additional information about an environment in order to better identify it." + }, + "Robots": { + "type": "array", + "description": "The collection of robots associated with the current environment.", + "items": { + "$ref": "#/components/schemas/SimpleRobotDto" + } + }, + "Type": { + "type": "string", + "description": "DEPRECATED. The environment type specifies how it should be used.\r\nThis property is deprecated and should no longer be used.", + "enum": [ + "Dev", + "Test", + "Prod" + ], + "x-ms-enum": { + "name": "EnvironmentDtoType", + "modelAsString": false + }, + "x-deprecated": true + }, + "Id": { + "type": "integer", + "format": "int64" + } + }, + "description": "A grouping of Robots." + }, + "EnvironmentRobotRequest": { + "required": [ + "robotId" + ], + "type": "object", + "properties": { + "robotId": { + "minLength": 1, + "type": "string" + } + } + }, + "EnvironmentsSetRobotsRequest": { + "required": [ + "addedRobotIds", + "removedRobotIds" + ], + "type": "object", + "properties": { + "addedRobotIds": { + "type": "array", + "items": { + "type": "integer", + "format": "int64" + } + }, + "removedRobotIds": { + "type": "array", + "items": { + "type": "integer", + "format": "int64" + } + } + } + }, + "ErrorInfo": { + "type": "object", + "properties": { + "code": { + "type": "integer", + "format": "int32" + }, + "message": { + "type": "string" + }, + "details": { + "type": "string" + }, + "validationErrors": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ValidationErrorInfo" + } + } + } + }, + "ErrorResult": { + "type": "object", + "properties": { + "Message": { + "type": "string", + "readOnly": true + }, + "ErrorCode": { + "type": "integer", + "format": "int32", + "readOnly": true + }, + "TraceId": { + "type": "string" + }, + "ResourceIds": { + "type": "array", + "readOnly": true, + "items": { + "type": "integer", + "format": "int64" + } + } + } + }, + "ExecutionMediaDeleteMediaByJobIdRequest": { + "required": [ + "jobId" + ], + "type": "object", + "properties": { + "jobId": { + "type": "integer", + "format": "int64" + } + } + }, + "ExecutionMediaDto": { + "type": "object", + "properties": { + "StorageLocation": { + "maxLength": 255, + "minLength": 0, + "type": "string" + }, + "Name": { + "maxLength": 255, + "minLength": 0, + "type": "string" + }, + "JobId": { + "type": "integer", + "format": "int64" + }, + "ReleaseName": { + "type": "string" + }, + "Id": { + "type": "integer", + "format": "int64" + } + } + }, + "ExecutionSettingDefinition": { + "type": "object", + "properties": { + "Key": { + "type": "string" + }, + "DisplayName": { + "type": "string" + }, + "ValueType": { + "type": "string" + }, + "DefaultValue": { + "type": "string" + }, + "PossibleValues": { + "type": "array", + "items": { + "type": "string" + } + } + } + }, + "ExecutionSettingsConfiguration": { + "type": "object", + "properties": { + "Scope": { + "type": "string", + "enum": [ + "Global", + "Robot" + ], + "x-ms-enum": { + "name": "ExecutionSettingsConfigurationScope", + "modelAsString": false + } + }, + "Configuration": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ExecutionSettingDefinition" + } + } + } + }, + "ExportModel": { + "type": "object", + "properties": { + "Id": { + "type": "integer", + "format": "int64" + }, + "Name": { + "type": "string" + }, + "Type": { + "type": "string", + "enum": [ + "OrchestratorAudit", + "TestAutomationAudit", + "Queues", + "Logs", + "Jobs" + ], + "x-ms-enum": { + "name": "ExportModelType", + "modelAsString": false + } + }, + "Status": { + "type": "string", + "enum": [ + "New", + "InProgress", + "Completed", + "Failed" + ], + "x-ms-enum": { + "name": "ExportModelStatus", + "modelAsString": false + } + }, + "RequestedAt": { + "type": "string", + "format": "date-time" + }, + "ExecutedAt": { + "type": "string", + "format": "date-time" + }, + "Size": { + "type": "integer", + "format": "int64" + } + } + }, + "ExtendedCalendarDto": { + "type": "object", + "properties": { + "Name": { + "maxLength": 150, + "type": "string" + }, + "TimeZoneId": { + "maxLength": 80, + "type": "string" + }, + "ExcludedDates": { + "type": "array", + "items": { + "type": "string", + "format": "date-time" + } + }, + "Id": { + "type": "integer", + "format": "int64" + } + } + }, + "ExtendedFolderDto": { + "required": [ + "DisplayName" + ], + "type": "object", + "properties": { + "IsSelectable": { + "type": "boolean", + "description": "Determines whether this folder can be selected to view its entities" + }, + "HasChildren": { + "type": "boolean", + "description": "True if this folder has children" + }, + "Level": { + "type": "integer", + "description": "Level in the Folders tree.", + "format": "int32" + }, + "Key": { + "type": "string", + "description": "Unique key for the folder", + "format": "uuid" + }, + "DisplayName": { + "maxLength": 115, + "minLength": 1, + "type": "string", + "description": "Display name for the folder." + }, + "FullyQualifiedName": { + "type": "string", + "description": "Name of folder prepended by the names of its ancestors." + }, + "Description": { + "maxLength": 500, + "type": "string", + "description": "Description of folder" + }, + "FolderType": { + "type": "string", + "description": "Folder type", + "enum": [ + "Standard", + "Personal", + "Virtual", + "Solution" + ], + "x-ms-enum": { + "name": "FolderDtoFolderType", + "modelAsString": false + } + }, + "IsPersonal": { + "type": "boolean", + "description": "True if Personal", + "readOnly": true + }, + "ProvisionType": { + "type": "string", + "description": "Robot provisioning type", + "enum": [ + "Manual", + "Automatic" + ], + "x-ms-enum": { + "name": "FolderDtoProvisionType", + "modelAsString": false + } + }, + "PermissionModel": { + "type": "string", + "description": "Folder permissions model", + "enum": [ + "InheritFromTenant", + "FineGrained" + ], + "x-ms-enum": { + "name": "FolderDtoPermissionModel", + "modelAsString": false + } + }, + "ParentId": { + "type": "integer", + "description": "Id of parent folder in the folders hierarchy", + "format": "int64" + }, + "ParentKey": { + "type": "string", + "description": "Unique key for the parent folder", + "format": "uuid" + }, + "FeedType": { + "type": "string", + "description": "Folder feed type", + "enum": [ + "Undefined", + "Processes", + "Libraries", + "PersonalWorkspace", + "FolderHierarchy" + ], + "x-ms-enum": { + "name": "FolderDtoFeedType", + "modelAsString": false + } + }, + "Id": { + "type": "integer", + "format": "int64" + } + } + }, + "ExtendedMachineDto": { + "properties": { + "UpdateInfo": { + "$ref": "#/components/schemas/UpdateInfoDto" + } + }, + "allOf": [ + { + "$ref": "#/components/schemas/MachineDto" + } + ] + }, + "ExtendedRobotDto": { + "required": [ + "HostingType", + "Name", + "Type" + ], + "type": "object", + "properties": { + "User": { + "$ref": "#/components/schemas/UserDto" + }, + "LicenseKey": { + "maxLength": 255, + "minLength": 0, + "type": "string", + "description": "The key is automatically generated from the server for the Robot machine.\r\nFor the robot to work, the same key must exist on both the robot and Orchestrator.\r\nAll robots on a machine must have the same license key in order to register correctly." + }, + "MachineName": { + "maxLength": 450, + "minLength": 0, + "type": "string", + "description": "The name of the machine a Robot is hosted on." + }, + "MachineId": { + "type": "integer", + "description": "The Id of the machine a Robot is hosted on", + "format": "int64" + }, + "Name": { + "maxLength": 19, + "minLength": 0, + "type": "string", + "description": "A custom name for the robot." + }, + "Username": { + "maxLength": 100, + "minLength": 0, + "type": "string", + "description": "The machine username. If the user is under a domain, you are required to also specify it in a DOMAIN\\username format.\r\nNote: You must use short domain names, such as desktop\\administrator and NOT desktop.local/administrator." + }, + "ExternalName": { + "maxLength": 450, + "minLength": 0, + "type": "string", + "description": "Contains the value of the key in the external store used to store the password." + }, + "Description": { + "maxLength": 500, + "minLength": 0, + "type": "string", + "description": "Used to add additional information about a robot in order to better identify it." + }, + "Type": { + "type": "string", + "description": "The Robot type.", + "enum": [ + "NonProduction", + "Attended", + "Unattended", + "Development", + "Studio", + "RpaDeveloper", + "StudioX", + "CitizenDeveloper", + "Headless", + "StudioPro", + "RpaDeveloperPro", + "TestAutomation", + "AutomationCloud", + "Serverless", + "AutomationKit", + "ServerlessTestAutomation", + "AutomationCloudTestAutomation", + "AttendedStudioWeb" + ], + "x-ms-enum": { + "name": "RobotDtoType", + "modelAsString": false + } + }, + "HostingType": { + "type": "string", + "description": "The Robot hosting type (Standard / Floating).", + "enum": [ + "Standard", + "Floating" + ], + "x-ms-enum": { + "name": "RobotDtoHostingType", + "modelAsString": false + } + }, + "ProvisionType": { + "type": "string", + "description": "The Robot provision type.", + "enum": [ + "Manual", + "Automatic" + ], + "x-ms-enum": { + "name": "RobotDtoProvisionType", + "modelAsString": false + } + }, + "Password": { + "maxLength": 100, + "minLength": 0, + "type": "string", + "description": "The Windows password associated with the machine username." + }, + "CredentialStoreId": { + "type": "integer", + "description": "The Credential Store used to store the password.", + "format": "int64" + }, + "UserId": { + "type": "integer", + "description": "The associated user's Id.", + "format": "int64" + }, + "Enabled": { + "type": "boolean", + "description": "Specificies the state of the Robot (enabled/disabled) - a disabled robot cannot connect to Orchestrator" + }, + "CredentialType": { + "type": "string", + "description": "The robot credentials type (Default/ SmartCard)", + "enum": [ + "Default", + "SmartCard", + "NCipher", + "SafeNet", + "NoCredential" + ], + "x-ms-enum": { + "name": "RobotDtoCredentialType", + "modelAsString": false + } + }, + "Environments": { + "type": "array", + "description": "The collection of environments the robot is part of.", + "items": { + "$ref": "#/components/schemas/EnvironmentDto" + } + }, + "RobotEnvironments": { + "type": "string", + "description": "The comma separated textual representation of environment names the robot is part of." + }, + "ExecutionSettings": { + "type": "object", + "additionalProperties": { + "type": "object" + }, + "description": "A collection of key value pairs containing execution settings for this robot." + }, + "IsExternalLicensed": { + "type": "boolean", + "description": "Flag to indicate if the robot uses an external license" + }, + "LimitConcurrentExecution": { + "type": "boolean", + "description": "Specifies if the robot can be used concurrently on multiple machines" + }, + "LastModificationTime": { + "type": "string", + "format": "date-time" + }, + "LastModifierUserId": { + "type": "integer", + "format": "int64" + }, + "CreationTime": { + "type": "string", + "format": "date-time" + }, + "CreatorUserId": { + "type": "integer", + "format": "int64" + }, + "Id": { + "type": "integer", + "format": "int64" + } + } + }, + "FailedQueueItemDto": { + "type": "object", + "properties": { + "Ordinal": { + "type": "integer", + "description": "Ordinal of the item that failed.\r\nA value of null means that offending item is unknown.", + "format": "int32" + }, + "ErrorCode": { + "type": "string", + "description": "Error code.", + "enum": [ + "Unknown", + "MultipleErrors", + "InvalidODataRequest", + "InvalidRequest", + "NameAlreadyUsed", + "ItemNotFound", + "StringProtectFailed", + "ItemAlreadyExists", + "ErrorDeleting", + "ErrorInserting", + "ErrorUpdating", + "ErrorSendingEmail", + "InvalidArgument", + "SqlAcquireLockFailure", + "LibrariesFeedInUse", + "HasDependentItems", + "ItemIsInUse", + "ParameterMissing", + "ParameterInvalid", + "DuplicateReference", + "ForbiddenOperation", + "InvalidUser", + "FeatureDisabled", + "OptimisticConcurrency", + "EncryptionException", + "CannotCreateOrMigrateTenantDb", + "TenantIsRequired", + "FieldNotEditable", + "ServiceUnavailable", + "SharedAccessSignatureFailure", + "ProviderNotSupported", + "EmailAlreadyUsed", + "MaxSiblingsLimitReached", + "InvalidAuditRelationship", + "InvalidOrganizationUnit", + "RequiredOrganizationUnit", + "OrganizationUnitNotEditable", + "NoOrganizationUnitWithPermissions", + "MultipleOrganizationUnitsOnSession", + "InvalidPermissionInCrossFolderRequest", + "CannotCreateClassicEntities", + "CannotEditClassicEntities", + "RequiredPermissions", + "CannotEditDuringMigration", + "MachineAlreadyPairedWithDifferentLicenseKey", + "NoAvailableLicenses", + "HasAttachedRobots", + "InvalidMachineKey", + "MachineNameRequired", + "UserNameRequired", + "CannotDeleteBusyRobot", + "MachineNameCannotChange", + "MachineLicenseCannotChange", + "CannotUpdateBusyRobot", + "MachineTypeCannotChange", + "UserNameInvalid", + "SessionAlreadyActive", + "CannotAssignMachineToFloatingRobot", + "CannotUpdateRobotHostingType", + "CannotAssignMachineTemplateToStandardRobot", + "CannotUpdateActiveSession", + "MachineTemplateUniqueLicenseKey", + "InvalidMachineId", + "InvalidNonProductionMachineSlots", + "InvalidUnattendedMachineSlots", + "DisconnectedRobot", + "UnresponsiveRobot", + "UnsupportedFloatingSessionRobotType", + "UnsupportedStandardSessionRobotType", + "RobotNotFoundUseInteractive", + "MachineScopeProtected", + "MachineKeyCannotChange", + "TenantIdMismatch", + "UserDoesNotHaveRobot", + "RobotDisabled", + "UnattendedRobotNotFound", + "CannotPropagateMachineToSubfolders", + "MachineRuntimeProtected", + "IncompatibleOS", + "IncompatibleRobotVersion", + "MachineMaintenanceWindowDuration", + "MachineMaintenanceTimeZoneId", + "ClassicRobotNotFound", + "ClassicRobotToUserMappingUsernameMissmatch", + "UserMappedToRobotWithDifferentUsername", + "RobotOnDifferentMachineMappedToSameUser", + "ClassicRobotMappedToInvalidUser", + "SameRobotUsernameMappedToDiferentUser", + "ClassicCannotCleanNotFailedMigrations", + "InvalidSlots", + "RobotNotFoundByKey", + "InvalidJobKey", + "MachineSessionNotFound", + "EnvironmentDeploymentConflict", + "UnattendedRobotCredentialsNotFound", + "ServerConflict", + "ActionAlreadyPerformed", + "UnavailableResources", + "UserIsDeleted", + "UserIsLockedOut", + "ChangePassword", + "PasswordExpired", + "InvalidPassword", + "CannotDeleteStaticRole", + "UserNotEditable", + "DomainUnreachable", + "PasswordResetFailed", + "ConfirmEmailFailed", + "CannotUsePreviousPassword", + "RoleIsNotEditable", + "UserNotFoundInDomain", + "CannotUpdateUsername", + "InvalidLoginMethod", + "InvalidUsernameOrPassword", + "MultipleMatchingUsers", + "CannotCallFromHost", + "CreateNotAllowed", + "ProvisionError", + "EmptyDirectoryParam", + "NotDirectoryUserOrGroup", + "NoUsersFound", + "CannotChangeRoleType", + "InvalidTenantRole", + "InvalidFolderRole", + "HostTenantKeyNotFound", + "CannotAssignFolderRolesToUser", + "CannotAssignTenantRolesToFolder", + "InvalidAuthenticationToken", + "CannotDeleteLastAdmin", + "CannotUnassignLastAdmin", + "CannotInactivateLastAdmin", + "UserNotInRole", + "UserAlreadyInRole", + "AdditionalPermissionsNotAllowed", + "CredentialAssetEmptyPasswordForNewUser", + "CredentialAssetEmptyForNewRobot", + "AssetTypeNonUpdatable", + "AssetNotAvailableForRobot", + "AssetNotFound", + "InvalidCron", + "ScheduleWillNeverRun", + "ScheduleMisfired", + "InvalidScheduleKey", + "ScheduleIsNotEnabled", + "ScheduleNotAssociatedWithAQueue", + "ScheduleCannotBeAssociatedWithAQueue", + "UserIsAssignedToTriggers", + "InvalidCronRecurrence", + "DisabledDueToConsecutiveFailures", + "MachineRobotHasAttachedTriggers", + "UserHasAttachedTriggers", + "MachineHasAttachedTriggers", + "InvalidTimeZoneId", + "DisabledDueToConsecutiveJobFailures", + "DownloadUnavailable", + "CannotConnectToPackagesRepository", + "NotSupportedByExternalFeeds", + "ErrorDownloading", + "InvalidPackageDetails", + "TenantFeedInUse", + "InvalidProcessKey", + "JobTypeCannotBeStopped", + "JobCannotBeCancelled", + "JobCannotBeTerminated", + "VersionNotFound", + "ProcessNotFound", + "HasAttachedProcesses", + "InvalidExtension", + "InvalidPackageCount", + "PreviousVersionNotFound", + "HasRunningJobs", + "TenantNotFound", + "PendingJobsAlreadyExist", + "InvalidStartJobRobotIds", + "UnregisteredCannotStartJobs", + "LicenseExpiredCannotStartJobs", + "InvalidReleaseKey", + "InvalidPackageVersion", + "TenantIsDisabled", + "PackageNotFound", + "NoRobotsAvailable", + "PathTooLong", + "JobExecutionFaulted", + "InvalidJobIdOrRobotKey", + "InvalidJobStateForSuspend", + "JobNotFoundByPersistenceId", + "SuspendJobStateNotFound", + "ErrorPackagePublish", + "ErrorSavingPackageDefinition", + "MaxNumberJobsAlreadyExist", + "HasSlaEnabedQueuesAssociated", + "VersionsManagedAutomatically", + "InaccessibleFeed", + "TestAutomationJobExecutionNotSupported", + "TestAutomationProcessAlreadyExists", + "CannotRestartUnfinishedJob", + "CyberArkEditPasswordNotAllowed", + "LogMessageNotFound", + "LogRobotNameNotFound", + "InvalidElasticQuery", + "EncryptionKeyNotFound", + "EncryptionKeyIncorrectFormat", + "AzureKeyVaultRetrieveIssue", + "AzureKeyVaultStoreIssue", + "EncryptionKeyUnavailable", + "TransactionReferenceRequired", + "InvalidTransactionProgressStatus", + "TransactionNotStarted", + "ReviewerNotAvailable", + "QueueDefinitionParametersCannotChange", + "QueueProcessingApplicationException", + "QueueItemSchemaViolationException", + "InvalidQueueSchemaDefinition", + "InvalidQueueSchemaDefinitionChange", + "InvalidQueueSchemaType", + "QueueSchemaDefinitionNotFound", + "SlaEnableQueueDefinitionFailure", + "QueueSlaAtPredictedRisk", + "QueueSlaPredictedBreach", + "QueueItemContentSizeExceeded", + "QueueItemInvalidTransitionFromFinalStatus", + "LicenseNotFound", + "LicenseExpired", + "LicenseAlreadyInUse", + "InvalidLicenseFormat", + "LicenseLimitExceeded", + "UnattendedLicenseLimitExceeded", + "NonProductionLicenseLimitExceeded", + "AttendedLicenseLimitExceeded", + "DevelopmentLicenseLimitExceeded", + "RobotFailedToAcquireLicense", + "NonProductionSlotsLimitExceeded", + "UnattendedSlotsLimitExceeded", + "LicenseUnregistered", + "LicenseNotAvailable", + "NotEnoughAvailableSlots", + "NotEnoughRuntimeLicenses", + "SlotsExceedLicenseLimit", + "NotEnoughAvailableLicenses", + "HostLicenseLimitExceeded", + "NoHostLicense", + "LicenseNewInvalidArguments", + "LicenseMachineDisabled", + "CannotDisableBusyMachine", + "HeadlessSlotsLimitExceeded", + "HeadlessLicenseLimitExceeded", + "TestAutomationSlotsLimitExceeded", + "TestAutomationLicenseLimitExceeded", + "LicenseNotCompatible", + "AutomationCloudLicenseLimitExceeded", + "AutomationExpressNotSupported", + "StudioWebLocalRobotNotSupported", + "ArgumentMetadataExtract", + "ArgumentMetadataValidation", + "ArgumentDefinitionExtract", + "ArgumentValueExtract", + "ArgumentValidation", + "PackageMetadataExtract", + "PackageMetadataValidation", + "ProjectTypeChangedOnUpload", + "EntryPointUniqueIdsAlreadyUsed", + "EntryPointNotValidForRelease", + "EntryPointNotAllowedForTestAutomationRelease", + "UnknownWebhookEventType", + "WebhookQuotaReached", + "WebhookDuplicateName", + "ExecutionMediaStorageUnavailable", + "ExecutionMediaNotAvailableForJob", + "ExecutionMediaContentNotAvailable", + "JobNotAssignedToRobot", + "JobAssignedToDifferentRobot", + "JobNotCompleted", + "JobVideoRecordingNotEnabled", + "QueueItemVideoRecordingNotEnabled", + "CannotDeleteDefaultCredentialStore", + "CredentialStoreNotFound", + "UnknownCredentialStoreType", + "InvalidCredentialStoreConfiguration", + "FailedToReadFromCredentialStore", + "FailedToWriteToCredentialStore", + "CannotDeleteNonEmptyCredentialStore", + "FailedToDeleteFromCredentialStore", + "InvalidCredentialStoreType", + "TaskAssignmentError", + "TaskCompletionError", + "TaskAssigneeMismatchError", + "TaskFormInvalidFormLayout", + "TaskFormInvalidFormPayload", + "TaskFormMultipleActions", + "TaskFormNoAction", + "TaskFormInvalidAction", + "TasksNotAllowedInModernFolder", + "NoFolderExistAsTaskAdmin", + "NoFolderExistAsTaskUser", + "TaskAlreadyCompletedBySameUser", + "TaskTypeMistmatch", + "TaskNotAlreadyAssigned", + "TaskAssigneeNotPermitted", + "TaskAssignerNotPermitted", + "DuplicateTaskAssignment", + "TaskAlreadyAssignedToSameUser", + "TaskAlreadyAssignedToAnotherUser", + "TaskAlreadyCompletedByAnotherUser", + "TaskSaveError", + "TaskFormNoData", + "TaskForwardError", + "TaskFormSubmitButtonMissing", + "TaskDeletionGenericError", + "TaskAlreadyDeletedBySameUser", + "TaskAlreadyDeletedByAnotherUser", + "TaskDeleterNotPermitted", + "DuplicateTaskDelete", + "NoFolderExistsWithTaskCatalogView", + "TaskCatalogMultipleDistinctColumn", + "TaskCatalogDistinctColumnInvalid", + "TaskFormLayoutAndIdMissing", + "TaskFormDuplicateFormLayoutGuid", + "TaskFormFormLayoutGuidNotFound", + "TaskFormLayoutOrGuidMissing", + "TaskFormLayoutAndIdBothNotSupported", + "TaskFormLayoutIdNotFound", + "TaskFormLayoutOutOfSize", + "TaskCatalogHaveActiveTasks", + "TasksBulkFormLayoutIdsNotSameOrNull", + "EmptyTasksBulkOperationRequest", + "TaskMaximumBulkOperationLimitExceeded", + "TasksBulkOperationError", + "TasksBulkOperationInvalidCatalog", + "TasksBulkUpdateWithTaskCatalogAndUnsetIsInvalid", + "EditTaskNotFound", + "TasksEditMetadataWithTaskCatalogAndUnsetIsInvalid", + "TasksEditMetadataOperationInvalidCatalog", + "TasksEditMetadataCatalogInEncryptedTaskIsInvalid", + "TaskCatalogNotFound", + "TaskCatalogEncrypted", + "TasksSummaryDateDiffOutOfRange", + "TasksSummaryEndDateShouldBeGreater", + "TaskDefinitionPropertiesRequired", + "TaskDefinitionNotFound", + "TaskDefinitionVersionNotFound", + "AppTaskNoAction", + "AppTaskInvalidPayload", + "AppTaskNoData", + "TaskProviderInvalidModifiedDate", + "TaskProviderInvalidTaskUrn", + "TaskDefinitionAllowedActionsRequired", + "AppTaskDataItemViolatesContentJsonSchema", + "TaskDefinitionSchemaNotAnObject", + "TaskDefinitionNameIsAlreadyUsed", + "InvalidSecureStoreContext", + "MailSmtpSettingsError", + "CannotDeleteCalendarWhenUsedBySchedule", + "InvalidExternalUrl", + "HostMailSmtpSettingsError", + "MandatoryPropertiesForRootFolderNotSpecified", + "IncompatibleFolderProperties", + "NoHierarchyAllowedForClassicFolders", + "MaximumFolderHierarchyDepthReached", + "CannotChangeRobotProvisionType", + "CannotChangeFolderPermissionModel", + "CannotEditFolderParent", + "EntitiesRequiredForAssignmentNotFound", + "CannotAssignRolesToNonFineGrainedFolders", + "InvalidFolderDisplayName", + "AssociationAlreadyExists", + "UserDoesNotHaveAccessToFolder", + "CannotChangeRobotUserFolderAssignments", + "CannotAssignMachineToClassicFolder", + "StrategyNotAvailableInModernFolder", + "StrategyNotAvailableInClassicFolder", + "ValidModernFolderIdRequired", + "NoMachineAssociatedWithFolder", + "ClassicFoldersCannotBeInvolvedInMoveOperation", + "CannotMoveToDescendantFolder", + "CannotDisableTriggersInHierarchy", + "CannotKillJobsInHierarchy", + "CannotDeleteEntitiesInHierarchy", + "NotInFinalStateJobsExist", + "ModernFoldersCannotInheritRolesFromTenant", + "CannotChangeFolderFeedType", + "CannotCreatePersonalWorkspace", + "CannotSetMachineRobots", + "FolderNotFound", + "CannotUnassignFromFolder", + "MachineAssociatedWithFolderConflict", + "CannotAssignMachineToFolder", + "CannotAssignPersonalWorkspaceMachines", + "CannotMoveFolder", + "CannotMigrateClassicRelatedObjects", + "NotSuccessfulEntityMigration", + "FolderTypeMismatch", + "ActionNotAllowedInClassicFolder", + "CannotRenameSolutionFolder", + "MaintenanceActive", + "TenantMaintenanceActive", + "TenantMaintenanceNotActive", + "AnalyticsNotAuthorized", + "AnalyticsTenantNotProvisioned", + "AnalyticsUserIsHostUser", + "AnalyticsUserHasNoEmail", + "AnalyticsUserNotFound", + "AnalyticsAdminEmailProhibited", + "AnalyticsDbQueryFailure", + "InvalidStorageProvider", + "BucketIsReadOnly", + "InvalidBlobFilePath", + "UnavailableStorageProvider", + "BucketDoesNotExists", + "BucketSecretNotFoundInCredentialStore", + "TestSetNotNewOnCreate", + "TestAutomationKeyMismatch", + "TestSetNewOnUpdate", + "TestSetEmpty", + "TestSetDuplicatePackages", + "TestSetVersionMaskInvalid", + "TestSetDefinitionNotFound", + "TestSetTestCaseInvalid", + "TestSetTestCaseVersionInvalid", + "TestAutomationVersionInvalid", + "TestSetExecutionEmptyTestSet", + "TestSetExecutionCreateFailed", + "TestSetExecutionDuplicateUniqueIds", + "TestCaseAssertionScreenshotMimeTypeMissing", + "TestCaseAssertionScreenshotMissing", + "TestSetExecutionBatchExecutionKeyAlreadyExists", + "TestDataQueueContentJsonSchemaInvalid", + "TestDataQueueNameChangeNotAllowed", + "TestDataQueueItemViolatesContentJsonSchema", + "TestDataQueueItemsFromMultipleQueues", + "TestDataQueueItemsBulkAddMixed", + "TestDataQueueBulkOperationInProgress", + "TestSetDuplicateInputArgument", + "TestSetExecutionInvalidExecutionTarget", + "AttachmentInvalid", + "TestCasesReexecuteFailed", + "TestSetTestCaseMissingReleaseVersion", + "TestCaseDefinitionDuplicateIds", + "TestCaseDefinitionInUse", + "TestSetScheduleInvalidScheduleKey", + "InvalidTenantMoveStatus", + "TenantMoveIdConflict", + "TenantMoveMigrationConflict", + "MediaFileNotFound", + "MediaFileNotFoundForKey", + "InvalidMediaFilesUpload", + "MediaFileTypeNotSupported", + "CannotBeExploredByOwner", + "AlreadyExploredByCurrentUser", + "NotExploredCurrentUser", + "CannotRemoveMachineFromPersonalWorkspace", + "CannotToggleDebugMode", + "CannotStartRemoteControl", + "CannotStopRemoteControl", + "CheckForUpdatesWithProductDuplicates", + "AccountIdMissing", + "AccountIdPartitionKeyMismatch", + "IdentityKeyMissing", + "InvalidDownloadUri", + "InstallationIdMissing", + "UpdateRequestRetryFailed", + "InvalidProductVersion", + "ProductVersionUpdateNotAllowed", + "HostRetentionPolicyInvalidLicenseType", + "TenantRetentionPolicyLicenseTypeNotSupported", + "SWRobotCreationFailed", + "SWRobotCreationNotEnabled", + "SWPersonalWorkspaceCreationFailed", + "SWPersonalWorkspacesNotEnabled", + "SWMachineTemplateCreationFailed", + "SWMachineTemplateAssignmentFailed", + "SWMachineTemplateAssignmentMissingVirtualFolder", + "SWRobotCreationNoLicense", + "SWUserDoesNotHaveAnAttendedRobotOrProvisionNotEnabled", + "SWUserInactive", + "SWUserLicensingEnabledNoRobots", + "SWUserLicensingEnabledRobotProvisionFailed", + "SWUserLicensingEnabledAttendedLicense", + "SWUserLicensingDisabledNoRobots", + "SWUserLicensingDisabledRobotProvisionFailed", + "SWUserLicensingDisabledAttendedLicense", + "ConnectionsAvailableOnlyInPW", + "ResourceOverwriteNotSupported", + "ResourceNotOverwritable", + "ResourceOverwriteNotSupportedInStandardFolders", + "MultipleOverwritesForSameResourceKeyNotSupported", + "PackageResourceNotFound", + "InvalidConnectionId", + "ConnectionNotFound", + "InvalidConnectionType", + "ConnectedEventTriggerNoConnection", + "ConnectedEventTriggerCreateFailed", + "ConnectedEventTriggerDeleteFailed", + "MissingEventTriggerBinding", + "VirtualTriggerCanNotHaveUser", + "EventTriggerCreateFailedConnectionNotAvailable", + "UserHasNoRobotToFireUserEventTrigger", + "CredentialsProxyNotFound", + "CannotDeleteCredentialsProxyInUse", + "CredentialsProxyUrlMustBeHttps", + "CredentialsProxyHostUrlUpdateRequiresSecretResubmission", + "CredentialsProxyBadSecretFormat", + "CredentialsProxyAuthHealthRequestFailed", + "CredentialsProxyHealthRequestFailed", + "CredentialsProxyRequestFailedInvalidCredentials", + "CredentialsProxyConnectionRefused", + "CredentialsProxyTypeCannotBeUpdated", + "CredentialsProxyRequestFailedForbidden", + "CredentialsProxyRequestFailedNotFound", + "CredentialsProxyRequestFailedInternalServerError", + "CredentialsProxyRequestFailedUnhandledError", + "CredentialsProxyRequestFailedBadRequest", + "CredentialsProxyTypeCannotBeCreated", + "ServerlessCreateMachineTemplateErrorCode", + "ServerlessUpdateMachineTemplateErrorCode", + "ServerlessDeleteMachineTemplateErrorCode", + "ServerlessUnkownActionMachineTemplateErrorCode", + "ServerlessVpnInvalidCidr", + "ServerlessVpnInvalidState", + "ServerlessVpnNotFound", + "ServerlessUnknownError", + "ServerlessNoMachineTemplate", + "ServerlessGenericWorkloadsNotEnabled", + "ServerlessRobotJobTypeInvalid", + "ServerlessServiceIsDisabledInTenant", + "InvalidSolutionArchive", + "CompatibilityCheckFail", + "RollbackNotSupported", + "SolutionsResourceNotFound", + "SolutionsResourceNotSupported", + "SolutionsResourcesNotFound", + "FolderKeyRequired", + "SolutionsCannotInstallInClassicFolder", + "SolutionsCannotInstallInSolutionFolder", + "SolutionIsNotInstallAtPath", + "SolutionFolderNotFound", + "SolutionFolderHasJobsNotInFinalState", + "SolutionFileNotFound", + "SolutionPackageUrlIsInvalid", + "ExportTimeout", + "InvalidMessageReceived", + "IntegrationServiceApiFailure", + "JobFaulted", + "JobStopped", + "JobUnknownFinalStatus", + "ContentLengthTooLarge" + ], + "x-ms-enum": { + "name": "FailedQueueItemDtoErrorCode", + "modelAsString": false + } + }, + "ErrorMessage": { + "type": "string", + "description": "Error message." + } + }, + "description": "Stores the result of the BulkAddQueueItems operation." + }, + "FolderAssignDomainUserRequest": { + "required": [ + "assignment" + ], + "type": "object", + "properties": { + "assignment": { + "$ref": "#/components/schemas/DomainUserAssignmentDto" + } + } + }, + "FolderAssignMachinesRequest": { + "required": [ + "assignments" + ], + "type": "object", + "properties": { + "assignments": { + "$ref": "#/components/schemas/MachineAssignmentsDto" + } + } + }, + "FolderAssignUsersRequest": { + "required": [ + "assignments" + ], + "type": "object", + "properties": { + "assignments": { + "$ref": "#/components/schemas/UserAssignmentsDto" + } + } + }, + "FolderAssignmentsDto": { + "type": "object", + "properties": { + "Folder": { + "$ref": "#/components/schemas/SimpleFolderDto" + }, + "Roles": { + "type": "array", + "items": { + "$ref": "#/components/schemas/RoleUsersDto" + } + } + } + }, + "FolderCreatedEvent": { + "type": "object", + "properties": { + "key": { + "type": "string", + "format": "uuid" + }, + "displayName": { + "type": "string" + }, + "description": { + "type": "string" + }, + "code": { + "type": "string" + }, + "path": { + "type": "string" + }, + "fullyQualifiedName": { + "type": "string" + }, + "type": { + "type": "string", + "enum": [ + "Standard", + "Personal", + "Virtual", + "Solution" + ], + "x-ms-enum": { + "name": "FolderCreatedEventType", + "modelAsString": false + } + }, + "eventTime": { + "type": "string", + "format": "date-time" + }, + "eventSource": { + "type": "object" + } + } + }, + "FolderDeletedEvent": { + "type": "object", + "properties": { + "key": { + "type": "string", + "format": "uuid" + }, + "eventTime": { + "type": "string", + "format": "date-time" + }, + "eventSource": { + "type": "object" + } + } + }, + "FolderDto": { + "required": [ + "DisplayName" + ], + "type": "object", + "properties": { + "Key": { + "type": "string", + "description": "Unique key for the folder", + "format": "uuid" + }, + "DisplayName": { + "maxLength": 115, + "minLength": 1, + "type": "string", + "description": "Display name for the folder." + }, + "FullyQualifiedName": { + "type": "string", + "description": "Name of folder prepended by the names of its ancestors." + }, + "Description": { + "maxLength": 500, + "type": "string", + "description": "Description of folder" + }, + "FolderType": { + "type": "string", + "description": "Folder type", + "enum": [ + "Standard", + "Personal", + "Virtual", + "Solution" + ], + "x-ms-enum": { + "name": "FolderDtoFolderType", + "modelAsString": false + } + }, + "IsPersonal": { + "type": "boolean", + "description": "True if Personal", + "readOnly": true + }, + "ProvisionType": { + "type": "string", + "description": "Robot provisioning type", + "enum": [ + "Manual", + "Automatic" + ], + "x-ms-enum": { + "name": "FolderDtoProvisionType", + "modelAsString": false + } + }, + "PermissionModel": { + "type": "string", + "description": "Folder permissions model", + "enum": [ + "InheritFromTenant", + "FineGrained" + ], + "x-ms-enum": { + "name": "FolderDtoPermissionModel", + "modelAsString": false + } + }, + "ParentId": { + "type": "integer", + "description": "Id of parent folder in the folders hierarchy", + "format": "int64" + }, + "ParentKey": { + "type": "string", + "description": "Unique key for the parent folder", + "format": "uuid" + }, + "FeedType": { + "type": "string", + "description": "Folder feed type", + "enum": [ + "Undefined", + "Processes", + "Libraries", + "PersonalWorkspace", + "FolderHierarchy" + ], + "x-ms-enum": { + "name": "FolderDtoFeedType", + "modelAsString": false + } + }, + "Id": { + "type": "integer", + "format": "int64" + } + } + }, + "FolderMachineInheritDto": { + "type": "object", + "properties": { + "MachineId": { + "type": "integer", + "format": "int64" + }, + "FolderId": { + "type": "integer", + "format": "int64" + }, + "InheritEnabled": { + "type": "boolean" + } + } + }, + "FolderNavigationContextDto": { + "type": "object", + "properties": { + "Id": { + "type": "integer", + "format": "int64" + }, + "DisplayName": { + "type": "string" + }, + "IsSelectable": { + "type": "boolean" + }, + "IsPersonal": { + "type": "boolean" + }, + "ProvisionType": { + "type": "string", + "enum": [ + "Manual", + "Automatic" + ], + "x-ms-enum": { + "name": "FolderNavigationContextDtoProvisionType", + "modelAsString": false + } + }, + "Ancestors": { + "type": "array", + "items": { + "$ref": "#/components/schemas/SimpleFolderDto" + } + }, + "ChildrenPage": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ExtendedFolderDto" + } + }, + "ChildrenCount": { + "type": "integer", + "format": "int64" + } + } + }, + "FolderRolesDto": { + "type": "object", + "properties": { + "FolderId": { + "type": "integer", + "format": "int64" + }, + "RoleIds": { + "type": "array", + "items": { + "type": "integer", + "format": "int32" + } + } + }, + "description": "Association between a folder and a set of roles." + }, + "FolderUpdatedEvent": { + "type": "object", + "properties": { + "key": { + "type": "string", + "format": "uuid" + }, + "displayName": { + "type": "string" + }, + "description": { + "type": "string" + }, + "code": { + "type": "string" + }, + "path": { + "type": "string" + }, + "fullyQualifiedName": { + "type": "string" + }, + "type": { + "type": "string", + "enum": [ + "Standard", + "Personal", + "Virtual", + "Solution" + ], + "x-ms-enum": { + "name": "FolderUpdatedEventType", + "modelAsString": false + } + }, + "eventTime": { + "type": "string", + "format": "date-time" + }, + "eventSource": { + "type": "object" + } + } + }, + "FormTaskCreateRequest": { + "required": [ + "title" + ], + "type": "object", + "properties": { + "formLayout": { + "type": "object", + "description": "Text representing the form layout schema" + }, + "formLayoutId": { + "type": "integer", + "description": "Unique FormLayoutId for a form layout", + "format": "int64" + }, + "bulkFormLayoutId": { + "type": "integer", + "description": "Unique BulkFormLayoutId for a form layout", + "format": "int64" + }, + "title": { + "maxLength": 512, + "minLength": 0, + "type": "string", + "description": "Gets or sets title of this task." + }, + "priority": { + "type": "string", + "description": "Gets or sets priority of this task.", + "enum": [ + "Low", + "Medium", + "High", + "Critical" + ], + "x-ms-enum": { + "name": "BaseTaskCreateRequestPriority", + "modelAsString": false + } + }, + "data": { + "type": "object", + "description": "Task data" + }, + "taskCatalogName": { + "maxLength": 50, + "type": "string", + "description": "Gets or sets the task catalog/category of the task" + }, + "externalTag": { + "maxLength": 128, + "type": "string", + "description": "Reference or name of external system" + }, + "tags": { + "type": "array", + "description": "List of tags associated to the task.", + "items": { + "$ref": "#/components/schemas/TagDto" + } + } + }, + "description": "Class with only attributes needed for Creating Task (TaskType = TaskType.FormTask)" + }, + "HostAvailabilityDto": { + "type": "object", + "properties": { + "canConnect": { + "type": "boolean", + "description": "Target host is reachable and a succesful TCP connection could be made on the specified port" + }, + "hasBadSsl": { + "type": "boolean", + "description": "Any error occurred during SSL/TLS authentication.\r\nIncludes bad certificates (name mismatch, expired certificates), unsupported protocol versions or cyphersuites" + }, + "connectionError": { + "type": "string", + "description": "An error code that further describes the type of connection error.\r\nDoes not include TLS/SSL errors" + } + } + }, + "HostDeleteTenantLicenseRequest": { + "required": [ + "tenantId" + ], + "type": "object", + "properties": { + "tenantId": { + "type": "integer", + "format": "int32" + } + } + }, + "HostLicenseDto": { + "type": "object", + "properties": { + "TenantsCount": { + "type": "integer", + "description": "The number of tenants licensed from this license file", + "format": "int32" + }, + "Id": { + "type": "integer", + "description": "License Id", + "format": "int64" + }, + "ExpireDate": { + "type": "integer", + "description": "License expiration date in Epoch format", + "format": "int64" + }, + "GracePeriodEndDate": { + "type": "integer", + "description": "License grace period end date in Epoch format", + "format": "int64" + }, + "GracePeriod": { + "type": "integer", + "description": "Number of grace period days", + "format": "int64" + }, + "VersionControl": { + "type": "string", + "description": "The product version which can use this license" + }, + "Allowed": { + "type": "object", + "additionalProperties": { + "type": "integer", + "format": "int64" + }, + "description": "Contains the number of allowed licenses for each type" + }, + "Used": { + "type": "object", + "additionalProperties": { + "type": "integer", + "format": "int64" + }, + "description": "Contains the number of used licenses for each type" + }, + "AttendedConcurrent": { + "type": "boolean", + "description": "States whether the license is Attended Concurrent" + }, + "DevelopmentConcurrent": { + "type": "boolean", + "description": "States whether the license is Development Concurrent" + }, + "StudioXConcurrent": { + "type": "boolean", + "description": "States whether the license is Studio Business Concurrent" + }, + "StudioProConcurrent": { + "type": "boolean", + "description": "States whether the license is Studio Pro Concurrent" + }, + "LicensedFeatures": { + "type": "array", + "description": "What features are licensed (valid for individually-licensed features, like Analytics)", + "items": { + "type": "string" + } + }, + "IsRegistered": { + "type": "boolean", + "description": "True if the current tenant is registered with a license. False otherwise." + }, + "IsCommunity": { + "type": "boolean", + "description": "True if the current tenant is registered with a community license." + }, + "IsProOrEnterprise": { + "type": "boolean", + "description": "True if the current tenant is registered with a pro license." + }, + "SubscriptionCode": { + "type": "string", + "description": "The license subscription code" + }, + "SubscriptionPlan": { + "type": "string", + "description": "The license subscription plan" + }, + "IsExpired": { + "type": "boolean", + "description": "States whether the license is still valid or not." + }, + "CreationTime": { + "type": "string", + "description": "The date when the license was uploaded.", + "format": "date-time" + }, + "Code": { + "type": "string", + "description": "The license code." + }, + "UserLicensingEnabled": { + "type": "boolean", + "description": "Whether user licensing is enabled or not." + } + }, + "description": "Stores information about the host license used to activate one or more tenants." + }, + "HostLicensePerTenantDto": { + "type": "object", + "properties": { + "TenantId": { + "type": "integer", + "description": "The tenant's Id", + "format": "int32" + }, + "HostLicenseId": { + "type": "integer", + "description": "The host license's Id", + "format": "int64" + } + }, + "additionalProperties": { + "type": "object" + } + }, + "HostSetTenantLicenseRequest": { + "required": [ + "license" + ], + "type": "object", + "properties": { + "license": { + "$ref": "#/components/schemas/HostLicensePerTenantDto" + } + } + }, + "JobCompletedEventDto": { + "required": [ + "EventId", + "Timestamp", + "Type" + ], + "type": "object", + "properties": { + "Type": { + "minLength": 1, + "type": "string" + }, + "EventId": { + "maxLength": 50, + "minLength": 0, + "type": "string" + }, + "EntityKey": { + "type": "string", + "format": "uuid" + }, + "Timestamp": { + "type": "string", + "format": "date-time" + }, + "Job": { + "$ref": "#/components/schemas/SimpleJobEventDto" + }, + "EventTime": { + "type": "string", + "format": "date-time" + }, + "TenantId": { + "type": "integer", + "format": "int32" + }, + "OrganizationUnitId": { + "type": "integer", + "format": "int64" + }, + "OrganizationUnitKey": { + "type": "string", + "format": "uuid" + }, + "UserId": { + "type": "integer", + "format": "int64" + } + }, + "description": "This event is raised whenever a job has completed successfully", + "x-webhook-event": "job.completed" + }, + "JobDto": { + "type": "object", + "properties": { + "Key": { + "type": "string", + "description": "The unique job identifier.", + "format": "uuid" + }, + "StartTime": { + "type": "string", + "description": "The date and time when the job execution started or null if the job hasn't started yet.", + "format": "date-time" + }, + "EndTime": { + "type": "string", + "description": "The date and time when the job execution ended or null if the job hasn't ended yet.", + "format": "date-time" + }, + "State": { + "type": "string", + "description": "The state in which the job is.", + "enum": [ + "Pending", + "Running", + "Stopping", + "Terminating", + "Faulted", + "Successful", + "Stopped", + "Suspended", + "Resumed" + ], + "x-ms-enum": { + "name": "JobDtoState", + "modelAsString": false + } + }, + "JobPriority": { + "type": "string", + "description": "Execution priority.", + "enum": [ + "Low", + "Normal", + "High" + ], + "x-ms-enum": { + "name": "JobDtoJobPriority", + "modelAsString": false + } + }, + "SpecificPriorityValue": { + "maximum": 100, + "minimum": 1, + "type": "integer", + "description": "Value for more granular control over execution priority.", + "format": "int32" + }, + "Robot": { + "$ref": "#/components/schemas/SimpleRobotDto" + }, + "Release": { + "$ref": "#/components/schemas/SimpleReleaseDto" + }, + "ResourceOverwrites": { + "type": "string", + "description": "Job overwrites" + }, + "Source": { + "type": "string", + "description": "The Source name of the job." + }, + "SourceType": { + "type": "string", + "description": "The Source type of the job.", + "enum": [ + "Manual", + "Schedule", + "Agent", + "Queue", + "StudioWeb", + "IntegrationTrigger", + "StudioDesktop", + "AutomationOpsPipelines", + "Apps", + "SAP" + ], + "x-ms-enum": { + "name": "JobDtoSourceType", + "modelAsString": false + } + }, + "BatchExecutionKey": { + "type": "string", + "description": "The unique identifier grouping multiple jobs. It is usually generated when the job is created by a schedule.", + "format": "uuid" + }, + "Info": { + "type": "string", + "description": "Additional information about the current job." + }, + "CreationTime": { + "type": "string", + "description": "The date and time when the job was created.", + "format": "date-time" + }, + "StartingScheduleId": { + "type": "integer", + "description": "The Id of the schedule that started the job, or null if the job was started by the user.", + "format": "int64" + }, + "ReleaseName": { + "type": "string", + "description": "The name of the release associated with the current name." + }, + "Type": { + "type": "string", + "description": "The type of the job, Attended if started via the robot, Unattended otherwise", + "enum": [ + "Unattended", + "Attended", + "ServerlessGeneric" + ], + "x-ms-enum": { + "name": "JobDtoType", + "modelAsString": false + } + }, + "InputArguments": { + "type": "string", + "description": "Input parameters in JSON format to be passed to job execution" + }, + "OutputArguments": { + "type": "string", + "description": "Output parameters in JSON format resulted from job execution" + }, + "HostMachineName": { + "type": "string", + "description": "The name of the machine where the Robot run the job." + }, + "HasMediaRecorded": { + "type": "boolean", + "description": "True if any execution media has been recorded for this job, false otherwise." + }, + "HasVideoRecorded": { + "type": "boolean", + "description": "True if any execution video has been recorded for this job, false otherwise." + }, + "PersistenceId": { + "type": "string", + "description": "The persistence instance id for a suspended job", + "format": "uuid" + }, + "ResumeVersion": { + "type": "integer", + "description": "Distinguishes between multiple job suspend/resume cycles", + "format": "int32" + }, + "StopStrategy": { + "type": "string", + "enum": [ + "SoftStop", + "Kill" + ], + "x-ms-enum": { + "name": "JobDtoStopStrategy", + "modelAsString": false + } + }, + "RuntimeType": { + "type": "string", + "description": "The runtime type of the robot which can pick up the job", + "enum": [ + "NonProduction", + "Attended", + "Unattended", + "Development", + "Studio", + "RpaDeveloper", + "StudioX", + "CitizenDeveloper", + "Headless", + "StudioPro", + "RpaDeveloperPro", + "TestAutomation", + "AutomationCloud", + "Serverless", + "AutomationKit", + "ServerlessTestAutomation", + "AutomationCloudTestAutomation", + "AttendedStudioWeb" + ], + "x-ms-enum": { + "name": "JobDtoRuntimeType", + "modelAsString": false + } + }, + "RequiresUserInteraction": { + "type": "boolean" + }, + "ReleaseVersionId": { + "type": "integer", + "format": "int64" + }, + "EntryPointPath": { + "maxLength": 512, + "type": "string", + "description": "Path to the entry point workflow (XAML) that will be executed by the robot" + }, + "OrganizationUnitId": { + "type": "integer", + "description": "Id of the folder this job is part of.", + "format": "int64" + }, + "OrganizationUnitFullyQualifiedName": { + "type": "string", + "description": "Fully qualified name of the folder this job is part of." + }, + "Reference": { + "type": "string", + "description": "Reference identifier for the job" + }, + "ProcessType": { + "type": "string", + "enum": [ + "Undefined", + "Process", + "TestAutomationProcess" + ], + "x-ms-enum": { + "name": "JobDtoProcessType", + "modelAsString": false + } + }, + "Machine": { + "$ref": "#/components/schemas/MachineDto" + }, + "ProfilingOptions": { + "type": "string", + "description": "Options to instruct the robot what profiling info to collect (code coverage, CPU / memory utilization, etc)" + }, + "ResumeOnSameContext": { + "type": "boolean", + "description": "Flag for honoring initial machine and robot choice upon resumption of job if suspended.
\r\nIf set, the job will resume on the same robot-machine pair on which it initially ran." + }, + "LocalSystemAccount": { + "type": "string", + "description": "The account under which the robot executor will run the job" + }, + "OrchestratorUserIdentity": { + "type": "string", + "description": "The orchestrator identity used to make API calls" + }, + "RemoteControlAccess": { + "type": "string", + "enum": [ + "None", + "ReadOnly", + "Full" + ], + "x-ms-enum": { + "name": "JobDtoRemoteControlAccess", + "modelAsString": false + } + }, + "MaxExpectedRunningTimeSeconds": { + "type": "integer", + "description": "Expected running time in seconds", + "format": "int64" + }, + "ServerlessJobType": { + "type": "string", + "description": "The type of the serverless job, RobotJob or Generic", + "enum": [ + "RobotJob", + "StudioWebDesigner" + ], + "x-ms-enum": { + "name": "JobDtoServerlessJobType", + "modelAsString": false + } + }, + "Id": { + "type": "integer", + "format": "int64" + } + }, + "description": "Represents a scheduled or manual execution of a process on a robot." + }, + "JobFaultedEventDto": { + "required": [ + "EventId", + "Timestamp", + "Type" + ], + "type": "object", + "properties": { + "Type": { + "minLength": 1, + "type": "string" + }, + "EventId": { + "maxLength": 50, + "minLength": 0, + "type": "string" + }, + "EntityKey": { + "type": "string", + "format": "uuid" + }, + "Timestamp": { + "type": "string", + "format": "date-time" + }, + "Job": { + "$ref": "#/components/schemas/SimpleJobEventDto" + }, + "EventTime": { + "type": "string", + "format": "date-time" + }, + "TenantId": { + "type": "integer", + "format": "int32" + }, + "OrganizationUnitId": { + "type": "integer", + "format": "int64" + }, + "OrganizationUnitKey": { + "type": "string", + "format": "uuid" + }, + "UserId": { + "type": "integer", + "format": "int64" + } + }, + "description": "This event is raised whenever a job has failed to finish execution", + "x-webhook-event": "job.faulted" + }, + "JobResumedEventDto": { + "required": [ + "EventId", + "Timestamp", + "Type" + ], + "type": "object", + "properties": { + "Type": { + "minLength": 1, + "type": "string" + }, + "EventId": { + "maxLength": 50, + "minLength": 0, + "type": "string" + }, + "EntityKey": { + "type": "string", + "format": "uuid" + }, + "Timestamp": { + "type": "string", + "format": "date-time" + }, + "Job": { + "$ref": "#/components/schemas/SimpleJobEventDto" + }, + "EventTime": { + "type": "string", + "format": "date-time" + }, + "TenantId": { + "type": "integer", + "format": "int32" + }, + "OrganizationUnitId": { + "type": "integer", + "format": "int64" + }, + "OrganizationUnitKey": { + "type": "string", + "format": "uuid" + }, + "UserId": { + "type": "integer", + "format": "int64" + } + }, + "x-webhook-event": "job.resumed" + }, + "JobStartedEventDto": { + "required": [ + "EventId", + "Timestamp", + "Type" + ], + "type": "object", + "properties": { + "Type": { + "minLength": 1, + "type": "string" + }, + "EventId": { + "maxLength": 50, + "minLength": 0, + "type": "string" + }, + "EntityKey": { + "type": "string", + "format": "uuid" + }, + "Timestamp": { + "type": "string", + "format": "date-time" + }, + "Job": { + "$ref": "#/components/schemas/SimpleJobEventDto" + }, + "EventTime": { + "type": "string", + "format": "date-time" + }, + "TenantId": { + "type": "integer", + "format": "int32" + }, + "OrganizationUnitId": { + "type": "integer", + "format": "int64" + }, + "OrganizationUnitKey": { + "type": "string", + "format": "uuid" + }, + "UserId": { + "type": "integer", + "format": "int64" + } + }, + "description": "This event is raised whenever a job has started execution on a robot", + "x-webhook-event": "job.started" + }, + "JobStoppingEventDto": { + "required": [ + "EventId", + "Timestamp", + "Type" + ], + "type": "object", + "properties": { + "Type": { + "minLength": 1, + "type": "string" + }, + "EventId": { + "maxLength": 50, + "minLength": 0, + "type": "string" + }, + "EntityKey": { + "type": "string", + "format": "uuid" + }, + "Timestamp": { + "type": "string", + "format": "date-time" + }, + "Job": { + "$ref": "#/components/schemas/SimpleJobEventDto" + }, + "EventTime": { + "type": "string", + "format": "date-time" + }, + "TenantId": { + "type": "integer", + "format": "int32" + }, + "OrganizationUnitId": { + "type": "integer", + "format": "int64" + }, + "OrganizationUnitKey": { + "type": "string", + "format": "uuid" + }, + "UserId": { + "type": "integer", + "format": "int64" + } + }, + "x-webhook-event": "job.stopping" + }, + "JobSuspendedEventDto": { + "required": [ + "EventId", + "Timestamp", + "Type" + ], + "type": "object", + "properties": { + "Type": { + "minLength": 1, + "type": "string" + }, + "EventId": { + "maxLength": 50, + "minLength": 0, + "type": "string" + }, + "EntityKey": { + "type": "string", + "format": "uuid" + }, + "Timestamp": { + "type": "string", + "format": "date-time" + }, + "Job": { + "$ref": "#/components/schemas/SimpleJobEventDto" + }, + "EventTime": { + "type": "string", + "format": "date-time" + }, + "TenantId": { + "type": "integer", + "format": "int32" + }, + "OrganizationUnitId": { + "type": "integer", + "format": "int64" + }, + "OrganizationUnitKey": { + "type": "string", + "format": "uuid" + }, + "UserId": { + "type": "integer", + "format": "int64" + } + }, + "description": "This event is raised whenever a job has suspended execution on a robot", + "x-webhook-event": "job.suspended" + }, + "JobTerminatingEventDto": { + "required": [ + "EventId", + "Timestamp", + "Type" + ], + "type": "object", + "properties": { + "Type": { + "minLength": 1, + "type": "string" + }, + "EventId": { + "maxLength": 50, + "minLength": 0, + "type": "string" + }, + "EntityKey": { + "type": "string", + "format": "uuid" + }, + "Timestamp": { + "type": "string", + "format": "date-time" + }, + "Job": { + "$ref": "#/components/schemas/SimpleJobEventDto" + }, + "EventTime": { + "type": "string", + "format": "date-time" + }, + "TenantId": { + "type": "integer", + "format": "int32" + }, + "OrganizationUnitId": { + "type": "integer", + "format": "int64" + }, + "OrganizationUnitKey": { + "type": "string", + "format": "uuid" + }, + "UserId": { + "type": "integer", + "format": "int64" + } + }, + "x-webhook-event": "job.terminating" + }, + "JobTriggerDto": { + "type": "object", + "properties": { + "JobId": { + "type": "integer", + "format": "int64" + }, + "TriggerType": { + "type": "string", + "description": "Resume type (job, queue, task etc)", + "enum": [ + "None", + "QueueItem", + "Job", + "Task", + "Timer", + "Integration" + ], + "x-ms-enum": { + "name": "JobTriggerDtoTriggerType", + "modelAsString": false + } + }, + "Status": { + "type": "string", + "description": "Job trigger status (new, ready, fired etc)", + "enum": [ + "New", + "Ready", + "Fired" + ], + "x-ms-enum": { + "name": "JobTriggerDtoStatus", + "modelAsString": false + } + }, + "ItemId": { + "type": "integer", + "description": "item Id (queue item id, task id, job id etc)", + "format": "int64" + }, + "Timer": { + "type": "string", + "description": "Resume timer (for time trigger)", + "format": "date-time" + }, + "TriggerMessage": { + "type": "string", + "description": "Workflow provided resume trigger description/message" + }, + "Id": { + "type": "integer", + "format": "int64" + } + }, + "description": "A trigger for resuming a job" + }, + "JobTriggerWithWaitEventsDto": { + "type": "object", + "properties": { + "Id": { + "type": "integer", + "description": "Job Trigger Id", + "format": "int64" + }, + "JobId": { + "type": "integer", + "description": "Job Id", + "format": "int64" + }, + "TriggerType": { + "type": "string", + "description": "Resume type (job, queue, task etc)", + "enum": [ + "None", + "QueueItem", + "Job", + "Task", + "Timer", + "Integration" + ], + "x-ms-enum": { + "name": "JobTriggerWaitEventModelTriggerType", + "modelAsString": false + } + }, + "Status": { + "type": "string", + "description": "Job trigger status (new, ready, fired etc)", + "enum": [ + "New", + "Ready", + "Fired" + ], + "x-ms-enum": { + "name": "JobTriggerWaitEventModelStatus", + "modelAsString": false + } + }, + "ItemId": { + "type": "integer", + "description": "item Id (queue item id, task id, job id etc)", + "format": "int64" + }, + "Timer": { + "type": "string", + "description": "Resume timer (for time trigger)", + "format": "date-time" + }, + "TriggerMessage": { + "type": "string", + "description": "Workflow provided resume trigger description/message" + }, + "ItemName": { + "type": "string", + "description": "Name of the Item on which wait is placed" + }, + "AssignedToUserId": { + "type": "integer", + "description": "Assigned to UserId", + "format": "int64" + }, + "Name": { + "type": "string", + "description": "Assigned to User - Name" + }, + "Surname": { + "type": "string", + "description": "Assigned to User - SurName" + }, + "UserName": { + "type": "string", + "description": "Assigned to User - UserName" + }, + "EmailAddress": { + "type": "string", + "description": "Assigned to User - EmailAddress" + }, + "CreationTime": { + "type": "string", + "description": "Creationtime of the item", + "format": "date-time" + }, + "ModifiedTime": { + "type": "string", + "description": "Modification time of the item", + "format": "date-time" + } + } + }, + "JobsCreatedEventDto": { + "required": [ + "EventId", + "Timestamp", + "Type" + ], + "type": "object", + "properties": { + "Type": { + "minLength": 1, + "type": "string" + }, + "EventId": { + "maxLength": 50, + "minLength": 0, + "type": "string" + }, + "EntityKey": { + "type": "string", + "format": "uuid" + }, + "Timestamp": { + "type": "string", + "format": "date-time" + }, + "StartInfo": { + "$ref": "#/components/schemas/WrappedStartProcessDto" + }, + "Jobs": { + "type": "array", + "description": "List of jobs that were created and are in pending state", + "readOnly": true, + "items": { + "$ref": "#/components/schemas/WrappedJobDto" + } + }, + "EventTime": { + "type": "string", + "format": "date-time" + }, + "TenantId": { + "type": "integer", + "format": "int32" + }, + "OrganizationUnitId": { + "type": "integer", + "format": "int64" + }, + "OrganizationUnitKey": { + "type": "string", + "format": "uuid" + }, + "UserId": { + "type": "integer", + "format": "int64" + } + }, + "description": "This event is raised whenever jobs were created and queued for execution", + "x-webhook-event": "job.created" + }, + "JobsStoppedEventDto": { + "required": [ + "EventId", + "Timestamp", + "Type" + ], + "type": "object", + "properties": { + "Type": { + "minLength": 1, + "type": "string" + }, + "EventId": { + "maxLength": 50, + "minLength": 0, + "type": "string" + }, + "EntityKey": { + "type": "string", + "format": "uuid" + }, + "Timestamp": { + "type": "string", + "format": "date-time" + }, + "Jobs": { + "type": "array", + "items": { + "$ref": "#/components/schemas/SimpleJobEventDto" + } + }, + "EventTime": { + "type": "string", + "format": "date-time" + }, + "TenantId": { + "type": "integer", + "format": "int32" + }, + "OrganizationUnitId": { + "type": "integer", + "format": "int64" + }, + "OrganizationUnitKey": { + "type": "string", + "format": "uuid" + }, + "UserId": { + "type": "integer", + "format": "int64" + } + }, + "description": "This event is raised whenever jobs were stopped", + "x-webhook-event": "job.stopped" + }, + "KeyValuePairOfStringString": { + "type": "object", + "properties": { + "Key": { + "type": "string", + "readOnly": true + }, + "Value": { + "type": "string", + "readOnly": true + } + } + }, + "LanguageInfo": { + "type": "object", + "properties": { + "Name": { + "type": "string" + }, + "DisplayName": { + "type": "string" + }, + "Icon": { + "type": "string" + }, + "IsDefault": { + "type": "boolean" + }, + "IsDisabled": { + "type": "boolean" + } + } + }, + "LibraryDto": { + "type": "object", + "properties": { + "Created": { + "type": "string", + "format": "date-time" + }, + "LastUpdated": { + "type": "string", + "format": "date-time" + }, + "Owners": { + "type": "string" + }, + "IconUrl": { + "type": "string" + }, + "Summary": { + "type": "string" + }, + "PackageSize": { + "type": "integer", + "format": "int64" + }, + "IsPrerelease": { + "type": "boolean" + }, + "Title": { + "type": "string", + "description": "The custom name of the package." + }, + "Version": { + "type": "string", + "description": "The current version of the given package." + }, + "Key": { + "type": "string", + "description": "The unique identifier for the package." + }, + "Description": { + "type": "string", + "description": "Used to add additional information about a package in order to better identify it." + }, + "Published": { + "type": "string", + "description": "The date and time when the package was published or uploaded.", + "format": "date-time" + }, + "IsLatestVersion": { + "type": "boolean", + "description": "Specifies whether the current version is the latest of the given package." + }, + "OldVersion": { + "type": "string", + "description": "Specifies the last version before the current one." + }, + "ReleaseNotes": { + "type": "string", + "description": "Package release notes." + }, + "Authors": { + "type": "string", + "description": "Package authors." + }, + "ProjectType": { + "type": "string", + "description": "Package project type.", + "enum": [ + "Undefined", + "Process", + "ProcessLibrary", + "BusinessProcess", + "BusinessProcessLibrary", + "TestAutomationProcess" + ], + "x-ms-enum": { + "name": "PackageDtoProjectType", + "modelAsString": false + } + }, + "Tags": { + "type": "string", + "description": "Package tags." + }, + "IsCompiled": { + "type": "boolean", + "description": "Disable explore packages for compiled processes" + }, + "LicenseUrl": { + "type": "string", + "description": "License URL" + }, + "ProjectUrl": { + "type": "string", + "description": "Project URL" + }, + "ResourceTags": { + "type": "array", + "description": "Tags set up by orchestrator", + "items": { + "$ref": "#/components/schemas/TagDto" + } + }, + "Id": { + "type": "string" + } + } + }, + "LicenseDto": { + "type": "object", + "properties": { + "HostLicenseId": { + "type": "integer", + "format": "int64" + }, + "Id": { + "type": "integer", + "description": "License Id", + "format": "int64" + }, + "ExpireDate": { + "type": "integer", + "description": "License expiration date in Epoch format", + "format": "int64" + }, + "GracePeriodEndDate": { + "type": "integer", + "description": "License grace period end date in Epoch format", + "format": "int64" + }, + "GracePeriod": { + "type": "integer", + "description": "Number of grace period days", + "format": "int64" + }, + "VersionControl": { + "type": "string", + "description": "The product version which can use this license" + }, + "Allowed": { + "type": "object", + "additionalProperties": { + "type": "integer", + "format": "int64" + }, + "description": "Contains the number of allowed licenses for each type" + }, + "Used": { + "type": "object", + "additionalProperties": { + "type": "integer", + "format": "int64" + }, + "description": "Contains the number of used licenses for each type" + }, + "AttendedConcurrent": { + "type": "boolean", + "description": "States whether the license is Attended Concurrent" + }, + "DevelopmentConcurrent": { + "type": "boolean", + "description": "States whether the license is Development Concurrent" + }, + "StudioXConcurrent": { + "type": "boolean", + "description": "States whether the license is Studio Business Concurrent" + }, + "StudioProConcurrent": { + "type": "boolean", + "description": "States whether the license is Studio Pro Concurrent" + }, + "LicensedFeatures": { + "type": "array", + "description": "What features are licensed (valid for individually-licensed features, like Analytics)", + "items": { + "type": "string" + } + }, + "IsRegistered": { + "type": "boolean", + "description": "True if the current tenant is registered with a license. False otherwise." + }, + "IsCommunity": { + "type": "boolean", + "description": "True if the current tenant is registered with a community license." + }, + "IsProOrEnterprise": { + "type": "boolean", + "description": "True if the current tenant is registered with a pro license." + }, + "SubscriptionCode": { + "type": "string", + "description": "The license subscription code" + }, + "SubscriptionPlan": { + "type": "string", + "description": "The license subscription plan" + }, + "IsExpired": { + "type": "boolean", + "description": "States whether the license is still valid or not." + }, + "CreationTime": { + "type": "string", + "description": "The date when the license was uploaded.", + "format": "date-time" + }, + "Code": { + "type": "string", + "description": "The license code." + }, + "UserLicensingEnabled": { + "type": "boolean", + "description": "Whether user licensing is enabled or not." + } + }, + "description": "Stores information about the license used to activate a tenant." + }, + "LicenseNamedUserDto": { + "type": "object", + "properties": { + "Key": { + "type": "string", + "description": "The license key." + }, + "UserName": { + "type": "string", + "description": "The Robot's UserName." + }, + "LastLoginDate": { + "type": "string", + "description": "The last date when the Robot acquired a license.", + "format": "date-time" + }, + "MachinesCount": { + "type": "integer", + "description": "Total number of machines where a robot with UserName is defined.", + "format": "int32" + }, + "IsLicensed": { + "type": "boolean", + "description": "If the license is in use." + }, + "IsExternalLicensed": { + "type": "boolean", + "description": "If the robot is external licensed" + }, + "ActiveRobotId": { + "type": "integer", + "description": "The Id of the Robot that uses the license.", + "format": "int64" + }, + "MachineNames": { + "type": "array", + "description": "The Machine names of the defined Robot.", + "items": { + "type": "string" + } + }, + "ActiveMachineNames": { + "type": "array", + "description": "The Machine names of the connected and licensed Robot.", + "items": { + "type": "string" + } + } + }, + "description": "Stores information about a named-user license (attended/development)." + }, + "LicenseRequest": { + "required": [ + "environment", + "licenseKey" + ], + "type": "object", + "properties": { + "licenseKey": { + "minLength": 1, + "type": "string" + }, + "environment": { + "minLength": 1, + "type": "string" + }, + "email": { + "type": "string" + } + } + }, + "LicenseResultDto": { + "type": "object", + "properties": { + "isSuccess": { + "type": "boolean" + }, + "errorCode": { + "type": "string", + "enum": [ + "NoLicense", + "LicenseExpired", + "LicenseUnregistered", + "NoAvailableLicenses", + "NotEnoughAvailableSlots", + "NotEnoughRuntimeLicenses", + "LicenseIsAlreadyInUse", + "InvalidRequest", + "SlotsExceedLicenseLimit", + "RuntimeDisabled", + "ExternalNotSupported", + "UsageExceedsLicenseLimit", + "LicenseNotCompatible" + ], + "x-ms-enum": { + "name": "LicenseResultDtoErrorCode", + "modelAsString": false + } + }, + "errorMessage": { + "type": "string" + } + } + }, + "LicenseRuntimeDto": { + "type": "object", + "properties": { + "Key": { + "type": "string", + "description": "The license key." + }, + "MachineId": { + "type": "integer", + "description": "The Machine's Id.", + "format": "int64" + }, + "MachineName": { + "type": "string", + "description": "The Machine's Name." + }, + "HostMachineName": { + "type": "string", + "description": "The Host machine's Name." + }, + "ServiceUserName": { + "type": "string", + "description": "The Service username when installed in user mode." + }, + "MachineType": { + "type": "string", + "description": "The Machine's Type.", + "enum": [ + "Standard", + "Template" + ], + "x-ms-enum": { + "name": "LicenseRuntimeDtoMachineType", + "modelAsString": false + } + }, + "Runtimes": { + "type": "integer", + "description": "Maximum number of runtimes.", + "format": "int32" + }, + "RobotsCount": { + "type": "integer", + "description": "Total number of Robots.", + "format": "int32" + }, + "ExecutingCount": { + "type": "integer", + "description": "How many Robots acquired a license.", + "format": "int32" + }, + "IsOnline": { + "type": "boolean", + "description": "If the machine is online." + }, + "IsLicensed": { + "type": "boolean", + "description": "If the machine is licensed." + }, + "Enabled": { + "type": "boolean", + "description": "If the machine is allowed to consume licenses." + }, + "MachineScope": { + "type": "string", + "description": "Machine scope.", + "enum": [ + "Default", + "Shared", + "PersonalWorkspace", + "Cloud", + "Serverless" + ], + "x-ms-enum": { + "name": "LicenseRuntimeDtoMachineScope", + "modelAsString": false + } + } + }, + "description": "Stores information about a runtime license (unattended/non-production)." + }, + "LicenseStatsModel": { + "type": "object", + "properties": { + "robotType": { + "type": "string", + "enum": [ + "NonProduction", + "Attended", + "Unattended", + "Development", + "Studio", + "RpaDeveloper", + "StudioX", + "CitizenDeveloper", + "Headless", + "StudioPro", + "RpaDeveloperPro", + "TestAutomation", + "AutomationCloud", + "Serverless", + "AutomationKit", + "ServerlessTestAutomation", + "AutomationCloudTestAutomation", + "AttendedStudioWeb" + ], + "x-ms-enum": { + "name": "LicenseStatsModelRobotType", + "modelAsString": false + } + }, + "count": { + "type": "integer", + "format": "int64" + }, + "timestamp": { + "type": "string", + "format": "date-time" + } + } + }, + "LicensesToggleEnabledRequest": { + "required": [ + "enabled", + "key", + "robotType" + ], + "type": "object", + "properties": { + "key": { + "minLength": 1, + "type": "string" + }, + "robotType": { + "type": "string", + "enum": [ + "NonProduction", + "Attended", + "Unattended", + "Development", + "Studio", + "RpaDeveloper", + "StudioX", + "CitizenDeveloper", + "Headless", + "StudioPro", + "RpaDeveloperPro", + "TestAutomation", + "AutomationCloud", + "Serverless", + "AutomationKit", + "ServerlessTestAutomation", + "AutomationCloudTestAutomation", + "AttendedStudioWeb" + ], + "x-ms-enum": { + "name": "LicensesToggleEnabledRequestRobotType", + "modelAsString": false + } + }, + "enabled": { + "type": "boolean" + } + } + }, + "LightRoleDto": { + "type": "object", + "properties": { + "name": { + "maxLength": 64, + "type": "string", + "description": "A custom name for the role." + }, + "displayName": { + "maxLength": 64, + "type": "string", + "description": "An alternative name used for UI display." + }, + "groups": { + "type": "string", + "description": "Allows grouping multiple roles together." + }, + "isStatic": { + "type": "boolean", + "description": "States whether this role is defined by the application and cannot be deleted or it is user defined and can be deleted." + }, + "isEditable": { + "type": "boolean", + "description": "States whether the permissions for this role can be modified or not." + }, + "id": { + "type": "integer", + "format": "int32" + } + } + }, + "ListResultDtoOfLanguageInfo": { + "type": "object", + "properties": { + "Items": { + "type": "array", + "items": { + "$ref": "#/components/schemas/LanguageInfo" + } + } + } + }, + "ListResultDtoOfNameValueDto": { + "type": "object", + "properties": { + "items": { + "type": "array", + "items": { + "$ref": "#/components/schemas/NameValueDto" + } + } + } + }, + "LogDto": { + "type": "object", + "properties": { + "Level": { + "type": "string", + "description": "Defines the log severity.", + "enum": [ + "Trace", + "Debug", + "Info", + "Warn", + "Error", + "Fatal" + ], + "x-ms-enum": { + "name": "LogDtoLevel", + "modelAsString": false + } + }, + "WindowsIdentity": { + "type": "string", + "description": "The name of the user that performed the action that was logged." + }, + "ProcessName": { + "type": "string", + "description": "The name of the process." + }, + "TimeStamp": { + "type": "string", + "description": "The exact date and time the action was performed.", + "format": "date-time" + }, + "Message": { + "type": "string", + "description": "The log message. This can also be a message logged through the Log Message activity in UiPath Studio." + }, + "JobKey": { + "type": "string", + "description": "The key of the job running the process that generated the log, if any.", + "format": "uuid" + }, + "RawMessage": { + "type": "string", + "description": "A JSON format message containing all the above fields." + }, + "RobotName": { + "type": "string", + "description": "The name of the Robot that generated the log." + }, + "HostMachineName": { + "type": "string", + "description": "The name of the machine that generated the log" + }, + "MachineId": { + "type": "integer", + "description": "The Id of the Machine on which the Robot that generated the log is running.", + "format": "int64" + }, + "MachineKey": { + "type": "string", + "description": "The Key of the Machine on which the Robot that generated the log is running.", + "format": "uuid" + }, + "RuntimeType": { + "type": "string", + "description": "The RuntimeType of the job referenced by the JobKey field", + "enum": [ + "NonProduction", + "Attended", + "Unattended", + "Development", + "Studio", + "RpaDeveloper", + "StudioX", + "CitizenDeveloper", + "Headless", + "StudioPro", + "RpaDeveloperPro", + "TestAutomation", + "AutomationCloud", + "Serverless", + "AutomationKit", + "ServerlessTestAutomation", + "AutomationCloudTestAutomation", + "AttendedStudioWeb" + ], + "x-ms-enum": { + "name": "LogDtoRuntimeType", + "modelAsString": false + } + }, + "Id": { + "type": "integer", + "format": "int64" + } + }, + "description": "Logs generated by Robots and execution reports. Can be stored in ElasticSearch and/or to a local SQL database.\r\nNote: The endpoint for this type is /odata/RobotLogs URL." + }, + "LoginModel": { + "required": [ + "password", + "usernameOrEmailAddress" + ], + "type": "object", + "properties": { + "tenancyName": { + "type": "string" + }, + "usernameOrEmailAddress": { + "minLength": 1, + "type": "string" + }, + "password": { + "minLength": 1, + "type": "string" + } + } + }, + "LongVersionedEntity": { + "type": "object", + "properties": { + "RowVersion": { + "pattern": "^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$", + "type": "string", + "format": "byte" + }, + "Id": { + "type": "integer", + "format": "int64" + } + } + }, + "MachineAssignmentsDto": { + "type": "object", + "properties": { + "MachineIds": { + "type": "array", + "items": { + "type": "integer", + "format": "int64" + } + }, + "FolderIds": { + "type": "array", + "items": { + "type": "integer", + "format": "int64" + } + } + } + }, + "MachineDeleteBulkRequest": { + "type": "object", + "properties": { + "machineIds": { + "type": "array", + "items": { + "type": "integer", + "format": "int64" + } + } + } + }, + "MachineDto": { + "required": [ + "Name" + ], + "type": "object", + "properties": { + "LicenseKey": { + "maxLength": 255, + "minLength": 0, + "type": "string", + "description": "The key is automatically generated from the server for the Robot machine.\r\nFor the robot to work, the same key must exist on both the robot and Orchestrator.\r\nAll robots on a machine must have the same license key in order to register correctly." + }, + "Name": { + "maxLength": 450, + "minLength": 0, + "type": "string", + "description": "The name of the Machine a Robot is hosted on." + }, + "Description": { + "maxLength": 500, + "minLength": 0, + "type": "string" + }, + "Type": { + "type": "string", + "description": "The type of the Machine (Standard / Template).", + "enum": [ + "Standard", + "Template" + ], + "x-ms-enum": { + "name": "MachineDtoType", + "modelAsString": false + } + }, + "Scope": { + "type": "string", + "description": "The scope of the Machine (Default / Shared / PW / Cloud / Serverless).", + "enum": [ + "Default", + "Shared", + "PersonalWorkspace", + "Cloud", + "Serverless" + ], + "x-ms-enum": { + "name": "MachineDtoScope", + "modelAsString": false + } + }, + "NonProductionSlots": { + "type": "integer", + "description": "Number of NonProduction slots to be reserved at runtime", + "format": "int32" + }, + "UnattendedSlots": { + "type": "integer", + "description": "Number of Unattended slots to be reserved at runtime", + "format": "int32" + }, + "HeadlessSlots": { + "type": "integer", + "description": "Number of Headless slots to be reserved at runtime", + "format": "int32" + }, + "TestAutomationSlots": { + "type": "integer", + "description": "Number of TestAutomation slots to be reserved at runtime", + "format": "int32" + }, + "AutomationCloudSlots": { + "type": "integer", + "description": "Number of AutomationCloud slots to be reserved at runtime", + "format": "int32" + }, + "AutomationCloudTestAutomationSlots": { + "type": "integer", + "description": "Number of AutomationCloudTestAutomation slots to be reserved at runtime", + "format": "int32" + }, + "Key": { + "type": "string", + "description": "An immutable unique identifier that is preserved during tenant migration", + "format": "uuid" + }, + "EndpointDetectionStatus": { + "type": "string", + "description": "The EDR protection status of the connected hosts.", + "enum": [ + "NotAvailable", + "Mixed", + "Enabled" + ], + "x-ms-enum": { + "name": "MachineDtoEndpointDetectionStatus", + "modelAsString": false + } + }, + "RobotVersions": { + "type": "array", + "description": "The versions of the Robots hosted on the Machine.", + "items": { + "$ref": "#/components/schemas/MachinesRobotVersionDto" + } + }, + "RobotUsers": { + "type": "array", + "description": "Robots assigned to template machine.", + "items": { + "$ref": "#/components/schemas/RobotUserDto" + } + }, + "AutomationType": { + "type": "string", + "description": "The automation type the machine supports.", + "enum": [ + "Any", + "Foreground", + "Background" + ], + "x-ms-enum": { + "name": "MachineDtoAutomationType", + "modelAsString": false + } + }, + "TargetFramework": { + "type": "string", + "description": "The target frameworks the machine supports.", + "enum": [ + "Any", + "Windows", + "Portable" + ], + "x-ms-enum": { + "name": "MachineDtoTargetFramework", + "modelAsString": false + } + }, + "UpdatePolicy": { + "$ref": "#/components/schemas/UpdatePolicyDto" + }, + "ClientSecret": { + "type": "string", + "description": "Client secret generated by Identity Server\r\nUse in combination with LicenseKey (ClientId) to connect robot" + }, + "Tags": { + "type": "array", + "items": { + "$ref": "#/components/schemas/TagDto" + } + }, + "MaintenanceWindow": { + "$ref": "#/components/schemas/MaintenanceWindowDto" + }, + "VpnSettings": { + "$ref": "#/components/schemas/MachineVpnSettingsDto" + }, + "Id": { + "type": "integer", + "format": "int64" + } + }, + "description": "The Machine that hosts the Robot" + }, + "MachineFolderDto": { + "properties": { + "IsAssignedToFolder": { + "type": "boolean" + }, + "HasMachineRobots": { + "type": "boolean" + }, + "IsInherited": { + "type": "boolean" + }, + "PropagateToSubFolders": { + "type": "boolean" + }, + "InheritedFromFolderName": { + "type": "string" + }, + "UpdateInfo": { + "$ref": "#/components/schemas/UpdateInfoDto" + } + }, + "allOf": [ + { + "$ref": "#/components/schemas/MachineDto" + } + ] + }, + "MachineRobotDto": { + "type": "object", + "properties": { + "MachineId": { + "type": "integer", + "description": "The Id of the Machine.", + "format": "int64" + }, + "MachineName": { + "type": "string", + "description": "The name of the Machine." + }, + "RobotId": { + "type": "integer", + "description": "The Id of the Robot.", + "format": "int64" + }, + "RobotUserName": { + "type": "string", + "description": "The robot user name." + } + } + }, + "MachineRobotSessionDto": { + "type": "object", + "properties": { + "MachineId": { + "type": "integer", + "format": "int64" + }, + "MachineName": { + "type": "string" + }, + "RobotId": { + "type": "integer", + "format": "int64" + }, + "RobotUserName": { + "type": "string" + }, + "SessionId": { + "type": "integer", + "format": "int64" + }, + "SessionName": { + "type": "string" + } + } + }, + "MachineRuntimeDto": { + "type": "object", + "properties": { + "Type": { + "type": "string", + "enum": [ + "NonProduction", + "Attended", + "Unattended", + "Development", + "Studio", + "RpaDeveloper", + "StudioX", + "CitizenDeveloper", + "Headless", + "StudioPro", + "RpaDeveloperPro", + "TestAutomation", + "AutomationCloud", + "Serverless", + "AutomationKit", + "ServerlessTestAutomation", + "AutomationCloudTestAutomation", + "AttendedStudioWeb" + ], + "x-ms-enum": { + "name": "MachineRuntimeDtoType", + "modelAsString": false + } + }, + "Total": { + "type": "integer", + "format": "int64" + }, + "Connected": { + "type": "integer", + "format": "int64" + }, + "Available": { + "type": "integer", + "format": "int64" + } + } + }, + "MachineSessionDto": { + "type": "object", + "properties": { + "ServiceUserName": { + "type": "string" + }, + "Robot": { + "$ref": "#/components/schemas/RobotWithLicenseDto" + }, + "HostMachineName": { + "type": "string", + "description": "The name of the machine a Robot is hosted on." + }, + "MachineId": { + "type": "integer", + "description": "The Id of the Machine.", + "format": "int64" + }, + "MachineName": { + "type": "string", + "description": "The Machine's name." + }, + "State": { + "type": "string", + "description": "The value of the last reported status.", + "enum": [ + "Available", + "Busy", + "Disconnected", + "Unknown" + ], + "x-ms-enum": { + "name": "SessionDtoState", + "modelAsString": false + } + }, + "Job": { + "$ref": "#/components/schemas/JobDto" + }, + "ReportingTime": { + "type": "string", + "description": "The date and time when the last heartbeat came.", + "format": "date-time" + }, + "Info": { + "type": "string", + "description": "May store additional information about the robot state." + }, + "IsUnresponsive": { + "type": "boolean", + "description": "If the robot did not report status for longer than 120 seconds." + }, + "LicenseErrorCode": { + "type": "string", + "description": "DEPRECATED. Last licensing error status.", + "enum": [ + "NoLicense", + "LicenseExpired", + "LicenseUnregistered", + "NoAvailableLicenses", + "NotEnoughAvailableSlots", + "NotEnoughRuntimeLicenses", + "LicenseIsAlreadyInUse", + "InvalidRequest", + "SlotsExceedLicenseLimit", + "RuntimeDisabled", + "ExternalNotSupported", + "UsageExceedsLicenseLimit", + "LicenseNotCompatible" + ], + "x-ms-enum": { + "name": "SessionDtoLicenseErrorCode", + "modelAsString": false + }, + "x-deprecated": true + }, + "OrganizationUnitId": { + "type": "integer", + "description": "The folder Id.", + "format": "int64" + }, + "FolderName": { + "type": "string", + "description": "The folder display name." + }, + "RobotSessionType": { + "type": "string", + "description": "The robot session type.", + "enum": [ + "LongLived", + "Ephemeral" + ], + "x-ms-enum": { + "name": "SessionDtoRobotSessionType", + "modelAsString": false + } + }, + "Version": { + "type": "string" + }, + "Source": { + "type": "string", + "enum": [ + "Assistant", + "StudioWeb", + "StudioDesktop" + ], + "x-ms-enum": { + "name": "SessionDtoSource", + "modelAsString": false + } + }, + "DebugModeExpirationDate": { + "type": "string", + "format": "date-time" + }, + "UpdateInfo": { + "$ref": "#/components/schemas/UpdateInfoDto" + }, + "InstallationId": { + "type": "string", + "format": "uuid" + }, + "Platform": { + "type": "string", + "enum": [ + "Unknown", + "Windows", + "Linux", + "OSX" + ], + "x-ms-enum": { + "name": "SessionDtoPlatform", + "modelAsString": false + } + }, + "EndpointDetection": { + "type": "string" + }, + "Id": { + "type": "integer", + "format": "int64" + } + } + }, + "MachineSessionRuntimeDto": { + "type": "object", + "properties": { + "SessionId": { + "type": "integer", + "format": "int64" + }, + "MachineId": { + "type": "integer", + "format": "int64" + }, + "MachineName": { + "type": "string" + }, + "MaintenanceMode": { + "type": "string", + "enum": [ + "Default", + "Enabled" + ], + "x-ms-enum": { + "name": "MachineSessionRuntimeDtoMaintenanceMode", + "modelAsString": false + } + }, + "HostMachineName": { + "type": "string" + }, + "RuntimeType": { + "type": "string", + "enum": [ + "NonProduction", + "Attended", + "Unattended", + "Development", + "Studio", + "RpaDeveloper", + "StudioX", + "CitizenDeveloper", + "Headless", + "StudioPro", + "RpaDeveloperPro", + "TestAutomation", + "AutomationCloud", + "Serverless", + "AutomationKit", + "ServerlessTestAutomation", + "AutomationCloudTestAutomation", + "AttendedStudioWeb" + ], + "x-ms-enum": { + "name": "MachineSessionRuntimeDtoRuntimeType", + "modelAsString": false + } + }, + "MachineType": { + "type": "string", + "enum": [ + "Standard", + "Template" + ], + "x-ms-enum": { + "name": "MachineSessionRuntimeDtoMachineType", + "modelAsString": false + } + }, + "MachineScope": { + "type": "string", + "enum": [ + "Default", + "Shared", + "PersonalWorkspace", + "Cloud", + "Serverless" + ], + "x-ms-enum": { + "name": "MachineSessionRuntimeDtoMachineScope", + "modelAsString": false + } + }, + "Status": { + "type": "string", + "enum": [ + "Available", + "Busy", + "Disconnected", + "Unknown" + ], + "x-ms-enum": { + "name": "MachineSessionRuntimeDtoStatus", + "modelAsString": false + } + }, + "IsUnresponsive": { + "type": "boolean" + }, + "Runtimes": { + "type": "integer", + "format": "int64" + }, + "UsedRuntimes": { + "type": "integer", + "format": "int64" + }, + "ServiceUserName": { + "type": "string" + }, + "ReportingTime": { + "type": "string", + "format": "date-time" + }, + "Version": { + "type": "string" + }, + "DebugModeExpirationDate": { + "type": "string", + "format": "date-time" + }, + "Platform": { + "type": "string", + "enum": [ + "Unknown", + "Windows", + "Linux", + "OSX" + ], + "x-ms-enum": { + "name": "MachineSessionRuntimeDtoPlatform", + "modelAsString": false + } + }, + "EndpointDetection": { + "type": "string" + }, + "TriggersCount": { + "type": "integer", + "format": "int32" + } + } + }, + "MachineVpnSettingsDto": { + "type": "object", + "properties": { + "cidr": { + "type": "string" + } + } + }, + "MachinesFolderAssociationsDto": { + "type": "object", + "properties": { + "FolderId": { + "type": "integer", + "format": "int64" + }, + "AddedMachineIds": { + "type": "array", + "items": { + "type": "integer", + "format": "int64" + } + }, + "RemovedMachineIds": { + "type": "array", + "items": { + "type": "integer", + "format": "int64" + } + } + } + }, + "MachinesRobotVersionDto": { + "type": "object", + "properties": { + "Count": { + "type": "integer", + "description": "The number of Robots on the Machine with the specified version.", + "format": "int64" + }, + "Version": { + "type": "string", + "description": "The Version of the Robot hosted on the Machine." + }, + "MachineId": { + "type": "integer", + "description": "The Id of the Machine.", + "format": "int64" + } + } + }, + "MaintenanceSetting": { + "type": "object", + "properties": { + "state": { + "type": "string", + "enum": [ + "None", + "Draining", + "Suspended" + ], + "x-ms-enum": { + "name": "MaintenanceSettingState", + "modelAsString": false + } + }, + "maintenanceLogs": { + "type": "array", + "readOnly": true, + "items": { + "$ref": "#/components/schemas/MaintenanceStateLog" + } + }, + "jobStopsAttempted": { + "type": "integer", + "format": "int32" + }, + "jobKillsAttempted": { + "type": "integer", + "format": "int32" + }, + "triggersSkipped": { + "type": "integer", + "format": "int32" + }, + "systemTriggersSkipped": { + "type": "integer", + "format": "int32" + } + } + }, + "MaintenanceStateLog": { + "type": "object", + "properties": { + "state": { + "type": "string", + "enum": [ + "None", + "Draining", + "Suspended" + ], + "x-ms-enum": { + "name": "MaintenanceStateLogState", + "modelAsString": false + } + }, + "timeStamp": { + "type": "string", + "format": "date-time" + } + } + }, + "MaintenanceWindowDto": { + "type": "object", + "properties": { + "enabled": { + "type": "boolean", + "description": "Whether the maintenance window is enabled" + }, + "jobStopStrategy": { + "type": "string", + "description": "The strategy for stopping jobs when the window begins", + "enum": [ + "None", + "Kill" + ], + "x-ms-enum": { + "name": "MaintenanceWindowDtoJobStopStrategy", + "modelAsString": false + } + }, + "cronExpression": { + "type": "string", + "description": "The recurrence pattern as a cron expression" + }, + "timezoneId": { + "type": "string", + "description": "The Timezone Id" + }, + "duration": { + "type": "integer", + "description": "The duration of the maintenance window in minutes", + "format": "int32" + }, + "nextExecutionTime": { + "type": "string", + "description": "The next execution time of the maintenance window", + "format": "date-time" + } + }, + "description": "Represents a maintenance window for a cloud machine" + }, + "MoveFolderMachineChange": { + "type": "object", + "properties": { + "MachineId": { + "type": "integer", + "format": "int64" + }, + "MachineName": { + "type": "string" + }, + "OldMachineFolderState": { + "type": "string", + "enum": [ + "Unknown", + "NotAssigned", + "Assigned", + "Inherited", + "EroAcrError", + "ServerlessError" + ], + "x-ms-enum": { + "name": "MoveFolderMachineChangeOldMachineFolderState", + "modelAsString": false + } + }, + "NewMachineFolderState": { + "type": "string", + "enum": [ + "Unknown", + "NotAssigned", + "Assigned", + "Inherited", + "EroAcrError", + "ServerlessError" + ], + "x-ms-enum": { + "name": "MoveFolderMachineChangeNewMachineFolderState", + "modelAsString": false + } + } + } + }, + "NameValueDto": { + "type": "object", + "properties": { + "Name": { + "type": "string" + }, + "Value": { + "type": "string" + } + } + }, + "ODataValueOfBoolean": { + "type": "object", + "properties": { + "value": { + "type": "boolean" + } + } + }, + "ODataValueOfIDictionaryOfInt64Boolean": { + "type": "object", + "properties": { + "value": { + "type": "object", + "additionalProperties": { + "type": "boolean" + } + } + } + }, + "ODataValueOfIEnumerableOfAlertDto": { + "type": "object", + "properties": { + "value": { + "type": "array", + "items": { + "$ref": "#/components/schemas/AlertDto" + } + } + } + }, + "ODataValueOfIEnumerableOfAssetDto": { + "type": "object", + "properties": { + "value": { + "type": "array", + "items": { + "$ref": "#/components/schemas/AssetDto" + } + } + } + }, + "ODataValueOfIEnumerableOfAuditLogDto": { + "type": "object", + "properties": { + "value": { + "type": "array", + "items": { + "$ref": "#/components/schemas/AuditLogDto" + } + } + } + }, + "ODataValueOfIEnumerableOfAuditLogEntityDto": { + "type": "object", + "properties": { + "value": { + "type": "array", + "items": { + "$ref": "#/components/schemas/AuditLogEntityDto" + } + } + } + }, + "ODataValueOfIEnumerableOfBlobFileDto": { + "type": "object", + "properties": { + "value": { + "type": "array", + "items": { + "$ref": "#/components/schemas/BlobFileDto" + } + } + } + }, + "ODataValueOfIEnumerableOfBucketDto": { + "type": "object", + "properties": { + "value": { + "type": "array", + "items": { + "$ref": "#/components/schemas/BucketDto" + } + } + } + }, + "ODataValueOfIEnumerableOfBulkItemDtoOfString": { + "type": "object", + "properties": { + "value": { + "type": "array", + "items": { + "$ref": "#/components/schemas/BulkItemDtoOfString" + } + } + } + }, + "ODataValueOfIEnumerableOfConfigurationEntry": { + "type": "object", + "properties": { + "value": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ConfigurationEntry" + } + } + } + }, + "ODataValueOfIEnumerableOfCredentialStoreDto": { + "type": "object", + "properties": { + "value": { + "type": "array", + "items": { + "$ref": "#/components/schemas/CredentialStoreDto" + } + } + } + }, + "ODataValueOfIEnumerableOfCredentialStoreResourceDto": { + "type": "object", + "properties": { + "value": { + "type": "array", + "items": { + "$ref": "#/components/schemas/CredentialStoreResourceDto" + } + } + } + }, + "ODataValueOfIEnumerableOfCredentialsProxyResourceDto": { + "type": "object", + "properties": { + "value": { + "type": "array", + "items": { + "$ref": "#/components/schemas/CredentialsProxyResourceDto" + } + } + } + }, + "ODataValueOfIEnumerableOfEnvironmentDto": { + "type": "object", + "properties": { + "value": { + "type": "array", + "items": { + "$ref": "#/components/schemas/EnvironmentDto" + } + } + } + }, + "ODataValueOfIEnumerableOfExecutionMediaDto": { + "type": "object", + "properties": { + "value": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ExecutionMediaDto" + } + } + } + }, + "ODataValueOfIEnumerableOfExtendedCalendarDto": { + "type": "object", + "properties": { + "value": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ExtendedCalendarDto" + } + } + } + }, + "ODataValueOfIEnumerableOfExtendedMachineDto": { + "type": "object", + "properties": { + "value": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ExtendedMachineDto" + } + } + } + }, + "ODataValueOfIEnumerableOfExtendedRobotDto": { + "type": "object", + "properties": { + "value": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ExtendedRobotDto" + } + } + } + }, + "ODataValueOfIEnumerableOfFolderDto": { + "type": "object", + "properties": { + "value": { + "type": "array", + "items": { + "$ref": "#/components/schemas/FolderDto" + } + } + } + }, + "ODataValueOfIEnumerableOfHostLicenseDto": { + "type": "object", + "properties": { + "value": { + "type": "array", + "items": { + "$ref": "#/components/schemas/HostLicenseDto" + } + } + } + }, + "ODataValueOfIEnumerableOfInt64": { + "type": "object", + "properties": { + "value": { + "type": "array", + "items": { + "type": "integer", + "format": "int64" + } + } + } + }, + "ODataValueOfIEnumerableOfJobDto": { + "type": "object", + "properties": { + "value": { + "type": "array", + "items": { + "$ref": "#/components/schemas/JobDto" + } + } + } + }, + "ODataValueOfIEnumerableOfJobTriggerDto": { + "type": "object", + "properties": { + "value": { + "type": "array", + "items": { + "$ref": "#/components/schemas/JobTriggerDto" + } + } + } + }, + "ODataValueOfIEnumerableOfJobTriggerWithWaitEventsDto": { + "type": "object", + "properties": { + "value": { + "type": "array", + "items": { + "$ref": "#/components/schemas/JobTriggerWithWaitEventsDto" + } + } + } + }, + "ODataValueOfIEnumerableOfKeyValuePairOfStringString": { + "type": "object", + "properties": { + "value": { + "type": "array", + "items": { + "$ref": "#/components/schemas/KeyValuePairOfStringString" + } + } + } + }, + "ODataValueOfIEnumerableOfLibraryDto": { + "type": "object", + "properties": { + "value": { + "type": "array", + "items": { + "$ref": "#/components/schemas/LibraryDto" + } + } + } + }, + "ODataValueOfIEnumerableOfLicenseNamedUserDto": { + "type": "object", + "properties": { + "value": { + "type": "array", + "items": { + "$ref": "#/components/schemas/LicenseNamedUserDto" + } + } + } + }, + "ODataValueOfIEnumerableOfLicenseRuntimeDto": { + "type": "object", + "properties": { + "value": { + "type": "array", + "items": { + "$ref": "#/components/schemas/LicenseRuntimeDto" + } + } + } + }, + "ODataValueOfIEnumerableOfLogDto": { + "type": "object", + "properties": { + "value": { + "type": "array", + "items": { + "$ref": "#/components/schemas/LogDto" + } + } + } + }, + "ODataValueOfIEnumerableOfMachineDto": { + "type": "object", + "properties": { + "value": { + "type": "array", + "items": { + "$ref": "#/components/schemas/MachineDto" + } + } + } + }, + "ODataValueOfIEnumerableOfMachineFolderDto": { + "type": "object", + "properties": { + "value": { + "type": "array", + "items": { + "$ref": "#/components/schemas/MachineFolderDto" + } + } + } + }, + "ODataValueOfIEnumerableOfMachineRuntimeDto": { + "type": "object", + "properties": { + "value": { + "type": "array", + "items": { + "$ref": "#/components/schemas/MachineRuntimeDto" + } + } + } + }, + "ODataValueOfIEnumerableOfMachineSessionDto": { + "type": "object", + "properties": { + "value": { + "type": "array", + "items": { + "$ref": "#/components/schemas/MachineSessionDto" + } + } + } + }, + "ODataValueOfIEnumerableOfMachineSessionRuntimeDto": { + "type": "object", + "properties": { + "value": { + "type": "array", + "items": { + "$ref": "#/components/schemas/MachineSessionRuntimeDto" + } + } + } + }, + "ODataValueOfIEnumerableOfMoveFolderMachineChange": { + "type": "object", + "properties": { + "value": { + "type": "array", + "items": { + "$ref": "#/components/schemas/MoveFolderMachineChange" + } + } + } + }, + "ODataValueOfIEnumerableOfOrganizationUnitDto": { + "type": "object", + "properties": { + "value": { + "type": "array", + "items": { + "$ref": "#/components/schemas/OrganizationUnitDto" + } + } + } + }, + "ODataValueOfIEnumerableOfPermissionDto": { + "type": "object", + "properties": { + "value": { + "type": "array", + "items": { + "$ref": "#/components/schemas/PermissionDto" + } + } + } + }, + "ODataValueOfIEnumerableOfPersonalWorkspaceDto": { + "type": "object", + "properties": { + "value": { + "type": "array", + "items": { + "$ref": "#/components/schemas/PersonalWorkspaceDto" + } + } + } + }, + "ODataValueOfIEnumerableOfProcessDto": { + "type": "object", + "properties": { + "value": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ProcessDto" + } + } + } + }, + "ODataValueOfIEnumerableOfProcessScheduleDto": { + "type": "object", + "properties": { + "value": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ProcessScheduleDto" + } + } + } + }, + "ODataValueOfIEnumerableOfQueueDefinitionDto": { + "type": "object", + "properties": { + "value": { + "type": "array", + "items": { + "$ref": "#/components/schemas/QueueDefinitionDto" + } + } + } + }, + "ODataValueOfIEnumerableOfQueueItemCommentDto": { + "type": "object", + "properties": { + "value": { + "type": "array", + "items": { + "$ref": "#/components/schemas/QueueItemCommentDto" + } + } + } + }, + "ODataValueOfIEnumerableOfQueueItemDto": { + "type": "object", + "properties": { + "value": { + "type": "array", + "items": { + "$ref": "#/components/schemas/QueueItemDto" + } + } + } + }, + "ODataValueOfIEnumerableOfQueueItemEventDto": { + "type": "object", + "properties": { + "value": { + "type": "array", + "items": { + "$ref": "#/components/schemas/QueueItemEventDto" + } + } + } + }, + "ODataValueOfIEnumerableOfQueueProcessingRecordDto": { + "type": "object", + "properties": { + "value": { + "type": "array", + "items": { + "$ref": "#/components/schemas/QueueProcessingRecordDto" + } + } + } + }, + "ODataValueOfIEnumerableOfQueueProcessingStatusDto": { + "type": "object", + "properties": { + "value": { + "type": "array", + "items": { + "$ref": "#/components/schemas/QueueProcessingStatusDto" + } + } + } + }, + "ODataValueOfIEnumerableOfQueueRetentionSettingDto": { + "type": "object", + "properties": { + "value": { + "type": "array", + "items": { + "$ref": "#/components/schemas/QueueRetentionSettingDto" + } + } + } + }, + "ODataValueOfIEnumerableOfReleaseDto": { + "type": "object", + "properties": { + "value": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ReleaseDto" + } + } + } + }, + "ODataValueOfIEnumerableOfReleaseRetentionSettingDto": { + "type": "object", + "properties": { + "value": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ReleaseRetentionSettingDto" + } + } + } + }, + "ODataValueOfIEnumerableOfRobotDto": { + "type": "object", + "properties": { + "value": { + "type": "array", + "items": { + "$ref": "#/components/schemas/RobotDto" + } + } + } + }, + "ODataValueOfIEnumerableOfRobotsFromFolderModel": { + "type": "object", + "properties": { + "value": { + "type": "array", + "items": { + "$ref": "#/components/schemas/RobotsFromFolderModel" + } + } + } + }, + "ODataValueOfIEnumerableOfRoleDto": { + "type": "object", + "properties": { + "value": { + "type": "array", + "items": { + "$ref": "#/components/schemas/RoleDto" + } + } + } + }, + "ODataValueOfIEnumerableOfSessionDto": { + "type": "object", + "properties": { + "value": { + "type": "array", + "items": { + "$ref": "#/components/schemas/SessionDto" + } + } + } + }, + "ODataValueOfIEnumerableOfSettingsDto": { + "type": "object", + "properties": { + "value": { + "type": "array", + "items": { + "$ref": "#/components/schemas/SettingsDto" + } + } + } + }, + "ODataValueOfIEnumerableOfSimpleUserDto": { + "type": "object", + "properties": { + "value": { + "type": "array", + "items": { + "$ref": "#/components/schemas/SimpleUserDto" + } + } + } + }, + "ODataValueOfIEnumerableOfString": { + "type": "object", + "properties": { + "value": { + "type": "array", + "items": { + "type": "string" + } + } + } + }, + "ODataValueOfIEnumerableOfTaskActivityDto": { + "type": "object", + "properties": { + "value": { + "type": "array", + "items": { + "$ref": "#/components/schemas/TaskActivityDto" + } + } + } + }, + "ODataValueOfIEnumerableOfTaskCatalogDto": { + "type": "object", + "properties": { + "value": { + "type": "array", + "items": { + "$ref": "#/components/schemas/TaskCatalogDto" + } + } + } + }, + "ODataValueOfIEnumerableOfTaskDefinitionDto": { + "type": "object", + "properties": { + "value": { + "type": "array", + "items": { + "$ref": "#/components/schemas/TaskDefinitionDto" + } + } + } + }, + "ODataValueOfIEnumerableOfTaskDto": { + "type": "object", + "properties": { + "value": { + "type": "array", + "items": { + "$ref": "#/components/schemas/TaskDto" + } + } + } + }, + "ODataValueOfIEnumerableOfTaskNoteDto": { + "type": "object", + "properties": { + "value": { + "type": "array", + "items": { + "$ref": "#/components/schemas/TaskNoteDto" + } + } + } + }, + "ODataValueOfIEnumerableOfTaskOperationErrorResponse": { + "type": "object", + "properties": { + "value": { + "type": "array", + "items": { + "$ref": "#/components/schemas/TaskOperationErrorResponse" + } + } + } + }, + "ODataValueOfIEnumerableOfTenantDto": { + "type": "object", + "properties": { + "value": { + "type": "array", + "items": { + "$ref": "#/components/schemas/TenantDto" + } + } + } + }, + "ODataValueOfIEnumerableOfTestCaseDefinitionDto": { + "type": "object", + "properties": { + "value": { + "type": "array", + "items": { + "$ref": "#/components/schemas/TestCaseDefinitionDto" + } + } + } + }, + "ODataValueOfIEnumerableOfTestCaseExecutionDto": { + "type": "object", + "properties": { + "value": { + "type": "array", + "items": { + "$ref": "#/components/schemas/TestCaseExecutionDto" + } + } + } + }, + "ODataValueOfIEnumerableOfTestDataQueueDto": { + "type": "object", + "properties": { + "value": { + "type": "array", + "items": { + "$ref": "#/components/schemas/TestDataQueueDto" + } + } + } + }, + "ODataValueOfIEnumerableOfTestDataQueueItemODataDto": { + "type": "object", + "properties": { + "value": { + "type": "array", + "items": { + "$ref": "#/components/schemas/TestDataQueueItemODataDto" + } + } + } + }, + "ODataValueOfIEnumerableOfTestSetDto": { + "type": "object", + "properties": { + "value": { + "type": "array", + "items": { + "$ref": "#/components/schemas/TestSetDto" + } + } + } + }, + "ODataValueOfIEnumerableOfTestSetExecutionDto": { + "type": "object", + "properties": { + "value": { + "type": "array", + "items": { + "$ref": "#/components/schemas/TestSetExecutionDto" + } + } + } + }, + "ODataValueOfIEnumerableOfTestSetScheduleDto": { + "type": "object", + "properties": { + "value": { + "type": "array", + "items": { + "$ref": "#/components/schemas/TestSetScheduleDto" + } + } + } + }, + "ODataValueOfIEnumerableOfUserDto": { + "type": "object", + "properties": { + "value": { + "type": "array", + "items": { + "$ref": "#/components/schemas/UserDto" + } + } + } + }, + "ODataValueOfIEnumerableOfUserLoginInfoDto": { + "type": "object", + "properties": { + "value": { + "type": "array", + "items": { + "$ref": "#/components/schemas/UserLoginInfoDto" + } + } + } + }, + "ODataValueOfIEnumerableOfUserRolesDto": { + "type": "object", + "properties": { + "value": { + "type": "array", + "items": { + "$ref": "#/components/schemas/UserRolesDto" + } + } + } + }, + "ODataValueOfIEnumerableOfWebhookDto": { + "type": "object", + "properties": { + "value": { + "type": "array", + "items": { + "$ref": "#/components/schemas/WebhookDto" + } + } + } + }, + "ODataValueOfIEnumerableOfWebhookEventTypeDto": { + "type": "object", + "properties": { + "value": { + "type": "array", + "items": { + "$ref": "#/components/schemas/WebhookEventTypeDto" + } + } + } + }, + "ODataValueOfInt64": { + "type": "object", + "properties": { + "value": { + "type": "integer", + "format": "int64" + } + } + }, + "ODataValueOfString": { + "type": "object", + "properties": { + "value": { + "type": "string" + } + } + }, + "OrganizationUnitDto": { + "required": [ + "DisplayName" + ], + "type": "object", + "properties": { + "DisplayName": { + "maxLength": 128, + "minLength": 1, + "type": "string", + "description": "The name of the organization unit." + }, + "Id": { + "type": "integer", + "format": "int64" + } + }, + "description": "Stores information about an organization unit in Orchestrator.\r\n An orchestrator unit can be understood as a company department and it is used to group different entities." + }, + "PackageDeletedEvent": { + "type": "object", + "properties": { + "key": { + "type": "string", + "format": "uuid" + }, + "name": { + "type": "string" + }, + "version": { + "type": "string" + }, + "feedId": { + "type": "string", + "format": "uuid" + }, + "eventTime": { + "type": "string", + "format": "date-time" + }, + "eventSource": { + "type": "object" + } + } + }, + "PackageUploadedEvent": { + "type": "object", + "properties": { + "key": { + "type": "string", + "format": "uuid" + }, + "name": { + "type": "string" + }, + "version": { + "type": "string" + }, + "feedId": { + "type": "string", + "format": "uuid" + }, + "type": { + "type": "string", + "enum": [ + "Undefined", + "Processes", + "Libraries", + "PersonalWorkspace", + "FolderHierarchy" + ], + "x-ms-enum": { + "name": "PackageUploadedEventType", + "modelAsString": false + } + }, + "description": { + "type": "string" + }, + "folderKey": { + "type": "string", + "format": "uuid" + }, + "tags": { + "type": "array", + "items": { + "$ref": "#/components/schemas/TagDto" + } + }, + "eventTime": { + "type": "string", + "format": "date-time" + }, + "eventSource": { + "type": "object" + } + } + }, + "PageResultDtoOfFolderDto": { + "type": "object", + "properties": { + "PageItems": { + "type": "array", + "items": { + "$ref": "#/components/schemas/FolderDto" + } + }, + "Count": { + "type": "integer", + "format": "int32" + } + } + }, + "PermissionDto": { + "type": "object", + "properties": { + "Name": { + "type": "string", + "description": "The name of the application permission." + }, + "IsGranted": { + "type": "boolean", + "description": "States if a user associated with the role will be allowed or denied to perform the actions governed by the permission." + }, + "RoleId": { + "type": "integer", + "description": "The Id of the role associated with the permission.", + "format": "int32" + }, + "Scope": { + "type": "string", + "description": "The application scope in which the permission will be applied", + "enum": [ + "Global", + "Folder", + "GlobalOrFolder" + ], + "x-ms-enum": { + "name": "PermissionDtoScope", + "modelAsString": false + } + }, + "Id": { + "type": "integer", + "format": "int64" + } + }, + "description": "Stores information about an application permission and role association." + }, + "PersonalWorkspaceDto": { + "type": "object", + "properties": { + "Key": { + "type": "string", + "format": "uuid" + }, + "Name": { + "type": "string" + }, + "IsActive": { + "type": "boolean" + }, + "OwnerId": { + "type": "integer", + "format": "int64" + }, + "OwnerName": { + "type": "string" + }, + "LastLogin": { + "type": "string", + "format": "date-time" + }, + "ExploringUserIds": { + "type": "array", + "items": { + "type": "integer", + "format": "int64" + } + }, + "Id": { + "type": "integer", + "format": "int64" + } + } + }, + "PersonalWorkspacesConvertToFolderRequest": { + "required": [ + "folderName" + ], + "type": "object", + "properties": { + "folderName": { + "minLength": 1, + "type": "string" + } + } + }, + "PingEventDto": { + "required": [ + "EventId", + "Timestamp", + "Type" + ], + "type": "object", + "properties": { + "Type": { + "minLength": 1, + "type": "string" + }, + "EventId": { + "maxLength": 50, + "minLength": 0, + "type": "string" + }, + "EntityKey": { + "type": "string", + "format": "uuid" + }, + "Timestamp": { + "type": "string", + "format": "date-time" + }, + "EventTime": { + "type": "string", + "format": "date-time" + }, + "EventSourceId": { + "type": "integer", + "format": "int64", + "readOnly": true + }, + "TenantId": { + "type": "integer", + "format": "int32" + }, + "OrganizationUnitId": { + "type": "integer", + "format": "int64" + }, + "OrganizationUnitKey": { + "type": "string", + "format": "uuid" + }, + "UserId": { + "type": "integer", + "format": "int64" + } + }, + "description": "This event is triggered immediately after a webhook was created or updated to test the availability of destination URl", + "x-webhook-event": "ping" + }, + "ProcessAlertDto": { + "required": [ + "Message", + "ProcessName", + "RobotName", + "Severity" + ], + "type": "object", + "properties": { + "Message": { + "maxLength": 512, + "minLength": 0, + "type": "string" + }, + "Severity": { + "type": "string", + "enum": [ + "Info", + "Success", + "Warn", + "Error", + "Fatal" + ], + "x-ms-enum": { + "name": "ProcessAlertDtoSeverity", + "modelAsString": false + } + }, + "RobotName": { + "maxLength": 512, + "minLength": 0, + "type": "string" + }, + "ProcessName": { + "maxLength": 512, + "minLength": 0, + "type": "string" + }, + "Id": { + "type": "string", + "format": "uuid" + } + } + }, + "ProcessDto": { + "type": "object", + "properties": { + "IsActive": { + "type": "boolean", + "description": "Specifies if the process is still active." + }, + "Arguments": { + "$ref": "#/components/schemas/ArgumentMetadata" + }, + "SupportsMultipleEntryPoints": { + "type": "boolean", + "description": "Specifies if the process has multiple entry points." + }, + "MainEntryPointPath": { + "type": "string", + "description": "The main entry point path." + }, + "RequiresUserInteraction": { + "type": "boolean", + "description": "Specifies if the process can run in headless mode." + }, + "IsAttended": { + "type": "boolean" + }, + "TargetFramework": { + "type": "string", + "enum": [ + "Legacy", + "Windows", + "Portable" + ], + "x-ms-enum": { + "name": "ProcessDtoTargetFramework", + "modelAsString": false + } + }, + "EntryPoints": { + "type": "array", + "description": "Entry points.", + "items": { + "$ref": "#/components/schemas/EntryPointDto" + } + }, + "Title": { + "type": "string", + "description": "The custom name of the package." + }, + "Version": { + "type": "string", + "description": "The current version of the given package." + }, + "Key": { + "type": "string", + "description": "The unique identifier for the package." + }, + "Description": { + "type": "string", + "description": "Used to add additional information about a package in order to better identify it." + }, + "Published": { + "type": "string", + "description": "The date and time when the package was published or uploaded.", + "format": "date-time" + }, + "IsLatestVersion": { + "type": "boolean", + "description": "Specifies whether the current version is the latest of the given package." + }, + "OldVersion": { + "type": "string", + "description": "Specifies the last version before the current one." + }, + "ReleaseNotes": { + "type": "string", + "description": "Package release notes." + }, + "Authors": { + "type": "string", + "description": "Package authors." + }, + "ProjectType": { + "type": "string", + "description": "Package project type.", + "enum": [ + "Undefined", + "Process", + "ProcessLibrary", + "BusinessProcess", + "BusinessProcessLibrary", + "TestAutomationProcess" + ], + "x-ms-enum": { + "name": "PackageDtoProjectType", + "modelAsString": false + } + }, + "Tags": { + "type": "string", + "description": "Package tags." + }, + "IsCompiled": { + "type": "boolean", + "description": "Disable explore packages for compiled processes" + }, + "LicenseUrl": { + "type": "string", + "description": "License URL" + }, + "ProjectUrl": { + "type": "string", + "description": "Project URL" + }, + "ResourceTags": { + "type": "array", + "description": "Tags set up by orchestrator", + "items": { + "$ref": "#/components/schemas/TagDto" + } + }, + "Id": { + "type": "string" + } + }, + "description": "A process is a project defined in UiPath Studio and published in Orchestrator from UiPath Studio or manually." + }, + "ProcessScheduleDto": { + "required": [ + "Name", + "TimeZoneId" + ], + "type": "object", + "properties": { + "Key": { + "type": "string", + "description": "The Key of the process schedule.", + "format": "uuid" + }, + "Enabled": { + "type": "boolean", + "description": "Specifies if the schedule is active or not." + }, + "Name": { + "maxLength": 255, + "minLength": 1, + "type": "string", + "description": "The name of the schedule." + }, + "ReleaseId": { + "type": "integer", + "description": "The Id of the process associated with the schedule.", + "format": "int64" + }, + "ReleaseKey": { + "type": "string", + "description": "The unique key of the process associated with the schedule." + }, + "ReleaseName": { + "type": "string", + "description": "The name of the process associated with the schedule." + }, + "PackageName": { + "type": "string", + "description": "The name of the package to be triggered with the schedule." + }, + "EnvironmentName": { + "type": "string", + "description": "The name of the environment associated with the schedule." + }, + "EnvironmentId": { + "type": "string", + "description": "The Id of the environment associated with the schedule." + }, + "JobPriority": { + "type": "string", + "description": "The execution priority. If null, it will start jobs with the release's priority.", + "enum": [ + "Low", + "Normal", + "High" + ], + "x-ms-enum": { + "name": "ProcessScheduleDtoJobPriority", + "modelAsString": false + } + }, + "SpecificPriorityValue": { + "maximum": 100, + "minimum": 1, + "type": "integer", + "description": "Value for more granular control over execution priority.", + "format": "int32" + }, + "RuntimeType": { + "type": "string", + "description": "The runtime type of the robot", + "enum": [ + "NonProduction", + "Attended", + "Unattended", + "Development", + "Studio", + "RpaDeveloper", + "StudioX", + "CitizenDeveloper", + "Headless", + "StudioPro", + "RpaDeveloperPro", + "TestAutomation", + "AutomationCloud", + "Serverless", + "AutomationKit", + "ServerlessTestAutomation", + "AutomationCloudTestAutomation", + "AttendedStudioWeb" + ], + "x-ms-enum": { + "name": "ProcessScheduleDtoRuntimeType", + "modelAsString": false + } + }, + "StartProcessCron": { + "type": "string", + "description": "The start cron expression of the schedule." + }, + "StartProcessCronDetails": { + "type": "string", + "description": "Various details that can be associated to the time period expression of the schedule." + }, + "StartProcessCronSummary": { + "type": "string", + "description": "Human readable form of cron expression of the schedule." + }, + "StartProcessNextOccurrence": { + "type": "string", + "description": "The date and time when the associated process will be run next.", + "format": "date-time" + }, + "StartStrategy": { + "type": "integer", + "description": "States which robots from the environment are being run by the schedule.", + "format": "int32" + }, + "ExecutorRobots": { + "type": "array", + "description": "The collection of specific robots selected to be targeted by the current schedule. This collection must be empty if the start strategy is not 0 (specific robots).", + "items": { + "$ref": "#/components/schemas/RobotExecutorDto" + } + }, + "StopProcessExpression": { + "type": "string", + "description": "Number of seconds after which a running process will be stopped." + }, + "StopStrategy": { + "type": "string", + "description": "The way a running process is stopped.", + "enum": [ + "SoftStop", + "Kill" + ], + "x-ms-enum": { + "name": "ProcessScheduleDtoStopStrategy", + "modelAsString": false + } + }, + "KillProcessExpression": { + "type": "string", + "description": "Grace period (in seconds) for soft stop. If a process doesn't stop after this amount, it will be killed" + }, + "ExternalJobKey": { + "type": "string", + "description": "The unique identifier of the external job associated with the jobs generated by this schedule. A key is generated for each group of jobs triggered by this schedule." + }, + "ExternalJobKeyScheduler": { + "type": "string", + "description": "The unique identifier of the external background task schedule associated with the background tasks generated by this schedule. A key is generated for each batch of background tasks triggered by this schedule.", + "format": "uuid" + }, + "TimeZoneId": { + "maxLength": 80, + "minLength": 1, + "type": "string", + "description": "The timezone under which the schedule will run." + }, + "TimeZoneIana": { + "type": "string", + "description": "The timezone under which the schedule will run in Iana Standard." + }, + "UseCalendar": { + "type": "boolean", + "description": "DEPRECATED. Specify whether the schedule uses any calendar.", + "x-deprecated": true + }, + "CalendarId": { + "type": "integer", + "description": "The id of the calendar that a process schedule uses.", + "format": "int64" + }, + "CalendarName": { + "type": "string", + "description": "The name of the calendar." + }, + "StopProcessDate": { + "type": "string", + "format": "date-time" + }, + "InputArguments": { + "maxLength": 10000, + "type": "string", + "description": "Input parameters that will be passed to each job created by this schedule." + }, + "QueueDefinitionId": { + "type": "integer", + "description": "The Id of the queue that uses this schedule for activation (trigger jobs when new queue items are added)", + "format": "int64" + }, + "QueueDefinitionName": { + "type": "string", + "description": "The Name of the queue that uses this schedule for activation (trigger jobs when new queue items are added)" + }, + "ActivateOnJobComplete": { + "type": "boolean", + "description": "Flag for activating the queue trigger on each completed job." + }, + "ItemsActivationThreshold": { + "maximum": 10000, + "minimum": 1, + "type": "integer", + "description": "The minimum number of queue items that should trigger the process activation.", + "format": "int64" + }, + "ItemsPerJobActivationTarget": { + "maximum": 10000, + "minimum": 1, + "type": "integer", + "description": "The target ratio between the number of queue items and the Total number of jobs created by a process.", + "format": "int64" + }, + "MaxJobsForActivation": { + "maximum": 10000, + "minimum": 1, + "type": "integer", + "description": "The maximum number of jobs that a process can create as result of a Queue driven activation.", + "format": "int32" + }, + "ResumeOnSameContext": { + "type": "boolean", + "description": "Flag for honoring initial machine and robot choice upon resumption of created jobs, if jobs are suspended.
\r\nIf set, the jobs will resume on the same robot-machine pair on which they initially ran." + }, + "Description": { + "maxLength": 512, + "type": "string", + "description": "Description of process schedule." + }, + "MachineRobots": { + "type": "array", + "description": "The machine robots.", + "items": { + "$ref": "#/components/schemas/MachineRobotSessionDto" + } + }, + "Tags": { + "type": "array", + "items": { + "$ref": "#/components/schemas/TagDto" + } + }, + "AlertPendingExpression": { + "type": "string" + }, + "AlertRunningExpression": { + "type": "string" + }, + "RunAsMe": { + "type": "boolean" + }, + "ConsecutiveJobFailuresThreshold": { + "maximum": 100, + "minimum": 0, + "type": "integer", + "format": "int32" + }, + "JobFailuresGracePeriodInHours": { + "maximum": 720, + "minimum": 0, + "type": "integer", + "format": "int32" + }, + "IsConnected": { + "type": "boolean", + "description": "Whether this process trigger represents a connected trigger defined in package bindings" + }, + "Id": { + "type": "integer", + "format": "int64" + } + }, + "description": "Defines the schedule of a process that can be executed at regular intervals, on selected Robots, all of them or a specified number of Robots." + }, + "ProcessScheduleFailedEventDto": { + "required": [ + "EventId", + "Timestamp", + "Type" + ], + "type": "object", + "properties": { + "Type": { + "minLength": 1, + "type": "string" + }, + "EventId": { + "maxLength": 50, + "minLength": 0, + "type": "string" + }, + "EntityKey": { + "type": "string", + "format": "uuid" + }, + "Timestamp": { + "type": "string", + "format": "date-time" + }, + "ProcessSchedule": { + "$ref": "#/components/schemas/WrappedProcessScheduleDto" + }, + "Reason": { + "type": "string", + "readOnly": true + }, + "EventTime": { + "type": "string", + "format": "date-time" + }, + "EventSourceId": { + "type": "integer", + "format": "int64", + "readOnly": true + }, + "TenantId": { + "type": "integer", + "format": "int32" + }, + "OrganizationUnitId": { + "type": "integer", + "format": "int64" + }, + "OrganizationUnitKey": { + "type": "string", + "format": "uuid" + }, + "UserId": { + "type": "integer", + "format": "int64" + } + }, + "x-webhook-event": "schedule.failed" + }, + "ProcessSetEnabledRequest": { + "type": "object", + "properties": { + "enabled": { + "type": "boolean" + }, + "multistatusEnabled": { + "type": "boolean" + }, + "scheduleIds": { + "type": "array", + "items": { + "type": "integer", + "format": "int64" + } + } + } + }, + "ProcessSettingsDto": { + "type": "object", + "properties": { + "ErrorRecordingEnabled": { + "type": "boolean" + }, + "Duration": { + "type": "integer", + "format": "int32" + }, + "Frequency": { + "type": "integer", + "format": "int32" + }, + "Quality": { + "type": "integer", + "format": "int32" + }, + "AutoStartProcess": { + "type": "boolean" + }, + "AlwaysRunning": { + "type": "boolean" + } + } + }, + "ProcessesSetArgumentsRequest": { + "required": [ + "arguments", + "key" + ], + "type": "object", + "properties": { + "key": { + "minLength": 1, + "type": "string" + }, + "arguments": { + "$ref": "#/components/schemas/ArgumentMetadata" + } + } + }, + "ProcessingExceptionDto": { + "type": "object", + "properties": { + "Reason": { + "type": "string", + "description": "The reason the processing failed." + }, + "Details": { + "type": "string", + "description": "Stores additional details about the exception." + }, + "Type": { + "type": "string", + "description": "The processing exception type, if any.", + "enum": [ + "ApplicationException", + "BusinessException" + ], + "x-ms-enum": { + "name": "ProcessingExceptionDtoType", + "modelAsString": false + } + }, + "AssociatedImageFilePath": { + "type": "string", + "description": "A path on the robot running computer to an image file that stores relevant information about the exception - e.g. a system print screen." + }, + "CreationTime": { + "type": "string", + "description": "Time when the exception occurred", + "format": "date-time" + } + }, + "description": "Stores information about exceptions thrown while processing failed queue items." + }, + "QueueCreatedEventDto": { + "required": [ + "EventId", + "Timestamp", + "Type" + ], + "type": "object", + "properties": { + "Type": { + "minLength": 1, + "type": "string" + }, + "EventId": { + "maxLength": 50, + "minLength": 0, + "type": "string" + }, + "EntityKey": { + "type": "string", + "format": "uuid" + }, + "Timestamp": { + "type": "string", + "format": "date-time" + }, + "Queues": { + "type": "array", + "description": "The queue that triggered the event", + "items": { + "$ref": "#/components/schemas/QueueDefinitionEventDto" + } + }, + "EventTime": { + "type": "string", + "format": "date-time" + }, + "EventSourceId": { + "type": "integer", + "format": "int64", + "readOnly": true + }, + "TenantId": { + "type": "integer", + "format": "int32" + }, + "OrganizationUnitId": { + "type": "integer", + "format": "int64" + }, + "OrganizationUnitKey": { + "type": "string", + "format": "uuid" + }, + "UserId": { + "type": "integer", + "format": "int64" + } + }, + "description": "This event is raised whenever queue definitions were created", + "x-webhook-event": "queue.created" + }, + "QueueDefinitionDto": { + "required": [ + "Name" + ], + "type": "object", + "properties": { + "Key": { + "type": "string", + "description": "A unique identifier associated to each queue.", + "format": "uuid" + }, + "Name": { + "minLength": 1, + "type": "string", + "description": "A custom name for the queue." + }, + "Description": { + "type": "string", + "description": "Used to add additional information about a queue in order to better identify it." + }, + "MaxNumberOfRetries": { + "type": "integer", + "description": "An integer value representing the number of times an item of this queue can be retried if its processing fails with application exception and auto retry is on.", + "format": "int32" + }, + "AcceptAutomaticallyRetry": { + "type": "boolean", + "description": "States whether a robot should retry to process an item if, after processing, it failed with application exception." + }, + "EnforceUniqueReference": { + "type": "boolean", + "description": "States whether Item Reference field should be unique per Queue. Deleted and retried items are not checked against this rule." + }, + "Encrypted": { + "type": "boolean", + "description": "States whether the Queue Item's data will be encrypted in the database." + }, + "SpecificDataJsonSchema": { + "type": "string", + "description": "JSON schema enforced onto the specific data field." + }, + "OutputDataJsonSchema": { + "type": "string", + "description": "JSON schema enforced onto the output data field." + }, + "AnalyticsDataJsonSchema": { + "type": "string", + "description": "JSON schema enforced onto the analytics data field." + }, + "CreationTime": { + "type": "string", + "description": "The date and time when the queue was created.", + "format": "date-time" + }, + "ProcessScheduleId": { + "type": "integer", + "description": "The Id of the process schedule associated with the queue.", + "format": "int64" + }, + "SlaInMinutes": { + "maximum": 2147483647, + "minimum": 0, + "type": "integer", + "description": "Queue item processing SLA on the QueueDefinition level.", + "format": "int32" + }, + "RiskSlaInMinutes": { + "maximum": 2147483647, + "minimum": 0, + "type": "integer", + "description": "Queue Item processing Risk SLA on the QueueDefinition level.", + "format": "int32" + }, + "ReleaseId": { + "type": "integer", + "description": "The ProcessId Queue is associated with.", + "format": "int64" + }, + "IsProcessInCurrentFolder": { + "type": "boolean", + "description": "Flag to determine if the release is in the current folder" + }, + "FoldersCount": { + "type": "integer", + "description": "Number of folders where the queue is shared.", + "format": "int32" + }, + "OrganizationUnitId": { + "type": "integer", + "description": "DEPRECATED. ", + "format": "int64", + "x-deprecated": true + }, + "OrganizationUnitFullyQualifiedName": { + "type": "string", + "description": "DEPRECATED. ", + "x-deprecated": true + }, + "Tags": { + "type": "array", + "items": { + "$ref": "#/components/schemas/TagDto" + } + }, + "Id": { + "type": "integer", + "format": "int64" + } + }, + "description": "The definition of a work queue. A work queue contains work items that are processed by robots." + }, + "QueueDefinitionEventDto": { + "type": "object", + "properties": { + "Id": { + "type": "integer", + "format": "int64", + "readOnly": true + }, + "Key": { + "type": "string", + "format": "uuid", + "readOnly": true + }, + "Name": { + "type": "string", + "description": "A custom name for the queue.", + "readOnly": true + }, + "Description": { + "type": "string", + "description": "Used to add additional information about a queue in order to better identify it.", + "readOnly": true + }, + "MaxNumberOfRetries": { + "type": "integer", + "description": "An integer value representing the number of times an item of this queue can be retried if its processing fails with application exception and auto retry is on.", + "format": "int32", + "readOnly": true + }, + "AcceptAutomaticallyRetry": { + "type": "boolean", + "description": "States whether a robot should retry to process an item if, after processing, it failed with application exception.", + "readOnly": true + }, + "EnforceUniqueReference": { + "type": "boolean", + "description": "States whether Item Reference field should be unique per Queue. Deleted and retried items are not checked against this rule.", + "readOnly": true + }, + "SlaInMinutes": { + "type": "integer", + "description": "An integer value representing the Queue SLA in minutes.", + "format": "int32", + "readOnly": true + }, + "RiskSlaInMinutes": { + "type": "integer", + "description": "An integer value representing the Queue RiskSla in minutes.", + "format": "int32", + "readOnly": true + } + }, + "description": "The definition of a work queue. A work queue contains work items that are processed by robots." + }, + "QueueDeletedEventDto": { + "required": [ + "EventId", + "Timestamp", + "Type" + ], + "type": "object", + "properties": { + "Type": { + "minLength": 1, + "type": "string" + }, + "EventId": { + "maxLength": 50, + "minLength": 0, + "type": "string" + }, + "EntityKey": { + "type": "string", + "format": "uuid" + }, + "Timestamp": { + "type": "string", + "format": "date-time" + }, + "Queues": { + "type": "array", + "description": "The queue that triggered the event", + "items": { + "$ref": "#/components/schemas/QueueDefinitionEventDto" + } + }, + "EventTime": { + "type": "string", + "format": "date-time" + }, + "EventSourceId": { + "type": "integer", + "format": "int64", + "readOnly": true + }, + "TenantId": { + "type": "integer", + "format": "int32" + }, + "OrganizationUnitId": { + "type": "integer", + "format": "int64" + }, + "OrganizationUnitKey": { + "type": "string", + "format": "uuid" + }, + "UserId": { + "type": "integer", + "format": "int64" + } + }, + "description": "This event is raised whenever queue definitions were deleted", + "x-webhook-event": "queue.deleted" + }, + "QueueFoldersShareDto": { + "type": "object", + "properties": { + "QueueIds": { + "type": "array", + "items": { + "type": "integer", + "format": "int64" + } + }, + "ToAddFolderIds": { + "type": "array", + "items": { + "type": "integer", + "format": "int64" + } + }, + "ToRemoveFolderIds": { + "type": "array", + "items": { + "type": "integer", + "format": "int64" + } + } + } + }, + "QueueItemAddedEventDto": { + "required": [ + "EventId", + "Timestamp", + "Type" + ], + "type": "object", + "properties": { + "Type": { + "minLength": 1, + "type": "string" + }, + "EventId": { + "maxLength": 50, + "minLength": 0, + "type": "string" + }, + "EntityKey": { + "type": "string", + "format": "uuid" + }, + "Timestamp": { + "type": "string", + "format": "date-time" + }, + "Queue": { + "$ref": "#/components/schemas/QueueDefinitionEventDto" + }, + "QueueItems": { + "type": "array", + "readOnly": true, + "items": { + "$ref": "#/components/schemas/QueueItemSimpleEventDto" + } + }, + "EventTime": { + "type": "string", + "format": "date-time" + }, + "TenantId": { + "type": "integer", + "format": "int32" + }, + "OrganizationUnitId": { + "type": "integer", + "format": "int64" + }, + "OrganizationUnitKey": { + "type": "string", + "format": "uuid" + }, + "UserId": { + "type": "integer", + "format": "int64" + } + }, + "description": "This event is raised whenever new queue items were added", + "x-webhook-event": "queueItem.added" + }, + "QueueItemCommentDto": { + "required": [ + "Text" + ], + "type": "object", + "properties": { + "Text": { + "maxLength": 512, + "minLength": 0, + "type": "string", + "description": "The comment body." + }, + "QueueItemId": { + "type": "integer", + "description": "The Id of a Queue Item that the current item is connected to.", + "format": "int64" + }, + "CreationTime": { + "type": "string", + "description": "DEPRECATED. The date and time when the comment was created.", + "format": "date-time", + "x-deprecated": true + }, + "UserId": { + "type": "integer", + "description": "The id of the User that authored the comment.", + "format": "int64" + }, + "UserName": { + "type": "string", + "description": "The name of the User that authored the comment." + }, + "Id": { + "type": "integer", + "format": "int64" + } + }, + "description": "Stores information about a comment posted by an Orchestrator user on a queue item." + }, + "QueueItemCompletedEventDto": { + "required": [ + "EventId", + "Timestamp", + "Type" + ], + "type": "object", + "properties": { + "Type": { + "minLength": 1, + "type": "string" + }, + "EventId": { + "maxLength": 50, + "minLength": 0, + "type": "string" + }, + "EntityKey": { + "type": "string", + "format": "uuid" + }, + "Timestamp": { + "type": "string", + "format": "date-time" + }, + "QueueItem": { + "$ref": "#/components/schemas/QueueItemSimpleEventDto" + }, + "Queue": { + "$ref": "#/components/schemas/QueueDefinitionEventDto" + }, + "EventTime": { + "type": "string", + "format": "date-time" + }, + "TenantId": { + "type": "integer", + "format": "int32" + }, + "OrganizationUnitId": { + "type": "integer", + "format": "int64" + }, + "OrganizationUnitKey": { + "type": "string", + "format": "uuid" + }, + "UserId": { + "type": "integer", + "format": "int64" + } + }, + "description": "This event is raised whenever a queue item transaction has completed successfully", + "x-webhook-event": "queueItem.transactionCompleted" + }, + "QueueItemDataDto": { + "type": "object", + "properties": { + "Name": { + "type": "string", + "description": "The name of the queue into which the item will be added." + }, + "Priority": { + "type": "string", + "description": "Sets the processing importance for a given item.", + "enum": [ + "High", + "Normal", + "Low" + ], + "x-ms-enum": { + "name": "QueueItemDataDtoPriority", + "modelAsString": false + } + }, + "SpecificContent": { + "type": "object", + "additionalProperties": { + "type": "object" + }, + "description": "A collection of key value pairs containing custom data configured in the Add Queue Item activity, in UiPath Studio." + }, + "DeferDate": { + "type": "string", + "description": "The earliest date and time at which the item is available for processing. If empty the item can be processed as soon as possible.", + "format": "date-time" + }, + "DueDate": { + "type": "string", + "description": "The latest date and time at which the item should be processed. If empty the item can be processed at any given time.", + "format": "date-time" + }, + "RiskSlaDate": { + "type": "string", + "description": "The RiskSla date at time which is considered as risk zone for the item to be processed.", + "format": "date-time" + }, + "Reference": { + "maxLength": 128, + "minLength": 0, + "type": "string", + "description": "An optional, user-specified value for queue item identification." + }, + "Progress": { + "type": "string", + "description": "String field which is used to keep track of the business flow progress." + }, + "Source": { + "maxLength": 20, + "minLength": 0, + "pattern": "Manual|Apps", + "type": "string", + "description": "The Source type of the item." + } + }, + "description": "Defines the work item content." + }, + "QueueItemDeleteBulkRequest": { + "type": "object", + "properties": { + "queueItems": { + "type": "array", + "items": { + "$ref": "#/components/schemas/LongVersionedEntity" + } + } + } + }, + "QueueItemDto": { + "type": "object", + "properties": { + "QueueDefinitionId": { + "type": "integer", + "description": "The Id of the parent queue.", + "format": "int64" + }, + "QueueDefinition": { + "$ref": "#/components/schemas/QueueDefinitionDto" + }, + "ProcessingException": { + "$ref": "#/components/schemas/ProcessingExceptionDto" + }, + "Encrypted": { + "type": "boolean", + "description": "Is the item has encrypted data in the database" + }, + "SpecificContent": { + "type": "object", + "additionalProperties": { + "type": "object" + }, + "description": "A collection of key value pairs containing custom data configured in the Add Queue Item activity, in UiPath Studio." + }, + "Output": { + "type": "object", + "additionalProperties": { + "type": "object" + }, + "description": "A collection of key value pairs containing custom data resulted after successful processing." + }, + "OutputData": { + "type": "string", + "description": "A JSON representation of the output data generated by the item's processing." + }, + "Analytics": { + "type": "object", + "additionalProperties": { + "type": "object" + }, + "description": "A collection of key value pairs containing custom data for further analytics processing." + }, + "AnalyticsData": { + "type": "string", + "description": "A JSON representation of the analytics data generated by the item's processing." + }, + "Status": { + "type": "string", + "description": "The processing state of the item.", + "enum": [ + "New", + "InProgress", + "Failed", + "Successful", + "Abandoned", + "Retried", + "Deleted" + ], + "x-ms-enum": { + "name": "QueueItemDtoStatus", + "modelAsString": false + } + }, + "ReviewStatus": { + "type": "string", + "description": "The review state of the item - applicable only for failed items.", + "enum": [ + "None", + "InReview", + "Verified", + "Retried" + ], + "x-ms-enum": { + "name": "QueueItemDtoReviewStatus", + "modelAsString": false + } + }, + "ReviewerUserId": { + "type": "integer", + "description": "The UserId of the Reviewer, if any.", + "format": "int64" + }, + "ReviewerUser": { + "$ref": "#/components/schemas/SimpleUserDto" + }, + "Key": { + "type": "string", + "description": "The unique identifier of a queue item.", + "format": "uuid" + }, + "Reference": { + "maxLength": 128, + "minLength": 0, + "type": "string", + "description": "An optional, user-specified value for queue item identification." + }, + "ProcessingExceptionType": { + "type": "string", + "description": "The processing exception. If the item has not been processed or has been processed successfully it will be null.", + "enum": [ + "ApplicationException", + "BusinessException" + ], + "x-ms-enum": { + "name": "QueueItemDtoProcessingExceptionType", + "modelAsString": false + } + }, + "DueDate": { + "type": "string", + "description": "The latest date and time at which the item should be processed. If empty the item can be processed at any given time.", + "format": "date-time" + }, + "RiskSlaDate": { + "type": "string", + "description": "The RiskSla date at time which is considered as risk zone for the item to be processed.", + "format": "date-time" + }, + "Priority": { + "type": "string", + "description": "Sets the processing importance for a given item.", + "enum": [ + "High", + "Normal", + "Low" + ], + "x-ms-enum": { + "name": "QueueItemDtoPriority", + "modelAsString": false + } + }, + "Robot": { + "$ref": "#/components/schemas/SimpleRobotDto" + }, + "DeferDate": { + "type": "string", + "description": "The earliest date and time at which the item is available for processing. If empty the item can be processed as soon as possible.", + "format": "date-time" + }, + "StartProcessing": { + "type": "string", + "description": "The date and time at which the item processing started. This is null if the item was not processed.", + "format": "date-time" + }, + "EndProcessing": { + "type": "string", + "description": "The date and time at which the item processing ended. This is null if the item was not processed.", + "format": "date-time" + }, + "SecondsInPreviousAttempts": { + "type": "integer", + "description": "The number of seconds that the last failed processing lasted.", + "format": "int32" + }, + "AncestorId": { + "type": "integer", + "description": "The Id of an ancestor item connected to the current item.", + "format": "int64" + }, + "RetryNumber": { + "type": "integer", + "description": "The number of times this work item has been processed.\r\nThis can be higher than 0 only if MaxRetried number is set and the item processing failed at least once with ApplicationException.", + "format": "int32" + }, + "SpecificData": { + "type": "string", + "description": "A JSON representation of the specific content." + }, + "CreationTime": { + "type": "string", + "description": "The date and time when the item was created.", + "format": "date-time" + }, + "Progress": { + "type": "string", + "description": "String field which is used to keep track of the business flow progress." + }, + "RowVersion": { + "pattern": "^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$", + "type": "string", + "description": "Identifier used for optimistic concurrency, so Orchestrator can figure whether data is out of date or not.", + "format": "byte" + }, + "OrganizationUnitId": { + "type": "integer", + "description": "DEPRECATED. ", + "format": "int64", + "x-deprecated": true + }, + "OrganizationUnitFullyQualifiedName": { + "type": "string", + "description": "DEPRECATED. ", + "x-deprecated": true + }, + "Id": { + "type": "integer", + "format": "int64" + } + }, + "description": "Defines a piece of data that can be processed by a robot and the information associated with its processing status.\r\nQueue items are grouped in queues." + }, + "QueueItemEventDto": { + "type": "object", + "properties": { + "QueueItemId": { + "type": "integer", + "description": "The Id of a Queue Item that the current item is connected to.", + "format": "int64" + }, + "Timestamp": { + "type": "string", + "description": "The Date and Time when the event occured.", + "format": "date-time" + }, + "Action": { + "type": "string", + "description": "The Action that caused the event.", + "enum": [ + "Create", + "Edit", + "Delete", + "Status", + "Retry" + ], + "x-ms-enum": { + "name": "QueueItemEventDtoAction", + "modelAsString": false + } + }, + "Data": { + "type": "string", + "description": "The Data associated to the event." + }, + "UserId": { + "type": "integer", + "description": "The Id of the User that caused the event.", + "format": "int64" + }, + "UserName": { + "type": "string", + "description": "The Name of the User that caused the event." + }, + "Status": { + "type": "string", + "description": "Processing Status when event snapshot was taken.", + "enum": [ + "New", + "InProgress", + "Failed", + "Successful", + "Abandoned", + "Retried", + "Deleted" + ], + "x-ms-enum": { + "name": "QueueItemEventDtoStatus", + "modelAsString": false + } + }, + "ReviewStatus": { + "type": "string", + "description": "Review Status when event snapshot was taken.", + "enum": [ + "None", + "InReview", + "Verified", + "Retried" + ], + "x-ms-enum": { + "name": "QueueItemEventDtoReviewStatus", + "modelAsString": false + } + }, + "ReviewerUserId": { + "type": "integer", + "description": "Reviewer User Id when event snapshot was taken.", + "format": "int64" + }, + "ReviewerUserName": { + "type": "string", + "description": "Reviewer User Name when event snapshot was taken." + }, + "ExternalClientId": { + "type": "string", + "description": "The External client identifier that caused the event. Example: OAuth 3rd party app identifier that called Orchestrator." + }, + "Id": { + "type": "integer", + "format": "int64" + } + }, + "description": "Stores information about an event on a queue item." + }, + "QueueItemFailedEventDto": { + "required": [ + "EventId", + "Timestamp", + "Type" + ], + "type": "object", + "properties": { + "Type": { + "minLength": 1, + "type": "string" + }, + "EventId": { + "maxLength": 50, + "minLength": 0, + "type": "string" + }, + "EntityKey": { + "type": "string", + "format": "uuid" + }, + "Timestamp": { + "type": "string", + "format": "date-time" + }, + "QueueItem": { + "$ref": "#/components/schemas/QueueItemSimpleEventDto" + }, + "Queue": { + "$ref": "#/components/schemas/QueueDefinitionEventDto" + }, + "EventTime": { + "type": "string", + "format": "date-time" + }, + "TenantId": { + "type": "integer", + "format": "int32" + }, + "OrganizationUnitId": { + "type": "integer", + "format": "int64" + }, + "OrganizationUnitKey": { + "type": "string", + "format": "uuid" + }, + "UserId": { + "type": "integer", + "format": "int64" + } + }, + "description": "This event is raised whenever a queue item transaction has failed", + "x-webhook-event": "queueItem.transactionFailed" + }, + "QueueItemSimpleEventDto": { + "type": "object", + "properties": { + "Id": { + "type": "integer", + "format": "int64", + "readOnly": true + }, + "Key": { + "type": "string", + "description": "The unique identifier of a queue item.", + "format": "uuid", + "readOnly": true + }, + "Reference": { + "type": "string", + "description": "An optional, user-specified value for queue item identification.", + "readOnly": true + }, + "QueueDefinitionId": { + "type": "integer", + "description": "The Id of the parent queue.", + "format": "int64", + "readOnly": true + }, + "Status": { + "type": "string", + "description": "The processing state of the item.", + "readOnly": true, + "enum": [ + "New", + "InProgress", + "Failed", + "Successful", + "Abandoned", + "Retried", + "Deleted" + ], + "x-ms-enum": { + "name": "QueueItemSimpleEventDtoStatus", + "modelAsString": false + } + }, + "ReviewStatus": { + "type": "string", + "description": "The review state of the item - applicable only for failed items.", + "readOnly": true, + "enum": [ + "None", + "InReview", + "Verified", + "Retried" + ], + "x-ms-enum": { + "name": "QueueItemSimpleEventDtoReviewStatus", + "modelAsString": false + } + }, + "ProcessingException": { + "$ref": "#/components/schemas/WrappedProcessingExceptionDto" + }, + "DueDate": { + "type": "string", + "description": "The latest date and time at which the item should be processed. If empty the item can be processed at any given time.", + "format": "date-time", + "readOnly": true + }, + "Priority": { + "type": "string", + "description": "Sets the processing importance for a given item.", + "readOnly": true, + "enum": [ + "High", + "Normal", + "Low" + ], + "x-ms-enum": { + "name": "QueueItemSimpleEventDtoPriority", + "modelAsString": false + } + }, + "CreationTime": { + "type": "string", + "description": "The date and time when the item was created.", + "format": "date-time", + "readOnly": true + }, + "DeferDate": { + "type": "string", + "description": "The earliest date and time at which the item is available for processing. If empty the item can be processed as soon as possible.", + "format": "date-time", + "readOnly": true + }, + "StartProcessing": { + "type": "string", + "description": "The date and time at which the item processing started. This is null if the item was not processed.", + "format": "date-time", + "readOnly": true + }, + "EndProcessing": { + "type": "string", + "description": "The date and time at which the item processing ended. This is null if the item was not processed.", + "format": "date-time", + "readOnly": true + }, + "CreatorJobId": { + "type": "integer", + "description": "The id for the job that created the queue item", + "format": "int64", + "readOnly": true + }, + "ExecutorJobId": { + "type": "integer", + "description": "The id for the job that processed the queue item", + "format": "int64", + "readOnly": true + }, + "CreatorUserId": { + "type": "integer", + "description": "The id for the user that created the queue item", + "format": "int64", + "readOnly": true + }, + "RiskSlaDate": { + "type": "string", + "description": "The RiskSla date at time which is considered as risk zone for the item to be processed.", + "format": "date-time", + "readOnly": true + }, + "SecondsInPreviousAttempts": { + "type": "integer", + "description": "The number of seconds that the last failed processing lasted.", + "format": "int32", + "readOnly": true + }, + "AncestorId": { + "type": "integer", + "description": "The Id of an ancestor item connected to the current item.", + "format": "int64", + "readOnly": true + }, + "RetryNumber": { + "type": "integer", + "description": "The number of times this work item has been processed.\r\nThis can be higher than 0 only if MaxRetried number is set and the item processing failed at least once with ApplicationException.", + "format": "int32", + "readOnly": true + }, + "Progress": { + "type": "string", + "description": "String field which is used to keep track of the business flow progress.", + "readOnly": true + }, + "ReviewerUserId": { + "type": "integer", + "description": "The UserId of the Reviewer, if any.", + "format": "int64", + "readOnly": true + }, + "Robot": { + "$ref": "#/components/schemas/WrappedRobotDto" + }, + "ReviewerUser": { + "$ref": "#/components/schemas/WebhookSimpleUserDto" + }, + "SpecificContent": { + "type": "object", + "additionalProperties": { + "type": "object" + }, + "description": "A collection of key value pairs containing custom data configured in the Add Queue Item activity, in UiPath Studio.", + "readOnly": true + }, + "Output": { + "type": "object", + "additionalProperties": { + "type": "object" + }, + "description": "A collection of key value pairs containing custom data resulted after successful processing.", + "readOnly": true + }, + "Source": { + "type": "string", + "description": "Where the queue item was created", + "readOnly": true + } + } + }, + "QueueItemStartedEventDto": { + "required": [ + "EventId", + "Timestamp", + "Type" + ], + "type": "object", + "properties": { + "Type": { + "minLength": 1, + "type": "string" + }, + "EventId": { + "maxLength": 50, + "minLength": 0, + "type": "string" + }, + "EntityKey": { + "type": "string", + "format": "uuid" + }, + "Timestamp": { + "type": "string", + "format": "date-time" + }, + "QueueItem": { + "$ref": "#/components/schemas/QueueItemSimpleEventDto" + }, + "Queue": { + "$ref": "#/components/schemas/QueueDefinitionEventDto" + }, + "EventTime": { + "type": "string", + "format": "date-time" + }, + "TenantId": { + "type": "integer", + "format": "int32" + }, + "OrganizationUnitId": { + "type": "integer", + "format": "int64" + }, + "OrganizationUnitKey": { + "type": "string", + "format": "uuid" + }, + "UserId": { + "type": "integer", + "format": "int64" + } + }, + "description": "This event is raised whenever a new queue item transaction is started", + "x-webhook-event": "queueItem.transactionStarted" + }, + "QueueItemsAbandonedEventDto": { + "required": [ + "EventId", + "Timestamp", + "Type" + ], + "type": "object", + "properties": { + "Type": { + "minLength": 1, + "type": "string" + }, + "EventId": { + "maxLength": 50, + "minLength": 0, + "type": "string" + }, + "EntityKey": { + "type": "string", + "format": "uuid" + }, + "Timestamp": { + "type": "string", + "format": "date-time" + }, + "Queue": { + "$ref": "#/components/schemas/QueueDefinitionEventDto" + }, + "QueueItems": { + "type": "array", + "readOnly": true, + "items": { + "$ref": "#/components/schemas/QueueItemSimpleEventDto" + } + }, + "EventTime": { + "type": "string", + "format": "date-time" + }, + "TenantId": { + "type": "integer", + "format": "int32" + }, + "OrganizationUnitId": { + "type": "integer", + "format": "int64" + }, + "OrganizationUnitKey": { + "type": "string", + "format": "uuid" + }, + "UserId": { + "type": "integer", + "format": "int64" + } + }, + "description": "This event is raised whenever queue item transactions have expired and were abandoned", + "x-webhook-event": "queueItem.transactionAbandoned" + }, + "QueueProcessingRecordDto": { + "type": "object", + "properties": { + "QueueDefinitionId": { + "type": "integer", + "description": "The Id of the queue for which the report is done.", + "format": "int64" + }, + "UiQueueMetadata": { + "$ref": "#/components/schemas/QueueDefinitionDto" + }, + "ProcessingTime": { + "type": "string", + "description": "The date and time when the report is computed.", + "format": "date-time" + }, + "ReportType": { + "type": "string", + "description": "The aggregation period used in the report.", + "enum": [ + "All", + "Minute", + "Hour", + "Day" + ], + "x-ms-enum": { + "name": "QueueProcessingRecordDtoReportType", + "modelAsString": false + } + }, + "NumberOfRemainingTransactions": { + "type": "integer", + "description": "The number of unprocessed (new) items.", + "format": "int32" + }, + "NumberOfInProgressTransactions": { + "type": "integer", + "description": "The number of items in progress.", + "format": "int32" + }, + "NumberOfApplicationExceptions": { + "type": "integer", + "description": "The total number of application exceptions thrown while processing queue items in the given time period.", + "format": "int32" + }, + "NumberOfBusinessExceptions": { + "type": "integer", + "description": "The total number of business exceptions thrown while processing queue items in the given time period.", + "format": "int32" + }, + "NumberOfSuccessfulTransactions": { + "type": "integer", + "description": "The total number of successfully processed queue items in the given time period.", + "format": "int32" + }, + "NumberOfRetriedItems": { + "type": "integer", + "description": "The total number of processing retries occurred in the given time period.", + "format": "int32" + }, + "ApplicationExceptionsProcessingTime": { + "type": "number", + "description": "The total number of seconds spent processing queue items that failed with application exception in the given time period.", + "format": "decimal" + }, + "BusinessExceptionsProcessingTime": { + "type": "number", + "description": "The total number of seconds spent processing queue items that failed with business exception in the given time period.", + "format": "decimal" + }, + "SuccessfulTransactionsProcessingTime": { + "type": "number", + "description": "The total number of seconds spent processing successful queue items in the given time period.", + "format": "decimal" + }, + "TotalNumberOfTransactions": { + "type": "integer", + "description": "The total number of item processing transactions, both failed and successful.", + "format": "int32" + }, + "TenantId": { + "type": "integer", + "description": "The Id of the queue tenant.", + "format": "int32" + }, + "Id": { + "type": "integer", + "format": "int64" + } + }, + "description": "Stores aggregated report information about the processing status of all the items from a given queue in a specific time period." + }, + "QueueProcessingStatusDto": { + "type": "object", + "properties": { + "ItemsToProcess": { + "type": "integer", + "description": "The total number of items in the queue with the status New.", + "format": "int32" + }, + "ItemsInProgress": { + "type": "integer", + "description": "The total number of items in the queue with the status InProgress.", + "format": "int32" + }, + "QueueDefinitionId": { + "type": "integer", + "description": "The Id of the queue for which the report is done.", + "format": "int64" + }, + "QueueDefinitionKey": { + "type": "string", + "description": "The Key of the queue for which the report is done.", + "format": "uuid" + }, + "QueueDefinitionName": { + "type": "string", + "description": "The name of the queue for which the report is done." + }, + "QueueDefinitionDescription": { + "type": "string", + "description": "The description of the queue for which the report is done." + }, + "QueueDefinitionAcceptAutomaticallyRetry": { + "type": "boolean", + "description": "States whether the queue accepts automatic item retry or not." + }, + "QueueDefinitionMaxNumberOfRetries": { + "type": "integer", + "description": "The maximum number of retries allowed for any item of the queue.", + "format": "int32" + }, + "QueueDefinitionEnforceUniqueReference": { + "type": "boolean", + "description": "States whether Item Reference field should be unique per Queue. Deleted and retried items are not checked against this rule." + }, + "ProcessingMeanTime": { + "type": "number", + "description": "The average time spent processing a successful item.", + "format": "decimal" + }, + "SuccessfulTransactionsNo": { + "type": "integer", + "description": "The total number of successfully processed items.", + "format": "int32" + }, + "ApplicationExceptionsNo": { + "type": "integer", + "description": "The total number of application exceptions thrown while processing queue items.", + "format": "int32" + }, + "BusinessExceptionsNo": { + "type": "integer", + "description": "The total number of business exceptions thrown while processing queue items.", + "format": "int32" + }, + "SuccessfulTransactionsProcessingTime": { + "type": "number", + "description": "The total number of seconds spent processing successful queue items.", + "format": "decimal" + }, + "ApplicationExceptionsProcessingTime": { + "type": "number", + "description": "The total number of seconds spent processing queue items that failed with application exception.", + "format": "decimal" + }, + "BusinessExceptionsProcessingTime": { + "type": "number", + "description": "The total number of seconds spent processing queue items that failed with business exception.", + "format": "decimal" + }, + "TotalNumberOfTransactions": { + "type": "integer", + "description": "The total number of item processing transactions, both failed and successful.", + "format": "int32" + }, + "LastProcessed": { + "type": "string", + "description": "The date and time of the last item processing.", + "format": "date-time" + }, + "ReleaseName": { + "type": "string", + "description": "The name of the process associated with the queue." + }, + "ReleaseId": { + "type": "integer", + "description": "The ProcessId Queue is associated with.", + "format": "int64" + }, + "IsProcessInCurrentFolder": { + "type": "boolean", + "description": "Flag to determine if the release is in the current folder" + }, + "SpecificDataJsonSchemaExists": { + "type": "boolean", + "description": "Optional JSON schema enforced onto the specific data field is set." + }, + "OutputDataJsonSchemaExists": { + "type": "boolean", + "description": "Optional JSON schema enforced onto the output data field is set." + }, + "AnalyticsDataJsonSchemaExists": { + "type": "boolean", + "description": "Optional JSON schema enforced onto the analytics data field is set." + }, + "ProcessScheduleId": { + "type": "integer", + "description": "The Id of the process schedule associated with the queue.", + "format": "int64" + }, + "QueueFoldersCount": { + "type": "integer", + "description": "The number of folders where the queue definition is shared.", + "format": "int32" + }, + "Tags": { + "type": "array", + "items": { + "$ref": "#/components/schemas/TagDto" + } + }, + "Id": { + "type": "integer", + "format": "int64" + } + }, + "description": "Stores aggregated report information about the processing status of all the items from a given queue." + }, + "QueueRetentionSettingDto": { + "type": "object", + "properties": { + "QueueDefinitionId": { + "type": "integer", + "format": "int64" + }, + "Action": { + "type": "string", + "description": "Action cannot be None for Cloud.", + "enum": [ + "Delete", + "Archive", + "None" + ], + "x-ms-enum": { + "name": "BaseRetentionSettingDtoAction", + "modelAsString": false + } + }, + "Period": { + "type": "integer", + "format": "int32" + }, + "BucketId": { + "type": "integer", + "format": "int64" + } + } + }, + "QueueSetItemReviewStatusRequest": { + "required": [ + "queueItems", + "status" + ], + "type": "object", + "properties": { + "status": { + "minLength": 1, + "type": "string" + }, + "queueItems": { + "type": "array", + "items": { + "$ref": "#/components/schemas/LongVersionedEntity" + } + } + } + }, + "QueueSetItemReviewerRequest": { + "required": [ + "queueItems", + "userId" + ], + "type": "object", + "properties": { + "userId": { + "type": "integer", + "format": "int64" + }, + "queueItems": { + "type": "array", + "items": { + "$ref": "#/components/schemas/LongVersionedEntity" + } + } + } + }, + "QueueSetTransactionProgressRequest": { + "type": "object", + "properties": { + "progress": { + "type": "string" + } + } + }, + "QueueSetTransactionResultRequest": { + "required": [ + "transactionResult" + ], + "type": "object", + "properties": { + "transactionResult": { + "$ref": "#/components/schemas/TransactionResultDto" + } + } + }, + "QueueUnsetItemReviewerRequest": { + "required": [ + "queueItems" + ], + "type": "object", + "properties": { + "queueItems": { + "type": "array", + "items": { + "$ref": "#/components/schemas/LongVersionedEntity" + } + } + } + }, + "QueueUpdatedEventDto": { + "required": [ + "EventId", + "Timestamp", + "Type" + ], + "type": "object", + "properties": { + "Type": { + "minLength": 1, + "type": "string" + }, + "EventId": { + "maxLength": 50, + "minLength": 0, + "type": "string" + }, + "EntityKey": { + "type": "string", + "format": "uuid" + }, + "Timestamp": { + "type": "string", + "format": "date-time" + }, + "Queues": { + "type": "array", + "description": "The queue that triggered the event", + "items": { + "$ref": "#/components/schemas/QueueDefinitionEventDto" + } + }, + "EventTime": { + "type": "string", + "format": "date-time" + }, + "EventSourceId": { + "type": "integer", + "format": "int64", + "readOnly": true + }, + "TenantId": { + "type": "integer", + "format": "int32" + }, + "OrganizationUnitId": { + "type": "integer", + "format": "int64" + }, + "OrganizationUnitKey": { + "type": "string", + "format": "uuid" + }, + "UserId": { + "type": "integer", + "format": "int64" + } + }, + "description": "This event is raised whenever queue definitions were updated", + "x-webhook-event": "queue.updated" + }, + "QueuesStartTransactionRequest": { + "required": [ + "transactionData" + ], + "type": "object", + "properties": { + "transactionData": { + "$ref": "#/components/schemas/TransactionDataDto" + } + } + }, + "RaiseProcessAlertRequest": { + "required": [ + "processAlert" + ], + "type": "object", + "properties": { + "processAlert": { + "$ref": "#/components/schemas/ProcessAlertDto" + } + } + }, + "ReexecuteTestCasesOptionsDto": { + "required": [ + "testCaseExecutions" + ], + "type": "object", + "properties": { + "testCaseExecutions": { + "type": "array", + "items": { + "$ref": "#/components/schemas/TestCaseExecutionArgumentsDto" + } + }, + "robotId": { + "type": "integer", + "format": "int64" + }, + "machineId": { + "type": "integer", + "format": "int64" + }, + "machineSessionId": { + "type": "integer", + "format": "int64" + }, + "runtimeType": { + "type": "string", + "enum": [ + "NonProduction", + "Attended", + "Unattended", + "Development", + "Studio", + "RpaDeveloper", + "StudioX", + "CitizenDeveloper", + "Headless", + "StudioPro", + "RpaDeveloperPro", + "TestAutomation", + "AutomationCloud", + "Serverless", + "AutomationKit", + "ServerlessTestAutomation", + "AutomationCloudTestAutomation", + "AttendedStudioWeb" + ], + "x-ms-enum": { + "name": "ReexecuteTestCasesOptionsDtoRuntimeType", + "modelAsString": false + } + }, + "enforceExecutionOrder": { + "type": "boolean" + } + } + }, + "ReleaseCreatedEventDto": { + "required": [ + "EventId", + "Timestamp", + "Type" + ], + "type": "object", + "properties": { + "Type": { + "minLength": 1, + "type": "string" + }, + "EventId": { + "maxLength": 50, + "minLength": 0, + "type": "string" + }, + "EntityKey": { + "type": "string", + "format": "uuid" + }, + "Timestamp": { + "type": "string", + "format": "date-time" + }, + "Releases": { + "type": "array", + "readOnly": true, + "items": { + "$ref": "#/components/schemas/WrappedReleaseDto" + } + }, + "EventTime": { + "type": "string", + "format": "date-time" + }, + "EventSourceId": { + "type": "integer", + "format": "int64", + "readOnly": true + }, + "TenantId": { + "type": "integer", + "format": "int32" + }, + "OrganizationUnitId": { + "type": "integer", + "format": "int64" + }, + "OrganizationUnitKey": { + "type": "string", + "format": "uuid" + }, + "UserId": { + "type": "integer", + "format": "int64" + } + }, + "description": "This event is raised whenever a new release has been created", + "x-webhook-event": "process.created" + }, + "ReleaseDeletedEventDto": { + "required": [ + "EventId", + "Timestamp", + "Type" + ], + "type": "object", + "properties": { + "Type": { + "minLength": 1, + "type": "string" + }, + "EventId": { + "maxLength": 50, + "minLength": 0, + "type": "string" + }, + "EntityKey": { + "type": "string", + "format": "uuid" + }, + "Timestamp": { + "type": "string", + "format": "date-time" + }, + "Releases": { + "type": "array", + "readOnly": true, + "items": { + "$ref": "#/components/schemas/WrappedReleaseDto" + } + }, + "EventTime": { + "type": "string", + "format": "date-time" + }, + "EventSourceId": { + "type": "integer", + "format": "int64", + "readOnly": true + }, + "TenantId": { + "type": "integer", + "format": "int32" + }, + "OrganizationUnitId": { + "type": "integer", + "format": "int64" + }, + "OrganizationUnitKey": { + "type": "string", + "format": "uuid" + }, + "UserId": { + "type": "integer", + "format": "int64" + } + }, + "description": "This event is raised whenever a release has been deleted", + "x-webhook-event": "process.deleted" + }, + "ReleaseDto": { + "required": [ + "Name", + "ProcessKey", + "ProcessVersion" + ], + "type": "object", + "properties": { + "Key": { + "type": "string", + "description": "A unique identifier associated to each release." + }, + "ProcessKey": { + "minLength": 1, + "type": "string", + "description": "The unique identifier of the process associated with the release." + }, + "ProcessVersion": { + "minLength": 1, + "type": "string", + "description": "The version of the process associated with the release." + }, + "IsLatestVersion": { + "type": "boolean", + "description": "States whether the version of process associated with the release is latest or not." + }, + "IsProcessDeleted": { + "type": "boolean", + "description": "States whether the process associated with the release is deleted or not." + }, + "Description": { + "type": "string", + "description": "Used to add additional information about a release in order to better identify it." + }, + "Name": { + "minLength": 1, + "type": "string", + "description": "A custom name of the release. The default name format is ProcessName_EnvironmentName." + }, + "EnvironmentId": { + "type": "integer", + "description": "The Id of the environment associated with the release.", + "format": "int64" + }, + "EnvironmentName": { + "type": "string", + "description": "The name of the environment associated with the release." + }, + "Environment": { + "$ref": "#/components/schemas/EnvironmentDto" + }, + "EntryPointId": { + "type": "integer", + "format": "int64" + }, + "EntryPointPath": { + "type": "string" + }, + "EntryPoint": { + "$ref": "#/components/schemas/EntryPointDto" + }, + "InputArguments": { + "maxLength": 10000, + "type": "string", + "description": "Input parameters in JSON format to be passed as default values to job execution." + }, + "ProcessType": { + "type": "string", + "enum": [ + "Undefined", + "Process", + "TestAutomationProcess" + ], + "x-ms-enum": { + "name": "ReleaseDtoProcessType", + "modelAsString": false + } + }, + "SupportsMultipleEntryPoints": { + "type": "boolean" + }, + "RequiresUserInteraction": { + "type": "boolean" + }, + "IsAttended": { + "type": "boolean" + }, + "IsCompiled": { + "type": "boolean" + }, + "AutomationHubIdeaUrl": { + "type": "string" + }, + "CurrentVersion": { + "$ref": "#/components/schemas/ReleaseVersionDto" + }, + "ReleaseVersions": { + "type": "array", + "description": "The collection of release versions that current release had over time.", + "items": { + "$ref": "#/components/schemas/ReleaseVersionDto" + } + }, + "Arguments": { + "$ref": "#/components/schemas/ArgumentMetadata" + }, + "ProcessSettings": { + "$ref": "#/components/schemas/ProcessSettingsDto" + }, + "VideoRecordingSettings": { + "$ref": "#/components/schemas/VideoRecordingSettingsDto" + }, + "AutoUpdate": { + "type": "boolean" + }, + "HiddenForAttendedUser": { + "type": "boolean" + }, + "FeedId": { + "type": "string", + "format": "uuid" + }, + "JobPriority": { + "type": "string", + "description": "The execution priority. If null, it defaults to Normal.", + "enum": [ + "Low", + "Normal", + "High" + ], + "x-ms-enum": { + "name": "ReleaseDtoJobPriority", + "modelAsString": false + } + }, + "SpecificPriorityValue": { + "maximum": 100, + "minimum": 1, + "type": "integer", + "description": "Value for more granular control over execution priority.", + "format": "int32" + }, + "OrganizationUnitId": { + "type": "integer", + "description": "Id of the folder this release is part of.", + "format": "int64" + }, + "OrganizationUnitFullyQualifiedName": { + "type": "string", + "description": "Fully qualified name of the folder this release is part of." + }, + "TargetFramework": { + "type": "string", + "enum": [ + "Legacy", + "Windows", + "Portable" + ], + "x-ms-enum": { + "name": "ReleaseDtoTargetFramework", + "modelAsString": false + } + }, + "RobotSize": { + "type": "string", + "enum": [ + "Small", + "Standard", + "Medium", + "Large" + ], + "x-ms-enum": { + "name": "ReleaseDtoRobotSize", + "modelAsString": false + } + }, + "Tags": { + "type": "array", + "items": { + "$ref": "#/components/schemas/TagDto" + } + }, + "RemoteControlAccess": { + "type": "string", + "enum": [ + "None", + "ReadOnly", + "Full" + ], + "x-ms-enum": { + "name": "ReleaseDtoRemoteControlAccess", + "modelAsString": false + } + }, + "LastModificationTime": { + "type": "string", + "format": "date-time" + }, + "LastModifierUserId": { + "type": "integer", + "format": "int64" + }, + "CreationTime": { + "type": "string", + "format": "date-time" + }, + "CreatorUserId": { + "type": "integer", + "format": "int64" + }, + "Id": { + "type": "integer", + "format": "int64" + } + } + }, + "ReleaseRetentionSettingDto": { + "type": "object", + "properties": { + "ReleaseId": { + "type": "integer", + "format": "int64" + }, + "Action": { + "type": "string", + "description": "Action cannot be None for Cloud.", + "enum": [ + "Delete", + "Archive", + "None" + ], + "x-ms-enum": { + "name": "BaseRetentionSettingDtoAction", + "modelAsString": false + } + }, + "Period": { + "type": "integer", + "format": "int32" + }, + "BucketId": { + "type": "integer", + "format": "int64" + } + } + }, + "ReleaseUpdatedEventDto": { + "required": [ + "EventId", + "Timestamp", + "Type" + ], + "type": "object", + "properties": { + "Type": { + "minLength": 1, + "type": "string" + }, + "EventId": { + "maxLength": 50, + "minLength": 0, + "type": "string" + }, + "EntityKey": { + "type": "string", + "format": "uuid" + }, + "Timestamp": { + "type": "string", + "format": "date-time" + }, + "Releases": { + "type": "array", + "readOnly": true, + "items": { + "$ref": "#/components/schemas/WrappedReleaseDto" + } + }, + "EventTime": { + "type": "string", + "format": "date-time" + }, + "EventSourceId": { + "type": "integer", + "format": "int64", + "readOnly": true + }, + "TenantId": { + "type": "integer", + "format": "int32" + }, + "OrganizationUnitId": { + "type": "integer", + "format": "int64" + }, + "OrganizationUnitKey": { + "type": "string", + "format": "uuid" + }, + "UserId": { + "type": "integer", + "format": "int64" + } + }, + "description": "This event is raised whenever a release has been updated", + "x-webhook-event": "process.updated" + }, + "ReleaseVersionDto": { + "required": [ + "ReleaseId", + "VersionNumber" + ], + "type": "object", + "properties": { + "ReleaseId": { + "type": "integer", + "description": "The Id of the parent release.", + "format": "int64" + }, + "VersionNumber": { + "maxLength": 50, + "minLength": 1, + "type": "string", + "description": "The version of process associated with the release." + }, + "CreationTime": { + "type": "string", + "description": "The date and time when the version was associated with the release.", + "format": "date-time" + }, + "ReleaseName": { + "type": "string", + "description": "The name of the process associated with the release." + }, + "Id": { + "type": "integer", + "format": "int64" + } + }, + "description": "Stores data about a version of the various versions of the process associated with a certain release.\r\nIf a certain version is associated on and off with a release a new ReleaseVersion object is created for each association." + }, + "ReleasesUpdateToLatestPackageVersionBulkRequest": { + "required": [ + "releaseIds" + ], + "type": "object", + "properties": { + "releaseIds": { + "type": "array", + "items": { + "type": "integer", + "format": "int64" + } + }, + "mergePackageTags": { + "type": "boolean" + } + } + }, + "ReleasesUpdateToSpecificPackageVersionRequest": { + "required": [ + "packageVersion" + ], + "type": "object", + "properties": { + "packageVersion": { + "minLength": 1, + "type": "string" + } + } + }, + "RemoveMachinesFromFolderRequest": { + "required": [ + "machineIds" + ], + "type": "object", + "properties": { + "machineIds": { + "type": "array", + "items": { + "type": "integer", + "format": "int64" + } + } + } + }, + "RemoveUserFromFolderRequest": { + "required": [ + "userId" + ], + "type": "object", + "properties": { + "userId": { + "type": "integer", + "format": "int64" + } + } + }, + "ResourceOverwriteDto": { + "required": [ + "resourceKey", + "resourceType" + ], + "type": "object", + "properties": { + "properties2": { + "maxItems": 20, + "type": "array", + "items": { + "$ref": "#/components/schemas/NameValueDto" + } + }, + "resourceType": { + "type": "string", + "description": "The type of the resource to be overwritten", + "enum": [ + "Unknown", + "Queue", + "Asset", + "Bucket", + "Process", + "TaskCatalog", + "Entity", + "Connection", + "TimeTrigger", + "EventTrigger", + "QueueTrigger", + "AppsTrigger", + "Property" + ], + "x-ms-enum": { + "name": "ResourceOverwriteDto`1ResourceType", + "modelAsString": false + } + }, + "resourceKey": { + "minLength": 1, + "type": "string", + "description": "The key of the resource to be overwritten" + }, + "entityId": { + "maxLength": 50, + "type": "string", + "description": "The id of the entity that overwrites the resource (e.g. ConnectionId)" + }, + "properties": { + "type": "object", + "additionalProperties": { + "type": "object" + }, + "description": "Custom property overwrites" + }, + "entityDisplayName": { + "type": "string", + "description": "The name of the entity that overwrites the resource (e.g. ConnectionName)" + }, + "entityFolderId": { + "type": "integer", + "format": "int64" + } + } + }, + "ResponseDictionaryDto": { + "type": "object", + "properties": { + "Keys": { + "type": "array", + "items": { + "type": "string" + } + }, + "Values": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "description": "Data type used to return Dictionary(string, string)" + }, + "RestartJobRequest": { + "required": [ + "jobId" + ], + "type": "object", + "properties": { + "jobId": { + "type": "integer", + "format": "int64" + } + } + }, + "ResumeJobRequest": { + "required": [ + "jobKey" + ], + "type": "object", + "properties": { + "jobKey": { + "type": "string", + "format": "uuid" + } + } + }, + "RobotAssetDto": { + "required": [ + "Name" + ], + "type": "object", + "properties": { + "Name": { + "maxLength": 128, + "minLength": 1, + "type": "string", + "description": "The asset name." + }, + "ValueType": { + "type": "string", + "description": "Defines the type of value stored by the asset.", + "enum": [ + "DBConnectionString", + "HttpConnectionString", + "Text", + "Bool", + "Integer", + "Credential", + "WindowsCredential", + "KeyValueList" + ], + "x-ms-enum": { + "name": "RobotAssetDtoValueType", + "modelAsString": false + } + }, + "StringValue": { + "maxLength": 1000000, + "type": "string", + "description": "The value of the asset when the value type is Text. Empty when the value type is not Text." + }, + "BoolValue": { + "type": "boolean", + "description": "The value of the asset when the value type is Bool. False when the value type is not Bool." + }, + "IntValue": { + "type": "integer", + "description": "The value of the asset when the value type is Integer. 0 when the value type is not Integer.", + "format": "int32" + }, + "CredentialUsername": { + "type": "string", + "description": "The user name when the value type is Credential. Empty when the value type is not Credential." + }, + "CredentialPassword": { + "type": "string", + "description": "The password when the value type is Credential. Empty when the value type is not Credential." + }, + "ExternalName": { + "maxLength": 450, + "minLength": 0, + "type": "string", + "description": "Contains the value of the key in the external store used to store the credentials." + }, + "CredentialStoreId": { + "type": "integer", + "description": "The Credential Store used to store the credentials.", + "format": "int64" + }, + "KeyValueList": { + "type": "array", + "description": "A collection of key value pairs when the type is KeyValueList. Empty when the value type is not KeyValueList.", + "items": { + "$ref": "#/components/schemas/CustomKeyValuePair" + } + }, + "Id": { + "type": "integer", + "format": "int64" + } + }, + "description": "A robot asset stores the information of a per robot asset for a specific robot, without specifying the robot." + }, + "RobotCreatedEventDto": { + "required": [ + "EventId", + "Timestamp", + "Type" + ], + "type": "object", + "properties": { + "Type": { + "minLength": 1, + "type": "string" + }, + "EventId": { + "maxLength": 50, + "minLength": 0, + "type": "string" + }, + "EntityKey": { + "type": "string", + "format": "uuid" + }, + "Timestamp": { + "type": "string", + "format": "date-time" + }, + "Robots": { + "type": "array", + "readOnly": true, + "items": { + "$ref": "#/components/schemas/WrappedRobotDto" + } + }, + "EventTime": { + "type": "string", + "format": "date-time" + }, + "EventSourceId": { + "type": "integer", + "format": "int64", + "readOnly": true + }, + "TenantId": { + "type": "integer", + "format": "int32" + }, + "OrganizationUnitId": { + "type": "integer", + "format": "int64" + }, + "OrganizationUnitKey": { + "type": "string", + "format": "uuid" + }, + "UserId": { + "type": "integer", + "format": "int64" + } + }, + "description": "This event is raised whenever robots were created", + "x-webhook-event": "robot.created" + }, + "RobotDeleteBulkRequest": { + "required": [ + "robotIds" + ], + "type": "object", + "properties": { + "robotIds": { + "type": "array", + "items": { + "type": "integer", + "format": "int64" + } + } + } + }, + "RobotDeletedEventDto": { + "required": [ + "EventId", + "Timestamp", + "Type" + ], + "type": "object", + "properties": { + "Type": { + "minLength": 1, + "type": "string" + }, + "EventId": { + "maxLength": 50, + "minLength": 0, + "type": "string" + }, + "EntityKey": { + "type": "string", + "format": "uuid" + }, + "Timestamp": { + "type": "string", + "format": "date-time" + }, + "Robots": { + "type": "array", + "readOnly": true, + "items": { + "$ref": "#/components/schemas/WrappedRobotDto" + } + }, + "EventTime": { + "type": "string", + "format": "date-time" + }, + "EventSourceId": { + "type": "integer", + "format": "int64", + "readOnly": true + }, + "TenantId": { + "type": "integer", + "format": "int32" + }, + "OrganizationUnitId": { + "type": "integer", + "format": "int64" + }, + "OrganizationUnitKey": { + "type": "string", + "format": "uuid" + }, + "UserId": { + "type": "integer", + "format": "int64" + } + }, + "description": "This event is raised whenever robots were deleted", + "x-webhook-event": "robot.deleted" + }, + "RobotDto": { + "required": [ + "HostingType", + "Name", + "Type" + ], + "type": "object", + "properties": { + "LicenseKey": { + "maxLength": 255, + "minLength": 0, + "type": "string", + "description": "The key is automatically generated from the server for the Robot machine.\r\nFor the robot to work, the same key must exist on both the robot and Orchestrator.\r\nAll robots on a machine must have the same license key in order to register correctly." + }, + "MachineName": { + "maxLength": 450, + "minLength": 0, + "type": "string", + "description": "The name of the machine a Robot is hosted on." + }, + "MachineId": { + "type": "integer", + "description": "The Id of the machine a Robot is hosted on", + "format": "int64" + }, + "Name": { + "maxLength": 19, + "minLength": 0, + "type": "string", + "description": "A custom name for the robot." + }, + "Username": { + "maxLength": 100, + "minLength": 0, + "type": "string", + "description": "The machine username. If the user is under a domain, you are required to also specify it in a DOMAIN\\username format.\r\nNote: You must use short domain names, such as desktop\\administrator and NOT desktop.local/administrator." + }, + "ExternalName": { + "maxLength": 450, + "minLength": 0, + "type": "string", + "description": "Contains the value of the key in the external store used to store the password." + }, + "Description": { + "maxLength": 500, + "minLength": 0, + "type": "string", + "description": "Used to add additional information about a robot in order to better identify it." + }, + "Type": { + "type": "string", + "description": "The Robot type.", + "enum": [ + "NonProduction", + "Attended", + "Unattended", + "Development", + "Studio", + "RpaDeveloper", + "StudioX", + "CitizenDeveloper", + "Headless", + "StudioPro", + "RpaDeveloperPro", + "TestAutomation", + "AutomationCloud", + "Serverless", + "AutomationKit", + "ServerlessTestAutomation", + "AutomationCloudTestAutomation", + "AttendedStudioWeb" + ], + "x-ms-enum": { + "name": "RobotDtoType", + "modelAsString": false + } + }, + "HostingType": { + "type": "string", + "description": "The Robot hosting type (Standard / Floating).", + "enum": [ + "Standard", + "Floating" + ], + "x-ms-enum": { + "name": "RobotDtoHostingType", + "modelAsString": false + } + }, + "ProvisionType": { + "type": "string", + "description": "The Robot provision type.", + "enum": [ + "Manual", + "Automatic" + ], + "x-ms-enum": { + "name": "RobotDtoProvisionType", + "modelAsString": false + } + }, + "Password": { + "maxLength": 100, + "minLength": 0, + "type": "string", + "description": "The Windows password associated with the machine username." + }, + "CredentialStoreId": { + "type": "integer", + "description": "The Credential Store used to store the password.", + "format": "int64" + }, + "UserId": { + "type": "integer", + "description": "The associated user's Id.", + "format": "int64" + }, + "Enabled": { + "type": "boolean", + "description": "Specificies the state of the Robot (enabled/disabled) - a disabled robot cannot connect to Orchestrator" + }, + "CredentialType": { + "type": "string", + "description": "The robot credentials type (Default/ SmartCard)", + "enum": [ + "Default", + "SmartCard", + "NCipher", + "SafeNet", + "NoCredential" + ], + "x-ms-enum": { + "name": "RobotDtoCredentialType", + "modelAsString": false + } + }, + "Environments": { + "type": "array", + "description": "The collection of environments the robot is part of.", + "items": { + "$ref": "#/components/schemas/EnvironmentDto" + } + }, + "RobotEnvironments": { + "type": "string", + "description": "The comma separated textual representation of environment names the robot is part of." + }, + "ExecutionSettings": { + "type": "object", + "additionalProperties": { + "type": "object" + }, + "description": "A collection of key value pairs containing execution settings for this robot." + }, + "IsExternalLicensed": { + "type": "boolean", + "description": "Flag to indicate if the robot uses an external license" + }, + "LimitConcurrentExecution": { + "type": "boolean", + "description": "Specifies if the robot can be used concurrently on multiple machines" + }, + "LastModificationTime": { + "type": "string", + "format": "date-time" + }, + "LastModifierUserId": { + "type": "integer", + "format": "int64" + }, + "CreationTime": { + "type": "string", + "format": "date-time" + }, + "CreatorUserId": { + "type": "integer", + "format": "int64" + }, + "Id": { + "type": "integer", + "format": "int64" + } + }, + "description": "A Robot is an execution host that runs processes built in UiPath Studio." + }, + "RobotExecutorDto": { + "type": "object", + "properties": { + "MachineName": { + "type": "string", + "description": "The name of the machine on which the robot runs the job." + }, + "Name": { + "type": "string", + "description": "The name of the robot that runs the job." + }, + "Description": { + "type": "string", + "description": "The description of the robot that runs the job." + }, + "Id": { + "type": "integer", + "format": "int64" + } + }, + "description": "Stores information about a robot on which a process will be executed." + }, + "RobotLicenseDto": { + "type": "object", + "properties": { + "RobotId": { + "type": "integer", + "description": "The associated Robot's Id", + "format": "int64" + }, + "Timestamp": { + "type": "string", + "description": "The date when the license was acquired", + "format": "date-time" + }, + "Id": { + "type": "integer", + "format": "int64" + } + }, + "description": "Entity that represents an acquired Robot license" + }, + "RobotUpdatedEventDto": { + "required": [ + "EventId", + "Timestamp", + "Type" + ], + "type": "object", + "properties": { + "Type": { + "minLength": 1, + "type": "string" + }, + "EventId": { + "maxLength": 50, + "minLength": 0, + "type": "string" + }, + "EntityKey": { + "type": "string", + "format": "uuid" + }, + "Timestamp": { + "type": "string", + "format": "date-time" + }, + "Robots": { + "type": "array", + "readOnly": true, + "items": { + "$ref": "#/components/schemas/WrappedRobotDto" + } + }, + "EventTime": { + "type": "string", + "format": "date-time" + }, + "EventSourceId": { + "type": "integer", + "format": "int64", + "readOnly": true + }, + "TenantId": { + "type": "integer", + "format": "int32" + }, + "OrganizationUnitId": { + "type": "integer", + "format": "int64" + }, + "OrganizationUnitKey": { + "type": "string", + "format": "uuid" + }, + "UserId": { + "type": "integer", + "format": "int64" + } + }, + "description": "This event is raised whenever robots were updated", + "x-webhook-event": "robot.updated" + }, + "RobotUserDto": { + "required": [ + "RobotId" + ], + "type": "object", + "properties": { + "UserName": { + "type": "string", + "description": "The name of the user." + }, + "RobotId": { + "type": "integer", + "description": "The Id of the Robot.", + "format": "int64" + }, + "HasTriggers": { + "type": "boolean", + "description": "Whether the machine robot has triggers defined or not." + } + } + }, + "RobotWithLicenseDto": { + "required": [ + "HostingType", + "Name", + "Type" + ], + "type": "object", + "properties": { + "License": { + "$ref": "#/components/schemas/RobotLicenseDto" + }, + "User": { + "$ref": "#/components/schemas/UserDto" + }, + "LicenseKey": { + "maxLength": 255, + "minLength": 0, + "type": "string", + "description": "The key is automatically generated from the server for the Robot machine.\r\nFor the robot to work, the same key must exist on both the robot and Orchestrator.\r\nAll robots on a machine must have the same license key in order to register correctly." + }, + "MachineName": { + "maxLength": 450, + "minLength": 0, + "type": "string", + "description": "The name of the machine a Robot is hosted on." + }, + "MachineId": { + "type": "integer", + "description": "The Id of the machine a Robot is hosted on", + "format": "int64" + }, + "Name": { + "maxLength": 19, + "minLength": 0, + "type": "string", + "description": "A custom name for the robot." + }, + "Username": { + "maxLength": 100, + "minLength": 0, + "type": "string", + "description": "The machine username. If the user is under a domain, you are required to also specify it in a DOMAIN\\username format.\r\nNote: You must use short domain names, such as desktop\\administrator and NOT desktop.local/administrator." + }, + "ExternalName": { + "maxLength": 450, + "minLength": 0, + "type": "string", + "description": "Contains the value of the key in the external store used to store the password." + }, + "Description": { + "maxLength": 500, + "minLength": 0, + "type": "string", + "description": "Used to add additional information about a robot in order to better identify it." + }, + "Type": { + "type": "string", + "description": "The Robot type.", + "enum": [ + "NonProduction", + "Attended", + "Unattended", + "Development", + "Studio", + "RpaDeveloper", + "StudioX", + "CitizenDeveloper", + "Headless", + "StudioPro", + "RpaDeveloperPro", + "TestAutomation", + "AutomationCloud", + "Serverless", + "AutomationKit", + "ServerlessTestAutomation", + "AutomationCloudTestAutomation", + "AttendedStudioWeb" + ], + "x-ms-enum": { + "name": "RobotDtoType", + "modelAsString": false + } + }, + "HostingType": { + "type": "string", + "description": "The Robot hosting type (Standard / Floating).", + "enum": [ + "Standard", + "Floating" + ], + "x-ms-enum": { + "name": "RobotDtoHostingType", + "modelAsString": false + } + }, + "ProvisionType": { + "type": "string", + "description": "The Robot provision type.", + "enum": [ + "Manual", + "Automatic" + ], + "x-ms-enum": { + "name": "RobotDtoProvisionType", + "modelAsString": false + } + }, + "Password": { + "maxLength": 100, + "minLength": 0, + "type": "string", + "description": "The Windows password associated with the machine username." + }, + "CredentialStoreId": { + "type": "integer", + "description": "The Credential Store used to store the password.", + "format": "int64" + }, + "UserId": { + "type": "integer", + "description": "The associated user's Id.", + "format": "int64" + }, + "Enabled": { + "type": "boolean", + "description": "Specificies the state of the Robot (enabled/disabled) - a disabled robot cannot connect to Orchestrator" + }, + "CredentialType": { + "type": "string", + "description": "The robot credentials type (Default/ SmartCard)", + "enum": [ + "Default", + "SmartCard", + "NCipher", + "SafeNet", + "NoCredential" + ], + "x-ms-enum": { + "name": "RobotDtoCredentialType", + "modelAsString": false + } + }, + "Environments": { + "type": "array", + "description": "The collection of environments the robot is part of.", + "items": { + "$ref": "#/components/schemas/EnvironmentDto" + } + }, + "RobotEnvironments": { + "type": "string", + "description": "The comma separated textual representation of environment names the robot is part of." + }, + "ExecutionSettings": { + "type": "object", + "additionalProperties": { + "type": "object" + }, + "description": "A collection of key value pairs containing execution settings for this robot." + }, + "IsExternalLicensed": { + "type": "boolean", + "description": "Flag to indicate if the robot uses an external license" + }, + "LimitConcurrentExecution": { + "type": "boolean", + "description": "Specifies if the robot can be used concurrently on multiple machines" + }, + "LastModificationTime": { + "type": "string", + "format": "date-time" + }, + "LastModifierUserId": { + "type": "integer", + "format": "int64" + }, + "CreationTime": { + "type": "string", + "format": "date-time" + }, + "CreatorUserId": { + "type": "integer", + "format": "int64" + }, + "Id": { + "type": "integer", + "format": "int64" + } + }, + "description": "Entity derived from RobotDto. Is shares all the properties of the base entity and includes the license field." + }, + "RobotsConvertToFloatingRequest": { + "required": [ + "robotId" + ], + "type": "object", + "properties": { + "robotId": { + "type": "integer", + "format": "int64" + } + } + }, + "RobotsFromFolderModel": { + "required": [ + "HostingType", + "Name", + "Type" + ], + "type": "object", + "properties": { + "UserType": { + "type": "string", + "enum": [ + "User", + "Robot", + "DirectoryUser", + "DirectoryGroup", + "DirectoryRobot", + "DirectoryExternalApplication" + ], + "x-ms-enum": { + "name": "RobotsFromFolderModelUserType", + "modelAsString": false + } + }, + "UserEmail": { + "type": "string" + }, + "UserFullName": { + "type": "string" + }, + "LicenseKey": { + "maxLength": 255, + "minLength": 0, + "type": "string", + "description": "The key is automatically generated from the server for the Robot machine.\r\nFor the robot to work, the same key must exist on both the robot and Orchestrator.\r\nAll robots on a machine must have the same license key in order to register correctly." + }, + "MachineName": { + "maxLength": 450, + "minLength": 0, + "type": "string", + "description": "The name of the machine a Robot is hosted on." + }, + "MachineId": { + "type": "integer", + "description": "The Id of the machine a Robot is hosted on", + "format": "int64" + }, + "Name": { + "maxLength": 19, + "minLength": 0, + "type": "string", + "description": "A custom name for the robot." + }, + "Username": { + "maxLength": 100, + "minLength": 0, + "type": "string", + "description": "The machine username. If the user is under a domain, you are required to also specify it in a DOMAIN\\username format.\r\nNote: You must use short domain names, such as desktop\\administrator and NOT desktop.local/administrator." + }, + "ExternalName": { + "maxLength": 450, + "minLength": 0, + "type": "string", + "description": "Contains the value of the key in the external store used to store the password." + }, + "Description": { + "maxLength": 500, + "minLength": 0, + "type": "string", + "description": "Used to add additional information about a robot in order to better identify it." + }, + "Type": { + "type": "string", + "description": "The Robot type.", + "enum": [ + "NonProduction", + "Attended", + "Unattended", + "Development", + "Studio", + "RpaDeveloper", + "StudioX", + "CitizenDeveloper", + "Headless", + "StudioPro", + "RpaDeveloperPro", + "TestAutomation", + "AutomationCloud", + "Serverless", + "AutomationKit", + "ServerlessTestAutomation", + "AutomationCloudTestAutomation", + "AttendedStudioWeb" + ], + "x-ms-enum": { + "name": "RobotDtoType", + "modelAsString": false + } + }, + "HostingType": { + "type": "string", + "description": "The Robot hosting type (Standard / Floating).", + "enum": [ + "Standard", + "Floating" + ], + "x-ms-enum": { + "name": "RobotDtoHostingType", + "modelAsString": false + } + }, + "ProvisionType": { + "type": "string", + "description": "The Robot provision type.", + "enum": [ + "Manual", + "Automatic" + ], + "x-ms-enum": { + "name": "RobotDtoProvisionType", + "modelAsString": false + } + }, + "Password": { + "maxLength": 100, + "minLength": 0, + "type": "string", + "description": "The Windows password associated with the machine username." + }, + "CredentialStoreId": { + "type": "integer", + "description": "The Credential Store used to store the password.", + "format": "int64" + }, + "UserId": { + "type": "integer", + "description": "The associated user's Id.", + "format": "int64" + }, + "Enabled": { + "type": "boolean", + "description": "Specificies the state of the Robot (enabled/disabled) - a disabled robot cannot connect to Orchestrator" + }, + "CredentialType": { + "type": "string", + "description": "The robot credentials type (Default/ SmartCard)", + "enum": [ + "Default", + "SmartCard", + "NCipher", + "SafeNet", + "NoCredential" + ], + "x-ms-enum": { + "name": "RobotDtoCredentialType", + "modelAsString": false + } + }, + "Environments": { + "type": "array", + "description": "The collection of environments the robot is part of.", + "items": { + "$ref": "#/components/schemas/EnvironmentDto" + } + }, + "RobotEnvironments": { + "type": "string", + "description": "The comma separated textual representation of environment names the robot is part of." + }, + "ExecutionSettings": { + "type": "object", + "additionalProperties": { + "type": "object" + }, + "description": "A collection of key value pairs containing execution settings for this robot." + }, + "IsExternalLicensed": { + "type": "boolean", + "description": "Flag to indicate if the robot uses an external license" + }, + "LimitConcurrentExecution": { + "type": "boolean", + "description": "Specifies if the robot can be used concurrently on multiple machines" + }, + "LastModificationTime": { + "type": "string", + "format": "date-time" + }, + "LastModifierUserId": { + "type": "integer", + "format": "int64" + }, + "CreationTime": { + "type": "string", + "format": "date-time" + }, + "CreatorUserId": { + "type": "integer", + "format": "int64" + }, + "Id": { + "type": "integer", + "format": "int64" + } + } + }, + "RobotsToggleEnabledStatusRequest": { + "required": [ + "enabled", + "robotIds" + ], + "type": "object", + "properties": { + "robotIds": { + "type": "array", + "items": { + "type": "integer", + "format": "int64" + } + }, + "enabled": { + "type": "boolean" + } + } + }, + "RoleDto": { + "type": "object", + "properties": { + "Name": { + "maxLength": 64, + "type": "string", + "description": "A custom name for the role." + }, + "DisplayName": { + "maxLength": 64, + "type": "string", + "description": "An alternative name used for UI display." + }, + "Type": { + "type": "string", + "description": "Can be: Mixed, Tenant or Folder based on the permissions it includes", + "enum": [ + "Mixed", + "Tenant", + "Folder" + ], + "x-ms-enum": { + "name": "RoleDtoType", + "modelAsString": false + } + }, + "Groups": { + "type": "string", + "description": "Allows grouping multiple roles together." + }, + "IsStatic": { + "type": "boolean", + "description": "States whether this role is defined by the application and cannot be deleted or it is user defined and can be deleted." + }, + "IsEditable": { + "type": "boolean", + "description": "States whether the permissions for this role can be modified or not." + }, + "Permissions": { + "type": "array", + "description": "The collection of application permissions associated with the role.", + "items": { + "$ref": "#/components/schemas/PermissionDto" + } + }, + "Id": { + "type": "integer", + "format": "int32" + } + }, + "description": "A role acts as a grouping of permissions. Roles are associated with users to provide application authorization." + }, + "RoleUsersDto": { + "type": "object", + "properties": { + "Name": { + "type": "string" + }, + "Users": { + "type": "array", + "items": { + "$ref": "#/components/schemas/SimpleUserEntityDto" + } + }, + "Id": { + "type": "integer", + "format": "int32" + } + } + }, + "SessionDto": { + "type": "object", + "properties": { + "Robot": { + "$ref": "#/components/schemas/RobotWithLicenseDto" + }, + "HostMachineName": { + "type": "string", + "description": "The name of the machine a Robot is hosted on." + }, + "MachineId": { + "type": "integer", + "description": "The Id of the Machine.", + "format": "int64" + }, + "MachineName": { + "type": "string", + "description": "The Machine's name." + }, + "State": { + "type": "string", + "description": "The value of the last reported status.", + "enum": [ + "Available", + "Busy", + "Disconnected", + "Unknown" + ], + "x-ms-enum": { + "name": "SessionDtoState", + "modelAsString": false + } + }, + "Job": { + "$ref": "#/components/schemas/JobDto" + }, + "ReportingTime": { + "type": "string", + "description": "The date and time when the last heartbeat came.", + "format": "date-time" + }, + "Info": { + "type": "string", + "description": "May store additional information about the robot state." + }, + "IsUnresponsive": { + "type": "boolean", + "description": "If the robot did not report status for longer than 120 seconds." + }, + "LicenseErrorCode": { + "type": "string", + "description": "DEPRECATED. Last licensing error status.", + "enum": [ + "NoLicense", + "LicenseExpired", + "LicenseUnregistered", + "NoAvailableLicenses", + "NotEnoughAvailableSlots", + "NotEnoughRuntimeLicenses", + "LicenseIsAlreadyInUse", + "InvalidRequest", + "SlotsExceedLicenseLimit", + "RuntimeDisabled", + "ExternalNotSupported", + "UsageExceedsLicenseLimit", + "LicenseNotCompatible" + ], + "x-ms-enum": { + "name": "SessionDtoLicenseErrorCode", + "modelAsString": false + }, + "x-deprecated": true + }, + "OrganizationUnitId": { + "type": "integer", + "description": "The folder Id.", + "format": "int64" + }, + "FolderName": { + "type": "string", + "description": "The folder display name." + }, + "RobotSessionType": { + "type": "string", + "description": "The robot session type.", + "enum": [ + "LongLived", + "Ephemeral" + ], + "x-ms-enum": { + "name": "SessionDtoRobotSessionType", + "modelAsString": false + } + }, + "Version": { + "type": "string" + }, + "Source": { + "type": "string", + "enum": [ + "Assistant", + "StudioWeb", + "StudioDesktop" + ], + "x-ms-enum": { + "name": "SessionDtoSource", + "modelAsString": false + } + }, + "DebugModeExpirationDate": { + "type": "string", + "format": "date-time" + }, + "UpdateInfo": { + "$ref": "#/components/schemas/UpdateInfoDto" + }, + "InstallationId": { + "type": "string", + "format": "uuid" + }, + "Platform": { + "type": "string", + "enum": [ + "Unknown", + "Windows", + "Linux", + "OSX" + ], + "x-ms-enum": { + "name": "SessionDtoPlatform", + "modelAsString": false + } + }, + "EndpointDetection": { + "type": "string" + }, + "Id": { + "type": "integer", + "format": "int64" + } + }, + "description": "Stores information about the last status reported to Orchestrator by a registered robot." + }, + "SessionEventData": { + "type": "object", + "properties": { + "SessionId": { + "type": "integer", + "format": "int64", + "readOnly": true + }, + "RobotId": { + "type": "integer", + "format": "int64", + "readOnly": true + }, + "MachineId": { + "type": "integer", + "format": "int64", + "readOnly": true + }, + "MachineKey": { + "type": "string", + "format": "uuid", + "readOnly": true + }, + "HostMachineName": { + "type": "string", + "readOnly": true + }, + "ServiceUsername": { + "type": "string", + "readOnly": true + }, + "State": { + "type": "string", + "readOnly": true, + "enum": [ + "Available", + "Busy", + "Disconnected", + "Unknown" + ], + "x-ms-enum": { + "name": "SessionEventDataState", + "modelAsString": false + } + }, + "ReportingTime": { + "type": "string", + "format": "date-time", + "readOnly": true + }, + "IsUnresponsive": { + "type": "boolean", + "readOnly": true + }, + "LicenseErrorCode": { + "type": "string", + "readOnly": true, + "enum": [ + "NoLicense", + "LicenseExpired", + "LicenseUnregistered", + "NoAvailableLicenses", + "NotEnoughAvailableSlots", + "NotEnoughRuntimeLicenses", + "LicenseIsAlreadyInUse", + "InvalidRequest", + "SlotsExceedLicenseLimit", + "RuntimeDisabled", + "ExternalNotSupported", + "UsageExceedsLicenseLimit", + "LicenseNotCompatible" + ], + "x-ms-enum": { + "name": "SessionEventDataLicenseErrorCode", + "modelAsString": false + } + } + } + }, + "SessionMaintenanceModeParameters": { + "type": "object", + "properties": { + "sessionId": { + "type": "integer", + "format": "int64" + }, + "maintenanceMode": { + "type": "string", + "enum": [ + "Default", + "Enabled" + ], + "x-ms-enum": { + "name": "SessionMaintenanceModeParametersMaintenanceMode", + "modelAsString": false + } + }, + "stopJobsStrategy": { + "type": "string", + "enum": [ + "SoftStop", + "Kill" + ], + "x-ms-enum": { + "name": "SessionMaintenanceModeParametersStopJobsStrategy", + "modelAsString": false + } + } + } + }, + "SessionUpdatedEventDto": { + "required": [ + "EventId", + "Timestamp", + "Type" + ], + "type": "object", + "properties": { + "Type": { + "minLength": 1, + "type": "string" + }, + "EventId": { + "maxLength": 50, + "minLength": 0, + "type": "string" + }, + "EntityKey": { + "type": "string", + "format": "uuid" + }, + "Timestamp": { + "type": "string", + "format": "date-time" + }, + "Sessions": { + "type": "array", + "readOnly": true, + "items": { + "$ref": "#/components/schemas/SessionEventData" + } + }, + "EventTime": { + "type": "string", + "format": "date-time" + }, + "EventSourceId": { + "type": "integer", + "format": "int64", + "readOnly": true + }, + "TenantId": { + "type": "integer", + "format": "int32" + }, + "OrganizationUnitId": { + "type": "integer", + "format": "int64" + }, + "OrganizationUnitKey": { + "type": "string", + "format": "uuid" + }, + "UserId": { + "type": "integer", + "format": "int64" + } + }, + "description": "This event is raised whenever robot's session has changed", + "x-webhook-event": "robot.status" + }, + "SessionsToggleMachineSessionDebugModeRequest": { + "required": [ + "enabled" + ], + "type": "object", + "properties": { + "enabled": { + "type": "boolean" + }, + "minutes": { + "type": "integer", + "format": "int32" + } + } + }, + "SetUsersRequest": { + "required": [ + "addedUserIds", + "removedUserIds" + ], + "type": "object", + "properties": { + "addedUserIds": { + "type": "array", + "items": { + "type": "integer", + "format": "int64" + } + }, + "removedUserIds": { + "type": "array", + "items": { + "type": "integer", + "format": "int64" + } + } + } + }, + "SettingsDeleteBulkRequest": { + "type": "object", + "properties": { + "settingNames": { + "type": "array", + "items": { + "type": "string" + } + } + } + }, + "SettingsDto": { + "required": [ + "Name" + ], + "type": "object", + "properties": { + "Name": { + "maxLength": 128, + "minLength": 1, + "type": "string", + "description": "The name of a specific setting (e.g. Abp.Net.Mail.DefaultFromAddress)." + }, + "Value": { + "type": "string", + "description": "The value assigned to a specific setting (e.g. admin@mydomain.com)." + }, + "Scope": { + "type": "string", + "description": "The scope of a specific setting.", + "enum": [ + "Application", + "Tenant", + "User", + "All" + ], + "x-ms-enum": { + "name": "SettingsDtoScope", + "modelAsString": false + } + }, + "Id": { + "type": "string" + } + }, + "description": "Used to store various predefined application configurations like time zone or account e-mail information." + }, + "SettingsUpdateBulkRequest": { + "type": "object", + "properties": { + "settings": { + "type": "array", + "items": { + "$ref": "#/components/schemas/SettingsDto" + } + } + } + }, + "SignalRActivitySettingsDto": { + "type": "object", + "properties": { + "url": { + "type": "string", + "description": "Absolute url for the SignalR activity hub endpoint" + }, + "skipNegotiation": { + "type": "boolean", + "description": "If true, activity SignalR client should use websocket transport only and pass SkipNegotation" + } + }, + "description": "SignalR related settings" + }, + "SimpleFolderDto": { + "type": "object", + "properties": { + "DisplayName": { + "type": "string" + }, + "FullyQualifiedName": { + "type": "string" + }, + "Id": { + "type": "integer", + "format": "int64" + } + } + }, + "SimpleJobEventDto": { + "type": "object", + "properties": { + "Id": { + "type": "integer", + "format": "int64", + "readOnly": true + }, + "Key": { + "type": "string", + "format": "uuid", + "readOnly": true + }, + "Type": { + "type": "string", + "readOnly": true, + "enum": [ + "Unattended", + "Attended", + "ServerlessGeneric" + ], + "x-ms-enum": { + "name": "SimpleJobEventDtoType", + "modelAsString": false + } + }, + "State": { + "type": "string", + "readOnly": true, + "enum": [ + "Pending", + "Running", + "Stopping", + "Terminating", + "Faulted", + "Successful", + "Stopped", + "Suspended", + "Resumed" + ], + "x-ms-enum": { + "name": "SimpleJobEventDtoState", + "modelAsString": false + } + }, + "StartTime": { + "type": "string", + "format": "date-time", + "readOnly": true + }, + "ResumeTime": { + "type": "string", + "format": "date-time", + "readOnly": true + }, + "EndTime": { + "type": "string", + "format": "date-time", + "readOnly": true + }, + "CreationTime": { + "type": "string", + "format": "date-time", + "readOnly": true + }, + "Info": { + "type": "string", + "readOnly": true + }, + "SpecificPriorityValue": { + "type": "integer", + "format": "int32", + "readOnly": true + }, + "RuntimeType": { + "type": "string", + "enum": [ + "NonProduction", + "Attended", + "Unattended", + "Development", + "Studio", + "RpaDeveloper", + "StudioX", + "CitizenDeveloper", + "Headless", + "StudioPro", + "RpaDeveloperPro", + "TestAutomation", + "AutomationCloud", + "Serverless", + "AutomationKit", + "ServerlessTestAutomation", + "AutomationCloudTestAutomation", + "AttendedStudioWeb" + ], + "x-ms-enum": { + "name": "SimpleJobEventDtoRuntimeType", + "modelAsString": false + } + }, + "SourceType": { + "type": "string", + "readOnly": true, + "enum": [ + "Manual", + "Schedule", + "Agent", + "Queue", + "StudioWeb", + "IntegrationTrigger", + "StudioDesktop", + "AutomationOpsPipelines", + "Apps", + "SAP" + ], + "x-ms-enum": { + "name": "SimpleJobEventDtoSourceType", + "modelAsString": false + } + }, + "OutputArguments": { + "type": "object", + "properties": {}, + "readOnly": true + }, + "Robot": { + "$ref": "#/components/schemas/SimpleRobotEventDto" + }, + "Machine": { + "$ref": "#/components/schemas/SimpleMachineDto" + }, + "Release": { + "$ref": "#/components/schemas/SimpleReleaseEventDto" + } + } + }, + "SimpleMachineDto": { + "type": "object", + "properties": { + "Id": { + "type": "integer", + "format": "int64" + }, + "Key": { + "type": "string", + "format": "uuid" + }, + "Name": { + "type": "string" + }, + "ServiceUserName": { + "type": "string" + }, + "Type": { + "type": "string", + "enum": [ + "Standard", + "Template" + ], + "x-ms-enum": { + "name": "SimpleMachineDtoType", + "modelAsString": false + } + }, + "Scope": { + "type": "string", + "enum": [ + "Default", + "Shared", + "PersonalWorkspace", + "Cloud", + "Serverless" + ], + "x-ms-enum": { + "name": "SimpleMachineDtoScope", + "modelAsString": false + } + } + } + }, + "SimpleReleaseDto": { + "required": [ + "Name", + "ProcessKey", + "ProcessVersion" + ], + "type": "object", + "properties": { + "Key": { + "type": "string", + "description": "A unique identifier associated to each release." + }, + "ProcessKey": { + "minLength": 1, + "type": "string", + "description": "The unique identifier of the process associated with the release." + }, + "ProcessVersion": { + "minLength": 1, + "type": "string", + "description": "The version of the process associated with the release." + }, + "IsLatestVersion": { + "type": "boolean", + "description": "States whether the version of process associated with the release is latest or not." + }, + "IsProcessDeleted": { + "type": "boolean", + "description": "States whether the process associated with the release is deleted or not." + }, + "Description": { + "type": "string", + "description": "Used to add additional information about a release in order to better identify it." + }, + "Name": { + "minLength": 1, + "type": "string", + "description": "A custom name of the release. The default name format is ProcessName_EnvironmentName." + }, + "EnvironmentId": { + "type": "integer", + "description": "The Id of the environment associated with the release.", + "format": "int64" + }, + "EnvironmentName": { + "type": "string", + "description": "The name of the environment associated with the release." + }, + "Environment": { + "$ref": "#/components/schemas/EnvironmentDto" + }, + "EntryPointId": { + "type": "integer", + "format": "int64" + }, + "EntryPointPath": { + "type": "string" + }, + "EntryPoint": { + "$ref": "#/components/schemas/EntryPointDto" + }, + "InputArguments": { + "maxLength": 10000, + "type": "string", + "description": "Input parameters in JSON format to be passed as default values to job execution." + }, + "ProcessType": { + "type": "string", + "enum": [ + "Undefined", + "Process", + "TestAutomationProcess" + ], + "x-ms-enum": { + "name": "ReleaseDtoProcessType", + "modelAsString": false + } + }, + "SupportsMultipleEntryPoints": { + "type": "boolean" + }, + "RequiresUserInteraction": { + "type": "boolean" + }, + "IsAttended": { + "type": "boolean" + }, + "IsCompiled": { + "type": "boolean" + }, + "AutomationHubIdeaUrl": { + "type": "string" + }, + "CurrentVersion": { + "$ref": "#/components/schemas/ReleaseVersionDto" + }, + "ReleaseVersions": { + "type": "array", + "description": "The collection of release versions that current release had over time.", + "items": { + "$ref": "#/components/schemas/ReleaseVersionDto" + } + }, + "Arguments": { + "$ref": "#/components/schemas/ArgumentMetadata" + }, + "ProcessSettings": { + "$ref": "#/components/schemas/ProcessSettingsDto" + }, + "VideoRecordingSettings": { + "$ref": "#/components/schemas/VideoRecordingSettingsDto" + }, + "AutoUpdate": { + "type": "boolean" + }, + "HiddenForAttendedUser": { + "type": "boolean" + }, + "FeedId": { + "type": "string", + "format": "uuid" + }, + "JobPriority": { + "type": "string", + "description": "The execution priority. If null, it defaults to Normal.", + "enum": [ + "Low", + "Normal", + "High" + ], + "x-ms-enum": { + "name": "ReleaseDtoJobPriority", + "modelAsString": false + } + }, + "SpecificPriorityValue": { + "maximum": 100, + "minimum": 1, + "type": "integer", + "description": "Value for more granular control over execution priority.", + "format": "int32" + }, + "OrganizationUnitId": { + "type": "integer", + "description": "Id of the folder this release is part of.", + "format": "int64" + }, + "OrganizationUnitFullyQualifiedName": { + "type": "string", + "description": "Fully qualified name of the folder this release is part of." + }, + "TargetFramework": { + "type": "string", + "enum": [ + "Legacy", + "Windows", + "Portable" + ], + "x-ms-enum": { + "name": "ReleaseDtoTargetFramework", + "modelAsString": false + } + }, + "RobotSize": { + "type": "string", + "enum": [ + "Small", + "Standard", + "Medium", + "Large" + ], + "x-ms-enum": { + "name": "ReleaseDtoRobotSize", + "modelAsString": false + } + }, + "Tags": { + "type": "array", + "items": { + "$ref": "#/components/schemas/TagDto" + } + }, + "RemoteControlAccess": { + "type": "string", + "enum": [ + "None", + "ReadOnly", + "Full" + ], + "x-ms-enum": { + "name": "ReleaseDtoRemoteControlAccess", + "modelAsString": false + } + }, + "LastModificationTime": { + "type": "string", + "format": "date-time" + }, + "LastModifierUserId": { + "type": "integer", + "format": "int64" + }, + "CreationTime": { + "type": "string", + "format": "date-time" + }, + "CreatorUserId": { + "type": "integer", + "format": "int64" + }, + "Id": { + "type": "integer", + "format": "int64" + } + }, + "description": "Entity derived from BaseReleaseDto. It shares all the properties of the base entity except the navigation properties." + }, + "SimpleReleaseEventDto": { + "type": "object", + "properties": { + "Id": { + "type": "integer", + "description": "The Id of the process", + "format": "int64" + }, + "Key": { + "type": "string", + "description": "The unique key of the process" + }, + "ProcessKey": { + "type": "string", + "description": "The name of the process" + }, + "Name": { + "type": "string", + "description": "The display name of the process" + } + } + }, + "SimpleRobotDto": { + "required": [ + "HostingType", + "Name", + "Type" + ], + "type": "object", + "properties": { + "LicenseKey": { + "maxLength": 255, + "minLength": 0, + "type": "string", + "description": "The key is automatically generated from the server for the Robot machine.\r\nFor the robot to work, the same key must exist on both the robot and Orchestrator.\r\nAll robots on a machine must have the same license key in order to register correctly." + }, + "MachineName": { + "maxLength": 450, + "minLength": 0, + "type": "string", + "description": "The name of the machine a Robot is hosted on." + }, + "MachineId": { + "type": "integer", + "description": "The Id of the machine a Robot is hosted on", + "format": "int64" + }, + "Name": { + "maxLength": 19, + "minLength": 0, + "type": "string", + "description": "A custom name for the robot." + }, + "Username": { + "maxLength": 100, + "minLength": 0, + "type": "string", + "description": "The machine username. If the user is under a domain, you are required to also specify it in a DOMAIN\\username format.\r\nNote: You must use short domain names, such as desktop\\administrator and NOT desktop.local/administrator." + }, + "ExternalName": { + "maxLength": 450, + "minLength": 0, + "type": "string", + "description": "Contains the value of the key in the external store used to store the password." + }, + "Description": { + "maxLength": 500, + "minLength": 0, + "type": "string", + "description": "Used to add additional information about a robot in order to better identify it." + }, + "Type": { + "type": "string", + "description": "The Robot type.", + "enum": [ + "NonProduction", + "Attended", + "Unattended", + "Development", + "Studio", + "RpaDeveloper", + "StudioX", + "CitizenDeveloper", + "Headless", + "StudioPro", + "RpaDeveloperPro", + "TestAutomation", + "AutomationCloud", + "Serverless", + "AutomationKit", + "ServerlessTestAutomation", + "AutomationCloudTestAutomation", + "AttendedStudioWeb" + ], + "x-ms-enum": { + "name": "RobotDtoType", + "modelAsString": false + } + }, + "HostingType": { + "type": "string", + "description": "The Robot hosting type (Standard / Floating).", + "enum": [ + "Standard", + "Floating" + ], + "x-ms-enum": { + "name": "RobotDtoHostingType", + "modelAsString": false + } + }, + "ProvisionType": { + "type": "string", + "description": "The Robot provision type.", + "enum": [ + "Manual", + "Automatic" + ], + "x-ms-enum": { + "name": "RobotDtoProvisionType", + "modelAsString": false + } + }, + "Password": { + "maxLength": 100, + "minLength": 0, + "type": "string", + "description": "The Windows password associated with the machine username." + }, + "CredentialStoreId": { + "type": "integer", + "description": "The Credential Store used to store the password.", + "format": "int64" + }, + "UserId": { + "type": "integer", + "description": "The associated user's Id.", + "format": "int64" + }, + "Enabled": { + "type": "boolean", + "description": "Specificies the state of the Robot (enabled/disabled) - a disabled robot cannot connect to Orchestrator" + }, + "CredentialType": { + "type": "string", + "description": "The robot credentials type (Default/ SmartCard)", + "enum": [ + "Default", + "SmartCard", + "NCipher", + "SafeNet", + "NoCredential" + ], + "x-ms-enum": { + "name": "RobotDtoCredentialType", + "modelAsString": false + } + }, + "Environments": { + "type": "array", + "description": "The collection of environments the robot is part of.", + "items": { + "$ref": "#/components/schemas/EnvironmentDto" + } + }, + "RobotEnvironments": { + "type": "string", + "description": "The comma separated textual representation of environment names the robot is part of." + }, + "ExecutionSettings": { + "type": "object", + "additionalProperties": { + "type": "object" + }, + "description": "A collection of key value pairs containing execution settings for this robot." + }, + "IsExternalLicensed": { + "type": "boolean", + "description": "Flag to indicate if the robot uses an external license" + }, + "LimitConcurrentExecution": { + "type": "boolean", + "description": "Specifies if the robot can be used concurrently on multiple machines" + }, + "LastModificationTime": { + "type": "string", + "format": "date-time" + }, + "LastModifierUserId": { + "type": "integer", + "format": "int64" + }, + "CreationTime": { + "type": "string", + "format": "date-time" + }, + "CreatorUserId": { + "type": "integer", + "format": "int64" + }, + "Id": { + "type": "integer", + "format": "int64" + } + }, + "description": "Entity derived from RobotDto. Is shares all the properties of the base entity except the navigation properties." + }, + "SimpleRobotEventDto": { + "type": "object", + "properties": { + "Id": { + "type": "integer", + "format": "int64" + }, + "Key": { + "type": "string", + "format": "uuid" + }, + "Name": { + "type": "string" + }, + "Type": { + "type": "string", + "enum": [ + "NonProduction", + "Attended", + "Unattended", + "Development", + "Studio", + "RpaDeveloper", + "StudioX", + "CitizenDeveloper", + "Headless", + "StudioPro", + "RpaDeveloperPro", + "TestAutomation", + "AutomationCloud", + "Serverless", + "AutomationKit", + "ServerlessTestAutomation", + "AutomationCloudTestAutomation", + "AttendedStudioWeb" + ], + "x-ms-enum": { + "name": "SimpleRobotEventDtoType", + "modelAsString": false + } + }, + "MachineName": { + "type": "string" + }, + "LocalSystemAccount": { + "type": "string" + } + } + }, + "SimpleRoleDto": { + "type": "object", + "properties": { + "Origin": { + "type": "string", + "enum": [ + "Assigned", + "Inherited" + ], + "x-ms-enum": { + "name": "SimpleRoleDtoOrigin", + "modelAsString": false + } + }, + "RoleType": { + "type": "string", + "enum": [ + "Mixed", + "Tenant", + "Folder" + ], + "x-ms-enum": { + "name": "SimpleRoleDtoRoleType", + "modelAsString": false + } + }, + "InheritedFromFolder": { + "$ref": "#/components/schemas/SimpleFolderDto" + }, + "Name": { + "type": "string" + }, + "Id": { + "type": "integer", + "format": "int32" + } + } + }, + "SimpleUserDto": { + "type": "object", + "properties": { + "Name": { + "maxLength": 64, + "minLength": 0, + "type": "string", + "description": "The name of the person for which the user is created." + }, + "Surname": { + "maxLength": 64, + "minLength": 0, + "type": "string", + "description": "The surname of the person for which the user is created." + }, + "UserName": { + "type": "string", + "description": "The name used to login to Orchestrator." + }, + "Domain": { + "type": "string", + "description": "The domain from which the user is imported" + }, + "DirectoryIdentifier": { + "type": "string", + "description": "The directory identifier from which the user is imported" + }, + "FullName": { + "type": "string", + "description": "The full name of the person constructed with the format Name Surname." + }, + "EmailAddress": { + "maxLength": 256, + "minLength": 0, + "type": "string", + "description": "The e-mail address associated with the user.", + "format": "email" + }, + "IsEmailConfirmed": { + "type": "boolean", + "description": "States if the email address is valid or not." + }, + "LastLoginTime": { + "type": "string", + "description": "The date and time when the user last logged in, or null if the user never logged in.", + "format": "date-time" + }, + "IsActive": { + "type": "boolean", + "description": "States if the user is active or not. An inactive user cannot login to Orchestrator." + }, + "CreationTime": { + "type": "string", + "description": "The date and time when the user was created.", + "format": "date-time" + }, + "AuthenticationSource": { + "type": "string", + "description": "The source which authenticated this user." + }, + "Password": { + "type": "string", + "description": "The password used during application login." + }, + "IsExternalLicensed": { + "type": "boolean" + }, + "UserRoles": { + "type": "array", + "description": "The collection of roles associated with the user.", + "items": { + "$ref": "#/components/schemas/UserRoleDto" + } + }, + "RolesList": { + "type": "array", + "description": "The collection of role names associated with the user.", + "items": { + "type": "string" + } + }, + "LoginProviders": { + "type": "array", + "description": "The collection of entities that can authenticate the user.", + "items": { + "type": "string" + } + }, + "OrganizationUnits": { + "type": "array", + "description": "The collection of organization units associated with the user.", + "items": { + "$ref": "#/components/schemas/OrganizationUnitDto" + } + }, + "TenantId": { + "type": "integer", + "description": "The id of the tenant owning the user.", + "format": "int32" + }, + "TenancyName": { + "type": "string", + "description": "The name of the tenant owning the user." + }, + "TenantDisplayName": { + "type": "string", + "description": "The display name of the tenant owning the user." + }, + "TenantKey": { + "type": "string", + "description": "The key of the tenant owning the user." + }, + "Type": { + "type": "string", + "description": "The user type.", + "enum": [ + "User", + "Robot", + "DirectoryUser", + "DirectoryGroup", + "DirectoryRobot", + "DirectoryExternalApplication" + ], + "x-ms-enum": { + "name": "UserDtoType", + "modelAsString": false + } + }, + "ProvisionType": { + "type": "string", + "description": "The user type.", + "enum": [ + "Manual", + "Automatic" + ], + "x-ms-enum": { + "name": "UserDtoProvisionType", + "modelAsString": false + } + }, + "LicenseType": { + "type": "string", + "description": "The user's license type.", + "enum": [ + "NonProduction", + "Attended", + "Unattended", + "Development", + "Studio", + "RpaDeveloper", + "StudioX", + "CitizenDeveloper", + "Headless", + "StudioPro", + "RpaDeveloperPro", + "TestAutomation", + "AutomationCloud", + "Serverless", + "AutomationKit", + "ServerlessTestAutomation", + "AutomationCloudTestAutomation", + "AttendedStudioWeb" + ], + "x-ms-enum": { + "name": "UserDtoLicenseType", + "modelAsString": false + } + }, + "RobotProvision": { + "$ref": "#/components/schemas/AttendedRobotDto" + }, + "UnattendedRobot": { + "$ref": "#/components/schemas/UnattendedRobotDto" + }, + "NotificationSubscription": { + "$ref": "#/components/schemas/UserNotificationSubscription" + }, + "Key": { + "type": "string", + "description": "Unique key for a user", + "format": "uuid" + }, + "MayHaveUserSession": { + "type": "boolean", + "description": "Specifies whether this user is allowed to have a User session (default: true)" + }, + "MayHaveRobotSession": { + "type": "boolean", + "description": "Specifies whether this user is allowed to have an Attended Robot attached (default: true)" + }, + "MayHaveUnattendedSession": { + "type": "boolean", + "description": "Specifies whether this user is allowed to have an Unattended Robot attached (default: false)" + }, + "BypassBasicAuthRestriction": { + "type": "boolean", + "description": "Specifies whether this user bypasses the \"Auth.RestrictBasicAuthentication\" application setting (default: null)" + }, + "MayHavePersonalWorkspace": { + "type": "boolean", + "description": "Specifies whether this user is allowed to have a Personal Workspace" + }, + "UpdatePolicy": { + "$ref": "#/components/schemas/UpdatePolicyDto" + }, + "AccountId": { + "type": "string" + }, + "LastModificationTime": { + "type": "string", + "format": "date-time" + }, + "LastModifierUserId": { + "type": "integer", + "format": "int64" + }, + "CreatorUserId": { + "type": "integer", + "format": "int64" + }, + "Id": { + "type": "integer", + "format": "int64" + } + }, + "description": "Entity derived from UserDto. Is shares all the properties of the base entity except the navigation properties." + }, + "SimpleUserEntityDto": { + "type": "object", + "properties": { + "UserName": { + "type": "string" + }, + "IsInherited": { + "type": "boolean" + }, + "AssignedToFolderIds": { + "type": "array", + "items": { + "type": "integer", + "format": "int64" + } + }, + "MayHaveAttended": { + "type": "boolean" + }, + "MayHaveUnattended": { + "type": "boolean" + }, + "Type": { + "type": "string", + "enum": [ + "User", + "Robot", + "DirectoryUser", + "DirectoryGroup", + "DirectoryRobot", + "DirectoryExternalApplication" + ], + "x-ms-enum": { + "name": "SimpleUserEntityDtoType", + "modelAsString": false + } + }, + "Id": { + "type": "integer", + "format": "int64" + } + } + }, + "SmtpSettingModel": { + "required": [ + "Host", + "Port" + ], + "type": "object", + "properties": { + "Host": { + "minLength": 1, + "type": "string" + }, + "Port": { + "type": "integer", + "format": "int32" + }, + "UserName": { + "type": "string" + }, + "Password": { + "type": "string" + }, + "Domain": { + "type": "string" + }, + "EnableSsl": { + "type": "boolean" + }, + "UseDefaultCredentials": { + "type": "boolean" + }, + "DefaultFromAddress": { + "type": "string" + }, + "DefaultFromDisplayName": { + "type": "string" + } + } + }, + "SpecificEntityMonitoringFilters": { + "type": "object", + "properties": { + "entityId": { + "minimum": 1, + "type": "integer", + "format": "int64" + }, + "includeSubfolders": { + "type": "boolean" + }, + "tenantId": { + "maximum": 2147483647, + "minimum": 1, + "type": "integer", + "format": "int32", + "readOnly": true + }, + "organizationUnitIds": { + "type": "array", + "readOnly": true, + "items": { + "type": "integer", + "format": "int64" + } + }, + "timeFrameMinutes": { + "maximum": 43200, + "minimum": 1, + "type": "integer", + "format": "int32" + }, + "entityIds": { + "type": "array", + "items": { + "type": "integer", + "format": "int64" + } + } + } + }, + "StartJobsRequest": { + "required": [ + "startInfo" + ], + "type": "object", + "properties": { + "startInfo": { + "$ref": "#/components/schemas/StartProcessDto" + } + } + }, + "StartProcessDto": { + "type": "object", + "properties": { + "ReleaseKey": { + "type": "string", + "description": "The unique key of the release associated with the process." + }, + "Strategy": { + "type": "string", + "description": "States which robots from the environment are being run by the process.", + "enum": [ + "All", + "Specific", + "RobotCount", + "JobsCount", + "ModernJobsCount" + ], + "x-ms-enum": { + "name": "StartProcessDtoStrategy", + "modelAsString": false + } + }, + "RobotIds": { + "type": "array", + "description": "The collection of ids of specific robots selected to be run by the current process. This collection must be empty only if the start strategy is not Specific.", + "items": { + "type": "integer", + "format": "int64" + } + }, + "MachineSessionIds": { + "type": "array", + "description": "The machines used for running the job. If empty, the job will start on the first available machine", + "items": { + "type": "integer", + "format": "int64" + } + }, + "NoOfRobots": { + "type": "integer", + "description": "DEPRECATED. Number of pending jobs to be created in the environment, for the current process. This number must be greater than 0 only if the start strategy is RobotCount.", + "format": "int32", + "x-deprecated": true + }, + "JobsCount": { + "type": "integer", + "description": "Number of pending jobs to be created in the environment, for the current process. This number must be greater than 0 only if the start strategy is JobsCount.", + "format": "int32" + }, + "Source": { + "type": "string", + "description": "The Source of the job starting the current process.", + "enum": [ + "Manual", + "Schedule", + "Queue", + "StudioWeb", + "IntegrationTrigger", + "StudioDesktop", + "AutomationOpsPipelines", + "Apps", + "SAP" + ], + "x-ms-enum": { + "name": "StartProcessDtoSource", + "modelAsString": false + } + }, + "JobPriority": { + "type": "string", + "description": "Execution priority. If null, defaults to the JobPriority of its release.", + "enum": [ + "Low", + "Normal", + "High" + ], + "x-ms-enum": { + "name": "StartProcessDtoJobPriority", + "modelAsString": false + } + }, + "SpecificPriorityValue": { + "maximum": 100, + "minimum": 1, + "type": "integer", + "description": "Value for more granular control over execution priority.", + "format": "int32" + }, + "RuntimeType": { + "type": "string", + "enum": [ + "NonProduction", + "Attended", + "Unattended", + "Development", + "Studio", + "RpaDeveloper", + "StudioX", + "CitizenDeveloper", + "Headless", + "StudioPro", + "RpaDeveloperPro", + "TestAutomation", + "AutomationCloud", + "Serverless", + "AutomationKit", + "ServerlessTestAutomation", + "AutomationCloudTestAutomation", + "AttendedStudioWeb" + ], + "x-ms-enum": { + "name": "StartProcessDtoRuntimeType", + "modelAsString": false + } + }, + "InputArguments": { + "maxLength": 10000, + "type": "string", + "description": "Input parameters in JSON format to be passed to job execution." + }, + "Reference": { + "maxLength": 128, + "type": "string", + "description": "Optional user-specified reference for jobs" + }, + "MachineRobots": { + "type": "array", + "description": "The machine-robot mappings used for running the job.", + "items": { + "$ref": "#/components/schemas/MachineRobotDto" + } + }, + "TargetFramework": { + "type": "string", + "enum": [ + "Legacy", + "Windows", + "Portable" + ], + "x-ms-enum": { + "name": "StartProcessDtoTargetFramework", + "modelAsString": false + } + }, + "ResumeOnSameContext": { + "type": "boolean", + "description": "Gets or sets flag for honoring initial machine and robot choice upon resumption of created jobs, if jobs are suspended.
\r\nIf set, the jobs will resume on the same robot-machine pair on which they initially ran." + }, + "BatchExecutionKey": { + "type": "string", + "description": "Optional BatchExecutionKey", + "format": "uuid" + }, + "RequiresUserInteraction": { + "type": "boolean", + "description": "Specifies if the process can run in headless mode." + }, + "StopProcessExpression": { + "type": "string", + "description": "Number of seconds after which a running process will be stopped." + }, + "StopStrategy": { + "type": "string", + "description": "The way a running process is stopped.", + "enum": [ + "SoftStop", + "Kill" + ], + "x-ms-enum": { + "name": "StartProcessDtoStopStrategy", + "modelAsString": false + } + }, + "KillProcessExpression": { + "type": "string", + "description": "Grace period (in seconds) for soft stop. If a process doesn't stop after this amount, it will be killed" + }, + "RemoteControlAccess": { + "type": "string", + "enum": [ + "None", + "ReadOnly", + "Full" + ], + "x-ms-enum": { + "name": "StartProcessDtoRemoteControlAccess", + "modelAsString": false + } + }, + "AlertPendingExpression": { + "type": "string" + }, + "AlertRunningExpression": { + "type": "string" + }, + "RunAsMe": { + "type": "boolean" + } + }, + "description": "The Start Process transfers information from client to the server during JobsController.StartJobs custom action." + }, + "StopJobRequest": { + "required": [ + "strategy" + ], + "type": "object", + "properties": { + "strategy": { + "type": "string", + "enum": [ + "SoftStop", + "Kill" + ], + "x-ms-enum": { + "name": "StopJobRequestStrategy", + "modelAsString": false + } + } + } + }, + "StopJobsRequest": { + "required": [ + "jobIds", + "strategy" + ], + "type": "object", + "properties": { + "strategy": { + "type": "string", + "enum": [ + "SoftStop", + "Kill" + ], + "x-ms-enum": { + "name": "StopJobsRequestStrategy", + "modelAsString": false + } + }, + "jobIds": { + "type": "array", + "items": { + "type": "integer", + "format": "int64" + } + } + } + }, + "TagDto": { + "required": [ + "Name" + ], + "type": "object", + "properties": { + "Name": { + "maxLength": 256, + "minLength": 0, + "type": "string" + }, + "DisplayName": { + "maxLength": 256, + "minLength": 0, + "type": "string" + }, + "Value": { + "maxLength": 256, + "minLength": 0, + "type": "string" + }, + "DisplayValue": { + "maxLength": 256, + "minLength": 0, + "type": "string" + } + } + }, + "TaskActivityDto": { + "type": "object", + "properties": { + "CreatorUser": { + "$ref": "#/components/schemas/UserLoginInfoDto" + }, + "TargetUser": { + "$ref": "#/components/schemas/UserLoginInfoDto" + }, + "Task": { + "$ref": "#/components/schemas/TaskDto" + }, + "TaskNote": { + "$ref": "#/components/schemas/TaskNoteDto" + }, + "Key": { + "type": "string", + "description": "Key", + "format": "uuid" + }, + "TenantId": { + "type": "integer", + "description": "Gets or Sets the Tenant Id.", + "format": "int32" + }, + "OrganizationUnitId": { + "type": "integer", + "description": "Gets or sets the folder/organization-unit id.", + "format": "int64" + }, + "TaskId": { + "type": "integer", + "description": "Gets or sets the Id of Task to which this Note belongs to.", + "format": "int64" + }, + "ActivityType": { + "type": "string", + "description": "Gets or sets the activity type performed on Task.", + "enum": [ + "Created", + "Assigned", + "Reassigned", + "Unassigned", + "Saved", + "Forwarded", + "Completed", + "Commented", + "Deleted", + "BulkSaved", + "BulkCompleted", + "FirstOpened" + ], + "x-ms-enum": { + "name": "TaskActivityMetadataDtoActivityType", + "modelAsString": false + } + }, + "CreatorUserId": { + "type": "integer", + "description": "Gets or sets the id of the user who created the Task Note.", + "format": "int64" + }, + "TargetUserId": { + "type": "integer", + "description": "user to whom the Task is assigned on this activity", + "format": "int64" + }, + "TaskNoteId": { + "type": "integer", + "description": "Gets or sets the Id of the TaskNote created for this activity.", + "format": "int64" + }, + "CreationTime": { + "type": "string", + "description": "Gets or sets time at which this task was created.", + "format": "date-time" + }, + "Id": { + "type": "integer", + "format": "int64" + } + } + }, + "TaskAssignmentChangedEventDto": { + "required": [ + "EventId", + "Timestamp", + "Type" + ], + "type": "object", + "properties": { + "Type": { + "minLength": 1, + "type": "string" + }, + "EventId": { + "maxLength": 50, + "minLength": 0, + "type": "string" + }, + "EntityKey": { + "type": "string", + "format": "uuid" + }, + "Timestamp": { + "type": "string", + "format": "date-time" + }, + "Tasks": { + "type": "array", + "readOnly": true, + "items": { + "$ref": "#/components/schemas/WebhookTaskAssignmentChangedDto" + } + }, + "EventTime": { + "type": "string", + "format": "date-time" + }, + "EventSourceId": { + "type": "integer", + "format": "int64", + "readOnly": true + }, + "TenantId": { + "type": "integer", + "format": "int32" + }, + "OrganizationUnitId": { + "type": "integer", + "format": "int64" + }, + "OrganizationUnitKey": { + "type": "string", + "format": "uuid" + }, + "UserId": { + "type": "integer", + "format": "int64" + } + }, + "description": "Dto for UiPath.Orchestrator.LedgerEvents.TaskAssignmentChanged. Gets raised when task is assigned, reassigned or unassigned", + "x-webhook-event": "task.assignmentChanged" + }, + "TaskAssignmentRequest": { + "type": "object", + "properties": { + "TaskId": { + "minimum": 1, + "type": "integer", + "description": "Gets or sets the taskId for this task assignment.", + "format": "int64" + }, + "UserId": { + "type": "integer", + "description": "Gets or sets the userId for this task assignment.", + "format": "int64" + }, + "UserNameOrEmail": { + "maxLength": 256, + "type": "string", + "description": "Gets or sets the UserName or Email for this task assignment. If UserId is provided, this property is ignored." + } + }, + "description": "Class to hold assignment request details of a task." + }, + "TaskCatalogDto": { + "type": "object", + "properties": { + "Key": { + "type": "string", + "description": "Key of the Task Catalog.", + "format": "uuid" + }, + "Name": { + "type": "string", + "description": "Name of the Task Catalog." + }, + "Description": { + "type": "string", + "description": "Description of this task catalog." + }, + "CreationTime": { + "type": "string", + "description": "Creation time of task catalog", + "format": "date-time" + }, + "LastModificationTime": { + "type": "string", + "description": "Last Modification time of task catalog", + "format": "date-time" + }, + "FoldersCount": { + "type": "integer", + "description": "Number of folders where the task catalog is shared.", + "format": "int32" + }, + "Encrypted": { + "type": "boolean", + "description": "If the catalog is encrypted, tasks asociated to this will have their Data encrypted" + }, + "Tags": { + "type": "array", + "description": "List of tags associated to the task.", + "items": { + "$ref": "#/components/schemas/TagDto" + } + }, + "Id": { + "type": "integer", + "format": "int64" + } + }, + "description": "Task Catalog entity for external access" + }, + "TaskCatalogExtendedDetailsDto": { + "type": "object", + "properties": { + "AssociatedTasksCount": { + "type": "integer", + "format": "int32" + }, + "IsEncrypted": { + "type": "boolean" + }, + "TotalFolderCount": { + "type": "integer", + "format": "int64" + }, + "Key": { + "type": "string", + "format": "uuid" + } + } + }, + "TaskCatalogFoldersShareDto": { + "type": "object", + "properties": { + "TaskCatalogIds": { + "type": "array", + "items": { + "type": "integer", + "format": "int64" + } + }, + "ToAddFolderIds": { + "type": "array", + "items": { + "type": "integer", + "format": "int64" + } + }, + "ToRemoveFolderIds": { + "type": "array", + "items": { + "type": "integer", + "format": "int64" + } + } + } + }, + "TaskCatalogRequest": { + "required": [ + "Name" + ], + "type": "object", + "properties": { + "Name": { + "maxLength": 50, + "minLength": 1, + "type": "string", + "description": "Name of the Task Catalog." + }, + "Description": { + "maxLength": 512, + "type": "string", + "description": "Description of this task catalog." + }, + "Encrypted": { + "type": "boolean" + }, + "Tags": { + "type": "array", + "items": { + "$ref": "#/components/schemas/TagDto" + } + } + }, + "description": "Task Catalog entity for Creating or Updating Task Catalog" + }, + "TaskCompletedEventDto": { + "required": [ + "EventId", + "Timestamp", + "Type" + ], + "type": "object", + "properties": { + "Type": { + "minLength": 1, + "type": "string" + }, + "EventId": { + "maxLength": 50, + "minLength": 0, + "type": "string" + }, + "EntityKey": { + "type": "string", + "format": "uuid" + }, + "Timestamp": { + "type": "string", + "format": "date-time" + }, + "Tasks": { + "type": "array", + "readOnly": true, + "items": { + "$ref": "#/components/schemas/WebhookTaskCompletedDto" + } + }, + "EventTime": { + "type": "string", + "format": "date-time" + }, + "EventSourceId": { + "type": "integer", + "format": "int64", + "readOnly": true + }, + "TenantId": { + "type": "integer", + "format": "int32" + }, + "OrganizationUnitId": { + "type": "integer", + "format": "int64" + }, + "OrganizationUnitKey": { + "type": "string", + "format": "uuid" + }, + "UserId": { + "type": "integer", + "format": "int64" + } + }, + "description": "Dto for UiPath.Orchestrator.LedgerEvents.TaskCompleted. Gets raised when task is completed", + "x-webhook-event": "task.completed" + }, + "TaskCompletionRequest": { + "required": [ + "taskId" + ], + "type": "object", + "properties": { + "taskId": { + "type": "integer", + "description": "TaskId to retrieve form", + "format": "int64" + }, + "data": { + "type": "object", + "description": "Task data json" + }, + "action": { + "type": "string", + "description": "Action taken on this task" + } + } + }, + "TaskCreateRequest": { + "required": [ + "title" + ], + "type": "object", + "properties": { + "type": { + "type": "string", + "description": "Gets or sets type of this task, allowed type is 'ExternalTask'.", + "enum": [ + "FormTask", + "ExternalTask", + "DocumentValidationTask", + "DocumentClassificationTask", + "DataLabelingTask", + "AppTask" + ], + "x-ms-enum": { + "name": "TaskCreateRequestType", + "modelAsString": false + } + }, + "title": { + "maxLength": 512, + "minLength": 0, + "type": "string", + "description": "Gets or sets title of this task." + }, + "priority": { + "type": "string", + "description": "Gets or sets priority of this task.", + "enum": [ + "Low", + "Medium", + "High", + "Critical" + ], + "x-ms-enum": { + "name": "BaseTaskCreateRequestPriority", + "modelAsString": false + } + }, + "data": { + "type": "object", + "description": "Task data" + }, + "taskCatalogName": { + "maxLength": 50, + "type": "string", + "description": "Gets or sets the task catalog/category of the task" + }, + "externalTag": { + "maxLength": 128, + "type": "string", + "description": "Reference or name of external system" + }, + "tags": { + "type": "array", + "description": "List of tags associated to the task.", + "items": { + "$ref": "#/components/schemas/TagDto" + } + } + } + }, + "TaskCreatedEventDto": { + "required": [ + "EventId", + "Timestamp", + "Type" + ], + "type": "object", + "properties": { + "Type": { + "minLength": 1, + "type": "string" + }, + "EventId": { + "maxLength": 50, + "minLength": 0, + "type": "string" + }, + "EntityKey": { + "type": "string", + "format": "uuid" + }, + "Timestamp": { + "type": "string", + "format": "date-time" + }, + "Tasks": { + "type": "array", + "readOnly": true, + "items": { + "$ref": "#/components/schemas/WebhookTaskCreatedDto" + } + }, + "EventTime": { + "type": "string", + "format": "date-time" + }, + "EventSourceId": { + "type": "integer", + "format": "int64", + "readOnly": true + }, + "TenantId": { + "type": "integer", + "format": "int32" + }, + "OrganizationUnitId": { + "type": "integer", + "format": "int64" + }, + "OrganizationUnitKey": { + "type": "string", + "format": "uuid" + }, + "UserId": { + "type": "integer", + "format": "int64" + } + }, + "description": "Dto for UiPath.Orchestrator.LedgerEvents.TaskCreated. Gets raised when task is completed", + "x-webhook-event": "task.created" + }, + "TaskDataDto": { + "type": "object", + "properties": { + "status": { + "type": "string", + "description": "Task status", + "enum": [ + "Unassigned", + "Pending", + "Completed" + ], + "x-ms-enum": { + "name": "TaskDataDtoStatus", + "modelAsString": false + } + }, + "data": { + "type": "object", + "description": "Task form data json" + }, + "action": { + "type": "string", + "description": "Task form action" + }, + "waitJobState": { + "type": "string", + "description": "State of the job(if any) waiting on the current task", + "enum": [ + "Pending", + "Running", + "Stopping", + "Terminating", + "Faulted", + "Successful", + "Stopped", + "Suspended", + "Resumed" + ], + "x-ms-enum": { + "name": "TaskDataDtoWaitJobState", + "modelAsString": false + } + }, + "organizationUnitFullyQualifiedName": { + "type": "string", + "description": "Fully qualified folder name" + }, + "tags": { + "type": "array", + "description": "List of tags associated to the task.", + "items": { + "$ref": "#/components/schemas/TagDto" + } + }, + "assignedToUser": { + "$ref": "#/components/schemas/UserLoginInfoDto" + }, + "title": { + "type": "string", + "description": "Gets or sets title of this task." + }, + "type": { + "type": "string", + "description": "Gets or sets type of this task.", + "enum": [ + "FormTask", + "ExternalTask", + "DocumentValidationTask", + "DocumentClassificationTask", + "DataLabelingTask", + "AppTask" + ], + "x-ms-enum": { + "name": "TaskMetadataDtoType", + "modelAsString": false + } + }, + "priority": { + "type": "string", + "description": "Gets or sets priority of this task.", + "enum": [ + "Low", + "Medium", + "High", + "Critical" + ], + "x-ms-enum": { + "name": "TaskMetadataDtoPriority", + "modelAsString": false + } + }, + "assignedToUserId": { + "type": "integer", + "description": "Gets the id of the actual assigned user, if any.", + "format": "int64" + }, + "organizationUnitId": { + "type": "integer", + "description": "Gets or sets the folder/organization-unit id.", + "format": "int64" + }, + "externalTag": { + "type": "string", + "description": "Identifier of external system where this task is handled" + }, + "creatorJobKey": { + "type": "string", + "description": "Key of the job which created this task", + "format": "uuid" + }, + "waitJobKey": { + "type": "string", + "description": "Key job which is waiting on this task", + "format": "uuid" + }, + "lastAssignedTime": { + "type": "string", + "description": "Datetime when task was last assigned.", + "format": "date-time" + }, + "completionTime": { + "type": "string", + "description": "Datetime when task was completed.", + "format": "date-time" + }, + "isDeleted": { + "type": "boolean" + }, + "deleterUserId": { + "type": "integer", + "format": "int64" + }, + "deletionTime": { + "type": "string", + "format": "date-time" + }, + "lastModificationTime": { + "type": "string", + "format": "date-time" + }, + "lastModifierUserId": { + "type": "integer", + "format": "int64" + }, + "creationTime": { + "type": "string", + "format": "date-time" + }, + "creatorUserId": { + "type": "integer", + "format": "int64" + }, + "id": { + "type": "integer", + "format": "int64" + } + }, + "description": "Dto with attributes required for Wait activity" + }, + "TaskDataSaveRequest": { + "required": [ + "data", + "taskId" + ], + "type": "object", + "properties": { + "taskId": { + "type": "integer", + "description": "TaskId to retrieve form", + "format": "int64" + }, + "data": { + "type": "object", + "description": "Task data json" + } + } + }, + "TaskDefinitionDto": { + "type": "object", + "properties": { + "Name": { + "type": "string", + "description": "Name of the Task Definition." + }, + "Key": { + "type": "string", + "description": "Unique key for Task Definition", + "format": "uuid" + }, + "Description": { + "type": "string", + "description": "Description of this task definition." + }, + "Properties": { + "$ref": "#/components/schemas/TaskDefinitionPropertiesDto" + }, + "IsDeleted": { + "type": "boolean" + }, + "DeleterUserId": { + "type": "integer", + "format": "int64" + }, + "DeletionTime": { + "type": "string", + "format": "date-time" + }, + "LastModificationTime": { + "type": "string", + "format": "date-time" + }, + "LastModifierUserId": { + "type": "integer", + "format": "int64" + }, + "CreationTime": { + "type": "string", + "format": "date-time" + }, + "CreatorUserId": { + "type": "integer", + "format": "int64" + }, + "Id": { + "type": "integer", + "format": "int64" + } + }, + "description": "Task Definition entity for external access" + }, + "TaskDefinitionPropertiesDto": { + "type": "object", + "properties": { + "version": { + "type": "integer", + "description": "Version number of the property set", + "format": "int32" + }, + "schema": { + "type": "string", + "description": "Field Schema for the definition" + }, + "allowedActions": { + "type": "array", + "description": "Set of allowed actions for this version of Task Definition", + "items": { + "type": "string" + } + }, + "allowedActionsForDefinition": { + "type": "string" + }, + "taskDefinitionKey": { + "type": "string", + "format": "uuid" + }, + "creationTime": { + "type": "string", + "format": "date-time" + }, + "creatorUserId": { + "type": "integer", + "format": "int64" + }, + "id": { + "type": "integer", + "format": "int64" + } + }, + "description": "Task Definition Properties created for a definition" + }, + "TaskDefinitionPropertiesRequest": { + "type": "object", + "properties": { + "schema": { + "type": "string" + }, + "allowedActions": { + "type": "array", + "items": { + "type": "string" + } + } + } + }, + "TaskDefinitionRequest": { + "type": "object", + "properties": { + "Name": { + "maxLength": 50, + "type": "string", + "description": "Name of the Task Definition." + }, + "Description": { + "maxLength": 512, + "type": "string", + "description": "Description of this task definition." + }, + "Properties": { + "$ref": "#/components/schemas/TaskDefinitionPropertiesRequest" + } + }, + "description": "Task Definition entity for Creating or Updating Task Definition" + }, + "TaskDeletedEventDto": { + "required": [ + "EventId", + "Timestamp", + "Type" + ], + "type": "object", + "properties": { + "Type": { + "minLength": 1, + "type": "string" + }, + "EventId": { + "maxLength": 50, + "minLength": 0, + "type": "string" + }, + "EntityKey": { + "type": "string", + "format": "uuid" + }, + "Timestamp": { + "type": "string", + "format": "date-time" + }, + "Tasks": { + "type": "array", + "readOnly": true, + "items": { + "$ref": "#/components/schemas/WrappedTaskDeletedDto" + } + }, + "EventTime": { + "type": "string", + "format": "date-time" + }, + "EventSourceId": { + "type": "integer", + "format": "int64", + "readOnly": true + }, + "TenantId": { + "type": "integer", + "format": "int32" + }, + "OrganizationUnitId": { + "type": "integer", + "format": "int64" + }, + "OrganizationUnitKey": { + "type": "string", + "format": "uuid" + }, + "UserId": { + "type": "integer", + "format": "int64" + } + }, + "description": "Dto for UiPath.Orchestrator.LedgerEvents.TaskDeleted. Gets raised when task is deleted", + "x-webhook-event": "task.deleted" + }, + "TaskDto": { + "type": "object", + "properties": { + "Status": { + "type": "string", + "description": "Gets or sets the status of this task.", + "enum": [ + "Unassigned", + "Pending", + "Completed" + ], + "x-ms-enum": { + "name": "TaskDtoStatus", + "modelAsString": false + } + }, + "AssignedToUser": { + "$ref": "#/components/schemas/UserLoginInfoDto" + }, + "CreatorUser": { + "$ref": "#/components/schemas/UserLoginInfoDto" + }, + "LastModifierUser": { + "$ref": "#/components/schemas/UserLoginInfoDto" + }, + "TaskCatalogName": { + "type": "string", + "description": "Gets or sets the task catalog/category of the task" + }, + "IsCompleted": { + "type": "boolean" + }, + "BulkFormLayoutId": { + "type": "integer", + "description": "Gets or sets the bulkFormLayoutId of the task", + "format": "int64" + }, + "FormLayoutId": { + "type": "integer", + "description": "Gets or sets the formLayoutId of the task", + "format": "int64" + }, + "Encrypted": { + "type": "boolean", + "description": "Indicates if the task Data field is stored in an encrypted form." + }, + "Tags": { + "type": "array", + "description": "List of tags associated to the task.", + "items": { + "$ref": "#/components/schemas/TagDto" + } + }, + "Action": { + "type": "string", + "description": "Gets or sets the action performed on the task" + }, + "Activities": { + "type": "array", + "description": "Gets the associated task activities for the task", + "items": { + "$ref": "#/components/schemas/TaskActivityDto" + } + }, + "Title": { + "type": "string", + "description": "Gets or sets title of this task." + }, + "Type": { + "type": "string", + "description": "Gets or sets type of this task.", + "enum": [ + "FormTask", + "ExternalTask", + "DocumentValidationTask", + "DocumentClassificationTask", + "DataLabelingTask", + "AppTask" + ], + "x-ms-enum": { + "name": "TaskMetadataDtoType", + "modelAsString": false + } + }, + "Priority": { + "type": "string", + "description": "Gets or sets priority of this task.", + "enum": [ + "Low", + "Medium", + "High", + "Critical" + ], + "x-ms-enum": { + "name": "TaskMetadataDtoPriority", + "modelAsString": false + } + }, + "AssignedToUserId": { + "type": "integer", + "description": "Gets the id of the actual assigned user, if any.", + "format": "int64" + }, + "OrganizationUnitId": { + "type": "integer", + "description": "Gets or sets the folder/organization-unit id.", + "format": "int64" + }, + "ExternalTag": { + "type": "string", + "description": "Identifier of external system where this task is handled" + }, + "CreatorJobKey": { + "type": "string", + "description": "Key of the job which created this task", + "format": "uuid" + }, + "WaitJobKey": { + "type": "string", + "description": "Key job which is waiting on this task", + "format": "uuid" + }, + "LastAssignedTime": { + "type": "string", + "description": "Datetime when task was last assigned.", + "format": "date-time" + }, + "CompletionTime": { + "type": "string", + "description": "Datetime when task was completed.", + "format": "date-time" + }, + "IsDeleted": { + "type": "boolean" + }, + "DeleterUserId": { + "type": "integer", + "format": "int64" + }, + "DeletionTime": { + "type": "string", + "format": "date-time" + }, + "LastModificationTime": { + "type": "string", + "format": "date-time" + }, + "LastModifierUserId": { + "type": "integer", + "format": "int64" + }, + "CreationTime": { + "type": "string", + "format": "date-time" + }, + "CreatorUserId": { + "type": "integer", + "format": "int64" + }, + "Id": { + "type": "integer", + "format": "int64" + } + }, + "description": "Simple Task entity for external access" + }, + "TaskFormDto": { + "type": "object", + "properties": { + "formLayout": { + "type": "object", + "description": "Task Form Layout json" + }, + "formLayoutId": { + "type": "integer", + "description": "Task Form Layout Id", + "format": "int64" + }, + "bulkFormLayoutId": { + "type": "integer", + "description": "Task Form Layout Id", + "format": "int64" + }, + "actionLabel": { + "type": "string", + "description": "Task form action label" + }, + "status": { + "type": "string", + "description": "Task status", + "enum": [ + "Unassigned", + "Pending", + "Completed" + ], + "x-ms-enum": { + "name": "TaskDataDtoStatus", + "modelAsString": false + } + }, + "data": { + "type": "object", + "description": "Task form data json" + }, + "action": { + "type": "string", + "description": "Task form action" + }, + "waitJobState": { + "type": "string", + "description": "State of the job(if any) waiting on the current task", + "enum": [ + "Pending", + "Running", + "Stopping", + "Terminating", + "Faulted", + "Successful", + "Stopped", + "Suspended", + "Resumed" + ], + "x-ms-enum": { + "name": "TaskDataDtoWaitJobState", + "modelAsString": false + } + }, + "organizationUnitFullyQualifiedName": { + "type": "string", + "description": "Fully qualified folder name" + }, + "tags": { + "type": "array", + "description": "List of tags associated to the task.", + "items": { + "$ref": "#/components/schemas/TagDto" + } + }, + "assignedToUser": { + "$ref": "#/components/schemas/UserLoginInfoDto" + }, + "title": { + "type": "string", + "description": "Gets or sets title of this task." + }, + "type": { + "type": "string", + "description": "Gets or sets type of this task.", + "enum": [ + "FormTask", + "ExternalTask", + "DocumentValidationTask", + "DocumentClassificationTask", + "DataLabelingTask", + "AppTask" + ], + "x-ms-enum": { + "name": "TaskMetadataDtoType", + "modelAsString": false + } + }, + "priority": { + "type": "string", + "description": "Gets or sets priority of this task.", + "enum": [ + "Low", + "Medium", + "High", + "Critical" + ], + "x-ms-enum": { + "name": "TaskMetadataDtoPriority", + "modelAsString": false + } + }, + "assignedToUserId": { + "type": "integer", + "description": "Gets the id of the actual assigned user, if any.", + "format": "int64" + }, + "organizationUnitId": { + "type": "integer", + "description": "Gets or sets the folder/organization-unit id.", + "format": "int64" + }, + "externalTag": { + "type": "string", + "description": "Identifier of external system where this task is handled" + }, + "creatorJobKey": { + "type": "string", + "description": "Key of the job which created this task", + "format": "uuid" + }, + "waitJobKey": { + "type": "string", + "description": "Key job which is waiting on this task", + "format": "uuid" + }, + "lastAssignedTime": { + "type": "string", + "description": "Datetime when task was last assigned.", + "format": "date-time" + }, + "completionTime": { + "type": "string", + "description": "Datetime when task was completed.", + "format": "date-time" + }, + "isDeleted": { + "type": "boolean" + }, + "deleterUserId": { + "type": "integer", + "format": "int64" + }, + "deletionTime": { + "type": "string", + "format": "date-time" + }, + "lastModificationTime": { + "type": "string", + "format": "date-time" + }, + "lastModifierUserId": { + "type": "integer", + "format": "int64" + }, + "creationTime": { + "type": "string", + "format": "date-time" + }, + "creatorUserId": { + "type": "integer", + "format": "int64" + }, + "id": { + "type": "integer", + "format": "int64" + } + }, + "description": "Dto for task form" + }, + "TaskForwardedEventDto": { + "required": [ + "EventId", + "Timestamp", + "Type" + ], + "type": "object", + "properties": { + "Type": { + "minLength": 1, + "type": "string" + }, + "EventId": { + "maxLength": 50, + "minLength": 0, + "type": "string" + }, + "EntityKey": { + "type": "string", + "format": "uuid" + }, + "Timestamp": { + "type": "string", + "format": "date-time" + }, + "Tasks": { + "type": "array", + "readOnly": true, + "items": { + "$ref": "#/components/schemas/WrappedTaskForwardedDto" + } + }, + "EventTime": { + "type": "string", + "format": "date-time" + }, + "EventSourceId": { + "type": "integer", + "format": "int64", + "readOnly": true + }, + "TenantId": { + "type": "integer", + "format": "int32" + }, + "OrganizationUnitId": { + "type": "integer", + "format": "int64" + }, + "OrganizationUnitKey": { + "type": "string", + "format": "uuid" + }, + "UserId": { + "type": "integer", + "format": "int64" + } + }, + "description": "Dto for UiPath.Orchestrator.LedgerEvents.TaskForwarded. Gets raised when task is Forwarded", + "x-webhook-event": "task.forwarded" + }, + "TaskNoteCreateRequest": { + "required": [ + "Text" + ], + "type": "object", + "properties": { + "Text": { + "maxLength": 512, + "minLength": 0, + "type": "string", + "description": "Gets or sets note text." + }, + "TaskId": { + "type": "integer", + "description": "Gets or sets Id of the Task", + "format": "int64" + } + } + }, + "TaskNoteDto": { + "type": "object", + "properties": { + "CreatorUser": { + "$ref": "#/components/schemas/UserLoginInfoDto" + }, + "LastModifierUser": { + "$ref": "#/components/schemas/UserLoginInfoDto" + }, + "Key": { + "type": "string", + "description": "Key", + "format": "uuid" + }, + "TenantId": { + "type": "integer", + "description": "Gets or Sets the Tenant Id.", + "format": "int32" + }, + "OrganizationUnitId": { + "type": "integer", + "description": "Gets or sets the folder/organization-unit id.", + "format": "int64" + }, + "TaskId": { + "type": "integer", + "description": "Gets or sets the Id of Task to which this Note belongs to.", + "format": "int64" + }, + "Text": { + "type": "string", + "description": "Gets or sets the text note for the task." + }, + "CreatorUserId": { + "type": "integer", + "description": "Gets or sets the id of the user who created the Task Note.", + "format": "int64" + }, + "CreationTime": { + "type": "string", + "description": "Gets or sets time at which this task was created.", + "format": "date-time" + }, + "Id": { + "type": "integer", + "format": "int64" + } + } + }, + "TaskOperationErrorResponse": { + "type": "object", + "properties": { + "TaskId": { + "type": "integer", + "description": "Gets or sets the taskId for this task operation.", + "format": "int64" + }, + "UserId": { + "type": "integer", + "description": "Gets or sets the userId for this task operation, null in case of task unassignment", + "format": "int64" + }, + "ErrorCode": { + "type": "integer", + "description": "Gets or sets the code of error occurred during this task's operation.", + "format": "int32" + }, + "ErrorMessage": { + "type": "string", + "description": "Gets or sets the translated message of error occurred during this task's operation." + }, + "UserNameOrEmail": { + "type": "string", + "description": "Gets or sets the userNameOrEmail for this task operation" + } + }, + "description": "Class to hold error details of an operation (assign/unassign/reassign/delete) on a task." + }, + "TaskSaveAndReassignmentRequest": { + "type": "object", + "properties": { + "SaveData": { + "type": "boolean", + "description": "Gets or Sets whether the data has to be saved" + }, + "Data": { + "type": "object", + "description": "Gets or sets the Task data" + }, + "NoteText": { + "maxLength": 512, + "type": "string", + "description": "Gets or sets the Task Note" + }, + "TaskId": { + "minimum": 1, + "type": "integer", + "description": "Gets or sets the taskId for this task assignment.", + "format": "int64" + }, + "UserId": { + "type": "integer", + "description": "Gets or sets the userId for this task assignment.", + "format": "int64" + }, + "UserNameOrEmail": { + "maxLength": 256, + "type": "string", + "description": "Gets or sets the UserName or Email for this task assignment. If UserId is provided, this property is ignored." + } + }, + "description": "Class to hold save and reassignment request details of a task." + }, + "TaskSavedEventDto": { + "required": [ + "EventId", + "Timestamp", + "Type" + ], + "type": "object", + "properties": { + "Type": { + "minLength": 1, + "type": "string" + }, + "EventId": { + "maxLength": 50, + "minLength": 0, + "type": "string" + }, + "EntityKey": { + "type": "string", + "format": "uuid" + }, + "Timestamp": { + "type": "string", + "format": "date-time" + }, + "Tasks": { + "type": "array", + "readOnly": true, + "items": { + "$ref": "#/components/schemas/WrappedTaskSavedDto" + } + }, + "EventTime": { + "type": "string", + "format": "date-time" + }, + "EventSourceId": { + "type": "integer", + "format": "int64", + "readOnly": true + }, + "TenantId": { + "type": "integer", + "format": "int32" + }, + "OrganizationUnitId": { + "type": "integer", + "format": "int64" + }, + "OrganizationUnitKey": { + "type": "string", + "format": "uuid" + }, + "UserId": { + "type": "integer", + "format": "int64" + } + }, + "description": "Dto for UiPath.Orchestrator.LedgerEvents.TaskSaved. Gets raised when task is Saved", + "x-webhook-event": "task.saved" + }, + "TaskTagsSaveRequest": { + "required": [ + "taskId" + ], + "type": "object", + "properties": { + "taskId": { + "type": "integer", + "description": "TaskId to retrieve form", + "format": "int64" + }, + "tags": { + "type": "array", + "description": "Tags collection", + "items": { + "$ref": "#/components/schemas/TagDto" + } + } + } + }, + "TasksAssignRequest": { + "required": [ + "taskAssignments" + ], + "type": "object", + "properties": { + "taskAssignments": { + "type": "array", + "items": { + "$ref": "#/components/schemas/TaskAssignmentRequest" + } + } + } + }, + "TasksDeleteRequest": { + "required": [ + "taskIds" + ], + "type": "object", + "properties": { + "taskIds": { + "type": "array", + "items": { + "type": "integer", + "format": "int64" + } + } + } + }, + "TenantDto": { + "type": "object", + "properties": { + "Name": { + "maxLength": 64, + "minLength": 0, + "pattern": "^[\\p{L}][\\p{L}0-9-_]+$", + "type": "string", + "description": "Name of the tenant." + }, + "Key": { + "type": "string", + "description": "Unique Key of the tenant." + }, + "DisplayName": { + "maxLength": 128, + "minLength": 0, + "type": "string", + "description": "Display name of the the tenant" + }, + "AdminEmailAddress": { + "maxLength": 256, + "minLength": 0, + "type": "string", + "description": "Default tenant's admin user account email address.", + "format": "email" + }, + "AdminName": { + "maxLength": 32, + "minLength": 0, + "type": "string", + "description": "Default tenant's admin user account name." + }, + "AdminSurname": { + "maxLength": 32, + "minLength": 0, + "type": "string", + "description": "Default tenant's admin user account surname." + }, + "AdminUserKey": { + "type": "string", + "description": "Default tenant's admin user account key." + }, + "AdminPassword": { + "maxLength": 32, + "minLength": 0, + "type": "string", + "description": "Default tenant's admin user account password. Only valid for create/update operations." + }, + "LastLoginTime": { + "type": "string", + "description": "The last time a user logged in this tenant.", + "format": "date-time" + }, + "IsActive": { + "type": "boolean", + "description": "Specifies if the tenant is active or not." + }, + "AcceptedDomainsList": { + "type": "array", + "description": "Accepted DNS list.", + "items": { + "type": "string" + } + }, + "HasConnectionString": { + "type": "boolean", + "description": "Specifies if the the tenant has a connection string defined" + }, + "ConnectionString": { + "maxLength": 1024, + "minLength": 0, + "type": "string", + "description": "DB connection string" + }, + "License": { + "$ref": "#/components/schemas/TenantLicenseDto" + }, + "OrganizationName": { + "type": "string", + "description": "Organization Name of the tenant." + }, + "Id": { + "type": "integer", + "format": "int32" + } + } + }, + "TenantLicenseDto": { + "type": "object", + "properties": { + "HostLicenseId": { + "type": "integer", + "description": "The host license Id.", + "format": "int64" + }, + "CreationTime": { + "type": "string", + "description": "The date it was uploaded.", + "format": "date-time" + }, + "Code": { + "type": "string", + "description": "The license code." + }, + "Allowed": { + "type": "object", + "additionalProperties": { + "type": "integer", + "format": "int64" + }, + "description": "Contains the number of allowed licenses for each type" + }, + "Id": { + "type": "integer", + "format": "int64" + } + } + }, + "TenantSetActiveRequest": { + "type": "object", + "properties": { + "active": { + "type": "boolean" + }, + "tenantIds": { + "type": "array", + "items": { + "type": "integer", + "format": "int32" + } + } + } + }, + "TestCaseAssertionDto": { + "type": "object", + "properties": { + "Message": { + "type": "string" + }, + "Payload": { + "type": "string" + }, + "Succeeded": { + "type": "boolean" + }, + "TestCaseExecutionId": { + "type": "integer", + "format": "int64" + }, + "HasScreenshot": { + "type": "boolean" + }, + "CreationTime": { + "type": "string", + "format": "date-time" + }, + "Id": { + "type": "integer", + "format": "int64" + } + } + }, + "TestCaseDefinitionDto": { + "type": "object", + "properties": { + "Name": { + "type": "string" + }, + "PackageIdentifier": { + "type": "string" + }, + "UniqueId": { + "type": "string", + "format": "uuid" + }, + "AppVersion": { + "type": "string" + }, + "CreatedVersion": { + "type": "string" + }, + "LatestVersion": { + "type": "string" + }, + "LatestPrereleaseVersion": { + "type": "string" + }, + "FeedId": { + "type": "string", + "format": "uuid" + }, + "LastModificationTime": { + "type": "string", + "format": "date-time" + }, + "LastModifierUserId": { + "type": "integer", + "format": "int64" + }, + "CreationTime": { + "type": "string", + "format": "date-time" + }, + "CreatorUserId": { + "type": "integer", + "format": "int64" + }, + "Id": { + "type": "integer", + "format": "int64" + } + } + }, + "TestCaseDto": { + "required": [ + "DefinitionId", + "ReleaseId", + "VersionNumber" + ], + "type": "object", + "properties": { + "Enabled": { + "type": "boolean" + }, + "DefinitionId": { + "type": "integer", + "format": "int64" + }, + "Definition": { + "$ref": "#/components/schemas/TestCaseDefinitionDto" + }, + "ReleaseId": { + "type": "integer", + "format": "int64" + }, + "VersionNumber": { + "minLength": 1, + "type": "string" + }, + "TestSetId": { + "type": "integer", + "format": "int64" + }, + "TestSet": { + "$ref": "#/components/schemas/TestSetDto" + }, + "LastModificationTime": { + "type": "string", + "format": "date-time" + }, + "LastModifierUserId": { + "type": "integer", + "format": "int64" + }, + "CreationTime": { + "type": "string", + "format": "date-time" + }, + "CreatorUserId": { + "type": "integer", + "format": "int64" + }, + "Id": { + "type": "integer", + "format": "int64" + } + } + }, + "TestCaseExecutionArgumentsDto": { + "required": [ + "testCaseExecutionId" + ], + "type": "object", + "properties": { + "testCaseExecutionId": { + "type": "integer", + "format": "int64" + }, + "inputArguments": { + "type": "object" + }, + "executionOrder": { + "type": "integer", + "format": "int32" + } + } + }, + "TestCaseExecutionAttachmentDto": { + "type": "object", + "properties": { + "TestCaseExecutionId": { + "type": "integer", + "format": "int64" + }, + "FileName": { + "type": "string" + }, + "MimeType": { + "type": "string" + }, + "CreationTime": { + "type": "string", + "format": "date-time" + }, + "Tags": { + "type": "array", + "items": { + "type": "string" + } + }, + "Id": { + "type": "integer", + "format": "int64" + } + } + }, + "TestCaseExecutionAttachmentFilterDto": { + "type": "object", + "properties": { + "testCaseExecutionId": { + "type": "integer", + "format": "int64" + }, + "jobKey": { + "type": "string", + "format": "uuid" + }, + "tags": { + "type": "array", + "items": { + "type": "string" + } + } + } + }, + "TestCaseExecutionDto": { + "type": "object", + "properties": { + "JobId": { + "type": "integer", + "format": "int64" + }, + "JobKey": { + "type": "string", + "format": "uuid" + }, + "TestSetExecutionId": { + "type": "integer", + "format": "int64" + }, + "TestSetExecution": { + "$ref": "#/components/schemas/TestSetExecutionDto" + }, + "TestCaseId": { + "type": "integer", + "format": "int64" + }, + "TestCase": { + "$ref": "#/components/schemas/TestCaseDto" + }, + "ReleaseVersionId": { + "type": "integer", + "format": "int64" + }, + "VersionNumber": { + "type": "string" + }, + "EntryPointPath": { + "type": "string" + }, + "StartTime": { + "type": "string", + "format": "date-time" + }, + "EndTime": { + "type": "string", + "format": "date-time" + }, + "Status": { + "type": "string", + "enum": [ + "Pending", + "Running", + "Cancelling", + "Passed", + "Failed", + "Cancelled" + ], + "x-ms-enum": { + "name": "TestCaseExecutionDtoStatus", + "modelAsString": false + } + }, + "TestCaseAssertions": { + "type": "array", + "items": { + "$ref": "#/components/schemas/TestCaseAssertionDto" + } + }, + "TestCaseExecutionAttachments": { + "type": "array", + "items": { + "$ref": "#/components/schemas/TestCaseExecutionAttachmentDto" + } + }, + "DataVariationIdentifier": { + "type": "string" + }, + "OutputArguments": { + "type": "string" + }, + "InputArguments": { + "type": "string" + }, + "Info": { + "type": "string" + }, + "HostMachineName": { + "type": "string" + }, + "RuntimeType": { + "type": "string", + "enum": [ + "NonProduction", + "Attended", + "Unattended", + "Development", + "Studio", + "RpaDeveloper", + "StudioX", + "CitizenDeveloper", + "Headless", + "StudioPro", + "RpaDeveloperPro", + "TestAutomation", + "AutomationCloud", + "Serverless", + "AutomationKit", + "ServerlessTestAutomation", + "AutomationCloudTestAutomation", + "AttendedStudioWeb" + ], + "x-ms-enum": { + "name": "TestCaseExecutionDtoRuntimeType", + "modelAsString": false + } + }, + "RobotName": { + "type": "string" + }, + "HasAssertions": { + "type": "boolean" + }, + "RunId": { + "type": "integer", + "format": "int32" + }, + "TestCaseType": { + "type": "string", + "enum": [ + "TestCase", + "TestDataSetup" + ], + "x-ms-enum": { + "name": "TestCaseExecutionDtoTestCaseType", + "modelAsString": false + } + }, + "ExecutionOrder": { + "type": "integer", + "format": "int32" + }, + "Id": { + "type": "integer", + "format": "int64" + } + } + }, + "TestCaseExecutionOptionsDto": { + "required": [ + "uniqueId" + ], + "type": "object", + "properties": { + "uniqueId": { + "type": "string", + "format": "uuid" + }, + "packageIdentifier": { + "type": "string" + }, + "inputArgumentsVariations": { + "type": "array", + "items": { + "type": "object" + } + }, + "executionOrder": { + "type": "integer", + "format": "int32" + } + } + }, + "TestDataQueueAddItemDto": { + "required": [ + "queueName" + ], + "type": "object", + "properties": { + "queueName": { + "minLength": 1, + "type": "string" + }, + "content": { + "type": "object" + } + } + }, + "TestDataQueueBulkAddItemsDto": { + "required": [ + "items", + "queueName" + ], + "type": "object", + "properties": { + "queueName": { + "minLength": 1, + "type": "string" + }, + "items": { + "type": "array", + "items": { + "type": "object" + } + } + } + }, + "TestDataQueueDto": { + "required": [ + "ContentJsonSchema", + "Name" + ], + "type": "object", + "properties": { + "Name": { + "maxLength": 256, + "minLength": 1, + "type": "string" + }, + "Description": { + "type": "string" + }, + "ContentJsonSchema": { + "minLength": 1, + "type": "string" + }, + "ItemsCount": { + "type": "integer", + "format": "int32" + }, + "ConsumedItemsCount": { + "type": "integer", + "format": "int32" + }, + "IsDeleted": { + "type": "boolean" + }, + "DeleterUserId": { + "type": "integer", + "format": "int64" + }, + "DeletionTime": { + "type": "string", + "format": "date-time" + }, + "LastModificationTime": { + "type": "string", + "format": "date-time" + }, + "LastModifierUserId": { + "type": "integer", + "format": "int64" + }, + "CreationTime": { + "type": "string", + "format": "date-time" + }, + "CreatorUserId": { + "type": "integer", + "format": "int64" + }, + "Id": { + "type": "integer", + "format": "int64" + } + } + }, + "TestDataQueueGetNextItemDto": { + "required": [ + "queueName", + "setConsumed" + ], + "type": "object", + "properties": { + "queueName": { + "minLength": 1, + "type": "string" + }, + "setConsumed": { + "type": "boolean" + } + } + }, + "TestDataQueueItemDto": { + "type": "object", + "properties": { + "testDataQueueId": { + "type": "integer", + "format": "int64" + }, + "content": { + "type": "object" + }, + "isConsumed": { + "type": "boolean" + }, + "id": { + "type": "integer", + "format": "int64" + } + } + }, + "TestDataQueueItemODataDto": { + "type": "object", + "properties": { + "TestDataQueueId": { + "type": "integer", + "format": "int64" + }, + "ContentJson": { + "type": "string" + }, + "IsConsumed": { + "type": "boolean" + }, + "Id": { + "type": "integer", + "format": "int64" + } + } + }, + "TestDataQueueSetAllItemsConsumedDto": { + "required": [ + "isConsumed", + "queueName" + ], + "type": "object", + "properties": { + "queueName": { + "minLength": 1, + "type": "string" + }, + "isConsumed": { + "type": "boolean" + } + } + }, + "TestDataQueueSetItemsConsumedDto": { + "required": [ + "isConsumed", + "itemIds" + ], + "type": "object", + "properties": { + "itemIds": { + "type": "array", + "items": { + "type": "integer", + "format": "int64" + } + }, + "isConsumed": { + "type": "boolean" + } + } + }, + "TestEnvironmentDto": { + "type": "object", + "properties": { + "Name": { + "type": "string" + }, + "Id": { + "type": "integer", + "format": "int64" + } + } + }, + "TestPackageInfoDto": { + "type": "object", + "properties": { + "packageIdentifier": { + "type": "string" + }, + "latestVersion": { + "type": "string" + }, + "latestPrereleaseVersion": { + "type": "string" + } + } + }, + "TestReleaseVersionDto": { + "type": "object", + "properties": { + "releaseId": { + "type": "integer", + "format": "int64" + }, + "versionNumber": { + "type": "string" + }, + "organizationUnitId": { + "type": "integer", + "format": "int64" + } + } + }, + "TestSetDto": { + "required": [ + "Name", + "Packages", + "TestCases" + ], + "type": "object", + "properties": { + "Key": { + "type": "string", + "format": "uuid" + }, + "Name": { + "minLength": 1, + "type": "string" + }, + "Description": { + "type": "string" + }, + "SourceType": { + "type": "string", + "enum": [ + "User", + "ExternalTool", + "Transient" + ], + "x-ms-enum": { + "name": "TestSetDtoSourceType", + "modelAsString": false + } + }, + "OrganizationUnitId": { + "type": "integer", + "format": "int64" + }, + "EnvironmentId": { + "type": "integer", + "format": "int64" + }, + "Environment": { + "$ref": "#/components/schemas/TestEnvironmentDto" + }, + "TestCaseCount": { + "type": "integer", + "format": "int32" + }, + "RobotId": { + "type": "integer", + "format": "int64" + }, + "EnableCoverage": { + "type": "boolean" + }, + "Packages": { + "type": "array", + "items": { + "$ref": "#/components/schemas/TestSetPackageDto" + } + }, + "TestCases": { + "type": "array", + "items": { + "$ref": "#/components/schemas/TestCaseDto" + } + }, + "InputArguments": { + "type": "array", + "items": { + "$ref": "#/components/schemas/TestSetInputArgumentDto" + } + }, + "IsDeleted": { + "type": "boolean" + }, + "DeleterUserId": { + "type": "integer", + "format": "int64" + }, + "DeletionTime": { + "type": "string", + "format": "date-time" + }, + "LastModificationTime": { + "type": "string", + "format": "date-time" + }, + "LastModifierUserId": { + "type": "integer", + "format": "int64" + }, + "CreationTime": { + "type": "string", + "format": "date-time" + }, + "CreatorUserId": { + "type": "integer", + "format": "int64" + }, + "Id": { + "type": "integer", + "format": "int64" + } + } + }, + "TestSetExecutionAttachmentDto": { + "type": "object", + "properties": { + "TestSetExecutionId": { + "type": "integer", + "format": "int64" + }, + "FileName": { + "type": "string" + }, + "MimeType": { + "type": "string" + }, + "CreationTime": { + "type": "string", + "format": "date-time" + }, + "Tags": { + "type": "array", + "items": { + "type": "string" + } + }, + "Id": { + "type": "integer", + "format": "int64" + } + } + }, + "TestSetExecutionAttachmentFilterDto": { + "type": "object", + "properties": { + "testSetExecutionId": { + "type": "integer", + "format": "int64" + }, + "batchExecutionKey": { + "type": "string", + "format": "uuid" + }, + "tags": { + "type": "array", + "items": { + "type": "string" + } + } + } + }, + "TestSetExecutionDto": { + "type": "object", + "properties": { + "Name": { + "type": "string" + }, + "TestSetId": { + "type": "integer", + "format": "int64" + }, + "OrganizationUnitId": { + "type": "integer", + "format": "int64" + }, + "TestSet": { + "$ref": "#/components/schemas/TestSetDto" + }, + "StartTime": { + "type": "string", + "format": "date-time" + }, + "EndTime": { + "type": "string", + "format": "date-time" + }, + "Status": { + "type": "string", + "enum": [ + "Pending", + "Running", + "Cancelling", + "Passed", + "Failed", + "Cancelled" + ], + "x-ms-enum": { + "name": "TestSetExecutionDtoStatus", + "modelAsString": false + } + }, + "TriggerType": { + "type": "string", + "enum": [ + "Manual", + "Scheduled", + "ExternalTool" + ], + "x-ms-enum": { + "name": "TestSetExecutionDtoTriggerType", + "modelAsString": false + } + }, + "ScheduleId": { + "type": "integer", + "format": "int64" + }, + "BatchExecutionKey": { + "type": "string", + "format": "uuid" + }, + "CoverageStatus": { + "type": "string", + "enum": [ + "Disabled", + "Pending", + "Processing", + "Completed" + ], + "x-ms-enum": { + "name": "TestSetExecutionDtoCoverageStatus", + "modelAsString": false + } + }, + "RunId": { + "type": "integer", + "format": "int32" + }, + "TestCaseExecutions": { + "type": "array", + "items": { + "$ref": "#/components/schemas/TestCaseExecutionDto" + } + }, + "Attachments": { + "type": "array", + "items": { + "$ref": "#/components/schemas/TestSetExecutionAttachmentDto" + } + }, + "EnforceExecutionOrder": { + "type": "boolean" + }, + "CreationTime": { + "type": "string", + "format": "date-time" + }, + "CreatorUserId": { + "type": "integer", + "format": "int64" + }, + "Id": { + "type": "integer", + "format": "int64" + } + } + }, + "TestSetExecutionOptionsDto": { + "type": "object", + "properties": { + "batchExecutionKey": { + "type": "string", + "format": "uuid" + }, + "triggerType": { + "type": "string", + "enum": [ + "Manual", + "Scheduled", + "ExternalTool" + ], + "x-ms-enum": { + "name": "TestSetExecutionOptionsDtoTriggerType", + "modelAsString": false + } + }, + "testCases": { + "type": "array", + "items": { + "$ref": "#/components/schemas/TestCaseExecutionOptionsDto" + } + }, + "executeOnlySpecifiedTestCases": { + "type": "boolean" + }, + "robotId": { + "type": "integer", + "format": "int64" + }, + "runtimeType": { + "type": "string", + "enum": [ + "NonProduction", + "Attended", + "Unattended", + "Development", + "Studio", + "RpaDeveloper", + "StudioX", + "CitizenDeveloper", + "Headless", + "StudioPro", + "RpaDeveloperPro", + "TestAutomation", + "AutomationCloud", + "Serverless", + "AutomationKit", + "ServerlessTestAutomation", + "AutomationCloudTestAutomation", + "AttendedStudioWeb" + ], + "x-ms-enum": { + "name": "TestSetExecutionOptionsDtoRuntimeType", + "modelAsString": false + } + }, + "machineId": { + "type": "integer", + "format": "int64" + }, + "machineSessionId": { + "type": "integer", + "format": "int64" + }, + "enforceExecutionOrder": { + "type": "boolean" + } + } + }, + "TestSetInputArgumentDto": { + "required": [ + "Name", + "Type", + "Value" + ], + "type": "object", + "properties": { + "Name": { + "minLength": 1, + "type": "string" + }, + "Type": { + "minLength": 1, + "type": "string" + }, + "Value": { + "minLength": 1, + "type": "string" + }, + "LastModificationTime": { + "type": "string", + "format": "date-time" + }, + "LastModifierUserId": { + "type": "integer", + "format": "int64" + }, + "CreationTime": { + "type": "string", + "format": "date-time" + }, + "CreatorUserId": { + "type": "integer", + "format": "int64" + }, + "Id": { + "type": "integer", + "format": "int64" + } + } + }, + "TestSetPackageDto": { + "required": [ + "PackageIdentifier", + "VersionMask" + ], + "type": "object", + "properties": { + "TestSetId": { + "type": "integer", + "format": "int64" + }, + "TestSet": { + "$ref": "#/components/schemas/TestSetDto" + }, + "VersionMask": { + "minLength": 1, + "type": "string" + }, + "PackageIdentifier": { + "minLength": 1, + "type": "string" + }, + "IncludePrerelease": { + "type": "boolean" + }, + "LastModificationTime": { + "type": "string", + "format": "date-time" + }, + "LastModifierUserId": { + "type": "integer", + "format": "int64" + }, + "CreationTime": { + "type": "string", + "format": "date-time" + }, + "CreatorUserId": { + "type": "integer", + "format": "int64" + }, + "Id": { + "type": "integer", + "format": "int64" + } + } + }, + "TestSetScheduleDto": { + "required": [ + "Name", + "TestSetId", + "TimeZoneId" + ], + "type": "object", + "properties": { + "Enabled": { + "type": "boolean" + }, + "Name": { + "maxLength": 256, + "minLength": 1, + "type": "string" + }, + "Description": { + "type": "string" + }, + "TestSetId": { + "type": "integer", + "format": "int64" + }, + "TestSetName": { + "type": "string" + }, + "TimeZoneId": { + "maxLength": 80, + "minLength": 1, + "type": "string" + }, + "TimeZoneIana": { + "type": "string" + }, + "CalendarId": { + "type": "integer", + "format": "int64" + }, + "CalendarName": { + "type": "string" + }, + "CronExpression": { + "type": "string" + }, + "CronDetails": { + "type": "string" + }, + "CronSummary": { + "type": "string" + }, + "NextOccurrence": { + "type": "string", + "format": "date-time" + }, + "DisableDate": { + "type": "string", + "format": "date-time" + }, + "ExternalJobKey": { + "type": "string" + }, + "ExternalJobKeyScheduler": { + "type": "string", + "format": "uuid" + }, + "Id": { + "type": "integer", + "format": "int64" + } + } + }, + "TestSetSchedulesEnabledRequest": { + "required": [ + "enabled", + "testSetScheduleIds" + ], + "type": "object", + "properties": { + "enabled": { + "type": "boolean" + }, + "testSetScheduleIds": { + "type": "array", + "items": { + "type": "integer", + "format": "int64" + } + } + } + }, + "TransactionDataDto": { + "type": "object", + "properties": { + "Name": { + "type": "string", + "description": "The name of the queue in which to search for the next item or in which to insert the item before marking it as InProgress and sending it to the robot." + }, + "RobotIdentifier": { + "type": "string", + "description": "The unique key identifying the robot that sent the request.", + "format": "uuid" + }, + "SpecificContent": { + "type": "object", + "additionalProperties": { + "type": "object" + }, + "description": "If not null a new item will be added to the queue with this content before being moved to InProgress state and returned to the robot for processing.\r\nIf null the next available item in the list will be moved to InProgress state and returned to the robot for processing." + }, + "DeferDate": { + "type": "string", + "description": "The earliest date and time at which the item is available for processing. If empty the item can be processed as soon as possible.", + "format": "date-time" + }, + "DueDate": { + "type": "string", + "description": "The latest date and time at which the item should be processed. If empty the item can be processed at any given time.", + "format": "date-time" + }, + "Reference": { + "maxLength": 128, + "minLength": 0, + "type": "string", + "description": "An optional, user-specified value for queue item identification." + }, + "ReferenceFilterOption": { + "type": "string", + "description": "Declares the strategy used to filter the Reference value.", + "enum": [ + "Equals", + "StartsWith" + ], + "x-ms-enum": { + "name": "TransactionDataDtoReferenceFilterOption", + "modelAsString": false + } + } + }, + "description": "Stores data sent when processing of an existing or a new item starts." + }, + "TransactionResultDto": { + "type": "object", + "properties": { + "IsSuccessful": { + "type": "boolean", + "description": "States if the processing was successful or not." + }, + "ProcessingException": { + "$ref": "#/components/schemas/ProcessingExceptionDto" + }, + "DeferDate": { + "type": "string", + "description": "The earliest date and time at which the item is available for processing. If empty the item can be processed as soon as possible.", + "format": "date-time" + }, + "DueDate": { + "type": "string", + "description": "The latest date and time at which the item should be processed. If empty the item can be processed at any given time.", + "format": "date-time" + }, + "Output": { + "type": "object", + "additionalProperties": { + "type": "object" + }, + "description": "A collection of key value pairs containing custom data resulted after successful processing." + }, + "Analytics": { + "type": "object", + "additionalProperties": { + "type": "object" + }, + "description": "A collection of key value pairs containing custom data for further analytics processing." + }, + "Progress": { + "type": "string", + "description": "String field which is used to keep track of the business flow progress." + } + }, + "description": "Stores data sent when processing an item ended." + }, + "UnattendedRobotDto": { + "type": "object", + "properties": { + "UserName": { + "maxLength": 100, + "minLength": 0, + "type": "string", + "description": "The UserName used to authenticate on the Host Machine." + }, + "Password": { + "maxLength": 100, + "minLength": 0, + "type": "string", + "description": "The Password used to authenticate on the Host Machine." + }, + "CredentialStoreId": { + "type": "integer", + "description": "The Credential Store used to store the password.", + "format": "int64" + }, + "CredentialType": { + "type": "string", + "description": "The robot credentials type (Default/ SmartCard)", + "enum": [ + "Default", + "SmartCard", + "NCipher", + "SafeNet", + "NoCredential" + ], + "x-ms-enum": { + "name": "UnattendedRobotDtoCredentialType", + "modelAsString": false + } + }, + "CredentialExternalName": { + "maxLength": 450, + "minLength": 0, + "type": "string", + "description": "Contains the value of the key in the external store used to store the password." + }, + "ExecutionSettings": { + "type": "object", + "additionalProperties": { + "type": "object" + }, + "description": "An object containing execution settings for the Robot." + }, + "LimitConcurrentExecution": { + "type": "boolean", + "description": "Specifies if the robot can be used concurrently on multiple machines" + }, + "RobotId": { + "type": "integer", + "description": "The actual Id of the provisioned Robot.", + "format": "int64" + }, + "MachineMappingsCount": { + "type": "integer", + "description": "Number of assigned machine mappings.", + "format": "int32" + } + } + }, + "UpdateInfoDto": { + "type": "object", + "properties": { + "updateStatus": { + "type": "string", + "enum": [ + "None", + "InProgress", + "Failed", + "NonCompliant", + "Compliant", + "NotApplicable", + "Scheduled", + "FailedRescheduled" + ], + "x-ms-enum": { + "name": "UpdateInfoDtoUpdateStatus", + "modelAsString": false + } + }, + "reason": { + "type": "string", + "enum": [ + "NonCompliantWithDifferentVersion", + "NonCompliantWithoutTargetVersion", + "NotApplicableForOlderSessions", + "NotApplicableForMachineType", + "NotApplicableTemplateWithoutRobotSessions", + "NotApplicableForPlatform", + "NotApplicableForTargetFramework" + ], + "x-ms-enum": { + "name": "UpdateInfoDtoReason", + "modelAsString": false + } + }, + "targetUpdateVersion": { + "type": "string" + }, + "isCommunity": { + "type": "boolean" + }, + "statusInfo": { + "type": "string" + } + } + }, + "UpdateMachinesToFolderAssociationsRequest": { + "required": [ + "associations" + ], + "type": "object", + "properties": { + "associations": { + "$ref": "#/components/schemas/MachinesFolderAssociationsDto" + } + } + }, + "UpdatePolicyDto": { + "type": "object", + "properties": { + "Type": { + "type": "string", + "description": "The type of the policy (None/ SpecificVersion/ LatestVersion)", + "enum": [ + "None", + "SpecificVersion", + "LatestVersion", + "LatestPatch" + ], + "x-ms-enum": { + "name": "UpdatePolicyDtoType", + "modelAsString": false + } + }, + "SpecificVersion": { + "maxLength": 128, + "minLength": 0, + "type": "string", + "description": "The specific version used for SpecificVersion policy type" + } + }, + "description": "The policy applied for update robots' versions" + }, + "UpdateSettingsDto": { + "type": "object", + "properties": { + "UpdateServerSource": { + "type": "string", + "enum": [ + "Orchestrator" + ], + "x-ms-enum": { + "name": "UpdateSettingsDtoUpdateServerSource", + "modelAsString": false + } + }, + "UpdateServerUrl": { + "type": "string" + }, + "PollingInterval": { + "type": "integer", + "format": "int32" + } + } + }, + "UpdateUserPasswordDto": { + "required": [ + "Username" + ], + "type": "object", + "properties": { + "TenancyName": { + "type": "string" + }, + "Username": { + "minLength": 1, + "type": "string" + }, + "CurrentPassword": { + "type": "string", + "description": "Existing user password" + }, + "NewPassword": { + "type": "string", + "description": "The new user password" + } + } + }, + "UpdateUserSettingRequest": { + "required": [ + "setting" + ], + "type": "object", + "properties": { + "setting": { + "$ref": "#/components/schemas/SettingsDto" + } + } + }, + "UserAssignRolesRequest": { + "required": [ + "roleIds" + ], + "type": "object", + "properties": { + "roleIds": { + "type": "array", + "items": { + "type": "integer", + "format": "int32" + } + } + } + }, + "UserAssignmentsDto": { + "type": "object", + "properties": { + "UserIds": { + "type": "array", + "items": { + "type": "integer", + "format": "int64" + } + }, + "RolesPerFolder": { + "type": "array", + "items": { + "$ref": "#/components/schemas/FolderRolesDto" + } + } + } + }, + "UserChangeCultureRequest": { + "required": [ + "culture" + ], + "type": "object", + "properties": { + "culture": { + "minLength": 1, + "type": "string" + } + } + }, + "UserDto": { + "type": "object", + "properties": { + "Name": { + "maxLength": 64, + "minLength": 0, + "type": "string", + "description": "The name of the person for which the user is created." + }, + "Surname": { + "maxLength": 64, + "minLength": 0, + "type": "string", + "description": "The surname of the person for which the user is created." + }, + "UserName": { + "type": "string", + "description": "The name used to login to Orchestrator." + }, + "Domain": { + "type": "string", + "description": "The domain from which the user is imported" + }, + "DirectoryIdentifier": { + "type": "string", + "description": "The directory identifier from which the user is imported" + }, + "FullName": { + "type": "string", + "description": "The full name of the person constructed with the format Name Surname." + }, + "EmailAddress": { + "maxLength": 256, + "minLength": 0, + "type": "string", + "description": "The e-mail address associated with the user.", + "format": "email" + }, + "IsEmailConfirmed": { + "type": "boolean", + "description": "States if the email address is valid or not." + }, + "LastLoginTime": { + "type": "string", + "description": "The date and time when the user last logged in, or null if the user never logged in.", + "format": "date-time" + }, + "IsActive": { + "type": "boolean", + "description": "States if the user is active or not. An inactive user cannot login to Orchestrator." + }, + "CreationTime": { + "type": "string", + "description": "The date and time when the user was created.", + "format": "date-time" + }, + "AuthenticationSource": { + "type": "string", + "description": "The source which authenticated this user." + }, + "Password": { + "type": "string", + "description": "The password used during application login." + }, + "IsExternalLicensed": { + "type": "boolean" + }, + "UserRoles": { + "type": "array", + "description": "The collection of roles associated with the user.", + "items": { + "$ref": "#/components/schemas/UserRoleDto" + } + }, + "RolesList": { + "type": "array", + "description": "The collection of role names associated with the user.", + "items": { + "type": "string" + } + }, + "LoginProviders": { + "type": "array", + "description": "The collection of entities that can authenticate the user.", + "items": { + "type": "string" + } + }, + "OrganizationUnits": { + "type": "array", + "description": "The collection of organization units associated with the user.", + "items": { + "$ref": "#/components/schemas/OrganizationUnitDto" + } + }, + "TenantId": { + "type": "integer", + "description": "The id of the tenant owning the user.", + "format": "int32" + }, + "TenancyName": { + "type": "string", + "description": "The name of the tenant owning the user." + }, + "TenantDisplayName": { + "type": "string", + "description": "The display name of the tenant owning the user." + }, + "TenantKey": { + "type": "string", + "description": "The key of the tenant owning the user." + }, + "Type": { + "type": "string", + "description": "The user type.", + "enum": [ + "User", + "Robot", + "DirectoryUser", + "DirectoryGroup", + "DirectoryRobot", + "DirectoryExternalApplication" + ], + "x-ms-enum": { + "name": "UserDtoType", + "modelAsString": false + } + }, + "ProvisionType": { + "type": "string", + "description": "The user type.", + "enum": [ + "Manual", + "Automatic" + ], + "x-ms-enum": { + "name": "UserDtoProvisionType", + "modelAsString": false + } + }, + "LicenseType": { + "type": "string", + "description": "The user's license type.", + "enum": [ + "NonProduction", + "Attended", + "Unattended", + "Development", + "Studio", + "RpaDeveloper", + "StudioX", + "CitizenDeveloper", + "Headless", + "StudioPro", + "RpaDeveloperPro", + "TestAutomation", + "AutomationCloud", + "Serverless", + "AutomationKit", + "ServerlessTestAutomation", + "AutomationCloudTestAutomation", + "AttendedStudioWeb" + ], + "x-ms-enum": { + "name": "UserDtoLicenseType", + "modelAsString": false + } + }, + "RobotProvision": { + "$ref": "#/components/schemas/AttendedRobotDto" + }, + "UnattendedRobot": { + "$ref": "#/components/schemas/UnattendedRobotDto" + }, + "NotificationSubscription": { + "$ref": "#/components/schemas/UserNotificationSubscription" + }, + "Key": { + "type": "string", + "description": "Unique key for a user", + "format": "uuid" + }, + "MayHaveUserSession": { + "type": "boolean", + "description": "Specifies whether this user is allowed to have a User session (default: true)" + }, + "MayHaveRobotSession": { + "type": "boolean", + "description": "Specifies whether this user is allowed to have an Attended Robot attached (default: true)" + }, + "MayHaveUnattendedSession": { + "type": "boolean", + "description": "Specifies whether this user is allowed to have an Unattended Robot attached (default: false)" + }, + "BypassBasicAuthRestriction": { + "type": "boolean", + "description": "Specifies whether this user bypasses the \"Auth.RestrictBasicAuthentication\" application setting (default: null)" + }, + "MayHavePersonalWorkspace": { + "type": "boolean", + "description": "Specifies whether this user is allowed to have a Personal Workspace" + }, + "UpdatePolicy": { + "$ref": "#/components/schemas/UpdatePolicyDto" + }, + "AccountId": { + "type": "string" + }, + "LastModificationTime": { + "type": "string", + "format": "date-time" + }, + "LastModifierUserId": { + "type": "integer", + "format": "int64" + }, + "CreatorUserId": { + "type": "integer", + "format": "int64" + }, + "Id": { + "type": "integer", + "format": "int64" + } + }, + "description": "Stores information about assigned role(s) and email settings, and enables a person or a Robot to login to Orchestrator." + }, + "UserEntityDto": { + "type": "object", + "properties": { + "FullName": { + "type": "string" + }, + "AuthenticationSource": { + "type": "string" + }, + "UserName": { + "type": "string" + }, + "IsInherited": { + "type": "boolean" + }, + "AssignedToFolderIds": { + "type": "array", + "items": { + "type": "integer", + "format": "int64" + } + }, + "MayHaveAttended": { + "type": "boolean" + }, + "MayHaveUnattended": { + "type": "boolean" + }, + "Type": { + "type": "string", + "enum": [ + "User", + "Robot", + "DirectoryUser", + "DirectoryGroup", + "DirectoryRobot", + "DirectoryExternalApplication" + ], + "x-ms-enum": { + "name": "SimpleUserEntityDtoType", + "modelAsString": false + } + }, + "Id": { + "type": "integer", + "format": "int64" + } + } + }, + "UserLoginInfoDto": { + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "surname": { + "type": "string" + }, + "userName": { + "type": "string" + }, + "emailAddress": { + "type": "string" + }, + "id": { + "type": "integer", + "format": "int64" + } + } + }, + "UserNotificationSubscription": { + "type": "object", + "properties": { + "Queues": { + "type": "boolean" + }, + "Robots": { + "type": "boolean" + }, + "Jobs": { + "type": "boolean" + }, + "Schedules": { + "type": "boolean" + }, + "Tasks": { + "type": "boolean" + }, + "QueueItems": { + "type": "boolean" + }, + "Insights": { + "type": "boolean" + }, + "CloudRobots": { + "type": "boolean" + }, + "Serverless": { + "type": "boolean" + }, + "Export": { + "type": "boolean" + } + } + }, + "UserOrganizationUnitDto": { + "type": "object", + "properties": { + "userId": { + "type": "integer", + "description": "The Id of the user", + "format": "int64" + }, + "userName": { + "type": "string", + "description": "The name of the user" + }, + "organizationUnitId": { + "type": "integer", + "description": "The Id of the organization unit", + "format": "int64" + }, + "organizationUnitName": { + "type": "string", + "description": "The name of the organization unit." + }, + "id": { + "type": "integer", + "format": "int64" + } + }, + "description": "Stores information about an organization unit in Orchestrator.\r\n An orchestrator unit can be understood as a company department and it is used to group different entities." + }, + "UserPermissionsCollection": { + "type": "object", + "properties": { + "UserId": { + "type": "integer", + "description": "The Id of the user associated with the permissions.", + "format": "int64" + }, + "Permissions": { + "type": "array", + "description": "The collection of names of the permissions the user is associated with.", + "items": { + "type": "string" + } + } + }, + "description": "Stores information about all the permissions a user is associated with in Orchestrator." + }, + "UserRoleAssignmentsDto": { + "type": "object", + "properties": { + "TenantRoles": { + "type": "array", + "items": { + "$ref": "#/components/schemas/RoleUsersDto" + } + }, + "PageItems": { + "type": "array", + "items": { + "$ref": "#/components/schemas/FolderAssignmentsDto" + } + }, + "Count": { + "type": "integer", + "format": "int32" + }, + "Id": { + "type": "integer", + "format": "int64" + } + } + }, + "UserRoleDto": { + "type": "object", + "properties": { + "UserId": { + "type": "integer", + "description": "The Id of the associated user.", + "format": "int64" + }, + "RoleId": { + "type": "integer", + "description": "The Id of the associated role.", + "format": "int32" + }, + "UserName": { + "type": "string", + "description": "The name of the associated user" + }, + "RoleName": { + "type": "string", + "description": "The name of the associated role" + }, + "RoleType": { + "type": "string", + "enum": [ + "Mixed", + "Tenant", + "Folder" + ], + "x-ms-enum": { + "name": "UserRoleDtoRoleType", + "modelAsString": false + } + }, + "Id": { + "type": "integer", + "format": "int64" + } + }, + "description": "Stores information about the association between a user and a role." + }, + "UserRolesDto": { + "type": "object", + "properties": { + "UserEntity": { + "$ref": "#/components/schemas/UserEntityDto" + }, + "Roles": { + "type": "array", + "items": { + "$ref": "#/components/schemas/SimpleRoleDto" + } + }, + "HasAlertsEnabled": { + "type": "boolean" + }, + "Id": { + "type": "integer", + "format": "int64" + } + }, + "description": "Association between a user and a set of roles." + }, + "UsersSetActiveRequest": { + "required": [ + "active" + ], + "type": "object", + "properties": { + "active": { + "type": "boolean" + } + } + }, + "UsersToggleOrganizationUnitRequest": { + "required": [ + "organizationUnitId", + "toggle" + ], + "type": "object", + "properties": { + "organizationUnitId": { + "type": "integer", + "format": "int64" + }, + "toggle": { + "type": "boolean" + } + } + }, + "UsersToggleRoleRequest": { + "required": [ + "role", + "toggle" + ], + "type": "object", + "properties": { + "role": { + "minLength": 1, + "type": "string" + }, + "toggle": { + "type": "boolean" + } + } + }, + "ValidateProcessScheduleRequest": { + "required": [ + "processSchedule" + ], + "type": "object", + "properties": { + "processSchedule": { + "$ref": "#/components/schemas/ProcessScheduleDto" + } + } + }, + "ValidationErrorInfo": { + "type": "object", + "properties": { + "message": { + "type": "string" + }, + "members": { + "type": "array", + "items": { + "type": "string" + } + } + } + }, + "ValidationResultDto": { + "type": "object", + "properties": { + "IsValid": { + "type": "boolean" + }, + "Errors": { + "type": "array", + "readOnly": true, + "items": { + "type": "string" + } + }, + "ErrorCodes": { + "type": "array", + "readOnly": true, + "items": { + "type": "string", + "enum": [ + "RobotNotAssignedToFolder", + "RobotNotFound", + "RobotNoCredentials", + "RobotBusy", + "RobotConcurrencyLimit", + "TemplateNoRuntime", + "TemplateNoHostsAvailable", + "TemplateNoLicense", + "TemplateFullCapacity", + "TemplateNotAssignedToFolder", + "TemplateMaintenanceMode", + "DynamicJobAccountCredentialsInvalid", + "DynamicJobForegroundAutomationTypeInvalid", + "DynamicJobBackgroundAutomationTypeInvalid", + "DynamicJobWindowsTargetFrameworkInvalid", + "DynamicJobCrossPlatformTargetFrameworkInvalid", + "DynamicJobConnectedMachinesInvalid", + "DynamicJobConnectedMachinesUserCredentialsInvalid", + "DynamicJobConnectedMachinesCrossPlatformRobotVersionInvalid", + "DynamicJobConnectedMachinesWindowsRobotVersionInvalid" + ], + "x-ms-enum": { + "name": "JobPendingReasons", + "modelAsString": false + } + } + } + } + }, + "VerifySmtpSettingRequest": { + "required": [ + "sendTo" + ], + "type": "object", + "properties": { + "sendTo": { + "minLength": 1, + "type": "string" + }, + "smtpSettingModel": { + "$ref": "#/components/schemas/SmtpSettingModel" + } + } + }, + "VideoRecordingSettingsDto": { + "type": "object", + "properties": { + "VideoRecordingType": { + "type": "string", + "default": "None", + "enum": [ + "None", + "Failed", + "All" + ], + "x-ms-enum": { + "name": "VideoRecordingSettingsDtoVideoRecordingType", + "modelAsString": false + } + }, + "QueueItemVideoRecordingType": { + "type": "string", + "default": "None", + "enum": [ + "None", + "Failed", + "All" + ], + "x-ms-enum": { + "name": "VideoRecordingSettingsDtoQueueItemVideoRecordingType", + "modelAsString": false + } + }, + "MaxDurationSeconds": { + "type": "integer", + "format": "int32" + } + } + }, + "WebhookDto": { + "required": [ + "AllowInsecureSsl", + "Enabled", + "Name", + "SubscribeToAllEvents", + "Url" + ], + "type": "object", + "properties": { + "Key": { + "type": "string", + "format": "uuid" + }, + "Name": { + "maxLength": 128, + "minLength": 0, + "type": "string" + }, + "Description": { + "maxLength": 256, + "minLength": 0, + "type": "string" + }, + "Url": { + "maxLength": 2000, + "minLength": 0, + "type": "string", + "format": "uri" + }, + "Enabled": { + "type": "boolean" + }, + "Secret": { + "maxLength": 100, + "minLength": 0, + "type": "string" + }, + "SubscribeToAllEvents": { + "type": "boolean" + }, + "AllowInsecureSsl": { + "type": "boolean" + }, + "Events": { + "type": "array", + "items": { + "$ref": "#/components/schemas/WebhookEventDto" + } + }, + "Id": { + "type": "integer", + "format": "int64" + } + } + }, + "WebhookEventDto": { + "required": [ + "EventType" + ], + "type": "object", + "properties": { + "EventType": { + "maxLength": 50, + "minLength": 0, + "type": "string" + } + } + }, + "WebhookEventTypeDto": { + "type": "object", + "properties": { + "Name": { + "type": "string", + "description": "Event type key" + }, + "Group": { + "type": "string", + "description": "Group" + } + } + }, + "WebhookSimpleUserDto": { + "type": "object", + "properties": { + "Id": { + "type": "integer", + "format": "int64", + "readOnly": true + }, + "Key": { + "type": "string", + "format": "uuid", + "readOnly": true + }, + "UserName": { + "type": "string", + "description": "The name used to login to Orchestrator.", + "readOnly": true + }, + "Domain": { + "type": "string", + "description": "The domain from which the user is imported", + "readOnly": true + }, + "FullName": { + "type": "string", + "description": "The full name of the person constructed with the format Name Surname.", + "readOnly": true + }, + "EmailAddress": { + "type": "string", + "description": "The e-mail address associated with the user.", + "readOnly": true + }, + "Type": { + "type": "string", + "description": "The user type.", + "readOnly": true, + "enum": [ + "User", + "Robot", + "DirectoryUser", + "DirectoryGroup", + "DirectoryRobot", + "DirectoryExternalApplication" + ], + "x-ms-enum": { + "name": "WebhookSimpleUserDtoType", + "modelAsString": false + } + }, + "IsActive": { + "type": "boolean", + "description": "States if the user is active or not. An inactive user cannot login to Orchestrator.", + "readOnly": true + }, + "LastLoginTime": { + "type": "string", + "description": "The date and time when the user last logged in, or null if the user never logged in.", + "format": "date-time", + "readOnly": true + }, + "CreationTime": { + "type": "string", + "description": "The date and time when the user was created.", + "format": "date-time", + "readOnly": true + }, + "AuthenticationSource": { + "type": "string", + "description": "The source which authenticated this user.", + "readOnly": true + } + } + }, + "WebhookTaskAssignmentChangedDto": { + "type": "object", + "properties": { + "Title": { + "type": "string", + "readOnly": true + }, + "Type": { + "type": "string", + "readOnly": true, + "enum": [ + "FormTask", + "ExternalTask", + "DocumentValidationTask", + "DocumentClassificationTask", + "DataLabelingTask", + "AppTask" + ], + "x-ms-enum": { + "name": "BaseWebhookTaskDtoType", + "modelAsString": false + } + }, + "Priority": { + "type": "string", + "readOnly": true, + "enum": [ + "Low", + "Medium", + "High", + "Critical" + ], + "x-ms-enum": { + "name": "BaseWebhookTaskDtoPriority", + "modelAsString": false + } + }, + "Status": { + "type": "string", + "readOnly": true, + "enum": [ + "Unassigned", + "Pending", + "Completed" + ], + "x-ms-enum": { + "name": "BaseWebhookTaskDtoStatus", + "modelAsString": false + } + }, + "CreationTime": { + "type": "string", + "format": "date-time", + "readOnly": true + }, + "TaskCatalogName": { + "type": "string", + "readOnly": true + }, + "Id": { + "type": "integer", + "format": "int64", + "readOnly": true + }, + "OrganizationUnitId": { + "type": "integer", + "format": "int64", + "readOnly": true + }, + "AssignedToUserId": { + "type": "integer", + "format": "int64", + "readOnly": true + }, + "AssignedToUserIdOldValue": { + "type": "integer", + "description": "Id of the old user to whom the task was assigned", + "format": "int64", + "readOnly": true + } + }, + "description": "This class defines DTO for Tasks Collection for webhook event Task.AssignmentChanged" + }, + "WebhookTaskCompletedDto": { + "type": "object", + "properties": { + "Title": { + "type": "string", + "readOnly": true + }, + "Type": { + "type": "string", + "readOnly": true, + "enum": [ + "FormTask", + "ExternalTask", + "DocumentValidationTask", + "DocumentClassificationTask", + "DataLabelingTask", + "AppTask" + ], + "x-ms-enum": { + "name": "BaseWebhookTaskDtoType", + "modelAsString": false + } + }, + "Priority": { + "type": "string", + "readOnly": true, + "enum": [ + "Low", + "Medium", + "High", + "Critical" + ], + "x-ms-enum": { + "name": "BaseWebhookTaskDtoPriority", + "modelAsString": false + } + }, + "Status": { + "type": "string", + "readOnly": true, + "enum": [ + "Unassigned", + "Pending", + "Completed" + ], + "x-ms-enum": { + "name": "BaseWebhookTaskDtoStatus", + "modelAsString": false + } + }, + "CreationTime": { + "type": "string", + "format": "date-time", + "readOnly": true + }, + "TaskCatalogName": { + "type": "string", + "readOnly": true + }, + "Id": { + "type": "integer", + "format": "int64", + "readOnly": true + }, + "OrganizationUnitId": { + "type": "integer", + "format": "int64", + "readOnly": true + }, + "AssignedToUserId": { + "type": "integer", + "format": "int64", + "readOnly": true + }, + "Action": { + "type": "string", + "description": "Action taken to complete the task", + "readOnly": true + } + }, + "description": "This class defines DTO for Tasks Collection for webhook event Task.Completed" + }, + "WebhookTaskCreatedDto": { + "type": "object", + "properties": { + "Title": { + "type": "string", + "readOnly": true + }, + "Type": { + "type": "string", + "readOnly": true, + "enum": [ + "FormTask", + "ExternalTask", + "DocumentValidationTask", + "DocumentClassificationTask", + "DataLabelingTask", + "AppTask" + ], + "x-ms-enum": { + "name": "BaseWebhookTaskDtoType", + "modelAsString": false + } + }, + "Priority": { + "type": "string", + "readOnly": true, + "enum": [ + "Low", + "Medium", + "High", + "Critical" + ], + "x-ms-enum": { + "name": "BaseWebhookTaskDtoPriority", + "modelAsString": false + } + }, + "Status": { + "type": "string", + "readOnly": true, + "enum": [ + "Unassigned", + "Pending", + "Completed" + ], + "x-ms-enum": { + "name": "BaseWebhookTaskDtoStatus", + "modelAsString": false + } + }, + "CreationTime": { + "type": "string", + "format": "date-time", + "readOnly": true + }, + "TaskCatalogName": { + "type": "string", + "readOnly": true + }, + "Id": { + "type": "integer", + "format": "int64", + "readOnly": true + }, + "OrganizationUnitId": { + "type": "integer", + "format": "int64", + "readOnly": true + }, + "AssignedToUserId": { + "type": "integer", + "format": "int64", + "readOnly": true + } + }, + "description": "This class defines DTO for Tasks Collection for webhook event Task.Created" + }, + "WrappedEnvironmentDto": { + "type": "object", + "properties": { + "Id": { + "type": "integer", + "format": "int64", + "readOnly": true + }, + "Name": { + "type": "string", + "readOnly": true + }, + "Description": { + "type": "string", + "readOnly": true + } + } + }, + "WrappedJobDto": { + "type": "object", + "properties": { + "Id": { + "type": "integer", + "format": "int64", + "readOnly": true + }, + "Key": { + "type": "string", + "description": "The unique job identifier.", + "format": "uuid", + "readOnly": true + }, + "CreationTime": { + "type": "string", + "description": "The Creation time of the job", + "format": "date-time", + "readOnly": true + }, + "StartTime": { + "type": "string", + "description": "The date and time when the job execution started or null if the job hasn't started yet.", + "format": "date-time", + "readOnly": true + }, + "EndTime": { + "type": "string", + "description": "The date and time when the job execution ended or null if the job hasn't ended yet.", + "format": "date-time", + "readOnly": true + }, + "State": { + "type": "string", + "description": "The state in which the job is.", + "readOnly": true, + "enum": [ + "Pending", + "Running", + "Stopping", + "Terminating", + "Faulted", + "Successful", + "Stopped", + "Suspended", + "Resumed" + ], + "x-ms-enum": { + "name": "WrappedJobDtoState", + "modelAsString": false + } + }, + "Source": { + "type": "string", + "description": "The Source name of the job.", + "readOnly": true + }, + "SourceType": { + "type": "string", + "description": "The Source type of the job.", + "readOnly": true, + "enum": [ + "Manual", + "Schedule", + "Agent", + "Queue", + "StudioWeb", + "IntegrationTrigger", + "StudioDesktop", + "AutomationOpsPipelines", + "Apps", + "SAP" + ], + "x-ms-enum": { + "name": "WrappedJobDtoSourceType", + "modelAsString": false + } + }, + "BatchExecutionKey": { + "type": "string", + "description": "The unique identifier grouping multiple jobs. It is usually generated when the job is created by a schedule.", + "format": "uuid", + "readOnly": true + }, + "Info": { + "type": "string", + "description": "Additional information about the current job.", + "readOnly": true + }, + "StartingScheduleId": { + "type": "integer", + "description": "The Id of the schedule that started the job, or null if the job was started by the user.", + "format": "int64", + "readOnly": true + }, + "ReleaseName": { + "type": "string", + "description": "The name of the release associated with the current name.", + "readOnly": true + }, + "Type": { + "type": "string", + "description": "The type of the job, Attended if started via the robot, Unattended otherwise", + "readOnly": true, + "enum": [ + "Unattended", + "Attended", + "ServerlessGeneric" + ], + "x-ms-enum": { + "name": "WrappedJobDtoType", + "modelAsString": false + } + }, + "HostMachineName": { + "type": "string", + "description": "The name of the machine where the Robot run the job.", + "readOnly": true + }, + "Robot": { + "$ref": "#/components/schemas/WrappedRobotDto" + }, + "Release": { + "$ref": "#/components/schemas/WrappedReleaseDto" + }, + "InputArguments": { + "type": "object", + "properties": {}, + "description": "Input parameters in JSON format to be passed to job execution", + "readOnly": true + }, + "OutputArguments": { + "type": "object", + "properties": {}, + "description": "Output parameters in JSON format resulted from job execution", + "readOnly": true + }, + "RuntimeType": { + "type": "string", + "description": "The type of license used to run the job", + "readOnly": true, + "enum": [ + "NonProduction", + "Attended", + "Unattended", + "Development", + "Studio", + "RpaDeveloper", + "StudioX", + "CitizenDeveloper", + "Headless", + "StudioPro", + "RpaDeveloperPro", + "TestAutomation", + "AutomationCloud", + "Serverless", + "AutomationKit", + "ServerlessTestAutomation", + "AutomationCloudTestAutomation", + "AttendedStudioWeb" + ], + "x-ms-enum": { + "name": "WrappedJobDtoRuntimeType", + "modelAsString": false + } + }, + "ProcessType": { + "type": "string", + "description": "The type of process", + "readOnly": true, + "enum": [ + "Undefined", + "Process", + "TestAutomationProcess" + ], + "x-ms-enum": { + "name": "WrappedJobDtoProcessType", + "modelAsString": false + } + }, + "SpecificPriorityValue": { + "type": "integer", + "description": "The priority for a job", + "format": "int32", + "readOnly": true + } + } + }, + "WrappedProcessScheduleDto": { + "type": "object", + "properties": { + "Id": { + "type": "integer", + "format": "int64", + "readOnly": true + }, + "Name": { + "type": "string", + "description": "The name of the schedule.", + "readOnly": true + }, + "Enabled": { + "type": "boolean", + "description": "Specifies if the schedule is active or not.", + "readOnly": true + }, + "EnvironmentId": { + "type": "string", + "description": "The Id of the environment associated with the schedule.", + "readOnly": true + }, + "EnvironmentName": { + "type": "string", + "description": "The name of the environment associated with the schedule.", + "readOnly": true + }, + "StartProcessCron": { + "type": "string", + "description": "The start cron expression of the schedule.", + "readOnly": true + }, + "StartStrategy": { + "type": "string", + "description": "States which robots from the environment are being run by the schedule.", + "readOnly": true, + "enum": [ + "All", + "Specific", + "RobotCount", + "JobsCount", + "ModernJobsCount" + ], + "x-ms-enum": { + "name": "WrappedProcessScheduleDtoStartStrategy", + "modelAsString": false + } + }, + "StopStrategy": { + "type": "string", + "description": "The way a running process is stopped.", + "readOnly": true, + "enum": [ + "SoftStop", + "Kill" + ], + "x-ms-enum": { + "name": "WrappedProcessScheduleDtoStopStrategy", + "modelAsString": false + } + }, + "ExternalJobKey": { + "type": "string", + "description": "The unique identifier of the external job associated with the jobs generated by this schedule. A key is generated for each group of jobs triggered by this schedule.", + "readOnly": true + }, + "ExternalJobKeyScheduler": { + "type": "string", + "description": "The unique identifier of the external background task schedule associated with the background tasks generated by this schedule. A key is generated for each batch of background tasks triggered by this schedule.", + "format": "uuid", + "readOnly": true + }, + "TimeZoneId": { + "type": "string", + "description": "The timezone under which the schedule will run.", + "readOnly": true + }, + "TimeZoneIana": { + "type": "string", + "description": "The timezone under which the schedule will run in Iana Standard.", + "readOnly": true + }, + "UseCalendar": { + "type": "boolean", + "description": "DEPRECATED. Specify whether the schedule uses a calendar", + "readOnly": true, + "x-deprecated": true + }, + "CalendarId": { + "type": "integer", + "description": "Specify which calendar to use", + "format": "int64", + "readOnly": true + }, + "Release": { + "$ref": "#/components/schemas/SimpleReleaseEventDto" + }, + "ExecutorRobots": { + "type": "array", + "description": "The collection of specific robots selected to be targeted by the current schedule. This collection must be empty if the start strategy is not 0 (specific robots).", + "readOnly": true, + "items": { + "$ref": "#/components/schemas/SimpleRobotEventDto" + } + }, + "InputArguments": { + "type": "object", + "properties": {}, + "description": "Input parameters that will be passed to each job created by this schedule.", + "readOnly": true + } + } + }, + "WrappedProcessingExceptionDto": { + "type": "object", + "properties": { + "Reason": { + "type": "string", + "description": "The reason the processing failed.", + "readOnly": true + }, + "Details": { + "type": "string", + "description": "Stores additional details about the exception.", + "readOnly": true + }, + "Type": { + "type": "string", + "description": "The processing exception type, if any.", + "readOnly": true, + "enum": [ + "ApplicationException", + "BusinessException" + ], + "x-ms-enum": { + "name": "WrappedProcessingExceptionDtoType", + "modelAsString": false + } + }, + "Timestamp": { + "type": "string", + "description": "The creation time", + "format": "date-time", + "readOnly": true + }, + "AssociatedImageFilePath": { + "type": "string", + "description": "A path on the robot running computer to an image file that stores relevant information about the exception - e.g. a system print screen.", + "readOnly": true + } + } + }, + "WrappedReleaseDto": { + "type": "object", + "properties": { + "Id": { + "type": "integer", + "format": "int64", + "readOnly": true + }, + "Key": { + "type": "string", + "readOnly": true + }, + "ProcessKey": { + "type": "string", + "readOnly": true + }, + "ProcessVersion": { + "type": "string", + "readOnly": true + }, + "Name": { + "type": "string", + "readOnly": true + }, + "Description": { + "type": "string", + "readOnly": true + }, + "IsLatestVersion": { + "type": "boolean", + "readOnly": true + }, + "EnvironmentId": { + "type": "integer", + "format": "int64", + "readOnly": true + }, + "Environment": { + "$ref": "#/components/schemas/WrappedEnvironmentDto" + }, + "InputArguments": { + "type": "object", + "properties": {}, + "readOnly": true + } + } + }, + "WrappedRobotDto": { + "type": "object", + "properties": { + "Id": { + "type": "integer", + "format": "int64", + "readOnly": true + }, + "Key": { + "type": "string", + "format": "uuid", + "readOnly": true + }, + "Name": { + "type": "string", + "readOnly": true + }, + "MachineId": { + "type": "integer", + "format": "int64", + "readOnly": true + }, + "MachineKey": { + "type": "string", + "format": "uuid", + "readOnly": true + }, + "MachineName": { + "type": "string", + "readOnly": true + }, + "Description": { + "type": "string", + "readOnly": true + }, + "UserName": { + "type": "string", + "readOnly": true + }, + "Type": { + "type": "string", + "readOnly": true, + "enum": [ + "NonProduction", + "Attended", + "Unattended", + "Development", + "Studio", + "RpaDeveloper", + "StudioX", + "CitizenDeveloper", + "Headless", + "StudioPro", + "RpaDeveloperPro", + "TestAutomation", + "AutomationCloud", + "Serverless", + "AutomationKit", + "ServerlessTestAutomation", + "AutomationCloudTestAutomation", + "AttendedStudioWeb" + ], + "x-ms-enum": { + "name": "WrappedRobotDtoType", + "modelAsString": false + } + }, + "HostingType": { + "type": "string", + "readOnly": true, + "enum": [ + "Standard", + "Floating" + ], + "x-ms-enum": { + "name": "WrappedRobotDtoHostingType", + "modelAsString": false + } + }, + "Environments": { + "type": "array", + "readOnly": true, + "items": { + "$ref": "#/components/schemas/WrappedEnvironmentDto" + } + }, + "ExecutionSettings": { + "type": "object", + "additionalProperties": { + "type": "object" + }, + "readOnly": true + } + } + }, + "WrappedStartProcessDto": { + "type": "object", + "properties": { + "ReleaseKey": { + "type": "string", + "description": "The unique key of the release associated with the process.", + "format": "uuid", + "readOnly": true + }, + "Strategy": { + "type": "string", + "description": "States which robots from the environment are being run by the process.", + "readOnly": true, + "enum": [ + "All", + "Specific", + "RobotCount", + "JobsCount", + "ModernJobsCount" + ], + "x-ms-enum": { + "name": "WrappedStartProcessDtoStrategy", + "modelAsString": false + } + }, + "RobotIds": { + "type": "array", + "description": "The collection of ids of specific robots selected to be run by the current process. This collection must be empty only if the start strategy is not Specific.", + "readOnly": true, + "items": { + "type": "integer", + "format": "int64" + } + }, + "JobsCount": { + "type": "integer", + "description": "Number of pending jobs to be created in the environment, for the current process. This number must be greater than 0 only if the start strategy is JobsCount.", + "format": "int32", + "readOnly": true + }, + "Source": { + "type": "string", + "description": "The Source of the job starting the current process.", + "readOnly": true, + "enum": [ + "Manual", + "Schedule", + "Queue", + "StudioWeb", + "IntegrationTrigger", + "StudioDesktop", + "AutomationOpsPipelines", + "Apps", + "SAP" + ], + "x-ms-enum": { + "name": "WrappedStartProcessDtoSource", + "modelAsString": false + } + } + } + }, + "WrappedTaskDeletedDto": { + "type": "object", + "properties": { + "Title": { + "type": "string", + "readOnly": true + }, + "Type": { + "type": "string", + "readOnly": true, + "enum": [ + "FormTask", + "ExternalTask", + "DocumentValidationTask", + "DocumentClassificationTask", + "DataLabelingTask", + "AppTask" + ], + "x-ms-enum": { + "name": "BaseWebhookTaskDtoType", + "modelAsString": false + } + }, + "Priority": { + "type": "string", + "readOnly": true, + "enum": [ + "Low", + "Medium", + "High", + "Critical" + ], + "x-ms-enum": { + "name": "BaseWebhookTaskDtoPriority", + "modelAsString": false + } + }, + "Status": { + "type": "string", + "readOnly": true, + "enum": [ + "Unassigned", + "Pending", + "Completed" + ], + "x-ms-enum": { + "name": "BaseWebhookTaskDtoStatus", + "modelAsString": false + } + }, + "CreationTime": { + "type": "string", + "format": "date-time", + "readOnly": true + }, + "TaskCatalogName": { + "type": "string", + "readOnly": true + }, + "Id": { + "type": "integer", + "format": "int64", + "readOnly": true + }, + "OrganizationUnitId": { + "type": "integer", + "format": "int64", + "readOnly": true + }, + "AssignedToUserId": { + "type": "integer", + "format": "int64", + "readOnly": true + }, + "Action": { + "type": "string", + "description": "Action taken while completing the task", + "readOnly": true + }, + "DeleterUserId": { + "type": "integer", + "description": "User who deleted this task", + "format": "int64", + "readOnly": true + }, + "DeletionTime": { + "type": "string", + "description": "Deletion time of this task", + "format": "date-time", + "readOnly": true + } + }, + "description": "This class defines DTO for Tasks Collection for webhook event Task.Deleted" + }, + "WrappedTaskForwardedDto": { + "type": "object", + "properties": { + "Title": { + "type": "string", + "readOnly": true + }, + "Type": { + "type": "string", + "readOnly": true, + "enum": [ + "FormTask", + "ExternalTask", + "DocumentValidationTask", + "DocumentClassificationTask", + "DataLabelingTask", + "AppTask" + ], + "x-ms-enum": { + "name": "BaseWebhookTaskDtoType", + "modelAsString": false + } + }, + "Priority": { + "type": "string", + "readOnly": true, + "enum": [ + "Low", + "Medium", + "High", + "Critical" + ], + "x-ms-enum": { + "name": "BaseWebhookTaskDtoPriority", + "modelAsString": false + } + }, + "Status": { + "type": "string", + "readOnly": true, + "enum": [ + "Unassigned", + "Pending", + "Completed" + ], + "x-ms-enum": { + "name": "BaseWebhookTaskDtoStatus", + "modelAsString": false + } + }, + "CreationTime": { + "type": "string", + "format": "date-time", + "readOnly": true + }, + "TaskCatalogName": { + "type": "string", + "readOnly": true + }, + "Id": { + "type": "integer", + "format": "int64", + "readOnly": true + }, + "OrganizationUnitId": { + "type": "integer", + "format": "int64", + "readOnly": true + }, + "AssignedToUserId": { + "type": "integer", + "format": "int64", + "readOnly": true + }, + "ForwardedByUserId": { + "type": "integer", + "description": "Id of the user who forwarded this task", + "format": "int64", + "readOnly": true + } + }, + "description": "This class defines DTO for Tasks Collection for webhook event Task.Forwarded" + }, + "WrappedTaskSavedDto": { + "type": "object", + "properties": { + "Title": { + "type": "string", + "readOnly": true + }, + "Type": { + "type": "string", + "readOnly": true, + "enum": [ + "FormTask", + "ExternalTask", + "DocumentValidationTask", + "DocumentClassificationTask", + "DataLabelingTask", + "AppTask" + ], + "x-ms-enum": { + "name": "BaseWebhookTaskDtoType", + "modelAsString": false + } + }, + "Priority": { + "type": "string", + "readOnly": true, + "enum": [ + "Low", + "Medium", + "High", + "Critical" + ], + "x-ms-enum": { + "name": "BaseWebhookTaskDtoPriority", + "modelAsString": false + } + }, + "Status": { + "type": "string", + "readOnly": true, + "enum": [ + "Unassigned", + "Pending", + "Completed" + ], + "x-ms-enum": { + "name": "BaseWebhookTaskDtoStatus", + "modelAsString": false + } + }, + "CreationTime": { + "type": "string", + "format": "date-time", + "readOnly": true + }, + "TaskCatalogName": { + "type": "string", + "readOnly": true + }, + "Id": { + "type": "integer", + "format": "int64", + "readOnly": true + }, + "OrganizationUnitId": { + "type": "integer", + "format": "int64", + "readOnly": true + }, + "AssignedToUserId": { + "type": "integer", + "format": "int64", + "readOnly": true + } + }, + "description": "This class defines DTO for Tasks Collection for webhook event Task.Saved" + } + }, + "securitySchemes": { + "OAuth2": { + "type": "oauth2", + "flows": { + "authorizationCode": { + "authorizationUrl": "https://uipath-orch.hr-applprep.de/identity/connect/authorize", + "tokenUrl": "https://uipath-orch.hr-applprep.de/identity/connect/token", + "scopes": { + "openid": "OpenId Standard Scope", + "profile": "Profile Standard Scope", + "email": "Email Standard Scope", + "tenant": "Tenant Management Scope", + "IdentityServerApi": "IdentityServer API Scope", + "OrchestratorApiUserAccess": "Orchestrator API Scope", + "ConnectionService": "Connection Service Scope" + } + } + } + } + } + }, + "x-original-swagger-version": "2.0" + } \ No newline at end of file diff --git a/server/node-service/src/static/plugin-icons/uiPath.svg b/server/node-service/src/static/plugin-icons/uiPath.svg new file mode 100644 index 000000000..0cb2bd206 --- /dev/null +++ b/server/node-service/src/static/plugin-icons/uiPath.svg @@ -0,0 +1,9 @@ + + download (7)-svg + + + + + \ No newline at end of file diff --git a/server/node-service/yarn.lock b/server/node-service/yarn.lock index 0a492dcd8..5f3d9419b 100644 --- a/server/node-service/yarn.lock +++ b/server/node-service/yarn.lock @@ -1828,6 +1828,15 @@ __metadata: languageName: node linkType: hard +"@isaacs/fs-minipass@npm:^4.0.0": + version: 4.0.1 + resolution: "@isaacs/fs-minipass@npm:4.0.1" + dependencies: + minipass: ^7.0.4 + checksum: 5d36d289960e886484362d9eb6a51d1ea28baed5f5d0140bbe62b99bac52eaf06cc01c2bc0d3575977962f84f6b2c4387b043ee632216643d4787b0999465bf2 + languageName: node + linkType: hard + "@istanbuljs/load-nyc-config@npm:^1.0.0": version: 1.1.0 resolution: "@istanbuljs/load-nyc-config@npm:1.1.0" @@ -2163,16 +2172,16 @@ __metadata: languageName: node linkType: hard -"@npmcli/agent@npm:^2.0.0": - version: 2.2.2 - resolution: "@npmcli/agent@npm:2.2.2" +"@npmcli/agent@npm:^3.0.0": + version: 3.0.0 + resolution: "@npmcli/agent@npm:3.0.0" dependencies: agent-base: ^7.1.0 http-proxy-agent: ^7.0.0 https-proxy-agent: ^7.0.1 lru-cache: ^10.0.1 socks-proxy-agent: ^8.0.3 - checksum: 67de7b88cc627a79743c88bab35e023e23daf13831a8aa4e15f998b92f5507b644d8ffc3788afc8e64423c612e0785a6a92b74782ce368f49a6746084b50d874 + checksum: e8fc25d536250ed3e669813b36e8c6d805628b472353c57afd8c4fde0fcfcf3dda4ffe22f7af8c9070812ec2e7a03fb41d7151547cef3508efe661a5a3add20f languageName: node linkType: hard @@ -2186,12 +2195,12 @@ __metadata: languageName: node linkType: hard -"@npmcli/fs@npm:^3.1.0": - version: 3.1.1 - resolution: "@npmcli/fs@npm:3.1.1" +"@npmcli/fs@npm:^4.0.0": + version: 4.0.0 + resolution: "@npmcli/fs@npm:4.0.0" dependencies: semver: ^7.3.5 - checksum: d960cab4b93adcb31ce223bfb75c5714edbd55747342efb67dcc2f25e023d930a7af6ece3e75f2f459b6f38fc14d031c766f116cd124fdc937fd33112579e820 + checksum: 68951c589e9a4328698a35fd82fe71909a257d6f2ede0434d236fa55634f0fbcad9bb8755553ce5849bd25ee6f019f4d435921ac715c853582c4a7f5983c8d4a languageName: node linkType: hard @@ -3993,7 +4002,7 @@ __metadata: languageName: node linkType: hard -"agent-base@npm:^7.0.2, agent-base@npm:^7.1.0, agent-base@npm:^7.1.1": +"agent-base@npm:^7.0.2": version: 7.1.1 resolution: "agent-base@npm:7.1.1" dependencies: @@ -4002,6 +4011,13 @@ __metadata: languageName: node linkType: hard +"agent-base@npm:^7.1.0, agent-base@npm:^7.1.2": + version: 7.1.3 + resolution: "agent-base@npm:7.1.3" + checksum: 87bb7ee54f5ecf0ccbfcba0b07473885c43ecd76cb29a8db17d6137a19d9f9cd443a2a7c5fd8a3f24d58ad8145f9eb49116344a66b107e1aeab82cf2383f4753 + languageName: node + linkType: hard + "agentkeepalive@npm:^3.4.1": version: 3.5.3 resolution: "agentkeepalive@npm:3.5.3" @@ -4607,11 +4623,11 @@ __metadata: languageName: node linkType: hard -"cacache@npm:^18.0.0": - version: 18.0.4 - resolution: "cacache@npm:18.0.4" +"cacache@npm:^19.0.1": + version: 19.0.1 + resolution: "cacache@npm:19.0.1" dependencies: - "@npmcli/fs": ^3.1.0 + "@npmcli/fs": ^4.0.0 fs-minipass: ^3.0.0 glob: ^10.2.2 lru-cache: ^10.0.1 @@ -4619,11 +4635,11 @@ __metadata: minipass-collect: ^2.0.1 minipass-flush: ^1.0.5 minipass-pipeline: ^1.2.4 - p-map: ^4.0.0 - ssri: ^10.0.0 - tar: ^6.1.11 - unique-filename: ^3.0.0 - checksum: b7422c113b4ec750f33beeca0f426a0024c28e3172f332218f48f963e5b970647fa1ac05679fe5bb448832c51efea9fda4456b9a95c3a1af1105fe6c1833cde2 + p-map: ^7.0.2 + ssri: ^12.0.0 + tar: ^7.4.3 + unique-filename: ^4.0.0 + checksum: e95684717de6881b4cdaa949fa7574e3171946421cd8291769dd3d2417dbf7abf4aa557d1f968cca83dcbc95bed2a281072b09abfc977c942413146ef7ed4525 languageName: node linkType: hard @@ -4736,6 +4752,13 @@ __metadata: languageName: node linkType: hard +"chownr@npm:^3.0.0": + version: 3.0.0 + resolution: "chownr@npm:3.0.0" + checksum: fd73a4bab48b79e66903fe1cafbdc208956f41ea4f856df883d0c7277b7ab29fd33ee65f93b2ec9192fc0169238f2f8307b7735d27c155821d886b84aa97aa8d + languageName: node + linkType: hard + "ci-info@npm:^3.2.0": version: 3.9.0 resolution: "ci-info@npm:3.9.0" @@ -6196,7 +6219,7 @@ __metadata: languageName: node linkType: hard -"glob@npm:^10.2.2, glob@npm:^10.3.10": +"glob@npm:^10.2.2, glob@npm:^10.3.10, glob@npm:^10.3.7": version: 10.4.5 resolution: "glob@npm:10.4.5" dependencies: @@ -7877,23 +7900,22 @@ __metadata: languageName: node linkType: hard -"make-fetch-happen@npm:^13.0.0": - version: 13.0.1 - resolution: "make-fetch-happen@npm:13.0.1" +"make-fetch-happen@npm:^14.0.3": + version: 14.0.3 + resolution: "make-fetch-happen@npm:14.0.3" dependencies: - "@npmcli/agent": ^2.0.0 - cacache: ^18.0.0 + "@npmcli/agent": ^3.0.0 + cacache: ^19.0.1 http-cache-semantics: ^4.1.1 - is-lambda: ^1.0.1 minipass: ^7.0.2 - minipass-fetch: ^3.0.0 + minipass-fetch: ^4.0.0 minipass-flush: ^1.0.5 minipass-pipeline: ^1.2.4 - negotiator: ^0.6.3 - proc-log: ^4.2.0 + negotiator: ^1.0.0 + proc-log: ^5.0.0 promise-retry: ^2.0.1 - ssri: ^10.0.0 - checksum: 5c9fad695579b79488fa100da05777213dd9365222f85e4757630f8dd2a21a79ddd3206c78cfd6f9b37346819681782b67900ac847a57cf04190f52dda5343fd + ssri: ^12.0.0 + checksum: 6fb2fee6da3d98f1953b03d315826b5c5a4ea1f908481afc113782d8027e19f080c85ae998454de4e5f27a681d3ec58d57278f0868d4e0b736f51d396b661691 languageName: node linkType: hard @@ -8116,18 +8138,18 @@ __metadata: languageName: node linkType: hard -"minipass-fetch@npm:^3.0.0": - version: 3.0.5 - resolution: "minipass-fetch@npm:3.0.5" +"minipass-fetch@npm:^4.0.0": + version: 4.0.0 + resolution: "minipass-fetch@npm:4.0.0" dependencies: encoding: ^0.1.13 minipass: ^7.0.3 minipass-sized: ^1.0.3 - minizlib: ^2.1.2 + minizlib: ^3.0.1 dependenciesMeta: encoding: optional: true - checksum: 8047d273236157aab27ab7cd8eab7ea79e6ecd63e8f80c3366ec076cb9a0fed550a6935bab51764369027c414647fd8256c2a20c5445fb250c483de43350de83 + checksum: 7d59a31011ab9e4d1af6562dd4c4440e425b2baf4c5edbdd2e22fb25a88629e1cdceca39953ff209da504a46021df520f18fd9a519f36efae4750ff724ddadea languageName: node linkType: hard @@ -8174,7 +8196,7 @@ __metadata: languageName: node linkType: hard -"minipass@npm:^5.0.0 || ^6.0.2 || ^7.0.0, minipass@npm:^7.0.2, minipass@npm:^7.0.3, minipass@npm:^7.1.2": +"minipass@npm:^5.0.0 || ^6.0.2 || ^7.0.0, minipass@npm:^7.0.2, minipass@npm:^7.0.3, minipass@npm:^7.0.4, minipass@npm:^7.1.2": version: 7.1.2 resolution: "minipass@npm:7.1.2" checksum: 2bfd325b95c555f2b4d2814d49325691c7bee937d753814861b0b49d5edcda55cbbf22b6b6a60bb91eddac8668771f03c5ff647dcd9d0f798e9548b9cdc46ee3 @@ -8191,6 +8213,16 @@ __metadata: languageName: node linkType: hard +"minizlib@npm:^3.0.1": + version: 3.0.1 + resolution: "minizlib@npm:3.0.1" + dependencies: + minipass: ^7.0.4 + rimraf: ^5.0.5 + checksum: da0a53899252380475240c587e52c824f8998d9720982ba5c4693c68e89230718884a209858c156c6e08d51aad35700a3589987e540593c36f6713fe30cd7338 + languageName: node + linkType: hard + "mkdirp-classic@npm:^0.5.2, mkdirp-classic@npm:^0.5.3": version: 0.5.3 resolution: "mkdirp-classic@npm:0.5.3" @@ -8218,6 +8250,15 @@ __metadata: languageName: node linkType: hard +"mkdirp@npm:^3.0.1": + version: 3.0.1 + resolution: "mkdirp@npm:3.0.1" + bin: + mkdirp: dist/cjs/src/bin.js + checksum: 972deb188e8fb55547f1e58d66bd6b4a3623bf0c7137802582602d73e6480c1c2268dcbafbfb1be466e00cc7e56ac514d7fd9334b7cf33e3e2ab547c16f83a8d + languageName: node + linkType: hard + "mnemonist@npm:0.38.3": version: 0.38.3 resolution: "mnemonist@npm:0.38.3" @@ -8304,6 +8345,13 @@ __metadata: languageName: node linkType: hard +"negotiator@npm:^1.0.0": + version: 1.0.0 + resolution: "negotiator@npm:1.0.0" + checksum: 20ebfe79b2d2e7cf9cbc8239a72662b584f71164096e6e8896c8325055497c96f6b80cd22c258e8a2f2aa382a787795ec3ee8b37b422a302c7d4381b0d5ecfbb + languageName: node + linkType: hard + "neotraverse@npm:=0.6.18": version: 0.6.18 resolution: "neotraverse@npm:0.6.18" @@ -8424,22 +8472,22 @@ __metadata: linkType: hard "node-gyp@npm:latest": - version: 10.3.1 - resolution: "node-gyp@npm:10.3.1" + version: 11.0.0 + resolution: "node-gyp@npm:11.0.0" dependencies: env-paths: ^2.2.0 exponential-backoff: ^3.1.1 glob: ^10.3.10 graceful-fs: ^4.2.6 - make-fetch-happen: ^13.0.0 - nopt: ^7.0.0 - proc-log: ^4.1.0 + make-fetch-happen: ^14.0.3 + nopt: ^8.0.0 + proc-log: ^5.0.0 semver: ^7.3.5 - tar: ^6.2.1 - which: ^4.0.0 + tar: ^7.4.3 + which: ^5.0.0 bin: node-gyp: bin/node-gyp.js - checksum: 91b0690ab504fe051ad66863226dc5ecac72b8471f85e8428e4d5ca3217d3a2adfffae48cd555e8d009a4164689fff558b88d2bc9bfd246452a3336ab308cf99 + checksum: d7d5055ccc88177f721c7cd4f8f9440c29a0eb40e7b79dba89ef882ec957975dfc1dcb8225e79ab32481a02016eb13bbc051a913ea88d482d3cbdf2131156af4 languageName: node linkType: hard @@ -8516,14 +8564,14 @@ __metadata: languageName: node linkType: hard -"nopt@npm:^7.0.0": - version: 7.2.1 - resolution: "nopt@npm:7.2.1" +"nopt@npm:^8.0.0": + version: 8.0.0 + resolution: "nopt@npm:8.0.0" dependencies: abbrev: ^2.0.0 bin: nopt: bin/nopt.js - checksum: 6fa729cc77ce4162cfad8abbc9ba31d4a0ff6850c3af61d59b505653bef4781ec059f8890ecfe93ee8aa0c511093369cca88bfc998101616a2904e715bbbb7c9 + checksum: 2cfc65e7ee38af2e04aea98f054753b0230011c0eeca4ecf131bd7d25984cbbf6f214586e0ae5dfcc2e830bc0bffa5a7fb28ea8d0b306ffd4ae8ea2d814c1ab3 languageName: node linkType: hard @@ -8752,6 +8800,13 @@ __metadata: languageName: node linkType: hard +"p-map@npm:^7.0.2": + version: 7.0.3 + resolution: "p-map@npm:7.0.3" + checksum: 8c92d533acf82f0d12f7e196edccff773f384098bbb048acdd55a08778ce4fc8889d8f1bde72969487bd96f9c63212698d79744c20bedfce36c5b00b46d369f8 + languageName: node + linkType: hard + "p-try@npm:^2.0.0": version: 2.2.0 resolution: "p-try@npm:2.2.0" @@ -9006,10 +9061,10 @@ __metadata: languageName: node linkType: hard -"proc-log@npm:^4.1.0, proc-log@npm:^4.2.0": - version: 4.2.0 - resolution: "proc-log@npm:4.2.0" - checksum: 98f6cd012d54b5334144c5255ecb941ee171744f45fca8b43b58ae5a0c1af07352475f481cadd9848e7f0250376ee584f6aa0951a856ff8f021bdfbff4eb33fc +"proc-log@npm:^5.0.0": + version: 5.0.0 + resolution: "proc-log@npm:5.0.0" + checksum: c78b26ecef6d5cce4a7489a1e9923d7b4b1679028c8654aef0463b27f4a90b0946cd598f55799da602895c52feb085ec76381d007ab8dcceebd40b89c2f9dfe0 languageName: node linkType: hard @@ -9424,6 +9479,17 @@ __metadata: languageName: node linkType: hard +"rimraf@npm:^5.0.5": + version: 5.0.10 + resolution: "rimraf@npm:5.0.10" + dependencies: + glob: ^10.3.7 + bin: + rimraf: dist/esm/bin.mjs + checksum: 50e27388dd2b3fa6677385fc1e2966e9157c89c86853b96d02e6915663a96b7ff4d590e14f6f70e90f9b554093aa5dbc05ac3012876be558c06a65437337bc05 + languageName: node + linkType: hard + "safe-buffer@npm:5.1.2, safe-buffer@npm:~5.1.0, safe-buffer@npm:~5.1.1": version: 5.1.2 resolution: "safe-buffer@npm:5.1.2" @@ -9688,13 +9754,13 @@ __metadata: linkType: hard "socks-proxy-agent@npm:^8.0.3": - version: 8.0.4 - resolution: "socks-proxy-agent@npm:8.0.4" + version: 8.0.5 + resolution: "socks-proxy-agent@npm:8.0.5" dependencies: - agent-base: ^7.1.1 + agent-base: ^7.1.2 debug: ^4.3.4 socks: ^2.8.3 - checksum: b2ec5051d85fe49072f9a250c427e0e9571fd09d5db133819192d078fd291276e1f0f50f6dbc04329b207738b1071314cee8bdbb4b12e27de42dbcf1d4233c67 + checksum: b4fbcdb7ad2d6eec445926e255a1fb95c975db0020543fbac8dfa6c47aecc6b3b619b7fb9c60a3f82c9b2969912a5e7e174a056ae4d98cb5322f3524d6036e1d languageName: node linkType: hard @@ -9762,12 +9828,12 @@ __metadata: languageName: node linkType: hard -"ssri@npm:^10.0.0": - version: 10.0.6 - resolution: "ssri@npm:10.0.6" +"ssri@npm:^12.0.0": + version: 12.0.0 + resolution: "ssri@npm:12.0.0" dependencies: minipass: ^7.0.3 - checksum: 4603d53a05bcd44188747d38f1cc43833b9951b5a1ee43ba50535bdfc5fe4a0897472dbe69837570a5417c3c073377ef4f8c1a272683b401857f72738ee57299 + checksum: ef4b6b0ae47b4a69896f5f1c4375f953b9435388c053c36d27998bc3d73e046969ccde61ab659e679142971a0b08e50478a1228f62edb994105b280f17900c98 languageName: node linkType: hard @@ -10074,7 +10140,7 @@ __metadata: languageName: node linkType: hard -"tar@npm:^6.1.11, tar@npm:^6.1.2, tar@npm:^6.2.1": +"tar@npm:^6.1.11, tar@npm:^6.1.2": version: 6.2.1 resolution: "tar@npm:6.2.1" dependencies: @@ -10088,6 +10154,20 @@ __metadata: languageName: node linkType: hard +"tar@npm:^7.4.3": + version: 7.4.3 + resolution: "tar@npm:7.4.3" + dependencies: + "@isaacs/fs-minipass": ^4.0.0 + chownr: ^3.0.0 + minipass: ^7.1.2 + minizlib: ^3.0.1 + mkdirp: ^3.0.1 + yallist: ^5.0.0 + checksum: 8485350c0688331c94493031f417df069b778aadb25598abdad51862e007c39d1dd5310702c7be4a6784731a174799d8885d2fde0484269aea205b724d7b2ffa + languageName: node + linkType: hard + "tdigest@npm:^0.1.1": version: 0.1.2 resolution: "tdigest@npm:0.1.2" @@ -10468,12 +10548,12 @@ __metadata: languageName: node linkType: hard -"unique-filename@npm:^3.0.0": - version: 3.0.0 - resolution: "unique-filename@npm:3.0.0" +"unique-filename@npm:^4.0.0": + version: 4.0.0 + resolution: "unique-filename@npm:4.0.0" dependencies: - unique-slug: ^4.0.0 - checksum: 8e2f59b356cb2e54aab14ff98a51ac6c45781d15ceaab6d4f1c2228b780193dc70fae4463ce9e1df4479cb9d3304d7c2043a3fb905bdeca71cc7e8ce27e063df + unique-slug: ^5.0.0 + checksum: 6a62094fcac286b9ec39edbd1f8f64ff92383baa430af303dfed1ffda5e47a08a6b316408554abfddd9730c78b6106bef4ca4d02c1231a735ddd56ced77573df languageName: node linkType: hard @@ -10493,12 +10573,12 @@ __metadata: languageName: node linkType: hard -"unique-slug@npm:^4.0.0": - version: 4.0.0 - resolution: "unique-slug@npm:4.0.0" +"unique-slug@npm:^5.0.0": + version: 5.0.0 + resolution: "unique-slug@npm:5.0.0" dependencies: imurmurhash: ^0.1.4 - checksum: 0884b58365af59f89739e6f71e3feacb5b1b41f2df2d842d0757933620e6de08eff347d27e9d499b43c40476cbaf7988638d3acb2ffbcb9d35fd035591adfd15 + checksum: 222d0322bc7bbf6e45c08967863212398313ef73423f4125e075f893a02405a5ffdbaaf150f7dd1e99f8861348a486dd079186d27c5f2c60e465b7dcbb1d3e5b languageName: node linkType: hard @@ -10736,14 +10816,14 @@ __metadata: languageName: node linkType: hard -"which@npm:^4.0.0": - version: 4.0.0 - resolution: "which@npm:4.0.0" +"which@npm:^5.0.0": + version: 5.0.0 + resolution: "which@npm:5.0.0" dependencies: isexe: ^3.1.1 bin: node-which: bin/which.js - checksum: f17e84c042592c21e23c8195108cff18c64050b9efb8459589116999ea9da6dd1509e6a1bac3aeebefd137be00fabbb61b5c2bc0aa0f8526f32b58ee2f545651 + checksum: 6ec99e89ba32c7e748b8a3144e64bfc74aa63e2b2eacbb61a0060ad0b961eb1a632b08fb1de067ed59b002cec3e21de18299216ebf2325ef0f78e0f121e14e90 languageName: node linkType: hard @@ -10878,6 +10958,13 @@ __metadata: languageName: node linkType: hard +"yallist@npm:^5.0.0": + version: 5.0.0 + resolution: "yallist@npm:5.0.0" + checksum: eba51182400b9f35b017daa7f419f434424410691bbc5de4f4240cc830fdef906b504424992700dc047f16b4d99100a6f8b8b11175c193f38008e9c96322b6a5 + languageName: node + linkType: hard + "yaml@npm:^2.6.0": version: 2.6.0 resolution: "yaml@npm:2.6.0" From 7416faa8562dded0a38349c25c4b396e835ee401 Mon Sep 17 00:00:00 2001 From: FalkWolsky Date: Thu, 19 Dec 2024 23:22:20 +0100 Subject: [PATCH 79/88] Adding SerpAPI Google Search --- server/node-service/src/plugins/index.ts | 4 + .../node-service/src/plugins/serpApi/index.ts | 61 +++ .../plugins/serpApi/serpApi.search.spec.json | 394 ++++++++++++++++++ .../src/plugins/serpApi/serpApi.spec.yaml | 269 ------------ .../src/static/plugin-icons/serpApi.svg | 1 + 5 files changed, 460 insertions(+), 269 deletions(-) create mode 100644 server/node-service/src/plugins/serpApi/index.ts create mode 100644 server/node-service/src/plugins/serpApi/serpApi.search.spec.json delete mode 100644 server/node-service/src/plugins/serpApi/serpApi.spec.yaml create mode 100644 server/node-service/src/static/plugin-icons/serpApi.svg diff --git a/server/node-service/src/plugins/index.ts b/server/node-service/src/plugins/index.ts index c0bd0891c..b4fdd89be 100644 --- a/server/node-service/src/plugins/index.ts +++ b/server/node-service/src/plugins/index.ts @@ -41,6 +41,7 @@ import supabaseApiPlugin from "./supabaseApi"; import firebirdsqlPlugin from "./firebirdsql"; import apiTemplatePlugin from "./apiTemplate"; import uiPathPlugin from "./uiPath"; +import serpApiPlugin from "./serpApi" // import boomiPlugin from "./boomi"; let plugins: (DataSourcePlugin | DataSourcePluginFactory)[] = [ @@ -109,6 +110,9 @@ let plugins: (DataSourcePlugin | DataSourcePluginFactory)[] = [ stripePlugin, shopifyPlugin, wooCommercePlugin, + + // Webscrapers + serpApiPlugin ]; try { diff --git a/server/node-service/src/plugins/serpApi/index.ts b/server/node-service/src/plugins/serpApi/index.ts new file mode 100644 index 000000000..d14ec5182 --- /dev/null +++ b/server/node-service/src/plugins/serpApi/index.ts @@ -0,0 +1,61 @@ +import _ from "lodash"; +import { OpenAPIV3, OpenAPI } from "openapi-types"; +import { ConfigToType, DataSourcePlugin } from "lowcoder-sdk/dataSource"; +import { runOpenApi } from "../openApi"; +import { parseOpenApi, ParseOpenApiOptions } from "../openApi/parse"; + +import spec from './serpApi.search.spec.json'; + +const dataSourceConfig = { + type: "dataSource", + params: [ + { + "type": "groupTitle", + "key": "apikey-query-api_key", + "label": "Api Key Auth" + }, + { + "type": "password", + "key": "apikey-query-api_key.value", + "label": "api_key" + } + ] +} as const; + +const parseOptions: ParseOpenApiOptions = { + actionLabel: (method: string, path: string, operation: OpenAPI.Operation) => { + return _.upperFirst(operation.operationId || ""); + }, +}; + +type DataSourceConfigType = ConfigToType; + +const serpApiPlugin: DataSourcePlugin = { + id: "serpApi", + name: "serpApi", + icon: "serpApi.svg", + category: "Webscrapers", + dataSourceConfig, + queryConfig: async () => { + const { actions, categories } = await parseOpenApi(spec as OpenAPI.Document, parseOptions); + return { + type: "query", + label: "Action", + categories: { + label: "Resources", + items: categories, + }, + actions, + }; + }, + run: function (actionData, dataSourceConfig): Promise { + const runApiDsConfig = { + url: "", + serverURL: "https://serpapi.com", + dynamicParamsConfig: dataSourceConfig, + }; + return runOpenApi(actionData, runApiDsConfig, spec as OpenAPIV3.Document); + }, +}; + +export default serpApiPlugin; diff --git a/server/node-service/src/plugins/serpApi/serpApi.search.spec.json b/server/node-service/src/plugins/serpApi/serpApi.search.spec.json new file mode 100644 index 000000000..97f41d11f --- /dev/null +++ b/server/node-service/src/plugins/serpApi/serpApi.search.spec.json @@ -0,0 +1,394 @@ +{ + "openapi": "3.0.1", + "info": { + "title": "SerpApi Google Search API", + "description": "The SerpApi Google Search API provides a streamlined way to access Google search results in real-time, handling complexities like proxies and CAPTCHA challenges to deliver structured data in JSON format. This API allows developers to fetch real-time search results, geolocate queries, and receive enriched JSON data with minimal effort.", + "version": "1.0.0" + }, + "tags": [ + { + "name": "Search", + "description": "Endpoints related to Google search queries." + } + ], + "paths": { + "/search.json": { + "get": { + "summary": "Perform a Google search query", + "description": "This endpoint allows you to submit a query to the SerpApi Google Search API and retrieve structured search results, including organic results, maps, local listings, stories, shopping results, direct answers, and knowledge graphs.", + "tags": ["Search"], + "deprecated": false, + "parameters": [ + { + "name": "engine", + "in": "query", + "description": "Parameter defines the search engine you want to query. Defaults to `google` if not provided.", + "required": true, + "example": "google", + "schema": { + "type": "string" + } + }, + { + "name": "q", + "in": "query", + "description": "Parameter defines the query you want to search. You can use anything that you would use in a regular Google search. e.g. inurl:", + "required": true, + "example": "coffee", + "schema": { + "type": "string" + } + }, + { + "name": "location", + "in": "query", + "description": "Parameter defines from where you want the search to originate. If several locations match the location requested", + "required": false, + "example": "Austin, Texas, United States", + "schema": { + "type": "string" + } + }, + { + "name": "uule", + "in": "query", + "description": "Parameter is the Google encoded location you want to use for the search. uule and location parameters can't be used together.", + "required": false, + "example": "", + "schema": { + "type": "string" + } + }, + { + "name": "ludocid", + "in": "query", + "description": "Parameter defines the id (CID) of the Google My Business listing you want to scrape. Also known as Google Place ID.", + "required": false, + "example": "", + "schema": { + "type": "string" + } + }, + { + "name": "lsig", + "in": "query", + "description": "Parameter that you might have to use to force the knowledge graph map view to show up. You can find the lsig ID by using our Local Pack API or Google Local API.lsig ID is also available via a redirect Google uses within Google My Business.", + "required": false, + "example": "", + "schema": { + "type": "string" + } + }, + { + "name": "kgmid", + "in": "query", + "description": "Parameter defines the id (KGMID) of the Google Knowledge Graph listing you want to scrape. Also known as Google Knowledge Graph ID. Searches with kgmid parameter will return results for the originally encrypted search parameters. For some searches", + "required": false, + "example": "", + "schema": { + "type": "string" + } + }, + { + "name": "si", + "in": "query", + "description": "Parameter defines the cached search parameters of the Google Search you want to scrape. Searches with si parameter will return results for the originally encrypted search parameters. For some searches", + "required": false, + "example": "", + "schema": { + "type": "string" + } + }, + { + "name": "ibp", + "in": "query", + "description": "Parameter is responsible for rendering layouts and expansions for some elements (e.g.", + "required": false, + "example": "", + "schema": { + "type": "string" + } + }, + { + "name": "google_domain", + "in": "query", + "description": "Parameter defines the Google domain to use. It defaults to google.com. Head to the Google domains page for a full list of supported Google domains.", + "required": false, + "example": "google.com", + "schema": { + "type": "string" + } + }, + { + "name": "gl", + "in": "query", + "description": "Parameter defines the country to use for the Google search. It's a two-letter country code. (e.g.", + "required": false, + "example": "us", + "schema": { + "type": "string" + } + }, + { + "name": "hl", + "in": "query", + "description": "Parameter defines the language to use for the Google search. It's a two-letter language code. (e.g.", + "required": false, + "example": "en", + "schema": { + "type": "string" + } + }, + { + "name": "cr", + "in": "query", + "description": "Parameter defines one or multiple countries to limit the search to. It uses country{two-letter upper-case country code} to specify countries and | as a delimiter. (e.g.", + "required": false, + "example": "", + "schema": { + "type": "string" + } + }, + { + "name": "lr", + "in": "query", + "description": "Parameter defines one or multiple languages to limit the search to. It uses lang_{two-letter language code} to specify languages and | as a delimiter. (e.g.", + "required": false, + "example": "", + "schema": { + "type": "string" + } + }, + { + "name": "tbs", + "in": "query", + "description": "(to be searched) parameter defines advanced search parameters that aren't possible in the regular query field. (e.g.", + "required": false, + "example": "", + "schema": { + "type": "string" + } + }, + { + "name": "safe", + "in": "query", + "description": "Parameter defines the level of filtering for adult content. It can be set to active or off", + "required": false, + "example": "", + "schema": { + "type": "string" + } + }, + { + "name": "nfpr", + "in": "query", + "description": "Parameter defines the exclusion of results from an auto-corrected query when the original query is spelled wrong. It can be set to 1 to exclude these results", + "required": false, + "example": "", + "schema": { + "type": "string" + } + }, + { + "name": "filter", + "in": "query", + "description": "Parameter defines if the filters for 'Similar Results' and 'Omitted Results' are on or off. It can be set to 1 (default) to enable these filters", + "required": false, + "example": "", + "schema": { + "type": "string" + } + }, + { + "name": "tbm", + "in": "query", + "description": "(to be matched) parameter defines the type of search you want to do.It can be set to:(no tbm parameter): regular Google Search", + "required": false, + "example": "", + "schema": { + "type": "string" + } + }, + { + "name": "start", + "in": "query", + "description": "Parameter defines the result offset. It skips the given number of results. It's used for pagination. (e.g.", + "required": false, + "example": "", + "schema": { + "type": "string" + } + }, + { + "name": "num", + "in": "query", + "description": "Parameter defines the maximum number of results to return. (e.g.", + "required": false, + "example": "", + "schema": { + "type": "string" + } + }, + { + "name": "device", + "in": "query", + "description": "Parameter defines the device to use to get the results. It can be set to desktop (default) to use a regular browser", + "required": false, + "example": "", + "schema": { + "type": "string" + } + }, + { + "name": "no_cache", + "in": "query", + "description": "Parameter will force SerpApi to fetch the Google results even if a cached version is already present. A cache is served only if the query and all parameters are exactly the same. Cache expires after 1h. Cached searches are free", + "required": false, + "example": "", + "schema": { + "type": "string" + } + }, + { + "name": "async", + "in": "query", + "description": "Parameter defines the way you want to submit your search to SerpApi. It can be set to false (default) to open an HTTP connection and keep it open until you got your search results", + "required": false, + "example": "", + "schema": { + "type": "string" + } + }, + { + "name": "output", + "in": "query", + "description": "Parameter defines the final output you want. It can be set to json (default) to get a structured JSON of the results", + "required": false, + "example": "", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Successful response containing the structured JSON data of the search results.", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "search_metadata": { + "type": "object", + "properties": { + "id": { "type": "string" }, + "status": { "type": "string" }, + "json_endpoint": { "type": "string" }, + "created_at": { "type": "string" }, + "processed_at": { "type": "string" }, + "google_url": { "type": "string" }, + "raw_html_file": { "type": "string" }, + "total_time_taken": { "type": "number" } + } + }, + "search_parameters": { + "type": "object", + "properties": { + "engine": { "type": "string" }, + "q": { "type": "string" }, + "location_requested": { "type": "string" }, + "location_used": { "type": "string" }, + "google_domain": { "type": "string" }, + "hl": { "type": "string" }, + "gl": { "type": "string" }, + "device": { "type": "string" } + } + }, + "search_information": { + "type": "object", + "properties": { + "organic_results_state": { "type": "string" }, + "query_displayed": { "type": "string" }, + "total_results": { "type": "integer" }, + "time_taken_displayed": { "type": "number" } + } + }, + "recipes_results": { + "type": "array", + "items": { + "type": "object", + "properties": { + "title": { "type": "string" }, + "link": { "type": "string" }, + "source": { "type": "string" }, + "total_time": { "type": "string" }, + "ingredients": { + "type": "array", + "items": { "type": "string" } + }, + "thumbnail": { "type": "string" } + } + } + }, + "shopping_results": { + "type": "array", + "items": { + "type": "object", + "properties": { + "position": { "type": "integer" }, + "block_position": { "type": "string" }, + "title": { "type": "string" }, + "price": { "type": "string" }, + "extracted_price": { "type": "number" }, + "link": { "type": "string" }, + "source": { "type": "string" }, + "reviews": { "type": "integer" }, + "thumbnail": { "type": "string" } + } + } + }, + "local_map": { + "type": "object", + "properties": { + "link": { "type": "string" }, + "image": { "type": "string" }, + "gps_coordinates": { + "type": "object", + "properties": { + "latitude": { "type": "number" }, + "longitude": { "type": "number" } + } + } + } + } + } + } + } + } + } + }, + "security": [ + { + "apikey-query-api_key": [] + } + ] + } + } + }, + "components": { + "schemas": {}, + "securitySchemes": { + "apikey-query-api_key": { + "type": "apiKey", + "in": "query", + "name": "api_key" + } + } + }, + "servers": [ + { + "url": "https://serpapi.com", + "description": "SerpApi Base URL" + } + ] +} \ No newline at end of file diff --git a/server/node-service/src/plugins/serpApi/serpApi.spec.yaml b/server/node-service/src/plugins/serpApi/serpApi.spec.yaml deleted file mode 100644 index 86abe947d..000000000 --- a/server/node-service/src/plugins/serpApi/serpApi.spec.yaml +++ /dev/null @@ -1,269 +0,0 @@ -openapi: 3.0.1 -info: - title: SerpApi - description: '' - version: 1.0.0 -tags: [] -paths: - /search.json: - get: - summary: Search - deprecated: false - description: '' - tags: [] - parameters: - - name: engine - in: query - description: >- - Parameter defines the search engine you want to query. Defaults to - `google` if not provided. - required: true - example: google - schema: - type: string - - name: q - in: query - description: >- - Parameter defines the query you want to search. You can use anything - that you would use in a regular Google search. e.g. inurl: - required: true - example: coffee - schema: - type: string - - name: location - in: query - description: >- - Parameter defines from where you want the search to originate. If - several locations match the location requested - required: false - example: Austin, Texas, United States - schema: - type: string - - name: uule - in: query - description: >- - Parameter is the Google encoded location you want to use for the - search. uule and location parameters can't be used together. - required: false - example: '' - schema: - type: string - - name: ludocid - in: query - description: >- - Parameter defines the id (CID) of the Google My Business listing you - want to scrape. Also known as Google Place ID. - required: false - example: '' - schema: - type: string - - name: lsig - in: query - description: >- - Parameter that you might have to use to force the knowledge graph - map view to show up. You can find the lsig ID by using our Local - Pack API or Google Local API.lsig ID is also available via a - redirect Google uses within Google My Business. - required: false - example: '' - schema: - type: string - - name: kgmid - in: query - description: >- - Parameter defines the id (KGMID) of the Google Knowledge Graph - listing you want to scrape. Also known as Google Knowledge Graph ID. - Searches with kgmid parameter will return results for the originally - encrypted search parameters. For some searches - required: false - example: '' - schema: - type: string - - name: si - in: query - description: >- - Parameter defines the cached search parameters of the Google Search - you want to scrape. Searches with si parameter will return results - for the originally encrypted search parameters. For some searches - required: false - example: '' - schema: - type: string - - name: ibp - in: query - description: >- - Parameter is responsible for rendering layouts and expansions for - some elements (e.g. - required: false - example: '' - schema: - type: string - - name: google_domain - in: query - description: >- - Parameter defines the Google domain to use. It defaults to - google.com. Head to the Google domains page for a full list of - supported Google domains. - required: false - example: google.com - schema: - type: string - - name: gl - in: query - description: >- - Parameter defines the country to use for the Google search. It's a - two-letter country code. (e.g. - required: false - example: us - schema: - type: string - - name: hl - in: query - description: >- - Parameter defines the language to use for the Google search. It's a - two-letter language code. (e.g. - required: false - example: en - schema: - type: string - - name: cr - in: query - description: >- - Parameter defines one or multiple countries to limit the search to. - It uses country{two-letter upper-case country code} to specify - countries and | as a delimiter. (e.g. - required: false - example: '' - schema: - type: string - - name: lr - in: query - description: >- - Parameter defines one or multiple languages to limit the search to. - It uses lang_{two-letter language code} to specify languages and | - as a delimiter. (e.g. - required: false - example: '' - schema: - type: string - - name: tbs - in: query - description: >- - (to be searched) parameter defines advanced search parameters that - aren't possible in the regular query field. (e.g. - required: false - example: '' - schema: - type: string - - name: safe - in: query - description: >- - Parameter defines the level of filtering for adult content. It can - be set to active or off - required: false - example: '' - schema: - type: string - - name: nfpr - in: query - description: >- - Parameter defines the exclusion of results from an auto-corrected - query when the original query is spelled wrong. It can be set to 1 - to exclude these results - required: false - example: '' - schema: - type: string - - name: filter - in: query - description: >- - Parameter defines if the filters for 'Similar Results' and 'Omitted - Results' are on or off. It can be set to 1 (default) to enable these - filters - required: false - example: '' - schema: - type: string - - name: tbm - in: query - description: >- - (to be matched) parameter defines the type of search you want to - do.It can be set to:(no tbm parameter): regular Google Search - required: false - example: '' - schema: - type: string - - name: start - in: query - description: >- - Parameter defines the result offset. It skips the given number of - results. It's used for pagination. (e.g. - required: false - example: '' - schema: - type: string - - name: num - in: query - description: Parameter defines the maximum number of results to return. (e.g. - required: false - example: '' - schema: - type: string - - name: device - in: query - description: >- - Parameter defines the device to use to get the results. It can be - set to desktop (default) to use a regular browser - required: false - example: '' - schema: - type: string - - name: no_cache - in: query - description: >- - Parameter will force SerpApi to fetch the Google results even if a - cached version is already present. A cache is served only if the - query and all parameters are exactly the same. Cache expires after - 1h. Cached searches are free - required: false - example: '' - schema: - type: string - - name: async - in: query - description: >- - Parameter defines the way you want to submit your search to SerpApi. - It can be set to false (default) to open an HTTP connection and keep - it open until you got your search results - required: false - example: '' - schema: - type: string - - name: output - in: query - description: >- - Parameter defines the final output you want. It can be set to json - (default) to get a structured JSON of the results - required: false - example: '' - schema: - type: string - responses: - '200': - description: '' - content: - application/json: - schema: - type: object - properties: {} - headers: {} - security: - - apikey-query-api_key: [] -components: - schemas: {} - securitySchemes: - apikey-query-api_key: - type: apiKey - in: query - name: api_key -servers: [] diff --git a/server/node-service/src/static/plugin-icons/serpApi.svg b/server/node-service/src/static/plugin-icons/serpApi.svg new file mode 100644 index 000000000..dcd3f81fe --- /dev/null +++ b/server/node-service/src/static/plugin-icons/serpApi.svg @@ -0,0 +1 @@ + \ No newline at end of file From 5f7f1815a66c4bdfa94176f74500ff74a926835e Mon Sep 17 00:00:00 2001 From: FalkWolsky Date: Fri, 20 Dec 2024 00:15:08 +0100 Subject: [PATCH 80/88] Adding Carbone API, updating APITemplate API, restructuring groups --- .../packages/lowcoder/src/i18n/locales/de.ts | 16 +- .../packages/lowcoder/src/i18n/locales/en.ts | 4 +- .../packages/lowcoder/src/i18n/locales/es.ts | 20 +- .../packages/lowcoder/src/i18n/locales/it.ts | 18 +- .../packages/lowcoder/src/i18n/locales/pt.ts | 18 +- .../packages/lowcoder/src/i18n/locales/ru.ts | 10 +- .../packages/lowcoder/src/i18n/locales/zh.ts | 14 + .../src/pages/datasource/pluginPanel.tsx | 4 +- .../src/plugins/apiTemplate/index.ts | 39 +- .../src/plugins/carboneIo/carboneIo.spec.json | 713 ++++++++++++++++++ .../src/plugins/carboneIo/index.ts | 69 ++ server/node-service/src/plugins/index.ts | 15 +- .../node-service/src/plugins/uiPath/index.ts | 3 +- .../src/static/plugin-icons/carboneIo.svg | 1 + .../src/static/plugin-icons/carboneIo2.svg | 19 + 15 files changed, 903 insertions(+), 60 deletions(-) create mode 100644 server/node-service/src/plugins/carboneIo/carboneIo.spec.json create mode 100644 server/node-service/src/plugins/carboneIo/index.ts create mode 100644 server/node-service/src/static/plugin-icons/carboneIo.svg create mode 100644 server/node-service/src/static/plugin-icons/carboneIo2.svg diff --git a/client/packages/lowcoder/src/i18n/locales/de.ts b/client/packages/lowcoder/src/i18n/locales/de.ts index 8de652060..95712a416 100644 --- a/client/packages/lowcoder/src/i18n/locales/de.ts +++ b/client/packages/lowcoder/src/i18n/locales/de.ts @@ -779,17 +779,19 @@ export const de = { "dynamicDataSourceConfigErrText": "Die Konfiguration der zusätzlichen Datenquelle konnte nicht geladen werden.", "retry": "Wiederholen", "categoryDatabase": "Datenbank", - "categoryBigdata": "Große Daten", - "categoryAi": "AI", + "categoryBigdata": "Big Data", + "categoryAi": "KI", "categoryDevops": "DevOps", "categoryAppdevelopment": "App-Entwicklung", "categoryWorkflow": "Arbeitsablauf", - "categoryMessaging": "Nachrichtenübermittlung", - "categoryAssets": "Vermögenswerte & Lagerung", - "categoryProjectManagement": "Projektleitung", + "categoryMessaging": "Messaging", + "categoryAssets": "Assets & Speicher", + "categoryProjectManagement": "Projektmanagement", "categoryCrm": "CRM", - "categoryEcommerce": "Elektronischer Geschäftsverkehr", - "categoryApis": "Andere", + "categoryEcommerce": "E-Commerce", + "categoryWebscrapers": "Web-Scraper", + "categoryDocumentHandling": "Bericht & Dokumentenerstellung", + "categoryRPA": "Roboter Prozess Automatisierung" }, "sqlQuery": { ...en.sqlQuery, diff --git a/client/packages/lowcoder/src/i18n/locales/en.ts b/client/packages/lowcoder/src/i18n/locales/en.ts index 222157aff..c781e9580 100644 --- a/client/packages/lowcoder/src/i18n/locales/en.ts +++ b/client/packages/lowcoder/src/i18n/locales/en.ts @@ -787,7 +787,9 @@ export const en = { "categoryProjectManagement" : "Project Management", "categoryCrm" : "CRM", "categoryEcommerce" : "E-commerce", - "categoryApis" : "Others", + "categoryWebscrapers" : "Webscrapers", + "categoryDocumentHandling" : "Report & Document Generation", + "categoryRPA" : "Robotic Process Automation", }, diff --git a/client/packages/lowcoder/src/i18n/locales/es.ts b/client/packages/lowcoder/src/i18n/locales/es.ts index cc34f4b10..16251e7c4 100644 --- a/client/packages/lowcoder/src/i18n/locales/es.ts +++ b/client/packages/lowcoder/src/i18n/locales/es.ts @@ -778,18 +778,20 @@ export const es = { "dynamicDataSourceConfigLoadingText": "Cargando configuración de fuente de datos adicional...", "dynamicDataSourceConfigErrText": "No se ha podido cargar la configuración adicional de la fuente de datos.", "retry": "Reintentar", - "categoryDatabase": "Base de datos", - "categoryBigdata": "Grandes datos", - "categoryAi": "AI", + "categoryDatabase": "Base de Datos", + "categoryBigdata": "Big Data", + "categoryAi": "IA", "categoryDevops": "DevOps", - "categoryAppdevelopment": "Desarrollo de aplicaciones", - "categoryWorkflow": "Flujo de trabajo", + "categoryAppdevelopment": "Desarrollo de Aplicaciones", + "categoryWorkflow": "Flujo de Trabajo", "categoryMessaging": "Mensajería", - "categoryAssets": "Activos y almacenamiento", - "categoryProjectManagement": "Gestión de proyectos", + "categoryAssets": "Recursos y Almacenamiento", + "categoryProjectManagement": "Gestión de Proyectos", "categoryCrm": "CRM", - "categoryEcommerce": "Comercio electrónico", - "categoryApis": "Otros", + "categoryEcommerce": "Comercio Electrónico", + "categoryWebscrapers": "Raspadores Web", + "categoryDocumentHandling": "Generación de Informes y Documentos", + "categoryRPA": "Automatización de Procesos Robóticos", }, "sqlQuery": { ...en.sqlQuery, diff --git a/client/packages/lowcoder/src/i18n/locales/it.ts b/client/packages/lowcoder/src/i18n/locales/it.ts index 25ed56dd1..dd758958c 100644 --- a/client/packages/lowcoder/src/i18n/locales/it.ts +++ b/client/packages/lowcoder/src/i18n/locales/it.ts @@ -779,17 +779,19 @@ export const it = { "dynamicDataSourceConfigErrText": "Impossibile caricare la configurazione della fonte di dati extra.", "retry": "Riprova", "categoryDatabase": "Database", - "categoryBigdata": "Grandi dati", - "categoryAi": "AI", + "categoryBigdata": "Big Data", + "categoryAi": "IA", "categoryDevops": "DevOps", - "categoryAppdevelopment": "Sviluppo di app", + "categoryAppdevelopment": "Sviluppo App", "categoryWorkflow": "Flusso di lavoro", - "categoryMessaging": "Messaging", - "categoryAssets": "Attività e stoccaggio", - "categoryProjectManagement": "Gestione del progetto", + "categoryMessaging": "Messaggistica", + "categoryAssets": "Asset & Archiviazione", + "categoryProjectManagement": "Gestione Progetti", "categoryCrm": "CRM", - "categoryEcommerce": "Commercio elettronico", - "categoryApis": "Altri", + "categoryEcommerce": "E-commerce", + "categoryWebscrapers": "Web Scrapers", + "categoryDocumentHandling": "Generazione Report e Documenti", + "categoryRPA": "Automazione Robotica dei Processi", }, "sqlQuery": { ...en.sqlQuery, diff --git a/client/packages/lowcoder/src/i18n/locales/pt.ts b/client/packages/lowcoder/src/i18n/locales/pt.ts index 440374751..641a98146 100644 --- a/client/packages/lowcoder/src/i18n/locales/pt.ts +++ b/client/packages/lowcoder/src/i18n/locales/pt.ts @@ -778,18 +778,20 @@ export const pt = { "dynamicDataSourceConfigLoadingText": "Carregando configuração extra da fonte de dados...", "dynamicDataSourceConfigErrText": "Falha ao carregar configuração extra da fonte de dados.", "retry": "Tentar Novamente", - "categoryDatabase": "Base de dados", - "categoryBigdata": "Grandes volumes de dados", + "categoryDatabase": "Banco de Dados", + "categoryBigdata": "Big Data", "categoryAi": "IA", "categoryDevops": "DevOps", - "categoryAppdevelopment": "Desenvolvimento de aplicações", - "categoryWorkflow": "Fluxo de trabalho", + "categoryAppdevelopment": "Desenvolvimento de Aplicativos", + "categoryWorkflow": "Fluxo de Trabalho", "categoryMessaging": "Mensagens", - "categoryAssets": "Activos e armazenamento", - "categoryProjectManagement": "Gestão de projectos", + "categoryAssets": "Ativos e Armazenamento", + "categoryProjectManagement": "Gerenciamento de Projetos", "categoryCrm": "CRM", - "categoryEcommerce": "Comércio eletrónico", - "categoryApis": "Outros", + "categoryEcommerce": "Comércio Eletrônico", + "categoryWebscrapers": "Raspadores Web", + "categoryDocumentHandling": "Geração de Relatórios e Documentos", + "categoryRPA": "Automação de Processos Robóticos" }, "sqlQuery": { ...en.sqlQuery, diff --git a/client/packages/lowcoder/src/i18n/locales/ru.ts b/client/packages/lowcoder/src/i18n/locales/ru.ts index 9c735746a..a2206edc8 100644 --- a/client/packages/lowcoder/src/i18n/locales/ru.ts +++ b/client/packages/lowcoder/src/i18n/locales/ru.ts @@ -780,16 +780,18 @@ export const ru = { "retry": "Повторная попытка", "categoryDatabase": "База данных", "categoryBigdata": "Большие данные", - "categoryAi": "AI", + "categoryAi": "ИИ", "categoryDevops": "DevOps", "categoryAppdevelopment": "Разработка приложений", "categoryWorkflow": "Рабочий процесс", - "categoryMessaging": "Передача сообщений", - "categoryAssets": "Активы и хранение", + "categoryMessaging": "Сообщения", + "categoryAssets": "Активы и Хранилище", "categoryProjectManagement": "Управление проектами", "categoryCrm": "CRM", "categoryEcommerce": "Электронная коммерция", - "categoryApis": "Другие", + "categoryWebscrapers": "Веб-скраперы", + "categoryDocumentHandling": "Создание отчетов и документов", + "categoryRPA": "Роботизированная автоматизация процессов" }, "sqlQuery": { ...en.sqlQuery, diff --git a/client/packages/lowcoder/src/i18n/locales/zh.ts b/client/packages/lowcoder/src/i18n/locales/zh.ts index 7a98b5183..260f4e1da 100644 --- a/client/packages/lowcoder/src/i18n/locales/zh.ts +++ b/client/packages/lowcoder/src/i18n/locales/zh.ts @@ -707,6 +707,20 @@ export const zh: typeof en = { dynamicDataSourceConfigLoadingText: "加载额外数据源配置...", dynamicDataSourceConfigErrText: "无法加载额外数据源配置.", retry: "重试", + "categoryDatabase": "数据库", + "categoryBigdata": "大数据", + "categoryAi": "人工智能", + "categoryDevops": "开发运维", + "categoryAppdevelopment": "应用开发", + "categoryWorkflow": "工作流", + "categoryMessaging": "消息传递", + "categoryAssets": "资产与存储", + "categoryProjectManagement": "项目管理", + "categoryCrm": "客户关系管理", + "categoryEcommerce": "电子商务", + "categoryWebscrapers": "网络爬虫", + "categoryDocumentHandling": "报告与文档生成", + "categoryRPA": "机器人流程自动化" }, sqlQuery: { diff --git a/client/packages/lowcoder/src/pages/datasource/pluginPanel.tsx b/client/packages/lowcoder/src/pages/datasource/pluginPanel.tsx index 8f5fc6043..38bd41c06 100644 --- a/client/packages/lowcoder/src/pages/datasource/pluginPanel.tsx +++ b/client/packages/lowcoder/src/pages/datasource/pluginPanel.tsx @@ -129,7 +129,9 @@ const categories: Category[] = [ { label: trans("query.categoryProjectManagement"), filter: (t) => t.definition?.category === "Project Management" }, { label: trans("query.categoryCrm"), filter: (t) => t.definition?.category === "CRM" }, { label: trans("query.categoryEcommerce"), filter: (t) => t.definition?.category === "eCommerce" }, - { label: trans("query.categoryApis"), filter: (t) => t.definition?.category === "api" }, + { label: trans("query.categoryWebscrapers"), filter: (t) => t.definition?.category === "Webscrapers" }, + { label: trans("query.categoryDocumentHandling"), filter: (t) => t.definition?.category === "DocumentHandling" }, + { label: trans("query.categoryRPA"), filter: (t) => t.definition?.category === "RPA" }, ]; // Section component diff --git a/server/node-service/src/plugins/apiTemplate/index.ts b/server/node-service/src/plugins/apiTemplate/index.ts index 8b7920820..1cd2427be 100644 --- a/server/node-service/src/plugins/apiTemplate/index.ts +++ b/server/node-service/src/plugins/apiTemplate/index.ts @@ -11,19 +11,22 @@ import spec from './apiTemplate.spec.json'; const dataSourceConfig = { type: "dataSource", params: [ - { - "type": "groupTitle", - "key": "ApiKeyAuth", - "label": "Api Key Auth" - }, - { - "type": "password", - "key": "ApiKeyAuth.value", - "label": "X-API-KEY", - "tooltip": "An API key is needed to be set in the Authorization header of every API call.\nFor additional support you can contact us.\n\n- APITemplate.io expects the API key to be part of all API requests to the server in a header in this format:\n ```\n X-API-KEY: [API_KEY]\n ```\n\n- Optionally we also support Authorization header\n ```\n Authorization: Token [API_KEY]\n ```\n\n**Note: You must replace the API KEY(6fa6g2pdXGIyHRhVlGh7U56Ada1eF) with your API key in the request samples.**\n", - "placeholder": "An API key is needed to be set in the Authorization header of every API call.\nFor additional support you can contact us.\n\n- APITemplate.io expects the API key to be part of all API requests to the server in a header in this format:\n ```\n X-API-KEY: [API_KEY]\n ```\n\n- Optionally we also support Authorization header\n ```\n Authorization: Token [API_KEY]\n ```\n\n**Note: You must replace the API KEY(6fa6g2pdXGIyHRhVlGh7U56Ada1eF) with your API key in the request samples.**\n" - } -] + { + key: "serverURL", + type: "textInput", + label: "Service URL", + rules: [{ required: true }], + placeholder: "https://rest.apitemplate.io", + tooltip: "Input the Service URL of your ApiTemplate Endpoint.", + }, + { + "type": "password", + "key": "ApiKeyAuth.value", + "label": "X-API-KEY", + "tooltip": "For additional support you can contact us. hello@apitemplate.io", + "placeholder": "" + } + ] } as const; const parseOptions: ParseOpenApiOptions = { @@ -38,7 +41,7 @@ const apiTemplatePlugin: DataSourcePlugin = { id: "apiTemplate", name: "ApiTemplate", icon: "apiTemplate.svg", - category: "Assets", + category: "DocumentHandling", dataSourceConfig, queryConfig: async () => { const { actions, categories } = await parseOpenApi(spec as unknown as OpenAPI.Document, parseOptions); @@ -53,10 +56,14 @@ const apiTemplatePlugin: DataSourcePlugin = { }; }, run: function (actionData, dataSourceConfig): Promise { + const { serverURL } = dataSourceConfig; const runApiDsConfig = { url: "", - serverURL: "", - dynamicParamsConfig: dataSourceConfig, + serverURL: serverURL, + dynamicParamsConfig: { + ...dataSourceConfig, + "X-API-KEY" : dataSourceConfig["ApiKeyAuth.value"], + }, }; return runOpenApi(actionData, runApiDsConfig, spec as OpenAPIV3.Document); }, diff --git a/server/node-service/src/plugins/carboneIo/carboneIo.spec.json b/server/node-service/src/plugins/carboneIo/carboneIo.spec.json new file mode 100644 index 000000000..a6965b634 --- /dev/null +++ b/server/node-service/src/plugins/carboneIo/carboneIo.spec.json @@ -0,0 +1,713 @@ +{ + "openapi": "3.0.3", + "info": { + "description": "Carbone Cloud/On-premise Open API reference.\n\nFor requesting:\n- Carbone Cloud API: find your API key on your [Carbone account](https://account.carbone.io). Home page > Copy the `production` or `testing` API key.\n- Carbone On-premise: Update the `Server URL` on the Open API specification.\n\nUseful links:\n- [API Flow](https://carbone.io/api-reference.html#quickstart-api-flow)\n- [Integration / SDKs](https://carbone.io/api-reference.html#api-integration)\n- [Generated document storage](https://carbone.io/api-reference.html#report-storage)\n- [Request timeout](https://carbone.io/api-reference.html#api-timeout)", + "version": "1.2.0", + "title": "Carbone API", + "contact": { + "name": "Carbone Support", + "email": "support@carbone.io", + "url": "https://help.carbone.io" + }, + "license": { + "name": "Apache 2.0", + "url": "https://www.apache.org/licenses/LICENSE-2.0.html" + } + }, + "servers": [ + { + "url": "{scheme}://{domain}:{port}{basePath}", + "description": "Carbon On-Premises Installation API Access", + "variables": { + "scheme": { + "description": "HTTP scheme", + "default": "http", + "enum": [ + "http", + "https" + ] + }, + "domain": { + "description": "IP address or domain", + "default": "localhost" + }, + "port": { + "description": "Port", + "default": "8080" + }, + "basePath": { + "description": "Base path", + "default": "/" + } + } + }, + { + "url": "https://api.carbone.io", + "description": "Carbon Cloud: Public API Access (Production)" + } + ], + "tags": [ + { + "name": "template", + "description": "Manage templates" + }, + { + "name": "render", + "description": "Manage renders" + }, + { + "name": "status", + "description": "API Status" + } + ], + "paths": { + "/template": { + "post": { + "tags": [ + "template" + ], + "summary": "Upload a template.", + "description": "Documentation: https://carbone.io/api-reference.html#add-templates", + "security": [ + { + "bearerAuth": [] + } + ], + "parameters": [ + { + "$ref": "#/components/parameters/carboneVersion" + } + ], + "requestBody": { + "required": true, + "description": "Template File to upload, supported formats: DOCX, XLSX, PPTX, ODT, ODS, ODP, ODG, XHTML, IDML, HTML or an XML file", + "content": { + "multipart/form-data": { + "schema": { + "type": "object", + "required": [ + "template" + ], + "properties": { + "template": { + "type": "string", + "format": "binary" + } + } + } + }, + "application/json": { + "schema": { + "type": "object", + "required": [ + "template" + ], + "properties": { + "template": { + "type": "string", + "example": "base64-encoded file contents" + } + } + } + } + } + }, + "responses": { + "200": { + "description": "On success, the `template ID` is returned.", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "success": { + "type": "boolean" + }, + "data": { + "type": "object", + "properties": { + "templateId": { + "type": "string" + } + } + } + } + } + } + } + }, + "400": { + "$ref": "#/components/responses/NotFileError" + }, + "401": { + "$ref": "#/components/responses/UnauthorizedError" + }, + "415": { + "$ref": "#/components/responses/TemplateFormatError" + }, + "422": { + "$ref": "#/components/responses/MissingTemplateFieldError" + } + } + } + }, + "/template/{templateId}": { + "get": { + "description": "Documentation: https://carbone.io/api-reference.html#get-templates", + "tags": [ + "template" + ], + "summary": "Download a template from a template ID", + "security": [ + { + "bearerAuth": [] + } + ], + "parameters": [ + { + "$ref": "#/components/parameters/templateId" + }, + { + "$ref": "#/components/parameters/carboneVersion" + } + ], + "responses": { + "200": { + "description": "stream of the file content", + "headers": { + "content-disposition": { + "schema": { + "type": "string" + }, + "description": "Template name, for instance: 'filename=\"{templateid}.docx\"'." + }, + "content-type": { + "schema": { + "type": "string" + }, + "description": "File type" + } + } + }, + "400": { + "$ref": "#/components/responses/templateIdNotValidError" + }, + "401": { + "$ref": "#/components/responses/UnauthorizedError" + }, + "404": { + "$ref": "#/components/responses/TemplateNotFoundError" + } + } + }, + "delete": { + "description": "Documentation: https://carbone.io/api-reference.html#delete-templates", + "tags": [ + "template" + ], + "summary": "Delete a template from a template ID", + "security": [ + { + "bearerAuth": [] + } + ], + "parameters": [ + { + "$ref": "#/components/parameters/templateId" + }, + { + "$ref": "#/components/parameters/carboneVersion" + } + ], + "responses": { + "200": { + "description": "The template is deleted", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "success": { + "type": "boolean", + "default": true + } + } + } + } + } + }, + "400": { + "$ref": "#/components/responses/templateIdNotValidError" + }, + "401": { + "$ref": "#/components/responses/UnauthorizedError" + }, + "404": { + "$ref": "#/components/responses/TemplateNotFoundError" + } + } + } + }, + "/render/{templateId}": { + "post": { + "summary": "Generate a document from a template ID, and a JSON data-set", + "description": "Documentation: https://carbone.io/api-reference.html#render-reports", + "security": [ + { + "bearerAuth": [] + } + ], + "tags": [ + "render" + ], + "parameters": [ + { + "$ref": "#/components/parameters/templateId" + }, + { + "$ref": "#/components/parameters/carboneVersion" + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "required": [ + "data" + ], + "properties": { + "data": { + "type": "object", + "example": { + "id": "42", + "name": "John", + "type": "invoice" + }, + "description": "Required - ï¸\u008fJSON data-set merged into the template to generate a document" + }, + "convertTo": { + "type": "string", + "example": "pdf", + "description": "Optional - Convert the document into another format. Accepted values: ods xlsx xls csv pdf txt odp ppt pptx jpg png odt doc docx txt jpg png epub html xml idml. List of supported formats: https://carbone.io/documentation.html#supported-files-and-features-list" + }, + "timezone": { + "type": "string", + "example": "Europe/Paris", + "description": "Optional - Convert document dates to a timezone. The default timezone is `Europe/Paris`. The date must be chained with the `:formatD` formatter, for instance `{d.date:formatD(YYYY-MM-DD HH:MM)}`. List of accepted timezones (Column TZ identifier): https://en.wikipedia.org/wiki/List_of_tz_database_time_zones" + }, + "lang": { + "type": "string", + "example": "fr-fr", + "description": "Optional - Locale of the generated doocument, it will used for translation `{t()}`, formatting numbers with `:formatN`, and currencies `:formatC`. List of supported locales: https://github.com/carboneio/carbone/blob/master/formatters/_locale.js" + }, + "complement": { + "type": "object", + "example": {}, + "description": "Optional - Object|Array, extra data accessible in the template with {c.} instead of {d.}" + }, + "variableStr": { + "type": "string", + "example": "{#def = d.id}", + "description": "Optional - Predefine alias, related documenation: https://carbone.io/documentation.html#alias" + }, + "reportName": { + "type": "string", + "example": "{d.date}.odt", + "description": "Optional - Static or dynamic file name returned on the `content-disposition` header when the generated report is fetched with `GET /report/:renderI`. Multiple Carbone tags are accepted, such as `{d.type}-{d.date}.pdf`" + }, + "enum": { + "type": "object", + "example": {}, + "description": "Optional - List of enumerations, use it in reports with `convEnum` formatters, documentation: https://carbone.io/documentation.html#convenum-type-" + }, + "translations": { + "type": "object", + "example": { + "fr": { + "one": "un" + }, + "es": { + "one": "uno" + } + }, + "description": "Optional - When the report is generated, all text between `{t( )}` is replaced with the corresponding translation. The `lang` option is required to select the correct translation. Learn more: https://carbone.io/documentation.html#translations" + }, + "currencySource": { + "type": "string", + "example": "EUR", + "description": "Optional - Currency source coming from your JSON data. The option is used by `formatC` to convert the currency based on the `currencyTarget` and `currencyRates`. Learn more: https://carbone.io/documentation.html#formatc-precisionorformat-" + }, + "currencyTarget": { + "type": "string", + "example": "USD", + "description": "Optional - Target currency when the document is generated. The option is used by `formatC` to convert the currency based on the `currencySource` and `currencyRates`. Learn more: https://carbone.io/documentation.html#formatc-precisionorformat-" + }, + "currencyRates": { + "type": "object", + "example": { + "EUR": 1, + "USD": 1.2 + }, + "description": "Optional - Currency exchange rates for conversions from `currencySource` to `currencyTarget`. Learn more: https://carbone.io/documentation.html#formatc-precisionorformat-" + }, + "hardRefresh": { + "type": "boolean", + "example": false, + "description": "Optional - If true, the report content is refreshed at the end of the rendering process. To use this option, `convertTo` has to be defined. It is mostly used to refresh a table of content." + } + } + } + } + } + }, + "responses": { + "200": { + "description": "On success, a `render ID` is returned, a unique identifier for the generated document.", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "success": { + "type": "boolean", + "default": true + }, + "data": { + "type": "object", + "properties": { + "renderId": { + "type": "string" + } + } + } + } + } + } + } + }, + "400": { + "$ref": "#/components/responses/NotJsonError" + }, + "401": { + "$ref": "#/components/responses/UnauthorizedError" + }, + "404": { + "$ref": "#/components/responses/TemplateNotFoundError" + }, + "422": { + "$ref": "#/components/responses/MissingDataFieldError" + }, + "500": { + "$ref": "#/components/responses/GenerateReportError" + } + } + } + }, + "/render/{renderId}": { + "get": { + "summary": "Retreive a generated document from a render ID.", + "description": "Documentation: https://carbone.io/api-reference.html#download-rendered-reports", + "tags": [ + "render" + ], + "parameters": [ + { + "$ref": "#/components/parameters/renderId" + }, + { + "$ref": "#/components/parameters/carboneVersion" + } + ], + "responses": { + "200": { + "description": "Stream of the generated document", + "headers": { + "content-disposition": { + "schema": { + "type": "string" + }, + "description": "File name, for instance: 'filename=\"report.pdf\"'. The default value is 'report'. The file name can be changed dynamically thanks to the `reportName` option when generating a document with `POST /render/:templateId`." + }, + "content-type": { + "schema": { + "type": "string" + }, + "description": "File type" + } + } + }, + "400": { + "$ref": "#/components/responses/RenderIdNotValidError" + }, + "401": { + "$ref": "#/components/responses/UnauthorizedError" + }, + "404": { + "$ref": "#/components/responses/FileDoesNotExistError" + } + } + } + }, + "/status": { + "get": { + "tags": [ + "status" + ], + "summary": "Fetch the API status and version", + "responses": { + "200": { + "description": "Check the API status and version", + "content": { + "application/json": { + "schema": { + "type": "object", + "example": { + "success": true, + "code": 200, + "message": "OK", + "version": "4.13.0" + }, + "properties": { + "success": { + "type": "boolean" + }, + "code": { + "type": "number" + }, + "message": { + "type": "string" + }, + "version": { + "type": "string" + } + } + } + } + } + }, + "500": { + "description": "Something went wrong, contact support on the chat" + } + } + } + } + }, + "components": { + "securitySchemes": { + "bearerAuth": { + "type": "http", + "description": "Get you test or production API Key on https://account.carbone.io", + "scheme": "bearer", + "bearerFormat": "eyJhbGci..." + } + }, + "parameters": { + "carboneVersion": { + "name": "carbone-version", + "description": "Carbone version", + "in": "header", + "required": true, + "schema": { + "type": "integer", + "format": "int32", + "default": 4 + } + }, + "templateId": { + "in": "path", + "name": "templateId", + "description": "Unique identifier of the template", + "schema": { + "type": "string" + }, + "required": true + }, + "renderId": { + "in": "path", + "name": "renderId", + "description": "Unique identifier of the report", + "schema": { + "type": "string" + }, + "required": true + } + }, + "responses": { + "CResponseError": { + "description": "Error response when the request is invalid.", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "success": { + "type": "boolean", + "default": false + }, + "data": { + "type": "object" + } + } + } + } + } + }, + "UnauthorizedError": { + "description": "Unauthorized, please provide a correct API key on the `Authorization ` header. The API key is available on your Carbone account: https://account.carbone.io", + "content": { + "application/json": { + "schema": { + "type": "object", + "example": { + "success": false, + "error": "Unauthorized, please provide a valid API key on the 'Authorization' header" + } + } + } + } + }, + "NotJsonError": { + "description": "The body request type is not correct, it must be a JSON type and the `Content-type` header must be `application/json`", + "content": { + "application/json": { + "schema": { + "type": "object", + "example": { + "success": false, + "error": "'Content-Type' header is not 'application/json'" + } + } + } + } + }, + "TemplateNotFoundError": { + "description": "The template is not found", + "content": { + "application/json": { + "schema": { + "type": "object", + "example": { + "success": false, + "error": "Template not found" + } + } + } + } + }, + "MissingDataFieldError": { + "description": "The 'data' property is missing on the body request.", + "content": { + "application/json": { + "schema": { + "type": "object", + "example": { + "success": false, + "error": "Missing 'data' property in body" + } + } + } + } + }, + "GenerateReportError": { + "description": "Something went wrong when merging the JSON data-set into the template. The design of the template has an issue.", + "content": { + "application/json": { + "schema": { + "type": "object", + "example": { + "success": false, + "error": "Error while rendering template" + } + } + } + } + }, + "NotFileError": { + "description": "The body request type is not correct, it must be a FormData or a JSON. The `Content-type` header must be either `application/json` or `multipart/form-data`", + "content": { + "application/json": { + "schema": { + "type": "object", + "example": { + "success": false, + "error": "Content-Type header should be multipart/form-data or application/json" + } + } + } + } + }, + "TemplateFormatError": { + "description": "Template format not supported, it must be an XML-based document: DOCX, XLSX, PPTX, ODT, ODS, ODP, ODG, XHTML, IDML, HTML or an XML file", + "content": { + "application/json": { + "schema": { + "type": "object", + "example": { + "success": false, + "error": "Template format not supported" + } + } + } + } + }, + "MissingTemplateFieldError": { + "description": "The `template` field is empty on the body request", + "content": { + "application/json": { + "schema": { + "type": "object", + "example": { + "success": false, + "error": "'template' field is empty" + } + } + } + } + }, + "templateIdNotValidError": { + "description": "The `template ID` is not valid", + "content": { + "application/json": { + "schema": { + "type": "object", + "example": { + "success": false, + "error": "Invalid templateId" + } + } + } + } + }, + "FileDoesNotExistError": { + "description": "The file does not exist.", + "content": { + "application/json": { + "schema": { + "type": "object", + "example": { + "success": false, + "error": "File not found" + } + } + } + } + }, + "RenderIdNotValidError": { + "description": "The `render ID` is not valid", + "content": { + "application/json": { + "schema": { + "type": "object", + "example": { + "success": false, + "error": "Invalid render ID" + } + } + } + } + } + } + } +} \ No newline at end of file diff --git a/server/node-service/src/plugins/carboneIo/index.ts b/server/node-service/src/plugins/carboneIo/index.ts new file mode 100644 index 000000000..d3aab57db --- /dev/null +++ b/server/node-service/src/plugins/carboneIo/index.ts @@ -0,0 +1,69 @@ +import { readYaml } from "../../common/util"; +import _ from "lodash"; +import path from "path"; +import { OpenAPIV3, OpenAPI } from "openapi-types"; +import { ConfigToType, DataSourcePlugin } from "lowcoder-sdk/dataSource"; +import { runOpenApi } from "../openApi"; +import { parseOpenApi, ParseOpenApiOptions } from "../openApi/parse"; + +import spec from './carboneIo.spec.json'; + +const dataSourceConfig = { + type: "dataSource", + params: [ + { + key: "serverURL", + type: "textInput", + label: "Service URL", + rules: [{ required: true }], + placeholder: "https://api.carbone.io", + tooltip: "Input the Service url of your Carbone instance.", + }, + { + "type": "password", + "key": "bearerAuth.value", + "label": "Token", + "tooltip": "For Carbone Cloud, find your API key on your Carbone account https://account.carbone.io. Home page > Copy the `production` or `testing` API key.", + "placeholder": "" + } + ] +} as const; + +const parseOptions: ParseOpenApiOptions = { + actionLabel: (method: string, path: string, operation: OpenAPI.Operation) => { + return _.upperFirst(operation.operationId || ""); + }, +}; + +type DataSourceConfigType = ConfigToType; + +const carboneIoPlugin: DataSourcePlugin = { + id: "carboneIo", + name: "carboneIo", + icon: "carboneIo.svg", + category: "DocumentHandling", + dataSourceConfig, + queryConfig: async () => { + const { actions, categories } = await parseOpenApi(spec as unknown as OpenAPI.Document, parseOptions); + return { + type: "query", + label: "Action", + categories: { + label: "Resources", + items: categories, + }, + actions, + }; + }, + run: function (actionData, dataSourceConfig): Promise { + const { serverURL } = dataSourceConfig; + const runApiDsConfig = { + url: "", + serverURL: serverURL, + dynamicParamsConfig: dataSourceConfig, + }; + return runOpenApi(actionData, runApiDsConfig, spec as OpenAPIV3.Document); + }, +}; + +export default carboneIoPlugin; diff --git a/server/node-service/src/plugins/index.ts b/server/node-service/src/plugins/index.ts index b4fdd89be..7597ef67a 100644 --- a/server/node-service/src/plugins/index.ts +++ b/server/node-service/src/plugins/index.ts @@ -41,7 +41,8 @@ import supabaseApiPlugin from "./supabaseApi"; import firebirdsqlPlugin from "./firebirdsql"; import apiTemplatePlugin from "./apiTemplate"; import uiPathPlugin from "./uiPath"; -import serpApiPlugin from "./serpApi" +import serpApiPlugin from "./serpApi"; +import carboneIoPlugin from "./carboneIo"; // import boomiPlugin from "./boomi"; let plugins: (DataSourcePlugin | DataSourcePluginFactory)[] = [ @@ -81,7 +82,7 @@ let plugins: (DataSourcePlugin | DataSourcePluginFactory)[] = [ // Workflow n8nPlugin, - uiPathPlugin, + // boomiPlugin, // Messaging @@ -94,7 +95,6 @@ let plugins: (DataSourcePlugin | DataSourcePluginFactory)[] = [ googleCloudStorage, supabasePlugin, cloudinaryPlugin, - apiTemplatePlugin, ossPlugin, // Project Management @@ -103,6 +103,10 @@ let plugins: (DataSourcePlugin | DataSourcePluginFactory)[] = [ notionPlugin, slackPlugin, + // Reports & Document Creation + apiTemplatePlugin, + carboneIoPlugin, + // CRM frontPlugin, @@ -112,7 +116,10 @@ let plugins: (DataSourcePlugin | DataSourcePluginFactory)[] = [ wooCommercePlugin, // Webscrapers - serpApiPlugin + serpApiPlugin, + + // RPA + uiPathPlugin ]; try { diff --git a/server/node-service/src/plugins/uiPath/index.ts b/server/node-service/src/plugins/uiPath/index.ts index 9954142a7..915b21e94 100644 --- a/server/node-service/src/plugins/uiPath/index.ts +++ b/server/node-service/src/plugins/uiPath/index.ts @@ -43,7 +43,7 @@ const uiPathPlugin: DataSourcePlugin = { id: "uiPath", name: "UiPath", icon: "uiPath.svg", - category: "Workflow", + category: "RPA", dataSourceConfig, queryConfig: async () => { const { actions, categories } = await parseOpenApi(spec as unknown as OpenAPI.Document, parseOptions); @@ -58,7 +58,6 @@ const uiPathPlugin: DataSourcePlugin = { }; }, run: function (actionData, dataSourceConfig): Promise { - const { serverURL } = dataSourceConfig; const runApiDsConfig = { url: "", diff --git a/server/node-service/src/static/plugin-icons/carboneIo.svg b/server/node-service/src/static/plugin-icons/carboneIo.svg new file mode 100644 index 000000000..788f85b1a --- /dev/null +++ b/server/node-service/src/static/plugin-icons/carboneIo.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/server/node-service/src/static/plugin-icons/carboneIo2.svg b/server/node-service/src/static/plugin-icons/carboneIo2.svg new file mode 100644 index 000000000..13342974a --- /dev/null +++ b/server/node-service/src/static/plugin-icons/carboneIo2.svg @@ -0,0 +1,19 @@ + + + + + + + + From c85bc96ff5d5ff2603d3e745f32bb923587e006f Mon Sep 17 00:00:00 2001 From: FalkWolsky Date: Fri, 20 Dec 2024 02:15:20 +0100 Subject: [PATCH 81/88] Fixing bearerAuth Scheme in Node Service --- server/node-service/package.json | 2 +- .../src/plugins/lowcoder/index.ts | 18 +- ...oder.spec.json => lowcoder.spec-v1.0.json} | 0 .../plugins/lowcoder/lowcoder.spec-v1.1.json | 9397 +++++++++++++++++ .../node-service/src/plugins/openApi/index.ts | 13 +- .../node-service/src/plugins/openApi/parse.ts | 12 +- .../node-service/src/plugins/openApi/util.ts | 44 +- .../node-service/src/plugins/serpApi/index.ts | 3 +- .../src/plugins/supabaseApi/index.ts | 2 - server/node-service/src/services/plugin.ts | 5 +- server/node-service/yarn.lock | 763 +- 11 files changed, 9752 insertions(+), 507 deletions(-) rename server/node-service/src/plugins/lowcoder/{lowcoder.spec.json => lowcoder.spec-v1.0.json} (100%) create mode 100644 server/node-service/src/plugins/lowcoder/lowcoder.spec-v1.1.json diff --git a/server/node-service/package.json b/server/node-service/package.json index 3f4603001..5941f0e21 100644 --- a/server/node-service/package.json +++ b/server/node-service/package.json @@ -71,7 +71,7 @@ "prom-client": "^14.2.0", "proxy-agent": "^5.0.0", "stylis": "^4.3.0", - "swagger-client": "^3.31.0", + "swagger-client": "^3.32.2", "typescript": "^4.9.3", "yaml": "^2.6.0" }, diff --git a/server/node-service/src/plugins/lowcoder/index.ts b/server/node-service/src/plugins/lowcoder/index.ts index 5e1aed298..397cf54c6 100644 --- a/server/node-service/src/plugins/lowcoder/index.ts +++ b/server/node-service/src/plugins/lowcoder/index.ts @@ -6,9 +6,12 @@ import { ConfigToType, DataSourcePlugin } from "lowcoder-sdk/dataSource"; import { runOpenApi } from "../openApi"; import { parseOpenApi, ParseOpenApiOptions } from "../openApi/parse"; -import spec from './lowcoder.spec.json'; +import spec10 from './lowcoder.spec-v1.0.json'; +import spec11 from './lowcoder.spec-v1.1.json'; + const specs = { - "v1.0": spec, + "v1.0": spec10, + "v1.1": spec11, } const dataSourceConfig = { @@ -22,11 +25,6 @@ const dataSourceConfig = { placeholder: "https://:port", tooltip: "Input the server url of your self-hosting instance or api-service.lowcoder.cloud if you are running your apps on the free public Community Edition Cloud Service.", }, - { - "type": "groupTitle", - "key": "API Key", - "label": "Api Key Auth" - }, { type: "password", key: "bearerAuth.value", @@ -72,13 +70,15 @@ const lowcoderPlugin: DataSourcePlugin = { }; }, run: function (actionData, dataSourceConfig): Promise { - const { serverURL, ...otherDataSourceConfig } = dataSourceConfig; + const { serverURL, specVersion, dynamicParamsConfig, ...otherDataSourceConfig } = dataSourceConfig; + const runApiDsConfig = { url: "", serverURL: serverURL, dynamicParamsConfig: otherDataSourceConfig, - specVersion: dataSourceConfig.specVersion, + specVersion: specVersion }; + return runOpenApi(actionData, runApiDsConfig, version2spec(specs, dataSourceConfig.specVersion) as OpenAPIV3.Document); }, }; diff --git a/server/node-service/src/plugins/lowcoder/lowcoder.spec.json b/server/node-service/src/plugins/lowcoder/lowcoder.spec-v1.0.json similarity index 100% rename from server/node-service/src/plugins/lowcoder/lowcoder.spec.json rename to server/node-service/src/plugins/lowcoder/lowcoder.spec-v1.0.json diff --git a/server/node-service/src/plugins/lowcoder/lowcoder.spec-v1.1.json b/server/node-service/src/plugins/lowcoder/lowcoder.spec-v1.1.json new file mode 100644 index 000000000..3aa304d68 --- /dev/null +++ b/server/node-service/src/plugins/lowcoder/lowcoder.spec-v1.1.json @@ -0,0 +1,9397 @@ +{ + "openapi": "3.0.1", + "info": { + "title": "Lowcoder Open Rest API", + "version": "1.1", + "description": "The Lowcoder API is a RESTful web service designed to facilitate efficient interaction with the Lowcoder platform. This API allows developers to integrate and interact with various functionalities of the Lowcoder service programmatically.", + "termsOfService": "https://lowcoder.cloud/terms", + "license": { + "name": "MIT" + }, + "contact": { + "name": "Lowcoder Software LTD", + "email": "service@lowcoder.org", + "url": "https://lowcoder.cloud" + } + }, + "servers": [ + { + "url": "{scheme}://{domain}:{port}{basePath}", + "description": "Lowcoder Self-hosted Installation API Access", + "variables": { + "scheme": { + "description": "HTTP scheme", + "default": "http", + "enum": [ + "http", + "https" + ] + }, + "domain": { + "description": "Lowcoder IP address or domain", + "default": "localhost" + }, + "port": { + "description": "Port", + "default": "3000" + }, + "basePath": { + "description": "Base path", + "default": "/" + } + } + }, + { + "url": "https://api-service.lowcoder.cloud", + "description": "Lowcoder Community Edition: Public Cloud API Access" + } + ], + "security": [ + { + "bearerAuth": [] + } + ], + "paths": { + "/api/users/password": { + "put": { + "tags": [ + "User Password APIs" + ], + "summary": "Update User Password", + "description": "Allow the User to update their Password within Lowcoder, enhancing security and account management.", + "operationId": "updatePassword", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/UpdatePasswordRequest" + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "OK", + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ResponseViewBoolean" + } + } + } + } + } + }, + "post": { + "tags": [ + "User Password APIs" + ], + "summary": "Set User Password", + "description": "Set a new Password for the User within Lowcoder, ensuring secure access to their account.", + "operationId": "setPassword", + "parameters": [ + { + "name": "password", + "in": "query", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ResponseViewBoolean" + } + } + } + } + } + } + }, + "/api/users/newUserGuidanceShown": { + "put": { + "tags": [ + "User APIs" + ], + "summary": "Mark current user with help shown status", + "description": "Indicate that the current user has been shown help or guidance within Lowcoder, helping track user assistance efforts.", + "operationId": "newUserGuidanceShown", + "responses": { + "200": { + "description": "OK", + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ResponseViewBoolean" + } + } + } + } + } + } + }, + "/api/users/mark-status": { + "put": { + "tags": [ + "User APIs" + ], + "summary": "Mark current User with Status", + "description": "Mark the current User with a specific Status within Lowcoder, allowing for status tracking or updates.", + "operationId": "markUserStatus", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/MarkUserStatusRequest" + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "OK", + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ResponseViewBoolean" + } + } + } + } + } + } + }, + "/api/users": { + "put": { + "tags": [ + "User APIs" + ], + "summary": "Update current User", + "description": "Enable the current User to update their Profile information within Lowcoder, ensuring accuracy and relevance.", + "operationId": "updateUser", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/UpdateUserRequest" + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "OK", + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ResponseViewUserProfileView" + } + } + } + } + } + } + }, + "/api/organizations/{orgId}/update": { + "put": { + "tags": [ + "Organization APIs" + ], + "summary": "Update Organization by ID", + "description": "Modify the properties and settings of an existing Organization within Lowcoder identified by its unique ID.", + "operationId": "updateOrganization", + "parameters": [ + { + "name": "orgId", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/UpdateOrgRequest" + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "OK", + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ResponseViewBoolean" + } + } + } + } + } + } + }, + "/api/organizations/{orgId}/role": { + "put": { + "tags": [ + "Organization Member APIs" + ], + "summary": "Update role of Member in Organization", + "description": "Change the Role of a specific Member (User) within an Organization in Lowcoder using the unique ID of a user and the name of the existing Role.", + "operationId": "updateOrganizationMemberRole", + "parameters": [ + { + "name": "orgId", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/UpdateRoleRequest" + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "OK", + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ResponseViewBoolean" + } + } + } + } + } + } + }, + "/api/organizations/{orgId}/common-settings": { + "get": { + "tags": [ + "Organization APIs" + ], + "summary": "Get Organization common Settings", + "description": "Retrieve common settings (such as Themes and Auth Sources) and configurations for an Organization within Lowcoder using its unique ID.", + "operationId": "getOrganizationSettings", + "parameters": [ + { + "name": "orgId", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ResponseViewOrganizationCommonSettings" + } + } + } + } + } + }, + "put": { + "tags": [ + "Organization APIs" + ], + "summary": "Update Organization common Settings", + "description": "Modify common settings (such as Themes) and configurations for a Lowcoder Organization / Workspace.", + "operationId": "updateOrganizationSettings", + "parameters": [ + { + "name": "orgId", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/UpdateOrgCommonSettingsRequest" + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "OK", + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ResponseViewBoolean" + } + } + } + } + } + } + }, + "/api/organizations/switchOrganization/{orgId}": { + "put": { + "tags": [ + "Organization Member APIs" + ], + "summary": "Switch current users Organization", + "description": "Trigger a switch of the active Organization for the current User within Lowcoder in regards to the Session. After this switch, the impersonated user will see all resources from the new / selected Organization.", + "operationId": "switchOrganization", + "parameters": [ + { + "name": "orgId", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ResponseViewObject" + } + } + } + } + } + } + }, + "/api/groups/{groupId}/update": { + "put": { + "tags": [ + "Group APIs" + ], + "summary": "Update User Group", + "description": "Modify the properties and settings of an existing User Group within Lowcoder, identified by the unique ID of a User Group.", + "operationId": "updateGroup", + "parameters": [ + { + "name": "groupId", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/UpdateGroupRequest" + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "OK", + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ResponseViewBoolean" + } + } + } + } + } + } + }, + "/api/groups/{groupId}/role": { + "put": { + "tags": [ + "Group Members APIs" + ], + "summary": "Update User Group member role", + "description": "Modify the Role of a specific Member within a User Group in Lowcoder, ensuring proper access control.", + "operationId": "updateRoleForGroupMember", + "parameters": [ + { + "name": "groupId", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/UpdateRoleRequest" + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "OK", + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ResponseViewBoolean" + } + } + } + } + } + } + }, + "/api/datasources/{id}": { + "get": { + "tags": [ + "Data Source APIs" + ], + "summary": "Get data source by ID", + "description": "Retrieve a specific data source within Lowcoder by its ID.", + "operationId": "getDatasource", + "parameters": [ + { + "name": "id", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ResponseViewDatasource_Public" + } + } + } + } + } + }, + "put": { + "tags": [ + "Data Source APIs" + ], + "summary": "Update data source by ID", + "description": "Modify the properties and settings of a data source within Lowcoder using its ID.", + "operationId": "updateDatasource", + "parameters": [ + { + "name": "id", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/UpsertDatasourceRequest_Public" + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "OK", + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ResponseViewDatasource_Public" + } + } + } + } + } + }, + "delete": { + "tags": [ + "Data Source APIs" + ], + "summary": "Delete data source by ID", + "description": "Permanently remove a data source within Lowcoder using its ID.", + "operationId": "deleteDatasource", + "parameters": [ + { + "name": "id", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ResponseViewBoolean" + } + } + } + } + } + } + }, + "/api/datasources/{datasourceId}/permissions": { + "get": { + "tags": [ + "Data Source Permissions APIs" + ], + "summary": "Get data source permissions", + "description": "Retrieve permissions associated with a specific data source within Lowcoder, identified by its ID.", + "operationId": "listDatasourcePermissions", + "parameters": [ + { + "name": "datasourceId", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ResponseViewCommonPermissionView" + } + } + } + } + } + }, + "put": { + "tags": [ + "Data Source Permissions APIs" + ], + "summary": "Update data source permission", + "description": "Modify a specific data source permission within Lowcoder, identified by its ID.", + "operationId": "updateDatasourcePermission", + "parameters": [ + { + "name": "datasourceId", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/BatchAddPermissionRequest" + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "OK", + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ResponseViewBoolean" + } + } + } + } + } + } + }, + "/api/datasources/permissions/{permissionId}": { + "put": { + "tags": [ + "Data Source Permissions APIs" + ], + "summary": "Grant permissions to data source", + "description": "Assign permissions for selected users or user-groups to a specific data source within Lowcoder, identified by its ID.", + "operationId": "grantDatasourcePermissions", + "parameters": [ + { + "name": "permissionId", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/UpdatePermissionRequest" + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "OK", + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ResponseViewBoolean" + } + } + } + } + } + }, + "delete": { + "tags": [ + "Data Source Permissions APIs" + ], + "summary": "Revoke permission from data source", + "description": "Revoke a specific permission from a data source within Lowcoder, identified by its ID.", + "operationId": "revokeDatasourcePermission", + "parameters": [ + { + "name": "permissionId", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ResponseViewBoolean" + } + } + } + } + } + } + }, + "/api/applications/{applicationId}/public-to-marketplace": { + "put": { + "tags": [ + "Application APIs" + ], + "summary": "Set Application as publicly available on marketplace but to only logged in users", + "description": "Set a Lowcoder Application identified by its ID as publicly available on marketplace but to only logged in users.", + "operationId": "setApplicationAsPublicToMarketplace", + "parameters": [ + { + "name": "applicationId", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ApplicationPublicToMarketplaceRequest" + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "OK", + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ResponseViewBoolean" + } + } + } + } + } + } + }, + "/api/applications/{applicationId}/public-to-all": { + "put": { + "tags": [ + "Application APIs" + ], + "summary": "Set Application as publicly available", + "description": "Set a Lowcoder Application identified by its ID as generally publicly available. This is a preparation to published a Lowcoder Application in production mode.", + "operationId": "setApplicationAsPublic", + "parameters": [ + { + "name": "applicationId", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ApplicationPublicToAllRequest" + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "OK", + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ResponseViewBoolean" + } + } + } + } + } + } + }, + "/api/applications/{applicationId}/permissions/{permissionId}": { + "put": { + "tags": [ + "Application Permissions APIs" + ], + "summary": "Update Application permissions", + "description": "Update the permissions of a specific Lowcoder Application identified by its ID.", + "operationId": "updateApplicationPermissions", + "parameters": [ + { + "name": "applicationId", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "permissionId", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/UpdatePermissionRequest" + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "OK", + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ResponseViewBoolean" + } + } + } + } + } + }, + "delete": { + "tags": [ + "Application Permissions APIs" + ], + "summary": "Revoke permissions from Application", + "description": "Revoke permissions of a specific Lowcoder Application identified by its ID.", + "operationId": "revokeApplicationPermissions", + "parameters": [ + { + "name": "applicationId", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "permissionId", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ResponseViewBoolean" + } + } + } + } + } + } + }, + "/api/applications/{applicationId}/permissions": { + "get": { + "tags": [ + "Application Permissions APIs" + ], + "summary": "Get Application permissions", + "description": "Retrieve the permissions of a specific Lowcoder Application identified by its ID.", + "operationId": "listApplicationPermissions", + "parameters": [ + { + "name": "applicationId", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ResponseViewApplicationPermissionView" + } + } + } + } + } + }, + "put": { + "tags": [ + "Application Permissions APIs" + ], + "summary": "Grant permissions to Application", + "description": "Grant new permissions to a specific Lowcoder Application identified by its ID.", + "operationId": "grantApplicationPermissions", + "parameters": [ + { + "name": "applicationId", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/BatchAddPermissionRequest" + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "OK", + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ResponseViewBoolean" + } + } + } + } + } + } + }, + "/api/applications/{applicationId}/agency-profile": { + "put": { + "tags": [ + "Application APIs" + ], + "summary": "Set Application as agency profile", + "description": "Set a Lowcoder Application identified by its ID as as agency profile but to only logged in users.", + "operationId": "setApplicationAsAgencyProfile", + "parameters": [ + { + "name": "applicationId", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ApplicationAsAgencyProfileRequest" + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "OK", + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ResponseViewBoolean" + } + } + } + } + } + } + }, + "/api/applications/{applicationId}": { + "get": { + "tags": [ + "Application APIs" + ], + "summary": "Get Application data in edit mode", + "description": "Retrieve the DSL data of a Lowcoder Application in edit-mode by its ID.", + "operationId": "getApplicationDataInEditMode", + "parameters": [ + { + "name": "applicationId", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ResponseViewApplicationView" + } + } + } + } + } + }, + "put": { + "tags": [ + "Application APIs" + ], + "summary": "Update Application by ID", + "description": "Update a Lowcoder Application identified by its ID.", + "operationId": "updateApplication", + "parameters": [ + { + "name": "applicationId", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Application" + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "OK", + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ResponseViewApplicationView" + } + } + } + } + } + }, + "delete": { + "tags": [ + "Application APIs" + ], + "summary": "Delete Application by ID", + "description": "Permanently delete a Lowcoder Application identified by its ID.", + "operationId": "deleteApplication", + "parameters": [ + { + "name": "applicationId", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ResponseViewApplicationView" + } + } + } + } + } + } + }, + "/api/applications/restore/{applicationId}": { + "put": { + "tags": [ + "Application APIs" + ], + "summary": "Restore recycled Application", + "description": "Restore a previously recycled Lowcoder Application identified by its ID", + "operationId": "restoreRecycledApplication", + "parameters": [ + { + "name": "applicationId", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ResponseViewBoolean" + } + } + } + } + } + } + }, + "/api/applications/recycle/{applicationId}": { + "put": { + "tags": [ + "Application APIs" + ], + "summary": "Move Application to bin (do not delete)", + "description": "Move a Lowcoder Application identified by its ID to the recycle bin without permanent deletion.", + "operationId": "recycleApplication", + "parameters": [ + { + "name": "applicationId", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ResponseViewBoolean" + } + } + } + } + } + } + }, + "/api/applications/editState/{applicationId}": { + "put": { + "tags": [ + "Application APIs" + ], + "summary": "Update Application editing state", + "description": "Update the editing state of a specific Lowcoder Application identified by its ID.", + "operationId": "updateApplicationEditingState", + "parameters": [ + { + "name": "applicationId", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/UpdateEditStateRequest" + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "OK", + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ResponseViewBoolean" + } + } + } + } + } + } + }, + "/api/library-queries/{libraryQueryId}": { + "put": { + "tags": [ + "Query Library APIs" + ], + "summary": "Update a Data Query Library", + "description": "Modify the properties and settings of an existing Library Query within Lowcoder identified by its unique ID.", + "operationId": "updateLibraryQuery", + "parameters": [ + { + "name": "libraryQueryId", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/UpsertLibraryQueryRequest" + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "OK", + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ResponseViewBoolean" + } + } + } + } + } + }, + "delete": { + "tags": [ + "Query Library APIs" + ], + "summary": "Delete a Data Query Library", + "description": "Permanently remove a Library Query from Lowcoder using its unique ID.", + "operationId": "deleteLibraryQuery", + "parameters": [ + { + "name": "libraryQueryId", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ResponseViewBoolean" + } + } + } + } + } + } + }, + "/api/folders": { + "put": { + "tags": [ + "Folder APIs" + ], + "summary": "Update Folder", + "description": "Modify the properties and settings of an existing Application Folder within Lowcoder.", + "operationId": "updateFolder", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Folder" + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "OK", + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ResponseViewFolderInfoView" + } + } + } + } + } + }, + "post": { + "tags": [ + "Folder APIs" + ], + "summary": "Create new Folder", + "description": "Create a new Application Folder within the Lowcoder to organize Applications effectively.", + "operationId": "createFolder", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Folder" + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "OK", + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ResponseViewFolderInfoView" + } + } + } + } + } + } + }, + "/api/folders/{folderId}/permissions/{permissionId}": { + "put": { + "tags": [ + "Folder Permissions APIs" + ], + "summary": "Update Folder permissions", + "description": "Modify permissions associated with a specific Application Folder within Lowcoder.", + "operationId": "updateFolderPermissions", + "parameters": [ + { + "name": "folderId", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "permissionId", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/UpdatePermissionRequest" + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "OK", + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ResponseViewVoid" + } + } + } + } + } + }, + "delete": { + "tags": [ + "Folder Permissions APIs" + ], + "summary": "Revoke permissions from Folder", + "description": "Remove specific permissions from an Application Folder within Lowcoder, ensuring that selected Users or User-Groups no longer have access.", + "operationId": "revokeFolderPermissions", + "parameters": [ + { + "name": "folderId", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "permissionId", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ResponseViewVoid" + } + } + } + } + } + } + }, + "/api/folders/move/{id}": { + "put": { + "tags": [ + "Folder APIs" + ], + "summary": "Move Folder", + "description": "Relocate an Application Folder to a different location in the Folder hierarchy in Lowcoder using its unique ID.", + "operationId": "moveFolder", + "parameters": [ + { + "name": "id", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "targetFolderId", + "in": "query", + "required": false, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ResponseViewVoid" + } + } + } + } + } + } + }, + "/api/bundles": { + "put": { + "tags": [ + "Bundle APIs" + ], + "summary": "Update Bundle", + "description": "Modify the properties and settings of an existing Bundle Bundle within Lowcoder.", + "operationId": "updateBundle", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Bundle" + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "OK", + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ResponseViewBundleInfoView" + } + } + } + } + } + }, + "post": { + "tags": [ + "Bundle APIs" + ], + "summary": "Create new Bundle", + "description": "Create a new Application Bundle within the Lowcoder to organize Applications effectively.", + "operationId": "createBundle", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/CreateBundleRequest" + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "OK", + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ResponseViewBundleInfoView" + } + } + } + } + } + } + }, + "/api/bundles/{bundleId}/reorder": { + "put": { + "tags": [ + "Bundle APIs" + ], + "summary": "Reorder Bundle", + "description": "Reorder bundle.", + "operationId": "reorderBundle", + "parameters": [ + { + "name": "bundleId", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "elementIds", + "in": "query", + "required": true, + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ResponseViewVoid" + } + } + } + } + } + } + }, + "/api/bundles/{bundleId}/public-to-marketplace": { + "put": { + "tags": [ + "Bundle APIs" + ], + "summary": "Set Bundle as publicly available on marketplace but to only logged in users", + "description": "Set a Lowcoder Bundle identified by its ID as publicly available on marketplace but to only logged in users.", + "operationId": "setBundleAsPublicToMarketplace", + "parameters": [ + { + "name": "bundleId", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/BundlePublicToMarketplaceRequest" + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "OK", + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ResponseViewBoolean" + } + } + } + } + } + } + }, + "/api/bundles/{bundleId}/public-to-all": { + "put": { + "tags": [ + "Bundle APIs" + ], + "summary": "Set Bundle as publicly available", + "description": "Set a Lowcoder Bundle identified by its ID as generally publicly available. This is a preparation to published a Lowcoder Bundle in production mode.", + "operationId": "setBundleAsPublic", + "parameters": [ + { + "name": "bundleId", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/BundlePublicToAllRequest" + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "OK", + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ResponseViewBoolean" + } + } + } + } + } + } + }, + "/api/bundles/{bundleId}/permissions/{permissionId}": { + "put": { + "tags": [ + "Bundle Permissions APIs" + ], + "summary": "Update Bundle permissions", + "description": "Modify permissions associated with a specific Bundle Bundle within Lowcoder.", + "operationId": "updateBundlePermissions", + "parameters": [ + { + "name": "bundleId", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "permissionId", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/UpdatePermissionRequest" + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "OK", + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ResponseViewVoid" + } + } + } + } + } + }, + "delete": { + "tags": [ + "Bundle Permissions APIs" + ], + "summary": "Revoke permissions from Bundle", + "description": "Remove specific permissions from an Bundle Bundle within Lowcoder, ensuring that selected Users or User-Groups no longer have access.", + "operationId": "revokeBundlePermissions", + "parameters": [ + { + "name": "bundleId", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "permissionId", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ResponseViewVoid" + } + } + } + } + } + } + }, + "/api/bundles/{bundleId}/agency-profile": { + "put": { + "tags": [ + "Bundle APIs" + ], + "summary": "Set Bundle as agency profile", + "description": "Set a Lowcoder Bundle identified by its ID as as agency profile but to only logged in users.", + "operationId": "setBundleAsAgencyProfile", + "parameters": [ + { + "name": "bundleId", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/BundleAsAgencyProfileRequest" + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "OK", + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ResponseViewBoolean" + } + } + } + } + } + } + }, + "/api/bundles/restore/{bundleId}": { + "put": { + "tags": [ + "Bundle APIs" + ], + "summary": "Restore recycled Bundle", + "description": "Restore a previously recycled Lowcoder Bundle identified by its ID", + "operationId": "restoreRecycledBundle", + "parameters": [ + { + "name": "bundleId", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ResponseViewBoolean" + } + } + } + } + } + } + }, + "/api/bundles/recycle/{bundleId}": { + "put": { + "tags": [ + "Bundle APIs" + ], + "summary": "Move Bundle to bin (do not delete)", + "description": "Move a Lowcoder Bundle identified by its ID to the recycle bin without permanent deletion.", + "operationId": "recycleBundle", + "parameters": [ + { + "name": "bundleId", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ResponseViewBoolean" + } + } + } + } + } + } + }, + "/api/bundles/moveApp/{id}": { + "put": { + "tags": [ + "Bundle APIs" + ], + "summary": "Move App to Bundle", + "description": "Relocate an application to a different bundle in Lowcoder using its unique ID.", + "operationId": "moveApp", + "parameters": [ + { + "name": "id", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "fromBundleId", + "in": "query", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "toBundleId", + "in": "query", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ResponseViewVoid" + } + } + } + } + } + } + }, + "/api/bundles/addApp/{id}": { + "put": { + "tags": [ + "Bundle APIs" + ], + "summary": "Add App to Bundle", + "description": "Add an application to a bundle in Lowcoder using its unique ID.", + "operationId": "addApp", + "parameters": [ + { + "name": "id", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "toBundleId", + "in": "query", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ResponseViewVoid" + } + } + } + } + } + } + }, + "/api/users/reset-password": { + "post": { + "tags": [ + "User Password APIs" + ], + "summary": "Reset User Password", + "description": "Initiate a Password Reset process for the user within Lowcoder, allowing them to regain access to their account.", + "operationId": "resetPassword", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ResetPasswordRequest" + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "OK", + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ResponseViewString" + } + } + } + } + } + } + }, + "/api/users/reset-lost-password": { + "post": { + "tags": [ + "User Password APIs" + ], + "summary": "Reset Lost User Password", + "description": "Resets lost password based on the token from lost password email.", + "operationId": "resetLostPassword", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ResetLostPasswordRequest" + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "OK", + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ResponseViewBoolean" + } + } + } + } + } + } + }, + "/api/users/photo": { + "get": { + "tags": [ + "User Profile Photo APIs" + ], + "summary": "Get current User profile photo", + "description": "Retrieve the profile photo of the current User within Lowcoder, if available.", + "operationId": "getUserProfilePhoto", + "responses": { + "200": { + "description": "OK" + } + } + }, + "post": { + "tags": [ + "User Profile Photo APIs" + ], + "summary": "Upload current Users profile photo", + "description": "Allow the current User to upload or change their profile photo within Lowcoder for personalization.", + "operationId": "uploadUserProfilePhoto", + "requestBody": { + "content": { + "multipart/form-data": { + "schema": { + "required": [ + "file" + ], + "type": "object", + "properties": { + "file": { + "$ref": "#/components/schemas/Part" + } + } + } + } + } + }, + "responses": { + "200": { + "description": "OK", + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ResponseViewBoolean" + } + } + } + } + } + }, + "delete": { + "tags": [ + "User Profile Photo APIs" + ], + "summary": "Delete current users profile photo", + "description": "Remove the profile Photo associated with the current User within Lowcoder.", + "operationId": "deleteUserProfilePhoto", + "responses": { + "200": { + "description": "OK", + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ResponseViewVoid" + } + } + } + } + } + } + }, + "/api/users/lost-password": { + "post": { + "tags": [ + "User Password APIs" + ], + "summary": "Lost User Password", + "description": "Initiate a Lost Password recovery process.", + "operationId": "lostPassword", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/LostPasswordRequest" + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "OK", + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ResponseViewBoolean" + } + } + } + } + } + } + }, + "/api/query/execute-from-node": { + "post": { + "tags": [ + "Query Execution APIs" + ], + "summary": "Execute query from node service", + "description": "Execute a data Query from a Node service within Lowcoder, facilitating data retrieval and processing. Node Service is used for extended Data Source Plugins.", + "operationId": "executeQueryFromNodeService", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/LibraryQueryRequestFromJs" + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "OK", + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/QueryResultView" + } + } + } + } + } + } + }, + "/api/query/execute": { + "post": { + "tags": [ + "Query Execution APIs" + ], + "summary": "Execute query from API service", + "description": "Execute a data Query from an API service within Lowcoder, facilitating data retrieval and processing. API Service is used for standard Data Sources like Databases.", + "operationId": "executeQueryFromApiService", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/QueryExecutionRequest" + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "OK", + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/QueryResultView" + } + } + } + } + } + } + }, + "/api/organizations/{orgId}/logo": { + "post": { + "tags": [ + "Organization APIs" + ], + "summary": "Upload Organization Logo", + "description": "Upload an Organization logo for branding and identification for a Lowcoder Organization / Workspace.", + "operationId": "uploadOrganizationLogo", + "parameters": [ + { + "name": "orgId", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "required": [ + "file" + ], + "type": "object", + "properties": { + "file": { + "$ref": "#/components/schemas/Part" + } + } + } + } + } + }, + "responses": { + "200": { + "description": "OK", + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ResponseViewBoolean" + } + } + } + } + } + }, + "delete": { + "tags": [ + "Organization APIs" + ], + "summary": "Delete Organization Logo", + "description": "Remove the logo associated with an Organization within Lowcoder.", + "operationId": "deleteOrganizationLogo", + "parameters": [ + { + "name": "orgId", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ResponseViewBoolean" + } + } + } + } + } + } + }, + "/api/organizations": { + "post": { + "tags": [ + "Organization APIs" + ], + "summary": "Create a new Organization", + "description": "Create a new Organization (Workspace) within the Lowcoder platform as a encapsulated space for Applications, Users and Resources.", + "operationId": "createOrganization", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Organization" + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "OK", + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ResponseViewOrgView" + } + } + } + } + } + } + }, + "/api/invitation": { + "post": { + "tags": [ + "User invitation APIs" + ], + "summary": "Create user Invitation", + "description": "Create a generic User-Invitation within Lowcoder to invite new users to join the platform. Internally an invite Link based on inviting User and it's current Organization / Workspace is built.", + "operationId": "createUserInvitation", + "parameters": [ + { + "name": "orgId", + "in": "query", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ResponseViewInvitationVO" + } + } + } + } + } + } + }, + "/api/groups/{groupId}/addMember": { + "post": { + "tags": [ + "Group Members APIs" + ], + "summary": "Add User to User Group", + "description": "Include a User as a member of a specified User Group in Lowcoder, granting them access to group resources.", + "operationId": "addUserToGroup", + "parameters": [ + { + "name": "groupId", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/AddMemberRequest" + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "OK", + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ResponseViewBoolean" + } + } + } + } + } + } + }, + "/api/groups": { + "post": { + "tags": [ + "Group APIs" + ], + "summary": "Create User Group", + "description": "Create a new User Group within the current Lowcoder Organization / Workspace for organizing and managing your Application users.", + "operationId": "createGroup", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/CreateGroupRequest" + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "OK", + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ResponseViewGroupView" + } + } + } + } + } + } + }, + "/api/datasources/test": { + "post": { + "tags": [ + "Data Source APIs" + ], + "summary": "Test data source", + "description": "Verify the functionality and connectivity of a data source within the Lowcoder platform, identified by its ID.", + "operationId": "testDatasource", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/UpsertDatasourceRequest" + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "OK", + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ResponseViewBoolean" + } + } + } + } + } + } + }, + "/api/datasources/getPluginDynamicConfig": { + "post": { + "tags": [ + "Data Source APIs" + ], + "summary": "Get data source dynamic config", + "description": "Get additional dynamic configuration parameter information of data source within Lowcoder.", + "operationId": "getDatasourceDynamicConfig", + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/GetPluginDynamicConfigRequestDTO" + } + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "OK", + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ResponseViewListObject" + } + } + } + } + } + } + }, + "/api/datasources": { + "post": { + "tags": [ + "Data Source APIs" + ], + "summary": "Create new data source", + "description": "Create a new data source in Lowcoder for data retrieval or storage.", + "operationId": "createDatasource", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/UpsertDatasourceRequest_Public" + } + } + }, + "required": true + }, + "responses": { + "201": { + "description": "Created", + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ResponseViewDatasource_Public" + } + } + } + } + } + } + }, + "/api/applications/{applicationId}/publish": { + "post": { + "tags": [ + "Application APIs" + ], + "summary": "Publish Application for users", + "description": "Set a Lowcoder Application identified by its ID as available to all selected Users or User-Groups. This is similar to the classic deployment. The Lowcoder Apps gets published in production mode.", + "operationId": "publicApplication", + "parameters": [ + { + "name": "applicationId", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ResponseViewApplicationView" + } + } + } + } + } + } + }, + "/api/applications/createFromTemplate": { + "post": { + "tags": [ + "Application APIs" + ], + "summary": "Create an Application from a predefined Template", + "description": "Use an Application-Template to create a new Application in an Organization where the authenticated or impersonated user has access.", + "operationId": "createApplicationFromTemplate", + "parameters": [ + { + "name": "templateId", + "in": "query", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ResponseViewApplicationView" + } + } + } + } + } + } + }, + "/api/applications": { + "post": { + "tags": [ + "Application APIs" + ], + "summary": "Create a new Application", + "description": "Create a new Lowcoder Application based on the Organization-ID where the authenticated or impersonated user has access.", + "operationId": " createApplication", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/CreateApplicationRequest" + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "OK", + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ResponseViewApplicationView" + } + } + } + } + } + } + }, + "/api/materials": { + "post": { + "tags": [ + "File APIs" + ], + "summary": "Upload new File", + "description": "Upload a new binary File within Lowcoder and the current Organization / Workspace by the impersonated User, allowing users to add small files to their resources.", + "operationId": "createFileUpload", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/UploadMaterialRequestDTO" + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "OK", + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ResponseViewMaterialView" + } + } + } + } + } + } + }, + "/api/library-queries": { + "post": { + "tags": [ + "Query Library APIs" + ], + "summary": "Create a Library for Data Queries", + "description": "Create a new Library Query within Lowcoder for storing and managing reusable Data Queries.", + "operationId": "createLibraryQuery", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/LibraryQuery" + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "OK", + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ResponseViewLibraryQueryView" + } + } + } + } + } + } + }, + "/api/library-queries/{libraryQueryId}/publish": { + "post": { + "tags": [ + "Query Library APIs" + ], + "summary": "Publish a Data Query Library for usage", + "description": "Publish a Library Query for usage within Lowcoder, making it available for other users to utilize.", + "operationId": "publishLibraryQuery", + "parameters": [ + { + "name": "libraryQueryId", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/LibraryQueryPublishRequest" + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "OK", + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ResponseViewLibraryQueryRecordMetaView" + } + } + } + } + } + } + }, + "/api/folders/{folderId}/permissions": { + "get": { + "tags": [ + "Folder Permissions APIs" + ], + "summary": "Get Folder permissions", + "description": "Retrieve detailed information about permissions associated with a specific Application Folder within Lowcoder.", + "operationId": "listFolderPermissions", + "parameters": [ + { + "name": "folderId", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ResponseViewApplicationPermissionView" + } + } + } + } + } + }, + "post": { + "tags": [ + "Folder Permissions APIs" + ], + "summary": "Grant permissions to Folder", + "description": "Assign new permissions to a specific Application Folder within Lowcoder, allowing authorized users to access it.", + "operationId": "grantFolderPermissions", + "parameters": [ + { + "name": "folderId", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/BatchAddPermissionRequest" + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "OK", + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ResponseViewVoid" + } + } + } + } + } + } + }, + "/api/bundles/{bundleId}/publish": { + "post": { + "tags": [ + "Bundle APIs" + ], + "summary": "Publish Bundle for users", + "description": "Set a Lowcoder Bundle identified by its ID as available to all selected Users or User-Groups. This is similar to the classic deployment. The Lowcoder Bundle gets published in production mode.", + "operationId": "publicBundle", + "parameters": [ + { + "name": "bundleId", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ResponseViewBundleInfoView" + } + } + } + } + } + } + }, + "/api/bundles/{bundleId}/permissions": { + "get": { + "tags": [ + "Bundle Permissions APIs" + ], + "summary": "Get Bundle permissions", + "description": "Retrieve detailed information about permissions associated with a specific Bundle Bundle within Lowcoder.", + "operationId": "listBundlePermissions", + "parameters": [ + { + "name": "bundleId", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ResponseViewBundlePermissionView" + } + } + } + } + } + }, + "post": { + "tags": [ + "Bundle Permissions APIs" + ], + "summary": "Grant permissions to Bundle", + "description": "Assign new permissions to a specific Bundle Bundle within Lowcoder, allowing authorized users to access it.", + "operationId": "grantBundlePermissions", + "parameters": [ + { + "name": "bundleId", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/BatchAddPermissionRequest" + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "OK", + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ResponseViewVoid" + } + } + } + } + } + } + }, + "/api/auth/tp/login": { + "post": { + "tags": [ + "Authentication APIs" + ], + "summary": "Login with third party", + "description": "Authenticate a Lowcoder User using third-party login credentials.", + "operationId": "loginWithThirdParty", + "parameters": [ + { + "name": "authId", + "in": "query", + "required": false, + "schema": { + "type": "string" + } + }, + { + "name": "source", + "in": "query", + "required": false, + "schema": { + "type": "string" + } + }, + { + "name": "code", + "in": "query", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "invitationId", + "in": "query", + "required": false, + "schema": { + "type": "string" + } + }, + { + "name": "redirectUrl", + "in": "query", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "orgId", + "in": "query", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ResponseViewBoolean" + } + } + } + } + } + } + }, + "/api/auth/tp/link": { + "post": { + "tags": [ + "Authentication APIs" + ], + "summary": "Link current account with third party auth provider", + "description": "Authenticate a Lowcoder User using third-party login credentials and link to the existing session/account", + "operationId": "linkAccountWithTP", + "parameters": [ + { + "name": "authId", + "in": "query", + "required": false, + "schema": { + "type": "string" + } + }, + { + "name": "source", + "in": "query", + "required": false, + "schema": { + "type": "string" + } + }, + { + "name": "code", + "in": "query", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "redirectUrl", + "in": "query", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "orgId", + "in": "query", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ResponseViewBoolean" + } + } + } + } + } + } + }, + "/api/auth/logout": { + "post": { + "tags": [ + "Authentication APIs" + ], + "summary": "Logout from Lowcoder", + "description": "End a logged in Session of a Lowcoder User on the Lowcoder platform.", + "operationId": "logout", + "responses": { + "200": { + "description": "OK", + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ResponseViewBoolean" + } + } + } + } + } + } + }, + "/api/auth/form/login": { + "post": { + "tags": [ + "Authentication APIs" + ], + "summary": "Login with user and password (Form based Login)", + "description": "Authenticate a Lowcoder User using traditional username and password credentials (Form Login).", + "operationId": "loginWithUserPassword", + "parameters": [ + { + "name": "invitationId", + "in": "query", + "required": false, + "schema": { + "type": "string" + } + }, + { + "name": "orgId", + "in": "query", + "required": false, + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/FormLoginRequest" + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "OK", + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ResponseViewBoolean" + } + } + } + } + } + } + }, + "/api/auth/config": { + "post": { + "tags": [ + "Authentication APIs" + ], + "summary": "Create authentication configuration", + "description": "Configure a new authentication method to enable Lowcoder Users to log in, for instance, through OAuth or other similar mechanisms, for the current selected Organization, based on the impersonated User", + "operationId": "createAuthConfig", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/AuthConfigRequest" + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "OK", + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ResponseViewVoid" + } + } + } + } + } + } + }, + "/api/auth/api-key": { + "post": { + "tags": [ + "Authentication APIs" + ], + "summary": "Create API key for current user", + "description": "Generate an Lowcoder API key. The API key will inherit all rights of the current impersonated user.", + "operationId": "createApiKey", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/APIKeyRequest" + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "OK", + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ResponseViewAPIKeyVO" + } + } + } + } + } + } + }, + "/api/application/history-snapshots": { + "post": { + "tags": [ + "Application History APIs" + ], + "summary": "Create Application Snapshot", + "description": "Create a snapshot of an Application DSL within Lowcoder, capturing its current state for future reference.", + "operationId": "createApplicationSnapshot", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ApplicationHistorySnapshotRequest" + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "OK", + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ResponseViewBoolean" + } + } + } + } + } + } + }, + "/api/state/healthCheck": { + "head": { + "tags": [ + "Status checks APIs" + ], + "summary": "Run health check", + "description": "Perform a health check within Lowcoder to ensure the system's overall operational health and availability.", + "operationId": "healthCheck", + "responses": { + "200": { + "description": "OK", + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ResponseViewBoolean" + } + } + } + } + } + } + }, + "/api/users/userDetail/{id}": { + "get": { + "tags": [ + "User APIs" + ], + "summary": "Get User Details by ID", + "description": "Retrieve specific User Details within Lowcoder using their unique user ID.", + "operationId": "getUserDetails", + "parameters": [ + { + "name": "id", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ResponseViewObject" + } + } + } + } + } + } + }, + "/api/users/photo/{userId}": { + "get": { + "tags": [ + "User Profile Photo APIs" + ], + "summary": "Upload users profile photo by ID", + "description": "Upload or change the profile photo of a specific User within Lowcoder using their user ID for identification.", + "operationId": "uploadUserProfilePhotoById", + "parameters": [ + { + "name": "userId", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + } + } + }, + "/api/users/me": { + "get": { + "tags": [ + "User APIs" + ], + "summary": "Get current User Profile", + "description": "Retrieve the profile information of the current user within Lowcoder, including their identity, name, avatar, email, IP address, group memberships, and details of the current Organization / Workspace.", + "operationId": "getUserProfile", + "responses": { + "200": { + "description": "OK", + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ResponseViewObject" + } + } + } + } + } + } + }, + "/api/users/currentUser": { + "get": { + "tags": [ + "User APIs" + ], + "summary": "Get current User Information", + "description": "Retrieve comprehensive information about the current user within Lowcoder, including their ID, name, avatar URL, email, IP address and group memberships.", + "operationId": "getUserInfo", + "responses": { + "200": { + "description": "OK", + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ResponseViewUserDetail" + } + } + } + } + } + } + }, + "/api/serverSettings": { + "get": { + "tags": [ + "Server Setting APIs" + ], + "summary": "Get Lowcoder server settings", + "description": "Retrieve the list of server settings for Lowcoder.", + "operationId": "serverSettings", + "responses": { + "200": { + "description": "OK", + "content": { + "*/*": { + "schema": { + "type": "object", + "additionalProperties": { + "type": "string" + } + } + } + } + } + } + } + }, + "/api/organizations/{orgId}/members": { + "get": { + "tags": [ + "Organization Member APIs" + ], + "summary": "List Organization Members", + "description": "Retrieve a list of members belonging to an Organization within Lowcoder.", + "operationId": "listOrganizationMembers", + "parameters": [ + { + "name": "orgId", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "pageNum", + "in": "query", + "required": false, + "schema": { + "type": "integer", + "format": "int32", + "default": 1 + } + }, + { + "name": "pageSize", + "in": "query", + "required": false, + "schema": { + "type": "integer", + "format": "int32", + "default": 1000 + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ResponseViewOrgMemberListView" + } + } + } + } + } + } + }, + "/api/organizations/{orgId}/datasourceTypes": { + "get": { + "tags": [ + "Organization Member APIs" + ], + "summary": "Get supported data source types for Organization", + "description": "Retrieve a list of supported datasource types for an Organization within Lowcoder.", + "operationId": "getOrganizationDatasourceTypes", + "parameters": [ + { + "name": "orgId", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ResponseViewListDatasourceMetaInfo" + } + } + } + } + } + } + }, + "/api/organizations/{orgId}/api-usage": { + "get": { + "tags": [ + "Organization APIs" + ], + "summary": "Get the api usage count for the org", + "description": "Calculate the used api calls for this organization and return the count", + "operationId": "getOrgApiUsageCount", + "parameters": [ + { + "name": "orgId", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "lastMonthOnly", + "in": "query", + "required": false, + "schema": { + "type": "boolean" + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ResponseViewLong" + } + } + } + } + } + } + }, + "/api/organizations/byuser/{email}": { + "get": { + "tags": [ + "Organization APIs" + ], + "summary": "Get a list of specified user's organization", + "description": "Get a list of specified user's organization", + "operationId": "getOrganizationByUser", + "parameters": [ + { + "name": "email", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "pageNum", + "in": "query", + "required": false, + "schema": { + "type": "integer", + "format": "int32", + "default": 1 + } + }, + { + "name": "pageSize", + "in": "query", + "required": false, + "schema": { + "type": "integer", + "format": "int32", + "default": 0 + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/PageResponseViewObject" + } + } + } + } + } + } + }, + "/api/invitation/{invitationId}/invite": { + "get": { + "tags": [ + "User invitation APIs" + ], + "summary": "Get Invitation", + "description": "Retrieve information about a specific Invitation within Lowcoder, including details about the Invitee and the connected Organization / Workspace.", + "operationId": "getInvitation", + "parameters": [ + { + "name": "invitationId", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ResponseViewObject" + } + } + } + } + } + } + }, + "/api/invitation/{invitationId}": { + "get": { + "tags": [ + "User invitation APIs" + ], + "summary": "Invite User", + "description": "Proceed the actual Invite for User to an Lowcoder Organization / Workspace using an existing Invitation identified by its ID.", + "operationId": "inviteUser", + "parameters": [ + { + "name": "invitationId", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ResponseViewInvitationVO" + } + } + } + } + } + } + }, + "/api/groups/{groupId}/members": { + "get": { + "tags": [ + "Group Members APIs" + ], + "summary": "List User Group Members", + "description": "Retrieve a list of Users / Members within a specific User Group in Lowcoder, showing the group's composition.", + "operationId": "listGroupMembers", + "parameters": [ + { + "name": "groupId", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "pageNum", + "in": "query", + "required": false, + "schema": { + "type": "integer", + "format": "int32", + "default": 1 + } + }, + { + "name": "pageSize", + "in": "query", + "required": false, + "schema": { + "type": "integer", + "format": "int32", + "default": 100 + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ResponseViewGroupMemberAggregateView" + } + } + } + } + } + } + }, + "/api/groups/list": { + "get": { + "tags": [ + "Group APIs" + ], + "summary": "List User Groups", + "description": "Retrieve a list of User Groups within Lowcoder, providing an overview of available groups, based on the access rights of the currently impersonated User.", + "operationId": "listGroups", + "parameters": [ + { + "name": "pageNum", + "in": "query", + "required": false, + "schema": { + "type": "integer", + "format": "int32", + "default": 1 + } + }, + { + "name": "pageSize", + "in": "query", + "required": false, + "schema": { + "type": "integer", + "format": "int32", + "default": 0 + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/GroupListResponseViewListGroupView" + } + } + } + } + } + } + }, + "/api/datasources/{datasourceId}/structure": { + "get": { + "tags": [ + "Data Source APIs" + ], + "summary": "Get data source structure", + "description": "Retrieve the structure and schema of a data source within Lowcoder, identified by its ID.", + "operationId": "getDatasourceStructure", + "parameters": [ + { + "name": "datasourceId", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "ignoreCache", + "in": "query", + "required": false, + "schema": { + "type": "boolean", + "default": false + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ResponseViewDatasourceStructure" + } + } + } + } + } + } + }, + "/api/datasources/listByOrg": { + "get": { + "tags": [ + "Data Source APIs" + ], + "summary": "Get data sources by Organization ID", + "description": "List data sources associated with a specific Organization-ID within Lowcoder.", + "operationId": "listDatasourcesByOrg", + "parameters": [ + { + "name": "orgId", + "in": "query", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "name", + "in": "query", + "required": false, + "schema": { + "type": "string" + } + }, + { + "name": "type", + "in": "query", + "required": false, + "schema": { + "type": "string" + } + }, + { + "name": "pageNum", + "in": "query", + "required": false, + "schema": { + "type": "integer", + "format": "int32", + "default": 1 + } + }, + { + "name": "pageSize", + "in": "query", + "required": false, + "schema": { + "type": "integer", + "format": "int32", + "default": 0 + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/PageResponseViewObject_Public" + } + } + } + } + } + } + }, + "/api/datasources/listByApp": { + "get": { + "tags": [ + "Data Source APIs" + ], + "summary": "Get data sources by Application ID", + "description": "List data sources associated with a specific Application-ID within Lowcoder.", + "operationId": "listDatasourcesByApp", + "parameters": [ + { + "name": "appId", + "in": "query", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "name", + "in": "query", + "required": false, + "schema": { + "type": "string" + } + }, + { + "name": "type", + "in": "query", + "required": false, + "schema": { + "type": "string" + } + }, + { + "name": "pageNum", + "in": "query", + "required": false, + "schema": { + "type": "integer", + "format": "int32", + "default": 1 + } + }, + { + "name": "pageSize", + "in": "query", + "required": false, + "schema": { + "type": "integer", + "format": "int32", + "default": 0 + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/PageResponseViewObject_Public" + } + } + } + } + } + } + }, + "/api/datasources/jsDatasourcePlugins": { + "get": { + "tags": [ + "Data Source APIs" + ], + "summary": "Get Node service plugins", + "description": "Retrieve a list of node service plugins available within Lowcoder.", + "operationId": "listNodeServicePlugins", + "parameters": [ + { + "name": "appId", + "in": "query", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "name", + "in": "query", + "required": false, + "schema": { + "type": "string" + } + }, + { + "name": "type", + "in": "query", + "required": false, + "schema": { + "type": "string" + } + }, + { + "name": "pageNum", + "in": "query", + "required": false, + "schema": { + "type": "integer", + "format": "int32", + "default": 1 + } + }, + { + "name": "pageSize", + "in": "query", + "required": false, + "schema": { + "type": "integer", + "format": "int32", + "default": 0 + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/PageResponseViewObject" + } + } + } + } + } + } + }, + "/api/datasources/info": { + "get": { + "tags": [ + "Data Source APIs" + ], + "summary": "Get data source information", + "description": "Obtain information related to a data source within Lowcoder.", + "operationId": "getDatasourceInfo", + "parameters": [ + { + "name": "datasourceId", + "in": "query", + "required": false, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ResponseViewObject" + } + } + } + } + } + } + }, + "/api/configs/deploymentId": { + "get": { + "tags": [ + "Configuration APIs" + ], + "summary": "Get Lowcoder deployment ID", + "description": "Retrieve the unique deployment ID for Lowcoder. (not available on public cloud)", + "operationId": "getDeploymentId", + "responses": { + "200": { + "description": "OK", + "content": { + "*/*": { + "schema": { + "type": "string" + } + } + } + } + } + } + }, + "/api/configs": { + "get": { + "tags": [ + "Configuration APIs" + ], + "summary": "Get Configurations", + "description": "Retrieve a list of configuration entries within Lowcoder based on the current Organization / Workspace by the impersonated User, providing an overview of available configurations.", + "operationId": "listConfigs", + "parameters": [ + { + "name": "orgId", + "in": "query", + "required": false, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ResponseViewConfigView_Public" + } + } + } + } + } + } + }, + "/api/assets/{id}": { + "get": { + "tags": [ + "Image Assets APIs" + ], + "summary": "Retrieve Image Asset", + "description": "Retrieve an image asset within Lowcoder using its unique ID, which can be used for various purposes such as displaying images in applications.", + "operationId": "getAsset", + "parameters": [ + { + "name": "id", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + } + } + }, + "/api/applications/{applicationId}/view_marketplace": { + "get": { + "tags": [ + "Application APIs" + ], + "summary": "Get Marketplace Application data in view mode", + "description": "Retrieve the DSL data of a Lowcoder Application in view-mode by its ID for the Marketplace.", + "operationId": "getMarketplaceApplicationDataInViewMode", + "parameters": [ + { + "name": "applicationId", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ResponseViewApplicationView" + } + } + } + } + } + } + }, + "/api/applications/{applicationId}/view_agency": { + "get": { + "tags": [ + "Application APIs" + ], + "summary": "Get Agency profile Application data in view mode", + "description": "Retrieve the DSL data of a Lowcoder Application in view-mode by its ID marked as Agency Profile.", + "operationId": "getAgencyProfileApplicationDataInViewMode", + "parameters": [ + { + "name": "applicationId", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ResponseViewApplicationView" + } + } + } + } + } + } + }, + "/api/applications/{applicationId}/view": { + "get": { + "tags": [ + "Application APIs" + ], + "summary": "Get Application data in view mode", + "description": "Retrieve the DSL data of a Lowcoder Application in view-mode by its ID.", + "operationId": "getApplicatioDataInViewMode", + "parameters": [ + { + "name": "applicationId", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ResponseViewApplicationView" + } + } + } + } + } + } + }, + "/api/applications/recycle/list": { + "get": { + "tags": [ + "Application APIs" + ], + "summary": "List recycled Applications in bin", + "description": "List all the recycled Lowcoder Applications in the recycle bin where the authenticated or impersonated user has access.", + "operationId": "listRecycledApplications", + "parameters": [ + { + "name": "name", + "in": "query", + "required": false, + "schema": { + "type": "string" + } + }, + { + "name": "category", + "in": "query", + "required": false, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ResponseViewListApplicationInfoView" + } + } + } + } + } + } + }, + "/api/applications/marketplace-apps": { + "get": { + "tags": [ + "Application APIs" + ], + "summary": "List Marketplace Applications", + "description": "Retrieve a list of Lowcoder Applications that are published to the Marketplace", + "operationId": "listMarketplaceApplications", + "parameters": [ + { + "name": "applicationType", + "in": "query", + "required": false, + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ResponseViewListMarketplaceApplicationInfoView" + } + } + } + } + } + } + }, + "/api/applications/list": { + "get": { + "tags": [ + "Application APIs" + ], + "summary": "List Applications of current User", + "description": "Retrieve a list of Lowcoder Applications accessible by the authenticated or impersonated user.", + "operationId": "listApplications", + "parameters": [ + { + "name": "applicationType", + "in": "query", + "required": false, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "applicationStatus", + "in": "query", + "required": false, + "schema": { + "type": "string", + "enum": [ + "NORMAL", + "RECYCLED", + "DELETED" + ] + } + }, + { + "name": "withContainerSize", + "in": "query", + "required": false, + "schema": { + "type": "boolean", + "default": true + } + }, + { + "name": "name", + "in": "query", + "required": false, + "schema": { + "type": "string" + } + }, + { + "name": "category", + "in": "query", + "required": false, + "schema": { + "type": "string" + } + }, + { + "name": "pageNum", + "in": "query", + "required": false, + "schema": { + "type": "integer", + "format": "int32", + "default": 1 + } + }, + { + "name": "pageSize", + "in": "query", + "required": false, + "schema": { + "type": "integer", + "format": "int32", + "default": 0 + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ResponseViewListApplicationInfoView" + } + } + } + } + } + } + }, + "/api/applications/home": { + "get": { + "tags": [ + "Application APIs" + ], + "summary": "Get the homepage Application of current User", + "description": "Retrieve the first displayed Lowcoder Application for an authenticated or impersonated user.", + "operationId": "getUserHomepageApplication", + "parameters": [ + { + "name": "applicationType", + "in": "query", + "required": false, + "schema": { + "type": "integer", + "format": "int32", + "default": 0 + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ResponseViewUserHomepageView" + } + } + } + } + } + } + }, + "/api/applications/agency-profiles": { + "get": { + "tags": [ + "Application APIs" + ], + "summary": "List agency profile Applications", + "description": "Retrieve a list of Lowcoder Applications that are set as agency profiles", + "operationId": "listAgencyProfileApplications", + "parameters": [ + { + "name": "applicationType", + "in": "query", + "required": false, + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ResponseViewListMarketplaceApplicationInfoView" + } + } + } + } + } + } + }, + "/api/npm/registry/{applicationId}/{*path}": { + "get": { + "tags": [ + "Private NPM registry APIs" + ], + "summary": "Get NPM registry Metadata", + "description": "Retrieve the metadata of private NPM registry package.", + "operationId": "getNpmPackageMeta", + "parameters": [ + { + "name": "applicationId", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "path", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "*/*": { + "schema": { + "type": "string", + "format": "binary" + } + } + } + } + } + } + }, + "/api/npm/package/{applicationId}/{*path}": { + "get": { + "tags": [ + "Private NPM registry APIs" + ], + "summary": "Get NPM registry asset", + "description": "Retrieve the asset of private NPM registry package.", + "operationId": "getNpmPackageAsset", + "parameters": [ + { + "name": "applicationId", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "path", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "*/*": { + "schema": { + "type": "string", + "format": "binary" + } + } + } + } + } + } + }, + "/api/misc/js-library/recommendations": { + "get": { + "tags": [ + "Javascript Library APIs" + ], + "summary": "Get Javascript Library recommendations", + "description": "Retrieve the standard list of JavaScript libraries within Lowcoder, as recommendation.", + "operationId": "getJsLibraryRecommendations", + "responses": { + "200": { + "description": "OK", + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ResponseViewListJsLibraryMeta" + } + } + } + } + } + } + }, + "/api/misc/js-library/metas": { + "get": { + "tags": [ + "Javascript Library APIs" + ], + "summary": "Get Javascript Library metadata", + "description": "Retrieve metadata information for JavaScript libraries within Lowcoder based on an Array as \"name\" parameter to name the desired libraries, providing details about available libraries.", + "operationId": "getJsLibraryMetadata", + "parameters": [ + { + "name": "name", + "in": "query", + "required": true, + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ResponseViewListJsLibraryMeta" + } + } + } + } + } + } + }, + "/api/materials/{id}": { + "get": { + "tags": [ + "File APIs" + ], + "summary": "Download File contents", + "description": "Download the contents of a specific File within Lowcoder using its unique ID.", + "operationId": "downloadFile", + "parameters": [ + { + "name": "id", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "type", + "in": "query", + "required": false, + "schema": { + "type": "string", + "default": "download" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + } + }, + "delete": { + "tags": [ + "File APIs" + ], + "summary": "Delete uploaded File", + "description": "Permanently remove a specific File from Lowcoder using its unique ID.", + "operationId": "deleteFile", + "parameters": [ + { + "name": "id", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ResponseViewBoolean" + } + } + } + } + } + } + }, + "/api/materials/list": { + "get": { + "tags": [ + "File APIs" + ], + "summary": "List uploaded Files", + "description": "Retrieve a list of uploaded Files within Lowcoder, providing an overview of available files.", + "operationId": "listFiles", + "responses": { + "200": { + "description": "OK", + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ResponseViewListMaterialView" + } + } + } + } + } + } + }, + "/api/library-query-records": { + "get": { + "tags": [ + "Library Queries Record APIs" + ], + "summary": "Get Library Query Records", + "description": "Retrieve a list of Library Query Records, which store information related to executed queries within Lowcoder and the current Organization / Workspace by the impersonated User", + "operationId": "listLibraryQueryRecords", + "parameters": [ + { + "name": "libraryQueryId", + "in": "query", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "libraryQueryRecordId", + "in": "query", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ResponseViewMapStringObject" + } + } + } + } + } + } + }, + "/api/library-query-records/listByLibraryQueryId": { + "get": { + "tags": [ + "Library Queries Record APIs" + ], + "summary": "Get Library Query Record", + "description": "Retrieve a specific Library Query Record within Lowcoder using the associated library query ID.", + "operationId": "getLibraryQueryRecord", + "parameters": [ + { + "name": "libraryQueryId", + "in": "query", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "pageNum", + "in": "query", + "required": false, + "schema": { + "type": "integer", + "format": "int32", + "default": 1 + } + }, + { + "name": "pageSize", + "in": "query", + "required": false, + "schema": { + "type": "integer", + "format": "int32", + "default": 100 + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/PageResponseViewObject" + } + } + } + } + } + } + }, + "/api/library-queries/listByOrg": { + "get": { + "tags": [ + "Query Library APIs" + ], + "summary": "Get Data Query Libraries for organization", + "description": "Retrieve a list of Library Queries for a specific Organization within Lowcoder.", + "operationId": "listLibrartQueriesByOrg", + "parameters": [ + { + "name": "name", + "in": "query", + "required": false, + "schema": { + "type": "string", + "default": "" + } + }, + { + "name": "pageNum", + "in": "query", + "required": false, + "schema": { + "type": "integer", + "format": "int32", + "default": 1 + } + }, + { + "name": "pageSize", + "in": "query", + "required": false, + "schema": { + "type": "integer", + "format": "int32", + "default": 100 + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/PageResponseViewObject" + } + } + } + } + } + } + }, + "/api/library-queries/dropDownList": { + "get": { + "tags": [ + "Query Library APIs" + ], + "summary": "Get Data Query Libraries in dropdown format", + "description": "Retrieve Library Queries in a dropdown format within Lowcoder, suitable for selection in user interfaces.", + "operationId": "listLibraryQueriesForDropDown", + "parameters": [ + { + "name": "name", + "in": "query", + "required": false, + "schema": { + "type": "string", + "default": "" + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ResponseViewListLibraryQueryAggregateView" + } + } + } + } + } + } + }, + "/api/folders/elements": { + "get": { + "tags": [ + "Folder APIs" + ], + "summary": "Get Folder contents", + "description": "Retrieve the contents of an Application Folder within Lowcoder, including Applications and Subfolders.", + "operationId": "listFolderContents", + "parameters": [ + { + "name": "id", + "in": "query", + "required": false, + "schema": { + "type": "string" + } + }, + { + "name": "applicationType", + "in": "query", + "required": false, + "schema": { + "type": "string", + "enum": [ + "ALL", + "APPLICATION", + "MODULE", + "NAV_LAYOUT", + "FOLDER", + "MOBILE_TAB_LAYOUT", + "NAVIGATION", + "BUNDLE" + ] + } + }, + { + "name": "name", + "in": "query", + "required": false, + "schema": { + "type": "string" + } + }, + { + "name": "category", + "in": "query", + "required": false, + "schema": { + "type": "string" + } + }, + { + "name": "pageNum", + "in": "query", + "required": false, + "schema": { + "type": "integer", + "format": "int32", + "default": 1 + } + }, + { + "name": "pageSize", + "in": "query", + "required": false, + "schema": { + "type": "integer", + "format": "int32", + "default": 0 + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/PageResponseViewObject" + } + } + } + } + } + } + }, + "/api/bundles/{bundleId}/view": { + "get": { + "tags": [ + "Bundle APIs" + ], + "summary": "Get Bundle data in view mode", + "description": "Retrieve the data of a Lowcoder Bundle in view-mode by its ID.", + "operationId": "getBundleDataInViewMode", + "parameters": [ + { + "name": "bundleId", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ResponseViewBundleInfoView" + } + } + } + } + } + } + }, + "/api/bundles/{bundleId}/view_marketplace": { + "get": { + "tags": [ + "Bundle APIs" + ], + "summary": "Get Marketplace Bundle data in view mode", + "description": "Retrieve the DSL data of a Lowcoder Bundle in view-mode by its ID for the Marketplace.", + "operationId": "getMarketplaceBundleDataInViewMode", + "parameters": [ + { + "name": "bundleId", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ResponseViewBundleInfoView" + } + } + } + } + } + } + }, + "/api/bundles/{bundleId}/view_agency": { + "get": { + "tags": [ + "Bundle APIs" + ], + "summary": "Get Agency profile Bundle data in view mode", + "description": "Retrieve the DSL data of a Lowcoder Bundle in view-mode by its ID marked as Agency Profile.", + "operationId": "getAgencyProfileBundleDataInViewMode", + "parameters": [ + { + "name": "bundleId", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ResponseViewBundleInfoView" + } + } + } + } + } + } + }, + "/api/bundles/{bundleId}/elements": { + "get": { + "tags": [ + "Bundle APIs" + ], + "summary": "Get Bundle contents", + "description": "Retrieve the contents of an Bundle Bundle within Lowcoder, including Bundles.", + "operationId": "listBundleContents", + "parameters": [ + { + "name": "bundleId", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "applicationType", + "in": "query", + "required": false, + "schema": { + "type": "string", + "enum": [ + "ALL", + "APPLICATION", + "MODULE", + "NAV_LAYOUT", + "FOLDER", + "MOBILE_TAB_LAYOUT", + "NAVIGATION", + "BUNDLE" + ] + } + }, + { + "name": "pageNum", + "in": "query", + "required": false, + "schema": { + "type": "integer", + "format": "int32", + "default": 1 + } + }, + { + "name": "pageSize", + "in": "query", + "required": false, + "schema": { + "type": "integer", + "format": "int32", + "default": 0 + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/PageResponseViewObject" + } + } + } + } + } + } + }, + "/api/bundles/recycle/list": { + "get": { + "tags": [ + "Bundle APIs" + ], + "summary": "List recycled Bundles in bin", + "description": "List all the recycled Lowcoder Bundles in the recycle bin where the authenticated or impersonated user has access.", + "operationId": "listRecycledBundles", + "responses": { + "200": { + "description": "OK", + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ResponseViewListBundleInfoView" + } + } + } + } + } + } + }, + "/api/bundles/marketplace-bundles": { + "get": { + "tags": [ + "Bundle APIs" + ], + "summary": "List Marketplace Bundles", + "description": "Retrieve a list of Lowcoder Bundles that are published to the Marketplace", + "operationId": "listMarketplaceBundles", + "responses": { + "200": { + "description": "OK", + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ResponseViewListMarketplaceBundleInfoView" + } + } + } + } + } + } + }, + "/api/bundles/list": { + "get": { + "tags": [ + "Bundle APIs" + ], + "summary": "List Bundles of current User", + "description": "Retrieve a list of Lowcoder Bundles accessible by the authenticated or impersonated user.", + "operationId": "listBundles", + "parameters": [ + { + "name": "bundleStatus", + "in": "query", + "required": false, + "schema": { + "type": "string", + "enum": [ + "NORMAL", + "RECYCLED", + "DELETED" + ] + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ResponseViewListBundleInfoView" + } + } + } + } + } + } + }, + "/api/bundles/agency-profiles": { + "get": { + "tags": [ + "Bundle APIs" + ], + "summary": "List agency profile Bundles", + "description": "Retrieve a list of Lowcoder Bundles that are set as agency profiles", + "operationId": "listAgencyProfileBundles", + "responses": { + "200": { + "description": "OK", + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ResponseViewListMarketplaceBundleInfoView" + } + } + } + } + } + } + }, + "/api/auth/configs": { + "get": { + "tags": [ + "Authentication APIs" + ], + "summary": "Get available authentication configurations", + "description": "Retrieve a list of all available authentication configurations for the current selected Organization, based on the impersonated User", + "operationId": "listAuthConfigs", + "responses": { + "200": { + "description": "OK", + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ResponseViewListAbstractAuthConfig_Internal" + } + } + } + } + } + } + }, + "/api/auth/api-keys": { + "get": { + "tags": [ + "Authentication APIs" + ], + "summary": "Get API keys of the current User", + "description": "Retrieve a list of LOwcoder API keys associated with the current impersonated user.", + "operationId": "listApiKeys", + "responses": { + "200": { + "description": "OK", + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ResponseViewListAPIKey" + } + } + } + } + } + } + }, + "/api/application/history-snapshots/{applicationId}": { + "get": { + "tags": [ + "Application History APIs" + ], + "summary": "List Application Snapshots", + "description": "Retrieve a list of Snapshots associated with a specific Application within Lowcoder.", + "operationId": "listApplicationSnapshots", + "parameters": [ + { + "name": "applicationId", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "page", + "in": "query", + "required": false, + "schema": { + "type": "integer", + "format": "int32", + "default": 1 + } + }, + { + "name": "size", + "in": "query", + "required": false, + "schema": { + "type": "integer", + "format": "int32", + "default": 10 + } + }, + { + "name": "compName", + "in": "query", + "required": false, + "schema": { + "type": "string" + } + }, + { + "name": "theme", + "in": "query", + "required": false, + "schema": { + "type": "string" + } + }, + { + "name": "from", + "in": "query", + "required": false, + "schema": { + "type": "string", + "format": "date-time" + } + }, + { + "name": "to", + "in": "query", + "required": false, + "schema": { + "type": "string", + "format": "date-time" + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ResponseViewMapStringObject" + } + } + } + } + } + } + }, + "/api/application/history-snapshots/{applicationId}/{snapshotId}": { + "get": { + "tags": [ + "Application History APIs" + ], + "summary": "Retrieve Application Snapshot", + "description": "Retrieve a specific Application Snapshot within Lowcoder using the Application and Snapshot IDs.", + "operationId": "getApplicationSnapshot", + "parameters": [ + { + "name": "applicationId", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "snapshotId", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ResponseViewHistorySnapshotDslView" + } + } + } + } + } + } + }, + "/api/application/history-snapshots/archive/{applicationId}": { + "get": { + "tags": [ + "Application History APIs" + ], + "summary": "List Archived Application Snapshots", + "description": "Retrieve a list of Archived Snapshots associated with a specific Application within Lowcoder.", + "operationId": "listApplicationSnapshotsArchived", + "parameters": [ + { + "name": "applicationId", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "page", + "in": "query", + "required": false, + "schema": { + "type": "integer", + "format": "int32", + "default": 1 + } + }, + { + "name": "size", + "in": "query", + "required": false, + "schema": { + "type": "integer", + "format": "int32", + "default": 10 + } + }, + { + "name": "compName", + "in": "query", + "required": false, + "schema": { + "type": "string" + } + }, + { + "name": "theme", + "in": "query", + "required": false, + "schema": { + "type": "string" + } + }, + { + "name": "from", + "in": "query", + "required": false, + "schema": { + "type": "string", + "format": "date-time" + } + }, + { + "name": "to", + "in": "query", + "required": false, + "schema": { + "type": "string", + "format": "date-time" + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ResponseViewMapStringObject" + } + } + } + } + } + } + }, + "/api/application/history-snapshots/archive/{applicationId}/{snapshotId}": { + "get": { + "tags": [ + "Application History APIs" + ], + "summary": "Retrieve Archived Application Snapshot", + "description": "Retrieve a specific Archived Application Snapshot within Lowcoder using the Application and Snapshot IDs.", + "operationId": "getApplicationSnapshotArchived", + "parameters": [ + { + "name": "applicationId", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "snapshotId", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ResponseViewHistorySnapshotDslView" + } + } + } + } + } + } + }, + "/": { + "get": { + "tags": [ + "index-controller" + ], + "operationId": "index", + "responses": { + "200": { + "description": "OK", + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ResponseViewVoid" + } + } + } + } + } + } + }, + "/api/organizations/{orgId}/remove": { + "delete": { + "tags": [ + "Organization APIs" + ], + "summary": "Delete Organization by ID", + "description": "Permanently remove an User from an Organization in Lowcoder using its unique IDs.", + "operationId": "deleteOrganization", + "parameters": [ + { + "name": "orgId", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "userId", + "in": "query", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ResponseViewBoolean" + } + } + } + } + } + } + }, + "/api/organizations/{orgId}/leave": { + "delete": { + "tags": [ + "Organization Member APIs" + ], + "summary": "Remove current user from Organization", + "description": "Allow the current user to voluntarily leave an Organization in Lowcoder, removing themselves from the organization's membership.", + "operationId": "leaveOrganization", + "parameters": [ + { + "name": "orgId", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ResponseViewBoolean" + } + } + } + } + } + } + }, + "/api/organizations/{orgId}": { + "delete": { + "tags": [ + "Organization APIs" + ], + "summary": "Delete Organization by ID", + "description": "Permanently remove an Organization from Lowcoder using its unique ID.", + "operationId": "deleteOrganization_1", + "parameters": [ + { + "name": "orgId", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ResponseViewBoolean" + } + } + } + } + } + } + }, + "/api/groups/{groupId}/remove": { + "delete": { + "tags": [ + "Group Members APIs" + ], + "summary": "Remove a User from User Group", + "description": "Remove a specific User from a User Group within Lowcoder, revoking their access to the Group resources.", + "operationId": "removeUserFromGroup", + "parameters": [ + { + "name": "groupId", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "userId", + "in": "query", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ResponseViewBoolean" + } + } + } + } + } + } + }, + "/api/groups/{groupId}/leave": { + "delete": { + "tags": [ + "Group Members APIs" + ], + "summary": "Remove current User from User Group", + "description": "Allow the current user to voluntarily leave a User Group in Lowcoder, removing themselves from the group's membership.", + "operationId": "leaveGroup", + "parameters": [ + { + "name": "groupId", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ResponseViewBoolean" + } + } + } + } + } + } + }, + "/api/groups/{groupId}": { + "delete": { + "tags": [ + "Group APIs" + ], + "summary": "Delete User Group", + "description": "Permanently remove a User Group from Lowcoder using its unique ID.", + "operationId": "deleteGroup", + "parameters": [ + { + "name": "groupId", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ResponseViewBoolean" + } + } + } + } + } + } + }, + "/api/library-query-records/{libraryQueryRecordId}": { + "delete": { + "tags": [ + "Library Queries Record APIs" + ], + "summary": "Delete Library Query Record", + "description": "Permanently remove a specific Library Query Record from Lowcoder using its unique record ID.", + "operationId": "deleteLibrartQueryRecord", + "parameters": [ + { + "name": "libraryQueryRecordId", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "OK" + } + } + } + }, + "/api/folders/{id}": { + "delete": { + "tags": [ + "Folder APIs" + ], + "summary": "Delete Folder", + "description": "Permanently remove an Application Folder from Lowcoder using its unique ID.", + "operationId": "deleteFolder", + "parameters": [ + { + "name": "id", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ResponseViewVoid" + } + } + } + } + } + } + }, + "/api/bundles/{id}": { + "delete": { + "tags": [ + "Bundle APIs" + ], + "summary": "Delete Bundle", + "description": "Permanently remove an Application Bundle from Lowcoder using its unique ID.", + "operationId": "deleteBundle", + "parameters": [ + { + "name": "id", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ResponseViewVoid" + } + } + } + } + } + } + }, + "/api/auth/config/{id}": { + "delete": { + "tags": [ + "Authentication APIs" + ], + "summary": "Delete authentication configuration", + "description": "Delete a specific Lowcoder authentication configuration.", + "operationId": "deleteAuthConfig", + "parameters": [ + { + "name": "id", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "delete", + "in": "query", + "required": false, + "schema": { + "type": "boolean" + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ResponseViewVoid" + } + } + } + } + } + } + }, + "/api/auth/api-key/{id}": { + "delete": { + "tags": [ + "Authentication APIs" + ], + "summary": "Delete API key", + "description": "Delete a specific API key associated with the current impersonated user.", + "operationId": "deleteApiKey", + "parameters": [ + { + "name": "id", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "OK", + "content": { + "*/*": { + "schema": { + "$ref": "#/components/schemas/ResponseViewVoid" + } + } + } + } + } + } + } + }, + "components": { + "schemas": { + "UpdatePasswordRequest": { + "type": "object", + "properties": { + "oldPassword": { + "type": "string" + }, + "newPassword": { + "type": "string" + } + } + }, + "ResponseViewBoolean": { + "type": "object", + "properties": { + "code": { + "type": "integer", + "format": "int32" + }, + "message": { + "type": "string" + }, + "data": { + "type": "boolean" + }, + "success": { + "type": "boolean" + } + } + }, + "MarkUserStatusRequest": { + "type": "object", + "properties": { + "type": { + "type": "string" + }, + "value": { + "type": "object" + } + } + }, + "UpdateUserRequest": { + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "uiLanguage": { + "type": "string" + } + } + }, + "AbstractAuthConfig": { + "type": "object", + "properties": { + "id": { + "type": "string" + }, + "source": { + "type": "string" + }, + "sourceName": { + "type": "string" + }, + "enable": { + "type": "boolean" + }, + "enableRegister": { + "type": "boolean" + }, + "authType": { + "type": "string" + } + }, + "discriminator": { + "propertyName": "authType" + } + }, + "Connection": { + "required": [ + "rawId", + "source" + ], + "type": "object", + "properties": { + "authId": { + "type": "string" + }, + "source": { + "type": "string" + }, + "rawId": { + "type": "string", + "writeOnly": true + }, + "name": { + "type": "string" + }, + "email": { + "type": "string" + }, + "avatar": { + "type": "string" + }, + "authConnectionAuthToken": { + "$ref": "#/components/schemas/ConnectionAuthToken" + }, + "rawUserInfo": { + "type": "object", + "additionalProperties": { + "type": "object" + } + }, + "tokens": { + "uniqueItems": true, + "type": "array", + "items": { + "type": "string" + } + } + } + }, + "ConnectionAuthToken": { + "type": "object", + "properties": { + "accessToken": { + "type": "string" + }, + "expireAt": { + "type": "integer", + "format": "int64" + }, + "refreshToken": { + "type": "string" + }, + "refreshTokenExpireAt": { + "type": "integer", + "format": "int64" + }, + "source": { + "type": "string", + "deprecated": true + }, + "accessTokenExpired": { + "type": "boolean" + }, + "refreshTokenExpired": { + "type": "boolean" + } + } + }, + "OrgAndVisitorRoleView": { + "type": "object", + "properties": { + "org": { + "$ref": "#/components/schemas/Organization" + }, + "role": { + "type": "string" + } + } + }, + "Organization": { + "type": "object", + "properties": { + "id": { + "type": "string" + }, + "createdBy": { + "type": "string" + }, + "gid": { + "type": "string" + }, + "name": { + "type": "string" + }, + "isAutoGeneratedOrganization": { + "type": "boolean" + }, + "contactName": { + "type": "string" + }, + "contactEmail": { + "type": "string" + }, + "contactPhoneNumber": { + "type": "string" + }, + "isEmailDisabled": { + "type": "boolean" + }, + "source": { + "type": "string" + }, + "thirdPartyCompanyId": { + "type": "string" + }, + "state": { + "type": "string", + "enum": [ + "ACTIVE", + "DELETED" + ] + }, + "organizationDomain": { + "$ref": "#/components/schemas/OrganizationDomain" + }, + "commonSettings": { + "type": "object", + "properties": { + "empty": { + "type": "boolean" + } + }, + "additionalProperties": { + "type": "object" + } + }, + "createTime": { + "type": "integer", + "format": "int64" + }, + "authConfigs": { + "type": "array", + "items": { + "$ref": "#/components/schemas/AbstractAuthConfig" + } + }, + "logoUrl": { + "type": "string" + } + } + }, + "OrganizationDomain": { + "type": "object", + "properties": { + "domain": { + "type": "string" + }, + "configs": { + "type": "array", + "items": { + "$ref": "#/components/schemas/AbstractAuthConfig" + } + } + } + }, + "ResponseViewUserProfileView": { + "type": "object", + "properties": { + "code": { + "type": "integer", + "format": "int32" + }, + "message": { + "type": "string" + }, + "data": { + "$ref": "#/components/schemas/UserProfileView" + }, + "success": { + "type": "boolean" + } + } + }, + "UserProfileView": { + "type": "object", + "properties": { + "id": { + "type": "string" + }, + "orgAndRoles": { + "type": "array", + "items": { + "$ref": "#/components/schemas/OrgAndVisitorRoleView" + } + }, + "currentOrgId": { + "type": "string" + }, + "username": { + "type": "string" + }, + "connections": { + "uniqueItems": true, + "type": "array", + "items": { + "$ref": "#/components/schemas/Connection" + } + }, + "uiLanguage": { + "type": "string" + }, + "avatar": { + "type": "string" + }, + "avatarUrl": { + "type": "string" + }, + "hasPassword": { + "type": "boolean" + }, + "hasSetNickname": { + "type": "boolean" + }, + "hasShownNewUserGuidance": { + "type": "boolean" + }, + "userStatus": { + "type": "object", + "additionalProperties": { + "type": "object" + } + }, + "createdTimeMs": { + "type": "integer", + "format": "int64" + }, + "ip": { + "type": "string" + }, + "enabled": { + "type": "boolean" + }, + "orgDev": { + "type": "boolean" + }, + "anonymous": { + "type": "boolean" + }, + "isAnonymous": { + "type": "boolean" + }, + "isEnabled": { + "type": "boolean" + } + } + }, + "UpdateOrgRequest": { + "type": "object", + "properties": { + "orgName": { + "type": "string" + }, + "contactName": { + "type": "string" + }, + "contactEmail": { + "type": "string" + }, + "contactPhoneNumber": { + "type": "string" + } + } + }, + "UpdateRoleRequest": { + "type": "object", + "properties": { + "userId": { + "type": "string" + }, + "role": { + "type": "string" + } + } + }, + "UpdateOrgCommonSettingsRequest": { + "type": "object", + "properties": { + "key": { + "type": "string" + }, + "value": { + "type": "object" + } + } + }, + "ResponseViewObject": { + "type": "object", + "properties": { + "code": { + "type": "integer", + "format": "int32" + }, + "message": { + "type": "string" + }, + "data": { + "type": "object" + }, + "success": { + "type": "boolean" + } + } + }, + "UpdateGroupRequest": { + "type": "object", + "properties": { + "groupName": { + "type": "string" + }, + "dynamicRule": { + "type": "string" + } + } + }, + "UpsertDatasourceRequest_Public": { + "type": "object", + "properties": { + "id": { + "type": "string" + }, + "gid": { + "type": "string" + }, + "name": { + "type": "string" + }, + "type": { + "type": "string" + }, + "organizationId": { + "type": "string" + }, + "datasourceConfig": { + "type": "object", + "additionalProperties": { + "type": "object" + } + } + } + }, + "DatasourceConnectionConfig_Public": { + "type": "object" + }, + "Datasource_Public": { + "type": "object", + "properties": { + "id": { + "type": "string" + }, + "createdBy": { + "type": "string" + }, + "gid": { + "type": "string" + }, + "name": { + "type": "string" + }, + "type": { + "type": "string" + }, + "organizationId": { + "type": "string" + }, + "creationSource": { + "type": "integer", + "format": "int32" + }, + "datasourceStatus": { + "type": "string", + "enum": [ + "NORMAL", + "DELETED" + ] + }, + "pluginDefinition": { + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "id": { + "type": "string" + }, + "queryConfigDynamic": { + "type": "boolean" + }, + "datasourceConfigExtraDynamic": { + "type": "boolean" + }, + "empty": { + "type": "boolean" + } + }, + "additionalProperties": { + "type": "object" + } + }, + "createTime": { + "type": "integer", + "format": "int64" + }, + "datasourceConfig": { + "$ref": "#/components/schemas/DatasourceConnectionConfig_Public" + } + } + }, + "ResponseViewDatasource_Public": { + "type": "object", + "properties": { + "code": { + "type": "integer", + "format": "int32" + }, + "message": { + "type": "string" + }, + "data": { + "$ref": "#/components/schemas/Datasource_Public" + }, + "success": { + "type": "boolean" + } + } + }, + "BatchAddPermissionRequest": { + "type": "object", + "properties": { + "role": { + "type": "string" + }, + "userIds": { + "uniqueItems": true, + "type": "array", + "items": { + "type": "string" + } + }, + "groupIds": { + "uniqueItems": true, + "type": "array", + "items": { + "type": "string" + } + } + } + }, + "UpdatePermissionRequest": { + "type": "object", + "properties": { + "role": { + "type": "string" + }, + "resourceRole": { + "type": "string", + "enum": [ + "VIEWER", + "EDITOR", + "OWNER" + ] + } + } + }, + "ApplicationPublicToMarketplaceRequest": { + "type": "object", + "properties": { + "publicToMarketplace": { + "type": "boolean" + } + } + }, + "ApplicationPublicToAllRequest": { + "type": "object", + "properties": { + "publicToAll": { + "type": "boolean" + } + } + }, + "ApplicationAsAgencyProfileRequest": { + "type": "object", + "properties": { + "agencyProfile": { + "type": "boolean" + } + } + }, + "Application": { + "type": "object", + "properties": { + "id": { + "type": "string" + }, + "orgId": { + "type": "string", + "writeOnly": true + }, + "gid": { + "type": "string" + }, + "name": { + "type": "string" + }, + "applicationType": { + "type": "integer", + "format": "int32" + }, + "applicationStatus": { + "type": "string", + "enum": [ + "NORMAL", + "RECYCLED", + "DELETED" + ] + }, + "publishedApplicationDSL": { + "type": "object", + "additionalProperties": { + "type": "object" + } + }, + "editingApplicationDSL": { + "type": "object", + "additionalProperties": { + "type": "object" + } + }, + "publicToAll": { + "type": "boolean" + }, + "publicToMarketplace": { + "type": "boolean" + }, + "agencyProfile": { + "type": "boolean", + "writeOnly": true + }, + "editingUserId": { + "type": "string" + }, + "lastEditedAt": { + "type": "string", + "format": "date-time" + }, + "createdBy": { + "type": "string" + }, + "organizationId": { + "type": "string" + }, + "editingQueries": { + "uniqueItems": true, + "type": "array", + "items": { + "$ref": "#/components/schemas/ApplicationQuery" + } + }, + "liveQueries": { + "uniqueItems": true, + "type": "array", + "items": { + "$ref": "#/components/schemas/ApplicationQuery" + } + }, + "editingModules": { + "uniqueItems": true, + "type": "array", + "items": { + "type": "string" + } + }, + "liveModules": { + "uniqueItems": true, + "type": "array", + "items": { + "type": "string" + } + }, + "liveContainerSize": { + "type": "object" + }, + "category": { + "type": "string" + }, + "editingApplicationDSLOrNull": { + "type": "object", + "additionalProperties": { + "type": "object" + } + } + } + }, + "ApplicationQuery": { + "type": "object", + "properties": { + "id": { + "type": "string" + }, + "gid": { + "type": "string" + }, + "name": { + "type": "string" + }, + "datasourceId": { + "type": "string", + "writeOnly": true + }, + "comp": { + "type": "object", + "additionalProperties": { + "type": "object" + }, + "writeOnly": true + }, + "triggerType": { + "type": "string" + }, + "timeout": { + "type": "string", + "writeOnly": true + }, + "compType": { + "type": "string", + "writeOnly": true + }, + "baseQuery": { + "$ref": "#/components/schemas/BaseQuery" + }, + "timeoutStr": { + "type": "string" + }, + "usingLibraryQuery": { + "type": "boolean" + }, + "libraryRecordQueryId": { + "$ref": "#/components/schemas/LibraryQueryCombineId" + } + } + }, + "BaseQuery": { + "type": "object", + "properties": { + "datasourceId": { + "type": "string" + }, + "compType": { + "type": "string" + }, + "comp": { + "type": "object", + "additionalProperties": { + "type": "object" + } + }, + "timeout": { + "type": "string" + } + } + }, + "LibraryQueryCombineId": { + "type": "object", + "properties": { + "libraryQueryId": { + "type": "string" + }, + "libraryQueryRecordId": { + "type": "string" + }, + "usingEditingRecord": { + "type": "boolean" + }, + "usingLiveRecord": { + "type": "boolean" + } + } + }, + "ApplicationInfoView": { + "type": "object", + "properties": { + "orgId": { + "type": "string" + }, + "applicationId": { + "type": "string" + }, + "applicationGid": { + "type": "string" + }, + "name": { + "type": "string" + }, + "createAt": { + "type": "integer", + "format": "int64" + }, + "createBy": { + "type": "string" + }, + "role": { + "type": "string" + }, + "applicationType": { + "type": "integer", + "format": "int32" + }, + "applicationStatus": { + "type": "string", + "enum": [ + "NORMAL", + "RECYCLED", + "DELETED" + ] + }, + "containerSize": { + "type": "object" + }, + "folderId": { + "type": "string" + }, + "lastViewTime": { + "type": "integer", + "format": "int64" + }, + "lastModifyTime": { + "type": "integer", + "format": "int64" + }, + "lastEditedAt": { + "type": "integer", + "format": "int64" + }, + "publicToAll": { + "type": "boolean" + }, + "publicToMarketplace": { + "type": "boolean" + }, + "agencyProfile": { + "type": "boolean" + }, + "editingUserId": { + "type": "string" + }, + "folder": { + "type": "boolean" + } + } + }, + "ApplicationView": { + "type": "object", + "properties": { + "applicationInfoView": { + "$ref": "#/components/schemas/ApplicationInfoView" + }, + "applicationDSL": { + "type": "object", + "additionalProperties": { + "type": "object" + } + }, + "moduleDSL": { + "type": "object", + "additionalProperties": { + "type": "object", + "additionalProperties": { + "type": "object" + } + } + }, + "orgCommonSettings": { + "type": "object", + "additionalProperties": { + "type": "object" + } + }, + "templateId": { + "type": "string" + } + } + }, + "ResponseViewApplicationView": { + "type": "object", + "properties": { + "code": { + "type": "integer", + "format": "int32" + }, + "message": { + "type": "string" + }, + "data": { + "$ref": "#/components/schemas/ApplicationView" + }, + "success": { + "type": "boolean" + } + } + }, + "UpdateEditStateRequest": { + "type": "object", + "properties": { + "editingFinished": { + "type": "boolean" + } + } + }, + "UpsertLibraryQueryRequest": { + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "libraryQueryDSL": { + "type": "object", + "additionalProperties": { + "type": "object" + } + } + } + }, + "Folder": { + "type": "object", + "properties": { + "id": { + "type": "string" + }, + "createdBy": { + "type": "string" + }, + "organizationId": { + "type": "string" + }, + "gid": { + "type": "string" + }, + "parentFolderId": { + "type": "string" + }, + "parentFolderGid": { + "type": "string" + }, + "name": { + "type": "string" + }, + "title": { + "type": "string" + }, + "description": { + "type": "string" + }, + "category": { + "type": "string" + }, + "type": { + "type": "string" + }, + "image": { + "type": "string" + } + } + }, + "FolderInfoView": { + "type": "object", + "properties": { + "orgId": { + "type": "string" + }, + "folderId": { + "type": "string" + }, + "folderGid": { + "type": "string" + }, + "parentFolderId": { + "type": "string" + }, + "parentFolderGid": { + "type": "string" + }, + "name": { + "type": "string" + }, + "title": { + "type": "string" + }, + "description": { + "type": "string" + }, + "category": { + "type": "string" + }, + "type": { + "type": "string" + }, + "image": { + "type": "string" + }, + "createAt": { + "type": "integer", + "format": "int64" + }, + "createBy": { + "type": "string" + }, + "subFolders": { + "type": "array", + "items": { + "$ref": "#/components/schemas/FolderInfoView" + } + }, + "subApplications": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ApplicationInfoView" + } + }, + "createTime": { + "type": "integer", + "format": "int64" + }, + "lastViewTime": { + "type": "integer", + "format": "int64" + }, + "visible": { + "type": "boolean" + }, + "manageable": { + "type": "boolean" + }, + "folder": { + "type": "boolean" + } + } + }, + "ResponseViewFolderInfoView": { + "type": "object", + "properties": { + "code": { + "type": "integer", + "format": "int32" + }, + "message": { + "type": "string" + }, + "data": { + "$ref": "#/components/schemas/FolderInfoView" + }, + "success": { + "type": "boolean" + } + } + }, + "ResponseViewVoid": { + "type": "object", + "properties": { + "code": { + "type": "integer", + "format": "int32" + }, + "message": { + "type": "string" + }, + "data": { + "type": "object" + }, + "success": { + "type": "boolean" + } + } + }, + "Bundle": { + "type": "object", + "properties": { + "id": { + "type": "string" + }, + "createdBy": { + "type": "string" + }, + "gid": { + "type": "string" + }, + "organizationId": { + "type": "string" + }, + "name": { + "type": "string" + }, + "title": { + "type": "string" + }, + "description": { + "type": "string" + }, + "category": { + "type": "string" + }, + "image": { + "type": "string" + }, + "bundleStatus": { + "type": "string", + "enum": [ + "NORMAL", + "RECYCLED", + "DELETED" + ] + }, + "publicToAll": { + "type": "boolean" + }, + "publicToMarketplace": { + "type": "boolean" + }, + "agencyProfile": { + "type": "boolean" + }, + "editingBundleDSL": { + "type": "object", + "additionalProperties": { + "type": "object" + } + }, + "publishedBundleDSL": { + "type": "object", + "additionalProperties": { + "type": "object" + } + } + } + }, + "BundleInfoView": { + "type": "object", + "properties": { + "userId": { + "type": "string" + }, + "bundleId": { + "type": "string" + }, + "bundleGid": { + "type": "string" + }, + "name": { + "type": "string" + }, + "title": { + "type": "string" + }, + "description": { + "type": "string" + }, + "category": { + "type": "string" + }, + "image": { + "type": "string" + }, + "createAt": { + "type": "integer", + "format": "int64" + }, + "createBy": { + "type": "string" + }, + "folderId": { + "type": "string" + }, + "publicToAll": { + "type": "boolean" + }, + "publicToMarketplace": { + "type": "boolean" + }, + "agencyProfile": { + "type": "boolean" + }, + "editingBundleDSL": { + "type": "object", + "additionalProperties": { + "type": "object" + } + }, + "publishedBundleDSL": { + "type": "object", + "additionalProperties": { + "type": "object" + } + }, + "createTime": { + "type": "integer", + "format": "int64" + }, + "visible": { + "type": "boolean" + }, + "manageable": { + "type": "boolean" + }, + "bundle": { + "type": "boolean" + } + } + }, + "ResponseViewBundleInfoView": { + "type": "object", + "properties": { + "code": { + "type": "integer", + "format": "int32" + }, + "message": { + "type": "string" + }, + "data": { + "$ref": "#/components/schemas/BundleInfoView" + }, + "success": { + "type": "boolean" + } + } + }, + "BundlePublicToMarketplaceRequest": { + "type": "object", + "properties": { + "publicToMarketplace": { + "type": "boolean" + } + } + }, + "BundlePublicToAllRequest": { + "type": "object", + "properties": { + "publicToAll": { + "type": "boolean" + } + } + }, + "BundleAsAgencyProfileRequest": { + "type": "object", + "properties": { + "agencyProfile": { + "type": "boolean" + } + } + }, + "ResetPasswordRequest": { + "type": "object", + "properties": { + "userId": { + "type": "string" + } + } + }, + "ResponseViewString": { + "type": "object", + "properties": { + "code": { + "type": "integer", + "format": "int32" + }, + "message": { + "type": "string" + }, + "data": { + "type": "string" + }, + "success": { + "type": "boolean" + } + } + }, + "ResetLostPasswordRequest": { + "type": "object", + "properties": { + "token": { + "type": "string" + }, + "userEmail": { + "type": "string" + }, + "newPassword": { + "type": "string" + } + } + }, + "Part": { + "type": "object" + }, + "LostPasswordRequest": { + "type": "object", + "properties": { + "userEmail": { + "type": "string" + } + } + }, + "LibraryQueryRequestFromJs": { + "type": "object", + "properties": { + "libraryQueryName": { + "type": "string" + }, + "libraryQueryRecordId": { + "type": "string" + }, + "params": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Param" + } + } + } + }, + "Param": { + "type": "object", + "properties": { + "key": { + "type": "string" + }, + "value": { + "type": "object" + } + } + }, + "JsonNode": { + "type": "object" + }, + "QueryResultView": { + "type": "object", + "properties": { + "message": { + "type": "string" + }, + "data": { + "type": "object" + }, + "headers": { + "$ref": "#/components/schemas/JsonNode" + }, + "queryCode": { + "type": "string" + }, + "success": { + "type": "boolean" + }, + "code": { + "type": "integer", + "format": "int32" + }, + "hintMessages": { + "type": "array", + "items": { + "type": "string" + } + } + } + }, + "QueryExecutionRequest": { + "type": "object", + "properties": { + "applicationId": { + "type": "string" + }, + "queryId": { + "type": "string" + }, + "libraryQueryId": { + "type": "string", + "writeOnly": true + }, + "libraryQueryRecordId": { + "type": "string", + "writeOnly": true + }, + "params": { + "type": "array", + "writeOnly": true, + "items": { + "$ref": "#/components/schemas/Param" + } + }, + "viewMode": { + "type": "boolean" + }, + "path": { + "type": "array", + "items": { + "type": "string" + } + }, + "libraryQueryCombineId": { + "$ref": "#/components/schemas/LibraryQueryCombineId" + }, + "applicationQueryRequest": { + "type": "boolean" + } + } + }, + "OrgView": { + "type": "object", + "properties": { + "orgId": { + "type": "string" + }, + "orgName": { + "type": "string" + } + } + }, + "ResponseViewOrgView": { + "type": "object", + "properties": { + "code": { + "type": "integer", + "format": "int32" + }, + "message": { + "type": "string" + }, + "data": { + "$ref": "#/components/schemas/OrgView" + }, + "success": { + "type": "boolean" + } + } + }, + "InvitationVO": { + "type": "object", + "properties": { + "inviteCode": { + "type": "string" + }, + "createUserName": { + "type": "string" + }, + "invitedOrganizationName": { + "type": "string" + }, + "invitedOrganizationId": { + "type": "string" + } + } + }, + "ResponseViewInvitationVO": { + "type": "object", + "properties": { + "code": { + "type": "integer", + "format": "int32" + }, + "message": { + "type": "string" + }, + "data": { + "$ref": "#/components/schemas/InvitationVO" + }, + "success": { + "type": "boolean" + } + } + }, + "AddMemberRequest": { + "type": "object", + "properties": { + "userId": { + "type": "string" + }, + "role": { + "type": "string" + } + } + }, + "CreateGroupRequest": { + "required": [ + "name" + ], + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "dynamicRule": { + "type": "string" + } + } + }, + "GroupView": { + "type": "object", + "properties": { + "groupId": { + "type": "string" + }, + "groupGid": { + "type": "string" + }, + "groupName": { + "type": "string" + }, + "allUsersGroup": { + "type": "boolean" + }, + "visitorRole": { + "type": "string" + }, + "createTime": { + "type": "integer", + "format": "int64" + }, + "dynamicRule": { + "type": "string" + }, + "stats": { + "type": "object", + "additionalProperties": { + "type": "object" + } + }, + "syncDelete": { + "type": "boolean" + }, + "devGroup": { + "type": "boolean" + }, + "syncGroup": { + "type": "boolean" + } + } + }, + "ResponseViewGroupView": { + "type": "object", + "properties": { + "code": { + "type": "integer", + "format": "int32" + }, + "message": { + "type": "string" + }, + "data": { + "$ref": "#/components/schemas/GroupView" + }, + "success": { + "type": "boolean" + } + } + }, + "UpsertDatasourceRequest": { + "type": "object", + "properties": { + "id": { + "type": "string" + }, + "gid": { + "type": "string" + }, + "name": { + "type": "string" + }, + "type": { + "type": "string" + }, + "organizationId": { + "type": "string" + }, + "datasourceConfig": { + "type": "object", + "additionalProperties": { + "type": "object" + } + } + } + }, + "GetPluginDynamicConfigRequestDTO": { + "type": "object", + "properties": { + "dataSourceId": { + "type": "string" + }, + "pluginName": { + "type": "string" + }, + "path": { + "type": "string" + }, + "dataSourceConfig": { + "type": "object", + "additionalProperties": { + "type": "object" + } + } + } + }, + "ResponseViewListObject": { + "type": "object", + "properties": { + "code": { + "type": "integer", + "format": "int32" + }, + "message": { + "type": "string" + }, + "data": { + "type": "array", + "items": { + "type": "object" + } + }, + "success": { + "type": "boolean" + } + } + }, + "UpdateConfigRequest": { + "type": "object", + "properties": { + "value": { + "type": "string" + } + } + }, + "ResponseViewServerConfig": { + "type": "object", + "properties": { + "code": { + "type": "integer", + "format": "int32" + }, + "message": { + "type": "string" + }, + "data": { + "$ref": "#/components/schemas/ServerConfig" + }, + "success": { + "type": "boolean" + } + } + }, + "ServerConfig": { + "type": "object", + "properties": { + "id": { + "type": "string" + }, + "createdBy": { + "type": "string" + }, + "key": { + "type": "string" + }, + "value": { + "type": "object" + } + } + }, + "CreateApplicationRequest": { + "type": "object", + "properties": { + "orgId": { + "type": "string" + }, + "name": { + "type": "string" + }, + "applicationType": { + "type": "integer", + "format": "int32" + }, + "publishedApplicationDSL": { + "type": "object", + "additionalProperties": { + "type": "object" + } + }, + "editingApplicationDSL": { + "type": "object", + "additionalProperties": { + "type": "object" + } + }, + "folderId": { + "type": "string" + } + } + }, + "UploadMaterialRequestDTO": { + "type": "object", + "properties": { + "filename": { + "type": "string" + }, + "content": { + "type": "string" + }, + "type": { + "type": "string", + "enum": [ + "COMMON", + "LOGO", + "FAVICON" + ] + } + } + }, + "MaterialView": { + "type": "object", + "properties": { + "id": { + "type": "string" + }, + "filename": { + "type": "string" + } + } + }, + "ResponseViewMaterialView": { + "type": "object", + "properties": { + "code": { + "type": "integer", + "format": "int32" + }, + "message": { + "type": "string" + }, + "data": { + "$ref": "#/components/schemas/MaterialView" + }, + "success": { + "type": "boolean" + } + } + }, + "LibraryQuery": { + "type": "object", + "properties": { + "id": { + "type": "string" + }, + "createdBy": { + "type": "string" + }, + "gid": { + "type": "string" + }, + "organizationId": { + "type": "string" + }, + "name": { + "type": "string" + }, + "libraryQueryDSL": { + "type": "object", + "additionalProperties": { + "type": "object" + } + }, + "baseQuerySupplier": { + "type": "object" + }, + "query": { + "$ref": "#/components/schemas/BaseQuery" + } + } + }, + "LibraryQueryView": { + "type": "object", + "properties": { + "id": { + "type": "string" + }, + "gid": { + "type": "string" + }, + "organizationId": { + "type": "string" + }, + "name": { + "type": "string" + }, + "libraryQueryDSL": { + "type": "object", + "additionalProperties": { + "type": "object" + } + }, + "createTime": { + "type": "integer", + "format": "int64" + }, + "creatorName": { + "type": "string" + } + } + }, + "ResponseViewLibraryQueryView": { + "type": "object", + "properties": { + "code": { + "type": "integer", + "format": "int32" + }, + "message": { + "type": "string" + }, + "data": { + "$ref": "#/components/schemas/LibraryQueryView" + }, + "success": { + "type": "boolean" + } + } + }, + "LibraryQueryPublishRequest": { + "type": "object", + "properties": { + "commitMessage": { + "type": "string" + }, + "tag": { + "type": "string" + } + } + }, + "LibraryQueryRecordMetaView": { + "type": "object", + "properties": { + "id": { + "type": "string" + }, + "libraryQueryId": { + "type": "string" + }, + "datasourceType": { + "type": "string" + }, + "tag": { + "type": "string" + }, + "commitMessage": { + "type": "string" + }, + "createTime": { + "type": "integer", + "format": "int64" + }, + "creatorName": { + "type": "string" + } + } + }, + "ResponseViewLibraryQueryRecordMetaView": { + "type": "object", + "properties": { + "code": { + "type": "integer", + "format": "int32" + }, + "message": { + "type": "string" + }, + "data": { + "$ref": "#/components/schemas/LibraryQueryRecordMetaView" + }, + "success": { + "type": "boolean" + } + } + }, + "CreateBundleRequest": { + "type": "object", + "properties": { + "orgId": { + "type": "string" + }, + "gid": { + "type": "string" + }, + "name": { + "type": "string" + }, + "title": { + "type": "string" + }, + "description": { + "type": "string" + }, + "category": { + "type": "string" + }, + "image": { + "type": "string" + }, + "folderId": { + "type": "string" + } + } + }, + "FormLoginRequest": { + "type": "object", + "properties": { + "loginId": { + "type": "string" + }, + "password": { + "type": "string" + }, + "register": { + "type": "boolean" + }, + "source": { + "type": "string" + }, + "authId": { + "type": "string" + } + } + }, + "AuthConfigRequest": { + "type": "object", + "properties": { + "id": { + "type": "string" + }, + "scope": { + "type": "string" + }, + "enableRegister": { + "type": "boolean" + }, + "clientId": { + "type": "string" + }, + "clientSecret": { + "type": "string" + }, + "authType": { + "type": "string" + }, + "sourceDescription": { + "type": "string" + }, + "sourceIcon": { + "type": "string" + }, + "sourceCategory": { + "type": "string" + }, + "sourceMappings": { + "type": "object", + "additionalProperties": { + "type": "string" + } + }, + "issuerUri": { + "type": "string" + }, + "authorizationEndpoint": { + "type": "string" + }, + "tokenEndpoint": { + "type": "string" + }, + "userInfoEndpoint": { + "type": "string" + }, + "instanceId": { + "type": "string" + }, + "empty": { + "type": "boolean" + } + }, + "additionalProperties": { + "type": "object" + } + }, + "APIKeyRequest": { + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "id": { + "type": "string" + }, + "description": { + "type": "string" + }, + "empty": { + "type": "boolean" + } + }, + "additionalProperties": { + "type": "object" + } + }, + "APIKeyVO": { + "type": "object", + "properties": { + "id": { + "type": "string" + }, + "token": { + "type": "string" + } + } + }, + "ResponseViewAPIKeyVO": { + "type": "object", + "properties": { + "code": { + "type": "integer", + "format": "int32" + }, + "message": { + "type": "string" + }, + "data": { + "$ref": "#/components/schemas/APIKeyVO" + }, + "success": { + "type": "boolean" + } + } + }, + "ApplicationHistorySnapshotRequest": { + "type": "object", + "properties": { + "applicationId": { + "type": "string" + }, + "dsl": { + "type": "object", + "additionalProperties": { + "type": "object" + } + }, + "context": { + "type": "object", + "additionalProperties": { + "type": "object" + } + } + } + }, + "ResponseViewUserDetail": { + "type": "object", + "properties": { + "code": { + "type": "integer", + "format": "int32" + }, + "message": { + "type": "string" + }, + "data": { + "$ref": "#/components/schemas/UserDetail" + }, + "success": { + "type": "boolean" + } + } + }, + "UserDetail": { + "type": "object", + "properties": { + "id": { + "type": "string" + }, + "name": { + "type": "string" + }, + "avatarUrl": { + "type": "string" + }, + "uiLanguage": { + "type": "string" + }, + "email": { + "type": "string" + }, + "ip": { + "type": "string" + }, + "groups": { + "type": "array", + "items": { + "type": "object", + "additionalProperties": { + "type": "string" + } + } + }, + "extra": { + "type": "object", + "additionalProperties": { + "type": "object" + } + } + } + }, + "OrgMemberListView": { + "type": "object", + "properties": { + "visitorRole": { + "type": "string" + }, + "members": { + "type": "array", + "items": { + "$ref": "#/components/schemas/OrgMemberView" + } + }, + "total": { + "type": "integer", + "format": "int32" + }, + "pageNum": { + "type": "integer", + "format": "int32" + }, + "pageSize": { + "type": "integer", + "format": "int32" + } + } + }, + "OrgMemberView": { + "type": "object", + "properties": { + "userId": { + "type": "string" + }, + "name": { + "type": "string" + }, + "avatarUrl": { + "type": "string" + }, + "role": { + "type": "string" + }, + "joinTime": { + "type": "integer", + "format": "int64" + }, + "rawUserInfos": { + "type": "object", + "additionalProperties": { + "type": "object", + "additionalProperties": { + "type": "object" + } + } + } + } + }, + "ResponseViewOrgMemberListView": { + "type": "object", + "properties": { + "code": { + "type": "integer", + "format": "int32" + }, + "message": { + "type": "string" + }, + "data": { + "$ref": "#/components/schemas/OrgMemberListView" + }, + "success": { + "type": "boolean" + } + } + }, + "DatasourceMetaInfo": { + "type": "object", + "properties": { + "version": { + "type": "string" + }, + "hasStructureInfo": { + "type": "boolean" + }, + "definition": { + "type": "object" + }, + "id": { + "type": "string" + }, + "name": { + "type": "string" + } + } + }, + "ResponseViewListDatasourceMetaInfo": { + "type": "object", + "properties": { + "code": { + "type": "integer", + "format": "int32" + }, + "message": { + "type": "string" + }, + "data": { + "type": "array", + "items": { + "$ref": "#/components/schemas/DatasourceMetaInfo" + } + }, + "success": { + "type": "boolean" + } + } + }, + "ResponseViewOrganizationCommonSettings": { + "type": "object", + "properties": { + "code": { + "type": "integer", + "format": "int32" + }, + "message": { + "type": "string" + }, + "data": { + "type": "object", + "properties": { + "empty": { + "type": "boolean" + } + }, + "additionalProperties": { + "type": "object" + } + }, + "success": { + "type": "boolean" + } + } + }, + "ResponseViewLong": { + "type": "object", + "properties": { + "code": { + "type": "integer", + "format": "int32" + }, + "message": { + "type": "string" + }, + "data": { + "type": "integer", + "format": "int64" + }, + "success": { + "type": "boolean" + } + } + }, + "PageResponseViewObject": { + "type": "object", + "properties": { + "code": { + "type": "integer", + "format": "int32" + }, + "message": { + "type": "string" + }, + "data": { + "type": "array", + "items": { + "type": "object" + } + }, + "pageNum": { + "type": "integer", + "format": "int32" + }, + "pageSize": { + "type": "integer", + "format": "int32" + }, + "total": { + "type": "integer", + "format": "int32" + }, + "success": { + "type": "boolean" + } + } + }, + "GroupMemberAggregateView": { + "type": "object", + "properties": { + "visitorRole": { + "type": "string" + }, + "members": { + "type": "array", + "items": { + "$ref": "#/components/schemas/GroupMemberView" + } + }, + "total": { + "type": "integer", + "format": "int32" + }, + "pageNum": { + "type": "integer", + "format": "int32" + }, + "pageSize": { + "type": "integer", + "format": "int32" + } + } + }, + "GroupMemberView": { + "type": "object", + "properties": { + "groupId": { + "type": "string" + }, + "role": { + "type": "string" + }, + "userId": { + "type": "string" + }, + "orgId": { + "type": "string" + }, + "avatarUrl": { + "type": "string" + }, + "joinTime": { + "type": "integer", + "format": "int64" + }, + "userName": { + "type": "string" + } + } + }, + "ResponseViewGroupMemberAggregateView": { + "type": "object", + "properties": { + "code": { + "type": "integer", + "format": "int32" + }, + "message": { + "type": "string" + }, + "data": { + "$ref": "#/components/schemas/GroupMemberAggregateView" + }, + "success": { + "type": "boolean" + } + } + }, + "GroupListResponseViewListGroupView": { + "type": "object", + "properties": { + "code": { + "type": "integer", + "format": "int32" + }, + "message": { + "type": "string" + }, + "data": { + "type": "array", + "items": { + "$ref": "#/components/schemas/GroupView" + } + }, + "totalAdminsAndDevelopers": { + "type": "integer", + "format": "int32" + }, + "totalDevelopersOnly": { + "type": "integer", + "format": "int32" + }, + "totalAdmins": { + "type": "integer", + "format": "int32" + }, + "totalOtherMembers": { + "type": "integer", + "format": "int32" + }, + "total": { + "type": "integer", + "format": "int32" + }, + "pageNum": { + "type": "integer", + "format": "int32" + }, + "pageSize": { + "type": "integer", + "format": "int32" + }, + "success": { + "type": "boolean" + } + } + }, + "Column": { + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "type": { + "type": "string" + }, + "defaultValue": { + "type": "string" + }, + "isAutogenerated": { + "type": "boolean" + } + } + }, + "DatasourceStructure": { + "type": "object", + "properties": { + "tables": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Table" + } + } + } + }, + "Key": { + "type": "object", + "properties": { + "type": { + "type": "string" + } + } + }, + "ResponseViewDatasourceStructure": { + "type": "object", + "properties": { + "code": { + "type": "integer", + "format": "int32" + }, + "message": { + "type": "string" + }, + "data": { + "$ref": "#/components/schemas/DatasourceStructure" + }, + "success": { + "type": "boolean" + } + } + }, + "Table": { + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": [ + "TABLE", + "VIEW", + "ALIAS", + "COLLECTION" + ] + }, + "schema": { + "type": "string" + }, + "name": { + "type": "string" + }, + "columns": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Column" + } + }, + "keys": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Key" + } + } + } + }, + "CommonPermissionView": { + "type": "object", + "properties": { + "orgName": { + "type": "string" + }, + "groupPermissions": { + "type": "array", + "items": { + "$ref": "#/components/schemas/PermissionItemView" + } + }, + "userPermissions": { + "type": "array", + "items": { + "$ref": "#/components/schemas/PermissionItemView" + } + }, + "creatorId": { + "type": "string" + }, + "permissions": { + "type": "array", + "items": { + "$ref": "#/components/schemas/PermissionItemView" + } + } + } + }, + "PermissionItemView": { + "type": "object", + "properties": { + "permissionId": { + "type": "string" + }, + "type": { + "type": "string", + "enum": [ + "USER", + "GROUP" + ] + }, + "id": { + "type": "string" + }, + "avatar": { + "type": "string" + }, + "name": { + "type": "string" + }, + "role": { + "type": "string" + } + } + }, + "ResponseViewCommonPermissionView": { + "type": "object", + "properties": { + "code": { + "type": "integer", + "format": "int32" + }, + "message": { + "type": "string" + }, + "data": { + "$ref": "#/components/schemas/CommonPermissionView" + }, + "success": { + "type": "boolean" + } + } + }, + "PageResponseViewObject_Public": { + "type": "object", + "properties": { + "code": { + "type": "integer", + "format": "int32" + }, + "message": { + "type": "string" + }, + "data": { + "type": "array", + "items": { + "type": "object" + } + }, + "pageNum": { + "type": "integer", + "format": "int32" + }, + "pageSize": { + "type": "integer", + "format": "int32" + }, + "total": { + "type": "integer", + "format": "int32" + }, + "success": { + "type": "boolean" + } + } + }, + "AbstractAuthConfig_Public": { + "type": "object", + "properties": { + "id": { + "type": "string" + }, + "source": { + "type": "string" + }, + "sourceName": { + "type": "string" + }, + "enable": { + "type": "boolean" + }, + "enableRegister": { + "type": "boolean" + }, + "authType": { + "type": "string" + } + }, + "discriminator": { + "propertyName": "authType" + } + }, + "ConfigView_Public": { + "type": "object", + "properties": { + "authConfigs": { + "type": "array", + "items": { + "$ref": "#/components/schemas/AbstractAuthConfig_Public" + } + }, + "workspaceMode": { + "type": "string", + "enum": [ + "SAAS", + "ENTERPRISE" + ] + }, + "selfDomain": { + "type": "boolean" + }, + "cookieName": { + "type": "string" + }, + "cloudHosting": { + "type": "boolean" + } + } + }, + "ResponseViewConfigView_Public": { + "type": "object", + "properties": { + "code": { + "type": "integer", + "format": "int32" + }, + "message": { + "type": "string" + }, + "data": { + "$ref": "#/components/schemas/ConfigView_Public" + }, + "success": { + "type": "boolean" + } + } + }, + "ApplicationPermissionView": { + "type": "object", + "properties": { + "orgName": { + "type": "string" + }, + "groupPermissions": { + "type": "array", + "items": { + "$ref": "#/components/schemas/PermissionItemView" + } + }, + "userPermissions": { + "type": "array", + "items": { + "$ref": "#/components/schemas/PermissionItemView" + } + }, + "creatorId": { + "type": "string" + }, + "publicToAll": { + "type": "boolean" + }, + "publicToMarketplace": { + "type": "boolean" + }, + "agencyProfile": { + "type": "boolean" + }, + "permissions": { + "type": "array", + "items": { + "$ref": "#/components/schemas/PermissionItemView" + } + } + } + }, + "ResponseViewApplicationPermissionView": { + "type": "object", + "properties": { + "code": { + "type": "integer", + "format": "int32" + }, + "message": { + "type": "string" + }, + "data": { + "$ref": "#/components/schemas/ApplicationPermissionView" + }, + "success": { + "type": "boolean" + } + } + }, + "ResponseViewListApplicationInfoView": { + "type": "object", + "properties": { + "code": { + "type": "integer", + "format": "int32" + }, + "message": { + "type": "string" + }, + "data": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ApplicationInfoView" + } + }, + "success": { + "type": "boolean" + } + } + }, + "MarketplaceApplicationInfoView": { + "type": "object", + "properties": { + "title": { + "type": "string" + }, + "description": { + "type": "string" + }, + "category": { + "type": "string" + }, + "image": { + "type": "string" + }, + "orgId": { + "type": "string" + }, + "orgName": { + "type": "string" + }, + "creatorEmail": { + "type": "string" + }, + "applicationId": { + "type": "string" + }, + "name": { + "type": "string" + }, + "createAt": { + "type": "integer", + "format": "int64" + }, + "createBy": { + "type": "string" + }, + "applicationType": { + "type": "integer", + "format": "int32" + }, + "applicationStatus": { + "type": "string", + "enum": [ + "NORMAL", + "RECYCLED", + "DELETED" + ] + } + } + }, + "ResponseViewListMarketplaceApplicationInfoView": { + "type": "object", + "properties": { + "code": { + "type": "integer", + "format": "int32" + }, + "message": { + "type": "string" + }, + "data": { + "type": "array", + "items": { + "$ref": "#/components/schemas/MarketplaceApplicationInfoView" + } + }, + "success": { + "type": "boolean" + } + } + }, + "APIKey": { + "type": "object", + "properties": { + "id": { + "type": "string" + }, + "name": { + "type": "string" + }, + "description": { + "type": "string" + }, + "token": { + "type": "string" + } + } + }, + "ResponseViewUserHomepageView": { + "type": "object", + "properties": { + "code": { + "type": "integer", + "format": "int32" + }, + "message": { + "type": "string" + }, + "data": { + "$ref": "#/components/schemas/UserHomepageView" + }, + "success": { + "type": "boolean" + } + } + }, + "TransformedUserInfo": { + "type": "object", + "properties": { + "updateTime": { + "type": "integer", + "format": "int64" + }, + "extra": { + "type": "object", + "additionalProperties": { + "type": "object" + } + } + } + }, + "User": { + "type": "object", + "properties": { + "id": { + "type": "string" + }, + "createdBy": { + "type": "string" + }, + "name": { + "type": "string" + }, + "email": { + "type": "string" + }, + "uiLanguage": { + "type": "string" + }, + "avatar": { + "type": "string" + }, + "tpAvatarLink": { + "type": "string" + }, + "superAdmin": { + "type": "boolean" + }, + "state": { + "type": "string", + "enum": [ + "NEW", + "INVITED", + "ACTIVATED", + "DELETED" + ] + }, + "isEnabled": { + "type": "boolean" + }, + "activeAuthId": { + "type": "string" + }, + "password": { + "type": "string", + "writeOnly": true + }, + "passwordResetToken": { + "type": "string" + }, + "passwordResetTokenExpiry": { + "type": "string", + "format": "date-time" + }, + "isAnonymous": { + "type": "boolean" + }, + "connections": { + "uniqueItems": true, + "type": "array", + "items": { + "$ref": "#/components/schemas/Connection" + } + }, + "apiKeysList": { + "type": "array", + "items": { + "$ref": "#/components/schemas/APIKey" + } + }, + "apiKeys": { + "type": "array", + "items": { + "type": "object" + } + }, + "hasSetNickname": { + "type": "boolean" + }, + "orgTransformedUserInfo": { + "type": "object", + "properties": { + "empty": { + "type": "boolean" + } + }, + "additionalProperties": { + "$ref": "#/components/schemas/TransformedUserInfo" + } + } + } + }, + "UserHomepageView": { + "type": "object", + "properties": { + "user": { + "$ref": "#/components/schemas/User" + }, + "organization": { + "$ref": "#/components/schemas/Organization" + }, + "folderInfoViews": { + "type": "array", + "items": { + "$ref": "#/components/schemas/FolderInfoView" + } + }, + "homeApplicationViews": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ApplicationInfoView" + } + } + } + }, + "JsLibraryMeta": { + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "latestVersion": { + "type": "string" + }, + "homepage": { + "type": "string" + }, + "description": { + "type": "string" + }, + "downloadUrl": { + "type": "string" + } + } + }, + "ResponseViewListJsLibraryMeta": { + "type": "object", + "properties": { + "code": { + "type": "integer", + "format": "int32" + }, + "message": { + "type": "string" + }, + "data": { + "type": "array", + "items": { + "$ref": "#/components/schemas/JsLibraryMeta" + } + }, + "success": { + "type": "boolean" + } + } + }, + "ResponseViewListMaterialView": { + "type": "object", + "properties": { + "code": { + "type": "integer", + "format": "int32" + }, + "message": { + "type": "string" + }, + "data": { + "type": "array", + "items": { + "$ref": "#/components/schemas/MaterialView" + } + }, + "success": { + "type": "boolean" + } + } + }, + "ResponseViewMapStringObject": { + "type": "object", + "properties": { + "code": { + "type": "integer", + "format": "int32" + }, + "message": { + "type": "string" + }, + "data": { + "type": "object", + "additionalProperties": { + "type": "object" + } + }, + "success": { + "type": "boolean" + } + } + }, + "LibraryQueryAggregateView": { + "type": "object", + "properties": { + "libraryQueryMetaView": { + "$ref": "#/components/schemas/LibraryQueryMetaView" + }, + "recordMetaViewList": { + "type": "array", + "items": { + "$ref": "#/components/schemas/LibraryQueryRecordMetaView" + } + } + } + }, + "LibraryQueryMetaView": { + "type": "object", + "properties": { + "id": { + "type": "string" + }, + "gid": { + "type": "string" + }, + "datasourceType": { + "type": "string" + }, + "organizationId": { + "type": "string" + }, + "name": { + "type": "string" + }, + "createTime": { + "type": "integer", + "format": "int64" + }, + "creatorName": { + "type": "string" + } + } + }, + "ResponseViewListLibraryQueryAggregateView": { + "type": "object", + "properties": { + "code": { + "type": "integer", + "format": "int32" + }, + "message": { + "type": "string" + }, + "data": { + "type": "array", + "items": { + "$ref": "#/components/schemas/LibraryQueryAggregateView" + } + }, + "success": { + "type": "boolean" + } + } + }, + "BundlePermissionView": { + "type": "object", + "properties": { + "orgName": { + "type": "string" + }, + "groupPermissions": { + "type": "array", + "items": { + "$ref": "#/components/schemas/PermissionItemView" + } + }, + "userPermissions": { + "type": "array", + "items": { + "$ref": "#/components/schemas/PermissionItemView" + } + }, + "creatorId": { + "type": "string" + }, + "publicToAll": { + "type": "boolean" + }, + "publicToMarketplace": { + "type": "boolean" + }, + "agencyProfile": { + "type": "boolean" + }, + "permissions": { + "type": "array", + "items": { + "$ref": "#/components/schemas/PermissionItemView" + } + } + } + }, + "ResponseViewBundlePermissionView": { + "type": "object", + "properties": { + "code": { + "type": "integer", + "format": "int32" + }, + "message": { + "type": "string" + }, + "data": { + "$ref": "#/components/schemas/BundlePermissionView" + }, + "success": { + "type": "boolean" + } + } + }, + "ResponseViewListBundleInfoView": { + "type": "object", + "properties": { + "code": { + "type": "integer", + "format": "int32" + }, + "message": { + "type": "string" + }, + "data": { + "type": "array", + "items": { + "$ref": "#/components/schemas/BundleInfoView" + } + }, + "success": { + "type": "boolean" + } + } + }, + "MarketplaceBundleInfoView": { + "type": "object", + "properties": { + "title": { + "type": "string" + }, + "description": { + "type": "string" + }, + "category": { + "type": "string" + }, + "image": { + "type": "string" + }, + "orgId": { + "type": "string" + }, + "orgName": { + "type": "string" + }, + "creatorEmail": { + "type": "string" + }, + "bundleId": { + "type": "string" + }, + "bundleGid": { + "type": "string" + }, + "name": { + "type": "string" + }, + "createAt": { + "type": "integer", + "format": "int64" + }, + "createBy": { + "type": "string" + }, + "bundleStatus": { + "type": "string", + "enum": [ + "NORMAL", + "RECYCLED", + "DELETED" + ] + } + } + }, + "ResponseViewListMarketplaceBundleInfoView": { + "type": "object", + "properties": { + "code": { + "type": "integer", + "format": "int32" + }, + "message": { + "type": "string" + }, + "data": { + "type": "array", + "items": { + "$ref": "#/components/schemas/MarketplaceBundleInfoView" + } + }, + "success": { + "type": "boolean" + } + } + }, + "AbstractAuthConfig_Internal": { + "type": "object", + "properties": { + "id": { + "type": "string" + }, + "source": { + "type": "string" + }, + "sourceName": { + "type": "string" + }, + "enable": { + "type": "boolean" + }, + "enableRegister": { + "type": "boolean" + }, + "authType": { + "type": "string" + } + }, + "discriminator": { + "propertyName": "authType" + } + }, + "ResponseViewListAbstractAuthConfig_Internal": { + "type": "object", + "properties": { + "code": { + "type": "integer", + "format": "int32" + }, + "message": { + "type": "string" + }, + "data": { + "type": "array", + "items": { + "$ref": "#/components/schemas/AbstractAuthConfig_Internal" + } + }, + "success": { + "type": "boolean" + } + } + }, + "ResponseViewListAPIKey": { + "type": "object", + "properties": { + "code": { + "type": "integer", + "format": "int32" + }, + "message": { + "type": "string" + }, + "data": { + "type": "array", + "items": { + "$ref": "#/components/schemas/APIKey" + } + }, + "success": { + "type": "boolean" + } + } + }, + "HistorySnapshotDslView": { + "type": "object", + "properties": { + "applicationsDsl": { + "type": "object", + "additionalProperties": { + "type": "object" + } + }, + "moduleDSL": { + "type": "object", + "additionalProperties": { + "type": "object", + "additionalProperties": { + "type": "object" + } + } + } + } + }, + "ResponseViewHistorySnapshotDslView": { + "type": "object", + "properties": { + "code": { + "type": "integer", + "format": "int32" + }, + "message": { + "type": "string" + }, + "data": { + "$ref": "#/components/schemas/HistorySnapshotDslView" + }, + "success": { + "type": "boolean" + } + } + } + }, + "securitySchemes": { + "bearerAuth": { + "type": "http", + "description": "API Key Authentication with a Bearer token. Copy your API Key and prefix it here with 'Bearer ' (e.g. 'Bearer eyJhbGciO...'", + "name": "Authorization", + "in": "header", + "scheme": "bearer", + "bearerFormat": "JWT" + } + } + }, + "externalDocs": { + "url": "https://docs.lowcoder.cloud/lowcoder-documentation/lowcoder-extension/lowcoder-open-rest-api", + "description": "Lowcoder Documentation" + }, + "tags": [ + { + "name": "Application APIs", + "description": "", + "externalDocs": { + "description": "", + "url": "" + } + }, + { + "name": "Application History APIs", + "description": "", + "externalDocs": { + "description": "", + "url": "" + } + }, + { + "name": "Application Permissions APIs", + "description": "", + "externalDocs": { + "description": "", + "url": "" + } + }, + { + "name": "Bundle APIs", + "description": "", + "externalDocs": { + "description": "", + "url": "" + } + }, + { + "name": "Bundle Permissions APIs", + "description": "", + "externalDocs": { + "description": "", + "url": "" + } + }, + { + "name": "Folder APIs", + "description": "", + "externalDocs": { + "description": "", + "url": "" + } + }, + { + "name": "Folder Permissions APIs", + "description": "", + "externalDocs": { + "description": "", + "url": "" + } + }, + { + "name": "Data Source APIs", + "description": "", + "externalDocs": { + "description": "", + "url": "" + } + }, + { + "name": "Data Source Permissions APIs", + "description": "", + "externalDocs": { + "description": "", + "url": "" + } + }, + { + "name": "Query Execution APIs", + "description": "", + "externalDocs": { + "description": "", + "url": "" + } + }, + { + "name": "Library Queries Record APIs", + "description": "", + "externalDocs": { + "description": "", + "url": "" + } + }, + { + "name": "Organization APIs", + "description": "", + "externalDocs": { + "description": "", + "url": "" + } + }, + { + "name": "Query Library APIs", + "description": "", + "externalDocs": { + "description": "", + "url": "" + } + }, + { + "name": "Organization Member APIs", + "description": "", + "externalDocs": { + "description": "", + "url": "" + } + }, + { + "name": "User invitation APIs", + "description": "", + "externalDocs": { + "description": "", + "url": "" + } + }, + { + "name": "User APIs", + "description": "", + "externalDocs": { + "description": "", + "url": "" + } + }, + { + "name": "User Profile Photo APIs", + "description": "", + "externalDocs": { + "description": "", + "url": "" + } + }, + { + "name": "Group APIs", + "description": "", + "externalDocs": { + "description": "", + "url": "" + } + }, + { + "name": "Group Members APIs", + "description": "", + "externalDocs": { + "description": "", + "url": "" + } + }, + { + "name": "Authentication APIs", + "description": "", + "externalDocs": { + "description": "", + "url": "" + } + }, + { + "name": "Image Assets APIs", + "description": "", + "externalDocs": { + "description": "", + "url": "" + } + }, + { + "name": "Javascript Library APIs", + "description": "", + "externalDocs": { + "description": "", + "url": "" + } + }, + { + "name": "Status checks APIs", + "description": "", + "externalDocs": { + "description": "", + "url": "" + } + }, + { + "name": "Server Setting APIs", + "description": "", + "externalDocs": { + "description": "", + "url": "" + } + }, + { + "name": "default", + "description": "", + "externalDocs": { + "description": "", + "url": "" + } + } + ] +} \ No newline at end of file diff --git a/server/node-service/src/plugins/openApi/index.ts b/server/node-service/src/plugins/openApi/index.ts index d53ffef07..18b96dad3 100644 --- a/server/node-service/src/plugins/openApi/index.ts +++ b/server/node-service/src/plugins/openApi/index.ts @@ -62,7 +62,14 @@ async function getDefinitions( const specList = Array.isArray(spec) ? spec : [{ spec, id: "" }]; return await Promise.all( specList.map(async ({id, spec}) => { - const deRefedSpec = await SwaggerParser.dereference(spec); + const deRefedSpec = await SwaggerParser.dereference(spec, { dereference: { + circular: true, // Retains circular references + }, + resolve: { + external: false, + http: false, + }, + }); return { def: deRefedSpec, id, @@ -82,8 +89,6 @@ export async function runOpenApi( const { actionName, ...otherActionData } = actionData; const { serverURL } = dataSourceConfig; - - let operation, realOperationId, definition: OpenAPI.Document | undefined; for (const {id, def} of await getDefinitions(spec, openApiSpecDereferenced)) { @@ -117,6 +122,8 @@ export async function runOpenApi( const { parameters, requestBody } = normalizeParams(otherActionData, operation, isOas3Spec); let securities = extractSecurityParams(dataSourceConfig, definition); + console.log("securities", securities); + const response = await SwaggerClient.execute({ spec: definition, operationId: realOperationId, diff --git a/server/node-service/src/plugins/openApi/parse.ts b/server/node-service/src/plugins/openApi/parse.ts index c44c08aa3..6427aed69 100644 --- a/server/node-service/src/plugins/openApi/parse.ts +++ b/server/node-service/src/plugins/openApi/parse.ts @@ -209,11 +209,21 @@ export async function parseOpenApi( */ specId?: string ): Promise { + + console.log("parsing API"); + let spec = specJsonOrObj; if (typeof specJsonOrObj === "string") { spec = JSON.parse(specJsonOrObj); } - const openApiDoc = await SwaggerParser.dereference(spec, { dereference: { circular: "ignore" } }); + const openApiDoc = await SwaggerParser.dereference(spec, { dereference: { + circular: true, // Retains circular references + }, + resolve: { + external: false, + http: false, + }, + }); const actions: ActionConfig[] = []; const categories: ActionCategory[] = []; if (!openApiDoc.paths) { diff --git a/server/node-service/src/plugins/openApi/util.ts b/server/node-service/src/plugins/openApi/util.ts index 4f8a9a262..f7c8549e1 100644 --- a/server/node-service/src/plugins/openApi/util.ts +++ b/server/node-service/src/plugins/openApi/util.ts @@ -19,19 +19,19 @@ interface FileParamValue { } export function getFileData(value: FileParamValue | string): File | Buffer | null { - if (!value) { - return null; - } + if (!value) return null; + if (typeof value === "string") { return Buffer.from(value, "base64"); } + if (value instanceof Buffer || value instanceof File) { return value; } - const { data = "", name = "file", type } = value || {}; - if (!data) { - return null; - } + + const { data, name = "file", type } = value || {}; + if (!data) return null; + return new File([Buffer.from(data, "base64")], name, { type }); } @@ -82,12 +82,10 @@ interface NormalizedParams { } export function extractSecurityParams(datasourceConfig: any, spec: OpenAPI.Document) { - const config = datasourceConfig.dynamicParamsConfig; - if (!config) { - return {}; - } + const config = datasourceConfig.dynamicParamsConfig || {}; const isOas3Spec = isOas3(spec); const authData = extractLevelData(config); + let names: string[] = []; if (isOas3Spec) { const oas3Spec = spec as OpenAPIV3.Document; @@ -96,22 +94,36 @@ export function extractSecurityParams(datasourceConfig: any, spec: OpenAPI.Docum const swagger2Spec = spec as OpenAPIV2.Document; names = Object.keys(swagger2Spec.securityDefinitions || {}); } + const authorized = _.pick(authData, names); - let oauthAccessToken = datasourceConfig["OAUTH_ACCESS_TOKEN"]; + // Inject bearer token if available + if (config["bearerAuth.value"]) { + authorized.bearerAuth = { + value: config["bearerAuth.value"], + }; + } - if(oauthAccessToken) { + if (config["apiKeyAuth.value"]) { + authorized.apiKeyAuth = { + value: config["apiKeyAuth.value"], + }; + } + + let oauthAccessToken = datasourceConfig["OAUTH_ACCESS_TOKEN"]; + if (oauthAccessToken) { return { authorized: { - OAUTH_ACCESS_TOKEN: { value: oauthAccessToken } + OAUTH_ACCESS_TOKEN: { value: oauthAccessToken }, }, - specSecurity: [] + specSecurity: spec.security || [], }; } - return { authorized, specSecurity: spec.security }; + return { authorized, specSecurity: spec.security || [] }; } + export function normalizeParams( params: any, operation: OpenAPI.Operation, diff --git a/server/node-service/src/plugins/serpApi/index.ts b/server/node-service/src/plugins/serpApi/index.ts index d14ec5182..36bff24e5 100644 --- a/server/node-service/src/plugins/serpApi/index.ts +++ b/server/node-service/src/plugins/serpApi/index.ts @@ -17,7 +17,8 @@ const dataSourceConfig = { { "type": "password", "key": "apikey-query-api_key.value", - "label": "api_key" + "label": "API Key", + "tooltip" : "SerpAPI allows you to scrape the results from Google search engine via our SerpApi service. Start here https://serpapi.com/pricing to get an API Key." } ] } as const; diff --git a/server/node-service/src/plugins/supabaseApi/index.ts b/server/node-service/src/plugins/supabaseApi/index.ts index d13622c4f..e7c86ff74 100644 --- a/server/node-service/src/plugins/supabaseApi/index.ts +++ b/server/node-service/src/plugins/supabaseApi/index.ts @@ -73,8 +73,6 @@ const supabaseApiPlugin: DataSourcePlugin = { dynamicParamsConfig: otherDataSourceConfig, }; - console.log("runApiDsConfig", runApiDsConfig); - return runOpenApi(actionData, runApiDsConfig, spec as OpenAPIV3.Document); }, }; diff --git a/server/node-service/src/services/plugin.ts b/server/node-service/src/services/plugin.ts index f7376fee5..a481c8c62 100644 --- a/server/node-service/src/services/plugin.ts +++ b/server/node-service/src/services/plugin.ts @@ -219,9 +219,10 @@ export async function runPluginQuery( dataSourceConfig["OAUTH_ACCESS_TOKEN"] = value } else if (dataSourceConfig.dynamicParamsConfig && key in dataSourceConfig.dynamicParamsConfig) { const valueKey = `${key}.value`; - dataSourceConfig.dynamicParamsConfig[valueKey] = value[0].value + dataSourceConfig.dynamicParamsConfig[valueKey] = value[0].value; } - }) + }); + const result = await plugin.run(action, dataSourceConfig, pluginContext); return { diff --git a/server/node-service/yarn.lock b/server/node-service/yarn.lock index 5f3d9419b..0a63980fb 100644 --- a/server/node-service/yarn.lock +++ b/server/node-service/yarn.lock @@ -1404,12 +1404,12 @@ __metadata: linkType: hard "@babel/runtime-corejs3@npm:^7.20.7, @babel/runtime-corejs3@npm:^7.22.15": - version: 7.25.7 - resolution: "@babel/runtime-corejs3@npm:7.25.7" + version: 7.26.0 + resolution: "@babel/runtime-corejs3@npm:7.26.0" dependencies: core-js-pure: ^3.30.2 regenerator-runtime: ^0.14.0 - checksum: a725f3e0b0f69f19b4773211c776ed01394e0924c29de005056bbfc8171a9f74c405ade874fef55aad93396462772ffa6cb6e697e44890d70620515b2c5d9eb1 + checksum: c6c5adac03e33aa4b5bb636a677aa2a6e400b91d91aac5674448d20af4100b80a8bedfb742338e4236e22c092d3edeb27210efdf48bd13ec353bd899f097ff41 languageName: node linkType: hard @@ -3053,449 +3053,449 @@ __metadata: languageName: node linkType: hard -"@swagger-api/apidom-ast@npm:^1.0.0-alpha.9": - version: 1.0.0-alpha.9 - resolution: "@swagger-api/apidom-ast@npm:1.0.0-alpha.9" +"@swagger-api/apidom-ast@npm:^1.0.0-beta.5": + version: 1.0.0-beta.5 + resolution: "@swagger-api/apidom-ast@npm:1.0.0-beta.5" dependencies: "@babel/runtime-corejs3": ^7.20.7 - "@swagger-api/apidom-error": ^1.0.0-alpha.9 + "@swagger-api/apidom-error": ^1.0.0-beta.5 "@types/ramda": ~0.30.0 ramda: ~0.30.0 ramda-adjunct: ^5.0.0 unraw: ^3.0.0 - checksum: c3a6efab1419ea3130074c4d4b57e12806158856b988e6aeef7916d25d3e005f0e1cfb6e0e87c621d84ad2fc4cdbb39dbc55efd0cde602198e41eca4a0e67abe + checksum: 7c46f284d99c3098bc332dc3ef35a5cd0b4c3785a3fd56722f4fc07b423d8d55d7eb446763da5cf4d380fbfea3390c70bd5e5c15de87b4268730ba845b9f54fd languageName: node linkType: hard -"@swagger-api/apidom-core@npm:>=1.0.0-alpha.9 <1.0.0-beta.0, @swagger-api/apidom-core@npm:^1.0.0-alpha.9": - version: 1.0.0-alpha.9 - resolution: "@swagger-api/apidom-core@npm:1.0.0-alpha.9" +"@swagger-api/apidom-core@npm:>=1.0.0-beta.3 <1.0.0-rc.0, @swagger-api/apidom-core@npm:^1.0.0-beta.5": + version: 1.0.0-beta.5 + resolution: "@swagger-api/apidom-core@npm:1.0.0-beta.5" dependencies: "@babel/runtime-corejs3": ^7.20.7 - "@swagger-api/apidom-ast": ^1.0.0-alpha.9 - "@swagger-api/apidom-error": ^1.0.0-alpha.9 + "@swagger-api/apidom-ast": ^1.0.0-beta.5 + "@swagger-api/apidom-error": ^1.0.0-beta.5 "@types/ramda": ~0.30.0 minim: ~0.23.8 ramda: ~0.30.0 ramda-adjunct: ^5.0.0 short-unique-id: ^5.0.2 ts-mixer: ^6.0.3 - checksum: 20b159c5f8a9d8b6d22415d96d6cc0590f8afcecfcd683b6edd7448426af9f98225411e8e586b4e1d1f76226bd2ab6bc8aca98ee04b39ca47051854a9909f969 + checksum: db5e76049eb96eccf5c956a0fdfb7582019be097646286ee8e0ba1881fa2618abadcf8156da6a6183e2c3d15e0fedbea22901282922d1975fe69e4bf0d7fec94 languageName: node linkType: hard -"@swagger-api/apidom-error@npm:>=1.0.0-alpha.9 <1.0.0-beta.0, @swagger-api/apidom-error@npm:^1.0.0-alpha.1, @swagger-api/apidom-error@npm:^1.0.0-alpha.9": - version: 1.0.0-alpha.9 - resolution: "@swagger-api/apidom-error@npm:1.0.0-alpha.9" +"@swagger-api/apidom-error@npm:>=1.0.0-beta.3 <1.0.0-rc.0, @swagger-api/apidom-error@npm:^1.0.0-beta.3 <1.0.0-rc.0, @swagger-api/apidom-error@npm:^1.0.0-beta.5": + version: 1.0.0-beta.5 + resolution: "@swagger-api/apidom-error@npm:1.0.0-beta.5" dependencies: "@babel/runtime-corejs3": ^7.20.7 - checksum: 8bec3120c5b52e7ba11128f3ebd999037105dc0849e5784fe0363260c98c52719d26ad3b69b8de9848bdd3e3abae2452270764d8aef30e890e4870dcccdeea9a + checksum: 77f719ce147546aaa350df9ed49f12ab793fabc9a8c061877960a22a6dff7210cc004c02f0a10c807aa6b5513af7bdd37b672a7ceb73189fa5950571f806a4cb languageName: node linkType: hard -"@swagger-api/apidom-json-pointer@npm:>=1.0.0-alpha.9 <1.0.0-beta.0, @swagger-api/apidom-json-pointer@npm:^1.0.0-alpha.1, @swagger-api/apidom-json-pointer@npm:^1.0.0-alpha.9": - version: 1.0.0-alpha.9 - resolution: "@swagger-api/apidom-json-pointer@npm:1.0.0-alpha.9" +"@swagger-api/apidom-json-pointer@npm:>=1.0.0-beta.3 <1.0.0-rc.0, @swagger-api/apidom-json-pointer@npm:^1.0.0-beta.3 <1.0.0-rc.0, @swagger-api/apidom-json-pointer@npm:^1.0.0-beta.5": + version: 1.0.0-beta.5 + resolution: "@swagger-api/apidom-json-pointer@npm:1.0.0-beta.5" dependencies: "@babel/runtime-corejs3": ^7.20.7 - "@swagger-api/apidom-core": ^1.0.0-alpha.9 - "@swagger-api/apidom-error": ^1.0.0-alpha.9 + "@swagger-api/apidom-core": ^1.0.0-beta.5 + "@swagger-api/apidom-error": ^1.0.0-beta.5 "@types/ramda": ~0.30.0 ramda: ~0.30.0 ramda-adjunct: ^5.0.0 - checksum: 053f9b4fb64728e8eea0200771e9809875a3480cdd82cf5b7bcb0de3cf674d3e4d1ec1e609dc5adffc232e0db6fb142e7189f47d5c3013a594afa8bacc475c5c + checksum: b018073a75c3fad269140504fe5623bd5041dca1ad80c249ab031b63d1c4ed0756e268fea0846f21476fc7d72fa40fcf3fefc230bfa751caf9efe587bd01124a languageName: node linkType: hard -"@swagger-api/apidom-ns-api-design-systems@npm:^1.0.0-alpha.9": - version: 1.0.0-alpha.9 - resolution: "@swagger-api/apidom-ns-api-design-systems@npm:1.0.0-alpha.9" +"@swagger-api/apidom-ns-api-design-systems@npm:^1.0.0-beta.5": + version: 1.0.0-beta.5 + resolution: "@swagger-api/apidom-ns-api-design-systems@npm:1.0.0-beta.5" dependencies: "@babel/runtime-corejs3": ^7.20.7 - "@swagger-api/apidom-core": ^1.0.0-alpha.9 - "@swagger-api/apidom-error": ^1.0.0-alpha.9 - "@swagger-api/apidom-ns-openapi-3-1": ^1.0.0-alpha.9 + "@swagger-api/apidom-core": ^1.0.0-beta.5 + "@swagger-api/apidom-error": ^1.0.0-beta.5 + "@swagger-api/apidom-ns-openapi-3-1": ^1.0.0-beta.5 "@types/ramda": ~0.30.0 ramda: ~0.30.0 ramda-adjunct: ^5.0.0 ts-mixer: ^6.0.3 - checksum: f8be1d0a21b0da66bd89def6fc8e7b7c2403913ac2514a4dd73ce287eccf6b93a6f6eaf4b114fa648ef682ab9eeddb394ef37e994cf921f21bfaac1503f5bddb + checksum: b661b9140b3e5968ec1669c3529c9169a12b96500466a5c87e4b479507d0f09443abb3a03370d5d6751f1b6951d743b357519244bd4c989084388e2b43d60603 languageName: node linkType: hard -"@swagger-api/apidom-ns-asyncapi-2@npm:^1.0.0-alpha.1, @swagger-api/apidom-ns-asyncapi-2@npm:^1.0.0-alpha.9": - version: 1.0.0-alpha.9 - resolution: "@swagger-api/apidom-ns-asyncapi-2@npm:1.0.0-alpha.9" +"@swagger-api/apidom-ns-asyncapi-2@npm:^1.0.0-beta.3 <1.0.0-rc.0, @swagger-api/apidom-ns-asyncapi-2@npm:^1.0.0-beta.5": + version: 1.0.0-beta.5 + resolution: "@swagger-api/apidom-ns-asyncapi-2@npm:1.0.0-beta.5" dependencies: "@babel/runtime-corejs3": ^7.20.7 - "@swagger-api/apidom-core": ^1.0.0-alpha.9 - "@swagger-api/apidom-ns-json-schema-draft-7": ^1.0.0-alpha.9 + "@swagger-api/apidom-core": ^1.0.0-beta.5 + "@swagger-api/apidom-ns-json-schema-draft-7": ^1.0.0-beta.5 "@types/ramda": ~0.30.0 ramda: ~0.30.0 ramda-adjunct: ^5.0.0 ts-mixer: ^6.0.3 - checksum: c313c353ef0df6908c257b7df441242d25bd95bf6d89a331163f0a0de257f7173c44d78260d8969c6e29debf98008e000e4c75f01d8dd933583dc8116cc841a8 + checksum: e7b8c5af72442fa267f2981bd02d1450997f1022068071966bcebb13e7afbaf0c1416de3dc73e57f9cf2a0b08d1a72a3e0dd40fdf8e2b32c63c69f078518617f languageName: node linkType: hard -"@swagger-api/apidom-ns-json-schema-draft-4@npm:^1.0.0-alpha.9": - version: 1.0.0-alpha.9 - resolution: "@swagger-api/apidom-ns-json-schema-draft-4@npm:1.0.0-alpha.9" +"@swagger-api/apidom-ns-json-schema-draft-4@npm:^1.0.0-beta.5": + version: 1.0.0-beta.5 + resolution: "@swagger-api/apidom-ns-json-schema-draft-4@npm:1.0.0-beta.5" dependencies: "@babel/runtime-corejs3": ^7.20.7 - "@swagger-api/apidom-ast": ^1.0.0-alpha.9 - "@swagger-api/apidom-core": ^1.0.0-alpha.9 + "@swagger-api/apidom-ast": ^1.0.0-beta.5 + "@swagger-api/apidom-core": ^1.0.0-beta.5 "@types/ramda": ~0.30.0 ramda: ~0.30.0 ramda-adjunct: ^5.0.0 ts-mixer: ^6.0.4 - checksum: 502b2f7fde36d628d21cb0303bba3e08f620bf3cfbbed74ed89e869928a50bb730d48c5edcb1797149be5c35428af3edb6fffbd0150a307bfe7cb393ea7c1a83 + checksum: c58fd53a087bcb9c0c238eee23f5fc2e452d4a88bde99dbcb020c2295ed385926ca51052e046f4d1e8a2d20898cb28a6d3cfb57c23b9bff5446bfd10f95ba6aa languageName: node linkType: hard -"@swagger-api/apidom-ns-json-schema-draft-6@npm:^1.0.0-alpha.9": - version: 1.0.0-alpha.9 - resolution: "@swagger-api/apidom-ns-json-schema-draft-6@npm:1.0.0-alpha.9" +"@swagger-api/apidom-ns-json-schema-draft-6@npm:^1.0.0-beta.5": + version: 1.0.0-beta.5 + resolution: "@swagger-api/apidom-ns-json-schema-draft-6@npm:1.0.0-beta.5" dependencies: "@babel/runtime-corejs3": ^7.20.7 - "@swagger-api/apidom-core": ^1.0.0-alpha.9 - "@swagger-api/apidom-error": ^1.0.0-alpha.9 - "@swagger-api/apidom-ns-json-schema-draft-4": ^1.0.0-alpha.9 + "@swagger-api/apidom-core": ^1.0.0-beta.5 + "@swagger-api/apidom-error": ^1.0.0-beta.5 + "@swagger-api/apidom-ns-json-schema-draft-4": ^1.0.0-beta.5 "@types/ramda": ~0.30.0 ramda: ~0.30.0 ramda-adjunct: ^5.0.0 ts-mixer: ^6.0.4 - checksum: 8a9b1f265d5ebd95866e15f7bd516f9f214d2a75c57f34c36eb4442cd5b8ddb747e6d6c3d14c77915f5408baec9d58352cd0276e20cea3b8857d627916a0906f + checksum: 1a069aee8e9ff445bfd523298f50905177226070f587e3e371c2a68aa8031c39e7e9d7e0c47ff6ae8876baaa80b6f8b79c3a357e0c7ebcd592ebb20015f4ccc1 languageName: node linkType: hard -"@swagger-api/apidom-ns-json-schema-draft-7@npm:^1.0.0-alpha.9": - version: 1.0.0-alpha.9 - resolution: "@swagger-api/apidom-ns-json-schema-draft-7@npm:1.0.0-alpha.9" +"@swagger-api/apidom-ns-json-schema-draft-7@npm:^1.0.0-beta.5": + version: 1.0.0-beta.5 + resolution: "@swagger-api/apidom-ns-json-schema-draft-7@npm:1.0.0-beta.5" dependencies: "@babel/runtime-corejs3": ^7.20.7 - "@swagger-api/apidom-core": ^1.0.0-alpha.9 - "@swagger-api/apidom-error": ^1.0.0-alpha.9 - "@swagger-api/apidom-ns-json-schema-draft-6": ^1.0.0-alpha.9 + "@swagger-api/apidom-core": ^1.0.0-beta.5 + "@swagger-api/apidom-error": ^1.0.0-beta.5 + "@swagger-api/apidom-ns-json-schema-draft-6": ^1.0.0-beta.5 "@types/ramda": ~0.30.0 ramda: ~0.30.0 ramda-adjunct: ^5.0.0 ts-mixer: ^6.0.4 - checksum: 03b281bd2d8376cc76e59ad960cfcf114a83699761f0f024da0759dbf88d920e52180fd07f1fef4ed122472408ee7b64888b4ef8cd09b3e051db400596906fc9 + checksum: 62c62eba1cc554760897e26b0a5e88b74b42c898c12002afcb4d9df37146218bddff751ac8b1392c83947d55dac7a7b81b3ad6d2c222e3acf20bbc49438d2e6f languageName: node linkType: hard -"@swagger-api/apidom-ns-openapi-2@npm:^1.0.0-alpha.1, @swagger-api/apidom-ns-openapi-2@npm:^1.0.0-alpha.9": - version: 1.0.0-alpha.9 - resolution: "@swagger-api/apidom-ns-openapi-2@npm:1.0.0-alpha.9" +"@swagger-api/apidom-ns-openapi-2@npm:^1.0.0-beta.3 <1.0.0-rc.0, @swagger-api/apidom-ns-openapi-2@npm:^1.0.0-beta.5": + version: 1.0.0-beta.5 + resolution: "@swagger-api/apidom-ns-openapi-2@npm:1.0.0-beta.5" dependencies: "@babel/runtime-corejs3": ^7.20.7 - "@swagger-api/apidom-core": ^1.0.0-alpha.9 - "@swagger-api/apidom-error": ^1.0.0-alpha.9 - "@swagger-api/apidom-ns-json-schema-draft-4": ^1.0.0-alpha.9 + "@swagger-api/apidom-core": ^1.0.0-beta.5 + "@swagger-api/apidom-error": ^1.0.0-beta.5 + "@swagger-api/apidom-ns-json-schema-draft-4": ^1.0.0-beta.5 "@types/ramda": ~0.30.0 ramda: ~0.30.0 ramda-adjunct: ^5.0.0 ts-mixer: ^6.0.3 - checksum: 5b71a8cc3c60807e020d7795b66c6d309e8548e1d16bbf2d860cce6877ab79fd35efb4750bb1f92c89d8d25391a4b22c6c2bd2fdf2d97e6befd3bfaf536be9da + checksum: 551e65fce5fb8ce29466ce7f09b5e3fd522a6d23de417856a41f228761eb4d9f5e92438a00d708c55d386a9b72e8a8f704b19aa33324871534567ef9b69adaae languageName: node linkType: hard -"@swagger-api/apidom-ns-openapi-3-0@npm:^1.0.0-alpha.1, @swagger-api/apidom-ns-openapi-3-0@npm:^1.0.0-alpha.9": - version: 1.0.0-alpha.9 - resolution: "@swagger-api/apidom-ns-openapi-3-0@npm:1.0.0-alpha.9" +"@swagger-api/apidom-ns-openapi-3-0@npm:^1.0.0-beta.3 <1.0.0-rc.0, @swagger-api/apidom-ns-openapi-3-0@npm:^1.0.0-beta.5": + version: 1.0.0-beta.5 + resolution: "@swagger-api/apidom-ns-openapi-3-0@npm:1.0.0-beta.5" dependencies: "@babel/runtime-corejs3": ^7.20.7 - "@swagger-api/apidom-core": ^1.0.0-alpha.9 - "@swagger-api/apidom-error": ^1.0.0-alpha.9 - "@swagger-api/apidom-ns-json-schema-draft-4": ^1.0.0-alpha.9 + "@swagger-api/apidom-core": ^1.0.0-beta.5 + "@swagger-api/apidom-error": ^1.0.0-beta.5 + "@swagger-api/apidom-ns-json-schema-draft-4": ^1.0.0-beta.5 "@types/ramda": ~0.30.0 ramda: ~0.30.0 ramda-adjunct: ^5.0.0 ts-mixer: ^6.0.3 - checksum: c5ff6891df51e16ac4e5bd354607c5c4824b12f28cb7e7d48385cc96e9e9431646ed0c18fc856282e4805dec1f123ea2be6b3b4f1025692f47e0d8b55b36baa5 + checksum: 7a64e57b0d1688622333bd94d6541c95beb513ba152599820d8a1ca04f694a0b9a49ddce3e0396dc8dbc61f630d7bc6bce89dbfb4f300db174bf72f6f4c6c2a8 languageName: node linkType: hard -"@swagger-api/apidom-ns-openapi-3-1@npm:>=1.0.0-alpha.9 <1.0.0-beta.0, @swagger-api/apidom-ns-openapi-3-1@npm:^1.0.0-alpha.1, @swagger-api/apidom-ns-openapi-3-1@npm:^1.0.0-alpha.9": - version: 1.0.0-alpha.9 - resolution: "@swagger-api/apidom-ns-openapi-3-1@npm:1.0.0-alpha.9" +"@swagger-api/apidom-ns-openapi-3-1@npm:>=1.0.0-beta.3 <1.0.0-rc.0, @swagger-api/apidom-ns-openapi-3-1@npm:^1.0.0-beta.3 <1.0.0-rc.0, @swagger-api/apidom-ns-openapi-3-1@npm:^1.0.0-beta.5": + version: 1.0.0-beta.5 + resolution: "@swagger-api/apidom-ns-openapi-3-1@npm:1.0.0-beta.5" dependencies: "@babel/runtime-corejs3": ^7.20.7 - "@swagger-api/apidom-ast": ^1.0.0-alpha.9 - "@swagger-api/apidom-core": ^1.0.0-alpha.9 - "@swagger-api/apidom-json-pointer": ^1.0.0-alpha.9 - "@swagger-api/apidom-ns-openapi-3-0": ^1.0.0-alpha.9 + "@swagger-api/apidom-ast": ^1.0.0-beta.5 + "@swagger-api/apidom-core": ^1.0.0-beta.5 + "@swagger-api/apidom-json-pointer": ^1.0.0-beta.5 + "@swagger-api/apidom-ns-openapi-3-0": ^1.0.0-beta.5 "@types/ramda": ~0.30.0 ramda: ~0.30.0 ramda-adjunct: ^5.0.0 ts-mixer: ^6.0.3 - checksum: d92819332525beead1ce85e83976dd3b2a5375005893b92251b2fa288f3b410ceb6dd6ace99d3eefd134e4c26a5cd7e3d8faec9f684e5c366ccb3283f4aa05b3 + checksum: 59352feab47be62c22a38d5cd2b0383f26caa13253c68fe677f0a8eb17a6cc57c20b66a1b5a4fdb1fc63e01e4c3b7f8b910291ca67c14c27d077e4e8db29f23c languageName: node linkType: hard -"@swagger-api/apidom-ns-workflows-1@npm:^1.0.0-alpha.1, @swagger-api/apidom-ns-workflows-1@npm:^1.0.0-alpha.9": - version: 1.0.0-alpha.9 - resolution: "@swagger-api/apidom-ns-workflows-1@npm:1.0.0-alpha.9" +"@swagger-api/apidom-ns-workflows-1@npm:^1.0.0-beta.3 <1.0.0-rc.0, @swagger-api/apidom-ns-workflows-1@npm:^1.0.0-beta.5": + version: 1.0.0-beta.5 + resolution: "@swagger-api/apidom-ns-workflows-1@npm:1.0.0-beta.5" dependencies: "@babel/runtime-corejs3": ^7.20.7 - "@swagger-api/apidom-core": ^1.0.0-alpha.9 - "@swagger-api/apidom-ns-openapi-3-1": ^1.0.0-alpha.9 + "@swagger-api/apidom-core": ^1.0.0-beta.5 + "@swagger-api/apidom-ns-openapi-3-1": ^1.0.0-beta.5 "@types/ramda": ~0.30.0 ramda: ~0.30.0 ramda-adjunct: ^5.0.0 ts-mixer: ^6.0.3 - checksum: e0573385e383270ef770c1a166d9041284841944674f33896293cb5e903a05064a46c27970e1adf59129f7a849d9b23471417d71a3f4df00a934da26fec46361 + checksum: c85afb9154964ba1861285fe7200fecf9d023fcf071a6a393dd51387699c2fbd2a1ecbe357b3adc8525f0cd771a101b25d0df23b55d2c104c7d238859dc084a5 languageName: node linkType: hard -"@swagger-api/apidom-parser-adapter-api-design-systems-json@npm:^1.0.0-alpha.1": - version: 1.0.0-alpha.9 - resolution: "@swagger-api/apidom-parser-adapter-api-design-systems-json@npm:1.0.0-alpha.9" +"@swagger-api/apidom-parser-adapter-api-design-systems-json@npm:^1.0.0-beta.3 <1.0.0-rc.0": + version: 1.0.0-beta.5 + resolution: "@swagger-api/apidom-parser-adapter-api-design-systems-json@npm:1.0.0-beta.5" dependencies: "@babel/runtime-corejs3": ^7.20.7 - "@swagger-api/apidom-core": ^1.0.0-alpha.9 - "@swagger-api/apidom-ns-api-design-systems": ^1.0.0-alpha.9 - "@swagger-api/apidom-parser-adapter-json": ^1.0.0-alpha.9 + "@swagger-api/apidom-core": ^1.0.0-beta.5 + "@swagger-api/apidom-ns-api-design-systems": ^1.0.0-beta.5 + "@swagger-api/apidom-parser-adapter-json": ^1.0.0-beta.5 "@types/ramda": ~0.30.0 ramda: ~0.30.0 ramda-adjunct: ^5.0.0 - checksum: c17d417c3a39635dfc5c3e2e7cb6d42c304e0b2c7666f303ca8ac53b7d3b5590e59d96d05c4c85637d81828763587b5398c1ba0779f860860111275ab4e34e96 + checksum: 9f3f95b58e17738fe615ff03441c33a54b095e6dfb6e52c4d5a6e72927574b1e0c9acec75d52cf7d0159bb4a3766094b21b4950b233174625bd02512b61a6099 languageName: node linkType: hard -"@swagger-api/apidom-parser-adapter-api-design-systems-yaml@npm:^1.0.0-alpha.1": - version: 1.0.0-alpha.9 - resolution: "@swagger-api/apidom-parser-adapter-api-design-systems-yaml@npm:1.0.0-alpha.9" +"@swagger-api/apidom-parser-adapter-api-design-systems-yaml@npm:^1.0.0-beta.3 <1.0.0-rc.0": + version: 1.0.0-beta.5 + resolution: "@swagger-api/apidom-parser-adapter-api-design-systems-yaml@npm:1.0.0-beta.5" dependencies: "@babel/runtime-corejs3": ^7.20.7 - "@swagger-api/apidom-core": ^1.0.0-alpha.9 - "@swagger-api/apidom-ns-api-design-systems": ^1.0.0-alpha.9 - "@swagger-api/apidom-parser-adapter-yaml-1-2": ^1.0.0-alpha.9 + "@swagger-api/apidom-core": ^1.0.0-beta.5 + "@swagger-api/apidom-ns-api-design-systems": ^1.0.0-beta.5 + "@swagger-api/apidom-parser-adapter-yaml-1-2": ^1.0.0-beta.5 "@types/ramda": ~0.30.0 ramda: ~0.30.0 ramda-adjunct: ^5.0.0 - checksum: 3fb5f66282fcb561cc727c209be05c3b086f5413dcca41357f09bc979dd5fdadb442d0cc0974cfdc95df991f6af083504dbecfa869755eec867a769c7d5652bc + checksum: ccc80cdf2fbaceece20fcc3640d6c93018b44282f8df3d125e03b3210c2c6f55776bc5a39b88a03b5bf04f0ef37d983903f79b1a7d2ad44661f69578b90a9d6c languageName: node linkType: hard -"@swagger-api/apidom-parser-adapter-asyncapi-json-2@npm:^1.0.0-alpha.1": - version: 1.0.0-alpha.9 - resolution: "@swagger-api/apidom-parser-adapter-asyncapi-json-2@npm:1.0.0-alpha.9" +"@swagger-api/apidom-parser-adapter-asyncapi-json-2@npm:^1.0.0-beta.3 <1.0.0-rc.0": + version: 1.0.0-beta.5 + resolution: "@swagger-api/apidom-parser-adapter-asyncapi-json-2@npm:1.0.0-beta.5" dependencies: "@babel/runtime-corejs3": ^7.20.7 - "@swagger-api/apidom-core": ^1.0.0-alpha.9 - "@swagger-api/apidom-ns-asyncapi-2": ^1.0.0-alpha.9 - "@swagger-api/apidom-parser-adapter-json": ^1.0.0-alpha.9 + "@swagger-api/apidom-core": ^1.0.0-beta.5 + "@swagger-api/apidom-ns-asyncapi-2": ^1.0.0-beta.5 + "@swagger-api/apidom-parser-adapter-json": ^1.0.0-beta.5 "@types/ramda": ~0.30.0 ramda: ~0.30.0 ramda-adjunct: ^5.0.0 - checksum: bac3b6bf79fbd7f95a0a35935ff4b7a7f305e03257f32ac57ad00c9e942d5141946af943b74878ff5de64b12fca2824abcf3575507bad8379482b15dc812befb + checksum: 8d5e7e1b1a902a608574e9f7ecdf931809f77f75d5b9a6429893894e4eb27de59e838b8de5c6e5cfbc7b9d55937ef86c5d15e6dee2175e312467814afd830e4f languageName: node linkType: hard -"@swagger-api/apidom-parser-adapter-asyncapi-yaml-2@npm:^1.0.0-alpha.1": - version: 1.0.0-alpha.9 - resolution: "@swagger-api/apidom-parser-adapter-asyncapi-yaml-2@npm:1.0.0-alpha.9" +"@swagger-api/apidom-parser-adapter-asyncapi-yaml-2@npm:^1.0.0-beta.3 <1.0.0-rc.0": + version: 1.0.0-beta.5 + resolution: "@swagger-api/apidom-parser-adapter-asyncapi-yaml-2@npm:1.0.0-beta.5" dependencies: "@babel/runtime-corejs3": ^7.20.7 - "@swagger-api/apidom-core": ^1.0.0-alpha.9 - "@swagger-api/apidom-ns-asyncapi-2": ^1.0.0-alpha.9 - "@swagger-api/apidom-parser-adapter-yaml-1-2": ^1.0.0-alpha.9 + "@swagger-api/apidom-core": ^1.0.0-beta.5 + "@swagger-api/apidom-ns-asyncapi-2": ^1.0.0-beta.5 + "@swagger-api/apidom-parser-adapter-yaml-1-2": ^1.0.0-beta.5 "@types/ramda": ~0.30.0 ramda: ~0.30.0 ramda-adjunct: ^5.0.0 - checksum: a17d4fac6818bcae8af5834494c3664ba294f127496583809034fe0ae129a7fed7bc0bd6416d90daa69677677abf6f363fc82a774851c809d0b989c03ca68eaf + checksum: 8c5c60a0ff8cbf728e7b557fc1b1a9ac2f7e509ba46fc67fd32c60b4da5daf1003fa468f88d88b441333bc299c322a24c7bfbc61df0f101334be6debd7cf181a languageName: node linkType: hard -"@swagger-api/apidom-parser-adapter-json@npm:^1.0.0-alpha.1, @swagger-api/apidom-parser-adapter-json@npm:^1.0.0-alpha.9": - version: 1.0.0-alpha.9 - resolution: "@swagger-api/apidom-parser-adapter-json@npm:1.0.0-alpha.9" +"@swagger-api/apidom-parser-adapter-json@npm:^1.0.0-beta.3 <1.0.0-rc.0, @swagger-api/apidom-parser-adapter-json@npm:^1.0.0-beta.5": + version: 1.0.0-beta.5 + resolution: "@swagger-api/apidom-parser-adapter-json@npm:1.0.0-beta.5" dependencies: "@babel/runtime-corejs3": ^7.20.7 - "@swagger-api/apidom-ast": ^1.0.0-alpha.9 - "@swagger-api/apidom-core": ^1.0.0-alpha.9 - "@swagger-api/apidom-error": ^1.0.0-alpha.9 + "@swagger-api/apidom-ast": ^1.0.0-beta.5 + "@swagger-api/apidom-core": ^1.0.0-beta.5 + "@swagger-api/apidom-error": ^1.0.0-beta.5 "@types/ramda": ~0.30.0 node-gyp: latest ramda: ~0.30.0 ramda-adjunct: ^5.0.0 - tree-sitter: =0.20.4 - tree-sitter-json: =0.20.2 - web-tree-sitter: =0.20.3 - checksum: 77c1a7c7dcf12ad4b05aea200a0864c5545235e4aadc5936b51bf8062749f5bdc02479e7ee175b476960e9303556960798e95a566c0e4e3b2fa2d59ac5327173 + tree-sitter: =0.22.1 + tree-sitter-json: =0.24.8 + web-tree-sitter: =0.24.5 + checksum: 9bf5305b54167f9bd76cc0ab617cf1bc2abd140c51ae80febf18f1afd98be53ba1936d5ee0d3e7d7ff6145ba3f4c874eedfece9f8d287a6a7cbb382cc75c528a languageName: node linkType: hard -"@swagger-api/apidom-parser-adapter-openapi-json-2@npm:^1.0.0-alpha.1": - version: 1.0.0-alpha.9 - resolution: "@swagger-api/apidom-parser-adapter-openapi-json-2@npm:1.0.0-alpha.9" +"@swagger-api/apidom-parser-adapter-openapi-json-2@npm:^1.0.0-beta.3 <1.0.0-rc.0": + version: 1.0.0-beta.5 + resolution: "@swagger-api/apidom-parser-adapter-openapi-json-2@npm:1.0.0-beta.5" dependencies: "@babel/runtime-corejs3": ^7.20.7 - "@swagger-api/apidom-core": ^1.0.0-alpha.9 - "@swagger-api/apidom-ns-openapi-2": ^1.0.0-alpha.9 - "@swagger-api/apidom-parser-adapter-json": ^1.0.0-alpha.9 + "@swagger-api/apidom-core": ^1.0.0-beta.5 + "@swagger-api/apidom-ns-openapi-2": ^1.0.0-beta.5 + "@swagger-api/apidom-parser-adapter-json": ^1.0.0-beta.5 "@types/ramda": ~0.30.0 ramda: ~0.30.0 ramda-adjunct: ^5.0.0 - checksum: 38a3c06508dd646921c3b5fa642990ec1b19778f32f949bad2dca0a1d6297b66ab34691a32abf42c7f04d383dd4f09cde17ecff250c2c14d33d3aae66914ce8f + checksum: 7345bf9ff60d0b67c5d84b21a81c55a0e940e4670f5faa31ad9b9a6d5d95aee00fb2fe4fef8d8095b603c65f3d7c020946fb06a8c5a206ae6b8fd70b9b5c2419 languageName: node linkType: hard -"@swagger-api/apidom-parser-adapter-openapi-json-3-0@npm:^1.0.0-alpha.1": - version: 1.0.0-alpha.9 - resolution: "@swagger-api/apidom-parser-adapter-openapi-json-3-0@npm:1.0.0-alpha.9" +"@swagger-api/apidom-parser-adapter-openapi-json-3-0@npm:^1.0.0-beta.3 <1.0.0-rc.0": + version: 1.0.0-beta.5 + resolution: "@swagger-api/apidom-parser-adapter-openapi-json-3-0@npm:1.0.0-beta.5" dependencies: "@babel/runtime-corejs3": ^7.20.7 - "@swagger-api/apidom-core": ^1.0.0-alpha.9 - "@swagger-api/apidom-ns-openapi-3-0": ^1.0.0-alpha.9 - "@swagger-api/apidom-parser-adapter-json": ^1.0.0-alpha.9 + "@swagger-api/apidom-core": ^1.0.0-beta.5 + "@swagger-api/apidom-ns-openapi-3-0": ^1.0.0-beta.5 + "@swagger-api/apidom-parser-adapter-json": ^1.0.0-beta.5 "@types/ramda": ~0.30.0 ramda: ~0.30.0 ramda-adjunct: ^5.0.0 - checksum: ae4874da48842e1804310d23a3b90fd11696f97e363e3b489c14458bcdc8dbaec6429e4beff31ff02562e198722844d9499e6aea111899043f8e01ebac5fff02 + checksum: ddc43ce6bb64555ffe2987654184f8e7854ab012b15ca7e8d21865e5159ba3e83c9d85baafadb48fd8c818062a1e0ad6df0165f45380f4c96debdb41e7d22649 languageName: node linkType: hard -"@swagger-api/apidom-parser-adapter-openapi-json-3-1@npm:^1.0.0-alpha.1": - version: 1.0.0-alpha.9 - resolution: "@swagger-api/apidom-parser-adapter-openapi-json-3-1@npm:1.0.0-alpha.9" +"@swagger-api/apidom-parser-adapter-openapi-json-3-1@npm:^1.0.0-beta.3 <1.0.0-rc.0": + version: 1.0.0-beta.5 + resolution: "@swagger-api/apidom-parser-adapter-openapi-json-3-1@npm:1.0.0-beta.5" dependencies: "@babel/runtime-corejs3": ^7.20.7 - "@swagger-api/apidom-core": ^1.0.0-alpha.9 - "@swagger-api/apidom-ns-openapi-3-1": ^1.0.0-alpha.9 - "@swagger-api/apidom-parser-adapter-json": ^1.0.0-alpha.9 + "@swagger-api/apidom-core": ^1.0.0-beta.5 + "@swagger-api/apidom-ns-openapi-3-1": ^1.0.0-beta.5 + "@swagger-api/apidom-parser-adapter-json": ^1.0.0-beta.5 "@types/ramda": ~0.30.0 ramda: ~0.30.0 ramda-adjunct: ^5.0.0 - checksum: f3dba0060420ce97a297522c702567fbc822ededd7579ee91290bf7d8792bb145ea38c5f04970f88f71001b9fdc7dcbc83d063098bc0346ce6a65bcfc726bde4 + checksum: 82992ead718a43c69f35d90f3842fdee42a4a3ac9ee80739ab4354330f3549c9bae0a60faf8793268e942c46b61b84f32a4d2dc0a225f234b1e6c578d65b8082 languageName: node linkType: hard -"@swagger-api/apidom-parser-adapter-openapi-yaml-2@npm:^1.0.0-alpha.1": - version: 1.0.0-alpha.9 - resolution: "@swagger-api/apidom-parser-adapter-openapi-yaml-2@npm:1.0.0-alpha.9" +"@swagger-api/apidom-parser-adapter-openapi-yaml-2@npm:^1.0.0-beta.3 <1.0.0-rc.0": + version: 1.0.0-beta.5 + resolution: "@swagger-api/apidom-parser-adapter-openapi-yaml-2@npm:1.0.0-beta.5" dependencies: "@babel/runtime-corejs3": ^7.20.7 - "@swagger-api/apidom-core": ^1.0.0-alpha.9 - "@swagger-api/apidom-ns-openapi-2": ^1.0.0-alpha.9 - "@swagger-api/apidom-parser-adapter-yaml-1-2": ^1.0.0-alpha.9 + "@swagger-api/apidom-core": ^1.0.0-beta.5 + "@swagger-api/apidom-ns-openapi-2": ^1.0.0-beta.5 + "@swagger-api/apidom-parser-adapter-yaml-1-2": ^1.0.0-beta.5 "@types/ramda": ~0.30.0 ramda: ~0.30.0 ramda-adjunct: ^5.0.0 - checksum: e302b93d5ac5508bf34983ee57f4f4f85ae47068920067711e607e1225726f58f5afa58708109f641dcb26b6e8182bd7cb7c189d158aec243b78be8b0b781edb + checksum: 6dea1bd388662eb72c66e2dbcf66af12f5d67fad42170d339a5973dad5543ca0c766f1ca9473eb525d53ff23ce3f2c9ef88e5fd3e9330e9d0b416bc6641862dc languageName: node linkType: hard -"@swagger-api/apidom-parser-adapter-openapi-yaml-3-0@npm:^1.0.0-alpha.1": - version: 1.0.0-alpha.9 - resolution: "@swagger-api/apidom-parser-adapter-openapi-yaml-3-0@npm:1.0.0-alpha.9" +"@swagger-api/apidom-parser-adapter-openapi-yaml-3-0@npm:^1.0.0-beta.3 <1.0.0-rc.0": + version: 1.0.0-beta.5 + resolution: "@swagger-api/apidom-parser-adapter-openapi-yaml-3-0@npm:1.0.0-beta.5" dependencies: "@babel/runtime-corejs3": ^7.20.7 - "@swagger-api/apidom-core": ^1.0.0-alpha.9 - "@swagger-api/apidom-ns-openapi-3-0": ^1.0.0-alpha.9 - "@swagger-api/apidom-parser-adapter-yaml-1-2": ^1.0.0-alpha.9 + "@swagger-api/apidom-core": ^1.0.0-beta.5 + "@swagger-api/apidom-ns-openapi-3-0": ^1.0.0-beta.5 + "@swagger-api/apidom-parser-adapter-yaml-1-2": ^1.0.0-beta.5 "@types/ramda": ~0.30.0 ramda: ~0.30.0 ramda-adjunct: ^5.0.0 - checksum: aaeb57369370e426c9f5dc26c0ad95e493e2cfca1e552cfb3d6239868e50f5ab9d7d6607f5b34cd4a4ed6c22e8cc0b2b10bf26b98f497fa521170979153ac0cb + checksum: 732eacbeb5baf8bdddc22c6f14b00740742ef16318e06eefdac49175dbb7887a28cf9e0e6521962d042ea0de45f8fceb8d2858833f46d7773338a8d94cf09d78 languageName: node linkType: hard -"@swagger-api/apidom-parser-adapter-openapi-yaml-3-1@npm:^1.0.0-alpha.1": - version: 1.0.0-alpha.9 - resolution: "@swagger-api/apidom-parser-adapter-openapi-yaml-3-1@npm:1.0.0-alpha.9" +"@swagger-api/apidom-parser-adapter-openapi-yaml-3-1@npm:^1.0.0-beta.3 <1.0.0-rc.0": + version: 1.0.0-beta.5 + resolution: "@swagger-api/apidom-parser-adapter-openapi-yaml-3-1@npm:1.0.0-beta.5" dependencies: "@babel/runtime-corejs3": ^7.20.7 - "@swagger-api/apidom-core": ^1.0.0-alpha.9 - "@swagger-api/apidom-ns-openapi-3-1": ^1.0.0-alpha.9 - "@swagger-api/apidom-parser-adapter-yaml-1-2": ^1.0.0-alpha.9 + "@swagger-api/apidom-core": ^1.0.0-beta.5 + "@swagger-api/apidom-ns-openapi-3-1": ^1.0.0-beta.5 + "@swagger-api/apidom-parser-adapter-yaml-1-2": ^1.0.0-beta.5 "@types/ramda": ~0.30.0 ramda: ~0.30.0 ramda-adjunct: ^5.0.0 - checksum: e25d4d40fa3db206dceba4a1fb4d29c9ced90ec87d5df35c9ec6806ff72a514cea4e0ac2e5c7198f6048b9160e009475b87a465758bc233cd40f88c84dfde39c + checksum: 91bbd995e57664e6661f4abd79ab4666d65597c7deadd559d1716d766927c248e88701917c85176c85b980d25448cdae52233d7e2e9e2a71a2a154a920f49100 languageName: node linkType: hard -"@swagger-api/apidom-parser-adapter-workflows-json-1@npm:^1.0.0-alpha.1": - version: 1.0.0-alpha.9 - resolution: "@swagger-api/apidom-parser-adapter-workflows-json-1@npm:1.0.0-alpha.9" +"@swagger-api/apidom-parser-adapter-workflows-json-1@npm:^1.0.0-beta.3 <1.0.0-rc.0": + version: 1.0.0-beta.5 + resolution: "@swagger-api/apidom-parser-adapter-workflows-json-1@npm:1.0.0-beta.5" dependencies: "@babel/runtime-corejs3": ^7.20.7 - "@swagger-api/apidom-core": ^1.0.0-alpha.9 - "@swagger-api/apidom-ns-workflows-1": ^1.0.0-alpha.9 - "@swagger-api/apidom-parser-adapter-json": ^1.0.0-alpha.9 + "@swagger-api/apidom-core": ^1.0.0-beta.5 + "@swagger-api/apidom-ns-workflows-1": ^1.0.0-beta.5 + "@swagger-api/apidom-parser-adapter-json": ^1.0.0-beta.5 "@types/ramda": ~0.30.0 ramda: ~0.30.0 ramda-adjunct: ^5.0.0 - checksum: b16d831652946fd4a53cb2d0c549d6e2d9c7227ce617bd4f28f50d072e370369e6067d1e534ff8e88508d20ed61d9e8466e49fcc853e250bc75d1833b2da7efd + checksum: 8d8fc6f59daa023d4f1cdb10264f211d950d10193cbe655f14090a6951475f3f0445f969c042865c995238dfaea070c443f239fbbc6fca321926741455150fc4 languageName: node linkType: hard -"@swagger-api/apidom-parser-adapter-workflows-yaml-1@npm:^1.0.0-alpha.1": - version: 1.0.0-alpha.9 - resolution: "@swagger-api/apidom-parser-adapter-workflows-yaml-1@npm:1.0.0-alpha.9" +"@swagger-api/apidom-parser-adapter-workflows-yaml-1@npm:^1.0.0-beta.3 <1.0.0-rc.0": + version: 1.0.0-beta.5 + resolution: "@swagger-api/apidom-parser-adapter-workflows-yaml-1@npm:1.0.0-beta.5" dependencies: "@babel/runtime-corejs3": ^7.20.7 - "@swagger-api/apidom-core": ^1.0.0-alpha.9 - "@swagger-api/apidom-ns-workflows-1": ^1.0.0-alpha.9 - "@swagger-api/apidom-parser-adapter-yaml-1-2": ^1.0.0-alpha.9 + "@swagger-api/apidom-core": ^1.0.0-beta.5 + "@swagger-api/apidom-ns-workflows-1": ^1.0.0-beta.5 + "@swagger-api/apidom-parser-adapter-yaml-1-2": ^1.0.0-beta.5 "@types/ramda": ~0.30.0 ramda: ~0.30.0 ramda-adjunct: ^5.0.0 - checksum: f7d88d3932b7058f7124cb0c465214ea6154a64729d3af200f825922f5ffd99287f5ee5a5173eaa6d4b14b10c820c3e59d715f3883944308b6d5e024112596e6 + checksum: 5992747478d8e6b7f09894a58edad2063a8f6eca3c7ee5b2af399dcc5b0a5d7d01d0555eb02f47556e3299a3e59c9ac029c7c7f2217474dcac2eb9090f9ebd40 languageName: node linkType: hard -"@swagger-api/apidom-parser-adapter-yaml-1-2@npm:^1.0.0-alpha.1, @swagger-api/apidom-parser-adapter-yaml-1-2@npm:^1.0.0-alpha.9": - version: 1.0.0-alpha.9 - resolution: "@swagger-api/apidom-parser-adapter-yaml-1-2@npm:1.0.0-alpha.9" +"@swagger-api/apidom-parser-adapter-yaml-1-2@npm:^1.0.0-beta.3 <1.0.0-rc.0, @swagger-api/apidom-parser-adapter-yaml-1-2@npm:^1.0.0-beta.5": + version: 1.0.0-beta.5 + resolution: "@swagger-api/apidom-parser-adapter-yaml-1-2@npm:1.0.0-beta.5" dependencies: "@babel/runtime-corejs3": ^7.20.7 - "@swagger-api/apidom-ast": ^1.0.0-alpha.9 - "@swagger-api/apidom-core": ^1.0.0-alpha.9 - "@swagger-api/apidom-error": ^1.0.0-alpha.9 + "@swagger-api/apidom-ast": ^1.0.0-beta.5 + "@swagger-api/apidom-core": ^1.0.0-beta.5 + "@swagger-api/apidom-error": ^1.0.0-beta.5 + "@tree-sitter-grammars/tree-sitter-yaml": =0.7.0 "@types/ramda": ~0.30.0 node-gyp: latest ramda: ~0.30.0 ramda-adjunct: ^5.0.0 - tree-sitter: =0.20.4 - tree-sitter-yaml: =0.5.0 - web-tree-sitter: =0.20.3 - checksum: 1485597a7ab952f434fe1056ffdc3ce6ed861f0c087fb342c3fec094fe4bf63ea65cb13d9545d630cd4964ffdbdb914f6c415d7b6a0e577d410d53f96c7c3690 + tree-sitter: =0.22.1 + web-tree-sitter: =0.24.5 + checksum: 3bcfd8d08239d2cabb46f6c639f11d7175729caa059b1c439be7b95edaa5b7b54593e3e2e630de3267db6c0da1a5955204c127fa9aac82892650a444c19ed54f languageName: node linkType: hard -"@swagger-api/apidom-reference@npm:>=1.0.0-alpha.9 <1.0.0-beta.0": - version: 1.0.0-alpha.9 - resolution: "@swagger-api/apidom-reference@npm:1.0.0-alpha.9" +"@swagger-api/apidom-reference@npm:>=1.0.0-beta.3 <1.0.0-rc.0": + version: 1.0.0-beta.5 + resolution: "@swagger-api/apidom-reference@npm:1.0.0-beta.5" dependencies: "@babel/runtime-corejs3": ^7.20.7 - "@swagger-api/apidom-core": ^1.0.0-alpha.9 - "@swagger-api/apidom-error": ^1.0.0-alpha.1 - "@swagger-api/apidom-json-pointer": ^1.0.0-alpha.1 - "@swagger-api/apidom-ns-asyncapi-2": ^1.0.0-alpha.1 - "@swagger-api/apidom-ns-openapi-2": ^1.0.0-alpha.1 - "@swagger-api/apidom-ns-openapi-3-0": ^1.0.0-alpha.1 - "@swagger-api/apidom-ns-openapi-3-1": ^1.0.0-alpha.1 - "@swagger-api/apidom-ns-workflows-1": ^1.0.0-alpha.1 - "@swagger-api/apidom-parser-adapter-api-design-systems-json": ^1.0.0-alpha.1 - "@swagger-api/apidom-parser-adapter-api-design-systems-yaml": ^1.0.0-alpha.1 - "@swagger-api/apidom-parser-adapter-asyncapi-json-2": ^1.0.0-alpha.1 - "@swagger-api/apidom-parser-adapter-asyncapi-yaml-2": ^1.0.0-alpha.1 - "@swagger-api/apidom-parser-adapter-json": ^1.0.0-alpha.1 - "@swagger-api/apidom-parser-adapter-openapi-json-2": ^1.0.0-alpha.1 - "@swagger-api/apidom-parser-adapter-openapi-json-3-0": ^1.0.0-alpha.1 - "@swagger-api/apidom-parser-adapter-openapi-json-3-1": ^1.0.0-alpha.1 - "@swagger-api/apidom-parser-adapter-openapi-yaml-2": ^1.0.0-alpha.1 - "@swagger-api/apidom-parser-adapter-openapi-yaml-3-0": ^1.0.0-alpha.1 - "@swagger-api/apidom-parser-adapter-openapi-yaml-3-1": ^1.0.0-alpha.1 - "@swagger-api/apidom-parser-adapter-workflows-json-1": ^1.0.0-alpha.1 - "@swagger-api/apidom-parser-adapter-workflows-yaml-1": ^1.0.0-alpha.1 - "@swagger-api/apidom-parser-adapter-yaml-1-2": ^1.0.0-alpha.1 + "@swagger-api/apidom-core": ^1.0.0-beta.5 + "@swagger-api/apidom-error": ^1.0.0-beta.3 <1.0.0-rc.0 + "@swagger-api/apidom-json-pointer": ^1.0.0-beta.3 <1.0.0-rc.0 + "@swagger-api/apidom-ns-asyncapi-2": ^1.0.0-beta.3 <1.0.0-rc.0 + "@swagger-api/apidom-ns-openapi-2": ^1.0.0-beta.3 <1.0.0-rc.0 + "@swagger-api/apidom-ns-openapi-3-0": ^1.0.0-beta.3 <1.0.0-rc.0 + "@swagger-api/apidom-ns-openapi-3-1": ^1.0.0-beta.3 <1.0.0-rc.0 + "@swagger-api/apidom-ns-workflows-1": ^1.0.0-beta.3 <1.0.0-rc.0 + "@swagger-api/apidom-parser-adapter-api-design-systems-json": ^1.0.0-beta.3 <1.0.0-rc.0 + "@swagger-api/apidom-parser-adapter-api-design-systems-yaml": ^1.0.0-beta.3 <1.0.0-rc.0 + "@swagger-api/apidom-parser-adapter-asyncapi-json-2": ^1.0.0-beta.3 <1.0.0-rc.0 + "@swagger-api/apidom-parser-adapter-asyncapi-yaml-2": ^1.0.0-beta.3 <1.0.0-rc.0 + "@swagger-api/apidom-parser-adapter-json": ^1.0.0-beta.3 <1.0.0-rc.0 + "@swagger-api/apidom-parser-adapter-openapi-json-2": ^1.0.0-beta.3 <1.0.0-rc.0 + "@swagger-api/apidom-parser-adapter-openapi-json-3-0": ^1.0.0-beta.3 <1.0.0-rc.0 + "@swagger-api/apidom-parser-adapter-openapi-json-3-1": ^1.0.0-beta.3 <1.0.0-rc.0 + "@swagger-api/apidom-parser-adapter-openapi-yaml-2": ^1.0.0-beta.3 <1.0.0-rc.0 + "@swagger-api/apidom-parser-adapter-openapi-yaml-3-0": ^1.0.0-beta.3 <1.0.0-rc.0 + "@swagger-api/apidom-parser-adapter-openapi-yaml-3-1": ^1.0.0-beta.3 <1.0.0-rc.0 + "@swagger-api/apidom-parser-adapter-workflows-json-1": ^1.0.0-beta.3 <1.0.0-rc.0 + "@swagger-api/apidom-parser-adapter-workflows-yaml-1": ^1.0.0-beta.3 <1.0.0-rc.0 + "@swagger-api/apidom-parser-adapter-yaml-1-2": ^1.0.0-beta.3 <1.0.0-rc.0 "@types/ramda": ~0.30.0 - axios: ^1.4.0 + axios: ^1.7.4 minimatch: ^7.4.3 process: ^0.11.10 ramda: ~0.30.0 @@ -3543,7 +3543,7 @@ __metadata: optional: true "@swagger-api/apidom-parser-adapter-yaml-1-2": optional: true - checksum: 28c329359a92b34471a3f796b89a88405c8e998622e786193402668a5f4cdb3da5273b86ef9e209f3d0ab750d221fd9046d481751dff3bbcc2e32e0b748ec34c + checksum: 990d7bf29a5e18f21534149a38c7ae2fc8a0a040cca20c7aea4d241e3b0551e48af1d32d560ef8b80edd80b5369d0a1b7cb7a7a49aa089d984f535058381314a languageName: node linkType: hard @@ -3561,6 +3561,22 @@ __metadata: languageName: node linkType: hard +"@tree-sitter-grammars/tree-sitter-yaml@npm:=0.7.0": + version: 0.7.0 + resolution: "@tree-sitter-grammars/tree-sitter-yaml@npm:0.7.0" + dependencies: + node-addon-api: ^8.3.0 + node-gyp: latest + node-gyp-build: ^4.8.4 + peerDependencies: + tree-sitter: ^0.22.1 + peerDependenciesMeta: + tree-sitter: + optional: true + checksum: e1483d30b3f7604b111a86f854522a5dc880f2d7fb552150628f5186063fb537631d696fc1713da040a6d4bbac8fbf8b4a7eb5cb1d72d1cfb72af1f849899961 + languageName: node + linkType: hard + "@trysound/sax@npm:0.2.0": version: 0.2.0 resolution: "@trysound/sax@npm:0.2.0" @@ -4285,7 +4301,7 @@ __metadata: languageName: node linkType: hard -"axios@npm:^1.4.0, axios@npm:^1.7.7": +"axios@npm:^1.7.4, axios@npm:^1.7.7": version: 1.7.7 resolution: "axios@npm:1.7.7" dependencies: @@ -4389,7 +4405,7 @@ __metadata: languageName: node linkType: hard -"base64-js@npm:^1.3.0, base64-js@npm:^1.3.1": +"base64-js@npm:^1.3.0": version: 1.5.1 resolution: "base64-js@npm:1.5.1" checksum: 669632eb3745404c2f822a18fc3a0122d2f9a7a13f7fb8b5823ee19d1d2ff9ee5b52c53367176ea4ad093c332fd5ab4bd0ebae5a8e27917a4105a4cfc86b1005 @@ -4440,17 +4456,6 @@ __metadata: languageName: node linkType: hard -"bl@npm:^4.0.3": - version: 4.1.0 - resolution: "bl@npm:4.1.0" - dependencies: - buffer: ^5.5.0 - inherits: ^2.0.4 - readable-stream: ^3.4.0 - checksum: 9e8521fa7e83aa9427c6f8ccdcba6e8167ef30cc9a22df26effcc5ab682ef91d2cbc23a239f945d099289e4bbcfae7a192e9c28c84c6202e710a0dfec3722662 - languageName: node - linkType: hard - "bluebird@npm:^3.7.2": version: 3.7.2 resolution: "bluebird@npm:3.7.2" @@ -4573,16 +4578,6 @@ __metadata: languageName: node linkType: hard -"buffer@npm:^5.5.0": - version: 5.7.1 - resolution: "buffer@npm:5.7.1" - dependencies: - base64-js: ^1.3.1 - ieee754: ^1.1.13 - checksum: e2cf8429e1c4c7b8cbd30834ac09bd61da46ce35f5c22a78e6c2f04497d6d25541b16881e30a019c6fd3154150650ccee27a308eff3e26229d788bbdeb08ab84 - languageName: node - linkType: hard - "builtin-status-codes@npm:^3.0.0": version: 3.0.0 resolution: "builtin-status-codes@npm:3.0.0" @@ -4738,13 +4733,6 @@ __metadata: languageName: node linkType: hard -"chownr@npm:^1.1.1": - version: 1.1.4 - resolution: "chownr@npm:1.1.4" - checksum: 115648f8eb38bac5e41c3857f3e663f9c39ed6480d1349977c4d96c95a47266fcacc5a5aabf3cb6c481e22d72f41992827db47301851766c4fd77ac21a4f081d - languageName: node - linkType: hard - "chownr@npm:^2.0.0": version: 2.0.0 resolution: "chownr@npm:2.0.0" @@ -4987,9 +4975,9 @@ __metadata: linkType: hard "core-js-pure@npm:^3.30.2": - version: 3.38.1 - resolution: "core-js-pure@npm:3.38.1" - checksum: 95ca2e75df371571b0d41cba81e1f6335a2ba1f080e80f8edfa124ad3041880fe72e10f2144527a700a3d993dbf9f7cada3e04a927a66604bc49d0c4951567fb + version: 3.39.0 + resolution: "core-js-pure@npm:3.39.0" + checksum: cdcb1eec4eb9308fcf5cfe18a95322c388b05c11e66b5b0ac296a08f8f2106b458ecfe8aca0155d62ed2c5e150485b68073937e7b0a563fbc287563c4475a7c1 languageName: node linkType: hard @@ -5148,15 +5136,6 @@ __metadata: languageName: node linkType: hard -"decompress-response@npm:^6.0.0": - version: 6.0.0 - resolution: "decompress-response@npm:6.0.0" - dependencies: - mimic-response: ^3.1.0 - checksum: d377cf47e02d805e283866c3f50d3d21578b779731e8c5072d6ce8c13cc31493db1c2f6784da9d1d5250822120cefa44f1deab112d5981015f2e17444b763812 - languageName: node - linkType: hard - "dedent@npm:^1.0.0": version: 1.5.3 resolution: "dedent@npm:1.5.3" @@ -5169,13 +5148,6 @@ __metadata: languageName: node linkType: hard -"deep-extend@npm:^0.6.0": - version: 0.6.0 - resolution: "deep-extend@npm:0.6.0" - checksum: 7be7e5a8d468d6b10e6a67c3de828f55001b6eb515d014f7aeb9066ce36bd5717161eb47d6a0f7bed8a9083935b465bc163ee2581c8b128d29bf61092fdf57a7 - languageName: node - linkType: hard - "deep-is@npm:~0.1.3": version: 0.1.4 resolution: "deep-is@npm:0.1.4" @@ -5649,13 +5621,6 @@ __metadata: languageName: node linkType: hard -"expand-template@npm:^2.0.3": - version: 2.0.3 - resolution: "expand-template@npm:2.0.3" - checksum: 588c19847216421ed92befb521767b7018dc88f88b0576df98cb242f20961425e96a92cbece525ef28cc5becceae5d544ae0f5b9b5e2aa05acb13716ca5b3099 - languageName: node - linkType: hard - "expect@npm:^29.0.0, expect@npm:^29.7.0": version: 29.7.0 resolution: "expect@npm:29.7.0" @@ -5977,13 +5942,6 @@ __metadata: languageName: node linkType: hard -"fs-constants@npm:^1.0.0": - version: 1.0.0 - resolution: "fs-constants@npm:1.0.0" - checksum: 18f5b718371816155849475ac36c7d0b24d39a11d91348cfcb308b4494824413e03572c403c86d3a260e049465518c4f0d5bd00f0371cdfcad6d4f30a85b350d - languageName: node - linkType: hard - "fs-extra@npm:^8.1.0": version: 8.1.0 resolution: "fs-extra@npm:8.1.0" @@ -6203,13 +6161,6 @@ __metadata: languageName: node linkType: hard -"github-from-package@npm:0.0.0": - version: 0.0.0 - resolution: "github-from-package@npm:0.0.0" - checksum: 14e448192a35c1e42efee94c9d01a10f42fe790375891a24b25261246ce9336ab9df5d274585aedd4568f7922246c2a78b8a8cd2571bfe99c693a9718e7dd0e3 - languageName: node - linkType: hard - "glob-parent@npm:~5.1.2": version: 5.1.2 resolution: "glob-parent@npm:5.1.2" @@ -6567,13 +6518,6 @@ __metadata: languageName: node linkType: hard -"ieee754@npm:^1.1.13": - version: 1.2.1 - resolution: "ieee754@npm:1.2.1" - checksum: 5144c0c9815e54ada181d80a0b810221a253562422e7c6c3a60b1901154184f49326ec239d618c416c1c5945a2e197107aee8d986a3dd836b53dffefd99b5e7e - languageName: node - linkType: hard - "ignore-by-default@npm:^1.0.1": version: 1.0.1 resolution: "ignore-by-default@npm:1.0.1" @@ -6624,20 +6568,13 @@ __metadata: languageName: node linkType: hard -"inherits@npm:2, inherits@npm:2.0.4, inherits@npm:^2.0.1, inherits@npm:^2.0.3, inherits@npm:^2.0.4, inherits@npm:~2.0.1, inherits@npm:~2.0.3": +"inherits@npm:2, inherits@npm:2.0.4, inherits@npm:^2.0.1, inherits@npm:^2.0.3, inherits@npm:~2.0.1, inherits@npm:~2.0.3": version: 2.0.4 resolution: "inherits@npm:2.0.4" checksum: 4a48a733847879d6cf6691860a6b1e3f0f4754176e4d71494c41f3475553768b10f84b5ce1d40fbd0e34e6bfbb864ee35858ad4dd2cf31e02fc4a154b724d7f1 languageName: node linkType: hard -"ini@npm:~1.3.0": - version: 1.3.8 - resolution: "ini@npm:1.3.8" - checksum: dfd98b0ca3a4fc1e323e38a6c8eb8936e31a97a918d3b377649ea15bdb15d481207a0dda1021efbd86b464cae29a0d33c1d7dcaf6c5672bee17fa849bc50a1b3 - languageName: node - linkType: hard - "intl-messageformat@npm:^10.2.1": version: 10.6.0 resolution: "intl-messageformat@npm:10.6.0" @@ -7780,7 +7717,7 @@ __metadata: proxy-agent: ^5.0.0 stylis: ^4.3.0 svgo: ^3.0.2 - swagger-client: ^3.31.0 + swagger-client: ^3.32.2 ts-jest: ^29.0.3 ts-node: ^10.9.1 typescript: ^4.9.3 @@ -8046,13 +7983,6 @@ __metadata: languageName: node linkType: hard -"mimic-response@npm:^3.1.0": - version: 3.1.0 - resolution: "mimic-response@npm:3.1.0" - checksum: 25739fee32c17f433626bf19f016df9036b75b3d84a3046c7d156e72ec963dd29d7fc8a302f55a3d6c5a4ff24259676b15d915aad6480815a969ff2ec0836867 - languageName: node - linkType: hard - "minim@npm:~0.23.8": version: 0.23.8 resolution: "minim@npm:0.23.8" @@ -8098,7 +8028,7 @@ __metadata: languageName: node linkType: hard -"minimist@npm:^1.1.0, minimist@npm:^1.2.0, minimist@npm:^1.2.3, minimist@npm:^1.2.6": +"minimist@npm:^1.1.0, minimist@npm:^1.2.6": version: 1.2.8 resolution: "minimist@npm:1.2.8" checksum: 75a6d645fb122dad29c06a7597bddea977258957ed88d7a6df59b5cd3fe4a527e253e9bbf2e783e4b73657f9098b96a5fe96ab8a113655d4109108577ecf85b0 @@ -8223,13 +8153,6 @@ __metadata: languageName: node linkType: hard -"mkdirp-classic@npm:^0.5.2, mkdirp-classic@npm:^0.5.3": - version: 0.5.3 - resolution: "mkdirp-classic@npm:0.5.3" - checksum: 3f4e088208270bbcc148d53b73e9a5bd9eef05ad2cbf3b3d0ff8795278d50dd1d11a8ef1875ff5aea3fa888931f95bfcb2ad5b7c1061cfefd6284d199e6776ac - languageName: node - linkType: hard - "mkdirp@npm:^0.5.1": version: 0.5.6 resolution: "mkdirp@npm:0.5.6" @@ -8315,22 +8238,6 @@ __metadata: languageName: node linkType: hard -"nan@npm:^2.14.0, nan@npm:^2.17.0, nan@npm:^2.18.0": - version: 2.20.0 - resolution: "nan@npm:2.20.0" - dependencies: - node-gyp: latest - checksum: eb09286e6c238a3582db4d88c875db73e9b5ab35f60306090acd2f3acae21696c9b653368b4a0e32abcef64ee304a923d6223acaddd16169e5eaaf5c508fb533 - languageName: node - linkType: hard - -"napi-build-utils@npm:^1.0.1": - version: 1.0.2 - resolution: "napi-build-utils@npm:1.0.2" - checksum: 06c14271ee966e108d55ae109f340976a9556c8603e888037145d6522726aebe89dd0c861b4b83947feaf6d39e79e08817559e8693deedc2c94e82c5cbd090c7 - languageName: node - linkType: hard - "natural-compare@npm:^1.4.0": version: 1.4.0 resolution: "natural-compare@npm:1.4.0" @@ -8377,15 +8284,6 @@ __metadata: languageName: node linkType: hard -"node-abi@npm:^3.3.0": - version: 3.68.0 - resolution: "node-abi@npm:3.68.0" - dependencies: - semver: ^7.3.5 - checksum: ca9ccc4fe985b170c6032b0f489a5df8d6717bdede0f75344808d7e41506e28970e2c9c9b5f8c8f6078992d5767aa6623eac29734075f3a36cc5e6bb40f904ce - languageName: node - linkType: hard - "node-abort-controller@npm:^3.1.1": version: 3.1.1 resolution: "node-abort-controller@npm:3.1.1" @@ -8402,6 +8300,15 @@ __metadata: languageName: node linkType: hard +"node-addon-api@npm:^8.2.1, node-addon-api@npm:^8.2.2, node-addon-api@npm:^8.3.0": + version: 8.3.0 + resolution: "node-addon-api@npm:8.3.0" + dependencies: + node-gyp: latest + checksum: 87fd087f0887e91c5608ac3c99e3f374403074c9cff2c335b061b0c68a183e4cd561fb9a8b0a583f0145c9b7753180b2be0c232ef01bb97796ccf4486c87958a + languageName: node + linkType: hard + "node-domexception@npm:1.0.0, node-domexception@npm:^1.0.0": version: 1.0.0 resolution: "node-domexception@npm:1.0.0" @@ -8450,6 +8357,17 @@ __metadata: languageName: node linkType: hard +"node-gyp-build@npm:^4.8.2, node-gyp-build@npm:^4.8.4": + version: 4.8.4 + resolution: "node-gyp-build@npm:4.8.4" + bin: + node-gyp-build: bin.js + node-gyp-build-optional: optional.js + node-gyp-build-test: build-test.js + checksum: 8b81ca8ffd5fa257ad8d067896d07908a36918bc84fb04647af09d92f58310def2d2b8614d8606d129d9cd9b48890a5d2bec18abe7fcff54818f72bedd3a7d74 + languageName: node + linkType: hard + "node-gyp@npm:^9.3.0": version: 9.4.1 resolution: "node-gyp@npm:9.4.1" @@ -9012,28 +8930,6 @@ __metadata: languageName: node linkType: hard -"prebuild-install@npm:^7.1.1": - version: 7.1.2 - resolution: "prebuild-install@npm:7.1.2" - dependencies: - detect-libc: ^2.0.0 - expand-template: ^2.0.3 - github-from-package: 0.0.0 - minimist: ^1.2.3 - mkdirp-classic: ^0.5.3 - napi-build-utils: ^1.0.1 - node-abi: ^3.3.0 - pump: ^3.0.0 - rc: ^1.2.7 - simple-get: ^4.0.0 - tar-fs: ^2.0.0 - tunnel-agent: ^0.6.0 - bin: - prebuild-install: bin.js - checksum: 543dadf8c60e004ae9529e6013ca0cbeac8ef38b5f5ba5518cb0b622fe7f8758b34e4b5cb1a791db3cdc9d2281766302df6088bd1a225f206925d6fee17d6c5c - languageName: node - linkType: hard - "prelude-ls@npm:~1.1.2": version: 1.1.2 resolution: "prelude-ls@npm:1.1.2" @@ -9276,20 +9172,6 @@ __metadata: languageName: node linkType: hard -"rc@npm:^1.2.7": - version: 1.2.8 - resolution: "rc@npm:1.2.8" - dependencies: - deep-extend: ^0.6.0 - ini: ~1.3.0 - minimist: ^1.2.0 - strip-json-comments: ~2.0.1 - bin: - rc: ./cli.js - checksum: 2e26e052f8be2abd64e6d1dabfbd7be03f80ec18ccbc49562d31f617d0015fbdbcf0f9eed30346ea6ab789e0fdfe4337f033f8016efdbee0df5354751842080e - languageName: node - linkType: hard - "react-is@npm:^18.0.0": version: 18.3.1 resolution: "react-is@npm:18.3.1" @@ -9324,7 +9206,7 @@ __metadata: languageName: node linkType: hard -"readable-stream@npm:^3.1.1, readable-stream@npm:^3.4.0, readable-stream@npm:^3.6.0": +"readable-stream@npm:^3.1.1, readable-stream@npm:^3.6.0": version: 3.6.2 resolution: "readable-stream@npm:3.6.2" dependencies: @@ -9683,24 +9565,6 @@ __metadata: languageName: node linkType: hard -"simple-concat@npm:^1.0.0": - version: 1.0.1 - resolution: "simple-concat@npm:1.0.1" - checksum: 4d211042cc3d73a718c21ac6c4e7d7a0363e184be6a5ad25c8a1502e49df6d0a0253979e3d50dbdd3f60ef6c6c58d756b5d66ac1e05cda9cacd2e9fc59e3876a - languageName: node - linkType: hard - -"simple-get@npm:^4.0.0": - version: 4.0.1 - resolution: "simple-get@npm:4.0.1" - dependencies: - decompress-response: ^6.0.0 - once: ^1.3.1 - simple-concat: ^1.0.0 - checksum: e4132fd27cf7af230d853fa45c1b8ce900cb430dd0a3c6d3829649fe4f2b26574c803698076c4006450efb0fad2ba8c5455fbb5755d4b0a5ec42d4f12b31d27e - languageName: node - linkType: hard - "simple-update-notifier@npm:^1.0.7": version: 1.1.0 resolution: "simple-update-notifier@npm:1.1.0" @@ -10010,13 +9874,6 @@ __metadata: languageName: node linkType: hard -"strip-json-comments@npm:~2.0.1": - version: 2.0.1 - resolution: "strip-json-comments@npm:2.0.1" - checksum: 1074ccb63270d32ca28edfb0a281c96b94dc679077828135141f27d52a5a398ef5e78bcf22809d23cadc2b81dfbe345eb5fd8699b385c8b1128907dec4a7d1e1 - languageName: node - linkType: hard - "strnum@npm:^1.0.5": version: 1.0.5 resolution: "strnum@npm:1.0.5" @@ -10089,17 +9946,17 @@ __metadata: languageName: node linkType: hard -"swagger-client@npm:^3.31.0": - version: 3.31.0 - resolution: "swagger-client@npm:3.31.0" +"swagger-client@npm:^3.32.2": + version: 3.32.2 + resolution: "swagger-client@npm:3.32.2" dependencies: "@babel/runtime-corejs3": ^7.22.15 "@scarf/scarf": =1.4.0 - "@swagger-api/apidom-core": ">=1.0.0-alpha.9 <1.0.0-beta.0" - "@swagger-api/apidom-error": ">=1.0.0-alpha.9 <1.0.0-beta.0" - "@swagger-api/apidom-json-pointer": ">=1.0.0-alpha.9 <1.0.0-beta.0" - "@swagger-api/apidom-ns-openapi-3-1": ">=1.0.0-alpha.9 <1.0.0-beta.0" - "@swagger-api/apidom-reference": ">=1.0.0-alpha.9 <1.0.0-beta.0" + "@swagger-api/apidom-core": ">=1.0.0-beta.3 <1.0.0-rc.0" + "@swagger-api/apidom-error": ">=1.0.0-beta.3 <1.0.0-rc.0" + "@swagger-api/apidom-json-pointer": ">=1.0.0-beta.3 <1.0.0-rc.0" + "@swagger-api/apidom-ns-openapi-3-1": ">=1.0.0-beta.3 <1.0.0-rc.0" + "@swagger-api/apidom-reference": ">=1.0.0-beta.3 <1.0.0-rc.0" cookie: ~0.7.2 deepmerge: ~4.3.0 fast-json-patch: ^3.0.0-1 @@ -10111,32 +9968,7 @@ __metadata: openapi-server-url-templating: ^1.0.0 ramda: ^0.30.1 ramda-adjunct: ^5.0.0 - checksum: 86b414dda317d5e9ca6efac8c04355016106e9e637b9b0bfb7a27c43f4b14e18a18c93ac108798ecc0e00c1937036f79fe103b98f551ef1e24fd54e0c3b756b0 - languageName: node - linkType: hard - -"tar-fs@npm:^2.0.0": - version: 2.1.1 - resolution: "tar-fs@npm:2.1.1" - dependencies: - chownr: ^1.1.1 - mkdirp-classic: ^0.5.2 - pump: ^3.0.0 - tar-stream: ^2.1.4 - checksum: f5b9a70059f5b2969e65f037b4e4da2daf0fa762d3d232ffd96e819e3f94665dbbbe62f76f084f1acb4dbdcce16c6e4dac08d12ffc6d24b8d76720f4d9cf032d - languageName: node - linkType: hard - -"tar-stream@npm:^2.1.4": - version: 2.2.0 - resolution: "tar-stream@npm:2.2.0" - dependencies: - bl: ^4.0.3 - end-of-stream: ^1.4.1 - fs-constants: ^1.0.0 - inherits: ^2.0.3 - readable-stream: ^3.1.1 - checksum: 699831a8b97666ef50021c767f84924cfee21c142c2eb0e79c63254e140e6408d6d55a065a2992548e72b06de39237ef2b802b99e3ece93ca3904a37622a66f3 + checksum: 38c85d64a0a1e9f1e1ba44cae3a6894c7a9d0a93130e3a73095f9d2060902f8218282016c60663f17bf3c80871714e29c54383c695f2ee7e3eef6abb879c2992 languageName: node linkType: hard @@ -10311,34 +10143,30 @@ __metadata: languageName: node linkType: hard -"tree-sitter-json@npm:=0.20.2": - version: 0.20.2 - resolution: "tree-sitter-json@npm:0.20.2" - dependencies: - nan: ^2.18.0 - node-gyp: latest - checksum: 4f5eba7fc86855d15510647e3e5803ea05a8cd5ab2a2a25c8d173a103ca02a6cc25b4cc925b3d234e31e6180f7eed4a50351d39e2c5254b06d6dd0fabeb6c3d8 - languageName: node - linkType: hard - -"tree-sitter-yaml@npm:=0.5.0": - version: 0.5.0 - resolution: "tree-sitter-yaml@npm:0.5.0" +"tree-sitter-json@npm:=0.24.8": + version: 0.24.8 + resolution: "tree-sitter-json@npm:0.24.8" dependencies: - nan: ^2.14.0 + node-addon-api: ^8.2.2 node-gyp: latest - checksum: 7962aea3784dd67098daff4ae984145189eb49b8f981f5a9e72bac97b77859a75030580d199712d671cdced5326599192b3549a428e162e9858a3bbb4cb2fff6 + node-gyp-build: ^4.8.2 + peerDependencies: + tree-sitter: ^0.21.1 + peerDependenciesMeta: + tree-sitter: + optional: true + checksum: 740f3483a5b2dbd8b439f4b409994187029a0a26f2b8609dbad3b4405c9005f1134a813d461793d5628a593fbd7df04ecf366a917dfcd32790292e8526b5a4df languageName: node linkType: hard -"tree-sitter@npm:=0.20.4": - version: 0.20.4 - resolution: "tree-sitter@npm:0.20.4" +"tree-sitter@npm:=0.22.1": + version: 0.22.1 + resolution: "tree-sitter@npm:0.22.1" dependencies: - nan: ^2.17.0 + node-addon-api: ^8.2.1 node-gyp: latest - prebuild-install: ^7.1.1 - checksum: 724f9773759a6ece317fff08deef2d2c63a6ea3b4f6723d5d6d56a7a886d27f799641d189d616c121a580e8492992bc2ede8d2e5c4241f30ff4ee9036dc6bb92 + node-gyp-build: ^4.8.2 + checksum: b6bf557dd7b5f7ea477d6e8254fdb4cfba0c2db6850a2c39fbb1ae86012b9b4a09fbc2583a79793fbe31b248ac8912047b2cedc7504e17934369ecdf1bba67d4 languageName: node linkType: hard @@ -10438,15 +10266,6 @@ __metadata: languageName: node linkType: hard -"tunnel-agent@npm:^0.6.0": - version: 0.6.0 - resolution: "tunnel-agent@npm:0.6.0" - dependencies: - safe-buffer: ^5.0.1 - checksum: 05f6510358f8afc62a057b8b692f05d70c1782b70db86d6a1e0d5e28a32389e52fa6e7707b6c5ecccacc031462e4bc35af85ecfe4bbc341767917b7cf6965711 - languageName: node - linkType: hard - "type-check@npm:~0.3.2": version: 0.3.2 resolution: "type-check@npm:0.3.2" @@ -10763,10 +10582,10 @@ __metadata: languageName: node linkType: hard -"web-tree-sitter@npm:=0.20.3": - version: 0.20.3 - resolution: "web-tree-sitter@npm:0.20.3" - checksum: 1187b48d69d6f6319c74ca8f413e8d7c1703869a351070053351ef169c045aad16e5c6b2a73779beaade2f0b6bb3433166363355c9d02e9b2dcf60a195dbffdb +"web-tree-sitter@npm:=0.24.5": + version: 0.24.5 + resolution: "web-tree-sitter@npm:0.24.5" + checksum: 4b380571801557a6cfb5e599b9be2da49439e5c30a1c3e3a204d9408afcbe476f25ce54e956959ce8753e1a9fff74634af2cf9b9365acc7b0ff97d73ecae0010 languageName: node linkType: hard From 744ec3dda2ca487d1b591c3538060834df5a4ea9 Mon Sep 17 00:00:00 2001 From: FalkWolsky Date: Fri, 20 Dec 2024 02:24:07 +0100 Subject: [PATCH 82/88] Adding Boomi as Data Source --- server/node-service/src/plugins/index.ts | 5 ++--- server/node-service/src/plugins/openApi/index.ts | 2 -- server/node-service/src/plugins/openApi/parse.ts | 2 -- 3 files changed, 2 insertions(+), 7 deletions(-) diff --git a/server/node-service/src/plugins/index.ts b/server/node-service/src/plugins/index.ts index 7597ef67a..79a41d720 100644 --- a/server/node-service/src/plugins/index.ts +++ b/server/node-service/src/plugins/index.ts @@ -43,7 +43,7 @@ import apiTemplatePlugin from "./apiTemplate"; import uiPathPlugin from "./uiPath"; import serpApiPlugin from "./serpApi"; import carboneIoPlugin from "./carboneIo"; -// import boomiPlugin from "./boomi"; +import boomiPlugin from "./boomi"; let plugins: (DataSourcePlugin | DataSourcePluginFactory)[] = [ @@ -82,8 +82,7 @@ let plugins: (DataSourcePlugin | DataSourcePluginFactory)[] = [ // Workflow n8nPlugin, - - // boomiPlugin, + boomiPlugin, // Messaging twilioPlugin, diff --git a/server/node-service/src/plugins/openApi/index.ts b/server/node-service/src/plugins/openApi/index.ts index 18b96dad3..426758d71 100644 --- a/server/node-service/src/plugins/openApi/index.ts +++ b/server/node-service/src/plugins/openApi/index.ts @@ -122,8 +122,6 @@ export async function runOpenApi( const { parameters, requestBody } = normalizeParams(otherActionData, operation, isOas3Spec); let securities = extractSecurityParams(dataSourceConfig, definition); - console.log("securities", securities); - const response = await SwaggerClient.execute({ spec: definition, operationId: realOperationId, diff --git a/server/node-service/src/plugins/openApi/parse.ts b/server/node-service/src/plugins/openApi/parse.ts index 6427aed69..c5a931661 100644 --- a/server/node-service/src/plugins/openApi/parse.ts +++ b/server/node-service/src/plugins/openApi/parse.ts @@ -210,8 +210,6 @@ export async function parseOpenApi( specId?: string ): Promise { - console.log("parsing API"); - let spec = specJsonOrObj; if (typeof specJsonOrObj === "string") { spec = JSON.parse(specJsonOrObj); From 7b929279cc5722f6b6092373a33d8f8f71782ad4 Mon Sep 17 00:00:00 2001 From: "Adnan.qaops" Date: Fri, 20 Dec 2024 12:44:43 +0500 Subject: [PATCH 83/88] added component docs for multiple components --- .../lowcoder/src/comps/comps/transferComp.tsx | 2 +- .../examples/ButtonComp/FloatButton.tsx | 22 +- .../examples/CalendarInputComp/Timer.tsx | 29 ++ .../examples/ContainersComp/ColumnLayout.tsx | 78 +++++ .../examples/ContainersComp/Container.tsx | 46 +++ .../examples/ContainersComp/PageLayout.tsx | 62 ++++ .../ContainersComp/ResponsiveLayout.tsx | 49 +++ .../ContainersComp/TabbedContainer.tsx | 127 ++++++++ .../ComponentDoc/examples/MediaComp/Audio.tsx | 40 +++ .../examples/MediaComp/ColorPicker.tsx | 116 +++++++ .../examples/MediaComp/ContentCard.tsx | 52 +++ .../examples/MediaComp/Signature.tsx | 90 ++++++ .../examples/MediaComp/Transfer.tsx | 20 ++ .../ComponentDoc/examples/MediaComp/Video.tsx | 69 ++++ .../src/pages/ComponentDoc/examples/index.ts | 43 +++ .../examples/presentationComp/avatar.tsx | 174 ++++++++++ .../examples/presentationComp/avatarGroup.tsx | 84 +++++ .../examples/presentationComp/comment.tsx | 58 ++++ .../examples/presentationComp/listView.tsx | 22 ++ .../examples/presentationComp/timeline.tsx | 58 ++++ .../examples/selectInputComp/AutoComplete.tsx | 24 ++ .../examples/selectInputComp/Tree.tsx | 264 ++++++++++++++++ .../examples/selectInputComp/TreeSelect.tsx | 298 ++++++++++++++++++ 23 files changed, 1824 insertions(+), 3 deletions(-) create mode 100644 client/packages/lowcoder/src/pages/ComponentDoc/examples/CalendarInputComp/Timer.tsx create mode 100644 client/packages/lowcoder/src/pages/ComponentDoc/examples/ContainersComp/ColumnLayout.tsx create mode 100644 client/packages/lowcoder/src/pages/ComponentDoc/examples/ContainersComp/Container.tsx create mode 100644 client/packages/lowcoder/src/pages/ComponentDoc/examples/ContainersComp/PageLayout.tsx create mode 100644 client/packages/lowcoder/src/pages/ComponentDoc/examples/ContainersComp/ResponsiveLayout.tsx create mode 100644 client/packages/lowcoder/src/pages/ComponentDoc/examples/ContainersComp/TabbedContainer.tsx create mode 100644 client/packages/lowcoder/src/pages/ComponentDoc/examples/MediaComp/Audio.tsx create mode 100644 client/packages/lowcoder/src/pages/ComponentDoc/examples/MediaComp/ColorPicker.tsx create mode 100644 client/packages/lowcoder/src/pages/ComponentDoc/examples/MediaComp/ContentCard.tsx create mode 100644 client/packages/lowcoder/src/pages/ComponentDoc/examples/MediaComp/Signature.tsx create mode 100644 client/packages/lowcoder/src/pages/ComponentDoc/examples/MediaComp/Transfer.tsx create mode 100644 client/packages/lowcoder/src/pages/ComponentDoc/examples/MediaComp/Video.tsx create mode 100644 client/packages/lowcoder/src/pages/ComponentDoc/examples/presentationComp/avatar.tsx create mode 100644 client/packages/lowcoder/src/pages/ComponentDoc/examples/presentationComp/avatarGroup.tsx create mode 100644 client/packages/lowcoder/src/pages/ComponentDoc/examples/presentationComp/comment.tsx create mode 100644 client/packages/lowcoder/src/pages/ComponentDoc/examples/presentationComp/listView.tsx create mode 100644 client/packages/lowcoder/src/pages/ComponentDoc/examples/presentationComp/timeline.tsx create mode 100644 client/packages/lowcoder/src/pages/ComponentDoc/examples/selectInputComp/AutoComplete.tsx create mode 100644 client/packages/lowcoder/src/pages/ComponentDoc/examples/selectInputComp/Tree.tsx create mode 100644 client/packages/lowcoder/src/pages/ComponentDoc/examples/selectInputComp/TreeSelect.tsx diff --git a/client/packages/lowcoder/src/comps/comps/transferComp.tsx b/client/packages/lowcoder/src/comps/comps/transferComp.tsx index b009cf5ac..378a2f6fb 100644 --- a/client/packages/lowcoder/src/comps/comps/transferComp.tsx +++ b/client/packages/lowcoder/src/comps/comps/transferComp.tsx @@ -186,7 +186,7 @@ TransferBasicComp = class extends TransferBasicComp { } }; -export const transferComp = withExposingConfigs(TransferBasicComp, [ +export const TransferComp = withExposingConfigs(TransferBasicComp, [ new NameConfig("items", trans("transfer.items")), new NameConfig("targetKeys", trans("transfer.targetKeys")), new NameConfig("targerObject", trans("transfer.targerObject")), diff --git a/client/packages/lowcoder/src/pages/ComponentDoc/examples/ButtonComp/FloatButton.tsx b/client/packages/lowcoder/src/pages/ComponentDoc/examples/ButtonComp/FloatButton.tsx index c89a3e307..3e94f40db 100644 --- a/client/packages/lowcoder/src/pages/ComponentDoc/examples/ButtonComp/FloatButton.tsx +++ b/client/packages/lowcoder/src/pages/ComponentDoc/examples/ButtonComp/FloatButton.tsx @@ -12,9 +12,27 @@ export default function FloatButtonExample() { > diff --git a/client/packages/lowcoder/src/pages/ComponentDoc/examples/CalendarInputComp/Timer.tsx b/client/packages/lowcoder/src/pages/ComponentDoc/examples/CalendarInputComp/Timer.tsx new file mode 100644 index 000000000..50b2f2d39 --- /dev/null +++ b/client/packages/lowcoder/src/pages/ComponentDoc/examples/CalendarInputComp/Timer.tsx @@ -0,0 +1,29 @@ +import { TimerComp } from "comps/comps/timerComp"; +import Example from "../../common/Example"; +import ExampleGroup from "../../common/ExampleGroup"; + +export default function TimerExample() { + return ( + <> + + + + + + ); + } \ No newline at end of file diff --git a/client/packages/lowcoder/src/pages/ComponentDoc/examples/ContainersComp/ColumnLayout.tsx b/client/packages/lowcoder/src/pages/ComponentDoc/examples/ContainersComp/ColumnLayout.tsx new file mode 100644 index 000000000..7aaec0c2e --- /dev/null +++ b/client/packages/lowcoder/src/pages/ComponentDoc/examples/ContainersComp/ColumnLayout.tsx @@ -0,0 +1,78 @@ +import { ColumnLayoutComp } from "comps/comps/columnLayout/columnLayout"; +import Example from "../../common/Example"; +import ExampleGroup from "../../common/ExampleGroup"; + +export default function ColumnLayoutExample() { + return ( + <> + + + + + + + + + + + + + ); + } \ No newline at end of file diff --git a/client/packages/lowcoder/src/pages/ComponentDoc/examples/ContainersComp/Container.tsx b/client/packages/lowcoder/src/pages/ComponentDoc/examples/ContainersComp/Container.tsx new file mode 100644 index 000000000..84e0dd6ab --- /dev/null +++ b/client/packages/lowcoder/src/pages/ComponentDoc/examples/ContainersComp/Container.tsx @@ -0,0 +1,46 @@ +import { ContainerComp } from "comps/comps/containerComp/containerComp"; +import Example from "../../common/Example"; +import ExampleGroup from "../../common/ExampleGroup"; + +export default function ContainerExample() { + return ( + <> + + + + + + + + + + ); + } \ No newline at end of file diff --git a/client/packages/lowcoder/src/pages/ComponentDoc/examples/ContainersComp/PageLayout.tsx b/client/packages/lowcoder/src/pages/ComponentDoc/examples/ContainersComp/PageLayout.tsx new file mode 100644 index 000000000..7cc6a9113 --- /dev/null +++ b/client/packages/lowcoder/src/pages/ComponentDoc/examples/ContainersComp/PageLayout.tsx @@ -0,0 +1,62 @@ +import { PageLayoutComp } from "comps/comps/containerComp/pageLayoutComp"; +import Example from "../../common/Example"; +import ExampleGroup from "../../common/ExampleGroup"; + +export default function PageLayoutExample() { + return ( + <> + + + + + + + + + + ); + } \ No newline at end of file diff --git a/client/packages/lowcoder/src/pages/ComponentDoc/examples/ContainersComp/ResponsiveLayout.tsx b/client/packages/lowcoder/src/pages/ComponentDoc/examples/ContainersComp/ResponsiveLayout.tsx new file mode 100644 index 000000000..926c916df --- /dev/null +++ b/client/packages/lowcoder/src/pages/ComponentDoc/examples/ContainersComp/ResponsiveLayout.tsx @@ -0,0 +1,49 @@ +import { ResponsiveLayoutComp } from "comps/comps/responsiveLayout/responsiveLayout"; +import Example from "../../common/Example"; +import ExampleGroup from "../../common/ExampleGroup"; + +export default function ResponsiveLayoutExample() { + return ( + <> + + + + + + + + + + + ); + } \ No newline at end of file diff --git a/client/packages/lowcoder/src/pages/ComponentDoc/examples/ContainersComp/TabbedContainer.tsx b/client/packages/lowcoder/src/pages/ComponentDoc/examples/ContainersComp/TabbedContainer.tsx new file mode 100644 index 000000000..4f51f953c --- /dev/null +++ b/client/packages/lowcoder/src/pages/ComponentDoc/examples/ContainersComp/TabbedContainer.tsx @@ -0,0 +1,127 @@ +import { TabbedContainerComp } from "comps/comps/tabs/tabbedContainerComp"; +import Example from "../../common/Example"; +import ExampleGroup from "../../common/ExampleGroup"; + +export default function TabbedContainerExample() { + return ( + <> + + + + + + + + + + + + + + + + + + + + ); + } \ No newline at end of file diff --git a/client/packages/lowcoder/src/pages/ComponentDoc/examples/MediaComp/Audio.tsx b/client/packages/lowcoder/src/pages/ComponentDoc/examples/MediaComp/Audio.tsx new file mode 100644 index 000000000..ac0b62b3c --- /dev/null +++ b/client/packages/lowcoder/src/pages/ComponentDoc/examples/MediaComp/Audio.tsx @@ -0,0 +1,40 @@ +import { AudioComp } from "comps/comps/mediaComp/audioComp"; +import Example from "../../common/Example"; +import ExampleGroup from "../../common/ExampleGroup"; + +export default function AudioExample() { + return ( + <> + + + + + + + ); + } \ No newline at end of file diff --git a/client/packages/lowcoder/src/pages/ComponentDoc/examples/MediaComp/ColorPicker.tsx b/client/packages/lowcoder/src/pages/ComponentDoc/examples/MediaComp/ColorPicker.tsx new file mode 100644 index 000000000..d3db96d3c --- /dev/null +++ b/client/packages/lowcoder/src/pages/ComponentDoc/examples/MediaComp/ColorPicker.tsx @@ -0,0 +1,116 @@ +import { ColorPickerComp } from "comps/comps/mediaComp/colorPickerComp"; +import Example from "../../common/Example"; +import ExampleGroup from "../../common/ExampleGroup"; + +export default function ColorPickerExample() { + return ( + <> + + + + + + + + + + + + + + + + + + + + + ); + } \ No newline at end of file diff --git a/client/packages/lowcoder/src/pages/ComponentDoc/examples/MediaComp/ContentCard.tsx b/client/packages/lowcoder/src/pages/ComponentDoc/examples/MediaComp/ContentCard.tsx new file mode 100644 index 000000000..40ce62bc2 --- /dev/null +++ b/client/packages/lowcoder/src/pages/ComponentDoc/examples/MediaComp/ContentCard.tsx @@ -0,0 +1,52 @@ +import { CardComp } from "comps/comps/containerComp/cardComp"; +import Example from "../../common/Example"; +import ExampleGroup from "../../common/ExampleGroup"; + +export default function ContentCardExample() { + return ( + <> + + + + + + + + + ); + } \ No newline at end of file diff --git a/client/packages/lowcoder/src/pages/ComponentDoc/examples/MediaComp/Signature.tsx b/client/packages/lowcoder/src/pages/ComponentDoc/examples/MediaComp/Signature.tsx new file mode 100644 index 000000000..f90c7ef5d --- /dev/null +++ b/client/packages/lowcoder/src/pages/ComponentDoc/examples/MediaComp/Signature.tsx @@ -0,0 +1,90 @@ +import { SignatureComp } from "comps/comps/signatureComp"; +import Example from "../../common/Example"; +import ExampleGroup from "../../common/ExampleGroup"; + +export default function SignatureExample() { + return ( + <> + + + + + + + + + + + + + + + ); + } \ No newline at end of file diff --git a/client/packages/lowcoder/src/pages/ComponentDoc/examples/MediaComp/Transfer.tsx b/client/packages/lowcoder/src/pages/ComponentDoc/examples/MediaComp/Transfer.tsx new file mode 100644 index 000000000..ec2236124 --- /dev/null +++ b/client/packages/lowcoder/src/pages/ComponentDoc/examples/MediaComp/Transfer.tsx @@ -0,0 +1,20 @@ +import { TransferComp } from "comps/comps/transferComp"; +import Example from "../../common/Example"; +import ExampleGroup from "../../common/ExampleGroup"; + +export default function TransferExample() { + return ( + <> + + + + + ); + } \ No newline at end of file diff --git a/client/packages/lowcoder/src/pages/ComponentDoc/examples/MediaComp/Video.tsx b/client/packages/lowcoder/src/pages/ComponentDoc/examples/MediaComp/Video.tsx new file mode 100644 index 000000000..c62153911 --- /dev/null +++ b/client/packages/lowcoder/src/pages/ComponentDoc/examples/MediaComp/Video.tsx @@ -0,0 +1,69 @@ +import { VideoComp } from "comps/comps/mediaComp/videoComp"; +import Example from "../../common/Example"; +import ExampleGroup from "../../common/ExampleGroup"; + +export default function VideoExample() { + return ( + <> + + + + + + + + + + + ); + } \ No newline at end of file diff --git a/client/packages/lowcoder/src/pages/ComponentDoc/examples/index.ts b/client/packages/lowcoder/src/pages/ComponentDoc/examples/index.ts index e9abb3104..1a8e04233 100644 --- a/client/packages/lowcoder/src/pages/ComponentDoc/examples/index.ts +++ b/client/packages/lowcoder/src/pages/ComponentDoc/examples/index.ts @@ -35,11 +35,34 @@ import TimeRangeExample from "./CalendarInputComp/TimeRange"; import jsonSchemaFormExample from "./formComp/JSONSchemaform"; import NavigationExample from "./Navigation"; import IFrameExample from "./IFrame"; +import FloatButtonExample from "./ButtonComp/FloatButton"; +import AvatarExample from "./presentationComp/avatar"; +import AvatarGroupExample from "./presentationComp/avatarGroup"; +import TimerExample from "./CalendarInputComp/Timer"; +import AudioExample from "./MediaComp/Audio"; +import VideoExample from "./MediaComp/Video"; +import TreeExample from "./selectInputComp/Tree"; +import TreeSelectExample from "./selectInputComp/TreeSelect"; +import AutoCompleteExample from "./selectInputComp/AutoComplete"; +import ListViewExample from "./presentationComp/listView"; +import TimeLineExample from "./presentationComp/timeline"; +import CommentExample from "./presentationComp/comment"; +import ColorPickerExample from "./MediaComp/ColorPicker"; +import SignatureExample from "./MediaComp/Signature"; +import TransferExample from "./MediaComp/Transfer"; +import ResponsiveLayoutExample from "./ContainersComp/ResponsiveLayout"; +import PageLayoutExample from "./ContainersComp/PageLayout"; +import ColumnLayoutExample from "./ContainersComp/ColumnLayout"; +import TabbedContainerExample from "./ContainersComp/TabbedContainer"; +import ContainerExample from "./ContainersComp/Container"; +import ContentCardExample from "./MediaComp/ContentCard"; + const examples: { [key in UICompType]?: React.FunctionComponent } = { button: ButtonExample, controlButton: IconButtonExample, toggleButton: ToggleButtonExample, + floatingButton: FloatButtonExample, input: InputExample, textArea: TextAreaExample, password: PasswordExample, @@ -73,6 +96,26 @@ const examples: { [key in UICompType]?: React.FunctionComponent } = { jsonSchemaForm: jsonSchemaFormExample, navigation: NavigationExample, iframe: IFrameExample, + avatar: AvatarExample, + avatarGroup: AvatarGroupExample, + timer: TimerExample, + audio: AudioExample, + video: VideoExample, + tree: TreeExample, + treeSelect: TreeSelectExample, + autocomplete: AutoCompleteExample, + listView: ListViewExample, + timeline: TimeLineExample, + comment: CommentExample, + colorPicker: ColorPickerExample, + signature: SignatureExample, + transfer: TransferExample, + responsiveLayout: ResponsiveLayoutExample, + pageLayout: PageLayoutExample, + columnLayout: ColumnLayoutExample, + tabbedContainer: TabbedContainerExample, + container: ContainerExample, + card: ContentCardExample, }; export default examples; diff --git a/client/packages/lowcoder/src/pages/ComponentDoc/examples/presentationComp/avatar.tsx b/client/packages/lowcoder/src/pages/ComponentDoc/examples/presentationComp/avatar.tsx new file mode 100644 index 000000000..c0949dc26 --- /dev/null +++ b/client/packages/lowcoder/src/pages/ComponentDoc/examples/presentationComp/avatar.tsx @@ -0,0 +1,174 @@ +import { AvatarComp } from "comps/comps/avatar"; +import Example from "../../common/Example"; +import ExampleGroup from "../../common/ExampleGroup"; +import { trans } from "i18n/design"; + +export default function AvatarExample(){ + const nameMap: Record = { + title: "title", + align: "align", + color: "color", + dashed: "dashed", + }; + return ( + <> + + + + + + + + + + + + + + + + + + + + + + ); +} \ No newline at end of file diff --git a/client/packages/lowcoder/src/pages/ComponentDoc/examples/presentationComp/avatarGroup.tsx b/client/packages/lowcoder/src/pages/ComponentDoc/examples/presentationComp/avatarGroup.tsx new file mode 100644 index 000000000..5e0995cf4 --- /dev/null +++ b/client/packages/lowcoder/src/pages/ComponentDoc/examples/presentationComp/avatarGroup.tsx @@ -0,0 +1,84 @@ +import { AvatarGroupComp } from "comps/comps/avatarGroup"; +import Example from "../../common/Example"; +import ExampleGroup from "../../common/ExampleGroup"; +import { trans } from "i18n/design"; + +export default function AvatarGroupExample(){ + const nameMap: Record = { + title: "title", + align: "align", + color: "color", + dashed: "dashed", + }; + return ( + <> + + + + + + + + + + + + + + + + + ); +} \ No newline at end of file diff --git a/client/packages/lowcoder/src/pages/ComponentDoc/examples/presentationComp/comment.tsx b/client/packages/lowcoder/src/pages/ComponentDoc/examples/presentationComp/comment.tsx new file mode 100644 index 000000000..5f4d1ea61 --- /dev/null +++ b/client/packages/lowcoder/src/pages/ComponentDoc/examples/presentationComp/comment.tsx @@ -0,0 +1,58 @@ +import { CommentComp } from "comps/comps/commentComp/commentComp"; +import { trans } from "i18n"; +import Example from "../../common/Example"; +import ExampleGroup from "../../common/ExampleGroup"; + +export default function CommentExample() { + return ( + <> + + + + + + + + + + + + ); +} diff --git a/client/packages/lowcoder/src/pages/ComponentDoc/examples/presentationComp/listView.tsx b/client/packages/lowcoder/src/pages/ComponentDoc/examples/presentationComp/listView.tsx new file mode 100644 index 000000000..d11cd2d82 --- /dev/null +++ b/client/packages/lowcoder/src/pages/ComponentDoc/examples/presentationComp/listView.tsx @@ -0,0 +1,22 @@ +import { ListViewComp } from "comps/comps/listViewComp/listViewComp"; +import { trans } from "i18n"; +import Example from "../../common/Example"; +import ExampleGroup from "../../common/ExampleGroup"; + +export default function ListViewExample() { + return ( + <> + + + + + ); +} diff --git a/client/packages/lowcoder/src/pages/ComponentDoc/examples/presentationComp/timeline.tsx b/client/packages/lowcoder/src/pages/ComponentDoc/examples/presentationComp/timeline.tsx new file mode 100644 index 000000000..34f87e1a9 --- /dev/null +++ b/client/packages/lowcoder/src/pages/ComponentDoc/examples/presentationComp/timeline.tsx @@ -0,0 +1,58 @@ +import { TimeLineComp } from "comps/comps/timelineComp/timelineComp"; +import { trans } from "i18n"; +import Example from "../../common/Example"; +import ExampleGroup from "../../common/ExampleGroup"; + +export default function TimeLineExample() { + return ( + <> + + + + + + + + + + ); +} diff --git a/client/packages/lowcoder/src/pages/ComponentDoc/examples/selectInputComp/AutoComplete.tsx b/client/packages/lowcoder/src/pages/ComponentDoc/examples/selectInputComp/AutoComplete.tsx new file mode 100644 index 000000000..5e05cf20f --- /dev/null +++ b/client/packages/lowcoder/src/pages/ComponentDoc/examples/selectInputComp/AutoComplete.tsx @@ -0,0 +1,24 @@ +import { AutoCompleteComp } from "comps/comps/autoCompleteComp/autoCompleteComp"; +import { trans } from "i18n"; +import Example from "../../common/Example"; +import ExampleGroup from "../../common/ExampleGroup"; + +export default function AutoCompleteExample() { + return ( + <> + + + + + ); +} diff --git a/client/packages/lowcoder/src/pages/ComponentDoc/examples/selectInputComp/Tree.tsx b/client/packages/lowcoder/src/pages/ComponentDoc/examples/selectInputComp/Tree.tsx new file mode 100644 index 000000000..b81253b57 --- /dev/null +++ b/client/packages/lowcoder/src/pages/ComponentDoc/examples/selectInputComp/Tree.tsx @@ -0,0 +1,264 @@ +import { TreeComp } from "comps/comps/treeComp/treeComp"; +import { trans } from "i18n"; +import Example from "../../common/Example"; +import ExampleGroup from "../../common/ExampleGroup"; + +export default function TreeExample() { + const blackListConfig: string[] = ["options.manual.manual"]; + const options = { + optionType: "manual", + manual: { + manual: [ + { + value: trans("componentDoc.appleOptionLabel"), + label: trans("componentDoc.appleOptionLabel"), + disabled: "", + hidden: "", + }, + { + value: trans("componentDoc.waterMelonOptionLabel"), + label: trans("componentDoc.waterMelonOptionLabel"), + disabled: "", + hidden: "", + }, + { + value: trans("componentDoc.berryOptionLabel"), + label: trans("componentDoc.berryOptionLabel"), + disabled: "", + hidden: "", + }, + { + value: trans("componentDoc.lemonOptionLabel"), + label: trans("componentDoc.lemonOptionLabel"), + disabled: "", + hidden: "", + }, + { + value: trans("componentDoc.coconutOptionLabel"), + label: trans("componentDoc.coconutOptionLabel"), + disabled: "", + hidden: "", + }, + ], + }, + }; + return ( + <> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ); +} diff --git a/client/packages/lowcoder/src/pages/ComponentDoc/examples/selectInputComp/TreeSelect.tsx b/client/packages/lowcoder/src/pages/ComponentDoc/examples/selectInputComp/TreeSelect.tsx new file mode 100644 index 000000000..980d2f52c --- /dev/null +++ b/client/packages/lowcoder/src/pages/ComponentDoc/examples/selectInputComp/TreeSelect.tsx @@ -0,0 +1,298 @@ +import { TreeSelectComp } from "comps/comps/treeComp/treeSelectComp"; +import { trans } from "i18n"; +import Example from "../../common/Example"; +import ExampleGroup from "../../common/ExampleGroup"; + +export default function TreeSelectExample() { + const blackListConfig: string[] = ["options.manual.manual"]; + const options = { + optionType: "manual", + manual: { + manual: [ + { + value: trans("componentDoc.appleOptionLabel"), + label: trans("componentDoc.appleOptionLabel"), + disabled: "", + hidden: "", + }, + { + value: trans("componentDoc.waterMelonOptionLabel"), + label: trans("componentDoc.waterMelonOptionLabel"), + disabled: "", + hidden: "", + }, + { + value: trans("componentDoc.berryOptionLabel"), + label: trans("componentDoc.berryOptionLabel"), + disabled: "", + hidden: "", + }, + { + value: trans("componentDoc.lemonOptionLabel"), + label: trans("componentDoc.lemonOptionLabel"), + disabled: "", + hidden: "", + }, + { + value: trans("componentDoc.coconutOptionLabel"), + label: trans("componentDoc.coconutOptionLabel"), + disabled: "", + hidden: "", + }, + ], + }, + }; + return ( + <> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ); +} From 86fa6789cb070647872dfdb6d040dcdad1632859 Mon Sep 17 00:00:00 2001 From: Thomasr Date: Thu, 19 Dec 2024 10:27:05 -0500 Subject: [PATCH 84/88] Added slug to organization and application --- .../domain/application/model/Application.java | 11 ++-- .../repository/ApplicationRepository.java | 2 + .../service/ApplicationService.java | 2 + .../service/ApplicationServiceImpl.java | 21 +++++--- .../organization/model/Organization.java | 26 ++++------ .../repository/OrganizationRepository.java | 1 + .../service/OrganizationService.java | 2 + .../service/OrganizationServiceImpl.java | 17 ++++-- .../org/lowcoder/sdk/exception/BizError.java | 4 +- .../application/ApplicationApiService.java | 2 + .../ApplicationApiServiceImpl.java | 5 ++ .../application/ApplicationController.java | 7 ++- .../api/application/ApplicationEndpoints.java | 3 ++ .../OrganizationController.java | 6 +++ .../usermanagement/OrganizationEndpoints.java | 3 ++ .../ApplicationApiServiceTest.java | 21 ++++++++ .../api/service/OrganizationServiceTest.java | 52 +++++++++++++++++++ 17 files changed, 154 insertions(+), 31 deletions(-) create mode 100644 server/api-service/lowcoder-server/src/test/java/org/lowcoder/api/service/OrganizationServiceTest.java diff --git a/server/api-service/lowcoder-domain/src/main/java/org/lowcoder/domain/application/model/Application.java b/server/api-service/lowcoder-domain/src/main/java/org/lowcoder/domain/application/model/Application.java index 0c7d9aae0..7a2201734 100644 --- a/server/api-service/lowcoder-domain/src/main/java/org/lowcoder/domain/application/model/Application.java +++ b/server/api-service/lowcoder-domain/src/main/java/org/lowcoder/domain/application/model/Application.java @@ -3,13 +3,11 @@ import com.fasterxml.jackson.annotation.JsonIgnore; import com.fasterxml.jackson.annotation.JsonProperty; -import com.github.f4b6a3.uuid.UuidCreator; import lombok.Getter; import lombok.NoArgsConstructor; import lombok.Setter; import lombok.experimental.SuperBuilder; import lombok.extern.jackson.Jacksonized; -import org.apache.commons.collections4.MapUtils; import org.apache.commons.lang3.BooleanUtils; import org.lowcoder.domain.application.ApplicationUtil; import org.lowcoder.domain.application.service.ApplicationRecordService; @@ -20,11 +18,13 @@ import org.lowcoder.sdk.util.JsonUtils; import org.springframework.data.annotation.Transient; import org.springframework.data.mongodb.core.mapping.Document; -import org.springframework.util.StringUtils; import reactor.core.publisher.Mono; import java.time.Instant; -import java.util.*; +import java.util.Collections; +import java.util.HashMap; +import java.util.Map; +import java.util.Set; import java.util.function.Supplier; import static com.google.common.base.Suppliers.memoize; @@ -39,6 +39,9 @@ public class Application extends HasIdAndAuditing { @Getter private String gid; + @Setter + @Getter + private String slug; private String organizationId; private String name; private Integer applicationType; diff --git a/server/api-service/lowcoder-domain/src/main/java/org/lowcoder/domain/application/repository/ApplicationRepository.java b/server/api-service/lowcoder-domain/src/main/java/org/lowcoder/domain/application/repository/ApplicationRepository.java index 5cac07fdc..4a984b8da 100644 --- a/server/api-service/lowcoder-domain/src/main/java/org/lowcoder/domain/application/repository/ApplicationRepository.java +++ b/server/api-service/lowcoder-domain/src/main/java/org/lowcoder/domain/application/repository/ApplicationRepository.java @@ -67,4 +67,6 @@ public interface ApplicationRepository extends ReactiveMongoRepository findByPublicToAllIsTrueAndAgencyProfileIsTrue(); + Mono existsBySlug(String slug); + } diff --git a/server/api-service/lowcoder-domain/src/main/java/org/lowcoder/domain/application/service/ApplicationService.java b/server/api-service/lowcoder-domain/src/main/java/org/lowcoder/domain/application/service/ApplicationService.java index f399a13d1..5e24e228d 100644 --- a/server/api-service/lowcoder-domain/src/main/java/org/lowcoder/domain/application/service/ApplicationService.java +++ b/server/api-service/lowcoder-domain/src/main/java/org/lowcoder/domain/application/service/ApplicationService.java @@ -73,4 +73,6 @@ public interface ApplicationService { Mono updateLastEditedAt(String applicationId, Instant time, String visitorId); Mono> getLiveDSLByApplicationId(String applicationId); + + Mono updateSlug(String applicationId, String newSlug); } diff --git a/server/api-service/lowcoder-domain/src/main/java/org/lowcoder/domain/application/service/ApplicationServiceImpl.java b/server/api-service/lowcoder-domain/src/main/java/org/lowcoder/domain/application/service/ApplicationServiceImpl.java index c65fef8e0..3b3be763a 100644 --- a/server/api-service/lowcoder-domain/src/main/java/org/lowcoder/domain/application/service/ApplicationServiceImpl.java +++ b/server/api-service/lowcoder-domain/src/main/java/org/lowcoder/domain/application/service/ApplicationServiceImpl.java @@ -14,23 +14,16 @@ import org.lowcoder.domain.application.model.ApplicationRequestType; import org.lowcoder.domain.application.model.ApplicationStatus; import org.lowcoder.domain.application.repository.ApplicationRepository; -import org.lowcoder.domain.organization.repository.OrganizationRepository; -import org.lowcoder.domain.organization.service.OrgMemberService; import org.lowcoder.domain.permission.model.ResourceRole; import org.lowcoder.domain.permission.model.ResourceType; import org.lowcoder.domain.permission.service.ResourcePermissionService; -import org.lowcoder.domain.query.model.LibraryQuery; -import org.lowcoder.domain.query.model.LibraryQueryRecord; -import org.lowcoder.domain.query.service.LibraryQueryRecordService; import org.lowcoder.domain.user.repository.UserRepository; -import org.lowcoder.domain.user.service.UserService; import org.lowcoder.infra.annotation.NonEmptyMono; import org.lowcoder.infra.mongo.MongoUpsertHelper; import org.lowcoder.sdk.constants.FieldName; import org.lowcoder.sdk.exception.BizError; import org.lowcoder.sdk.exception.BizException; import org.lowcoder.sdk.models.HasIdAndAuditing; -import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import com.google.common.collect.Lists; @@ -353,4 +346,18 @@ public Mono> getLiveDSLByApplicationId(String applicationId) .switchIfEmpty(findById(applicationId) .map(Application::getEditingApplicationDSL)); } + + @Override + public Mono updateSlug(String applicationId, String newSlug) { + return repository.existsBySlug(newSlug).flatMap(exists -> { + if (exists) { + return Mono.error(new BizException(BizError.DUPLICATE_ENTRY, "Slug already exists")); + } + return repository.findById(applicationId) + .flatMap(application -> { + application.setSlug(newSlug); + return repository.save(application); + }); + }); + } } diff --git a/server/api-service/lowcoder-domain/src/main/java/org/lowcoder/domain/organization/model/Organization.java b/server/api-service/lowcoder-domain/src/main/java/org/lowcoder/domain/organization/model/Organization.java index 80d338b48..a0a28662b 100644 --- a/server/api-service/lowcoder-domain/src/main/java/org/lowcoder/domain/organization/model/Organization.java +++ b/server/api-service/lowcoder-domain/src/main/java/org/lowcoder/domain/organization/model/Organization.java @@ -1,14 +1,10 @@ package org.lowcoder.domain.organization.model; -import static java.util.Optional.ofNullable; -import static org.apache.commons.lang3.ObjectUtils.firstNonNull; -import static org.lowcoder.infra.util.AssetUtils.toAssetPath; - -import java.util.*; - -import com.fasterxml.jackson.annotation.JsonIgnoreProperties; -import com.fasterxml.jackson.annotation.JsonView; -import com.github.f4b6a3.uuid.UuidCreator; +import com.fasterxml.jackson.annotation.JsonIgnore; +import com.fasterxml.jackson.annotation.JsonProperty; +import lombok.Getter; +import lombok.NoArgsConstructor; +import lombok.Setter; import lombok.experimental.SuperBuilder; import lombok.extern.jackson.Jacksonized; import org.apache.commons.lang3.builder.ToStringBuilder; @@ -17,16 +13,14 @@ import org.lowcoder.domain.mongodb.BeforeMongodbWrite; import org.lowcoder.domain.mongodb.MongodbInterceptorContext; import org.lowcoder.sdk.auth.AbstractAuthConfig; -import org.lowcoder.sdk.config.JsonViews; import org.lowcoder.sdk.models.HasIdAndAuditing; import org.springframework.data.mongodb.core.mapping.Document; -import com.fasterxml.jackson.annotation.JsonIgnore; -import com.fasterxml.jackson.annotation.JsonProperty; +import java.util.*; -import lombok.Getter; -import lombok.NoArgsConstructor; -import lombok.Setter; +import static java.util.Optional.ofNullable; +import static org.apache.commons.lang3.ObjectUtils.firstNonNull; +import static org.lowcoder.infra.util.AssetUtils.toAssetPath; @Getter @@ -41,6 +35,8 @@ public class Organization extends HasIdAndAuditing implements BeforeMongodbWrite @Getter private String gid; + private String slug; + private String name; private Boolean isAutoGeneratedOrganization; diff --git a/server/api-service/lowcoder-domain/src/main/java/org/lowcoder/domain/organization/repository/OrganizationRepository.java b/server/api-service/lowcoder-domain/src/main/java/org/lowcoder/domain/organization/repository/OrganizationRepository.java index 782785089..13f7d2399 100644 --- a/server/api-service/lowcoder-domain/src/main/java/org/lowcoder/domain/organization/repository/OrganizationRepository.java +++ b/server/api-service/lowcoder-domain/src/main/java/org/lowcoder/domain/organization/repository/OrganizationRepository.java @@ -27,4 +27,5 @@ public interface OrganizationRepository extends ReactiveMongoRepository findByOrganizationDomain_DomainAndState(String domain, OrganizationState state); Flux findByOrganizationDomainIsNotNull(); + Mono existsBySlug(String slug); } diff --git a/server/api-service/lowcoder-domain/src/main/java/org/lowcoder/domain/organization/service/OrganizationService.java b/server/api-service/lowcoder-domain/src/main/java/org/lowcoder/domain/organization/service/OrganizationService.java index ec199d936..0a07ea502 100644 --- a/server/api-service/lowcoder-domain/src/main/java/org/lowcoder/domain/organization/service/OrganizationService.java +++ b/server/api-service/lowcoder-domain/src/main/java/org/lowcoder/domain/organization/service/OrganizationService.java @@ -48,4 +48,6 @@ public interface OrganizationService { Mono getByDomain(); Mono updateCommonSettings(String orgId, String key, Object value); + + Mono updateSlug(String organizationId, String newSlug); } diff --git a/server/api-service/lowcoder-domain/src/main/java/org/lowcoder/domain/organization/service/OrganizationServiceImpl.java b/server/api-service/lowcoder-domain/src/main/java/org/lowcoder/domain/organization/service/OrganizationServiceImpl.java index a1358b39f..f1bc1470d 100644 --- a/server/api-service/lowcoder-domain/src/main/java/org/lowcoder/domain/organization/service/OrganizationServiceImpl.java +++ b/server/api-service/lowcoder-domain/src/main/java/org/lowcoder/domain/organization/service/OrganizationServiceImpl.java @@ -16,7 +16,6 @@ import org.lowcoder.domain.organization.repository.OrganizationRepository; import org.lowcoder.domain.user.model.User; import org.lowcoder.domain.user.repository.UserRepository; -import org.lowcoder.domain.user.service.UserService; import org.lowcoder.infra.annotation.PossibleEmptyMono; import org.lowcoder.infra.mongo.MongoUpsertHelper; import org.lowcoder.sdk.config.CommonConfig; @@ -35,10 +34,8 @@ import reactor.core.publisher.Mono; import java.util.Collection; -import java.util.List; import java.util.Locale; -import static org.lowcoder.domain.authentication.AuthenticationService.DEFAULT_AUTH_CONFIG; import static org.lowcoder.domain.organization.model.OrganizationState.ACTIVE; import static org.lowcoder.domain.organization.model.OrganizationState.DELETED; import static org.lowcoder.domain.util.QueryDslUtils.fieldName; @@ -291,4 +288,18 @@ public Mono updateCommonSettings(String orgId, String key, Object value private String buildCommonSettingsUpdateTimeKey(String key) { return key + "_updateTime"; } + + @Override + public Mono updateSlug(String organizationId, String newSlug) { + return repository.existsBySlug(newSlug).flatMap(exists -> { + if (exists) { + return Mono.error(new BizException(BizError.DUPLICATE_ENTRY, "Slug already exists")); + } + return repository.findById(organizationId) + .flatMap(organization -> { + organization.setSlug(newSlug); + return repository.save(organization); + }); + }); + } } diff --git a/server/api-service/lowcoder-sdk/src/main/java/org/lowcoder/sdk/exception/BizError.java b/server/api-service/lowcoder-sdk/src/main/java/org/lowcoder/sdk/exception/BizError.java index 3b92146aa..aac1d9565 100644 --- a/server/api-service/lowcoder-sdk/src/main/java/org/lowcoder/sdk/exception/BizError.java +++ b/server/api-service/lowcoder-sdk/src/main/java/org/lowcoder/sdk/exception/BizError.java @@ -152,7 +152,9 @@ public enum BizError { BUNDLE_NOT_EXIST(500, 6402), BUNDLE_NAME_CONFLICT(500, 6403), ILLEGAL_BUNDLE_PERMISSION_ID(500, 6404), - ; + + //slug 6501 - 6501 + DUPLICATE_ENTRY(403, 6501); static { checkDuplicates(values(), BizError::getBizErrorCode); diff --git a/server/api-service/lowcoder-server/src/main/java/org/lowcoder/api/application/ApplicationApiService.java b/server/api-service/lowcoder-server/src/main/java/org/lowcoder/api/application/ApplicationApiService.java index 0bc50ffc2..23b1bbd3a 100644 --- a/server/api-service/lowcoder-server/src/main/java/org/lowcoder/api/application/ApplicationApiService.java +++ b/server/api-service/lowcoder-server/src/main/java/org/lowcoder/api/application/ApplicationApiService.java @@ -62,4 +62,6 @@ Mono grantPermission(String applicationId, // Falk: why we have request.publicToMarketplace() - but here only agencyProfile? Not from request? Mono setApplicationAsAgencyProfile(String applicationId, boolean agencyProfile); + + Mono updateSlug(String applicationId, String slug); } diff --git a/server/api-service/lowcoder-server/src/main/java/org/lowcoder/api/application/ApplicationApiServiceImpl.java b/server/api-service/lowcoder-server/src/main/java/org/lowcoder/api/application/ApplicationApiServiceImpl.java index 8f26aec99..150d9e4c5 100644 --- a/server/api-service/lowcoder-server/src/main/java/org/lowcoder/api/application/ApplicationApiServiceImpl.java +++ b/server/api-service/lowcoder-server/src/main/java/org/lowcoder/api/application/ApplicationApiServiceImpl.java @@ -600,6 +600,11 @@ public Mono setApplicationAsAgencyProfile(String applicationId, boolean (applicationId, agencyProfile)); } + @Override + public Mono updateSlug(String applicationId, String slug) { + return applicationService.updateSlug(applicationId, slug); + } + private Map sanitizeDsl(Map applicationDsl) { if (applicationDsl.get("queries") instanceof List queries) { List> list = queries.stream().map(this::doSanitizeQuery).toList(); diff --git a/server/api-service/lowcoder-server/src/main/java/org/lowcoder/api/application/ApplicationController.java b/server/api-service/lowcoder-server/src/main/java/org/lowcoder/api/application/ApplicationController.java index 6edddcb2d..b765d19f6 100644 --- a/server/api-service/lowcoder-server/src/main/java/org/lowcoder/api/application/ApplicationController.java +++ b/server/api-service/lowcoder-server/src/main/java/org/lowcoder/api/application/ApplicationController.java @@ -1,6 +1,5 @@ package org.lowcoder.api.application; -import io.sentry.protocol.App; import lombok.RequiredArgsConstructor; import org.lowcoder.api.application.view.*; import org.lowcoder.api.framework.view.PageResponseView; @@ -165,6 +164,12 @@ public Mono> updateEditState(@PathVariable String applicat .map(ResponseView::success)); } + @Override + public Mono> updateSlug(@PathVariable String applicationId, @RequestBody String slug) { + return applicationApiService.updateSlug(applicationId, slug) + .map(ResponseView::success); + } + @Override public Mono> getUserHomePage(@RequestParam(required = false, defaultValue = "0") int applicationType) { ApplicationType type = ApplicationType.fromValue(applicationType); diff --git a/server/api-service/lowcoder-server/src/main/java/org/lowcoder/api/application/ApplicationEndpoints.java b/server/api-service/lowcoder-server/src/main/java/org/lowcoder/api/application/ApplicationEndpoints.java index a7f09da7d..ae881227d 100644 --- a/server/api-service/lowcoder-server/src/main/java/org/lowcoder/api/application/ApplicationEndpoints.java +++ b/server/api-service/lowcoder-server/src/main/java/org/lowcoder/api/application/ApplicationEndpoints.java @@ -146,6 +146,9 @@ public Mono> publish(@PathVariable String applicat public Mono> updateEditState(@PathVariable String applicationId, @RequestBody UpdateEditStateRequest updateEditStateRequest); + @PutMapping("/{applicationId}/slug") + public Mono> updateSlug(@PathVariable String applicationId, @RequestBody String slug); + @Operation( tags = TAG_APPLICATION_MANAGEMENT, operationId = "getUserHomepageApplication", diff --git a/server/api-service/lowcoder-server/src/main/java/org/lowcoder/api/usermanagement/OrganizationController.java b/server/api-service/lowcoder-server/src/main/java/org/lowcoder/api/usermanagement/OrganizationController.java index 0825fb0e6..3863eaa2e 100644 --- a/server/api-service/lowcoder-server/src/main/java/org/lowcoder/api/usermanagement/OrganizationController.java +++ b/server/api-service/lowcoder-server/src/main/java/org/lowcoder/api/usermanagement/OrganizationController.java @@ -166,4 +166,10 @@ public Mono> getOrgApiUsageCount(String orgId, Boolean lastMo .map(ResponseView::success)); } + @Override + public Mono> updateSlug(@PathVariable String orgId, @RequestBody String slug) { + return organizationService.updateSlug(orgId, slug) + .map(ResponseView::success); + } + } \ No newline at end of file diff --git a/server/api-service/lowcoder-server/src/main/java/org/lowcoder/api/usermanagement/OrganizationEndpoints.java b/server/api-service/lowcoder-server/src/main/java/org/lowcoder/api/usermanagement/OrganizationEndpoints.java index 8fc9d5598..b1547da93 100644 --- a/server/api-service/lowcoder-server/src/main/java/org/lowcoder/api/usermanagement/OrganizationEndpoints.java +++ b/server/api-service/lowcoder-server/src/main/java/org/lowcoder/api/usermanagement/OrganizationEndpoints.java @@ -181,6 +181,9 @@ public Mono> removeUserFromOrg(@PathVariable String orgId, @GetMapping("/{orgId}/api-usage") public Mono> getOrgApiUsageCount(@PathVariable String orgId, @RequestParam(required = false) Boolean lastMonthOnly); + @PutMapping("/{orgId}/slug") + Mono> updateSlug(@PathVariable String orgId, @RequestBody String slug); + public record UpdateOrgCommonSettingsRequest(String key, Object value) { } diff --git a/server/api-service/lowcoder-server/src/test/java/org/lowcoder/api/application/ApplicationApiServiceTest.java b/server/api-service/lowcoder-server/src/test/java/org/lowcoder/api/application/ApplicationApiServiceTest.java index 80558c670..f912c3607 100644 --- a/server/api-service/lowcoder-server/src/test/java/org/lowcoder/api/application/ApplicationApiServiceTest.java +++ b/server/api-service/lowcoder-server/src/test/java/org/lowcoder/api/application/ApplicationApiServiceTest.java @@ -20,6 +20,7 @@ import org.lowcoder.domain.application.model.ApplicationStatus; import org.lowcoder.domain.application.model.ApplicationType; import org.lowcoder.domain.application.service.ApplicationService; +import org.lowcoder.domain.organization.model.Organization; import org.lowcoder.domain.permission.model.ResourceHolder; import org.lowcoder.domain.permission.model.ResourceRole; import org.lowcoder.sdk.constants.FieldName; @@ -332,4 +333,24 @@ public void testAppCreateAndRetrievalByGID() { }) .verifyComplete(); } + + @Test + @WithMockUser + public void testUpdateSlug() { + // Create a dummy application + Mono applicationMono = createApplication("SlugTestApp", null) + .map(applicationView -> applicationView.getApplicationInfoView().getApplicationId()); + + // Assume updateSlug is performed by passing applicationId and the new slug + Mono updatedApplicationMono = applicationMono + .flatMap(applicationId -> applicationApiService.updateSlug(applicationId, "new-slug-value")); + + // Verify the application updates with the new slug + StepVerifier.create(updatedApplicationMono) + .assertNext(application -> { + Assertions.assertNotNull(application.getSlug(), "Slug should not be null"); + Assertions.assertEquals("new-slug-value", application.getSlug(), "Slug should be updated to 'new-slug-value'"); + }) + .verifyComplete(); + } } \ No newline at end of file diff --git a/server/api-service/lowcoder-server/src/test/java/org/lowcoder/api/service/OrganizationServiceTest.java b/server/api-service/lowcoder-server/src/test/java/org/lowcoder/api/service/OrganizationServiceTest.java new file mode 100644 index 000000000..f2e2cc631 --- /dev/null +++ b/server/api-service/lowcoder-server/src/test/java/org/lowcoder/api/service/OrganizationServiceTest.java @@ -0,0 +1,52 @@ +package org.lowcoder.api.service; + +import lombok.extern.slf4j.Slf4j; +import org.junit.jupiter.api.Assertions; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.TestInstance; +import org.lowcoder.api.common.mockuser.WithMockUser; +import org.lowcoder.domain.organization.model.Organization; +import org.lowcoder.domain.organization.service.OrganizationService; +import org.lowcoder.sdk.models.HasIdAndAuditing; +import org.springframework.boot.test.context.SpringBootTest; +import org.springframework.test.context.ActiveProfiles; +import reactor.core.publisher.Mono; +import reactor.test.StepVerifier; + +@SpringBootTest +//@RunWith(SpringRunner.class) +@ActiveProfiles("OrganizationApiServiceTest") +@Slf4j(topic = "OrganizationApiServiceTest") + +@TestInstance(TestInstance.Lifecycle.PER_CLASS) +public class OrganizationServiceTest { + + private OrganizationService organizationService; + + private Mono createOrganization(String name) { + Organization organization = Organization.builder() + .name(name) + .build(); + return organizationService.create(organization, "", false); + } + + @Test + @WithMockUser + public void testUpdateSlug() { + // Create a dummy organization + Mono organizationMono = createOrganization("SlugTestOrganization") + .map(HasIdAndAuditing::getId); + + // Assume updateSlug is performed by passing organizationId and the new slug + Mono updatedOrganizationMono = organizationMono + .flatMap(organizationId -> organizationService.updateSlug(organizationId, "new-slug-value")); + + // Verify the organization updates with the new slug + StepVerifier.create(updatedOrganizationMono) + .assertNext(organization -> { + Assertions.assertNotNull(organization.getSlug(), "Slug should not be null"); + Assertions.assertEquals("new-slug-value", organization.getSlug(), "Slug should be updated to 'new-slug-value'"); + }) + .verifyComplete(); + } +} From b4623853680a7a04cc57e7ae85963545e00189f1 Mon Sep 17 00:00:00 2001 From: Thomasr Date: Thu, 19 Dec 2024 10:33:44 -0500 Subject: [PATCH 85/88] Fix service autowire in test --- .../org/lowcoder/api/service/OrganizationServiceTest.java | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/server/api-service/lowcoder-server/src/test/java/org/lowcoder/api/service/OrganizationServiceTest.java b/server/api-service/lowcoder-server/src/test/java/org/lowcoder/api/service/OrganizationServiceTest.java index f2e2cc631..8083d2ebd 100644 --- a/server/api-service/lowcoder-server/src/test/java/org/lowcoder/api/service/OrganizationServiceTest.java +++ b/server/api-service/lowcoder-server/src/test/java/org/lowcoder/api/service/OrganizationServiceTest.java @@ -8,6 +8,7 @@ import org.lowcoder.domain.organization.model.Organization; import org.lowcoder.domain.organization.service.OrganizationService; import org.lowcoder.sdk.models.HasIdAndAuditing; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.test.context.SpringBootTest; import org.springframework.test.context.ActiveProfiles; import reactor.core.publisher.Mono; @@ -21,13 +22,14 @@ @TestInstance(TestInstance.Lifecycle.PER_CLASS) public class OrganizationServiceTest { + @Autowired private OrganizationService organizationService; private Mono createOrganization(String name) { Organization organization = Organization.builder() .name(name) .build(); - return organizationService.create(organization, "", false); + return organizationService.create(organization, "user01", false); } @Test From 0f9972000962110b9ff32a607a51b84b77bc3409 Mon Sep 17 00:00:00 2001 From: FalkWolsky Date: Fri, 20 Dec 2024 14:59:59 +0100 Subject: [PATCH 86/88] Publishing new Lowcoder-Comps --- client/packages/lowcoder-comps/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/client/packages/lowcoder-comps/package.json b/client/packages/lowcoder-comps/package.json index 882a0267e..0b5778ea7 100644 --- a/client/packages/lowcoder-comps/package.json +++ b/client/packages/lowcoder-comps/package.json @@ -1,6 +1,6 @@ { "name": "lowcoder-comps", - "version": "2.5.2", + "version": "2.5.3", "type": "module", "license": "MIT", "dependencies": { From fbb70b809d1e531dfdb24207431125daefdd2935 Mon Sep 17 00:00:00 2001 From: FalkWolsky Date: Fri, 20 Dec 2024 15:16:47 +0100 Subject: [PATCH 87/88] Introducing EODHD Datasource --- .../packages/lowcoder/src/i18n/locales/de.ts | 2 +- .../packages/lowcoder/src/i18n/locales/en.ts | 2 +- .../packages/lowcoder/src/i18n/locales/es.ts | 2 +- .../packages/lowcoder/src/i18n/locales/it.ts | 2 +- .../packages/lowcoder/src/i18n/locales/pt.ts | 2 +- .../src/plugins/eodhdApi/eodhdApi.spec.json | 1751 +++++++++++++++++ .../src/plugins/eodhdApi/index.ts | 53 + server/node-service/src/plugins/index.ts | 2 + .../src/static/plugin-icons/eodhdApi.svg | 1 + 9 files changed, 1812 insertions(+), 5 deletions(-) create mode 100644 server/node-service/src/plugins/eodhdApi/eodhdApi.spec.json create mode 100644 server/node-service/src/plugins/eodhdApi/index.ts create mode 100644 server/node-service/src/static/plugin-icons/eodhdApi.svg diff --git a/client/packages/lowcoder/src/i18n/locales/de.ts b/client/packages/lowcoder/src/i18n/locales/de.ts index 95712a416..6678a6846 100644 --- a/client/packages/lowcoder/src/i18n/locales/de.ts +++ b/client/packages/lowcoder/src/i18n/locales/de.ts @@ -789,7 +789,7 @@ export const de = { "categoryProjectManagement": "Projektmanagement", "categoryCrm": "CRM", "categoryEcommerce": "E-Commerce", - "categoryWebscrapers": "Web-Scraper", + "categoryWebscrapers": "Web-Scraper & Open Data", "categoryDocumentHandling": "Bericht & Dokumentenerstellung", "categoryRPA": "Roboter Prozess Automatisierung" }, diff --git a/client/packages/lowcoder/src/i18n/locales/en.ts b/client/packages/lowcoder/src/i18n/locales/en.ts index c781e9580..71d619e91 100644 --- a/client/packages/lowcoder/src/i18n/locales/en.ts +++ b/client/packages/lowcoder/src/i18n/locales/en.ts @@ -787,7 +787,7 @@ export const en = { "categoryProjectManagement" : "Project Management", "categoryCrm" : "CRM", "categoryEcommerce" : "E-commerce", - "categoryWebscrapers" : "Webscrapers", + "categoryWebscrapers" : "Webscrapers & Open Data", "categoryDocumentHandling" : "Report & Document Generation", "categoryRPA" : "Robotic Process Automation", }, diff --git a/client/packages/lowcoder/src/i18n/locales/es.ts b/client/packages/lowcoder/src/i18n/locales/es.ts index 16251e7c4..b276a055c 100644 --- a/client/packages/lowcoder/src/i18n/locales/es.ts +++ b/client/packages/lowcoder/src/i18n/locales/es.ts @@ -789,7 +789,7 @@ export const es = { "categoryProjectManagement": "Gestión de Proyectos", "categoryCrm": "CRM", "categoryEcommerce": "Comercio Electrónico", - "categoryWebscrapers": "Raspadores Web", + "categoryWebscrapers": "Raspadores Web & Open Data", "categoryDocumentHandling": "Generación de Informes y Documentos", "categoryRPA": "Automatización de Procesos Robóticos", }, diff --git a/client/packages/lowcoder/src/i18n/locales/it.ts b/client/packages/lowcoder/src/i18n/locales/it.ts index dd758958c..a5fe6c70d 100644 --- a/client/packages/lowcoder/src/i18n/locales/it.ts +++ b/client/packages/lowcoder/src/i18n/locales/it.ts @@ -789,7 +789,7 @@ export const it = { "categoryProjectManagement": "Gestione Progetti", "categoryCrm": "CRM", "categoryEcommerce": "E-commerce", - "categoryWebscrapers": "Web Scrapers", + "categoryWebscrapers": "Web Scrapers & Open Data", "categoryDocumentHandling": "Generazione Report e Documenti", "categoryRPA": "Automazione Robotica dei Processi", }, diff --git a/client/packages/lowcoder/src/i18n/locales/pt.ts b/client/packages/lowcoder/src/i18n/locales/pt.ts index 641a98146..78a184e44 100644 --- a/client/packages/lowcoder/src/i18n/locales/pt.ts +++ b/client/packages/lowcoder/src/i18n/locales/pt.ts @@ -789,7 +789,7 @@ export const pt = { "categoryProjectManagement": "Gerenciamento de Projetos", "categoryCrm": "CRM", "categoryEcommerce": "Comércio Eletrônico", - "categoryWebscrapers": "Raspadores Web", + "categoryWebscrapers": "Raspadores Web & Open Data", "categoryDocumentHandling": "Geração de Relatórios e Documentos", "categoryRPA": "Automação de Processos Robóticos" }, diff --git a/server/node-service/src/plugins/eodhdApi/eodhdApi.spec.json b/server/node-service/src/plugins/eodhdApi/eodhdApi.spec.json new file mode 100644 index 000000000..ee43a785f --- /dev/null +++ b/server/node-service/src/plugins/eodhdApi/eodhdApi.spec.json @@ -0,0 +1,1751 @@ +{ + "openapi": "3.0.3", + "info": { + "title": "EOD Historical Data API", + "description": "Comprehensive OpenAPI Specification for the EOD Historical Data Service, merging abstract endpoints and detailed examples into a structured format with dynamic parameters. Find here the information about procing and Sign Up to obtain your API Key.", + "version": "1.0.1", + "contact": { + "email": "support@eodhistoricaldata.com" + }, + "license": { + "name": "GPL-3.0" + } + }, + "servers": [ + { + "url": "https://eodhistoricaldata.com/api", + "description": "Main API server" + } + ], + "tags": [ + { + "name": "EOD (End Of Day) Data", + "description": "Endpoints for historical end-of-day data." + }, + { + "name": "Live (Delayed) Data", + "description": "Endpoints for live and delayed market data." + }, + { + "name": "Dividends and Splits Data", + "description": "Endpoints for accessing dividend and split data." + }, + { + "name": "Technical Indicators", + "description": "Endpoints for technical indicator data." + }, + { + "name": "Fundamental Data", + "description": "Endpoints for fundamental data of assets." + }, + { + "name": "Intraday Data", + "description": "Endpoints for intraday market data." + }, + { + "name": "Historical Market Capitalization", + "description": "Endpoints for market capitalization data." + }, + { + "name": "Insider Transactions Data", + "description": "Endpoints for insider transaction data." + }, + { + "name": "Financial Calendar", + "description": "Endpoints for earnings and IPO calendars." + }, + { + "name": "Bonds Data", + "description": "Endpoints for bond fundamentals and EOD data." + }, + { + "name": "Bulk Data", + "description": "Endpoints for bulk EOD data." + }, + { + "name": "Exchanges", + "description": "Endpoints for exchange data and symbol lists." + }, + { + "name": "Stock Market Screener", + "description": "Endpoints for screening stocks." + }, + { + "name": "Stock Market Search", + "description": "Endpoints for searching stock market data." + }, + { + "name": "Sentiment Data", + "description": "Endpoints for sentiment analysis from news and tweets." + }, + { + "name": "Economic Events Data", + "description": "Endpoints for economic events and indicators." + }, + { + "name": "Macroeconomic Data", + "description": "Endpoints for macroeconomic data like bonds and exchange rates." + } + ], + "paths": { + "/eod/{ticker}": { + "get": { + "tags": [ + "EOD (End Of Day) Data" + ], + "summary": "Get End of Day Historical Quotes", + "description": "Fetch historical end-of-day data for a specified ticker.", + "parameters": [ + { + "name": "ticker", + "in": "path", + "required": true, + "description": "Ticker symbol for the asset (e.g., AAPL, TSLA).", + "schema": { + "type": "string" + } + }, + { + "name": "from", + "in": "query", + "required": false, + "description": "Start date for the data in YYYY-MM-DD format.", + "schema": { + "type": "string", + "format": "date" + } + }, + { + "name": "to", + "in": "query", + "required": false, + "description": "End date for the data in YYYY-MM-DD format.", + "schema": { + "type": "string", + "format": "date" + } + }, + { + "name": "api_token", + "in": "query", + "required": true, + "description": "API authentication token.", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Successful response containing historical data.", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/EODQuote" + } + } + } + } + }, + "400": { + "description": "Invalid request parameters." + }, + "401": { + "description": "Unauthorized or missing API token." + } + } + } + }, + "/real-time/{ticker}": { + "get": { + "tags": [ + "Live (Delayed) Data" + ], + "summary": "Get Live or Delayed Quotes", + "description": "Fetch live or delayed data for a specified ticker.", + "parameters": [ + { + "name": "ticker", + "in": "path", + "required": true, + "description": "Ticker symbol for the asset.", + "schema": { + "type": "string" + } + }, + { + "name": "api_token", + "in": "query", + "required": true, + "description": "API authentication token.", + "schema": { + "type": "string" + } + }, + { + "name": "fmt", + "in": "query", + "required": false, + "description": "Format of the response (e.g., json, csv).", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Successful response containing live data.", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "ticker": { + "type": "string" + }, + "price": { + "type": "number" + } + } + } + } + } + } + } + } + }, + "/div/{ticker}": { + "get": { + "tags": [ + "Dividends and Splits Data" + ], + "summary": "Get Dividend Data", + "description": "Fetch dividend data for a specified ticker.", + "parameters": [ + { + "name": "ticker", + "in": "path", + "required": true, + "description": "Ticker symbol for the asset.", + "schema": { + "type": "string" + } + }, + { + "name": "from", + "in": "query", + "required": false, + "description": "Start date for the data in YYYY-MM-DD format.", + "schema": { + "type": "string", + "format": "date" + } + }, + { + "name": "to", + "in": "query", + "required": false, + "description": "End date for the data in YYYY-MM-DD format.", + "schema": { + "type": "string", + "format": "date" + } + }, + { + "name": "api_token", + "in": "query", + "required": true, + "description": "API authentication token.", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Successful response containing dividend data.", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "ticker": { + "type": "string" + }, + "dividends": { + "type": "array", + "items": { + "type": "object", + "properties": { + "date": { + "type": "string", + "format": "date" + }, + "amount": { + "type": "number" + } + } + } + } + } + } + } + } + } + } + } + }, + "/intraday/{ticker}": { + "get": { + "tags": [ + "Intraday Data" + ], + "summary": "Get Intraday Data", + "description": "Fetch intraday data for a specified ticker.", + "parameters": [ + { + "name": "ticker", + "in": "path", + "required": true, + "description": "Ticker symbol for the asset.", + "schema": { + "type": "string" + } + }, + { + "name": "interval", + "in": "query", + "required": false, + "description": "Interval for the intraday data (e.g., 1m, 5m, 1h).", + "schema": { + "type": "string" + } + }, + { + "name": "from", + "in": "query", + "required": false, + "description": "Start date or timestamp for the data.", + "schema": { + "type": "string" + } + }, + { + "name": "to", + "in": "query", + "required": false, + "description": "End date or timestamp for the data.", + "schema": { + "type": "string" + } + }, + { + "name": "api_token", + "in": "query", + "required": true, + "description": "API authentication token.", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Successful response containing intraday data.", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/EODQuote" + } + } + } + } + } + } + } + }, + "/fundamentals/{symbol}.{exchange_code}": { + "get": { + "tags": [ + "Fundamental Data" + ], + "summary": "Get Asset Fundamentals", + "description": "Fetch fundamental data for a specific asset.", + "parameters": [ + { + "name": "symbol", + "in": "path", + "required": true, + "description": "Symbol name of the asset.", + "schema": { + "type": "string" + } + }, + { + "name": "exchange_code", + "in": "path", + "required": true, + "description": "Exchange code for the asset.", + "schema": { + "type": "string" + } + }, + { + "name": "api_token", + "in": "query", + "required": true, + "description": "API authentication token.", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Successful response containing fundamental data.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Symbol" + } + } + } + } + } + } + }, + "/historical-market-cap/{symbol}.{exchange_code}": { + "get": { + "tags": [ + "Historical Market Capitalization" + ], + "summary": "Get Historical Market Cap", + "description": "Fetch historical market capitalization data for a specific asset.", + "parameters": [ + { + "name": "symbol", + "in": "path", + "required": true, + "description": "Symbol name of the asset.", + "schema": { + "type": "string" + } + }, + { + "name": "exchange_code", + "in": "path", + "required": true, + "description": "Exchange code for the asset.", + "schema": { + "type": "string" + } + }, + { + "name": "from", + "in": "query", + "required": false, + "description": "Start date for the data in YYYY-MM-DD format.", + "schema": { + "type": "string" + } + }, + { + "name": "to", + "in": "query", + "required": false, + "description": "End date for the data in YYYY-MM-DD format.", + "schema": { + "type": "string" + } + }, + { + "name": "api_token", + "in": "query", + "required": true, + "description": "API authentication token.", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Successful response containing historical market cap data.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/EODQuote" + } + } + } + } + } + } + }, + "/insider-transactions": { + "get": { + "tags": [ + "Insider Transactions Data" + ], + "summary": "Get Insider Transactions", + "description": "Fetch insider transactions data for various assets.", + "parameters": [ + { + "name": "from", + "in": "query", + "required": false, + "description": "Start date for the transactions in YYYY-MM-DD format.", + "schema": { + "type": "string" + } + }, + { + "name": "to", + "in": "query", + "required": false, + "description": "End date for the transactions in YYYY-MM-DD format.", + "schema": { + "type": "string" + } + }, + { + "name": "limit", + "in": "query", + "required": false, + "description": "Number of transactions to return.", + "schema": { + "type": "integer" + } + }, + { + "name": "api_token", + "in": "query", + "required": true, + "description": "API authentication token.", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Successful response containing insider transactions.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Symbol" + } + } + } + } + } + } + }, + "/splits/{ticker}": { + "get": { + "tags": [ + "Dividends and Splits Data" + ], + "summary": "Get Split Data", + "description": "Fetch split data for a specified ticker.", + "parameters": [ + { + "name": "ticker", + "in": "path", + "required": true, + "description": "Ticker symbol for the asset.", + "schema": { + "type": "string" + } + }, + { + "name": "api_token", + "in": "query", + "required": true, + "description": "API authentication token.", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Successful response containing split data.", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "ticker": { + "type": "string" + }, + "splits": { + "type": "array", + "items": { + "type": "object", + "properties": { + "date": { + "type": "string", + "format": "date" + }, + "ratio": { + "type": "string" + } + } + } + } + } + } + } + } + } + } + } + }, + "/technical/{ticker}": { + "get": { + "tags": [ + "Technical Indicators" + ], + "summary": "Get Technical Indicators", + "description": "Fetch technical indicators for a specified ticker.", + "parameters": [ + { + "name": "ticker", + "in": "path", + "required": true, + "description": "Ticker symbol for the asset.", + "schema": { + "type": "string" + } + }, + { + "name": "indicator", + "in": "query", + "required": true, + "description": "Indicator type (e.g., SMA, EMA).", + "schema": { + "type": "string" + } + }, + { + "name": "period", + "in": "query", + "required": false, + "description": "Period for the indicator.", + "schema": { + "type": "integer" + } + }, + { + "name": "api_token", + "in": "query", + "required": true, + "description": "API authentication token.", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Successful response containing indicator data.", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "ticker": { + "type": "string" + }, + "indicator": { + "type": "object", + "properties": { + "value": { + "type": "number" + }, + "date": { + "type": "string", + "format": "date" + } + } + } + } + } + } + } + } + } + } + }, + "/calendar/earnings": { + "get": { + "tags": [ + "Financial Calendar" + ], + "summary": "Get Earnings Calendar", + "description": "Fetch the earnings calendar.", + "parameters": [ + { + "name": "api_token", + "in": "query", + "required": true, + "description": "API authentication token.", + "schema": { + "type": "string" + } + }, + { + "name": "from", + "in": "query", + "required": false, + "description": "Start date for the calendar in YYYY-MM-DD format.", + "schema": { + "type": "string" + } + }, + { + "name": "to", + "in": "query", + "required": false, + "description": "End date for the calendar in YYYY-MM-DD format.", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Successful response containing the earnings calendar.", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "type": "object", + "properties": { + "symbol": { + "type": "string" + }, + "date": { + "type": "string", + "format": "date" + } + } + } + } + } + } + } + } + } + }, + "/calendar/trends": { + "get": { + "tags": [ + "Financial Calendar" + ], + "summary": "Get Calendar Trends", + "description": "Fetch financial calendar trends.", + "parameters": [ + { + "name": "api_token", + "in": "query", + "required": true, + "description": "API authentication token.", + "schema": { + "type": "string" + } + }, + { + "name": "symbols", + "in": "query", + "required": false, + "description": "Comma-separated list of symbols.", + "schema": { + "type": "string" + } + }, + { + "name": "from", + "in": "query", + "required": false, + "description": "Start date in YYYY-MM-DD format.", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Successful response containing trends data.", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "type": "object", + "properties": { + "symbol": { + "type": "string" + }, + "trend": { + "type": "string" + } + } + } + } + } + } + } + } + } + }, + "/calendar/ipos": { + "get": { + "tags": [ + "Financial Calendar" + ], + "summary": "Get IPO Calendar", + "description": "Fetch the IPO calendar.", + "parameters": [ + { + "name": "api_token", + "in": "query", + "required": true, + "description": "API authentication token.", + "schema": { + "type": "string" + } + }, + { + "name": "from", + "in": "query", + "required": false, + "description": "Start date in YYYY-MM-DD format.", + "schema": { + "type": "string" + } + }, + { + "name": "to", + "in": "query", + "required": false, + "description": "End date in YYYY-MM-DD format.", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Successful response containing IPO data.", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "type": "object", + "properties": { + "symbol": { + "type": "string" + }, + "ipo_date": { + "type": "string", + "format": "date" + } + } + } + } + } + } + } + } + } + }, + "/bond-fundamentals/{symbol_name}": { + "get": { + "tags": [ + "Bonds Data" + ], + "summary": "Get Bond Fundamentals", + "description": "Fetch fundamental data for a specific bond.", + "parameters": [ + { + "name": "symbol_name", + "in": "path", + "required": true, + "description": "Symbol name of the bond.", + "schema": { + "type": "string" + } + }, + { + "name": "api_token", + "in": "query", + "required": true, + "description": "API authentication token.", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Successful response containing bond fundamentals.", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "symbol": { + "type": "string" + }, + "details": { + "type": "object" + } + } + } + } + } + } + } + } + }, + "/eod-bulk-last-day/{exchange_code}": { + "get": { + "tags": [ + "Bulk Data" + ], + "summary": "Get Bulk EOD Data for Last Day", + "description": "Fetch end-of-day bulk data for the last trading day for a specific exchange.", + "parameters": [ + { + "name": "exchange_code", + "in": "path", + "required": true, + "description": "Code of the exchange (e.g., NASDAQ, NYSE).", + "schema": { + "type": "string" + } + }, + { + "name": "api_token", + "in": "query", + "required": true, + "description": "API authentication token.", + "schema": { + "type": "string" + } + }, + { + "name": "type", + "in": "query", + "required": false, + "description": "Type of data (e.g., splits, dividends).", + "schema": { + "type": "string" + } + }, + { + "name": "date", + "in": "query", + "required": false, + "description": "Date for the bulk data in YYYY-MM-DD format.", + "schema": { + "type": "string" + } + }, + { + "name": "symbols", + "in": "query", + "required": false, + "description": "Comma-separated list of symbols.", + "schema": { + "type": "string" + } + }, + { + "name": "fmt", + "in": "query", + "required": false, + "description": "Format of the response (e.g., json, csv).", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Successful response containing bulk EOD data.", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "type": "object", + "properties": { + "symbol": { + "type": "string" + }, + "data": { + "type": "object" + } + } + } + } + } + } + } + } + } + }, + "/exchanges-list": { + "get": { + "tags": [ + "Exchanges" + ], + "summary": "Get List of Supported Exchanges", + "description": "Fetch a list of all supported exchanges.", + "parameters": [ + { + "name": "api_token", + "in": "query", + "required": true, + "description": "API authentication token.", + "schema": { + "type": "string" + } + }, + { + "name": "fmt", + "in": "query", + "required": false, + "description": "Format of the response (e.g., json, csv).", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Successful response containing a list of exchanges.", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "type": "object", + "properties": { + "exchange_code": { + "type": "string" + }, + "name": { + "type": "string" + } + } + } + } + } + } + } + } + } + }, + "/exchange-symbol-list/{exchange_name}": { + "get": { + "tags": [ + "Exchanges" + ], + "summary": "Get Symbol List for an Exchange", + "description": "Fetch a list of symbols for a specific exchange.", + "parameters": [ + { + "name": "exchange_name", + "in": "path", + "required": true, + "description": "Name of the exchange.", + "schema": { + "type": "string" + } + }, + { + "name": "api_token", + "in": "query", + "required": true, + "description": "API authentication token.", + "schema": { + "type": "string" + } + }, + { + "name": "delisted", + "in": "query", + "required": false, + "description": "Include delisted symbols (1 for true, 0 for false).", + "schema": { + "type": "integer" + } + }, + { + "name": "fmt", + "in": "query", + "required": false, + "description": "Format of the response (e.g., json, csv).", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Successful response containing a list of symbols.", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "type": "object", + "properties": { + "symbol": { + "type": "string" + }, + "name": { + "type": "string" + } + } + } + } + } + } + } + } + } + }, + "/exchange-details/{exchange_code}": { + "get": { + "tags": [ + "Exchanges" + ], + "summary": "Get Exchange Details", + "description": "Fetch details about a specific exchange, including working hours and market holidays.", + "parameters": [ + { + "name": "exchange_code", + "in": "path", + "required": true, + "description": "Code of the exchange.", + "schema": { + "type": "string" + } + }, + { + "name": "api_token", + "in": "query", + "required": true, + "description": "API authentication token.", + "schema": { + "type": "string" + } + }, + { + "name": "from", + "in": "query", + "required": false, + "description": "Start date for the data in YYYY-MM-DD format.", + "schema": { + "type": "string" + } + }, + { + "name": "to", + "in": "query", + "required": false, + "description": "End date for the data in YYYY-MM-DD format.", + "schema": { + "type": "string" + } + }, + { + "name": "fmt", + "in": "query", + "required": false, + "description": "Format of the response (e.g., json, csv).", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Successful response containing exchange details.", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "exchange_code": { + "type": "string" + }, + "details": { + "type": "object" + } + } + } + } + } + } + } + } + }, + "/screener": { + "get": { + "tags": [ + "Stock Market Screener" + ], + "summary": "Screen Stocks", + "description": "Fetch stock market screener results based on various filters.", + "parameters": [ + { + "name": "api_token", + "in": "query", + "required": true, + "description": "API authentication token.", + "schema": { + "type": "string" + } + }, + { + "name": "sort", + "in": "query", + "required": false, + "description": "Sorting order for the screener results (e.g., market_capitalization.desc).", + "schema": { + "type": "string" + } + }, + { + "name": "filters", + "in": "query", + "required": false, + "description": "Filters for the screener results in JSON format.", + "schema": { + "type": "string" + } + }, + { + "name": "limit", + "in": "query", + "required": false, + "description": "Maximum number of results to return.", + "schema": { + "type": "integer" + } + }, + { + "name": "offset", + "in": "query", + "required": false, + "description": "Offset for pagination.", + "schema": { + "type": "integer" + } + } + ], + "responses": { + "200": { + "description": "Successful response containing screener results.", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "type": "object", + "properties": { + "symbol": { + "type": "string" + }, + "data": { + "type": "object" + } + } + } + } + } + } + } + } + } + }, + "/search/{symbol_name}": { + "get": { + "tags": [ + "Stock Market Search" + ], + "summary": "Search for Symbols", + "description": "Fetch search results for a specified symbol or name.", + "parameters": [ + { + "name": "symbol_name", + "in": "path", + "required": true, + "description": "Symbol or name to search for.", + "schema": { + "type": "string" + } + }, + { + "name": "api_token", + "in": "query", + "required": true, + "description": "API authentication token.", + "schema": { + "type": "string" + } + }, + { + "name": "limit", + "in": "query", + "required": false, + "description": "Maximum number of results to return.", + "schema": { + "type": "integer" + } + } + ], + "responses": { + "200": { + "description": "Successful response containing search results.", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "type": "object", + "properties": { + "symbol": { + "type": "string" + }, + "name": { + "type": "string" + } + } + } + } + } + } + } + } + } + }, + "/sentiments": { + "get": { + "tags": [ + "Sentiment Data" + ], + "summary": "Get Sentiments", + "description": "Fetch sentiment data for specified symbols.", + "parameters": [ + { + "name": "s", + "in": "query", + "required": true, + "description": "Comma-separated list of symbols.", + "schema": { + "type": "string" + } + }, + { + "name": "from", + "in": "query", + "required": false, + "description": "Start date in YYYY-MM-DD format.", + "schema": { + "type": "string" + } + }, + { + "name": "to", + "in": "query", + "required": false, + "description": "End date in YYYY-MM-DD format.", + "schema": { + "type": "string" + } + }, + { + "name": "api_token", + "in": "query", + "required": true, + "description": "API authentication token.", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Successful response containing sentiment data.", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "type": "object", + "properties": { + "symbol": { + "type": "string" + }, + "sentiment": { + "type": "string" + } + } + } + } + } + } + } + } + } + }, + "/tweets-sentiments": { + "get": { + "tags": [ + "Sentiment Data" + ], + "summary": "Get Tweets Sentiments", + "description": "Fetch sentiment data from tweets for specified symbols.", + "parameters": [ + { + "name": "s", + "in": "query", + "required": true, + "description": "Comma-separated list of symbols.", + "schema": { + "type": "string" + } + }, + { + "name": "from", + "in": "query", + "required": false, + "description": "Start date in YYYY-MM-DD format.", + "schema": { + "type": "string" + } + }, + { + "name": "to", + "in": "query", + "required": false, + "description": "End date in YYYY-MM-DD format.", + "schema": { + "type": "string" + } + }, + { + "name": "api_token", + "in": "query", + "required": true, + "description": "API authentication token.", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Successful response containing tweet sentiment data.", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "type": "object", + "properties": { + "symbol": { + "type": "string" + }, + "sentiment": { + "type": "string" + } + } + } + } + } + } + } + } + } + }, + "/economic-events": { + "get": { + "tags": [ + "Economic Events Data" + ], + "summary": "Get Economic Events", + "description": "Fetch economic events data.", + "parameters": [ + { + "name": "api_token", + "in": "query", + "required": true, + "description": "API authentication token.", + "schema": { + "type": "string" + } + }, + { + "name": "limit", + "in": "query", + "required": false, + "description": "Maximum number of results to return.", + "schema": { + "type": "integer" + } + }, + { + "name": "country", + "in": "query", + "required": false, + "description": "Country code (e.g., US, FR).", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Successful response containing economic events.", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "type": "object", + "properties": { + "event": { + "type": "string" + }, + "date": { + "type": "string", + "format": "date" + } + } + } + } + } + } + } + } + } + }, + "/news": { + "get": { + "tags": [ + "Financial News API" + ], + "summary": "Get Financial News", + "description": "Fetch financial news articles.", + "parameters": [ + { + "name": "api_token", + "in": "query", + "required": true, + "description": "API authentication token.", + "schema": { + "type": "string" + } + }, + { + "name": "s", + "in": "query", + "required": false, + "description": "Symbol or topic to filter news.", + "schema": { + "type": "string" + } + }, + { + "name": "offset", + "in": "query", + "required": false, + "description": "Offset for pagination.", + "schema": { + "type": "integer" + } + }, + { + "name": "limit", + "in": "query", + "required": false, + "description": "Maximum number of results to return.", + "schema": { + "type": "integer" + } + }, + { + "name": "t", + "in": "query", + "required": false, + "description": "Topic to filter news.", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Successful response containing news articles.", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "type": "object", + "properties": { + "title": { + "type": "string" + }, + "date": { + "type": "string", + "format": "date" + }, + "content": { + "type": "string" + } + } + } + } + } + } + } + } + } + }, + "/macro-indicator/{indicator_name}": { + "get": { + "tags": [ + "Macro Indicators Data" + ], + "summary": "Get Macro Indicator Data", + "description": "Fetch data for a specific macroeconomic indicator.", + "parameters": [ + { + "name": "indicator_name", + "in": "path", + "required": true, + "description": "Name of the macroeconomic indicator.", + "schema": { + "type": "string" + } + }, + { + "name": "api_token", + "in": "query", + "required": true, + "description": "API authentication token.", + "schema": { + "type": "string" + } + }, + { + "name": "fmt", + "in": "query", + "required": false, + "description": "Response format (e.g., json, csv).", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Successful response containing macro indicator data.", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "indicator": { + "type": "string" + }, + "value": { + "type": "number" + }, + "date": { + "type": "string", + "format": "date" + } + } + } + } + } + } + } + } + } + }, + "components": { + "schemas": { + "EODQuote": { + "type": "object", + "properties": { + "date": { + "type": "string", + "format": "date" + }, + "open": { + "type": "number" + }, + "high": { + "type": "number" + }, + "low": { + "type": "number" + }, + "close": { + "type": "number" + }, + "volume": { + "type": "integer" + } + }, + "required": [ + "date", + "open", + "high", + "low", + "close", + "volume" + ] + }, + "Symbol": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "name": { + "type": "string" + }, + "exchange": { + "type": "string" + }, + "currency": { + "type": "string" + } + }, + "required": [ + "code", + "name", + "exchange" + ] + } + } + } +} diff --git a/server/node-service/src/plugins/eodhdApi/index.ts b/server/node-service/src/plugins/eodhdApi/index.ts new file mode 100644 index 000000000..bbe65b29d --- /dev/null +++ b/server/node-service/src/plugins/eodhdApi/index.ts @@ -0,0 +1,53 @@ +import { readYaml } from "../../common/util"; +import _ from "lodash"; +import path from "path"; +import { OpenAPIV3, OpenAPI } from "openapi-types"; +import { ConfigToType, DataSourcePlugin } from "lowcoder-sdk/dataSource"; +import { runOpenApi } from "../openApi"; +import { parseOpenApi, ParseOpenApiOptions } from "../openApi/parse"; + +import spec from './eodhdApi.spec.json'; + + +const dataSourceConfig = { + type: "dataSource", + params: [] +} as const; + +const parseOptions: ParseOpenApiOptions = { + actionLabel: (method: string, path: string, operation: OpenAPI.Operation) => { + return _.upperFirst(operation.operationId || ""); + }, +}; + +type DataSourceConfigType = ConfigToType; + +const eodhdApiPlugin: DataSourcePlugin = { + id: "eodhdApi", + name: "eodhdApi", + icon: "eodhdApi.svg", + category: "Webscrapers", + dataSourceConfig, + queryConfig: async () => { + const { actions, categories } = await parseOpenApi(spec as unknown as OpenAPI.Document, parseOptions); + return { + type: "query", + label: "Action", + categories: { + label: "Resources", + items: categories, + }, + actions, + }; + }, + run: function (actionData, dataSourceConfig): Promise { + const runApiDsConfig = { + url: "", + serverURL: "https://eodhd.com/api", + dynamicParamsConfig: dataSourceConfig, + }; + return runOpenApi(actionData, runApiDsConfig, spec as OpenAPIV3.Document); + }, +}; + +export default eodhdApiPlugin; diff --git a/server/node-service/src/plugins/index.ts b/server/node-service/src/plugins/index.ts index 79a41d720..fb25955de 100644 --- a/server/node-service/src/plugins/index.ts +++ b/server/node-service/src/plugins/index.ts @@ -44,6 +44,7 @@ import uiPathPlugin from "./uiPath"; import serpApiPlugin from "./serpApi"; import carboneIoPlugin from "./carboneIo"; import boomiPlugin from "./boomi"; +import eodhdApiPlugin from "./eodhdApi"; let plugins: (DataSourcePlugin | DataSourcePluginFactory)[] = [ @@ -116,6 +117,7 @@ let plugins: (DataSourcePlugin | DataSourcePluginFactory)[] = [ // Webscrapers serpApiPlugin, + eodhdApiPlugin, // RPA uiPathPlugin diff --git a/server/node-service/src/static/plugin-icons/eodhdApi.svg b/server/node-service/src/static/plugin-icons/eodhdApi.svg new file mode 100644 index 000000000..dd488a5d4 --- /dev/null +++ b/server/node-service/src/static/plugin-icons/eodhdApi.svg @@ -0,0 +1 @@ + \ No newline at end of file From 444ca54e5b9429972fcb300af5ac029208b92597 Mon Sep 17 00:00:00 2001 From: FalkWolsky Date: Fri, 20 Dec 2024 19:52:52 +0100 Subject: [PATCH 88/88] Adapting Frontend SDK Version --- client/packages/lowcoder-sdk/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/client/packages/lowcoder-sdk/package.json b/client/packages/lowcoder-sdk/package.json index dcd012e28..df47ee10d 100644 --- a/client/packages/lowcoder-sdk/package.json +++ b/client/packages/lowcoder-sdk/package.json @@ -1,6 +1,6 @@ { "name": "lowcoder-sdk", - "version": "2.5.2", + "version": "2.5.3", "type": "module", "files": [ "src",