From 34e3853659efa512d5458b0d21248e726512342f Mon Sep 17 00:00:00 2001 From: Dilan Perera Date: Mon, 3 Aug 2026 11:59:12 +0530 Subject: [PATCH 1/6] Add Pricefx connector documentation --- .../erp-business/pricefx/action-reference.md | 12728 ++++++++++++++++ .../catalog/erp-business/pricefx/overview.md | 39 + .../erp-business/pricefx/setup-guide.md | 47 + en/docs/connectors/catalog/index.mdx | 1 + en/sidebars.ts | 9 + 5 files changed, 12824 insertions(+) create mode 100644 en/docs/connectors/catalog/erp-business/pricefx/action-reference.md create mode 100644 en/docs/connectors/catalog/erp-business/pricefx/overview.md create mode 100644 en/docs/connectors/catalog/erp-business/pricefx/setup-guide.md diff --git a/en/docs/connectors/catalog/erp-business/pricefx/action-reference.md b/en/docs/connectors/catalog/erp-business/pricefx/action-reference.md new file mode 100644 index 0000000000..23900595ee --- /dev/null +++ b/en/docs/connectors/catalog/erp-business/pricefx/action-reference.md @@ -0,0 +1,12728 @@ +--- +connector: true +connector_name: "pricefx" +title: "Action Reference" +description: "Available operations in the ballerinax/pricefx connector." +--- + +# Action Reference + +## Client + +The `Client` wraps the generated `oas` client and adds the customization Pricefx's API needs on top: turning the credentials in `ConnectionConfig` into the right kind of authentication (JWT, HTTP Basic, OAuth 2.0, or a pre-signed external JWT), merging in any static headers (a two-factor authentication code, a CSRF token), and transparently re-authenticating and retrying once whenever a request comes back unauthenticated. Import `ballerinax/pricefx.oas` alongside `ballerinax/pricefx` — every operation's payload and response types live in the `oas` module. + +### Configuration + +#### PricefxCredentials + +Pricefx account credentials and authentication options, included directly in `ConnectionConfig`. Provide exactly one of the three combinations below. + +| Field | Type | Default | Description | +|-------|------|---------|-------------| +| `username` | string | Optional | Your Pricefx username | +| `password` | string | Optional | Your Pricefx password | +| `partition` | string | Optional | Your Pricefx partition name | +| `pricefxKey` | string | Optional | A Pricefx API key (contact Pricefx Support to obtain one). When set, authentication uses `POST /token`, which is faster and recommended for server-to-server integrations. When absent, authentication falls back to HTTP Basic auth (`<partition>/<username>:<password>`), which needs no separate API key but is slower per request | +| `oauth2ClientId` | string | Optional | OAuth 2.0 client identifier, as registered in Pricefx's `oauthConfiguration` | +| `oauth2ClientSecret` | string | Optional | OAuth 2.0 client secret, if one was configured for the client | +| `oauth2RefreshToken` | string | Optional | A refresh token previously obtained through Pricefx's OAuth 2.0 Authorization Code Grant flow. The connector uses it to fetch (and automatically refresh) access tokens | +| `tfaCode` | string | Optional | A cleartext two-factor authentication code, sent as the `PriceFx-TFA` header on every request. Only required when the calling user has TFA enabled and no session cookie exists | +| `csrfToken` | string | Optional | A CSRF token, sent as the `X-PriceFx-Csrf-Token` header on every request. Only required when the partition has CSRF protection enabled | +| `externalJwtSystemName` | string | Optional | The name of the external system trusted via Pricefx's `externalJWTConfiguration`, used together with `externalJwt` | +| `externalJwt` | string | Optional | A JWT signed by the external system named in `externalJwtSystemName`, sent as `Authorization: BEARER <externalJwtSystemName>;<externalJwt>` on every request | + +#### ConnectionConfig + +Provides a set of configurations for controlling the behaviours when communicating with the Pricefx API. Includes `PricefxCredentials` directly. The client automatically re-authenticates and retries once whenever a request comes back unauthenticated, so a long-lived client instance keeps working without manual re-initialization. + +| Field | Type | Default | Description | +|-------|------|---------|-------------| +| *(all `PricefxCredentials` fields)* | | | See above | +| `httpVersion` | http:HttpVersion | http:HTTP_2_0 | The HTTP version understood by the client | +| `http1Settings` | oas:ClientHttp1Settings | Optional | Configurations related to HTTP/1.x protocol | +| `http2Settings` | http:ClientHttp2Settings | Optional | Configurations related to HTTP/2 protocol | +| `timeout` | decimal | 60 | The maximum time to wait (in seconds) for a response before closing the connection | +| `forwarded` | string | "disable" | The choice of setting `forwarded`/`x-forwarded` header | +| `poolConfig` | http:PoolConfiguration | Optional | Configurations associated with request pooling | +| `cache` | http:CacheConfig | Optional | HTTP caching related configurations | +| `compression` | http:Compression | http:COMPRESSION_AUTO | Specifies the way of handling compression (`accept-encoding`) header | +| `circuitBreaker` | http:CircuitBreakerConfig | Optional | Configurations associated with the behaviour of the Circuit Breaker | +| `retryConfig` | http:RetryConfig | Optional | Configurations associated with retrying | +| `responseLimits` | http:ResponseLimitConfigs | Optional | Configurations associated with inbound response size limits | +| `secureSocket` | http:ClientSecureSocket | Optional | SSL/TLS-related options | +| `proxy` | http:ProxyConfig | Optional | Proxy server related options | +| `validation` | boolean | true | Enables the inbound payload validation functionality provided by the constraint package | +| `laxDataBinding` | boolean | true | Enables relaxed data binding on the client side, treating `nil` values and absent fields as optional | + +### Initializing the client + +```ballerina +import ballerinax/pricefx; +import ballerinax/pricefx.oas; + +configurable string username = ?; +configurable string password = ?; +configurable string partition = ?; +configurable string serviceUrl = ?; + +pricefx:Client pricefxClient = check new ({username, password, partition}, serviceUrl); +``` + +### Operations + +#### Authentication + +
+createAuthToken + +
+ +Get an Authentication Token (API V2 only) + +**Parameters:** + +| Name | Type | Required | Description | +|------|------|----------|--------------| +| `headers` | oas:CreateAuthTokenHeaders | Yes | Headers to be sent with the request | +| `payload` | oas:GetAuthenticationTokenAPIv2Request | Yes | | + +**Returns:** `oas:tokenResponse|error` + +**Sample code:** + +```ballerina +oas:tokenResponse result = check pricefxClient->createAuthToken(headers, payload); +``` + +
+
+ +
+deleteAuthToken + +
+ +Delete an Authentication Token (API V2 only) + +**Parameters:** + +| Name | Type | Required | Description | +|------|------|----------|--------------| +| `headers` | oas:DeleteAuthTokenHeaders | No | Headers to be sent with the request | + +**Returns:** `http:Response|error` + +**Sample code:** + +```ballerina +http:Response result = check pricefxClient->deleteAuthToken(); +``` + +
+
+ +
+login + +
+ +User Login (V1) + +**Parameters:** + +| Name | Type | Required | Description | +|------|------|----------|--------------| +| `headers` | map<string|string[]> | No | Headers to be sent with the request | + +**Returns:** `oas:UserLoginResponse|error` + +**Sample code:** + +```ballerina +oas:UserLoginResponse result = check pricefxClient->login(); +``` + +
+
+ +
+oauthAuthorize + +
+ +OAuth Authorization Request + +**Parameters:** + +| Name | Type | Required | Description | +|------|------|----------|--------------| +| `headers` | map<string|string[]> | No | Headers to be sent with the request | +| `queries` | *oas:OauthAuthorizeQueries | Yes | Queries to be sent with the request | + +**Returns:** `error?` + +**Sample code:** + +```ballerina +error? result = check pricefxClient->oauthAuthorize(queries); +``` + +
+
+ +
+oauthToken + +
+ +Access Token Request + +**Parameters:** + +| Name | Type | Required | Description | +|------|------|----------|--------------| +| `headers` | map<string|string[]> | No | Headers to be sent with the request | +| `queries` | *oas:OauthTokenQueries | Yes | Queries to be sent with the request | + +**Returns:** `oas:OAuthTokenResponse|error` + +**Sample code:** + +```ballerina +oas:OAuthTokenResponse result = check pricefxClient->oauthToken(queries); +``` + +
+
+ +
+refreshAuthToken + +
+ +Refresh an Authentication Token (API V2 only) + +**Parameters:** + +| Name | Type | Required | Description | +|------|------|----------|--------------| +| `headers` | oas:RefreshAuthTokenHeaders | Yes | Headers to be sent with the request | +| `payload` | oas:TokenRefreshBody | Yes | Provide the referesh token | + +**Returns:** `oas:tokenResponse|error` + +**Sample code:** + +```ballerina +oas:tokenResponse result = check pricefxClient->refreshAuthToken(headers, payload); +``` + +
+
+ +
+samlSignOn + +
+ +Authenticate with SAML + +**Parameters:** + +| Name | Type | Required | Description | +|------|------|----------|--------------| +| `headers` | map<string|string[]> | No | Headers to be sent with the request | +| `queries` | *oas:SamlSignOnQueries | Yes | Queries to be sent with the request | + +**Returns:** `error?` + +**Sample code:** + +```ballerina +error? result = check pricefxClient->samlSignOn(queries); +``` + +
+
+ +#### User Admin + +
+addUser + +
+ +Add a User + +**Parameters:** + +| Name | Type | Required | Description | +|------|------|----------|--------------| +| `payload` | oas:AddUserRequest | Yes | | +| `headers` | map<string|string[]> | No | Headers to be sent with the request | + +**Returns:** `oas:userResponse|error` + +**Sample code:** + +```ballerina +oas:userResponse result = check pricefxClient->addUser(payload); +``` + +
+
+ +
+assignBusinessRole + +
+ +Assign a Business Role + +**Parameters:** + +| Name | Type | Required | Description | +|------|------|----------|--------------| +| `payload` | oas:AssignBusinessRoleRequest | Yes | | +| `headers` | map<string|string[]> | No | Headers to be sent with the request | + +**Returns:** `oas:AssignBusinessRoleResponse|error` + +**Sample code:** + +```ballerina +oas:AssignBusinessRoleResponse result = check pricefxClient->assignBusinessRole(payload); +``` + +
+
+ +
+assignBusinessRoleToUser + +
+ +Assign a Business Role to a User + +**Parameters:** + +| Name | Type | Required | Description | +|------|------|----------|--------------| +| `userId` | string | Yes | The ID of the user you want to assign a role to. The `userId` is the `typedId` without the `U` suffix. For example, `userId` of the **2147490806.U** is **2147490806** | +| `payload` | oas:AssignBusinessRoleToUserRequest | Yes | | +| `headers` | map<string|string[]> | No | Headers to be sent with the request | + +**Returns:** `oas:AssignBusinessRoleToUserResponse|error` + +**Sample code:** + +```ballerina +oas:AssignBusinessRoleToUserResponse result = check pricefxClient->assignBusinessRoleToUser(userId, payload); +``` + +
+
+ +
+assignGroupToBusinessRole + +
+ +Assign a Group to a Business Role + +**Parameters:** + +| Name | Type | Required | Description | +|------|------|----------|--------------| +| `payload` | oas:AssignGroupToBusinessRoleRequest | Yes | | +| `headers` | map<string|string[]> | No | Headers to be sent with the request | + +**Returns:** `oas:AssignGroupToBusinessRoleResponse|error` + +**Sample code:** + +```ballerina +oas:AssignGroupToBusinessRoleResponse result = check pricefxClient->assignGroupToBusinessRole(payload); +``` + +
+
+ +
+assignRoleToBusinessRole + +
+ +Assign a Role to a Business Role + +**Parameters:** + +| Name | Type | Required | Description | +|------|------|----------|--------------| +| `payload` | oas:AssignRoleToBusinessRoleRequest | Yes | | +| `headers` | map<string|string[]> | No | Headers to be sent with the request | + +**Returns:** `oas:AssignRoleToBusinessRoleResponse|error` + +**Sample code:** + +```ballerina +oas:AssignRoleToBusinessRoleResponse result = check pricefxClient->assignRoleToBusinessRole(payload); +``` + +
+
+ +
+assignRoleToUser + +
+ +Assign a Role to a User + +**Parameters:** + +| Name | Type | Required | Description | +|------|------|----------|--------------| +| `userId` | string | Yes | The ID of the user you want to assign a role to. The `userId` is the `typedId` without the `U` suffix. For example, `userId` of the **2147490806.U** is **2147490806** | +| `payload` | oas:AssignRoleToUserRequest | Yes | | +| `headers` | map<string|string[]> | No | Headers to be sent with the request | + +**Returns:** `oas:AssignRoleToUserResponse|error` + +**Sample code:** + +```ballerina +oas:AssignRoleToUserResponse result = check pricefxClient->assignRoleToUser(userId, payload); +``` + +
+
+ +
+assignRoleToUsers + +
+ +Assign a Role to Users + +**Parameters:** + +| Name | Type | Required | Description | +|------|------|----------|--------------| +| `payload` | oas:AssignRoleToUsersRequest | Yes | | +| `headers` | map<string|string[]> | No | Headers to be sent with the request | + +**Returns:** `oas:AssignRoleToUsersResponse|error` + +**Sample code:** + +```ballerina +oas:AssignRoleToUsersResponse result = check pricefxClient->assignRoleToUsers(payload); +``` + +
+
+ +
+assignUserGroupToUsers + +
+ +Assign a User Group to Users + +**Parameters:** + +| Name | Type | Required | Description | +|------|------|----------|--------------| +| `payload` | oas:AssignUserGroupToUsersRequest | Yes | | +| `headers` | map<string|string[]> | No | Headers to be sent with the request | + +**Returns:** `oas:AssignUserGroupToUsersResponse|error` + +**Sample code:** + +```ballerina +oas:AssignUserGroupToUsersResponse result = check pricefxClient->assignUserGroupToUsers(payload); +``` + +
+
+ +
+assignUserToUserGroup + +
+ +Assign a User to a User Group + +**Parameters:** + +| Name | Type | Required | Description | +|------|------|----------|--------------| +| `userId` | string | Yes | The ID of the user you want to add to the group. The `userId` is the `typedId` without the `U` suffix. For example, `userId` of the **2147490806.U** is **2147490806** | +| `payload` | oas:AssignUserToUserGroupRequest | Yes | | +| `headers` | map<string|string[]> | No | Headers to be sent with the request | + +**Returns:** `oas:AssignUserToUserGroupResponse|error` + +**Sample code:** + +```ballerina +oas:AssignUserToUserGroupResponse result = check pricefxClient->assignUserToUserGroup(userId, payload); +``` + +
+
+ +
+changeCurrentUserPassword + +
+ +Change a Current User Password + +**Parameters:** + +| Name | Type | Required | Description | +|------|------|----------|--------------| +| `payload` | oas:ChangeCurrentUserPasswordRequest | Yes | | +| `headers` | map<string|string[]> | No | Headers to be sent with the request | + +**Returns:** `oas:ChangeCurrentUserPasswordResponse|error` + +**Sample code:** + +```ballerina +oas:ChangeCurrentUserPasswordResponse result = check pricefxClient->changeCurrentUserPassword(payload); +``` + +
+
+ +
+changeUserPassword + +
+ +Change a User Password + +**Parameters:** + +| Name | Type | Required | Description | +|------|------|----------|--------------| +| `userId` | string | Yes | Enter the ID of the user whose password you want to change. The `userId` is the `typedId` without the `U` suffix. For example, `userId` of the **2147490806.U** is **2147490806** | +| `payload` | oas:ChangeUserPasswordRequest | Yes | | +| `headers` | map<string|string[]> | No | Headers to be sent with the request | + +**Returns:** `oas:ChangeUserPasswordResponse|error` + +**Sample code:** + +```ballerina +oas:ChangeUserPasswordResponse result = check pricefxClient->changeUserPassword(userId, payload); +``` + +
+
+ +
+copyRoles + +
+ +Copy Roles + payload - + +**Parameters:** + +| Name | Type | Required | Description | +|------|------|----------|--------------| +| `payload` | oas:CopyRolesRequest | Yes | | +| `headers` | map<string|string[]> | No | Headers to be sent with the request | + +**Returns:** `oas:CopyRolesResponse|error` + +**Sample code:** + +```ballerina +oas:CopyRolesResponse result = check pricefxClient->copyRoles(payload); +``` + +
+
+ +
+copyUser + +
+ +Copy a User + +**Parameters:** + +| Name | Type | Required | Description | +|------|------|----------|--------------| +| `userid` | string | Yes | The ID of the user you want to copy. The `userId` is the `typedId` without the `U` suffix. For example, `userId` of the **2147490806.U** is **2147490806** | +| `headers` | map<string|string[]> | No | Headers to be sent with the request | + +**Returns:** `oas:CopyUserResponse|error` + +**Sample code:** + +```ballerina +oas:CopyUserResponse result = check pricefxClient->copyUser(userid); +``` + +
+
+ +
+deleteBusinessRole + +
+ +Delete a Business Role + +**Parameters:** + +| Name | Type | Required | Description | +|------|------|----------|--------------| +| `payload` | oas:DeleteBusinessRoleRequest | Yes | | +| `headers` | map<string|string[]> | No | Headers to be sent with the request | + +**Returns:** `oas:DeleteBusinessRoleResponse|error` + +**Sample code:** + +```ballerina +oas:DeleteBusinessRoleResponse result = check pricefxClient->deleteBusinessRole(payload); +``` + +
+
+ +
+deleteUser + +
+ +Delete a User + +**Parameters:** + +| Name | Type | Required | Description | +|------|------|----------|--------------| +| `payload` | oas:DeleteUserRequest | Yes | | +| `headers` | map<string|string[]> | No | Headers to be sent with the request | + +**Returns:** `oas:userResponse|error` + +**Sample code:** + +```ballerina +oas:userResponse result = check pricefxClient->deleteUser(payload); +``` + +
+
+ +
+deleteUserGroup + +
+ +Delete a User Group + +**Parameters:** + +| Name | Type | Required | Description | +|------|------|----------|--------------| +| `payload` | oas:DeleteUserGroupRequest | Yes | | +| `headers` | map<string|string[]> | No | Headers to be sent with the request | + +**Returns:** `oas:DeleteUserGroupResponse|error` + +**Sample code:** + +```ballerina +oas:DeleteUserGroupResponse result = check pricefxClient->deleteUserGroup(payload); +``` + +
+
+ +
+generateJwtToken + +
+ +Generate a JWT Token + +**Parameters:** + +| Name | Type | Required | Description | +|------|------|----------|--------------| +| `payload` | oas:GenerateJWTTokenRequest | Yes | | +| `headers` | map<string|string[]> | No | Headers to be sent with the request | + +**Returns:** `oas:GenerateJWTTokenResponse|error` + +**Sample code:** + +```ballerina +oas:GenerateJWTTokenResponse result = check pricefxClient->generateJwtToken(payload); +``` + +
+
+ +
+generateTimedJwtToken + +
+ +Generate a JWT Token (time limited) + +**Parameters:** + +| Name | Type | Required | Description | +|------|------|----------|--------------| +| `minutes` | string | Yes | The number of minutes in which the token expires | +| `headers` | map<string|string[]> | No | Headers to be sent with the request | + +**Returns:** `oas:GenerateJWTTokenTimeLimitedResponse|error` + +**Sample code:** + +```ballerina +oas:GenerateJWTTokenTimeLimitedResponse result = check pricefxClient->generateTimedJwtToken(minutes); +``` + +
+
+ +
+getOneTimeToken + +
+ +Get a One Time Token + +**Parameters:** + +| Name | Type | Required | Description | +|------|------|----------|--------------| +| `headers` | map<string|string[]> | No | Headers to be sent with the request | + +**Returns:** `oas:GetOneTimeTokenResponse|error` + +**Sample code:** + +```ballerina +oas:GetOneTimeTokenResponse result = check pricefxClient->getOneTimeToken(); +``` + +
+
+ +
+getUserAuditReport + +
+ +Get a User Audit Report + +**Parameters:** + +| Name | Type | Required | Description | +|------|------|----------|--------------| +| `typeCode` | "R"|"UG"|"BR" | Yes | Specify whether you want to retrieve a report based on user roles (`R`), user groups (`UG`), or business roles (`BR`) | +| `id` | string | Yes | Specify the `id`of the user role, user group, or business role for which you want to retrieve users. Call the `/fetch/R`, `/fetch/UG`, or `/fetch/BR` endpoint to retrieve a list with corresponding user roles, user groups, or business roles | +| `payload` | record {} | Yes | | +| `headers` | map<string|string[]> | No | Headers to be sent with the request | + +**Returns:** `oas:UserAuditReportEnvelope|error` + +**Sample code:** + +```ballerina +oas:UserAuditReportEnvelope result = check pricefxClient->getUserAuditReport(typeCode, id, payload); +``` + +
+
+ +
+listGroupsOfBusinessRole + +
+ +List Groups of the Business Role + +**Parameters:** + +| Name | Type | Required | Description | +|------|------|----------|--------------| +| `businessroleId` | string | Yes | The ID of the business role you want to retrieve user roles for. The `businessroleId` is the `typedId` without the `BR` suffix. For example, `businessroleId` of the **53.BR** is **53** | +| `headers` | map<string|string[]> | No | Headers to be sent with the request | + +**Returns:** `oas:ListGroupsOfBusinessRoleResponse|error` + +**Sample code:** + +```ballerina +oas:ListGroupsOfBusinessRoleResponse result = check pricefxClient->listGroupsOfBusinessRole(businessroleId); +``` + +
+
+ +
+listRolesOfBusinessRole + +
+ +List Roles of the Business Role + +**Parameters:** + +| Name | Type | Required | Description | +|------|------|----------|--------------| +| `businessroleId` | string | Yes | The ID of the business role you want to retrieve user roles for. The `businessroleId` is the `typedId` without the `BR` suffix. For example, `businessroleId` of the **53.BR** is **53** | +| `headers` | map<string|string[]> | No | Headers to be sent with the request | + +**Returns:** `oas:ListRolesOfBusinessRoleResponse|error` + +**Sample code:** + +```ballerina +oas:ListRolesOfBusinessRoleResponse result = check pricefxClient->listRolesOfBusinessRole(businessroleId); +``` + +
+
+ +
+listUserSBusinessRoles + +
+ +List User's Business Roles + +**Parameters:** + +| Name | Type | Required | Description | +|------|------|----------|--------------| +| `userId` | string | Yes | The ID of the user you want to retrieve business roles for. The `userId` is the `typedId` without the `U` suffix. For example, `userId` of the **2147490806.U** is **2147490806** | +| `headers` | map<string|string[]> | No | Headers to be sent with the request | + +**Returns:** `oas:ListUserBusinessRolesResponse|error` + +**Sample code:** + +```ballerina +oas:ListUserBusinessRolesResponse result = check pricefxClient->listUserSBusinessRoles(userId); +``` + +
+
+ +
+listUserSRoles + +
+ +List User's Roles + +**Parameters:** + +| Name | Type | Required | Description | +|------|------|----------|--------------| +| `userId` | string | Yes | The ID of the user you want to retrieve roles for. The `userId` is the `typedId` without the `U` suffix. For example, `userId` of the **2147490806.U** is **2147490806** | +| `headers` | map<string|string[]> | No | Headers to be sent with the request | + +**Returns:** `oas:ListUserRolesResponse|error` + +**Sample code:** + +```ballerina +oas:ListUserRolesResponse result = check pricefxClient->listUserSRoles(userId); +``` + +
+
+ +
+listUserSUserGroups + +
+ +List User's User Groups + +**Parameters:** + +| Name | Type | Required | Description | +|------|------|----------|--------------| +| `userId` | string | Yes | The ID of the user you want to retrieve groups for. The `userId` is the `typedId` without the `U` suffix. For example, `userId` of the **2147490806.U** is **2147490806** | +| `headers` | map<string|string[]> | No | Headers to be sent with the request | + +**Returns:** `oas:ListUsersUserGroupsResponse|error` + +**Sample code:** + +```ballerina +oas:ListUsersUserGroupsResponse result = check pricefxClient->listUserSUserGroups(userId); +``` + +
+
+ +
+listUsers + +
+ +List Users + +**Parameters:** + +| Name | Type | Required | Description | +|------|------|----------|--------------| +| `payload` | oas:ListUsersRequest | Yes | | +| `headers` | map<string|string[]> | No | Headers to be sent with the request | + +**Returns:** `oas:ListUsersResponse|error` + +**Sample code:** + +```ballerina +oas:ListUsersResponse result = check pricefxClient->listUsers(payload); +``` + +
+
+ +
+updateUser + +
+ +Update a User + +**Parameters:** + +| Name | Type | Required | Description | +|------|------|----------|--------------| +| `payload` | oas:UpdateUserRequest | Yes | Specify the user by `typedId` and define the new value of the field you want to update in the `data` object | +| `headers` | map<string|string[]> | No | Headers to be sent with the request | + +**Returns:** `oas:userResponse|error` + +**Sample code:** + +```ballerina +oas:userResponse result = check pricefxClient->updateUser(payload); +``` + +
+
+ +#### Products + +
+addProduct + +
+ +Add a Product + +**Parameters:** + +| Name | Type | Required | Description | +|------|------|----------|--------------| +| `payload` | oas:AddProductRequest | Yes | | +| `headers` | map<string|string[]> | No | Headers to be sent with the request | + +**Returns:** `oas:productResponse|error` + +**Sample code:** + +```ballerina +oas:productResponse result = check pricefxClient->addProduct(payload); +``` + +
+
+ +
+bulkInsertProducts + +
+ +Insert Bulk Products + +**Parameters:** + +| Name | Type | Required | Description | +|------|------|----------|--------------| +| `payload` | oas:InsertBulkProductsRequest | Yes | Specify product field names in the `header` object and fields values in the `data` object.<p> | +| `headers` | map<string|string[]> | No | Headers to be sent with the request | + +**Returns:** `oas:loaddataResponse|error` + +**Sample code:** + +```ballerina +oas:loaddataResponse result = check pricefxClient->bulkInsertProducts(payload); +``` + +
+
+ +
+deleteProduct + +
+ +Delete a Product + +**Parameters:** + +| Name | Type | Required | Description | +|------|------|----------|--------------| +| `payload` | oas:DeleteProductRequest | Yes | | +| `headers` | map<string|string[]> | No | Headers to be sent with the request | + +**Returns:** `oas:DeleteProductResponse|error` + +**Sample code:** + +```ballerina +oas:DeleteProductResponse result = check pricefxClient->deleteProduct(payload); +``` + +
+
+ +
+getProductBomTree + +
+ +List BoM for a Product + +**Parameters:** + +| Name | Type | Required | Description | +|------|------|----------|--------------| +| `sku` | string | Yes | The `sku` of the product you want to retrieve the Bill of Materials for | +| `headers` | map<string|string[]> | No | Headers to be sent with the request | + +**Returns:** `oas:ListBoMForProductResponse|error` + +**Sample code:** + +```ballerina +oas:ListBoMForProductResponse result = check pricefxClient->getProductBomTree(sku); +``` + +
+
+ +
+listProducts + +
+ +List Products + +**Parameters:** + +| Name | Type | Required | Description | +|------|------|----------|--------------| +| `payload` | oas:ListProductsRequest | Yes | | +| `headers` | map<string|string[]> | No | Headers to be sent with the request | + +**Returns:** `oas:productResponse|error` + +**Sample code:** + +```ballerina +oas:productResponse result = check pricefxClient->listProducts(payload); +``` + +
+
+ +
+listRecommendations + +
+ +List Recommendations + +**Parameters:** + +| Name | Type | Required | Description | +|------|------|----------|--------------| +| `payload` | oas:ListRecommendationsRequest | Yes | | +| `headers` | map<string|string[]> | No | Headers to be sent with the request | + +**Returns:** `oas:ListRecommendationsEnvelope|error` + +**Sample code:** + +```ballerina +oas:ListRecommendationsEnvelope result = check pricefxClient->listRecommendations(payload); +``` + +
+
+ +
+searchProducts + +
+ +Search a Product + +**Parameters:** + +| Name | Type | Required | Description | +|------|------|----------|--------------| +| `payload` | oas:SearchProductRequest | Yes | | +| `headers` | map<string|string[]> | No | Headers to be sent with the request | + +**Returns:** `oas:SearchProductResponse|error` + +**Sample code:** + +```ballerina +oas:SearchProductResponse result = check pricefxClient->searchProducts(payload); +``` + +
+
+ +
+searchProductsByQuery + +
+ +Search a Product (URL) + +**Parameters:** + +| Name | Type | Required | Description | +|------|------|----------|--------------| +| `query` | string | Yes | | +| `headers` | map<string|string[]> | No | Headers to be sent with the request | + +**Returns:** `oas:SearchProductURLResponse|error` + +**Sample code:** + +```ballerina +oas:SearchProductURLResponse result = check pricefxClient->searchProductsByQuery(query); +``` + +
+
+ +
+updateProduct + +
+ +Update a Product + +**Parameters:** + +| Name | Type | Required | Description | +|------|------|----------|--------------| +| `payload` | oas:UpdateProductRequest | Yes | Updates specified fields of the record. Only one record can be updated per request (unless batched).<p> | +| `headers` | map<string|string[]> | No | Headers to be sent with the request | + +**Returns:** `oas:productResponse|error` + +**Sample code:** + +```ballerina +oas:productResponse result = check pricefxClient->updateProduct(payload); +``` + +
+
+ +
+upsertProduct + +
+ +Upsert a Product + +**Parameters:** + +| Name | Type | Required | Description | +|------|------|----------|--------------| +| `payload` | oas:UpsertProductRequest | Yes | Either `sku` or `typedId` must be specified in order to *update* an existing product | +| `headers` | map<string|string[]> | No | Headers to be sent with the request | + +**Returns:** `oas:productResponse|error` + +**Sample code:** + +```ballerina +oas:productResponse result = check pricefxClient->upsertProduct(payload); +``` + +
+
+ +#### Product Extensions + +
+deleteProductExtension + +
+ +Delete a Product Extension + +**Parameters:** + +| Name | Type | Required | Description | +|------|------|----------|--------------| +| `payload` | oas:DeleteProductExtensionRequest | Yes | | +| `headers` | map<string|string[]> | No | Headers to be sent with the request | + +**Returns:** `oas:DeleteProductExtensionResponse|error` + +**Sample code:** + +```ballerina +oas:DeleteProductExtensionResponse result = check pricefxClient->deleteProductExtension(payload); +``` + +
+
+ +
+getProductAttributeMeta + +
+ +Get Product Attribute Meta + +**Parameters:** + +| Name | Type | Required | Description | +|------|------|----------|--------------| +| `payload` | record {} | Yes | | +| `headers` | map<string|string[]> | No | Headers to be sent with the request | + +**Returns:** `oas:ProductAttributeMetaEnvelope|error` + +**Sample code:** + +```ballerina +oas:ProductAttributeMetaEnvelope result = check pricefxClient->getProductAttributeMeta(payload); +``` + +
+
+ +
+insertBulkProductExtensions + +
+ +Insert Bulk Product Extensions + +**Parameters:** + +| Name | Type | Required | Description | +|------|------|----------|--------------| +| `payload` | oas:InsertBulkProductExtensionsRequest | Yes | Specify product extension field names in the `header` object and field values in the `data` object | +| `headers` | map<string|string[]> | No | Headers to be sent with the request | + +**Returns:** `error?` + +**Sample code:** + +```ballerina +error? result = check pricefxClient->insertBulkProductExtensions(payload); +``` + +
+
+ +
+listProductExtensionObjects + +
+ +List Product Extension Objects + +**Parameters:** + +| Name | Type | Required | Description | +|------|------|----------|--------------| +| `productMasterExtensionName` | string | Yes | Enter the name of Product Extension you want to retrieve objects from. You can find the name in **Administration** > **Configuration** > **Master Data** > **Product Master Extension** or using the **/configurationmanager.get/productextension** endpoint | +| `payload` | oas:ListProductExtensionObjectsRequest | Yes | | +| `headers` | map<string|string[]> | No | Headers to be sent with the request | +| `queries` | *oas:ListProductExtensionObjectsQueries | Yes | Queries to be sent with the request | + +**Returns:** `oas:ProductExtensionResponse|error` + +**Sample code:** + +```ballerina +oas:ProductExtensionResponse result = check pricefxClient->listProductExtensionObjects(productMasterExtensionName, payload, queries); +``` + +
+
+ +
+upsertProductExtension + +
+ +Upsert a Product Extension + +**Parameters:** + +| Name | Type | Required | Description | +|------|------|----------|--------------| +| `payload` | oas:UpsertProductExtensionRequest | Yes | | +| `headers` | map<string|string[]> | No | Headers to be sent with the request | + +**Returns:** `oas:productResponse|error` + +**Sample code:** + +```ballerina +oas:productResponse result = check pricefxClient->upsertProductExtension(payload); +``` + +
+
+ +#### Product Image + +
+deleteUploadSlotViaGet + +
+ +3. Delete an Upload Slot + +**Parameters:** + +| Name | Type | Required | Description | +|------|------|----------|--------------| +| `slotId` | string | Yes | Enter the ID of the slot you want to delete | +| `headers` | map<string|string[]> | No | Headers to be sent with the request | + +**Returns:** `oas:DeleteUploadSlotResponse|error` + +**Sample code:** + +```ballerina +oas:DeleteUploadSlotResponse result = check pricefxClient->deleteUploadSlotViaGet(slotId); +``` + +
+
+ +
+getNewUploadSlot + +
+ +1. Create an Upload Slot + +**Parameters:** + +| Name | Type | Required | Description | +|------|------|----------|--------------| +| `headers` | map<string|string[]> | No | Headers to be sent with the request | + +**Returns:** `oas:CreateUploadSlotResponse|error` + +**Sample code:** + +```ballerina +oas:CreateUploadSlotResponse result = check pricefxClient->getNewUploadSlot(); +``` + +
+
+ +
+uploadProductImage + +
+ +2. Upload a File + request - + +**Parameters:** + +| Name | Type | Required | Description | +|------|------|----------|--------------| +| `slotId` | string | Yes | Enter the ID of the slot you want to use for the upload | +| `sku` | string | Yes | Enter the `sku` of the product you want to add the product image to | +| `payload` | oas:TypedIdslotIdBody | Yes | | +| `headers` | map<string|string[]> | No | Headers to be sent with the request | + +**Returns:** `error?` + +**Sample code:** + +```ballerina +error? result = check pricefxClient->uploadProductImage(slotId, sku, payload); +``` + +
+
+ +#### Competition Data + +
+getProductCompetition + +
+ +Get Competition Data + +**Parameters:** + +| Name | Type | Required | Description | +|------|------|----------|--------------| +| `payload` | oas:GetCompetitionDataRequest | Yes | | +| `headers` | map<string|string[]> | No | Headers to be sent with the request | + +**Returns:** `oas:GetCompetitionDataResponse|error` + +**Sample code:** + +```ballerina +oas:GetCompetitionDataResponse result = check pricefxClient->getProductCompetition(payload); +``` + +
+
+ +
+getProductSetCompetition + +
+ +Get a Product Set + +**Parameters:** + +| Name | Type | Required | Description | +|------|------|----------|--------------| +| `label` | string | Yes | Enter the name of the product set you want to retrieve | +| `payload` | oas:GetProductSetRequest | Yes | | +| `headers` | map<string|string[]> | No | Headers to be sent with the request | + +**Returns:** `oas:GetProductSetResponse|error` + +**Sample code:** + +```ballerina +oas:GetProductSetResponse result = check pricefxClient->getProductSetCompetition(label, payload); +``` + +
+
+ +
+importProductCompetition + +
+ +Import Competition Data + +**Parameters:** + +| Name | Type | Required | Description | +|------|------|----------|--------------| +| `payload` | oas:ImportCompetitionDataRequest | Yes | The competition product details | +| `headers` | map<string|string[]> | No | Headers to be sent with the request | + +**Returns:** `oas:ImportCompetitionDataResponse|error` + +**Sample code:** + +```ballerina +oas:ImportCompetitionDataResponse result = check pricefxClient->importProductCompetition(payload); +``` + +
+
+ +
+listProductSets + +
+ +List Product Sets + +**Parameters:** + +| Name | Type | Required | Description | +|------|------|----------|--------------| +| `payload` | oas:ListProductSetsRequest | Yes | | +| `headers` | map<string|string[]> | No | Headers to be sent with the request | + +**Returns:** `oas:ListProductSetsResponse|error` + +**Sample code:** + +```ballerina +oas:ListProductSetsResponse result = check pricefxClient->listProductSets(payload); +``` + +
+
+ +#### Customers + +
+addCustomer + +
+ +Add a Customer + +**Parameters:** + +| Name | Type | Required | Description | +|------|------|----------|--------------| +| `payload` | oas:AddCustomerRequest | Yes | | +| `headers` | map<string|string[]> | No | Headers to be sent with the request | + +**Returns:** `oas:customerResponse|error` + +**Sample code:** + +```ballerina +oas:customerResponse result = check pricefxClient->addCustomer(payload); +``` + +
+
+ +
+assignCustomers + +
+ +Assign Customers + +**Parameters:** + +| Name | Type | Required | Description | +|------|------|----------|--------------| +| `payload` | oas:AssignCustomersRequest | Yes | | +| `headers` | map<string|string[]> | No | Headers to be sent with the request | + +**Returns:** `oas:assignmentResponse|error` + +**Sample code:** + +```ballerina +oas:assignmentResponse result = check pricefxClient->assignCustomers(payload); +``` + +
+
+ +
+bulkInsertCustomers + +
+ +Insert Bulk Customers + +**Parameters:** + +| Name | Type | Required | Description | +|------|------|----------|--------------| +| `payload` | oas:InsertBulkCustomersRequest | Yes | Specify customer field names in the `header` object and fields values in the `data` object.<p> | +| `headers` | map<string|string[]> | No | Headers to be sent with the request | + +**Returns:** `oas:loaddataResponse|error` + +**Sample code:** + +```ballerina +oas:loaddataResponse result = check pricefxClient->bulkInsertCustomers(payload); +``` + +
+
+ +
+deleteCustomer + +
+ +Delete a Customer + +**Parameters:** + +| Name | Type | Required | Description | +|------|------|----------|--------------| +| `payload` | oas:DeleteCustomerRequest | Yes | | +| `headers` | map<string|string[]> | No | Headers to be sent with the request | + +**Returns:** `oas:DeleteCustomerResponse|error` + +**Sample code:** + +```ballerina +oas:DeleteCustomerResponse result = check pricefxClient->deleteCustomer(payload); +``` + +
+
+ +
+getCustomer + +
+ +Get a Customer + +**Parameters:** + +| Name | Type | Required | Description | +|------|------|----------|--------------| +| `id` | string | Yes | The ID of the Customer you want to retrieve details for. The `id` is the `typedId` without the **C** suffix. For example, the `id` parameter of the item with `typedId` = **2147492200.C** is **2147492200** | +| `headers` | map<string|string[]> | No | Headers to be sent with the request | + +**Returns:** `oas:customerResponse|error` + +**Sample code:** + +```ballerina +oas:customerResponse result = check pricefxClient->getCustomer(id); +``` + +
+
+ +
+listCustomerAssignments + +
+ +List Customer Assignments + +**Parameters:** + +| Name | Type | Required | Description | +|------|------|----------|--------------| +| `typedId` | string | Yes | The `typedId` of the entity you want to retrieve assignments for | +| `payload` | oas:ListCustomerAssignmentsRequest | Yes | | +| `headers` | map<string|string[]> | No | Headers to be sent with the request | + +**Returns:** `oas:assignmentResponse|error` + +**Sample code:** + +```ballerina +oas:assignmentResponse result = check pricefxClient->listCustomerAssignments(typedId, payload); +``` + +
+
+ +
+listCustomers + +
+ +List Customers + +**Parameters:** + +| Name | Type | Required | Description | +|------|------|----------|--------------| +| `payload` | oas:ListCustomersRequest | Yes | | +| `headers` | map<string|string[]> | No | Headers to be sent with the request | + +**Returns:** `oas:customerResponse|error` + +**Sample code:** + +```ballerina +oas:customerResponse result = check pricefxClient->listCustomers(payload); +``` + +
+
+ +
+updateCustomer + +
+ +Update a Customer + payload - + +**Parameters:** + +| Name | Type | Required | Description | +|------|------|----------|--------------| +| `payload` | oas:UpdateCustomerRequest | Yes | | +| `headers` | map<string|string[]> | No | Headers to be sent with the request | + +**Returns:** `oas:customerResponse|error` + +**Sample code:** + +```ballerina +oas:customerResponse result = check pricefxClient->updateCustomer(payload); +``` + +
+
+ +
+upsertCustomer + +
+ +Upsert a Customer + +**Parameters:** + +| Name | Type | Required | Description | +|------|------|----------|--------------| +| `payload` | oas:UpsertCustomerRequest | Yes | If the customer does not exist yet, at least the `customerId` must be specified in the payload.<p> | +| `headers` | map<string|string[]> | No | Headers to be sent with the request | + +**Returns:** `oas:customerResponse|error` + +**Sample code:** + +```ballerina +oas:customerResponse result = check pricefxClient->upsertCustomer(payload); +``` + +
+
+ +#### Customer Extensions + +
+deleteCustomerExtension + +
+ +Delete a Customer Extension + +**Parameters:** + +| Name | Type | Required | Description | +|------|------|----------|--------------| +| `payload` | oas:DeleteCustomerExtensionRequest | Yes | | +| `headers` | map<string|string[]> | No | Headers to be sent with the request | + +**Returns:** `oas:DeleteCustomerExtensionResponse|error` + +**Sample code:** + +```ballerina +oas:DeleteCustomerExtensionResponse result = check pricefxClient->deleteCustomerExtension(payload); +``` + +
+
+ +
+insertBulkCustomerExtensions + +
+ +Insert Bulk Customer Extensions + +**Parameters:** + +| Name | Type | Required | Description | +|------|------|----------|--------------| +| `payload` | oas:InsertBulkCustomerExtensionsRequest | Yes | Specify customer extension field names in the `header` object and field values in the `data` object.<p> | +| `headers` | map<string|string[]> | No | Headers to be sent with the request | + +**Returns:** `oas:loaddataResponse|error` + +**Sample code:** + +```ballerina +oas:loaddataResponse result = check pricefxClient->insertBulkCustomerExtensions(payload); +``` + +
+
+ +
+listCustomerExtensionObjects + +
+ +List Customer Extension Objects + +**Parameters:** + +| Name | Type | Required | Description | +|------|------|----------|--------------| +| `customerMasterExtensionName` | string | Yes | Enter the name of Customer Extension you want to retrieve objects from. You can find the name in **Administration** > **Configuration** > **Master Data** > **Customer Master Extension** or using the **/configurationmanager.get/customerextension** endpoint | +| `payload` | oas:ListCustomerExtensionObjectsRequest | Yes | | +| `headers` | map<string|string[]> | No | Headers to be sent with the request | +| `queries` | *oas:ListCustomerExtensionObjectsQueries | Yes | Queries to be sent with the request | + +**Returns:** `oas:ListCustomerExtensionObjectsResponse|error` + +**Sample code:** + +```ballerina +oas:ListCustomerExtensionObjectsResponse result = check pricefxClient->listCustomerExtensionObjects(customerMasterExtensionName, payload, queries); +``` + +
+
+ +
+uploadFileToPxCxSx + +
+ +Upload a File to PX/CX/SX + request - + +**Parameters:** + +| Name | Type | Required | Description | +|------|------|----------|--------------| +| `typeCode` | "PX"|"CX"|"SX" | Yes | Type code of the table you want to upload the file to | +| `target` | string | Yes | The name of the PX/CX/SX table | +| `uploadSlotId` | string | Yes | `id` of the upload slot. Use the **uploadslotmanager.newuploadslot** endpoint to retrieve the `id` | +| `payload` | oas:TargetuploadSlotIdBody | Yes | | +| `headers` | map<string|string[]> | No | Headers to be sent with the request | +| `queries` | *oas:UploadFileToPxCxSxQueries | Yes | Queries to be sent with the request | + +**Returns:** `oas:generalResponse|error` + +**Sample code:** + +```ballerina +oas:generalResponse result = check pricefxClient->uploadFileToPxCxSx(typeCode, target, uploadSlotId, payload, queries); +``` + +
+
+ +
+upsertCustomerExtension + +
+ +Upsert a Customer Extension + +**Parameters:** + +| Name | Type | Required | Description | +|------|------|----------|--------------| +| `payload` | oas:UpsertCustomerExtensionRequest | Yes | **Please note**: The data sent in your request might be different from our sample request schema. Custom fields (`attribute1`..`attribute30`) can be retrieved using the **`/fetch/CXAM`** operation | +| `headers` | map<string|string[]> | No | Headers to be sent with the request | + +**Returns:** `oas:UpsertCustomerExtensionResponse|error` + +**Sample code:** + +```ballerina +oas:UpsertCustomerExtensionResponse result = check pricefxClient->upsertCustomerExtension(payload); +``` + +
+
+ +#### Sellers + +
+addSeller + +
+ +Add a Seller + +**Parameters:** + +| Name | Type | Required | Description | +|------|------|----------|--------------| +| `payload` | oas:AddSellerRequest | Yes | | +| `headers` | map<string|string[]> | No | Headers to be sent with the request | + +**Returns:** `oas:AddSellerEnvelope|error` + +**Sample code:** + +```ballerina +oas:AddSellerEnvelope result = check pricefxClient->addSeller(payload); +``` + +
+
+ +
+deleteSeller + +
+ +Delete a Seller + +**Parameters:** + +| Name | Type | Required | Description | +|------|------|----------|--------------| +| `payload` | oas:DeleteSellerRequest | Yes | | +| `headers` | map<string|string[]> | No | Headers to be sent with the request | + +**Returns:** `oas:DeleteSellerEnvelope|error` + +**Sample code:** + +```ballerina +oas:DeleteSellerEnvelope result = check pricefxClient->deleteSeller(payload); +``` + +
+
+ +
+listSellers + +
+ +List Sellers + +**Parameters:** + +| Name | Type | Required | Description | +|------|------|----------|--------------| +| `payload` | oas:ListSellersRequest | Yes | | +| `headers` | map<string|string[]> | No | Headers to be sent with the request | + +**Returns:** `oas:ListSellersEnvelope|error` + +**Sample code:** + +```ballerina +oas:ListSellersEnvelope result = check pricefxClient->listSellers(payload); +``` + +
+
+ +
+updateSeller + +
+ +Update a Seller + +**Parameters:** + +| Name | Type | Required | Description | +|------|------|----------|--------------| +| `payload` | oas:UpdateSellerRequest | Yes | | +| `headers` | map<string|string[]> | No | Headers to be sent with the request | + +**Returns:** `oas:UpdateSellerEnvelope|error` + +**Sample code:** + +```ballerina +oas:UpdateSellerEnvelope result = check pricefxClient->updateSeller(payload); +``` + +
+
+ +#### Seller Extensions + +
+addSellerExtension + +
+ +Add a Seller Extension + +**Parameters:** + +| Name | Type | Required | Description | +|------|------|----------|--------------| +| `payload` | oas:AddSellerExtensionRequest | Yes | | +| `headers` | map<string|string[]> | No | Headers to be sent with the request | + +**Returns:** `oas:AddSellerExtensionResponse|error` + +**Sample code:** + +```ballerina +oas:AddSellerExtensionResponse result = check pricefxClient->addSellerExtension(payload); +``` + +
+
+ +
+deleteSellerExtension + +
+ +Delete a Seller Extension + +**Parameters:** + +| Name | Type | Required | Description | +|------|------|----------|--------------| +| `payload` | oas:DeleteSellerExtensionRequest | Yes | | +| `headers` | map<string|string[]> | No | Headers to be sent with the request | + +**Returns:** `oas:DeleteSellerExtensionResponse|error` + +**Sample code:** + +```ballerina +oas:DeleteSellerExtensionResponse result = check pricefxClient->deleteSellerExtension(payload); +``` + +
+
+ +
+getSellerExtension + +
+ +Get a Seller Extension + +**Parameters:** + +| Name | Type | Required | Description | +|------|------|----------|--------------| +| `sellerId` | string | Yes | The `SellerId` of the seller in the Seller Extension table you want to retrieve details for | +| `sXCategory` | string | Yes | The Seller Extension category (the `Name` from the *Seller Master Extension* table) | +| `headers` | map<string|string[]> | No | Headers to be sent with the request | + +**Returns:** `oas:SellerExtensionEnvelope|error` + +**Sample code:** + +```ballerina +oas:SellerExtensionEnvelope result = check pricefxClient->getSellerExtension(sellerId, sXCategory); +``` + +
+
+ +
+importSellerExtensionFile + +
+ +Import a File + +**Parameters:** + +| Name | Type | Required | Description | +|------|------|----------|--------------| +| `sXCategory` | string | Yes | The Seller Extension category (the `Name` from the *Seller Master Extension* table) | +| `slotId` | string | Yes | The ID that is returned by the **/uploadmanager.newuploadslot** (Create an Upload Slot) endpoint | +| `payload` | oas:ImportSXFileRequest | Yes | | +| `headers` | map<string|string[]> | No | Headers to be sent with the request | +| `queries` | *oas:ImportSellerExtensionFileQueries | Yes | Queries to be sent with the request | + +**Returns:** `error?` + +**Sample code:** + +```ballerina +error? result = check pricefxClient->importSellerExtensionFile(sXCategory, slotId, payload, queries); +``` + +
+
+ +
+insertBulkSellerExtensions + +
+ +Insert Bulk Seller Extensions + +**Parameters:** + +| Name | Type | Required | Description | +|------|------|----------|--------------| +| `payload` | oas:InsertBulkProductExtensionsRequest1 | Yes | Specify seller extension field names in the `header` object and field values in the `data` object | +| `headers` | map<string|string[]> | No | Headers to be sent with the request | + +**Returns:** `error?` + +**Sample code:** + +```ballerina +error? result = check pricefxClient->insertBulkSellerExtensions(payload); +``` + +
+
+ +
+listSellerExtensions + +
+ +List Seller Extensions + +**Parameters:** + +| Name | Type | Required | Description | +|------|------|----------|--------------| +| `sXCategory` | string | Yes | The Seller Extension category (the `Name` from the *Seller Master Extension* table) | +| `headers` | map<string|string[]> | No | Headers to be sent with the request | + +**Returns:** `oas:SellerExtensionEnvelope|error` + +**Sample code:** + +```ballerina +oas:SellerExtensionEnvelope result = check pricefxClient->listSellerExtensions(sXCategory); +``` + +
+
+ +
+updateSellerExtension + +
+ +Update a Seller Extension + +**Parameters:** + +| Name | Type | Required | Description | +|------|------|----------|--------------| +| `payload` | oas:UpdateSXBody | Yes | | +| `headers` | map<string|string[]> | No | Headers to be sent with the request | + +**Returns:** `oas:UpdateSellerExtensionEnvelope|error` + +**Sample code:** + +```ballerina +oas:UpdateSellerExtensionEnvelope result = check pricefxClient->updateSellerExtension(payload); +``` + +
+
+ +#### Condition Records + +
+addConditionRecordItemMeta + +
+ +Add a Condition Record Item Attribute Meta + +**Parameters:** + +| Name | Type | Required | Description | +|------|------|----------|--------------| +| `payload` | oas:AddCRCIMBody | Yes | | +| `headers` | map<string|string[]> | No | Headers to be sent with the request | + +**Returns:** `oas:ConditionRecordItemMetaOperationEnvelope|error` + +**Sample code:** + +```ballerina +oas:ConditionRecordItemMetaOperationEnvelope result = check pricefxClient->addConditionRecordItemMeta(payload); +``` + +
+
+ +
+addConditionRecordSet + +
+ +Add a Condition Record Set + +**Parameters:** + +| Name | Type | Required | Description | +|------|------|----------|--------------| +| `payload` | oas:AddCRCSBody | Yes | | +| `headers` | map<string|string[]> | No | Headers to be sent with the request | + +**Returns:** `oas:ConditionRecordSetOperationEnvelope|error` + +**Sample code:** + +```ballerina +oas:ConditionRecordSetOperationEnvelope result = check pricefxClient->addConditionRecordSet(payload); +``` + +
+
+ +
+deleteConditionRecordItemMeta + +
+ +Delete a Condition Record Item Attribute Meta + +**Parameters:** + +| Name | Type | Required | Description | +|------|------|----------|--------------| +| `payload` | oas:DeleteCRCIMBody | Yes | | +| `headers` | map<string|string[]> | No | Headers to be sent with the request | + +**Returns:** `oas:ConditionRecordItemMetaOperationEnvelope|error` + +**Sample code:** + +```ballerina +oas:ConditionRecordItemMetaOperationEnvelope result = check pricefxClient->deleteConditionRecordItemMeta(payload); +``` + +
+
+ +
+deleteConditionRecordSet + +
+ +Delete a Condition Records Set + +**Parameters:** + +| Name | Type | Required | Description | +|------|------|----------|--------------| +| `payload` | oas:DcrmanagerDeletemassopidBody | Yes | | +| `headers` | map<string|string[]> | No | Headers to be sent with the request | + +**Returns:** `oas:ConditionRecordSetOperationEnvelope|error` + +**Sample code:** + +```ballerina +oas:ConditionRecordSetOperationEnvelope result = check pricefxClient->deleteConditionRecordSet(payload); +``` + +
+
+ +
+getConditionRecordItem + +
+ +Get a Condition Record Item + +**Parameters:** + +| Name | Type | Required | Description | +|------|------|----------|--------------| +| `payload` | record {} | Yes | | +| `headers` | map<string|string[]> | No | Headers to be sent with the request | + +**Returns:** `oas:ConditionRecordItemEnvelope|error` + +**Sample code:** + +```ballerina +oas:ConditionRecordItemEnvelope result = check pricefxClient->getConditionRecordItem(payload); +``` + +
+
+ +
+getConditionRecordItemMeta + +
+ +Get a Condition Record Item Attribute Meta + +**Parameters:** + +| Name | Type | Required | Description | +|------|------|----------|--------------| +| `payload` | oas:FetchCRCIMBody | Yes | | +| `headers` | map<string|string[]> | No | Headers to be sent with the request | + +**Returns:** `oas:ConditionRecordItemMetaEnvelope|error` + +**Sample code:** + +```ballerina +oas:ConditionRecordItemMetaEnvelope result = check pricefxClient->getConditionRecordItemMeta(payload); +``` + +
+
+ +
+getConditionRecordSetItems + +
+ +Get Condition Record Set Items With Set Id Validation + +**Parameters:** + +| Name | Type | Required | Description | +|------|------|----------|--------------| +| `payload` | oas:ConditionrecordsetFetchCRCI3Body | Yes | | +| `headers` | map<string|string[]> | No | Headers to be sent with the request | + +**Returns:** `oas:ConditionRecordSetItemsEnvelope|error` + +**Sample code:** + +```ballerina +oas:ConditionRecordSetItemsEnvelope result = check pricefxClient->getConditionRecordSetItems(payload); +``` + +
+
+ +
+listConditionRecordSets + +
+ +List Condition Record Sets + +**Parameters:** + +| Name | Type | Required | Description | +|------|------|----------|--------------| +| `payload` | record {} | Yes | | +| `headers` | map<string|string[]> | No | Headers to be sent with the request | + +**Returns:** `oas:ListConditionRecordSetsEnvelope|error` + +**Sample code:** + +```ballerina +oas:ListConditionRecordSetsEnvelope result = check pricefxClient->listConditionRecordSets(payload); +``` + +
+
+ +
+updateConditionRecordItemMeta + +
+ +Update a Condition Record Item Attribute Meta + payload - + +**Parameters:** + +| Name | Type | Required | Description | +|------|------|----------|--------------| +| `payload` | oas:UpdateCRCIMBody | Yes | | +| `headers` | map<string|string[]> | No | Headers to be sent with the request | + +**Returns:** `oas:UpdateConditionRecordItemMetaEnvelope|error` + +**Sample code:** + +```ballerina +oas:UpdateConditionRecordItemMetaEnvelope result = check pricefxClient->updateConditionRecordItemMeta(payload); +``` + +
+
+ +
+updateConditionRecordSet + +
+ +Update a Condition Record Set + +**Parameters:** + +| Name | Type | Required | Description | +|------|------|----------|--------------| +| `id` | string | Yes | `id` of the ConditionRecordSet object you want to update | +| `payload` | oas:ConditionrecordsetUpdateidBody | Yes | | +| `headers` | map<string|string[]> | No | Headers to be sent with the request | + +**Returns:** `oas:ConditionRecordSetOperationEnvelope|error` + +**Sample code:** + +```ballerina +oas:ConditionRecordSetOperationEnvelope result = check pricefxClient->updateConditionRecordSet(id, payload); +``` + +
+
+ +#### Price Lists + +
+addPriceListType + +
+ +Add a Price List Type + payload - + +**Parameters:** + +| Name | Type | Required | Description | +|------|------|----------|--------------| +| `payload` | oas:AddPLTTBody | Yes | | +| `headers` | map<string|string[]> | No | Headers to be sent with the request | + +**Returns:** `oas:PriceListTypeOperationEnvelope|error` + +**Sample code:** + +```ballerina +oas:PriceListTypeOperationEnvelope result = check pricefxClient->addPriceListType(payload); +``` + +
+
+ +
+calculatePriceList + +
+ +Calculate a Pricelist + +**Parameters:** + +| Name | Type | Required | Description | +|------|------|----------|--------------| +| `id` | string | Yes | The ID of the Price List you want to calculate. The `id` is the `typedId` without the suffix. For example, the `id` attribute of the item with `typedId` = **2147484837.PL** is **2147484837** | +| `payload` | oas:PricelistmanagerCalculateidBody | Yes | | +| `headers` | map<string|string[]> | No | Headers to be sent with the request | + +**Returns:** `oas:CalculatePricelistResponse|error` + +**Sample code:** + +```ballerina +oas:CalculatePricelistResponse result = check pricefxClient->calculatePriceList(id, payload); +``` + +
+
+ +
+createPriceList + +
+ +Create a Price List + +**Parameters:** + +| Name | Type | Required | Description | +|------|------|----------|--------------| +| `payload` | oas:CreatePriceListRequest | Yes | | +| `headers` | map<string|string[]> | No | Headers to be sent with the request | + +**Returns:** `oas:CreatePriceListResponse|error` + +**Sample code:** + +```ballerina +oas:CreatePriceListResponse result = check pricefxClient->createPriceList(payload); +``` + +
+
+ +
+createPriceListRevision + +
+ +Create a Revision + +**Parameters:** + +| Name | Type | Required | Description | +|------|------|----------|--------------| +| `id` | string | Yes | The ID of the Price List you want to create a revision for. The `id` is the `typedId` without the suffix. For example, the `id` attribute of the item with `typedId` = **2147484837.PL** is **2147484837** | +| `payload` | oas:CreateRevisionRequest | Yes | | +| `headers` | map<string|string[]> | No | Headers to be sent with the request | + +**Returns:** `oas:pricelistitemResponse|error` + +**Sample code:** + +```ballerina +oas:pricelistitemResponse result = check pricefxClient->createPriceListRevision(id, payload); +``` + +
+
+ +
+deletePriceList + +
+ +Delete a Price List + +**Parameters:** + +| Name | Type | Required | Description | +|------|------|----------|--------------| +| `payload` | oas:DeletePriceListRequest | Yes | | +| `headers` | map<string|string[]> | No | Headers to be sent with the request | + +**Returns:** `oas:DeletePriceListResponse|error` + +**Sample code:** + +```ballerina +oas:DeletePriceListResponse result = check pricefxClient->deletePriceList(payload); +``` + +
+
+ +
+deletePriceListItems + +
+ +Delete a Price List Item + +**Parameters:** + +| Name | Type | Required | Description | +|------|------|----------|--------------| +| `id` | string | Yes | Enter the ID of the Price List where you want to delete an item from | +| `payload` | oas:DeletePriceListItemRequest | Yes | | +| `headers` | map<string|string[]> | No | Headers to be sent with the request | + +**Returns:** `oas:DeletePriceListItemResponse|error` + +**Sample code:** + +```ballerina +oas:DeletePriceListItemResponse result = check pricefxClient->deletePriceListItems(id, payload); +``` + +
+
+ +
+deletePriceListType + +
+ +Delete a Price List Type + +**Parameters:** + +| Name | Type | Required | Description | +|------|------|----------|--------------| +| `payload` | oas:DeletePLTTBody | Yes | | +| `headers` | map<string|string[]> | No | Headers to be sent with the request | + +**Returns:** `oas:PriceListTypeOperationEnvelope|error` + +**Sample code:** + +```ballerina +oas:PriceListTypeOperationEnvelope result = check pricefxClient->deletePriceListType(payload); +``` + +
+
+ +
+getPriceList + +
+ +Get a Price List + +**Parameters:** + +| Name | Type | Required | Description | +|------|------|----------|--------------| +| `id` | string | Yes | The ID of the Price List you want to retrieve details for. The `id` is the `typedId` without the suffix. For example, the `id` attribute of the item with `typedId` = **2147484837.PL** is **2147484837** | +| `headers` | map<string|string[]> | No | Headers to be sent with the request | + +**Returns:** `oas:GetPriceListResponse|error` + +**Sample code:** + +```ballerina +oas:GetPriceListResponse result = check pricefxClient->getPriceList(id); +``` + +
+
+ +
+listPriceListItems + +
+ +List Price List Items + +**Parameters:** + +| Name | Type | Required | Description | +|------|------|----------|--------------| +| `id` | string | Yes | The ID of the Price List you want to retrieve items for. The `id` is the `typedId` without the suffix. For example, the `id` attribute of the item with `typedId` = **2147484837.PL** is **2147484837** | +| `payload` | oas:ListPriceListItemsRequest | Yes | | +| `headers` | map<string|string[]> | No | Headers to be sent with the request | + +**Returns:** `oas:pricelistitemResponse|error` + +**Sample code:** + +```ballerina +oas:pricelistitemResponse result = check pricefxClient->listPriceListItems(id, payload); +``` + +
+
+ +
+listPriceListTypes + +
+ +List Price List Types + +**Parameters:** + +| Name | Type | Required | Description | +|------|------|----------|--------------| +| `headers` | map<string|string[]> | No | Headers to be sent with the request | + +**Returns:** `oas:ListPriceListTypesEnvelope|error` + +**Sample code:** + +```ballerina +oas:ListPriceListTypesEnvelope result = check pricefxClient->listPriceListTypes(); +``` + +
+
+ +
+listPriceLists + +
+ +List Price Lists + +**Parameters:** + +| Name | Type | Required | Description | +|------|------|----------|--------------| +| `payload` | oas:ListPriceListsRequest | Yes | | +| `headers` | map<string|string[]> | No | Headers to be sent with the request | + +**Returns:** `oas:ListPriceListsResponse|error` + +**Sample code:** + +```ballerina +oas:ListPriceListsResponse result = check pricefxClient->listPriceLists(payload); +``` + +
+
+ +
+revokePriceList + +
+ +Revoke a Price List + +**Parameters:** + +| Name | Type | Required | Description | +|------|------|----------|--------------| +| `id` | string | Yes | | +| `payload` | oas:PricelistmanagerSubmitidBody | Yes | | +| `headers` | map<string|string[]> | No | Headers to be sent with the request | + +**Returns:** `oas:pricelistitemResponse|error` + +**Sample code:** + +```ballerina +oas:pricelistitemResponse result = check pricefxClient->revokePriceList(id, payload); +``` + +
+
+ +
+submitPriceList + +
+ +Submit a Price List + +**Parameters:** + +| Name | Type | Required | Description | +|------|------|----------|--------------| +| `id` | string | Yes | The ID of the Price List you want to submit. The `id` is the `typedId` without the suffix. For example, the `id` attribute of the item with `typedId` = **2147484837.PL** is **2147484837** | +| `payload` | oas:PricelistmanagerSubmitidBody | Yes | | +| `headers` | map<string|string[]> | No | Headers to be sent with the request | + +**Returns:** `oas:pricelistitemResponse|error` + +**Sample code:** + +```ballerina +oas:pricelistitemResponse result = check pricefxClient->submitPriceList(id, payload); +``` + +
+
+ +
+updatePriceListDetail + +
+ +Update a Pricelist Detail + +**Parameters:** + +| Name | Type | Required | Description | +|------|------|----------|--------------| +| `id` | string | Yes | The ID of the Price List whose Item you want to update. The `id` is the `typedId` without the suffix. For example, the `id` attribute of the item with `typedId` = **2147484837.PL** is **2147484837** | +| `payload` | oas:UpdatePricelistDetailRequest | Yes | | +| `headers` | map<string|string[]> | No | Headers to be sent with the request | + +**Returns:** `oas:UpdatePricelistDetailResponse|error` + +**Sample code:** + +```ballerina +oas:UpdatePricelistDetailResponse result = check pricefxClient->updatePriceListDetail(id, payload); +``` + +
+
+ +
+updatePriceListType + +
+ +Update a Price List Type + +**Parameters:** + +| Name | Type | Required | Description | +|------|------|----------|--------------| +| `payload` | oas:UpdatePLTTBody | Yes | | +| `headers` | map<string|string[]> | No | Headers to be sent with the request | + +**Returns:** `oas:PriceListTypeOperationEnvelope|error` + +**Sample code:** + +```ballerina +oas:PriceListTypeOperationEnvelope result = check pricefxClient->updatePriceListType(payload); +``` + +
+
+ +#### Manual Price Lists + +
+addManualPriceListProducts + +
+ +Add Products to a Manual Pricelist + +**Parameters:** + +| Name | Type | Required | Description | +|------|------|----------|--------------| +| `id` | string | Yes | The ID of the Manual Price List where you want to add products to | +| `payload` | oas:AddProductsToManualPriceListRequest | Yes | | +| `headers` | map<string|string[]> | No | Headers to be sent with the request | + +**Returns:** `oas:generalResponse|error` + +**Sample code:** + +```ballerina +oas:generalResponse result = check pricefxClient->addManualPriceListProducts(id, payload); +``` + +
+
+ +
+addManualPriceListProductsNoRecalc + +
+ +Add Products to a Manual Price List (No Recalculation) + +**Parameters:** + +| Name | Type | Required | Description | +|------|------|----------|--------------| +| `id` | string | Yes | The ID of the Manual Price List where you want to add products to | +| `payload` | oas:AddProductsToManualPriceListNoRecalcRequest | Yes | | +| `headers` | map<string|string[]> | No | Headers to be sent with the request | + +**Returns:** `oas:AddProductsToManualPriceListNoRecalcResponse|error` + +**Sample code:** + +```ballerina +oas:AddProductsToManualPriceListNoRecalcResponse result = check pricefxClient->addManualPriceListProductsNoRecalc(id, payload); +``` + +
+
+ +
+calculateManualPriceList + +
+ +Calculate a Manual Price List + +**Parameters:** + +| Name | Type | Required | Description | +|------|------|----------|--------------| +| `id` | string | Yes | The ID of the Manual Price List you want to start the calculation for | +| `headers` | map<string|string[]> | No | Headers to be sent with the request | + +**Returns:** `oas:CalculateManualPriceListResponse|error` + +**Sample code:** + +```ballerina +oas:CalculateManualPriceListResponse result = check pricefxClient->calculateManualPriceList(id); +``` + +
+
+ +
+copyManualPriceList + +
+ +Copy a Manual Price List + +**Parameters:** + +| Name | Type | Required | Description | +|------|------|----------|--------------| +| `id` | string | Yes | The ID of the Manual Price List you want to copy | +| `headers` | map<string|string[]> | No | Headers to be sent with the request | + +**Returns:** `oas:manualpricelistResponse|error` + +**Sample code:** + +```ballerina +oas:manualpricelistResponse result = check pricefxClient->copyManualPriceList(id); +``` + +
+
+ +
+createManualPriceList + +
+ +Create a Manual Price List + +**Parameters:** + +| Name | Type | Required | Description | +|------|------|----------|--------------| +| `payload` | oas:CreateManualPriceListRequest | Yes | | +| `headers` | map<string|string[]> | No | Headers to be sent with the request | + +**Returns:** `oas:manualpricelistResponse|error` + +**Sample code:** + +```ballerina +oas:manualpricelistResponse result = check pricefxClient->createManualPriceList(payload); +``` + +
+
+ +
+deleteManualPriceList + +
+ +Delete a Manual Price List + +**Parameters:** + +| Name | Type | Required | Description | +|------|------|----------|--------------| +| `payload` | oas:DeleteManualPriceListRequest | Yes | | +| `headers` | map<string|string[]> | No | Headers to be sent with the request | + +**Returns:** `oas:manualpricelistResponse|error` + +**Sample code:** + +```ballerina +oas:manualpricelistResponse result = check pricefxClient->deleteManualPriceList(payload); +``` + +
+
+ +
+deleteManualPriceListProduct + +
+ +Delete a Product from a Manual Price List + +**Parameters:** + +| Name | Type | Required | Description | +|------|------|----------|--------------| +| `id` | string | Yes | The ID of the Manual Price List whose product you want to delete | +| `payload` | oas:DeleteProductFromManualPriceListRequest | Yes | | +| `headers` | map<string|string[]> | No | Headers to be sent with the request | + +**Returns:** `oas:productResponse|error` + +**Sample code:** + +```ballerina +oas:productResponse result = check pricefxClient->deleteManualPriceListProduct(id, payload); +``` + +
+
+ +
+deleteManualPriceListProducts + +
+ +Delete Products from a Manual Price List + +**Parameters:** + +| Name | Type | Required | Description | +|------|------|----------|--------------| +| `id` | string | Yes | The ID of the Manual Price List whose products you want to delete | +| `payload` | oas:DeleteProductsFromManualPriceListRequest | Yes | | +| `headers` | map<string|string[]> | No | Headers to be sent with the request | + +**Returns:** `oas:DeleteProductsFromManualPriceListResponse|error` + +**Sample code:** + +```ballerina +oas:DeleteProductsFromManualPriceListResponse result = check pricefxClient->deleteManualPriceListProducts(id, payload); +``` + +
+
+ +
+listManualPriceListProducts + +
+ +List Products From a Manual Price List + +**Parameters:** + +| Name | Type | Required | Description | +|------|------|----------|--------------| +| `id` | string | Yes | The ID of the Manual Price List you want to retrieve products from | +| `payload` | oas:ListProductsFromManualPriceListRequest | Yes | | +| `headers` | map<string|string[]> | No | Headers to be sent with the request | + +**Returns:** `oas:ListProductsFromManualPriceListResponse|error` + +**Sample code:** + +```ballerina +oas:ListProductsFromManualPriceListResponse result = check pricefxClient->listManualPriceListProducts(id, payload); +``` + +
+
+ +
+listManualPriceLists + +
+ +List Manual Price Lists + +**Parameters:** + +| Name | Type | Required | Description | +|------|------|----------|--------------| +| `payload` | oas:ListManualPriceListsRequest | Yes | | +| `headers` | map<string|string[]> | No | Headers to be sent with the request | + +**Returns:** `oas:manualpricelistResponse|error` + +**Sample code:** + +```ballerina +oas:manualpricelistResponse result = check pricefxClient->listManualPriceLists(payload); +``` + +
+
+ +
+massEditManualPriceListItems + +
+ +Mass Edit a Manual Price List Items + +**Parameters:** + +| Name | Type | Required | Description | +|------|------|----------|--------------| +| `id` | string | Yes | The ID of the Manual Price List whose products you want to update | +| `payload` | oas:MassEditMPLRequest | Yes | | +| `headers` | map<string|string[]> | No | Headers to be sent with the request | + +**Returns:** `oas:MassEditManualPriceListResponse|error` + +**Sample code:** + +```ballerina +oas:MassEditManualPriceListResponse result = check pricefxClient->massEditManualPriceListItems(id, payload); +``` + +
+
+ +
+updateManualPriceListItem + +
+ +Update a Manual Price List Item + +**Parameters:** + +| Name | Type | Required | Description | +|------|------|----------|--------------| +| `id` | string | Yes | The ID of the Manual Price List whose item you want to update | +| `payload` | oas:UpdateManualPriceListRequest | Yes | | +| `headers` | map<string|string[]> | No | Headers to be sent with the request | + +**Returns:** `oas:UpdateManualPriceListResponse|error` + +**Sample code:** + +```ballerina +oas:UpdateManualPriceListResponse result = check pricefxClient->updateManualPriceListItem(id, payload); +``` + +
+
+ +
+upsertManualPriceListProduct + +
+ +Upsert a Product in a Manual Price List + payload - + +**Parameters:** + +| Name | Type | Required | Description | +|------|------|----------|--------------| +| `id` | string | Yes | The ID of the Manual Price List whose product you want to create or update | +| `payload` | oas:UpsertProductManualPriceListRequest | Yes | | +| `headers` | map<string|string[]> | No | Headers to be sent with the request | + +**Returns:** `oas:productResponse|error` + +**Sample code:** + +```ballerina +oas:productResponse result = check pricefxClient->upsertManualPriceListProduct(id, payload); +``` + +
+
+ +#### Calculation Grids + +
+acceptCalculationGridItem + +
+ +Submit a Calculation Grid Item + +**Parameters:** + +| Name | Type | Required | Description | +|------|------|----------|--------------| +| `id` | string | Yes | The `id` of the Calculation Grid you want to submit items for. You can retrieve the `id` of the CG, for example, by calling the `/fetch/CG` endpoint | +| `payload` | oas:SubmitCalculationGridItemRequest | Yes | | +| `headers` | map<string|string[]> | No | Headers to be sent with the request | + +**Returns:** `oas:SubmitCalculationGridItemResponse|error` + +**Sample code:** + +```ballerina +oas:SubmitCalculationGridItemResponse result = check pricefxClient->acceptCalculationGridItem(id, payload); +``` + +
+
+ +
+addCalculationGrid + +
+ +Add a Calculation Grid + +**Parameters:** + +| Name | Type | Required | Description | +|------|------|----------|--------------| +| `payload` | oas:AddCalculationGridRequest | Yes | | +| `headers` | map<string|string[]> | No | Headers to be sent with the request | + +**Returns:** `oas:AddCalculationGridResponse|error` + +**Sample code:** + +```ballerina +oas:AddCalculationGridResponse result = check pricefxClient->addCalculationGrid(payload); +``` + +
+
+ +
+addCalculationGridItem + +
+ +Add a Calculation Grid Item + +**Parameters:** + +| Name | Type | Required | Description | +|------|------|----------|--------------| +| `keyNumber` | "1"|"2"|"3"|"4"|"5"|"6" | Yes | Use CGI1..CGI6 in the path, where numbers from 1 to 6 refer to Calculation Grid Item keys | +| `payload` | oas:AddCalculationGridItemRequest | Yes | | +| `headers` | map<string|string[]> | No | Headers to be sent with the request | + +**Returns:** `oas:AddCalculationGridItemResponse|error` + +**Sample code:** + +```ballerina +oas:AddCalculationGridItemResponse result = check pricefxClient->addCalculationGridItem(keyNumber, payload); +``` + +
+
+ +
+calculateCalculationGrid + +
+ +Calculate a Calculation Grid + +**Parameters:** + +| Name | Type | Required | Description | +|------|------|----------|--------------| +| `id` | string | Yes | `id` of the Calculation Grid you want to calculate | +| `payload` | oas:CalculateCalculationGridRequest | Yes | | +| `headers` | map<string|string[]> | No | Headers to be sent with the request | + +**Returns:** `oas:CalculateCalculationGridResponse|error` + +**Sample code:** + +```ballerina +oas:CalculateCalculationGridResponse result = check pricefxClient->calculateCalculationGrid(id, payload); +``` + +
+
+ +
+deleteCalculationGrid + +
+ +Delete a Calculation Grid + +**Parameters:** + +| Name | Type | Required | Description | +|------|------|----------|--------------| +| `payload` | oas:DeleteCalculationGridRequest | Yes | | +| `headers` | map<string|string[]> | No | Headers to be sent with the request | + +**Returns:** `oas:DeleteCalculationGridResponse|error` + +**Sample code:** + +```ballerina +oas:DeleteCalculationGridResponse result = check pricefxClient->deleteCalculationGrid(payload); +``` + +
+
+ +
+deleteCalculationGridItem + +
+ +Delete a Calculation Grid Item + +**Parameters:** + +| Name | Type | Required | Description | +|------|------|----------|--------------| +| `keyNumber` | "1"|"2"|"3"|"4"|"5"|"6" | Yes | Use CGI1..CGI6 in the path, where numbers from 1 to 6 refer to Calculation Grid Item keys | +| `payload` | oas:DeleteCalculationGridItemRequest | Yes | | +| `headers` | map<string|string[]> | No | Headers to be sent with the request | + +**Returns:** `oas:DeleteCalculationGridItemResponse|error` + +**Sample code:** + +```ballerina +oas:DeleteCalculationGridItemResponse result = check pricefxClient->deleteCalculationGridItem(keyNumber, payload); +``` + +
+
+ +
+getCalculationGrid + +
+ +Get a Calculation Grid + +**Parameters:** + +| Name | Type | Required | Description | +|------|------|----------|--------------| +| `id` | string | Yes | ID of the Calculation Grid you want to retrieve | +| `payload` | record {} | Yes | | +| `headers` | map<string|string[]> | No | Headers to be sent with the request | + +**Returns:** `oas:GetCalculationGridResponse|error` + +**Sample code:** + +```ballerina +oas:GetCalculationGridResponse result = check pricefxClient->getCalculationGrid(id, payload); +``` + +
+
+ +
+getCalculationGridItem + +
+ +Get a Calculation Grid Item + +**Parameters:** + +| Name | Type | Required | Description | +|------|------|----------|--------------| +| `keyNumber` | "1"|"2"|"3"|"4"|"5"|"6" | Yes | Use CGI1..CGI6 in the path, where numbers from 1 to 6 refer to Calculation Grid Item keys | +| `id` | string | Yes | `id` of the Calculation Grid Item you want to fetch | +| `payload` | record {} | Yes | | +| `headers` | map<string|string[]> | No | Headers to be sent with the request | + +**Returns:** `oas:GetCalculationGridItemResponse|error` + +**Sample code:** + +```ballerina +oas:GetCalculationGridItemResponse result = check pricefxClient->getCalculationGridItem(keyNumber, id, payload); +``` + +
+
+ +
+listCalculationGridItems + +
+ +List Calculation Grid Items + +**Parameters:** + +| Name | Type | Required | Description | +|------|------|----------|--------------| +| `keyNumber` | "1"|"2"|"3"|"4"|"5"|"6" | Yes | Use CGI1..CGI6 in the path, where numbers from 1 to 6 refer to Calculation Grid Item keys | +| `payload` | oas:ListCalculationGridItemsRequest | Yes | | +| `headers` | map<string|string[]> | No | Headers to be sent with the request | + +**Returns:** `oas:ListCalculationGridItemsResponse|error` + +**Sample code:** + +```ballerina +oas:ListCalculationGridItemsResponse result = check pricefxClient->listCalculationGridItems(keyNumber, payload); +``` + +
+
+ +
+listCalculationGrids + +
+ +List Calculation Grids + +**Parameters:** + +| Name | Type | Required | Description | +|------|------|----------|--------------| +| `payload` | record {} | Yes | | +| `headers` | map<string|string[]> | No | Headers to be sent with the request | + +**Returns:** `oas:ListCalculationGridsResponse|error` + +**Sample code:** + +```ballerina +oas:ListCalculationGridsResponse result = check pricefxClient->listCalculationGrids(payload); +``` + +
+
+ +
+rejectCalculationGridItem + +
+ +Deny a Calculation Grid Item + +**Parameters:** + +| Name | Type | Required | Description | +|------|------|----------|--------------| +| `id` | string | Yes | The `id` of the Calculation Grid you want to deny items for. You can retrieve the `id` of the CG, for example, by calling the `/fetch/CG` endpoint | +| `payload` | oas:DenyCalculationGridItemRequest | Yes | | +| `headers` | map<string|string[]> | No | Headers to be sent with the request | + +**Returns:** `oas:DenyCalculationGridItemResponse|error` + +**Sample code:** + +```ballerina +oas:DenyCalculationGridItemResponse result = check pricefxClient->rejectCalculationGridItem(id, payload); +``` + +
+
+ +
+updateCalculationGrid + +
+ +Update a Calculation Grid + +**Parameters:** + +| Name | Type | Required | Description | +|------|------|----------|--------------| +| `payload` | oas:UpdateCalculationGridRequest | Yes | | +| `headers` | map<string|string[]> | No | Headers to be sent with the request | + +**Returns:** `oas:UpdateCalculationGridResponse|error` + +**Sample code:** + +```ballerina +oas:UpdateCalculationGridResponse result = check pricefxClient->updateCalculationGrid(payload); +``` + +
+
+ +
+updateCalculationGridItem + +
+ +Update a Calculation Grid Item + +**Parameters:** + +| Name | Type | Required | Description | +|------|------|----------|--------------| +| `id` | string | Yes | `id` of the Calculation Grid Item you want to update | +| `payload` | oas:UpdateCalculationGridItemRequest | Yes | | +| `headers` | map<string|string[]> | No | Headers to be sent with the request | + +**Returns:** `oas:UpdateCalculationGridItemResponse|error` + +**Sample code:** + +```ballerina +oas:UpdateCalculationGridItemResponse result = check pricefxClient->updateCalculationGridItem(id, payload); +``` + +
+
+ +#### Calculated Field Sets + +
+calculateCfs + +
+ +Calculate a CFS + +**Parameters:** + +| Name | Type | Required | Description | +|------|------|----------|--------------| +| `id` | string | Yes | The `id` is the `typedId` without the type suffix. For example, the `id` attribute of the item with `typedId` = **2147484837.PL** is **2147484837** | +| `headers` | map<string|string[]> | No | Headers to be sent with the request | + +**Returns:** `oas:CalculateCFSResponse|error` + +**Sample code:** + +```ballerina +oas:CalculateCFSResponse result = check pricefxClient->calculateCfs(id); +``` + +
+
+ +
+cancelCfsCalculation + +
+ +Cancel a CFS Calculation + +**Parameters:** + +| Name | Type | Required | Description | +|------|------|----------|--------------| +| `id` | string | Yes | The `id` is the `typedId` without the type suffix. For example, the `id` attribute of the item with `typedId` = **2147484837.PL** is **2147484837** | +| `headers` | map<string|string[]> | No | Headers to be sent with the request | + +**Returns:** `oas:generalResponse|error` + +**Sample code:** + +```ballerina +oas:generalResponse result = check pricefxClient->cancelCfsCalculation(id); +``` + +
+
+ +
+deleteCalculatedFieldSet + +
+ +Delete a Calculated Field Set + +**Parameters:** + +| Name | Type | Required | Description | +|------|------|----------|--------------| +| `payload` | oas:DeleteCalculatedFieldSetRequest | Yes | | +| `headers` | map<string|string[]> | No | Headers to be sent with the request | + +**Returns:** `error?` + +**Sample code:** + +```ballerina +error? result = check pricefxClient->deleteCalculatedFieldSet(payload); +``` + +
+
+ +
+listCalculatedFieldSets + +
+ +List Calculated Field Sets + +**Parameters:** + +| Name | Type | Required | Description | +|------|------|----------|--------------| +| `headers` | map<string|string[]> | No | Headers to be sent with the request | + +**Returns:** `oas:ListCalculatedFieldSetsResponse|error` + +**Sample code:** + +```ballerina +oas:ListCalculatedFieldSetsResponse result = check pricefxClient->listCalculatedFieldSets(); +``` + +
+
+ +#### Live Price Grids + +
+addLivePriceGridType + +
+ +Add a Live Price Grid Type + +**Parameters:** + +| Name | Type | Required | Description | +|------|------|----------|--------------| +| `payload` | oas:AddPGTTBody | Yes | | +| `headers` | map<string|string[]> | No | Headers to be sent with the request | + +**Returns:** `oas:LivePriceGridTypeOperationEnvelope|error` + +**Sample code:** + +```ballerina +oas:LivePriceGridTypeOperationEnvelope result = check pricefxClient->addLivePriceGridType(payload); +``` + +
+
+ +
+addPriceGridItemsToPriceGrid + +
+ +Add Price Grid Items to a Price Grid + +**Parameters:** + +| Name | Type | Required | Description | +|------|------|----------|--------------| +| `id` | string | Yes | The ID of the Live Price Grid where you want to add Price Grid Items to. `id` is the `typedId` without **PG** suffix. For example, the `id` attribute of the item with `typedId` = **649.PG** is **649**. You can retrieve the `id` of the LPG, for example, by calling the `/fetch/PG` endpoint | +| `payload` | oas:AddPriceGridItemsRequest | Yes | | +| `headers` | map<string|string[]> | No | Headers to be sent with the request | + +**Returns:** `oas:AddPriceGridItemsToPriceGridResponse|error` + +**Sample code:** + +```ballerina +oas:AddPriceGridItemsToPriceGridResponse result = check pricefxClient->addPriceGridItemsToPriceGrid(id, payload); +``` + +
+
+ +
+calculatePriceGrid + +
+ +Calculate a Price Grid + +**Parameters:** + +| Name | Type | Required | Description | +|------|------|----------|--------------| +| `id` | string | Yes | | +| `headers` | map<string|string[]> | No | Headers to be sent with the request | + +**Returns:** `oas:CalculatePriceGridResponse|error` + +**Sample code:** + +```ballerina +oas:CalculatePriceGridResponse result = check pricefxClient->calculatePriceGrid(id); +``` + +
+
+ +
+cancelPriceGridCalculation + +
+ +Cancel a Calculation + +**Parameters:** + +| Name | Type | Required | Description | +|------|------|----------|--------------| +| `id` | string | Yes | The ID of the Live Price Grid whose running calculation should be cancelled | +| `headers` | map<string|string[]> | No | Headers to be sent with the request | + +**Returns:** `oas:CancelCalculationResponse|error` + +**Sample code:** + +```ballerina +oas:CancelCalculationResponse result = check pricefxClient->cancelPriceGridCalculation(id); +``` + +
+
+ +
+convertToPriceList + +
+ +Convert to Price List + +**Parameters:** + +| Name | Type | Required | Description | +|------|------|----------|--------------| +| `id` | string | Yes | | +| `headers` | map<string|string[]> | No | Headers to be sent with the request | + +**Returns:** `oas:ConvertPriceListResponse|error` + +**Sample code:** + +```ballerina +oas:ConvertPriceListResponse result = check pricefxClient->convertToPriceList(id); +``` + +
+
+ +
+copyPriceGrid + +
+ +Copy a Price Grid + +**Parameters:** + +| Name | Type | Required | Description | +|------|------|----------|--------------| +| `id` | string | Yes | The `id` of the Live Price Grid you want to copy. You can retrieve the `id` of the LPG, for example, by calling the `/fetch/PG` endpoint | +| `headers` | map<string|string[]> | No | Headers to be sent with the request | + +**Returns:** `oas:CopyPriceGridResponse|error` + +**Sample code:** + +```ballerina +oas:CopyPriceGridResponse result = check pricefxClient->copyPriceGrid(id); +``` + +
+
+ +
+countMassActionItems + +
+ +Count Mass Action Items + +**Parameters:** + +| Name | Type | Required | Description | +|------|------|----------|--------------| +| `id` | string | Yes | | +| `payload` | oas:CountMassActionItemsRequest | Yes | | +| `headers` | map<string|string[]> | No | Headers to be sent with the request | + +**Returns:** `oas:CountMassActionItemsResponse|error` + +**Sample code:** + +```ballerina +oas:CountMassActionItemsResponse result = check pricefxClient->countMassActionItems(id, payload); +``` + +
+
+ +
+deleteLivePriceGrid + +
+ +Delete a Live Price Grid + +**Parameters:** + +| Name | Type | Required | Description | +|------|------|----------|--------------| +| `payload` | oas:DeleteLivePriceGridRequest | Yes | | +| `headers` | map<string|string[]> | No | Headers to be sent with the request | + +**Returns:** `oas:DeleteLivePriceGridResponse|error` + +**Sample code:** + +```ballerina +oas:DeleteLivePriceGridResponse result = check pricefxClient->deleteLivePriceGrid(payload); +``` + +
+
+ +
+deleteLivePriceGridType + +
+ +Delete a Live Price Grid Type + payload - + +**Parameters:** + +| Name | Type | Required | Description | +|------|------|----------|--------------| +| `payload` | oas:DeletePLTTBody | Yes | | +| `headers` | map<string|string[]> | No | Headers to be sent with the request | + +**Returns:** `oas:LivePriceGridTypeOperationEnvelope|error` + +**Sample code:** + +```ballerina +oas:LivePriceGridTypeOperationEnvelope result = check pricefxClient->deleteLivePriceGridType(payload); +``` + +
+
+ +
+deletePriceGridItem + +
+ +Delete a Price Grid Item + +**Parameters:** + +| Name | Type | Required | Description | +|------|------|----------|--------------| +| `id` | string | Yes | The ID of the Price Grid you want to delete the Price Grid Item from | +| `payload` | oas:DeletePriceGridItemRequest | Yes | | +| `headers` | map<string|string[]> | No | Headers to be sent with the request | + +**Returns:** `oas:pricegriditemResponse|error` + +**Sample code:** + +```ballerina +oas:pricegriditemResponse result = check pricefxClient->deletePriceGridItem(id, payload); +``` + +
+
+ +
+deletePriceGridItemFilter + +
+ +Delete a Price Grid Item (Filter) + payload - + +**Parameters:** + +| Name | Type | Required | Description | +|------|------|----------|--------------| +| `id` | string | Yes | The ID of the Price Grid that contains Price Grid Items you want to delete | +| `payload` | oas:DeletePriceGridItemFilterRequest | Yes | | +| `headers` | map<string|string[]> | No | Headers to be sent with the request | + +**Returns:** `error?` + +**Sample code:** + +```ballerina +error? result = check pricefxClient->deletePriceGridItemFilter(id, payload); +``` + +
+
+ +
+denyLivePriceGridItem + +
+ +Deny a Live Price Grid Item + +**Parameters:** + +| Name | Type | Required | Description | +|------|------|----------|--------------| +| `id` | string | Yes | The ID of the Price Grid that contains the Price Grid Item you want to deny | +| `payload` | oas:DenyLivePriceGridItemRequest | Yes | | +| `headers` | map<string|string[]> | No | Headers to be sent with the request | + +**Returns:** `oas:pricegriditemResponse|error` + +**Sample code:** + +```ballerina +oas:pricegriditemResponse result = check pricefxClient->denyLivePriceGridItem(id, payload); +``` + +
+
+ +
+downloadLivePriceGridExcelFile + +
+ +Download a Live Price Grid Excel File + +**Parameters:** + +| Name | Type | Required | Description | +|------|------|----------|--------------| +| `id1` | string | Yes | | +| `id2` | string | Yes | | +| `id3` | string | Yes | | +| `id4` | string | Yes | | +| `id5` | string | Yes | | +| `id6` | string | Yes | | +| `id7` | string | Yes | | +| `id8` | string | Yes | | +| `id9` | string | Yes | | +| `id10` | string | Yes | | +| `id11` | string | Yes | | +| `id12` | string | Yes | | +| `id13` | string | Yes | IDs of the Price Grids you want to download | +| `headers` | map<string|string[]> | No | Headers to be sent with the request | +| `queries` | *oas:DownloadLivePriceGridExcelFileQueries | Yes | Queries to be sent with the request | + +**Returns:** `http:Response|error` + +**Sample code:** + +```ballerina +http:Response result = check pricefxClient->downloadLivePriceGridExcelFile(id1, id2, id3, id4, id5, id6, id7, id8, id9, id10, id11, id12, id13, queries); +``` + +
+
+ +
+getLivePriceGrid + +
+ +Get a Live Price Grid + +**Parameters:** + +| Name | Type | Required | Description | +|------|------|----------|--------------| +| `id` | string | Yes | The `id` of the Live Price Grid you want to retrieve details for. You can retrieve the `id` of the LPG, for example, by calling the `/fetch/PG` endpoint | +| `headers` | map<string|string[]> | No | Headers to be sent with the request | + +**Returns:** `oas:GetLivePriceGridResponse|error` + +**Sample code:** + +```ballerina +oas:GetLivePriceGridResponse result = check pricefxClient->getLivePriceGrid(id); +``` + +
+
+ +
+listLivePriceGridItems + +
+ +List Live Price Grid Items + +**Parameters:** + +| Name | Type | Required | Description | +|------|------|----------|--------------| +| `id` | string | Yes | The `id` of the Live Price Grid you want to retrieve items for. You can retrieve the `id` of the LPG, for example, by calling the `/fetch/PG` endpoint | +| `payload` | oas:ListLivePriceGridItemsRequest | Yes | | +| `headers` | map<string|string[]> | No | Headers to be sent with the request | + +**Returns:** `oas:ListLivePriceGridItemsResponse|error` + +**Sample code:** + +```ballerina +oas:ListLivePriceGridItemsResponse result = check pricefxClient->listLivePriceGridItems(id, payload); +``` + +
+
+ +
+listLivePriceGridTypes + +
+ +List Live Price Grid Types + +**Parameters:** + +| Name | Type | Required | Description | +|------|------|----------|--------------| +| `headers` | map<string|string[]> | No | Headers to be sent with the request | + +**Returns:** `oas:ListLivePriceGridTypesEnvelope|error` + +**Sample code:** + +```ballerina +oas:ListLivePriceGridTypesEnvelope result = check pricefxClient->listLivePriceGridTypes(); +``` + +
+
+ +
+listLivePriceGrids + +
+ +List Live Price Grids + +**Parameters:** + +| Name | Type | Required | Description | +|------|------|----------|--------------| +| `payload` | oas:ListLivePriceGridsRequest | Yes | | +| `headers` | map<string|string[]> | No | Headers to be sent with the request | + +**Returns:** `oas:ListLivePriceGridsResponse|error` + +**Sample code:** + +```ballerina +oas:ListLivePriceGridsResponse result = check pricefxClient->listLivePriceGrids(payload); +``` + +
+
+ +
+massEditPriceGridItems + +
+ +Mass Edit Price Grid Items + +**Parameters:** + +| Name | Type | Required | Description | +|------|------|----------|--------------| +| `id` | string | Yes | The `id` of the Live Price Grid whose items you want to edit. You can retrieve the `id` of the LPG, for example, by calling the `/fetch/PG` endpoint | +| `payload` | oas:MassEditPriceGridItemsRequest | Yes | | +| `headers` | map<string|string[]> | No | Headers to be sent with the request | + +**Returns:** `oas:MassEditPriceGridItemsResponse|error` + +**Sample code:** + +```ballerina +oas:MassEditPriceGridItemsResponse result = check pricefxClient->massEditPriceGridItems(id, payload); +``` + +
+
+ +
+performMassAction + +
+ +Perform a Mass Action + +**Parameters:** + +| Name | Type | Required | Description | +|------|------|----------|--------------| +| `id` | string | Yes | The ID of the Price Grid that contains items you want to apply workflow actions to | +| `payload` | oas:PerformMassActionRequest | Yes | | +| `headers` | map<string|string[]> | No | Headers to be sent with the request | + +**Returns:** `oas:PerformMassActionResponse|error` + +**Sample code:** + +```ballerina +oas:PerformMassActionResponse result = check pricefxClient->performMassAction(id, payload); +``` + +
+
+ +
+submitProducts + +
+ +Submit Products + +**Parameters:** + +| Name | Type | Required | Description | +|------|------|----------|--------------| +| `id` | string | Yes | The `id` of the Live Price Grid you want to submit items for. You can retrieve the `id` of the LPG, for example, by calling the `/fetch/PG` endpoint | +| `payload` | oas:SubmitProductsRequest | Yes | | +| `headers` | map<string|string[]> | No | Headers to be sent with the request | + +**Returns:** `oas:SubmitProductsResponse|error` + +**Sample code:** + +```ballerina +oas:SubmitProductsResponse result = check pricefxClient->submitProducts(id, payload); +``` + +
+
+ +
+updateLivePriceGridItem + +
+ +Update a Live Price Grid Item + +**Parameters:** + +| Name | Type | Required | Description | +|------|------|----------|--------------| +| `id` | string | Yes | The ID of the Price Grid whose item you want to update. `id` is the `typedId` without **PG** suffix. For example, the `id` attribute of the item with `typedId` = **649.PG** is **649**. You can retrieve the `id` of the LPG, for example, by calling the `/fetch/PG` endpoint | +| `payload` | oas:UpdateLivePriceGridItemRequest | Yes | We have performed an update action on the `comments` field in our request sample >>> | +| `headers` | map<string|string[]> | No | Headers to be sent with the request | + +**Returns:** `oas:pricegriditemResponse|error` + +**Sample code:** + +```ballerina +oas:pricegriditemResponse result = check pricefxClient->updateLivePriceGridItem(id, payload); +``` + +
+
+ +
+updateLivePriceGridItemNo + +
+ +Update a Live Price Grid Item (No Recalculation) + +**Parameters:** + +| Name | Type | Required | Description | +|------|------|----------|--------------| +| `id` | string | Yes | The ID of the Price Grid whose item you want to update. `id` is the `typedId` without **PG** suffix. For example, the `id` attribute of the item with `typedId` = **649.PG** is **649**. You can retrieve the `id` of the LPG, for example, by calling the `/fetch/PG` endpoint | +| `payload` | oas:UpdateLivePriceGridItemNoRecalcRequest | Yes | We have performed an update action on the `comments` field in our request sample >>> | +| `headers` | map<string|string[]> | No | Headers to be sent with the request | + +**Returns:** `oas:pricegriditemResponse|error` + +**Sample code:** + +```ballerina +oas:pricegriditemResponse result = check pricefxClient->updateLivePriceGridItemNo(id, payload); +``` + +
+
+ +
+updateLivePriceGridType + +
+ +Update a Live Price Grid Type + +**Parameters:** + +| Name | Type | Required | Description | +|------|------|----------|--------------| +| `payload` | oas:UpdatePGTTBody | Yes | | +| `headers` | map<string|string[]> | No | Headers to be sent with the request | + +**Returns:** `oas:LivePriceGridTypeOperationEnvelope|error` + +**Sample code:** + +```ballerina +oas:LivePriceGridTypeOperationEnvelope result = check pricefxClient->updateLivePriceGridType(payload); +``` + +
+
+ +#### Quotes + +
+addQuoteProducts + +
+ +Add Products to a Quote + +**Parameters:** + +| Name | Type | Required | Description | +|------|------|----------|--------------| +| `payload` | oas:AddProductsToQuoteRequest | Yes | | +| `headers` | map<string|string[]> | No | Headers to be sent with the request | + +**Returns:** `oas:quoteResponse|error` + +**Sample code:** + +```ballerina +oas:quoteResponse result = check pricefxClient->addQuoteProducts(payload); +``` + +
+
+ +
+convertQuoteToDeal + +
+ +Convert to a Deal + +**Parameters:** + +| Name | Type | Required | Description | +|------|------|----------|--------------| +| `identifier` | string | Yes | Can be either the `uniqueName` or the `typedId` | +| `headers` | map<string|string[]> | No | Headers to be sent with the request | + +**Returns:** `oas:quoteResponse|error` + +**Sample code:** + +```ballerina +oas:quoteResponse result = check pricefxClient->convertQuoteToDeal(identifier); +``` + +
+
+ +
+copyQuote + +
+ +Copy a Quote + +**Parameters:** + +| Name | Type | Required | Description | +|------|------|----------|--------------| +| `typedId` | string | Yes | | +| `payload` | record {} | Yes | | +| `headers` | map<string|string[]> | No | Headers to be sent with the request | + +**Returns:** `oas:CopyQuoteEnvelope|error` + +**Sample code:** + +```ballerina +oas:CopyQuoteEnvelope result = check pricefxClient->copyQuote(typedId, payload); +``` + +
+
+ +
+createClic + +
+ +Create a Quote + +**Parameters:** + +| Name | Type | Required | Description | +|------|------|----------|--------------| +| `typeCode` | "Q"|"QTMP" | Yes | Enter the type code of the entity you want to create | +| `payload` | oas:ClicmanagerCreateTypeCodeBody | Yes | | +| `headers` | map<string|string[]> | No | Headers to be sent with the request | + +**Returns:** `oas:ClicOperationEnvelope|error` + +**Sample code:** + +```ballerina +oas:ClicOperationEnvelope result = check pricefxClient->createClic(typeCode, payload); +``` + +
+
+ +
+createQuoteRevision + +
+ +Create a New Revision + +**Parameters:** + +| Name | Type | Required | Description | +|------|------|----------|--------------| +| `identifier` | string | Yes | Can be either the `uniqueName` or the `typedId` | +| `headers` | map<string|string[]> | No | Headers to be sent with the request | + +**Returns:** `oas:quoteResponse|error` + +**Sample code:** + +```ballerina +oas:quoteResponse result = check pricefxClient->createQuoteRevision(identifier); +``` + +
+
+ +
+exportQuoteDocx + +
+ +Export a DOCX File + +**Parameters:** + +| Name | Type | Required | Description | +|------|------|----------|--------------| +| `uniqueName` | string | Yes | Specify the `uniqueName` of the quote you want to download | +| `headers` | map<string|string[]> | No | Headers to be sent with the request | +| `queries` | *oas:ExportQuoteDocxQueries | Yes | Queries to be sent with the request | + +**Returns:** `error?` + +**Sample code:** + +```ballerina +error? result = check pricefxClient->exportQuoteDocx(uniqueName, queries); +``` + +
+
+ +
+exportQuoteExcel + +
+ +Export an Excel File + +**Parameters:** + +| Name | Type | Required | Description | +|------|------|----------|--------------| +| `uniqueName` | string | Yes | Specify the `uniqueName` of the quote you want to download | +| `headers` | map<string|string[]> | No | Headers to be sent with the request | +| `queries` | *oas:ExportQuoteExcelQueries | Yes | Queries to be sent with the request | + +**Returns:** `error?` + +**Sample code:** + +```ballerina +error? result = check pricefxClient->exportQuoteExcel(uniqueName, queries); +``` + +
+
+ +
+exportQuotePdf + +
+ +Export a PDF File + +**Parameters:** + +| Name | Type | Required | Description | +|------|------|----------|--------------| +| `uniqueName` | string | Yes | Specify the `uniqueName` of the quote you want to download | +| `headers` | map<string|string[]> | No | Headers to be sent with the request | +| `queries` | *oas:ExportQuotePdfQueries | Yes | Queries to be sent with the request | + +**Returns:** `record` + +**Sample code:** + +```ballerina +record result = check pricefxClient->exportQuotePdf(uniqueName, queries); +``` + +
+
+ +
+getClicDraftHeader + +
+ +Get a Temporary Data + +**Parameters:** + +| Name | Type | Required | Description | +|------|------|----------|--------------| +| `typedId` | string | Yes | `typedId` of the Quote you want to retrieve the temporary data from | +| `payload` | record {} | Yes | | +| `headers` | map<string|string[]> | No | Headers to be sent with the request | + +**Returns:** `oas:ClicDraftHeaderEnvelope|error` + +**Sample code:** + +```ballerina +oas:ClicDraftHeaderEnvelope result = check pricefxClient->getClicDraftHeader(typedId, payload); +``` + +
+
+ +
+getClicFolderStats + +
+ +Get Folder Statistics + +**Parameters:** + +| Name | Type | Required | Description | +|------|------|----------|--------------| +| `typedId` | string | Yes | typedId of the document whose folder statistics you want to fetch | +| `headers` | map<string|string[]> | No | Headers to be sent with the request | +| `queries` | *oas:GetClicFolderStatsQueries | Yes | Queries to be sent with the request | + +**Returns:** `oas:ClicFolderStatsEnvelope|error` + +**Sample code:** + +```ballerina +oas:ClicFolderStatsEnvelope result = check pricefxClient->getClicFolderStats(typedId, queries); +``` + +
+
+ +
+getQuote + +
+ +Get a Quote + +**Parameters:** + +| Name | Type | Required | Description | +|------|------|----------|--------------| +| `typedID` | string | Yes | Enter the quote typed ID. You get the `typedId` in the response when fetching all quotes using the `/quotemanager.fetchlist` endpoint | +| `headers` | map<string|string[]> | No | Headers to be sent with the request | + +**Returns:** `oas:quoteResponse|error` + +**Sample code:** + +```ballerina +oas:quoteResponse result = check pricefxClient->getQuote(typedID); +``` + +
+
+ +
+listQuoteProducts + +
+ +List Products + +**Parameters:** + +| Name | Type | Required | Description | +|------|------|----------|--------------| +| `payload` | oas:ListProductsRequest1 | Yes | | +| `headers` | map<string|string[]> | No | Headers to be sent with the request | + +**Returns:** `error?` + +**Sample code:** + +```ballerina +error? result = check pricefxClient->listQuoteProducts(payload); +``` + +
+
+ +
+listQuotes + +
+ +List Quotes + +**Parameters:** + +| Name | Type | Required | Description | +|------|------|----------|--------------| +| `payload` | oas:ListQuotesRequest | Yes | | +| `headers` | map<string|string[]> | No | Headers to be sent with the request | + +**Returns:** `oas:ListQuotesResponse|error` + +**Sample code:** + +```ballerina +oas:ListQuotesResponse result = check pricefxClient->listQuotes(payload); +``` + +
+
+ +
+markQuoteLost + +
+ +Mark an Offer as Lost + +**Parameters:** + +| Name | Type | Required | Description | +|------|------|----------|--------------| +| `identifier` | string | Yes | Can be either the `uniqueName` or the `typedId` | +| `payload` | oas:MarkOfferAsLostRequest | Yes | | +| `headers` | map<string|string[]> | No | Headers to be sent with the request | + +**Returns:** `oas:quoteResponse|error` + +**Sample code:** + +```ballerina +oas:quoteResponse result = check pricefxClient->markQuoteLost(identifier, payload); +``` + +
+
+ +
+recalculateQuote + +
+ +Recalculate a Quote + +**Parameters:** + +| Name | Type | Required | Description | +|------|------|----------|--------------| +| `payload` | oas:RecalculateQuoteRequest | Yes | | +| `headers` | map<string|string[]> | No | Headers to be sent with the request | + +**Returns:** `oas:quoteResponse|error` + +**Sample code:** + +```ballerina +oas:quoteResponse result = check pricefxClient->recalculateQuote(payload); +``` + +
+
+ +
+revokeQuote + +
+ +Revoke a Deal + +**Parameters:** + +| Name | Type | Required | Description | +|------|------|----------|--------------| +| `identifier` | string | Yes | Can be either the `uniqueName` or the `typedId` | +| `headers` | map<string|string[]> | No | Headers to be sent with the request | + +**Returns:** `oas:RevokeDealResponse|error` + +**Sample code:** + +```ballerina +oas:RevokeDealResponse result = check pricefxClient->revokeQuote(identifier); +``` + +
+
+ +
+saveClicDraft + +
+ +Save a Temporary Data + +**Parameters:** + +| Name | Type | Required | Description | +|------|------|----------|--------------| +| `typedId` | string | Yes | `typedId` of the Temporary Quote you want to save | +| `payload` | record {} | Yes | | +| `headers` | map<string|string[]> | No | Headers to be sent with the request | + +**Returns:** `oas:ClicOperationEnvelope|error` + +**Sample code:** + +```ballerina +oas:ClicOperationEnvelope result = check pricefxClient->saveClicDraft(typedId, payload); +``` + +
+
+ +
+submitQuote + +
+ +Submit a Quote + +**Parameters:** + +| Name | Type | Required | Description | +|------|------|----------|--------------| +| `payload` | oas:SubmitQuoteRequest | Yes | | +| `headers` | map<string|string[]> | No | Headers to be sent with the request | + +**Returns:** `oas:quoteResponse|error` + +**Sample code:** + +```ballerina +oas:quoteResponse result = check pricefxClient->submitQuote(payload); +``` + +
+
+ +
+undoRevokeQuote + +
+ +Undo Quote Revocation + +**Parameters:** + +| Name | Type | Required | Description | +|------|------|----------|--------------| +| `typedId` | string | Yes | | +| `headers` | map<string|string[]> | No | Headers to be sent with the request | + +**Returns:** `error?` + +**Sample code:** + +```ballerina +error? result = check pricefxClient->undoRevokeQuote(typedId); +``` + +
+
+ +
+upsertQuote + +
+ +Upsert a Quote + +**Parameters:** + +| Name | Type | Required | Description | +|------|------|----------|--------------| +| `payload` | oas:UpsertQuoteRequest | Yes | | +| `headers` | map<string|string[]> | No | Headers to be sent with the request | + +**Returns:** `oas:quoteResponse|error` + +**Sample code:** + +```ballerina +oas:quoteResponse result = check pricefxClient->upsertQuote(payload); +``` + +
+
+ +#### Contracts (Agreements & Promotions) + +
+addContractLineItems + +
+ +Add Contract Line Items + +**Parameters:** + +| Name | Type | Required | Description | +|------|------|----------|--------------| +| `payload` | oas:AddContractLineItemsRequest | Yes | | +| `headers` | map<string|string[]> | No | Headers to be sent with the request | + +**Returns:** `oas:contractModelResponse|error` + +**Sample code:** + +```ballerina +oas:contractModelResponse result = check pricefxClient->addContractLineItems(payload); +``` + +
+
+ +
+exportContractPdf + +
+ +Export a PDF File + +**Parameters:** + +| Name | Type | Required | Description | +|------|------|----------|--------------| +| `uniqueName` | string | Yes | Specify the `uniqueName` of the A&P you want to download | +| `headers` | map<string|string[]> | No | Headers to be sent with the request | + +**Returns:** `http:Response|error` + +**Sample code:** + +```ballerina +http:Response result = check pricefxClient->exportContractPdf(uniqueName); +``` + +
+
+ +
+getContract + +
+ +Get a Contract + +**Parameters:** + +| Name | Type | Required | Description | +|------|------|----------|--------------| +| `uniqueName` | string | Yes | `uniqueName` of the Contract you want to retrieve details for. Alternatively, `typedId` can be also used | +| `headers` | map<string|string[]> | No | Headers to be sent with the request | + +**Returns:** `oas:contractModelResponse|error` + +**Sample code:** + +```ballerina +oas:contractModelResponse result = check pricefxClient->getContract(uniqueName); +``` + +
+
+ +
+listContractCalculations + +
+ +List Contract Calculations + +**Parameters:** + +| Name | Type | Required | Description | +|------|------|----------|--------------| +| `payload` | record {} | Yes | | +| `headers` | map<string|string[]> | No | Headers to be sent with the request | + +**Returns:** `oas:ListContractCalculationsEnvelope|error` + +**Sample code:** + +```ballerina +oas:ListContractCalculationsEnvelope result = check pricefxClient->listContractCalculations(payload); +``` + +
+
+ +
+listContractPriceRecords + +
+ +List Contract Price Records + +**Parameters:** + +| Name | Type | Required | Description | +|------|------|----------|--------------| +| `payload` | oas:FetchCPRBody | Yes | | +| `headers` | map<string|string[]> | No | Headers to be sent with the request | + +**Returns:** `oas:ListContractPriceRecords|error` + +**Sample code:** + +```ballerina +oas:ListContractPriceRecords result = check pricefxClient->listContractPriceRecords(payload); +``` + +
+
+ +
+listContracts + +
+ +List Contracts + +**Parameters:** + +| Name | Type | Required | Description | +|------|------|----------|--------------| +| `payload` | oas:ListContractsRequest | Yes | | +| `headers` | map<string|string[]> | No | Headers to be sent with the request | + +**Returns:** `oas:contractResponse|error` + +**Sample code:** + +```ballerina +oas:contractResponse result = check pricefxClient->listContracts(payload); +``` + +
+
+ +
+submitContract + +
+ +Submit a Contract + +**Parameters:** + +| Name | Type | Required | Description | +|------|------|----------|--------------| +| `payload` | oas:SubmitContractRequest | Yes | | +| `headers` | map<string|string[]> | No | Headers to be sent with the request | + +**Returns:** `oas:contractModelResponse|error` + +**Sample code:** + +```ballerina +oas:contractModelResponse result = check pricefxClient->submitContract(payload); +``` + +
+
+ +
+undoRevokeContract + +
+ +Undo Agreement & Promotion Revocation + +**Parameters:** + +| Name | Type | Required | Description | +|------|------|----------|--------------| +| `typedId` | string | Yes | | +| `headers` | map<string|string[]> | No | Headers to be sent with the request | + +**Returns:** `error?` + +**Sample code:** + +```ballerina +error? result = check pricefxClient->undoRevokeContract(typedId); +``` + +
+
+ +
+upsertContract + +
+ +Upsert a Contract + +**Parameters:** + +| Name | Type | Required | Description | +|------|------|----------|--------------| +| `payload` | oas:UpsertContractRequest | Yes | | +| `headers` | map<string|string[]> | No | Headers to be sent with the request | + +**Returns:** `oas:contractModelResponse|error` + +**Sample code:** + +```ballerina +oas:contractModelResponse result = check pricefxClient->upsertContract(payload); +``` + +
+
+ +#### Rebate Agreements + +
+addRebateAgreementItems + +
+ +Add Rebate Agreement Items + +**Parameters:** + +| Name | Type | Required | Description | +|------|------|----------|--------------| +| `payload` | oas:GetCustomerRequest | Yes | | +| `headers` | map<string|string[]> | No | Headers to be sent with the request | + +**Returns:** `oas:rebateagreementResponse|error` + +**Sample code:** + +```ballerina +oas:rebateagreementResponse result = check pricefxClient->addRebateAgreementItems(payload); +``` + +
+
+ +
+deleteRebateAgreement + +
+ +Delete a Rebate Agreement + +**Parameters:** + +| Name | Type | Required | Description | +|------|------|----------|--------------| +| `payload` | oas:DeleteRebateAgreementRequest | Yes | | +| `headers` | map<string|string[]> | No | Headers to be sent with the request | + +**Returns:** `oas:rebateagreementResponse|error` + +**Sample code:** + +```ballerina +oas:rebateagreementResponse result = check pricefxClient->deleteRebateAgreement(payload); +``` + +
+
+ +
+getRebateAgreement + +
+ +Get a Rebate Agreement + +**Parameters:** + +| Name | Type | Required | Description | +|------|------|----------|--------------| +| `uniqueName` | string | Yes | The `uniqueName` of the Rebate Agreement you want to retrieve details for | +| `headers` | map<string|string[]> | No | Headers to be sent with the request | + +**Returns:** `oas:rebateagreementResponse|error` + +**Sample code:** + +```ballerina +oas:rebateagreementResponse result = check pricefxClient->getRebateAgreement(uniqueName); +``` + +
+
+ +
+listRebateAgreementItems + +
+ +List Rebate Agreement Items + +**Parameters:** + +| Name | Type | Required | Description | +|------|------|----------|--------------| +| `payload` | oas:ListRebateAgreementItemsRequest | Yes | | +| `headers` | map<string|string[]> | No | Headers to be sent with the request | + +**Returns:** `oas:ListRebateAgreementItemsResponse|error` + +**Sample code:** + +```ballerina +oas:ListRebateAgreementItemsResponse result = check pricefxClient->listRebateAgreementItems(payload); +``` + +
+
+ +
+listRebateAgreements + +
+ +List Rebate Agreements + +**Parameters:** + +| Name | Type | Required | Description | +|------|------|----------|--------------| +| `payload` | oas:ListRebateAgreementsRequest | Yes | | +| `headers` | map<string|string[]> | No | Headers to be sent with the request | + +**Returns:** `oas:ListRebateAgreementsResponse|error` + +**Sample code:** + +```ballerina +oas:ListRebateAgreementsResponse result = check pricefxClient->listRebateAgreements(payload); +``` + +
+
+ +
+undoRebateAgreementRevocation + +
+ +Undo Rebate Agreement Revocation + +**Parameters:** + +| Name | Type | Required | Description | +|------|------|----------|--------------| +| `typedId` | string | Yes | | +| `headers` | map<string|string[]> | No | Headers to be sent with the request | + +**Returns:** `error?` + +**Sample code:** + +```ballerina +error? result = check pricefxClient->undoRebateAgreementRevocation(typedId); +``` + +
+
+ +
+undoRebateRecordRevocation + +
+ +Undo Rebate Record Revocation + +**Parameters:** + +| Name | Type | Required | Description | +|------|------|----------|--------------| +| `typedId` | string | Yes | | +| `headers` | map<string|string[]> | No | Headers to be sent with the request | + +**Returns:** `error?` + +**Sample code:** + +```ballerina +error? result = check pricefxClient->undoRebateRecordRevocation(typedId); +``` + +
+
+ +
+upsertRebateAgreement + +
+ +Upsert a Rebate Agreement + +**Parameters:** + +| Name | Type | Required | Description | +|------|------|----------|--------------| +| `payload` | oas:UpsertRebateAgreementRequest | Yes | | +| `headers` | map<string|string[]> | No | Headers to be sent with the request | + +**Returns:** `oas:rebateagreementResponse|error` + +**Sample code:** + +```ballerina +oas:rebateagreementResponse result = check pricefxClient->upsertRebateAgreement(payload); +``` + +
+
+ +#### Rebate Calculations + +
+addRebateCalculation + +
+ +Add a Rebate Calculation + +**Parameters:** + +| Name | Type | Required | Description | +|------|------|----------|--------------| +| `payload` | oas:AddRRSCBody | Yes | | +| `headers` | map<string|string[]> | No | Headers to be sent with the request | + +**Returns:** `oas:AddRebateCalculationResponse|error` + +**Sample code:** + +```ballerina +oas:AddRebateCalculationResponse result = check pricefxClient->addRebateCalculation(payload); +``` + +
+
+ +
+deleteRebateCalculation + +
+ +Delete a Rebate Calculation + +**Parameters:** + +| Name | Type | Required | Description | +|------|------|----------|--------------| +| `payload` | oas:DeleteRebateCalculationRequest | Yes | | +| `headers` | map<string|string[]> | No | Headers to be sent with the request | + +**Returns:** `oas:DeleteRebateCalculationResponse|error` + +**Sample code:** + +```ballerina +oas:DeleteRebateCalculationResponse result = check pricefxClient->deleteRebateCalculation(payload); +``` + +
+
+ +
+listRebateCalculations + +
+ +List Rebate Calculations + +**Parameters:** + +| Name | Type | Required | Description | +|------|------|----------|--------------| +| `payload` | oas:FetchRRSCBody | Yes | | +| `headers` | map<string|string[]> | No | Headers to be sent with the request | + +**Returns:** `oas:ListRebateCalculationsResponse|error` + +**Sample code:** + +```ballerina +oas:ListRebateCalculationsResponse result = check pricefxClient->listRebateCalculations(payload); +``` + +
+
+ +
+runRebateCalculation + +
+ +Run a Rebate Calculation + +**Parameters:** + +| Name | Type | Required | Description | +|------|------|----------|--------------| +| `payload` | oas:RebaterecordCalculatesetBody | Yes | | +| `headers` | map<string|string[]> | No | Headers to be sent with the request | + +**Returns:** `oas:RunRebateCalculationResponse|error` + +**Sample code:** + +```ballerina +oas:RunRebateCalculationResponse result = check pricefxClient->runRebateCalculation(payload); +``` + +
+
+ +
+saveRebateCalculation + +
+ +Save a Rebate Calculation + +**Parameters:** + +| Name | Type | Required | Description | +|------|------|----------|--------------| +| `payload` | oas:SaveRebateCalculationRequest | Yes | | +| `headers` | map<string|string[]> | No | Headers to be sent with the request | + +**Returns:** `oas:SaveRebateCalculationResponse|error` + +**Sample code:** + +```ballerina +oas:SaveRebateCalculationResponse result = check pricefxClient->saveRebateCalculation(payload); +``` + +
+
+ +#### Rebate Record Group + +
+calculateRebateRecordGroup + +
+ +Calculate a Rebate Record Group + +**Parameters:** + +| Name | Type | Required | Description | +|------|------|----------|--------------| +| `typedId` | string | Yes | `typedId` of the Rebate Record Group you want to calculate | +| `payload` | oas:RebaterecordgroupCalculatetypedIdBody | Yes | | +| `headers` | map<string|string[]> | No | Headers to be sent with the request | + +**Returns:** `oas:CalculateRebateRecordGroupEnvelope|error` + +**Sample code:** + +```ballerina +oas:CalculateRebateRecordGroupEnvelope result = check pricefxClient->calculateRebateRecordGroup(typedId, payload); +``` + +
+
+ +
+getRebateRecordGroup + +
+ +Get a Rebate Record Group + +**Parameters:** + +| Name | Type | Required | Description | +|------|------|----------|--------------| +| `payload` | record {} | Yes | | +| `headers` | map<string|string[]> | No | Headers to be sent with the request | + +**Returns:** `error?` + +**Sample code:** + +```ballerina +error? result = check pricefxClient->getRebateRecordGroup(payload); +``` + +
+
+ +
+massSubmitRebateRecordGroupItems + +
+ +Mass Submit Rebate Record Groups + +**Parameters:** + +| Name | Type | Required | Description | +|------|------|----------|--------------| +| `typedId` | string | Yes | | +| `payload` | oas:RebaterecordgroupMasssubmittypedIdBody | Yes | | +| `headers` | map<string|string[]> | No | Headers to be sent with the request | + +**Returns:** `oas:MassSubmitRRGResponse|error` + +**Sample code:** + +```ballerina +oas:MassSubmitRRGResponse result = check pricefxClient->massSubmitRebateRecordGroupItems(typedId, payload); +``` + +
+
+ +
+massSubmitRebateRecordGroups + +
+ +Mass Submit Rebate Record Groups + +**Parameters:** + +| Name | Type | Required | Description | +|------|------|----------|--------------| +| `payload` | oas:RebaterecordgroupMasssubmittypedIdBody | Yes | | +| `headers` | map<string|string[]> | No | Headers to be sent with the request | + +**Returns:** `oas:MassSubmitRebateRecordGroupsEnvelope|error` + +**Sample code:** + +```ballerina +oas:MassSubmitRebateRecordGroupsEnvelope result = check pricefxClient->massSubmitRebateRecordGroups(payload); +``` + +
+
+ +
+previewRebateRecordGroupWorkflow + +
+ +Preview a Rebate Record Group Workflow + +**Parameters:** + +| Name | Type | Required | Description | +|------|------|----------|--------------| +| `typedId` | string | Yes | | +| `payload` | oas:RebaterecordgroupPreviewtypedIdBody | Yes | | +| `headers` | map<string|string[]> | No | Headers to be sent with the request | + +**Returns:** `oas:RebateRecordGroupWorkflowEnvelope|error` + +**Sample code:** + +```ballerina +oas:RebateRecordGroupWorkflowEnvelope result = check pricefxClient->previewRebateRecordGroupWorkflow(typedId, payload); +``` + +
+
+ +
+revokeRebateRecordGroup + +
+ +Revoke a Rebate Record Group + +**Parameters:** + +| Name | Type | Required | Description | +|------|------|----------|--------------| +| `typedId` | string | Yes | `typedId` of the Rebate Record Group you want to revoke | +| `headers` | map<string|string[]> | No | Headers to be sent with the request | + +**Returns:** `oas:RevokeRebateRecordGroupEnvelope|error` + +**Sample code:** + +```ballerina +oas:RevokeRebateRecordGroupEnvelope result = check pricefxClient->revokeRebateRecordGroup(typedId); +``` + +
+
+ +
+shouldSubmitRrgAsynchronously + +
+ +Should Submit a RRG Asynchronously + +**Parameters:** + +| Name | Type | Required | Description | +|------|------|----------|--------------| +| `typedId` | string | Yes | `typedId` of the Rebate Record Group you want to return the async threshold boolean for | +| `payload` | record {} | Yes | | +| `headers` | map<string|string[]> | No | Headers to be sent with the request | + +**Returns:** `oas:CheckFileExistsEnvelope|error` + +**Sample code:** + +```ballerina +oas:CheckFileExistsEnvelope result = check pricefxClient->shouldSubmitRrgAsynchronously(typedId, payload); +``` + +
+
+ +
+submitRebateRecordGroup + +
+ +Submit a Rebate Record Group + +**Parameters:** + +| Name | Type | Required | Description | +|------|------|----------|--------------| +| `typedId` | string | Yes | `typedId` of the Rebate Record Group you want to submit | +| `payload` | record {} | Yes | | +| `headers` | map<string|string[]> | No | Headers to be sent with the request | + +**Returns:** `oas:SubmitRebateRecordGroup|error` + +**Sample code:** + +```ballerina +oas:SubmitRebateRecordGroup result = check pricefxClient->submitRebateRecordGroup(typedId, payload); +``` + +
+
+ +
+undoRebateRecordGroupRevocation + +
+ +Undo Rebate Record Group Revocation + +**Parameters:** + +| Name | Type | Required | Description | +|------|------|----------|--------------| +| `typedId` | string | Yes | | +| `headers` | map<string|string[]> | No | Headers to be sent with the request | + +**Returns:** `error?` + +**Sample code:** + +```ballerina +error? result = check pricefxClient->undoRebateRecordGroupRevocation(typedId); +``` + +
+
+ +#### Sales Compensations + +
+addCalculation + +
+ +Add a Calculation + +**Parameters:** + +| Name | Type | Required | Description | +|------|------|----------|--------------| +| `payload` | oas:AddCalculationRequest | Yes | | +| `headers` | map<string|string[]> | No | Headers to be sent with the request | + +**Returns:** `oas:AddCalculationResponse|error` + +**Sample code:** + +```ballerina +oas:AddCalculationResponse result = check pricefxClient->addCalculation(payload); +``` + +
+
+ +
+addCompensationType + +
+ +Add a Compensation Type + +**Parameters:** + +| Name | Type | Required | Description | +|------|------|----------|--------------| +| `payload` | oas:AddCompensationTypeRequest | Yes | | +| `headers` | map<string|string[]> | No | Headers to be sent with the request | + +**Returns:** `oas:AddCompensationTypeEnvelope|error` + +**Sample code:** + +```ballerina +oas:AddCompensationTypeEnvelope result = check pricefxClient->addCompensationType(payload); +``` + +
+
+ +
+addConditionType + +
+ +Add a Condition Type + payload - + +**Parameters:** + +| Name | Type | Required | Description | +|------|------|----------|--------------| +| `payload` | oas:AddConditionTypeRequest | Yes | | +| `headers` | map<string|string[]> | No | Headers to be sent with the request | + +**Returns:** `oas:AddConditionTypeEnvelope|error` + +**Sample code:** + +```ballerina +oas:AddConditionTypeEnvelope result = check pricefxClient->addConditionType(payload); +``` + +
+
+ +
+deleteCalculation + +
+ +Delete a Calculation + +**Parameters:** + +| Name | Type | Required | Description | +|------|------|----------|--------------| +| `payload` | oas:DeleteCalculationRequest | Yes | | +| `headers` | map<string|string[]> | No | Headers to be sent with the request | + +**Returns:** `oas:DeleteCalculationResponse|error` + +**Sample code:** + +```ballerina +oas:DeleteCalculationResponse result = check pricefxClient->deleteCalculation(payload); +``` + +
+
+ +
+deleteCompensationPlan + +
+ +Delete a Compensation Plan + +**Parameters:** + +| Name | Type | Required | Description | +|------|------|----------|--------------| +| `payload` | oas:DeleteCompensationPlanRequest | Yes | | +| `headers` | map<string|string[]> | No | Headers to be sent with the request | + +**Returns:** `oas:DeleteCompensationPlanResponse|error` + +**Sample code:** + +```ballerina +oas:DeleteCompensationPlanResponse result = check pricefxClient->deleteCompensationPlan(payload); +``` + +
+
+ +
+deleteCompensationType + +
+ +Delete a Compensation Type + +**Parameters:** + +| Name | Type | Required | Description | +|------|------|----------|--------------| +| `payload` | oas:DeleteCOHTBody | Yes | | +| `headers` | map<string|string[]> | No | Headers to be sent with the request | + +**Returns:** `oas:DeleteCompensationTypeEnvelope|error` + +**Sample code:** + +```ballerina +oas:DeleteCompensationTypeEnvelope result = check pricefxClient->deleteCompensationType(payload); +``` + +
+
+ +
+deleteConditionType + +
+ +Delete a Condition Type + +**Parameters:** + +| Name | Type | Required | Description | +|------|------|----------|--------------| +| `payload` | oas:DeleteConditionTypeRequest | Yes | | +| `headers` | map<string|string[]> | No | Headers to be sent with the request | + +**Returns:** `oas:DeleteConditionTypeEnvelope|error` + +**Sample code:** + +```ballerina +oas:DeleteConditionTypeEnvelope result = check pricefxClient->deleteConditionType(payload); +``` + +
+
+ +
+duplicateCompensationPlan + +
+ +Duplicate a Compensation Plan + +**Parameters:** + +| Name | Type | Required | Description | +|------|------|----------|--------------| +| `typedId` | string | Yes | The `typedId` of the Compensation Plan you want to duplicate | +| `headers` | map<string|string[]> | No | Headers to be sent with the request | + +**Returns:** `oas:DuplicateCompensationPlanEnvelope|error` + +**Sample code:** + +```ballerina +oas:DuplicateCompensationPlanEnvelope result = check pricefxClient->duplicateCompensationPlan(typedId); +``` + +
+
+ +
+getSignatureStatus + +
+ +Get a Signature Status + +**Parameters:** + +| Name | Type | Required | Description | +|------|------|----------|--------------| +| `typedId` | string | Yes | `typedId` of the Compensation document you want to retrieve the signature status for | +| `payload` | record {} | Yes | | +| `headers` | map<string|string[]> | No | Headers to be sent with the request | + +**Returns:** `oas:GetSignatureStatusResponse|error` + +**Sample code:** + +```ballerina +oas:GetSignatureStatusResponse result = check pricefxClient->getSignatureStatus(typedId, payload); +``` + +
+
+ +
+getSignedDocument + +
+ +Get a Signed Document + +**Parameters:** + +| Name | Type | Required | Description | +|------|------|----------|--------------| +| `uniqueName` | string | Yes | A `uniqueName` of the Compensation Plan you want to download a signed file for | +| `headers` | map<string|string[]> | No | Headers to be sent with the request | + +**Returns:** `http:Response|error` + +**Sample code:** + +```ballerina +http:Response result = check pricefxClient->getSignedDocument(uniqueName); +``` + +
+
+ +
+listAccrualRecords + +
+ +List Accrual Records + +**Parameters:** + +| Name | Type | Required | Description | +|------|------|----------|--------------| +| `payload` | oas:ListAccrualRecordsRequest | Yes | | +| `headers` | map<string|string[]> | No | Headers to be sent with the request | + +**Returns:** `oas:ListAccrualRecordsResponse|error` + +**Sample code:** + +```ballerina +oas:ListAccrualRecordsResponse result = check pricefxClient->listAccrualRecords(payload); +``` + +
+
+ +
+listCalculations + +
+ +List Calculations + +**Parameters:** + +| Name | Type | Required | Description | +|------|------|----------|--------------| +| `payload` | oas:ListCalculationsRequest | Yes | | +| `headers` | map<string|string[]> | No | Headers to be sent with the request | + +**Returns:** `oas:ListCalculationsResponse|error` + +**Sample code:** + +```ballerina +oas:ListCalculationsResponse result = check pricefxClient->listCalculations(payload); +``` + +
+
+ +
+listCompensationPlans + +
+ +List Compensation Plans + +**Parameters:** + +| Name | Type | Required | Description | +|------|------|----------|--------------| +| `payload` | oas:ListCompensationPlansRequest | Yes | | +| `headers` | map<string|string[]> | No | Headers to be sent with the request | + +**Returns:** `oas:ListCompensationPlansResponse|error` + +**Sample code:** + +```ballerina +oas:ListCompensationPlansResponse result = check pricefxClient->listCompensationPlans(payload); +``` + +
+
+ +
+listCompensationRecords + +
+ +List Compensation Records + +**Parameters:** + +| Name | Type | Required | Description | +|------|------|----------|--------------| +| `compensationRecordSetId` | string | Yes | ID of the CompensationRecordSet into which this Compensation Record belongs. By default it belongs to "Default" CompensationRecordSet, but you can change it when you create the Compensation Record. This can be useful if you create different "kinds" of Compensation Records which will be used to calculate different results at different times | +| `payload` | oas:ListCompensationRecordsRequest | Yes | | +| `headers` | map<string|string[]> | No | Headers to be sent with the request | + +**Returns:** `oas:ListCompensationRecordsResponse|error` + +**Sample code:** + +```ballerina +oas:ListCompensationRecordsResponse result = check pricefxClient->listCompensationRecords(compensationRecordSetId, payload); +``` + +
+
+ +
+listCompensationTypes + +
+ +List Compensation Types + +**Parameters:** + +| Name | Type | Required | Description | +|------|------|----------|--------------| +| `payload` | oas:ListCompensationTypesRequest | Yes | | +| `headers` | map<string|string[]> | No | Headers to be sent with the request | + +**Returns:** `oas:ListCompensationTypesEnvelope|error` + +**Sample code:** + +```ballerina +oas:ListCompensationTypesEnvelope result = check pricefxClient->listCompensationTypes(payload); +``` + +
+
+ +
+listConditionTypes + +
+ +List Condition Types + +**Parameters:** + +| Name | Type | Required | Description | +|------|------|----------|--------------| +| `payload` | oas:ListConditionTypesRequest | Yes | | +| `headers` | map<string|string[]> | No | Headers to be sent with the request | + +**Returns:** `oas:ListConditionTypesEnvelope|error` + +**Sample code:** + +```ballerina +oas:ListConditionTypesEnvelope result = check pricefxClient->listConditionTypes(payload); +``` + +
+
+ +
+recalculateQuoteContractRebate + +
+ +Recalculate a Quote/Contract/Rebate Agreement/Compensation Plan + +**Parameters:** + +| Name | Type | Required | Description | +|------|------|----------|--------------| +| `typedId` | string | Yes | The `typedId` of the document you want to calculate | +| `headers` | map<string|string[]> | No | Headers to be sent with the request | +| `queries` | *oas:RecalculateQuoteContractRebateQueries | Yes | Queries to be sent with the request | + +**Returns:** `oas:RecalculateClicEnvelope|error` + +**Sample code:** + +```ballerina +oas:RecalculateClicEnvelope result = check pricefxClient->recalculateQuoteContractRebate(typedId, queries); +``` + +
+
+ +
+revokeCompensationRecord + +
+ +Revoke a Compensation Record + +**Parameters:** + +| Name | Type | Required | Description | +|------|------|----------|--------------| +| `typedId` | string | Yes | `typedId` of the Compensation Record you want to revoke | +| `headers` | map<string|string[]> | No | Headers to be sent with the request | + +**Returns:** `oas:generalResponse|error` + +**Sample code:** + +```ballerina +oas:generalResponse result = check pricefxClient->revokeCompensationRecord(typedId); +``` + +
+
+ +
+runCalculation + +
+ +Run a Calculation + +**Parameters:** + +| Name | Type | Required | Description | +|------|------|----------|--------------| +| `payload` | oas:RunCalculationRequest | Yes | | +| `headers` | map<string|string[]> | No | Headers to be sent with the request | + +**Returns:** `oas:RunCalculationResponse|error` + +**Sample code:** + +```ballerina +oas:RunCalculationResponse result = check pricefxClient->runCalculation(payload); +``` + +
+
+ +
+saveCalculation + +
+ +Save Calculation + +**Parameters:** + +| Name | Type | Required | Description | +|------|------|----------|--------------| +| `payload` | oas:SaveCalculationRequest | Yes | | +| `headers` | map<string|string[]> | No | Headers to be sent with the request | + +**Returns:** `oas:SaveCalculationResponse|error` + +**Sample code:** + +```ballerina +oas:SaveCalculationResponse result = check pricefxClient->saveCalculation(payload); +``` + +
+
+ +
+saveCompensationRecord + +
+ +Save a Compensation Record + +**Parameters:** + +| Name | Type | Required | Description | +|------|------|----------|--------------| +| `payload` | oas:SaveCompensationRecordRequest | Yes | | +| `headers` | map<string|string[]> | No | Headers to be sent with the request | + +**Returns:** `oas:SaveCompensationRecordResponse|error` + +**Sample code:** + +```ballerina +oas:SaveCompensationRecordResponse result = check pricefxClient->saveCompensationRecord(payload); +``` + +
+
+ +
+sendDocumentToSign + +
+ +Send a Document to Sign + +**Parameters:** + +| Name | Type | Required | Description | +|------|------|----------|--------------| +| `typedId` | string | Yes | `typedId` of the Compensation whose data you want to send via the e-signature system | +| `payload` | oas:CreateSignatureRequest | Yes | | +| `headers` | map<string|string[]> | No | Headers to be sent with the request | + +**Returns:** `oas:CreateSignatureResponse|error` + +**Sample code:** + +```ballerina +oas:CreateSignatureResponse result = check pricefxClient->sendDocumentToSign(typedId, payload); +``` + +
+
+ +
+undoCompensationPlanRevocation + +
+ +Undo Compensation Plan Revocation + +**Parameters:** + +| Name | Type | Required | Description | +|------|------|----------|--------------| +| `typedId` | string | Yes | | +| `headers` | map<string|string[]> | No | Headers to be sent with the request | + +**Returns:** `error?` + +**Sample code:** + +```ballerina +error? result = check pricefxClient->undoCompensationPlanRevocation(typedId); +``` + +
+
+ +
+undoCompensationRecordRevocation + +
+ +Undo Compensation Record Revocation + +**Parameters:** + +| Name | Type | Required | Description | +|------|------|----------|--------------| +| `typedId` | string | Yes | | +| `headers` | map<string|string[]> | No | Headers to be sent with the request | + +**Returns:** `error?` + +**Sample code:** + +```ballerina +error? result = check pricefxClient->undoCompensationRecordRevocation(typedId); +``` + +
+
+ +
+updateCompensationRecord + +
+ +Update a Compensation Record + +**Parameters:** + +| Name | Type | Required | Description | +|------|------|----------|--------------| +| `payload` | oas:UpdateCompensationRecordRequest | Yes | | +| `headers` | map<string|string[]> | No | Headers to be sent with the request | + +**Returns:** `oas:UpdateCompensationRecordResponse|error` + +**Sample code:** + +```ballerina +oas:UpdateCompensationRecordResponse result = check pricefxClient->updateCompensationRecord(payload); +``` + +
+
+ +
+updateCompensationType + +
+ +Update a Compensation Type + +**Parameters:** + +| Name | Type | Required | Description | +|------|------|----------|--------------| +| `payload` | oas:UpdateCompensationTypeRequest | Yes | | +| `headers` | map<string|string[]> | No | Headers to be sent with the request | + +**Returns:** `oas:UpdateCompensationTypeEnvelope|error` + +**Sample code:** + +```ballerina +oas:UpdateCompensationTypeEnvelope result = check pricefxClient->updateCompensationType(payload); +``` + +
+
+ +
+updateConditionType + +
+ +Update a Condition Type + +**Parameters:** + +| Name | Type | Required | Description | +|------|------|----------|--------------| +| `payload` | oas:UpdateConditionTypeRequest | Yes | | +| `headers` | map<string|string[]> | No | Headers to be sent with the request | + +**Returns:** `oas:UpdateConditionTypeEnvelope|error` + +**Sample code:** + +```ballerina +oas:UpdateConditionTypeEnvelope result = check pricefxClient->updateConditionType(payload); +``` + +
+
+ +
+updateQuoteContractRebateAgreement + +
+ +Update a Quote/Contract/Rebate Agreement/Compensation Plan + +**Parameters:** + +| Name | Type | Required | Description | +|------|------|----------|--------------| +| `typedId` | string | Yes | The `typedId` of the Compensation Plan you want to update | +| `payload` | oas:ClicmanagerUpdatetypedIdBody | Yes | | +| `headers` | map<string|string[]> | No | Headers to be sent with the request | + +**Returns:** `oas:UpdateClicEnvelope|error` + +**Sample code:** + +```ballerina +oas:UpdateClicEnvelope result = check pricefxClient->updateQuoteContractRebateAgreement(typedId, payload); +``` + +
+
+ +
+upsertCompensationPlan + +
+ +Upsert a Compensation Plan + +**Parameters:** + +| Name | Type | Required | Description | +|------|------|----------|--------------| +| `payload` | oas:UpsertCompensationPlanRequest | Yes | | +| `headers` | map<string|string[]> | No | Headers to be sent with the request | + +**Returns:** `oas:UpsertCompensationPlanResponse|error` + +**Sample code:** + +```ballerina +oas:UpsertCompensationPlanResponse result = check pricefxClient->upsertCompensationPlan(payload); +``` + +
+
+ +#### Claims + +
+addClaim + +
+ +Add a Claim + +**Parameters:** + +| Name | Type | Required | Description | +|------|------|----------|--------------| +| `payload` | oas:AddClaimRequest | Yes | | +| `headers` | map<string|string[]> | No | Headers to be sent with the request | + +**Returns:** `oas:AddClaimResponse|error` + +**Sample code:** + +```ballerina +oas:AddClaimResponse result = check pricefxClient->addClaim(payload); +``` + +
+
+ +
+calculateClaim + +
+ +Calculate a Claim + +**Parameters:** + +| Name | Type | Required | Description | +|------|------|----------|--------------| +| `typedId` | string | Yes | The `typedId` of the claim whose items you want to calculate | +| `payload` | oas:CalculateClaimRequest | Yes | | +| `headers` | map<string|string[]> | No | Headers to be sent with the request | + +**Returns:** `oas:CalculateClaimResponse|error` + +**Sample code:** + +```ballerina +oas:CalculateClaimResponse result = check pricefxClient->calculateClaim(typedId, payload); +``` + +
+
+ +
+cancelClaimCalculation + +
+ +Cancel a Calculation + +**Parameters:** + +| Name | Type | Required | Description | +|------|------|----------|--------------| +| `typedId` | string | Yes | The `typedId` of the claim whose item calculation you want to cancel | +| `payload` | record {} | Yes | | +| `headers` | map<string|string[]> | No | Headers to be sent with the request | + +**Returns:** `oas:CancelClaimCalculationResponse|error` + +**Sample code:** + +```ballerina +oas:CancelClaimCalculationResponse result = check pricefxClient->cancelClaimCalculation(typedId, payload); +``` + +
+
+ +
+getSummary + +
+ +Get a Summary + +**Parameters:** + +| Name | Type | Required | Description | +|------|------|----------|--------------| +| `typedId` | string | Yes | | +| `payload` | record {} | Yes | | +| `headers` | map<string|string[]> | No | Headers to be sent with the request | + +**Returns:** `oas:GetClaimItemsSummaryResponse|error` + +**Sample code:** + +```ballerina +oas:GetClaimItemsSummaryResponse result = check pricefxClient->getSummary(typedId, payload); +``` + +
+
+ +
+listClaims + +
+ +List Claims + payload - + +**Parameters:** + +| Name | Type | Required | Description | +|------|------|----------|--------------| +| `payload` | oas:ListClaimsRequest | Yes | | +| `headers` | map<string|string[]> | No | Headers to be sent with the request | + +**Returns:** `oas:ListClaimsResponse|error` + +**Sample code:** + +```ballerina +oas:ListClaimsResponse result = check pricefxClient->listClaims(payload); +``` + +
+
+ +
+listItems + +
+ +List Items + +**Parameters:** + +| Name | Type | Required | Description | +|------|------|----------|--------------| +| `typedId` | string | Yes | | +| `payload` | record {} | Yes | | +| `headers` | map<string|string[]> | No | Headers to be sent with the request | + +**Returns:** `oas:ListClaimItemsResponse|error` + +**Sample code:** + +```ballerina +oas:ListClaimItemsResponse result = check pricefxClient->listItems(typedId, payload); +``` + +
+
+ +
+rejectItems + +
+ +Reject Items + +**Parameters:** + +| Name | Type | Required | Description | +|------|------|----------|--------------| +| `typedId` | string | Yes | The `typedId` of the Claim whose items you want to reject | +| `payload` | oas:RejectClaimItemsRequest | Yes | | +| `headers` | map<string|string[]> | No | Headers to be sent with the request | + +**Returns:** `oas:RejectClaimItemsResponse|error` + +**Sample code:** + +```ballerina +oas:RejectClaimItemsResponse result = check pricefxClient->rejectItems(typedId, payload); +``` + +
+
+ +
+removeItems + +
+ +Remove Items + +**Parameters:** + +| Name | Type | Required | Description | +|------|------|----------|--------------| +| `typedId` | string | Yes | The `typedId` of the Claim whose items you want to remove | +| `payload` | record {} | Yes | | +| `headers` | map<string|string[]> | No | Headers to be sent with the request | + +**Returns:** `oas:RemoveClaimItemsResponse|error` + +**Sample code:** + +```ballerina +oas:RemoveClaimItemsResponse result = check pricefxClient->removeItems(typedId, payload); +``` + +
+
+ +
+submitClaim + +
+ +Submit a Claim + +**Parameters:** + +| Name | Type | Required | Description | +|------|------|----------|--------------| +| `typedId` | string | Yes | `typedId` of the Claim you want to submit | +| `payload` | record {} | Yes | | +| `headers` | map<string|string[]> | No | Headers to be sent with the request | + +**Returns:** `oas:SubmitClaimResponse|error` + +**Sample code:** + +```ballerina +oas:SubmitClaimResponse result = check pricefxClient->submitClaim(typedId, payload); +``` + +
+
+ +
+updateClaim + +
+ +Update a Claim + payload - + +**Parameters:** + +| Name | Type | Required | Description | +|------|------|----------|--------------| +| `payload` | oas:UpdateClaimRequest | Yes | | +| `headers` | map<string|string[]> | No | Headers to be sent with the request | + +**Returns:** `oas:UpdateClaimResponse|error` + +**Sample code:** + +```ballerina +oas:UpdateClaimResponse result = check pricefxClient->updateClaim(payload); +``` + +
+
+ +
+validateItems + +
+ +Validate Items + +**Parameters:** + +| Name | Type | Required | Description | +|------|------|----------|--------------| +| `typedId` | string | Yes | The `typedId` of the Claim whose items you want to validate | +| `payload` | oas:ValidateClaimItemsRequest | Yes | | +| `headers` | map<string|string[]> | No | Headers to be sent with the request | + +**Returns:** `oas:ValidateClaimItemsResponse|error` + +**Sample code:** + +```ballerina +oas:ValidateClaimItemsResponse result = check pricefxClient->validateItems(typedId, payload); +``` + +
+
+ +#### Claim Types + +
+addClaimType + +
+ +Add a Claim Type + +**Parameters:** + +| Name | Type | Required | Description | +|------|------|----------|--------------| +| `payload` | oas:AddClaimTypeRequest | Yes | | +| `headers` | map<string|string[]> | No | Headers to be sent with the request | + +**Returns:** `oas:AddClaimTypeResponse|error` + +**Sample code:** + +```ballerina +oas:AddClaimTypeResponse result = check pricefxClient->addClaimType(payload); +``` + +
+
+ +
+deleteClaimType + +
+ +Delete a Claim Type + +**Parameters:** + +| Name | Type | Required | Description | +|------|------|----------|--------------| +| `payload` | oas:DeleteClaimTypeRequest | Yes | | +| `headers` | map<string|string[]> | No | Headers to be sent with the request | + +**Returns:** `oas:DeleteClaimTypeResponse|error` + +**Sample code:** + +```ballerina +oas:DeleteClaimTypeResponse result = check pricefxClient->deleteClaimType(payload); +``` + +
+
+ +
+listClaimTypes + +
+ +List Claim Types + +**Parameters:** + +| Name | Type | Required | Description | +|------|------|----------|--------------| +| `payload` | oas:ListClaimTypesRequest | Yes | The example of the request body contains the filter. The call returns Claim Types whose `name` equals to "claimType" | +| `headers` | map<string|string[]> | No | Headers to be sent with the request | + +**Returns:** `oas:ListClaimTypesResponse|error` + +**Sample code:** + +```ballerina +oas:ListClaimTypesResponse result = check pricefxClient->listClaimTypes(payload); +``` + +
+
+ +
+updateClaimType + +
+ +Update a Claim Type + +**Parameters:** + +| Name | Type | Required | Description | +|------|------|----------|--------------| +| `payload` | oas:UpdateClaimTypeRequest | Yes | | +| `headers` | map<string|string[]> | No | Headers to be sent with the request | + +**Returns:** `oas:UpdateClaimTypeResponse|error` + +**Sample code:** + +```ballerina +oas:UpdateClaimTypeResponse result = check pricefxClient->updateClaimType(payload); +``` + +
+
+ +#### Attachments + +
+checkFileExists + +
+ +Check a File + +**Parameters:** + +| Name | Type | Required | Description | +|------|------|----------|--------------| +| `binaryDataId` | string | Yes | If the `typedId` is, for example, 1145.BD then the binaryDataId is **1145** | +| `headers` | map<string|string[]> | No | Headers to be sent with the request | + +**Returns:** `oas:CheckFileExistsEnvelope|error` + +**Sample code:** + +```ballerina +oas:CheckFileExistsEnvelope result = check pricefxClient->checkFileExists(binaryDataId); +``` + +
+
+ +
+createUploadSlot + +
+ +1. Create an Upload Slot + +**Parameters:** + +| Name | Type | Required | Description | +|------|------|----------|--------------| +| `headers` | map<string|string[]> | No | Headers to be sent with the request | +| `queries` | *oas:CreateUploadSlotQueries | Yes | Queries to be sent with the request | + +**Returns:** `oas:CreateUploadSlotEnvelope|error` + +**Sample code:** + +```ballerina +oas:CreateUploadSlotEnvelope result = check pricefxClient->createUploadSlot(queries); +``` + +
+
+ +
+deleteFile + +
+ +Delete a File + +**Parameters:** + +| Name | Type | Required | Description | +|------|------|----------|--------------| +| `typedId` | string | Yes | `typedId` of the document whose attachment you want to delete | +| `binaryDataId` | string | Yes | If the `typedId` is, for example, 1145.BD then the binaryDataId is **1145** | +| `payload` | record {} | Yes | | +| `headers` | map<string|string[]> | No | Headers to be sent with the request | + +**Returns:** `oas:generalResponse|error` + +**Sample code:** + +```ballerina +oas:generalResponse result = check pricefxClient->deleteFile(typedId, binaryDataId, payload); +``` + +
+
+ +
+deleteUploadSlot + +
+ +3. Delete an Upload Slot + +**Parameters:** + +| Name | Type | Required | Description | +|------|------|----------|--------------| +| `slotId` | string | Yes | Enter the ID of the slot you want to delete | +| `headers` | map<string|string[]> | No | Headers to be sent with the request | + +**Returns:** `oas:UploadSlotOperationEnvelope|error` + +**Sample code:** + +```ballerina +oas:UploadSlotOperationEnvelope result = check pricefxClient->deleteUploadSlot(slotId); +``` + +
+
+ +
+downloadAttachmentData + +
+ +Download an Attachment + +**Parameters:** + +| Name | Type | Required | Description | +|------|------|----------|--------------| +| `binaryDataId` | string | Yes | If the typedId is, for example, 1146.BD then the binaryDataId is **1146** | +| `headers` | map<string|string[]> | No | Headers to be sent with the request | +| `queries` | *oas:DownloadAttachmentDataQueries | Yes | Queries to be sent with the request | + +**Returns:** `byte[]|error` + +**Sample code:** + +```ballerina +byte[] result = check pricefxClient->downloadAttachmentData(binaryDataId, queries); +``` + +
+
+ +
+downloadFile + +
+ +Download a File + +**Parameters:** + +| Name | Type | Required | Description | +|------|------|----------|--------------| +| `typedId` | string | Yes | `typedId` of the document you want to download the attachment from | +| `binaryDataId` | string | Yes | If the `typedId` is, for example, 1145.BD then the binaryDataId is **1145** | +| `headers` | map<string|string[]> | No | Headers to be sent with the request | +| `queries` | *oas:DownloadFileQueries | Yes | Queries to be sent with the request | + +**Returns:** `oas:FileDownloadEnvelope|error` + +**Sample code:** + +```ballerina +oas:FileDownloadEnvelope result = check pricefxClient->downloadFile(typedId, binaryDataId, queries); +``` + +
+
+ +
+downloadFileViaPost + +
+ +Download a File + +**Parameters:** + +| Name | Type | Required | Description | +|------|------|----------|--------------| +| `typedId` | string | Yes | `typedId` of the document you want to download the attachment from | +| `binaryDataId` | string | Yes | If the `typedId` is, for example, 1145.BD then the binaryDataId is **1145** | +| `headers` | map<string|string[]> | No | Headers to be sent with the request | +| `queries` | *oas:DownloadFileViaPostQueries | Yes | Queries to be sent with the request | + +**Returns:** `http:Response|error` + +**Sample code:** + +```ballerina +http:Response result = check pricefxClient->downloadFileViaPost(typedId, binaryDataId, queries); +``` + +
+
+ +
+editAttachment + +
+ +2. Upload a File + +**Parameters:** + +| Name | Type | Required | Description | +|------|------|----------|--------------| +| `ownerTypedId` | string | Yes | The `TypedId` of the document owning the attachment | +| `binaryDataId` | string | Yes | The `binaryDataId` of the attachment to replace | +| `slotId` | string | Yes | The upload `slot_id` containing the new file | +| `payload` | oas:BinaryDataIdslotIdBody | Yes | | +| `headers` | map<string|string[]> | No | Headers to be sent with the request | + +**Returns:** `oas:FileDownloadEnvelope|error` + +**Sample code:** + +```ballerina +oas:FileDownloadEnvelope result = check pricefxClient->editAttachment(ownerTypedId, binaryDataId, slotId, payload); +``` + +
+
+ +
+getUploadProgress + +
+ +Get Upload Progress + +**Parameters:** + +| Name | Type | Required | Description | +|------|------|----------|--------------| +| `uploadslot` | string | Yes | Upload Slot Id | +| `headers` | map<string|string[]> | No | Headers to be sent with the request | + +**Returns:** `oas:UploadSlotOperationEnvelope|error` + +**Sample code:** + +```ballerina +oas:UploadSlotOperationEnvelope result = check pricefxClient->getUploadProgress(uploadslot); +``` + +
+
+ +
+listFiles + +
+ +List Files + +**Parameters:** + +| Name | Type | Required | Description | +|------|------|----------|--------------| +| `typedId` | string | Yes | `typedId` of the document you want to list attachments for | +| `payload` | oas:BdmanagerListtypedIdBody | Yes | | +| `headers` | map<string|string[]> | No | Headers to be sent with the request | + +**Returns:** `oas:ListFilesEnvelope|error` + +**Sample code:** + +```ballerina +oas:ListFilesEnvelope result = check pricefxClient->listFiles(typedId, payload); +``` + +
+
+ +
+updateFile + +
+ +Update a File + +**Parameters:** + +| Name | Type | Required | Description | +|------|------|----------|--------------| +| `typedId` | string | Yes | `typedId` of the document whose attachment's metadata you want to update | +| `payload` | oas:BdmanagerUpdatetypedIdBody | Yes | | +| `headers` | map<string|string[]> | No | Headers to be sent with the request | + +**Returns:** `oas:UpdateFileEnvelope|error` + +**Sample code:** + +```ballerina +oas:UpdateFileEnvelope result = check pricefxClient->updateFile(typedId, payload); +``` + +
+
+ +
+uploadFile + +
+ +2. Upload a File + +**Parameters:** + +| Name | Type | Required | Description | +|------|------|----------|--------------| +| `typedId` | string | Yes | `typedId` of the document you want to attach the file to | +| `slotId` | string | Yes | The ID of the slot you want to use for the upload. retrieve the slot ID using the `/uploadmanager.newuploadslot` (Create an Upload Slot) endpoint | +| `payload` | oas:TypedIdslotIdBody | Yes | | +| `headers` | map<string|string[]> | No | Headers to be sent with the request | + +**Returns:** `oas:FileOperationEnvelope|error` + +**Sample code:** + +```ballerina +oas:FileOperationEnvelope result = check pricefxClient->uploadFile(typedId, slotId, payload); +``` + +
+
+ +#### Comments + +
+addComment + +
+ +Add a Comment + +**Parameters:** + +| Name | Type | Required | Description | +|------|------|----------|--------------| +| `payload` | oas:CommentmanagerAddBody | Yes | | +| `headers` | map<string|string[]> | No | Headers to be sent with the request | + +**Returns:** `oas:CommentOperationEnvelope|error` + +**Sample code:** + +```ballerina +oas:CommentOperationEnvelope result = check pricefxClient->addComment(payload); +``` + +
+
+ +
+deleteComment + +
+ +Delete a Comment + +**Parameters:** + +| Name | Type | Required | Description | +|------|------|----------|--------------| +| `typedId` | string | Yes | Comment or CommentThread typedId | +| `headers` | map<string|string[]> | No | Headers to be sent with the request | + +**Returns:** `oas:DeleteCommentEnvelope|error` + +**Sample code:** + +```ballerina +oas:DeleteCommentEnvelope result = check pricefxClient->deleteComment(typedId); +``` + +
+
+ +
+editComment + +
+ +Edit a Comment + +**Parameters:** + +| Name | Type | Required | Description | +|------|------|----------|--------------| +| `typedId` | string | Yes | typedId of the comment you want to edit | +| `payload` | oas:CommentmanagerEdittypedIdBody | Yes | | +| `headers` | map<string|string[]> | No | Headers to be sent with the request | + +**Returns:** `oas:CommentOperationEnvelope|error` + +**Sample code:** + +```ballerina +oas:CommentOperationEnvelope result = check pricefxClient->editComment(typedId, payload); +``` + +
+
+ +
+listCommentThreads + +
+ +List Comment Threads + +**Parameters:** + +| Name | Type | Required | Description | +|------|------|----------|--------------| +| `typedId` | string | Yes | typedId of the object you want to fetch comments for | +| `payload` | oas:CommentmanagerFetchthreadstypedIdBody | Yes | | +| `headers` | map<string|string[]> | No | Headers to be sent with the request | +| `queries` | *oas:ListCommentThreadsQueries | Yes | Queries to be sent with the request | + +**Returns:** `oas:ListCommentThreadsEnvelope|error` + +**Sample code:** + +```ballerina +oas:ListCommentThreadsEnvelope result = check pricefxClient->listCommentThreads(typedId, payload, queries); +``` + +
+
+ +
+replyToComment + +
+ +Reply To a Comment + +**Parameters:** + +| Name | Type | Required | Description | +|------|------|----------|--------------| +| `payload` | oas:CommentmanagerReplyBody | Yes | | +| `headers` | map<string|string[]> | No | Headers to be sent with the request | + +**Returns:** `oas:CommentOperationEnvelope|error` + +**Sample code:** + +```ballerina +oas:CommentOperationEnvelope result = check pricefxClient->replyToComment(payload); +``` + +
+
+ +
+resolveComment + +
+ +Resolve a Comment + +**Parameters:** + +| Name | Type | Required | Description | +|------|------|----------|--------------| +| `typedId` | string | Yes | The typedId of the comment thread | +| `payload` | record {} | Yes | | +| `headers` | map<string|string[]> | No | Headers to be sent with the request | + +**Returns:** `oas:ResolveCommentEnvelope|error` + +**Sample code:** + +```ballerina +oas:ResolveCommentEnvelope result = check pricefxClient->resolveComment(typedId, payload); +``` + +
+
+ +
+unresolveComment + +
+ +Unresolve a Comment + +**Parameters:** + +| Name | Type | Required | Description | +|------|------|----------|--------------| +| `typedId` | string | Yes | The typedId of the comment thread | +| `payload` | record {} | Yes | | +| `headers` | map<string|string[]> | No | Headers to be sent with the request | + +**Returns:** `oas:ResolveCommentEnvelope|error` + +**Sample code:** + +```ballerina +oas:ResolveCommentEnvelope result = check pricefxClient->unresolveComment(typedId, payload); +``` + +
+
+ +#### Custom Forms + +
+changeCustomFormStatus + +
+ +Change a Custom Form Status + +**Parameters:** + +| Name | Type | Required | Description | +|------|------|----------|--------------| +| `typedId` | string | Yes | The `typedId` of the Custom Form whose status you want to change | +| `payload` | oas:ChangeCustomFormStatusRequest | Yes | | +| `headers` | map<string|string[]> | No | Headers to be sent with the request | + +**Returns:** `oas:ChangeCustomFormStatusResponse|error` + +**Sample code:** + +```ballerina +oas:ChangeCustomFormStatusResponse result = check pricefxClient->changeCustomFormStatus(typedId, payload); +``` + +
+
+ +
+createCustomForm + +
+ +Create a Custom Form + payload - + +**Parameters:** + +| Name | Type | Required | Description | +|------|------|----------|--------------| +| `payload` | oas:CreateCustomFormRequest | Yes | | +| `headers` | map<string|string[]> | No | Headers to be sent with the request | + +**Returns:** `oas:CreateCustomFormEnvelope|error` + +**Sample code:** + +```ballerina +oas:CreateCustomFormEnvelope result = check pricefxClient->createCustomForm(payload); +``` + +
+
+ +
+createCustomFormRevision + +
+ +Create a Custom Form Revision + +**Parameters:** + +| Name | Type | Required | Description | +|------|------|----------|--------------| +| `typedId` | string | Yes | `typedId` of the Custom Form you want to create a revision from | +| `payload` | record {} | Yes | | +| `headers` | map<string|string[]> | No | Headers to be sent with the request | + +**Returns:** `oas:CustomFormRevisionEnvelope|error` + +**Sample code:** + +```ballerina +oas:CustomFormRevisionEnvelope result = check pricefxClient->createCustomFormRevision(typedId, payload); +``` + +
+
+ +
+createCustomFormType + +
+ +Create a Custom Form Type + +**Parameters:** + +| Name | Type | Required | Description | +|------|------|----------|--------------| +| `payload` | oas:CreateCustomFormTypeRequest | Yes | | +| `headers` | map<string|string[]> | No | Headers to be sent with the request | + +**Returns:** `oas:CreateCustomFormTypeResponse|error` + +**Sample code:** + +```ballerina +oas:CreateCustomFormTypeResponse result = check pricefxClient->createCustomFormType(payload); +``` + +
+
+ +
+deleteCustomForm + +
+ +Delete a Custom Form + +**Parameters:** + +| Name | Type | Required | Description | +|------|------|----------|--------------| +| `payload` | oas:DeleteCustomFormRequest | Yes | | +| `headers` | map<string|string[]> | No | Headers to be sent with the request | + +**Returns:** `oas:generalResponse|error` + +**Sample code:** + +```ballerina +oas:generalResponse result = check pricefxClient->deleteCustomForm(payload); +``` + +
+
+ +
+deleteCustomFormType + +
+ +Delete a Custom Form Type + +**Parameters:** + +| Name | Type | Required | Description | +|------|------|----------|--------------| +| `payload` | oas:DeleteCFOTBody | Yes | | +| `headers` | map<string|string[]> | No | Headers to be sent with the request | + +**Returns:** `oas:DeleteCustomFormTypeEnvelope|error` + +**Sample code:** + +```ballerina +oas:DeleteCustomFormTypeEnvelope result = check pricefxClient->deleteCustomFormType(payload); +``` + +
+
+ +
+duplicateCustomForm + +
+ +Duplicate a Custom Form + +**Parameters:** + +| Name | Type | Required | Description | +|------|------|----------|--------------| +| `typedId` | string | Yes | `typedId` of the Custom Form you want to duplicate | +| `payload` | record {} | Yes | | +| `headers` | map<string|string[]> | No | Headers to be sent with the request | + +**Returns:** `oas:CustomFormRevisionEnvelope|error` + +**Sample code:** + +```ballerina +oas:CustomFormRevisionEnvelope result = check pricefxClient->duplicateCustomForm(typedId, payload); +``` + +
+
+ +
+getCustomForm + +
+ +Get a Custom Form + +**Parameters:** + +| Name | Type | Required | Description | +|------|------|----------|--------------| +| `typedId` | string | Yes | The `typedId` of the Custom Form you want to retrieve details for | +| `headers` | map<string|string[]> | No | Headers to be sent with the request | + +**Returns:** `oas:GetCustomFormResponse|error` + +**Sample code:** + +```ballerina +oas:GetCustomFormResponse result = check pricefxClient->getCustomForm(typedId); +``` + +
+
+ +
+listCustomFormTypes + +
+ +List Custom Form Types + +**Parameters:** + +| Name | Type | Required | Description | +|------|------|----------|--------------| +| `payload` | oas:ListCustomFormTypesRequest | Yes | | +| `headers` | map<string|string[]> | No | Headers to be sent with the request | + +**Returns:** `oas:ListCustomFormTypesResponse|error` + +**Sample code:** + +```ballerina +oas:ListCustomFormTypesResponse result = check pricefxClient->listCustomFormTypes(payload); +``` + +
+
+ +
+listCustomForms + +
+ +List Custom Forms + +**Parameters:** + +| Name | Type | Required | Description | +|------|------|----------|--------------| +| `payload` | oas:ListCustomFormsRequest | Yes | | +| `headers` | map<string|string[]> | No | Headers to be sent with the request | + +**Returns:** `oas:ListCustomFormsEnvelope|error` + +**Sample code:** + +```ballerina +oas:ListCustomFormsEnvelope result = check pricefxClient->listCustomForms(payload); +``` + +
+
+ +
+previewCustomFormWorkflow + +
+ +Preview a Custom Form Workflow + +**Parameters:** + +| Name | Type | Required | Description | +|------|------|----------|--------------| +| `payload` | record {} | Yes | | +| `headers` | map<string|string[]> | No | Headers to be sent with the request | + +**Returns:** `oas:PreviewCustomFormWorkflowResponse|error` + +**Sample code:** + +```ballerina +oas:PreviewCustomFormWorkflowResponse result = check pricefxClient->previewCustomFormWorkflow(payload); +``` + +
+
+ +
+updateCustomForm + +
+ +Update a Custom Form + +**Parameters:** + +| Name | Type | Required | Description | +|------|------|----------|--------------| +| `payload` | oas:UpdateCustomFormRequest | Yes | | +| `headers` | map<string|string[]> | No | Headers to be sent with the request | + +**Returns:** `oas:UpdateCustomFormEnvelope|error` + +**Sample code:** + +```ballerina +oas:UpdateCustomFormEnvelope result = check pricefxClient->updateCustomForm(payload); +``` + +
+
+ +
+updateCustomFormType + +
+ +Update a Custom Form Type + +**Parameters:** + +| Name | Type | Required | Description | +|------|------|----------|--------------| +| `payload` | oas:UpdateCustomFormTypeRequest | Yes | | +| `headers` | map<string|string[]> | No | Headers to be sent with the request | + +**Returns:** `oas:UpdateCustomFormTypeResponse|error` + +**Sample code:** + +```ballerina +oas:UpdateCustomFormTypeResponse result = check pricefxClient->updateCustomFormType(payload); +``` + +
+
+ +#### Data Change Requests + +
+addDataChangeRequest + +
+ +Add a Data Change Request + +**Parameters:** + +| Name | Type | Required | Description | +|------|------|----------|--------------| +| `payload` | oas:AddDCRRequest | Yes | | +| `headers` | map<string|string[]> | No | Headers to be sent with the request | + +**Returns:** `oas:AddDCRResponse|error` + +**Sample code:** + +```ballerina +oas:AddDCRResponse result = check pricefxClient->addDataChangeRequest(payload); +``` + +
+
+ +
+addDataChangeRequestItem + +
+ +Add a Data Change Request Item + +**Parameters:** + +| Name | Type | Required | Description | +|------|------|----------|--------------| +| `id` | string | Yes | `id` of the Data Change Request you want to add the Data Change Request Item to | +| `payload` | oas:AddDCRIRequest | Yes | | +| `headers` | map<string|string[]> | No | Headers to be sent with the request | + +**Returns:** `oas:AddDCRIResponse|error` + +**Sample code:** + +```ballerina +oas:AddDCRIResponse result = check pricefxClient->addDataChangeRequestItem(id, payload); +``` + +
+
+ +
+deleteDataChangeRequestItem + +
+ +Delete a Data Change Request Item + +**Parameters:** + +| Name | Type | Required | Description | +|------|------|----------|--------------| +| `id` | string | Yes | `id` of the Data Change Request whose item you want to delete | +| `payload` | oas:DeleteDCRIRequest | Yes | | +| `headers` | map<string|string[]> | No | Headers to be sent with the request | + +**Returns:** `oas:DeleteDCRIResponse|error` + +**Sample code:** + +```ballerina +oas:DeleteDCRIResponse result = check pricefxClient->deleteDataChangeRequestItem(id, payload); +``` + +
+
+ +
+deleteDataChangeRequestMassChange + +
+ +Delete a Data Change Request Mass Change + +**Parameters:** + +| Name | Type | Required | Description | +|------|------|----------|--------------| +| `id` | string | Yes | `id` of the Data Change Request | +| `payload` | oas:DcrmanagerDeletemassopidBody | Yes | | +| `headers` | map<string|string[]> | No | Headers to be sent with the request | + +**Returns:** `oas:DataChangeRequestMassChangeEnvelope|error` + +**Sample code:** + +```ballerina +oas:DataChangeRequestMassChangeEnvelope result = check pricefxClient->deleteDataChangeRequestMassChange(id, payload); +``` + +
+
+ +
+getDataChangeRequest + +
+ +Get a Data Change Request + +**Parameters:** + +| Name | Type | Required | Description | +|------|------|----------|--------------| +| `id` | string | Yes | `id` of the Data Change Request you want to retrieve | +| `payload` | oas:GetDCRRequest | Yes | | +| `headers` | map<string|string[]> | No | Headers to be sent with the request | + +**Returns:** `oas:GetDCRResponse|error` + +**Sample code:** + +```ballerina +oas:GetDCRResponse result = check pricefxClient->getDataChangeRequest(id, payload); +``` + +
+
+ +
+getDataChangeRequestChanges + +
+ +Get a Data Change Request (changes only) + +**Parameters:** + +| Name | Type | Required | Description | +|------|------|----------|--------------| +| `id` | string | Yes | `id` of the Data Change Request you want to retrieve changed items for | +| `payload` | oas:GetDCRRequestChangeOnly | Yes | | +| `headers` | map<string|string[]> | No | Headers to be sent with the request | + +**Returns:** `oas:GetDCRResponseChangeOnly|error` + +**Sample code:** + +```ballerina +oas:GetDCRResponseChangeOnly result = check pricefxClient->getDataChangeRequestChanges(id, payload); +``` + +
+
+ +
+getDataChangeRequestMassChanges + +
+ +Get Data Change Request Mass Changes + +**Parameters:** + +| Name | Type | Required | Description | +|------|------|----------|--------------| +| `id` | string | Yes | `id` of the Data Change Request | +| `payload` | oas:DcrmanagerFetchmassopidBody | Yes | | +| `headers` | map<string|string[]> | No | Headers to be sent with the request | + +**Returns:** `oas:DataChangeRequestMassChangeEnvelope|error` + +**Sample code:** + +```ballerina +oas:DataChangeRequestMassChangeEnvelope result = check pricefxClient->getDataChangeRequestMassChanges(id, payload); +``` + +
+
+ +
+massEditDataChangeRequestItems + +
+ +Mass Edit Data Change Request Items + +**Parameters:** + +| Name | Type | Required | Description | +|------|------|----------|--------------| +| `id` | string | Yes | `id` of the Data Change Request | +| `payload` | oas:DcrmanagerAddmassopidBody | Yes | | +| `headers` | map<string|string[]> | No | Headers to be sent with the request | + +**Returns:** `oas:DataChangeRequestMassChangeEnvelope|error` + +**Sample code:** + +```ballerina +oas:DataChangeRequestMassChangeEnvelope result = check pricefxClient->massEditDataChangeRequestItems(id, payload); +``` + +
+
+ +
+submitDataChangeRequest + +
+ +Submit a Data Change Request + +**Parameters:** + +| Name | Type | Required | Description | +|------|------|----------|--------------| +| `id` | string | Yes | `id` of the DCR to be submitted | +| `payload` | record {} | Yes | | +| `headers` | map<string|string[]> | No | Headers to be sent with the request | + +**Returns:** `oas:SubmitDCRResponse|error` + +**Sample code:** + +```ballerina +oas:SubmitDCRResponse result = check pricefxClient->submitDataChangeRequest(id, payload); +``` + +
+
+ +
+submitDataChangeRequestAsync + +
+ +Submit a Data Change Request (async) + +**Parameters:** + +| Name | Type | Required | Description | +|------|------|----------|--------------| +| `id` | string | Yes | `id` of the DCR to be submitted | +| `payload` | record {} | Yes | | +| `headers` | map<string|string[]> | No | Headers to be sent with the request | + +**Returns:** `oas:SubmitDCRAsyncResponse|error` + +**Sample code:** + +```ballerina +oas:SubmitDCRAsyncResponse result = check pricefxClient->submitDataChangeRequestAsync(id, payload); +``` + +
+
+ +
+updateDataChangeRequestItem + +
+ +Update a Data Change Request Item + +**Parameters:** + +| Name | Type | Required | Description | +|------|------|----------|--------------| +| `id` | string | Yes | `id` of the Data Change Request whose item you want to update | +| `payload` | oas:UpdateDCRIRequest | Yes | | +| `headers` | map<string|string[]> | No | Headers to be sent with the request | + +**Returns:** `oas:UpdateDCRIResponse|error` + +**Sample code:** + +```ballerina +oas:UpdateDCRIResponse result = check pricefxClient->updateDataChangeRequestItem(id, payload); +``` + +
+
+ +
+updateDataChangeRequestMassChanges + +
+ +Update Data Change Request Mass Changes + +**Parameters:** + +| Name | Type | Required | Description | +|------|------|----------|--------------| +| `id` | string | Yes | `id` of the Data Change Request | +| `payload` | oas:DcrmanagerUpdatemassopidBody | Yes | | +| `headers` | map<string|string[]> | No | Headers to be sent with the request | + +**Returns:** `oas:DataChangeRequestMassChangeEnvelope|error` + +**Sample code:** + +```ballerina +oas:DataChangeRequestMassChangeEnvelope result = check pricefxClient->updateDataChangeRequestMassChanges(id, payload); +``` + +
+
+ +#### Data Manager + +
+createDMFieldCollection + +
+ +Create a DMFieldCollection + +**Parameters:** + +| Name | Type | Required | Description | +|------|------|----------|--------------| +| `fcType` | "DMDS"|"DMT" | Yes | The type of FC (FieldCollection) you want to create | +| `payload` | oas:DatamartCreatefcfcTypeBody | Yes | | +| `headers` | map<string|string[]> | No | Headers to be sent with the request | + +**Returns:** `error?` + +**Sample code:** + +```ballerina +error? result = check pricefxClient->createDMFieldCollection(fcType, payload); +``` + +
+
+ +
+createDataManagerEntity + +
+ +Create a Data Manager Entity + +**Parameters:** + +| Name | Type | Required | Description | +|------|------|----------|--------------| +| `typeCode` | "DMF"|"DM"|"DMDS" | Yes | The type code of the **Field Collection** you want to update | +| `payload` | oas:CreateDataManagerEntityRequest | Yes | Either `uniqueName` or `typedId` must be provided in the request | +| `headers` | map<string|string[]> | No | Headers to be sent with the request | + +**Returns:** `oas:dmobjectResponse|error` + +**Sample code:** + +```ballerina +oas:dmobjectResponse result = check pricefxClient->createDataManagerEntity(typeCode, payload); +``` + +
+
+ +
+deleteDataManagerEntity + +
+ +Delete a Data Manager Entity + +**Parameters:** + +| Name | Type | Required | Description | +|------|------|----------|--------------| +| `typeCode` | "DM"|"DMF"|"DMDS" | Yes | The type code of the **Field Collection** you want to delete | +| `payload` | oas:DeleteDataManagerEntityRequest | Yes | | +| `headers` | map<string|string[]> | No | Headers to be sent with the request | + +**Returns:** `oas:DeleteDataManagerEntityResponse|error` + +**Sample code:** + +```ballerina +oas:DeleteDataManagerEntityResponse result = check pricefxClient->deleteDataManagerEntity(typeCode, payload); +``` + +
+
+ +
+deleteDatamartOrphanObjects + +
+ +Delete Datamart Orphan Objects + +**Parameters:** + +| Name | Type | Required | Description | +|------|------|----------|--------------| +| `headers` | map<string|string[]> | No | Headers to be sent with the request | + +**Returns:** `oas:DatamartOrphanObjectsEnvelope|error` + +**Sample code:** + +```ballerina +oas:DatamartOrphanObjectsEnvelope result = check pricefxClient->deleteDatamartOrphanObjects(); +``` + +
+
+ +
+executeDataLoadLogic + +
+ +Execute a Data Load Logic + +**Parameters:** + +| Name | Type | Required | Description | +|------|------|----------|--------------| +| `typedId` | string | Yes | The `typedId` of the Data Load you want to evaluate | +| `logicName` | string | Yes | The name of the logic you want to execute | +| `headers` | map<string|string[]> | No | Headers to be sent with the request | + +**Returns:** `oas:ExecuteDataLoadLogicResponse|error` + +**Sample code:** + +```ballerina +oas:ExecuteDataLoadLogicResponse result = check pricefxClient->executeDataLoadLogic(typedId, logicName); +``` + +
+
+ +
+exportCsvFile + +
+ +Export a CSV File + +**Parameters:** + +| Name | Type | Required | Description | +|------|------|----------|--------------| +| `payload` | oas:ExportCSVFileRequest | Yes | | +| `headers` | map<string|string[]> | No | Headers to be sent with the request | +| `queries` | *oas:ExportCsvFileQueries | Yes | Queries to be sent with the request | + +**Returns:** `error?` + +**Sample code:** + +```ballerina +error? result = check pricefxClient->exportCsvFile(payload, queries); +``` + +
+
+ +
+exportDatamart + +
+ +Export Datamart + +**Parameters:** + +| Name | Type | Required | Description | +|------|------|----------|--------------| +| `fcTypedIdOrSourceName` | string | Yes | Restricts the export to a specific source, identified by either the 'typedId' or 'sourceName'. | +| `payload` | oas:ExportDatamartRequest | Yes | | +| `headers` | map<string|string[]> | No | Headers to be sent with the request | +| `queries` | *oas:ExportDatamartQueries | Yes | Queries to be sent with the request | + +**Returns:** `oas:ExportDatamartResponse|error` + +**Sample code:** + +```ballerina +oas:ExportDatamartResponse result = check pricefxClient->exportDatamart(fcTypedIdOrSourceName, payload, queries); +``` + +
+
+ +
+exportExcelFileXlsx + +
+ +Export an Excel File (XLSX) + +**Parameters:** + +| Name | Type | Required | Description | +|------|------|----------|--------------| +| `payload` | oas:ExportExcelFileRequest | Yes | | +| `headers` | map<string|string[]> | No | Headers to be sent with the request | +| `queries` | *oas:ExportExcelFileXlsxQueries | Yes | Queries to be sent with the request | + +**Returns:** `error?` + +**Sample code:** + +```ballerina +error? result = check pricefxClient->exportExcelFileXlsx(payload, queries); +``` + +
+
+ +
+fetchDataMartObject + +
+ +Get a DM Object - **typedUniquename** – Format: "*<typeCode>.<uniqueName>*" (e.g., DMDS.SalesTransactions) - **typedId** – Format: "*<dbId>.<typeCode>*" (e.g., 123456.DMDS)' - **"*"** (asterisk) – Asterisk can be used when you are providing a **source$query** in `data` within the request body + +**Parameters:** + +| Name | Type | Required | Description | +|------|------|----------|--------------| +| `objectId` | string | Yes | Use one of the following object identifiers: | +| `payload` | oas:GetDMObjectRequest | Yes | | +| `headers` | map<string|string[]> | No | Headers to be sent with the request | +| `queries` | *oas:FetchDataMartObjectQueries | Yes | Queries to be sent with the request | + +**Returns:** `oas:GetDMObjectResponse|error` + +**Sample code:** + +```ballerina +oas:GetDMObjectResponse result = check pricefxClient->fetchDataMartObject(objectId, payload, queries); +``` + +
+
+ +
+getActionStatus + +
+ +Get Action Status + +**Parameters:** + +| Name | Type | Required | Description | +|------|------|----------|--------------| +| `actionUUID` | string | Yes | | +| `headers` | map<string|string[]> | No | Headers to be sent with the request | + +**Returns:** `oas:GetActionStatusResponse|error` + +**Sample code:** + +```ballerina +oas:GetActionStatusResponse result = check pricefxClient->getActionStatus(actionUUID); +``` + +
+
+ +
+getDataMartObject + +
+ +Get a DM Object - **typedUniquename** – Format: "*<typeCode>.<uniqueName>*" (e.g., DMDS.SalesTransactions) - **typedId** – Format: "*<dbId>.<typeCode>*" (e.g., 123456.DMDS)' - **"*"** (asterisk) – Asterisk can be used when you are providing a **source$query** in `data` within the request body + +**Parameters:** + +| Name | Type | Required | Description | +|------|------|----------|--------------| +| `objectId` | string | Yes | Use one of the following object identifiers: | +| `headers` | map<string|string[]> | No | Headers to be sent with the request | +| `queries` | *oas:GetDataMartObjectQueries | Yes | Queries to be sent with the request | + +**Returns:** `oas:DataMartObjectEnvelope|error` + +**Sample code:** + +```ballerina +oas:DataMartObjectEnvelope result = check pricefxClient->getDataMartObject(objectId, queries); +``` + +
+
+ +
+getDmExportFile + +
+ +Get a DM Export File + +**Parameters:** + +| Name | Type | Required | Description | +|------|------|----------|--------------| +| `fileName` | string | Yes | The name of the file previously created by a `datamart.export` request. The filename needs to be an exact match - no wildcards allowed, hence only one file at the time can be fetched | +| `headers` | map<string|string[]> | No | Headers to be sent with the request | + +**Returns:** `error?` + +**Sample code:** + +```ballerina +error? result = check pricefxClient->getDmExportFile(fileName); +``` + +
+
+ +
+getDmObjectNo + +
+ +Get a DM Object (no count) - **typedUniquename** – Format: "*<typeCode>.<uniqueName>*" (e.g., DMDS.SalesTransactions) - **typedId** – Format: "*<dbId>.<typeCode>*" (e.g., 123456.DMDS) - **"*"** (asterisk) – Asterisk can be used when you are providing a **source$query** in `data` within the request body + +**Parameters:** + +| Name | Type | Required | Description | +|------|------|----------|--------------| +| `objectId` | string | Yes | Use one of the following object identifiers: | +| `payload` | oas:GetDMObjectNoCountRequest | Yes | | +| `headers` | map<string|string[]> | No | Headers to be sent with the request | + +**Returns:** `oas:GetDMObjectNoCountResponse|error` + +**Sample code:** + +```ballerina +oas:GetDMObjectNoCountResponse result = check pricefxClient->getDmObjectNo(objectId, payload); +``` + +
+
+ +
+importDataLoad + +
+ +Import a Data Load + +**Parameters:** + +| Name | Type | Required | Description | +|------|------|----------|--------------| +| `payload` | oas:ImportDataLoadRequest | Yes | | +| `headers` | map<string|string[]> | No | Headers to be sent with the request | + +**Returns:** `error?` + +**Sample code:** + +```ballerina +error? result = check pricefxClient->importDataLoad(payload); +``` + +
+
+ +
+importDataMartFile + +
+ +Import a File + +**Parameters:** + +| Name | Type | Required | Description | +|------|------|----------|--------------| +| `slotId` | string | Yes | The `id` of the slot. Create the slot and retrieve the `id` using the **/uploadmanager.newuploadslot** endpoint | +| `typedId` | string | Yes | The `typedId` of the Data Manager entity | +| `headers` | map<string|string[]> | No | Headers to be sent with the request | + +**Returns:** `error?` + +**Sample code:** + +```ballerina +error? result = check pricefxClient->importDataMartFile(slotId, typedId); +``` + +
+
+ +
+listCharts + +
+ +List Charts + +**Parameters:** + +| Name | Type | Required | Description | +|------|------|----------|--------------| +| `headers` | map<string|string[]> | No | Headers to be sent with the request | + +**Returns:** `oas:ListChartsResponse|error` + +**Sample code:** + +```ballerina +oas:ListChartsResponse result = check pricefxClient->listCharts(); +``` + +
+
+ +
+listDataLoads + +
+ +List Data Loads + +**Parameters:** + +| Name | Type | Required | Description | +|------|------|----------|--------------| +| `headers` | map<string|string[]> | No | Headers to be sent with the request | + +**Returns:** `oas:ListDataLoadsResponse|error` + +**Sample code:** + +```ballerina +oas:ListDataLoadsResponse result = check pricefxClient->listDataLoads(); +``` + +
+
+ +
+listDataLoadsWith + +
+ +List Data Loads (with validation and schedules) + +**Parameters:** + +| Name | Type | Required | Description | +|------|------|----------|--------------| +| `headers` | map<string|string[]> | No | Headers to be sent with the request | + +**Returns:** `oas:ListDataLoadsWithValidationResponse|error` + +**Sample code:** + +```ballerina +oas:ListDataLoadsWithValidationResponse result = check pricefxClient->listDataLoadsWith(); +``` + +
+
+ +
+listDataManagerEntities + +
+ +List Data Manager Entities + +**Parameters:** + +| Name | Type | Required | Description | +|------|------|----------|--------------| +| `typeCode` | "DM"|"DMDS"|"DMF"|"DMT" | Yes | The type code of the **Field Collection** | +| `payload` | oas:ListDataManagerEntitiesRequest | Yes | | +| `headers` | map<string|string[]> | No | Headers to be sent with the request | + +**Returns:** `oas:dmobjectResponse|error` + +**Sample code:** + +```ballerina +oas:dmobjectResponse result = check pricefxClient->listDataManagerEntities(typeCode, payload); +``` + +
+
+ +
+listDatamartOrphanObjects + +
+ +List Datamart Orphan Objects + +**Parameters:** + +| Name | Type | Required | Description | +|------|------|----------|--------------| +| `headers` | map<string|string[]> | No | Headers to be sent with the request | + +**Returns:** `oas:DatamartOrphanObjectsEnvelope|error` + +**Sample code:** + +```ballerina +oas:DatamartOrphanObjectsEnvelope result = check pricefxClient->listDatamartOrphanObjects(); +``` + +
+
+ +
+listRollups + +
+ +List Rollups + +**Parameters:** + +| Name | Type | Required | Description | +|------|------|----------|--------------| +| `payload` | oas:ListRollupsRequest | Yes | | +| `headers` | map<string|string[]> | No | Headers to be sent with the request | + +**Returns:** `oas:ListRollupsResponse|error` + +**Sample code:** + +```ballerina +oas:ListRollupsResponse result = check pricefxClient->listRollups(payload); +``` + +
+
+ +
+massEditDataMartObject + +
+ +Mass Edit + +**Parameters:** + +| Name | Type | Required | Description | +|------|------|----------|--------------| +| `typedId` | string | Yes | The `typedId` of the object you want to perform the mass edit action for | +| `payload` | oas:MassEditRequest1 | Yes | | +| `headers` | map<string|string[]> | No | Headers to be sent with the request | + +**Returns:** `oas:MassEditDatamartResponse|error` + +**Sample code:** + +```ballerina +oas:MassEditDatamartResponse result = check pricefxClient->massEditDataMartObject(typedId, payload); +``` + +
+
+ +
+queryDataManagerObject + +
+ +Query a Data Manager Object + +**Parameters:** + +| Name | Type | Required | Description | +|------|------|----------|--------------| +| `payload` | oas:QueryDataManagerObjectRequest | Yes | | +| `headers` | map<string|string[]> | No | Headers to be sent with the request | +| `queries` | *oas:QueryDataManagerObjectQueries | Yes | Queries to be sent with the request | + +**Returns:** `oas:QueryDataManagerObjectResponse|error` + +**Sample code:** + +```ballerina +oas:QueryDataManagerObjectResponse result = check pricefxClient->queryDataManagerObject(payload, queries); +``` + +
+
+ +
+restoreDefaultDataSources + +
+ +Restore Default Data Sources + +**Parameters:** + +| Name | Type | Required | Description | +|------|------|----------|--------------| +| `dataSourceName` | "Product"|"Customer"|"uom"|"ccy"|"cal" | Yes | The name of the Data Source you want to create. | +| `headers` | map<string|string[]> | No | Headers to be sent with the request | + +**Returns:** `oas:RestoreDefaultDataSourcesResponse|error` + +**Sample code:** + +```ballerina +oas:RestoreDefaultDataSourcesResponse result = check pricefxClient->restoreDefaultDataSources(dataSourceName); +``` + +
+
+ +
+runDataLoad + +
+ +Run a Data Load + +**Parameters:** + +| Name | Type | Required | Description | +|------|------|----------|--------------| +| `payload` | oas:RunDataLoadRequest | Yes | | +| `headers` | map<string|string[]> | No | Headers to be sent with the request | + +**Returns:** `oas:RunDataLoadResponse|error` + +**Sample code:** + +```ballerina +oas:RunDataLoadResponse result = check pricefxClient->runDataLoad(payload); +``` + +
+
+ +
+saveDataLoad + +
+ +Save a Data Load + +**Parameters:** + +| Name | Type | Required | Description | +|------|------|----------|--------------| +| `payload` | oas:DatamartUpdatedataloadBody | Yes | | +| `headers` | map<string|string[]> | No | Headers to be sent with the request | + +**Returns:** `oas:DataLoadEnvelope|error` + +**Sample code:** + +```ballerina +oas:DataLoadEnvelope result = check pricefxClient->saveDataLoad(payload); +``` + +
+
+ +
+sqlQueryDataManagerObject + +
+ +SQL Query a Data Manager Object + +**Parameters:** + +| Name | Type | Required | Description | +|------|------|----------|--------------| +| `payload` | oas:DatamartSqlqueryBody | Yes | `sources` that SQL can use are query definitions. The sources become CTEs (Common Table Expression) in the final SQL. These are then used as a reference in the main query instead of referring to the actual tables directly. The request example compares the volume by month 2019 to 2020 | +| `headers` | map<string|string[]> | No | Headers to be sent with the request | +| `queries` | *oas:SqlQueryDataManagerObjectQueries | Yes | Queries to be sent with the request | + +**Returns:** `oas:QueryDataManagerObjectResponse|error` + +**Sample code:** + +```ballerina +oas:QueryDataManagerObjectResponse result = check pricefxClient->sqlQueryDataManagerObject(payload, queries); +``` + +
+
+ +
+updateDataManagerEntity + +
+ +Update a Data Manager Entity + +**Parameters:** + +| Name | Type | Required | Description | +|------|------|----------|--------------| +| `typeCode` | "DMF"|"DM"|"DMDS" | Yes | The type code of the **Field Collection** you want to update | +| `payload` | oas:UpdateDataManagerEntityRequest | Yes | Either `uniqueName` or `typedId` must be provided in the request | +| `headers` | map<string|string[]> | No | Headers to be sent with the request | + +**Returns:** `oas:dmobjectResponse|error` + +**Sample code:** + +```ballerina +oas:dmobjectResponse result = check pricefxClient->updateDataManagerEntity(typeCode, payload); +``` + +
+
+ +
+uploadBulkDataToDataSource + +
+ +Upload a Bulk Data to Data Source + +**Parameters:** + +| Name | Type | Required | Description | +|------|------|----------|--------------| +| `datasourceUniqueName` | string | Yes | The unique name of the Data Source where you want to upload the data to. You can also use `typedId` or the source name | +| `payload` | oas:UploadBulkDataToDataSourceRequest | Yes | | +| `headers` | map<string|string[]> | No | Headers to be sent with the request | + +**Returns:** `oas:BulkDataUploadEnvelope|error` + +**Sample code:** + +```ballerina +oas:BulkDataUploadEnvelope result = check pricefxClient->uploadBulkDataToDataSource(datasourceUniqueName, payload); +``` + +
+
+ +#### Imports + +
+deleteImportChanges + +
+ +Delete Import Changes + +**Parameters:** + +| Name | Type | Required | Description | +|------|------|----------|--------------| +| `payload` | oas:ImportmanagerDeletechangesBody | Yes | | +| `headers` | map<string|string[]> | No | Headers to be sent with the request | + +**Returns:** `oas:generalResponse|error` + +**Sample code:** + +```ballerina +oas:generalResponse result = check pricefxClient->deleteImportChanges(payload); +``` + +
+
+ +
+listImportManagerChanges + +
+ +List ImportManager Changes + +**Parameters:** + +| Name | Type | Required | Description | +|------|------|----------|--------------| +| `uniqueName` | string | Yes | | +| `payload` | record {} | Yes | | +| `headers` | map<string|string[]> | No | Headers to be sent with the request | + +**Returns:** `oas:ListImportManagerChangesEnvelope|error` + +**Sample code:** + +```ballerina +oas:ListImportManagerChangesEnvelope result = check pricefxClient->listImportManagerChanges(uniqueName, payload); +``` + +
+
+ +
+massDeleteImports + +
+ +Mass Delete Imports + +**Parameters:** + +| Name | Type | Required | Description | +|------|------|----------|--------------| +| `typedId` | string | Yes | | +| `payload` | oas:ImportmanagerMassdeletetypedIdBody | Yes | | +| `headers` | map<string|string[]> | No | Headers to be sent with the request | + +**Returns:** `oas:MassDeleteImportsEnvelope|error` + +**Sample code:** + +```ballerina +oas:MassDeleteImportsEnvelope result = check pricefxClient->massDeleteImports(typedId, payload); +``` + +
+
+ +
+massEditImports + +
+ +Mass Edit Imports + +**Parameters:** + +| Name | Type | Required | Description | +|------|------|----------|--------------| +| `typedId` | string | Yes | | +| `payload` | oas:ImportmanagerMassedittypedIdBody | Yes | | +| `headers` | map<string|string[]> | No | Headers to be sent with the request | + +**Returns:** `oas:MassEditImportsEnvelope|error` + +**Sample code:** + +```ballerina +oas:MassEditImportsEnvelope result = check pricefxClient->massEditImports(typedId, payload); +``` + +
+
+ +
+saveImportChange + +
+ +Save Import Change + +**Parameters:** + +| Name | Type | Required | Description | +|------|------|----------|--------------| +| `payload` | record {} | Yes | | +| `headers` | map<string|string[]> | No | Headers to be sent with the request | + +**Returns:** `oas:SaveImportChangeEnvelope|error` + +**Sample code:** + +```ballerina +oas:SaveImportChangeEnvelope result = check pricefxClient->saveImportChange(payload); +``` + +
+
+ +
+submitChanges + +
+ +Submit Changes + +**Parameters:** + +| Name | Type | Required | Description | +|------|------|----------|--------------| +| `typedId` | string | Yes | typedId of the import | +| `payload` | oas:ImportmanagerSubmittypedIdBody | Yes | | +| `headers` | map<string|string[]> | No | Headers to be sent with the request | + +**Returns:** `oas:ImportManagerUploadEnvelope|error` + +**Sample code:** + +```ballerina +oas:ImportManagerUploadEnvelope result = check pricefxClient->submitChanges(typedId, payload); +``` + +
+
+ +
+uploadExcelToImportManager + +
+ +Upload Excel to Import Manager + +**Parameters:** + +| Name | Type | Required | Description | +|------|------|----------|--------------| +| `typeCode` | "P"|"PX" | Yes | Target object type code | +| `target` | string | Yes | Provides additional details about the target object, such as specifying a PX name if required | +| `slotId` | string | Yes | ID of the Upload Slot | +| `payload` | oas:TypeCodetargetBody | Yes | | +| `headers` | map<string|string[]> | No | Headers to be sent with the request | +| `queries` | *oas:UploadExcelToImportManagerQueries | Yes | Queries to be sent with the request | + +**Returns:** `oas:ImportManagerUploadEnvelope|error` + +**Sample code:** + +```ballerina +oas:ImportManagerUploadEnvelope result = check pricefxClient->uploadExcelToImportManager(typeCode, target, slotId, payload, queries); +``` + +
+
+ +#### Lookup Tables / Company Parameters + +
+addLookupTable + +
+ +Add a Lookup Table + +**Parameters:** + +| Name | Type | Required | Description | +|------|------|----------|--------------| +| `payload` | oas:AddLookupTableRequest | Yes | The request must contain all fields that are part of the business key for that object and all non-nullable fields | +| `headers` | map<string|string[]> | No | Headers to be sent with the request | + +**Returns:** `oas:AddLookupTableResponse|error` + +**Sample code:** + +```ballerina +oas:AddLookupTableResponse result = check pricefxClient->addLookupTable(payload); +``` + +
+
+ +
+addLookupTableValue + +
+ +Add a Lookup Table Value + +**Parameters:** + +| Name | Type | Required | Description | +|------|------|----------|--------------| +| `tableId` | string | Yes | Enter the ID of the table. The ID can be retrieved using the `/lookuptablemanager.fetch` method | +| `payload` | oas:AddLookupTableValueRequest | Yes | | +| `headers` | map<string|string[]> | No | Headers to be sent with the request | + +**Returns:** `oas:AddLookupTableValueResponse|error` + +**Sample code:** + +```ballerina +oas:AddLookupTableValueResponse result = check pricefxClient->addLookupTableValue(tableId, payload); +``` + +
+
+ +
+copyLookupTable + +
+ +Copy a Lookup Table + +**Parameters:** + +| Name | Type | Required | Description | +|------|------|----------|--------------| +| `tableId` | string | Yes | Enter the ID of the table you want to copy | +| `headers` | map<string|string[]> | No | Headers to be sent with the request | + +**Returns:** `oas:CopyLookupTableResponse|error` + +**Sample code:** + +```ballerina +oas:CopyLookupTableResponse result = check pricefxClient->copyLookupTable(tableId); +``` + +
+
+ +
+deleteColumnValuesMatrix + +
+ +Delete Column Values (Matrix only) + +**Parameters:** + +| Name | Type | Required | Description | +|------|------|----------|--------------| +| `tableId` | string | Yes | Enter the ID of the table. The ID can be retrieved using the `/lookuptablemanager.fetch` method | +| `columnName` | string | Yes | Enter the name of the column you want to delete values from | +| `headers` | map<string|string[]> | No | Headers to be sent with the request | + +**Returns:** `error?` + +**Sample code:** + +```ballerina +error? result = check pricefxClient->deleteColumnValuesMatrix(tableId, columnName); +``` + +
+
+ +
+deleteLookupTable + +
+ +Delete a Lookup Table + +**Parameters:** + +| Name | Type | Required | Description | +|------|------|----------|--------------| +| `payload` | oas:DeleteLookupTableRequest | Yes | Specify the `typedId` of the Lookup Table (Company Parameters) you want to delete | +| `headers` | map<string|string[]> | No | Headers to be sent with the request | + +**Returns:** `oas:DeleteLookupTableResponse|error` + +**Sample code:** + +```ballerina +oas:DeleteLookupTableResponse result = check pricefxClient->deleteLookupTable(payload); +``` + +
+
+ +
+deleteLookupTableValue + +
+ +Delete a Lookup Table Value + payload - + +**Parameters:** + +| Name | Type | Required | Description | +|------|------|----------|--------------| +| `tableId` | string | Yes | Enter the ID of the table. The ID can be retrieved using the `/lookuptablemanager.fetch` method | +| `payload` | oas:DeleteLookupTableValueRequest | Yes | | +| `headers` | map<string|string[]> | No | Headers to be sent with the request | + +**Returns:** `oas:DeleteLookupTableValueResponse|error` + +**Sample code:** + +```ballerina +oas:DeleteLookupTableValueResponse result = check pricefxClient->deleteLookupTableValue(tableId, payload); +``` + +
+
+ +
+getLogicReferences + +
+ +Get Logic References + +**Parameters:** + +| Name | Type | Required | Description | +|------|------|----------|--------------| +| `tableId` | string | Yes | Enter the ID of the table you want to retrieve logic references for | +| `headers` | map<string|string[]> | No | Headers to be sent with the request | + +**Returns:** `oas:GetLogicReferencesResponse|error` + +**Sample code:** + +```ballerina +oas:GetLogicReferencesResponse result = check pricefxClient->getLogicReferences(tableId); +``` + +
+
+ +
+insertBulkDataToLookupTable + +
+ +Insert Bulk Data to Lookup Table + +**Parameters:** + +| Name | Type | Required | Description | +|------|------|----------|--------------| +| `typeCode` | "JLTV"|"JLTVM"|"LT"|"LTT"|"LTV"|"MLTV"|"MLTV2"|"MLTV3"|"MLTV4"|"MLTV5"|"MLTV6"|"MLTVM" | Yes | Enter the type code of the Lookup Table entity you want to insert a data to | +| `payload` | oas:InsertBulkDataToLookupTableRequest | Yes | We used `/lookuptablemanager.loaddata/MLTV` in the request example to insert bulk data to Matrix Lookup Table. Notice that the `lookupTable` is used in the `header` section and then ID of the Lookup Table in the `data` section | +| `headers` | map<string|string[]> | No | Headers to be sent with the request | + +**Returns:** `oas:InsertBulkDataLookupTableResponse|error` + +**Sample code:** + +```ballerina +oas:InsertBulkDataLookupTableResponse result = check pricefxClient->insertBulkDataToLookupTable(typeCode, payload); +``` + +
+
+ +
+listAllLookupTableValues + +
+ +List All Lookup Table Values + +**Parameters:** + +| Name | Type | Required | Description | +|------|------|----------|--------------| +| `tableId` | string | Yes | Enter the ID of the table. The ID can be retrieved using the `/lookuptablemanager.fetch` method | +| `payload` | oas:ListAllLookupTableValuesRequest | Yes | You can specify the start and end row to limit the number of retrieved records | +| `headers` | map<string|string[]> | No | Headers to be sent with the request | +| `queries` | *oas:ListAllLookupTableValuesQueries | Yes | Queries to be sent with the request | + +**Returns:** `oas:ListAllLookupTableValuesResponse|error` + +**Sample code:** + +```ballerina +oas:ListAllLookupTableValuesResponse result = check pricefxClient->listAllLookupTableValues(tableId, payload, queries); +``` + +
+
+ +
+listAllLookupTables + +
+ +List All Lookup Tables + +**Parameters:** + +| Name | Type | Required | Description | +|------|------|----------|--------------| +| `payload` | oas:ListAllLookupTablesRequest | Yes | You can specify the start and end row to limit the number of retrieved Lookup Tables / Company Parameters | +| `headers` | map<string|string[]> | No | Headers to be sent with the request | + +**Returns:** `oas:ListAllLookupTablesResponse|error` + +**Sample code:** + +```ballerina +oas:ListAllLookupTablesResponse result = check pricefxClient->listAllLookupTables(payload); +``` + +
+
+ +
+massDeleteLookupTableValues + +
+ +Mass Delete Lookup Table Values + payload - + +**Parameters:** + +| Name | Type | Required | Description | +|------|------|----------|--------------| +| `tableId` | string | Yes | Enter the ID of the table. The ID can be retrieved using the `/lookuptablemanager.fetch` method | +| `payload` | oas:TableIdBatchBody | Yes | | +| `headers` | map<string|string[]> | No | Headers to be sent with the request | +| `queries` | *oas:MassDeleteLookupTableValuesQueries | Yes | Queries to be sent with the request | + +**Returns:** `oas:DeleteLookupTableValueResponse1|error` + +**Sample code:** + +```ballerina +oas:DeleteLookupTableValueResponse1 result = check pricefxClient->massDeleteLookupTableValues(tableId, payload, queries); +``` + +
+
+ +
+massEditLookupTable + +
+ +Mass Edit + +**Parameters:** + +| Name | Type | Required | Description | +|------|------|----------|--------------| +| `tableId` | string | Yes | The ID of the Lookup Table whose values you want to update | +| `payload` | oas:MassEditRequest | Yes | | +| `headers` | map<string|string[]> | No | Headers to be sent with the request | + +**Returns:** `oas:MassEditResponse|error` + +**Sample code:** + +```ballerina +oas:MassEditResponse result = check pricefxClient->massEditLookupTable(tableId, payload); +``` + +
+
+ +
+updateLookupTable + +
+ +Update a Lookup Table + payload - + +**Parameters:** + +| Name | Type | Required | Description | +|------|------|----------|--------------| +| `payload` | oas:UpdateLookupTableRequest | Yes | | +| `headers` | map<string|string[]> | No | Headers to be sent with the request | + +**Returns:** `oas:UpdateLookupTableResponse|error` + +**Sample code:** + +```ballerina +oas:UpdateLookupTableResponse result = check pricefxClient->updateLookupTable(payload); +``` + +
+
+ +
+updateLookupTableValue + +
+ +Update a Lookup Table Value + +**Parameters:** + +| Name | Type | Required | Description | +|------|------|----------|--------------| +| `tableId` | string | Yes | Enter the ID of the table. The ID can be retrieved using the `/lookuptablemanager.fetch` method | +| `payload` | oas:UpdateLookupTableValueRequest | Yes | | +| `headers` | map<string|string[]> | No | Headers to be sent with the request | + +**Returns:** `oas:UpdateLookupTableValueResponse|error` + +**Sample code:** + +```ballerina +oas:UpdateLookupTableValueResponse result = check pricefxClient->updateLookupTableValue(tableId, payload); +``` + +
+
+ +
+upsertLookupTableValue + +
+ +Upsert a Lookup Table Value + +**Parameters:** + +| Name | Type | Required | Description | +|------|------|----------|--------------| +| `tableId` | string | Yes | Enter the ID of the table. The ID can be retrieved using the `/lookuptablemanager.fetch` method | +| `payload` | oas:UpsertLookupTableValueRequest | Yes | | +| `headers` | map<string|string[]> | No | Headers to be sent with the request | + +**Returns:** `oas:UpsertLookupTableValueResponse|error` + +**Sample code:** + +```ballerina +oas:UpsertLookupTableValueResponse result = check pricefxClient->upsertLookupTableValue(tableId, payload); +``` + +
+
+ +#### Key-Value Store + +
+countKeys + +
+ +Count Keys + +**Parameters:** + +| Name | Type | Required | Description | +|------|------|----------|--------------| +| `tableName` | string | Yes | The table to count keys from | +| `headers` | map<string|string[]> | No | Headers to be sent with the request | + +**Returns:** `error?` + +**Sample code:** + +```ballerina +error? result = check pricefxClient->countKeys(tableName); +``` + +
+
+ +
+createKvTable + +
+ +Create a KV Table + +**Parameters:** + +| Name | Type | Required | Description | +|------|------|----------|--------------| +| `tableName` | string | Yes | A name of the table you want create. Only lower case letters, numbers and underscores are allowed. Do not use special characters | +| `payload` | oas:CreateKVTableRequest | Yes | The sample request creates a table with four columns: sku, customer, record and payload (TEXT).<br> | +| `headers` | map<string|string[]> | No | Headers to be sent with the request | + +**Returns:** `oas:generalResponse|error` + +**Sample code:** + +```ballerina +oas:generalResponse result = check pricefxClient->createKvTable(tableName, payload); +``` + +
+
+ +
+deleteKey + +
+ +Delete a Key + +**Parameters:** + +| Name | Type | Required | Description | +|------|------|----------|--------------| +| `tableName` | string | Yes | | +| `payload` | oas:DeleteKVKeyRequest | Yes | | +| `headers` | map<string|string[]> | No | Headers to be sent with the request | + +**Returns:** `error?` + +**Sample code:** + +```ballerina +error? result = check pricefxClient->deleteKey(tableName, payload); +``` + +
+
+ +
+dropKvTable + +
+ +Drop a KV Table + +**Parameters:** + +| Name | Type | Required | Description | +|------|------|----------|--------------| +| `tableName` | string | Yes | A name of the table you want drop. Only lower case letters, numbers and underscores are allowed. Do not use special characters | +| `payload` | record {} | Yes | | +| `headers` | map<string|string[]> | No | Headers to be sent with the request | + +**Returns:** `record` + +**Sample code:** + +```ballerina +record result = check pricefxClient->dropKvTable(tableName, payload); +``` + +
+
+ +
+getKey + +
+ +Get a Key + +**Parameters:** + +| Name | Type | Required | Description | +|------|------|----------|--------------| +| `tableName` | string | Yes | A name of the table you want to retrieve the "payload" from | +| `payload` | oas:GetKVKeyRequest | Yes | | +| `headers` | map<string|string[]> | No | Headers to be sent with the request | + +**Returns:** `error?` + +**Sample code:** + +```ballerina +error? result = check pricefxClient->getKey(tableName, payload); +``` + +
+
+ +
+getTableInfo + +
+ +Get a Table Info + +**Parameters:** + +| Name | Type | Required | Description | +|------|------|----------|--------------| +| `tableName` | string | Yes | A name of the table you want to retrieve information about | +| `headers` | map<string|string[]> | No | Headers to be sent with the request | + +**Returns:** `oas:GetKVTableInfoResponse|error` + +**Sample code:** + +```ballerina +oas:GetKVTableInfoResponse result = check pricefxClient->getTableInfo(tableName); +``` + +
+
+ +
+insertBulkKvData + +
+ +Insert Bulk KV Data + +**Parameters:** + +| Name | Type | Required | Description | +|------|------|----------|--------------| +| `tableName` | string | Yes | A name of the table you want upload data to | +| `payload` | oas:InsertBulkKVDataRequest | Yes | | +| `headers` | map<string|string[]> | No | Headers to be sent with the request | + +**Returns:** `oas:generalResponse|error` + +**Sample code:** + +```ballerina +oas:generalResponse result = check pricefxClient->insertBulkKvData(tableName, payload); +``` + +
+
+ +
+listKvTables + +
+ +List KV Tables + +**Parameters:** + +| Name | Type | Required | Description | +|------|------|----------|--------------| +| `headers` | map<string|string[]> | No | Headers to be sent with the request | + +**Returns:** `oas:ListKVTablesResponse|error` + +**Sample code:** + +```ballerina +oas:ListKVTablesResponse result = check pricefxClient->listKvTables(); +``` + +
+
+ +
+searchKvTable + +
+ +Search a KV Table + payload - + +**Parameters:** + +| Name | Type | Required | Description | +|------|------|----------|--------------| +| `tableName` | string | Yes | A name of the table you want to search the pattern for | +| `payload` | oas:SearchKVTableRequest | Yes | | +| `headers` | map<string|string[]> | No | Headers to be sent with the request | + +**Returns:** `oas:SearchKvTableEnvelope[]|error` + +**Sample code:** + +```ballerina +oas:SearchKvTableEnvelope[] result = check pricefxClient->searchKvTable(tableName, payload); +``` + +
+
+ +
+truncateTable + +
+ +Truncate a Table + +**Parameters:** + +| Name | Type | Required | Description | +|------|------|----------|--------------| +| `tableName` | string | Yes | The table you want to remove the keys from | +| `headers` | map<string|string[]> | No | Headers to be sent with the request | + +**Returns:** `oas:TruncateKVTableResponse|error` + +**Sample code:** + +```ballerina +oas:TruncateKVTableResponse result = check pricefxClient->truncateTable(tableName); +``` + +
+
+ +
+upsertKey + +
+ +Upsert a Key + payload - + +**Parameters:** + +| Name | Type | Required | Description | +|------|------|----------|--------------| +| `tableName` | string | Yes | A name of the table you want to upsert the key into | +| `payload` | oas:UpsertKVKeyRequest | Yes | | +| `headers` | map<string|string[]> | No | Headers to be sent with the request | + +**Returns:** `oas:UpsertKVKeyResponse|error` + +**Sample code:** + +```ballerina +oas:UpsertKVKeyResponse result = check pricefxClient->upsertKey(tableName, payload); +``` + +
+
+ +#### Logics + +
+copyLogic + +
+ +Copy a Logic + +**Parameters:** + +| Name | Type | Required | Description | +|------|------|----------|--------------| +| `id` | string | Yes | The ID of the logic. you want to copy. The `id` is the `typedId` without the **F** suffix. For example, the `id` attribute of the item with `typedId` = **2147484837.F** is **2147484837** | +| `headers` | map<string|string[]> | No | Headers to be sent with the request | + +**Returns:** `oas:CopyLogicResponse|error` + +**Sample code:** + +```ballerina +oas:CopyLogicResponse result = check pricefxClient->copyLogic(id); +``` + +
+
+ +
+deleteLogic + +
+ +Delete a Logic + +**Parameters:** + +| Name | Type | Required | Description | +|------|------|----------|--------------| +| `id` | string | Yes | The ID of the logic you want to delete. `id` is the `typedId` without **F** suffix. For example, the `id` attribute of the item with `typedId` = **2147484835.F** is **2147484835** | +| `headers` | map<string|string[]> | No | Headers to be sent with the request | + +**Returns:** `oas:DeleteLogicResponse|error` + +**Sample code:** + +```ballerina +oas:DeleteLogicResponse result = check pricefxClient->deleteLogic(id); +``` + +
+
+ +
+executeLibraryFunction + +
+ +Execute Library Function + +**Parameters:** + +| Name | Type | Required | Description | +|------|------|----------|--------------| +| `formulaName` | string | Yes | Name of the formula library containing the function | +| `elementName` | string | Yes | Name of the library element containing the function | +| `functionName` | string | Yes | Name of the function to execute | +| `payload` | oas:ElementNamefunctionNameBody | Yes | | +| `headers` | map<string|string[]> | No | Headers to be sent with the request | + +**Returns:** `http:Response|error` + +**Sample code:** + +```ballerina +http:Response result = check pricefxClient->executeLibraryFunction(formulaName, elementName, functionName, payload); +``` + +
+
+ +
+executeLogicInService + +
+ +Execute a Logic Without a Context in a Service + payload - + +**Parameters:** + +| Name | Type | Required | Description | +|------|------|----------|--------------| +| `uniqueName` | string | Yes | The name (`uniqueName`) of the logic you want to execute | +| `payload` | record {record {} data?;} | Yes | | +| `headers` | map<string|string[]> | No | Headers to be sent with the request | + +**Returns:** `oas:logicResponse|error` + +**Sample code:** + +```ballerina +oas:logicResponse result = check pricefxClient->executeLogicInService(uniqueName, payload); +``` + +
+
+ +
+executeLogicInServiceReadOnly + +
+ +Execute a Logic Without a Context in a Service (Read-Only) + +**Parameters:** + +| Name | Type | Required | Description | +|------|------|----------|--------------| +| `uniqueName` | string | Yes | The name (`uniqueName`) of the logic you want to execute | +| `headers` | map<string|string[]> | No | Headers to be sent with the request | + +**Returns:** `oas:ExecuteLogicReadOnlyResponse|error` + +**Sample code:** + +```ballerina +oas:ExecuteLogicReadOnlyResponse result = check pricefxClient->executeLogicInServiceReadOnly(uniqueName); +``` + +
+
+ +
+executeLogicRead + +
+ +Execute a Logic (Read-Only) + +**Parameters:** + +| Name | Type | Required | Description | +|------|------|----------|--------------| +| `uniqueName` | string | Yes | The name (`uniqueName`) of the logic you want to execute | +| `headers` | map<string|string[]> | No | Headers to be sent with the request | + +**Returns:** `oas:ExecuteLogicReadOnlyResponse|error` + +**Sample code:** + +```ballerina +oas:ExecuteLogicReadOnlyResponse result = check pricefxClient->executeLogicRead(uniqueName); +``` + +
+
+ +
+executeLogicWithout + +
+ +Execute a Logic (Without a Context) + payload - + +**Parameters:** + +| Name | Type | Required | Description | +|------|------|----------|--------------| +| `uniqueName` | string | Yes | The name (`uniqueName`) of the logic you want to execute | +| `payload` | record {record {} data?;} | Yes | | +| `headers` | map<string|string[]> | No | Headers to be sent with the request | +| `queries` | *oas:ExecuteLogicWithoutQueries | Yes | Queries to be sent with the request | + +**Returns:** `oas:ExecuteLogicWithoutProductContextResponse|error` + +**Sample code:** + +```ballerina +oas:ExecuteLogicWithoutProductContextResponse result = check pricefxClient->executeLogicWithout(uniqueName, payload, queries); +``` + +
+
+ +
+executeNamedProductLogic + +
+ +Execute a Logic + payload - + +**Parameters:** + +| Name | Type | Required | Description | +|------|------|----------|--------------| +| `sku` | string | Yes | The `sku` or `typedId` of the product you want to execute the assigned logic for | +| `uniqueName` | string | Yes | The name (`uniqueName`) of the logic you want to execute | +| `payload` | record {record {} data?;} | Yes | | +| `headers` | map<string|string[]> | No | Headers to be sent with the request | + +**Returns:** `oas:ExecuteLogicResponse|error` + +**Sample code:** + +```ballerina +oas:ExecuteLogicResponse result = check pricefxClient->executeNamedProductLogic(sku, uniqueName, payload); +``` + +
+
+ +
+executeProductLogic + +
+ +Execute an Assigned Logic + payload - + +**Parameters:** + +| Name | Type | Required | Description | +|------|------|----------|--------------| +| `sku` | string | Yes | The `sku` or `typedId` of the product you want to execute the logic for | +| `payload` | record {record {} data?;} | Yes | | +| `headers` | map<string|string[]> | No | Headers to be sent with the request | + +**Returns:** `oas:ExecuteAssignedLogicResponse|error` + +**Sample code:** + +```ballerina +oas:ExecuteAssignedLogicResponse result = check pricefxClient->executeProductLogic(sku, payload); +``` + +
+
+ +
+generateParameters + +
+ +Generate Parameters + +**Parameters:** + +| Name | Type | Required | Description | +|------|------|----------|--------------| +| `payload` | oas:GenerateParametersRequest | Yes | | +| `headers` | map<string|string[]> | No | Headers to be sent with the request | + +**Returns:** `oas:GenerateParametersResponse|error` + +**Sample code:** + +```ballerina +oas:GenerateParametersResponse result = check pricefxClient->generateParameters(payload); +``` + +
+
+ +
+getDefaultPricingLogicName + +
+ +Get a Default Pricing Logic Name + +**Parameters:** + +| Name | Type | Required | Description | +|------|------|----------|--------------| +| `headers` | map<string|string[]> | No | Headers to be sent with the request | + +**Returns:** `oas:GetDefaultPricingLogicNameResponse|error` + +**Sample code:** + +```ballerina +oas:GetDefaultPricingLogicNameResponse result = check pricefxClient->getDefaultPricingLogicName(); +``` + +
+
+ +
+getLogic + +
+ +Get a Logic + +**Parameters:** + +| Name | Type | Required | Description | +|------|------|----------|--------------| +| `id` | string | Yes | The ID of the logic you want to retrieve details for | +| `headers` | map<string|string[]> | No | Headers to be sent with the request | + +**Returns:** `oas:GetLogicResponse|error` + +**Sample code:** + +```ballerina +oas:GetLogicResponse result = check pricefxClient->getLogic(id); +``` + +
+
+ +
+listElements + +
+ +List Elements + +**Parameters:** + +| Name | Type | Required | Description | +|------|------|----------|--------------| +| `uniqueName` | string | Yes | The name (`uniqueName`) of the logic you want to list elements for | +| `headers` | map<string|string[]> | No | Headers to be sent with the request | + +**Returns:** `oas:ListElementsResponse|error` + +**Sample code:** + +```ballerina +oas:ListElementsResponse result = check pricefxClient->listElements(uniqueName); +``` + +
+
+ +
+listFunctions + +
+ +List Functions + +**Parameters:** + +| Name | Type | Required | Description | +|------|------|----------|--------------| +| `headers` | map<string|string[]> | No | Headers to be sent with the request | + +**Returns:** `oas:ListFunctionsResponse|error` + +**Sample code:** + +```ballerina +oas:ListFunctionsResponse result = check pricefxClient->listFunctions(); +``` + +
+
+ +
+listLibraries + +
+ +List Libraries + +**Parameters:** + +| Name | Type | Required | Description | +|------|------|----------|--------------| +| `headers` | map<string|string[]> | No | Headers to be sent with the request | + +**Returns:** `oas:ListLibrariesResponse|error` + +**Sample code:** + +```ballerina +oas:ListLibrariesResponse result = check pricefxClient->listLibraries(); +``` + +
+
+ +
+listLogicParametersInput + +
+ +List Logic Parameters (Input Fields) + +**Parameters:** + +| Name | Type | Required | Description | +|------|------|----------|--------------| +| `uniqueName` | string | Yes | The name (`uniqueName`) of the logic you want to list parameters for. If omitted, the logic as specified in the product’s master is used, otherwise the passed logic is used | +| `headers` | map<string|string[]> | No | Headers to be sent with the request | + +**Returns:** `oas:ListLogicInputFieldsResponse|error` + +**Sample code:** + +```ballerina +oas:ListLogicInputFieldsResponse result = check pricefxClient->listLogicParametersInput(uniqueName); +``` + +
+
+ +
+listLogics + +
+ +List Logics + +**Parameters:** + +| Name | Type | Required | Description | +|------|------|----------|--------------| +| `headers` | map<string|string[]> | No | Headers to be sent with the request | + +**Returns:** `oas:ListLogicsResponse|error` + +**Sample code:** + +```ballerina +oas:ListLogicsResponse result = check pricefxClient->listLogics(); +``` + +
+
+ +
+setDefaultPricingLogic + +
+ +Set a Default Pricing Logic + +**Parameters:** + +| Name | Type | Required | Description | +|------|------|----------|--------------| +| `uniqueName` | string | Yes | The name (`uniqueName`) of the logic that will be set as default. Leave blank to clear the default pricing logic | +| `headers` | map<string|string[]> | No | Headers to be sent with the request | + +**Returns:** `oas:SetDefaultPricingLogicResponse|error` + +**Sample code:** + +```ballerina +oas:SetDefaultPricingLogicResponse result = check pricefxClient->setDefaultPricingLogic(uniqueName); +``` + +
+
+ +
+syntaxCheck + +
+ +Syntax Check + +**Parameters:** + +| Name | Type | Required | Description | +|------|------|----------|--------------| +| `payload` | oas:SyntaxCheckRequest | Yes | | +| `headers` | map<string|string[]> | No | Headers to be sent with the request | + +**Returns:** `error?` + +**Sample code:** + +```ballerina +error? result = check pricefxClient->syntaxCheck(payload); +``` + +
+
+ +
+testLogic + +
+ +Test a Logic + +**Parameters:** + +| Name | Type | Required | Description | +|------|------|----------|--------------| +| `payload` | oas:TestLogicRequest | Yes | | +| `headers` | map<string|string[]> | No | Headers to be sent with the request | + +**Returns:** `oas:TestLogicEnvelope|error` + +**Sample code:** + +```ballerina +oas:TestLogicEnvelope result = check pricefxClient->testLogic(payload); +``` + +
+
+ +
+updateLogic + +
+ +Update a Logic + +**Parameters:** + +| Name | Type | Required | Description | +|------|------|----------|--------------| +| `id` | string | Yes | The ID of the logic. The `id` is the `typedId` without the **F** suffix. For example, the `id` attribute of the item with `typedId` = **2147484837.F** is **2147484837** | +| `payload` | record {record {decimal version?; string typedId?; string uniqueName?; string label?; string validAfter?; string status?; anydata simulationSet?; anydata userGroupEdit?; anydata userGroupViewDetails?; anydata formulaNature?; string lastUpdateByName?; record {decimal version?; string typedId?; string elementName?; string elementLabel?; anydata elementDescription?; string[] elementGroups?; anydata conditionElementName?; boolean hideWarnings?; boolean excludeFromExport?; boolean protectedExpression?; decimal elementTimeout?; decimal displayOptions?; string? formatType?; anydata elementSuffix?; boolean allowOverride?; boolean summarize?; boolean hideOnNull?; anydata userGroup?; anydata cssProperties?; anydata resultGroup?; string combinationType?; boolean storeInAttributeExtension?; anydata criticalAlert?; anydata redAlert?; anydata yellowAlert?; anydata labelTranslations?; string createDate?; decimal createdBy?; string lastUpdateDate?; decimal lastUpdateBy?; string formulaExpression?;}[] elements?; record {}[] inputDescriptors?; string formulaType?; anydata createdByName?; string createDate?; decimal createdBy?; string lastUpdateDate?; decimal lastUpdateBy?;} data?;} | Yes | | +| `headers` | map<string|string[]> | No | Headers to be sent with the request | + +**Returns:** `oas:logicResponse|error` + +**Sample code:** + +```ballerina +oas:logicResponse result = check pricefxClient->updateLogic(id, payload); +``` + +
+
+ +
+updateLogicNo + +
+ +Update a Logic (No syntax check) + +**Parameters:** + +| Name | Type | Required | Description | +|------|------|----------|--------------| +| `id` | string | Yes | The ID of the logic. The `id` is the `typedId` without the **F** suffix. For example, the `id` attribute of the item with `typedId` = **2147484837.F** is **2147484837** | +| `payload` | record {record {decimal version?; string typedId?; string uniqueName?; string label?; string validAfter?; string status?; anydata simulationSet?; anydata userGroupEdit?; anydata userGroupViewDetails?; anydata formulaNature?; string lastUpdateByName?; record {decimal version?; string typedId?; string elementName?; string elementLabel?; anydata elementDescription?; string[] elementGroups?; anydata conditionElementName?; boolean hideWarnings?; boolean excludeFromExport?; boolean protectedExpression?; decimal elementTimeout?; decimal displayOptions?; string? formatType?; anydata elementSuffix?; boolean allowOverride?; boolean summarize?; boolean hideOnNull?; anydata userGroup?; anydata cssProperties?; anydata resultGroup?; string combinationType?; boolean storeInAttributeExtension?; anydata criticalAlert?; anydata redAlert?; anydata yellowAlert?; anydata labelTranslations?; string createDate?; decimal createdBy?; string lastUpdateDate?; decimal lastUpdateBy?; string formulaExpression?;}[] elements?; record {}[] inputDescriptors?; string formulaType?; anydata createdByName?; string createDate?; decimal createdBy?; string lastUpdateDate?; decimal lastUpdateBy?;} data?;} | Yes | | +| `headers` | map<string|string[]> | No | Headers to be sent with the request | + +**Returns:** `oas:logicResponse|error` + +**Sample code:** + +```ballerina +oas:logicResponse result = check pricefxClient->updateLogicNo(id, payload); +``` + +
+
+ +
+updateLogicPartial + +
+ +Update a Logic (Partial) + +**Parameters:** + +| Name | Type | Required | Description | +|------|------|----------|--------------| +| `id` | string | Yes | The ID of the logic. The `id` is the `typedId` without the **F** suffix. For example, the `id` attribute of the item with `typedId` = **2147484837.F** is **2147484837** | +| `payload` | record {record {decimal version?; string typedId?; string uniqueName?; string label?; string validAfter?; string status?; anydata simulationSet?; anydata userGroupEdit?; anydata userGroupViewDetails?; anydata formulaNature?; string lastUpdateByName?; record {decimal version?; string typedId?; string elementName?; string elementLabel?; anydata elementDescription?; string[] elementGroups?; anydata conditionElementName?; boolean hideWarnings?; boolean excludeFromExport?; boolean protectedExpression?; decimal elementTimeout?; decimal displayOptions?; string? formatType?; anydata elementSuffix?; boolean allowOverride?; boolean summarize?; boolean hideOnNull?; anydata userGroup?; anydata cssProperties?; anydata resultGroup?; string combinationType?; boolean storeInAttributeExtension?; anydata criticalAlert?; anydata redAlert?; anydata yellowAlert?; anydata labelTranslations?; string createDate?; decimal createdBy?; string lastUpdateDate?; decimal lastUpdateBy?; string formulaExpression?;}[] elements?; record {}[] inputDescriptors?; string formulaType?; anydata createdByName?; string createDate?; decimal createdBy?; string lastUpdateDate?; decimal lastUpdateBy?;} data?;} | Yes | | +| `headers` | map<string|string[]> | No | Headers to be sent with the request | + +**Returns:** `oas:logicResponse|error` + +**Sample code:** + +```ballerina +oas:logicResponse result = check pricefxClient->updateLogicPartial(id, payload); +``` + +
+
+ +#### Calculation Grids + +
+acceptCalculationGridItem + +
+ +Submit a Calculation Grid Item + +**Parameters:** + +| Name | Type | Required | Description | +|------|------|----------|--------------| +| `id` | string | Yes | The `id` of the Calculation Grid you want to submit items for. You can retrieve the `id` of the CG, for example, by calling the `/fetch/CG` endpoint | +| `payload` | oas:SubmitCalculationGridItemRequest | Yes | | +| `headers` | map<string|string[]> | No | Headers to be sent with the request | + +**Returns:** `oas:SubmitCalculationGridItemResponse|error` + +**Sample code:** + +```ballerina +oas:SubmitCalculationGridItemResponse result = check pricefxClient->acceptCalculationGridItem(id, payload); +``` + +
+
+ +
+addCalculationGrid + +
+ +Add a Calculation Grid + +**Parameters:** + +| Name | Type | Required | Description | +|------|------|----------|--------------| +| `payload` | oas:AddCalculationGridRequest | Yes | | +| `headers` | map<string|string[]> | No | Headers to be sent with the request | + +**Returns:** `oas:AddCalculationGridResponse|error` + +**Sample code:** + +```ballerina +oas:AddCalculationGridResponse result = check pricefxClient->addCalculationGrid(payload); +``` + +
+
+ +
+addCalculationGridItem + +
+ +Add a Calculation Grid Item + +**Parameters:** + +| Name | Type | Required | Description | +|------|------|----------|--------------| +| `keyNumber` | "1"|"2"|"3"|"4"|"5"|"6" | Yes | Use CGI1..CGI6 in the path, where numbers from 1 to 6 refer to Calculation Grid Item keys | +| `payload` | oas:AddCalculationGridItemRequest | Yes | | +| `headers` | map<string|string[]> | No | Headers to be sent with the request | + +**Returns:** `oas:AddCalculationGridItemResponse|error` + +**Sample code:** + +```ballerina +oas:AddCalculationGridItemResponse result = check pricefxClient->addCalculationGridItem(keyNumber, payload); +``` + +
+
+ +
+calculateCalculationGrid + +
+ +Calculate a Calculation Grid + +**Parameters:** + +| Name | Type | Required | Description | +|------|------|----------|--------------| +| `id` | string | Yes | `id` of the Calculation Grid you want to calculate | +| `payload` | oas:CalculateCalculationGridRequest | Yes | | +| `headers` | map<string|string[]> | No | Headers to be sent with the request | + +**Returns:** `oas:CalculateCalculationGridResponse|error` + +**Sample code:** + +```ballerina +oas:CalculateCalculationGridResponse result = check pricefxClient->calculateCalculationGrid(id, payload); +``` + +
+
+ +
+deleteCalculationGrid + +
+ +Delete a Calculation Grid + +**Parameters:** + +| Name | Type | Required | Description | +|------|------|----------|--------------| +| `payload` | oas:DeleteCalculationGridRequest | Yes | | +| `headers` | map<string|string[]> | No | Headers to be sent with the request | + +**Returns:** `oas:DeleteCalculationGridResponse|error` + +**Sample code:** + +```ballerina +oas:DeleteCalculationGridResponse result = check pricefxClient->deleteCalculationGrid(payload); +``` + +
+
+ +
+deleteCalculationGridItem + +
+ +Delete a Calculation Grid Item + +**Parameters:** + +| Name | Type | Required | Description | +|------|------|----------|--------------| +| `keyNumber` | "1"|"2"|"3"|"4"|"5"|"6" | Yes | Use CGI1..CGI6 in the path, where numbers from 1 to 6 refer to Calculation Grid Item keys | +| `payload` | oas:DeleteCalculationGridItemRequest | Yes | | +| `headers` | map<string|string[]> | No | Headers to be sent with the request | + +**Returns:** `oas:DeleteCalculationGridItemResponse|error` + +**Sample code:** + +```ballerina +oas:DeleteCalculationGridItemResponse result = check pricefxClient->deleteCalculationGridItem(keyNumber, payload); +``` + +
+
+ +
+getCalculationGrid + +
+ +Get a Calculation Grid + +**Parameters:** + +| Name | Type | Required | Description | +|------|------|----------|--------------| +| `id` | string | Yes | ID of the Calculation Grid you want to retrieve | +| `payload` | record {} | Yes | | +| `headers` | map<string|string[]> | No | Headers to be sent with the request | + +**Returns:** `oas:GetCalculationGridResponse|error` + +**Sample code:** + +```ballerina +oas:GetCalculationGridResponse result = check pricefxClient->getCalculationGrid(id, payload); +``` + +
+
+ +
+getCalculationGridItem + +
+ +Get a Calculation Grid Item + +**Parameters:** + +| Name | Type | Required | Description | +|------|------|----------|--------------| +| `keyNumber` | "1"|"2"|"3"|"4"|"5"|"6" | Yes | Use CGI1..CGI6 in the path, where numbers from 1 to 6 refer to Calculation Grid Item keys | +| `id` | string | Yes | `id` of the Calculation Grid Item you want to fetch | +| `payload` | record {} | Yes | | +| `headers` | map<string|string[]> | No | Headers to be sent with the request | + +**Returns:** `oas:GetCalculationGridItemResponse|error` + +**Sample code:** + +```ballerina +oas:GetCalculationGridItemResponse result = check pricefxClient->getCalculationGridItem(keyNumber, id, payload); +``` + +
+
+ +
+listCalculationGridItems + +
+ +List Calculation Grid Items + +**Parameters:** + +| Name | Type | Required | Description | +|------|------|----------|--------------| +| `keyNumber` | "1"|"2"|"3"|"4"|"5"|"6" | Yes | Use CGI1..CGI6 in the path, where numbers from 1 to 6 refer to Calculation Grid Item keys | +| `payload` | oas:ListCalculationGridItemsRequest | Yes | | +| `headers` | map<string|string[]> | No | Headers to be sent with the request | + +**Returns:** `oas:ListCalculationGridItemsResponse|error` + +**Sample code:** + +```ballerina +oas:ListCalculationGridItemsResponse result = check pricefxClient->listCalculationGridItems(keyNumber, payload); +``` + +
+
+ +
+listCalculationGrids + +
+ +List Calculation Grids + +**Parameters:** + +| Name | Type | Required | Description | +|------|------|----------|--------------| +| `payload` | record {} | Yes | | +| `headers` | map<string|string[]> | No | Headers to be sent with the request | + +**Returns:** `oas:ListCalculationGridsResponse|error` + +**Sample code:** + +```ballerina +oas:ListCalculationGridsResponse result = check pricefxClient->listCalculationGrids(payload); +``` + +
+
+ +
+rejectCalculationGridItem + +
+ +Deny a Calculation Grid Item + +**Parameters:** + +| Name | Type | Required | Description | +|------|------|----------|--------------| +| `id` | string | Yes | The `id` of the Calculation Grid you want to deny items for. You can retrieve the `id` of the CG, for example, by calling the `/fetch/CG` endpoint | +| `payload` | oas:DenyCalculationGridItemRequest | Yes | | +| `headers` | map<string|string[]> | No | Headers to be sent with the request | + +**Returns:** `oas:DenyCalculationGridItemResponse|error` + +**Sample code:** + +```ballerina +oas:DenyCalculationGridItemResponse result = check pricefxClient->rejectCalculationGridItem(id, payload); +``` + +
+
+ +
+updateCalculationGrid + +
+ +Update a Calculation Grid + +**Parameters:** + +| Name | Type | Required | Description | +|------|------|----------|--------------| +| `payload` | oas:UpdateCalculationGridRequest | Yes | | +| `headers` | map<string|string[]> | No | Headers to be sent with the request | + +**Returns:** `oas:UpdateCalculationGridResponse|error` + +**Sample code:** + +```ballerina +oas:UpdateCalculationGridResponse result = check pricefxClient->updateCalculationGrid(payload); +``` + +
+
+ +
+updateCalculationGridItem + +
+ +Update a Calculation Grid Item + +**Parameters:** + +| Name | Type | Required | Description | +|------|------|----------|--------------| +| `id` | string | Yes | `id` of the Calculation Grid Item you want to update | +| `payload` | oas:UpdateCalculationGridItemRequest | Yes | | +| `headers` | map<string|string[]> | No | Headers to be sent with the request | + +**Returns:** `oas:UpdateCalculationGridItemResponse|error` + +**Sample code:** + +```ballerina +oas:UpdateCalculationGridItemResponse result = check pricefxClient->updateCalculationGridItem(id, payload); +``` + +
+
+ +#### Action Types + +
+addActionType + +
+ +Add an Action Type + +**Parameters:** + +| Name | Type | Required | Description | +|------|------|----------|--------------| +| `payload` | oas:AddActionTypeRequest | Yes | | +| `headers` | map<string|string[]> | No | Headers to be sent with the request | + +**Returns:** `oas:AddActionTypeResponse|error` + +**Sample code:** + +```ballerina +oas:AddActionTypeResponse result = check pricefxClient->addActionType(payload); +``` + +
+
+ +
+deleteActionItemType + +
+ +Delete an Action Item Type + +**Parameters:** + +| Name | Type | Required | Description | +|------|------|----------|--------------| +| `payload` | record {record {string typedId;} data;} | Yes | The general delete request. Deletes the object specified by `typedId` in the request body | +| `headers` | map<string|string[]> | No | Headers to be sent with the request | + +**Returns:** `oas:DeleteActionItemTypeResponse|error` + +**Sample code:** + +```ballerina +oas:DeleteActionItemTypeResponse result = check pricefxClient->deleteActionItemType(payload); +``` + +
+
+ +
+listActionTypes + +
+ +List Action Types + +**Parameters:** + +| Name | Type | Required | Description | +|------|------|----------|--------------| +| `payload` | record {int endRow?; record {}? oldValues?; string operationType?; int startRow?; string textMatchStyle?; record {string _constructor?; string operator?; record {string fieldName?; string operator?; string value?;}[] criteria?;} data?;} | Yes | A general fetch request. A filter can be applied | +| `headers` | map<string|string[]> | No | Headers to be sent with the request | + +**Returns:** `oas:ListActionTypesResponse|error` + +**Sample code:** + +```ballerina +oas:ListActionTypesResponse result = check pricefxClient->listActionTypes(payload); +``` + +
+
+ +
+updateActionType + +
+ +Update an Action Type + +**Parameters:** + +| Name | Type | Required | Description | +|------|------|----------|--------------| +| `payload` | oas:UpdateAITBody | Yes | | +| `headers` | map<string|string[]> | No | Headers to be sent with the request | + +**Returns:** `oas:UpdateActionTypeResponse|error` + +**Sample code:** + +```ballerina +oas:UpdateActionTypeResponse result = check pricefxClient->updateActionType(payload); +``` + +
+
+ +#### Actions + +
+createActionItem + +
+ +Create an Action Item + payload - + +**Parameters:** + +| Name | Type | Required | Description | +|------|------|----------|--------------| +| `payload` | oas:AddActionItemRequest | Yes | | +| `headers` | map<string|string[]> | No | Headers to be sent with the request | + +**Returns:** `oas:AddActionItemResponse|error` + +**Sample code:** + +```ballerina +oas:AddActionItemResponse result = check pricefxClient->createActionItem(payload); +``` + +
+
+ +
+deleteActionItem + +
+ +Delete an Action Item + +**Parameters:** + +| Name | Type | Required | Description | +|------|------|----------|--------------| +| `payload` | oas:DeleteActionItemRequest | Yes | | +| `headers` | map<string|string[]> | No | Headers to be sent with the request | + +**Returns:** `oas:DeleteActionItemResponse|error` + +**Sample code:** + +```ballerina +oas:DeleteActionItemResponse result = check pricefxClient->deleteActionItem(payload); +``` + +
+
+ +
+executeLogic + +
+ +Execute a Logic + +**Parameters:** + +| Name | Type | Required | Description | +|------|------|----------|--------------| +| `typeCode` | string | Yes | The `typeCode` of the Action Item you want to execute the calculation for | +| `payload` | record {} | Yes | | +| `headers` | map<string|string[]> | No | Headers to be sent with the request | + +**Returns:** `oas:ExecuteActionItemLogicResponse|error` + +**Sample code:** + +```ballerina +oas:ExecuteActionItemLogicResponse result = check pricefxClient->executeLogic(typeCode, payload); +``` + +
+
+ +
+listActionItems + +
+ +List Action Items + +**Parameters:** + +| Name | Type | Required | Description | +|------|------|----------|--------------| +| `payload` | oas:FetchAIBody | Yes | | +| `headers` | map<string|string[]> | No | Headers to be sent with the request | + +**Returns:** `oas:ListActionItemsResponse|error` + +**Sample code:** + +```ballerina +oas:ListActionItemsResponse result = check pricefxClient->listActionItems(payload); +``` + +
+
+ +
+updateActionItem + +
+ +Update an Action Item + +**Parameters:** + +| Name | Type | Required | Description | +|------|------|----------|--------------| +| `payload` | oas:UpdateActionItemRequest | Yes | | +| `headers` | map<string|string[]> | No | Headers to be sent with the request | + +**Returns:** `oas:UpdateActionItemResponse|error` + +**Sample code:** + +```ballerina +oas:UpdateActionItemResponse result = check pricefxClient->updateActionItem(payload); +``` + +
+
+ +#### Jobs & Tasks + +
+cancelJob + +
+ +Cancel a Job + +**Parameters:** + +| Name | Type | Required | Description | +|------|------|----------|--------------| +| `id` | string | Yes | `id` if the job you want to cancel | +| `payload` | record {} | Yes | | +| `headers` | map<string|string[]> | No | Headers to be sent with the request | + +**Returns:** `oas:generalResponse|error` + +**Sample code:** + +```ballerina +oas:generalResponse result = check pricefxClient->cancelJob(id, payload); +``` + +
+
+ +
+listJobs + +
+ +List Jobs + +**Parameters:** + +| Name | Type | Required | Description | +|------|------|----------|--------------| +| `payload` | record {int endRow?; record {}? oldValues?; string operationType?; int startRow?; string textMatchStyle?; record {string _constructor?; string operator?; record {string fieldName?; string operator?; string value?;}[] criteria?;} data?;} | Yes | A general fetch request. A filter can be applied | +| `headers` | map<string|string[]> | No | Headers to be sent with the request | + +**Returns:** `oas:ListJSTResponse|error` + +**Sample code:** + +```ballerina +oas:ListJSTResponse result = check pricefxClient->listJobs(payload); +``` + +
+
+ +#### Workflow + +
+addApproverStep + +
+ +Add an Approver Step + +**Parameters:** + +| Name | Type | Required | Description | +|------|------|----------|--------------| +| `currentStepId` | string | Yes | The ID of the workflow step. It can be retrieved using the `/workflowsmanager.fetch/active` (**List Pending Approvals**) endpoint | +| `payload` | oas:AddApproverStepRequest | Yes | | +| `headers` | map<string|string[]> | No | Headers to be sent with the request | + +**Returns:** `oas:AddApproverStepResponse|error` + +**Sample code:** + +```ballerina +oas:AddApproverStepResponse result = check pricefxClient->addApproverStep(currentStepId, payload); +``` + +
+
+ +
+addWatcherStep + +
+ +Add a Watcher Step + +**Parameters:** + +| Name | Type | Required | Description | +|------|------|----------|--------------| +| `currentStepId` | string | Yes | The ID of the workflow step. It can be retrieved using the `/workflowsmanager.fetch/active` (**List Pending Approvals**) endpoint | +| `payload` | oas:AddWatcherStepRequest | Yes | | +| `headers` | map<string|string[]> | No | Headers to be sent with the request | + +**Returns:** `oas:AddWatcherStepResponse|error` + +**Sample code:** + +```ballerina +oas:AddWatcherStepResponse result = check pricefxClient->addWatcherStep(currentStepId, payload); +``` + +
+
+ +
+approveDocument + +
+ +Approve a Document + +**Parameters:** + +| Name | Type | Required | Description | +|------|------|----------|--------------| +| `currentStepId` | string | Yes | The ID of the workflow step. It can be retrieved using the `/workflowsmanager.fetch/active` (**List Pending Approvals**) endpoint | +| `payload` | oas:ApproveDocumentRequest | Yes | | +| `headers` | map<string|string[]> | No | Headers to be sent with the request | + +**Returns:** `oas:ApproveDocumentResponse|error` + +**Sample code:** + +```ballerina +oas:ApproveDocumentResponse result = check pricefxClient->approveDocument(currentStepId, payload); +``` + +
+
+ +
+denyDocument + +
+ +Deny a Document + +**Parameters:** + +| Name | Type | Required | Description | +|------|------|----------|--------------| +| `currentStepId` | string | Yes | The ID of the workflow step. It can be retrieved using the `/workflowsmanager.fetch/active` (**List Pending Approvals**) endpoint | +| `payload` | oas:DenyDocumentRequest | Yes | | +| `headers` | map<string|string[]> | No | Headers to be sent with the request | + +**Returns:** `oas:DenyDocumentResponse|error` + +**Sample code:** + +```ballerina +oas:DenyDocumentResponse result = check pricefxClient->denyDocument(currentStepId, payload); +``` + +
+
+ +
+fetchPendingReviews + +
+ +Fetch Pending Reviews + +**Parameters:** + +| Name | Type | Required | Description | +|------|------|----------|--------------| +| `headers` | map<string|string[]> | No | Headers to be sent with the request | + +**Returns:** `oas:FetchPendingReviewsEnvelope|error` + +**Sample code:** + +```ballerina +oas:FetchPendingReviewsEnvelope result = check pricefxClient->fetchPendingReviews(); +``` + +
+
+ +
+getWorkflowDocument + +
+ +Get a Workflow Document + +**Parameters:** + +| Name | Type | Required | Description | +|------|------|----------|--------------| +| `typedId` | string | Yes | The `typedId` of the approvable object you want to retrieve workflow details for | +| `headers` | map<string|string[]> | No | Headers to be sent with the request | + +**Returns:** `oas:GetWorkflowDocumentResponse|error` + +**Sample code:** + +```ballerina +oas:GetWorkflowDocumentResponse result = check pricefxClient->getWorkflowDocument(typedId); +``` + +
+
+ +
+listPendingApprovals + +
+ +List Pending Approvals + +**Parameters:** + +| Name | Type | Required | Description | +|------|------|----------|--------------| +| `headers` | map<string|string[]> | No | Headers to be sent with the request | + +**Returns:** `oas:ListPendingApprovalsResponse|error` + +**Sample code:** + +```ballerina +oas:ListPendingApprovalsResponse result = check pricefxClient->listPendingApprovals(); +``` + +
+
+ +
+listUserSPendingApprovals + +
+ +List User's Pending Approvals + +**Parameters:** + +| Name | Type | Required | Description | +|------|------|----------|--------------| +| `loginName` | string | Yes | The login name of the user you want to retrieve Pending Workflows for | +| `headers` | map<string|string[]> | No | Headers to be sent with the request | + +**Returns:** `oas:ListUserPendingApprovalsResponse|error` + +**Sample code:** + +```ballerina +oas:ListUserPendingApprovalsResponse result = check pricefxClient->listUserSPendingApprovals(loginName); +``` + +
+
+ +
+listWorkflows + +
+ +List Workflows + +**Parameters:** + +| Name | Type | Required | Description | +|------|------|----------|--------------| +| `payload` | oas:ListWorkflowsRequest | Yes | | +| `headers` | map<string|string[]> | No | Headers to be sent with the request | + +**Returns:** `oas:ListWorkflowsResponse|error` + +**Sample code:** + +```ballerina +oas:ListWorkflowsResponse result = check pricefxClient->listWorkflows(payload); +``` + +
+
+ +
+setReviewAsDone + +
+ +Set a Review as Done + +**Parameters:** + +| Name | Type | Required | Description | +|------|------|----------|--------------| +| `typedId` | string | Yes | typedId of the object to mark as reviewed | +| `payload` | record {} | Yes | | +| `headers` | map<string|string[]> | No | Headers to be sent with the request | + +**Returns:** `http:Response|error` + +**Sample code:** + +```ballerina +http:Response result = check pricefxClient->setReviewAsDone(typedId, payload); +``` + +
+
+ +
+updateReviewStatus + +
+ +Update a Review Status + +**Parameters:** + +| Name | Type | Required | Description | +|------|------|----------|--------------| +| `typedId` | string | Yes | typedId of the object to update | +| `payload` | record {} | Yes | | +| `headers` | map<string|string[]> | No | Headers to be sent with the request | + +**Returns:** `oas:generalResponse|error` + +**Sample code:** + +```ballerina +oas:generalResponse result = check pricefxClient->updateReviewStatus(typedId, payload); +``` + +
+
+ +
+withdrawDocument + +
+ +Withdraw a Document + +**Parameters:** + +| Name | Type | Required | Description | +|------|------|----------|--------------| +| `currentStepId` | string | Yes | The ID of the workflow step. It can be retrieved using the `/workflowsmanager.fetch/active` (**List Pending Approvals**) endpoint | +| `headers` | map<string|string[]> | No | Headers to be sent with the request | + +**Returns:** `oas:WithdrawDocumentResponse|error` + +**Sample code:** + +```ballerina +oas:WithdrawDocumentResponse result = check pricefxClient->withdrawDocument(currentStepId); +``` + +
+
+ +#### Workflow Delegation + +
+createWorkflowDelegation + +
+ +Create a Workflow Delegation + +**Parameters:** + +| Name | Type | Required | Description | +|------|------|----------|--------------| +| `payload` | oas:CreateWorkflowDelegationRequest | Yes | | +| `headers` | map<string|string[]> | No | Headers to be sent with the request | + +**Returns:** `oas:CreateWorkflowDelegationResponse|error` + +**Sample code:** + +```ballerina +oas:CreateWorkflowDelegationResponse result = check pricefxClient->createWorkflowDelegation(payload); +``` + +
+
+ +
+deactivateWorkflowDelegation + +
+ +Deactivate a Workflow Delegation + +**Parameters:** + +| Name | Type | Required | Description | +|------|------|----------|--------------| +| `payload` | oas:DeactivateWorkflowDelegationRequest | Yes | | +| `headers` | map<string|string[]> | No | Headers to be sent with the request | + +**Returns:** `oas:DeactivateWorkflowDelegationResponse|error` + +**Sample code:** + +```ballerina +oas:DeactivateWorkflowDelegationResponse result = check pricefxClient->deactivateWorkflowDelegation(payload); +``` + +
+
+ +
+deleteWorkflowDelegation + +
+ +Delete a Workflow Delegation + +**Parameters:** + +| Name | Type | Required | Description | +|------|------|----------|--------------| +| `payload` | oas:DeleteWorkflowDelegationRequest | Yes | | +| `headers` | map<string|string[]> | No | Headers to be sent with the request | + +**Returns:** `oas:DeleteWorkflowDelegationResponse|error` + +**Sample code:** + +```ballerina +oas:DeleteWorkflowDelegationResponse result = check pricefxClient->deleteWorkflowDelegation(payload); +``` + +
+
+ +
+listDelegatedWorkflows + +
+ +List Delegated Workflows + +**Parameters:** + +| Name | Type | Required | Description | +|------|------|----------|--------------| +| `payload` | oas:ListDelegatedWorkflowsRequest | Yes | | +| `headers` | map<string|string[]> | No | Headers to be sent with the request | + +**Returns:** `oas:ListDelegatedWorkflowsResponse|error` + +**Sample code:** + +```ballerina +oas:ListDelegatedWorkflowsResponse result = check pricefxClient->listDelegatedWorkflows(payload); +``` + +
+
+ +
+updateWorkflowDelegation + +
+ +Update a Workflow Delegation + +**Parameters:** + +| Name | Type | Required | Description | +|------|------|----------|--------------| +| `payload` | oas:UpdateWorkflowDelegationRequest | Yes | | +| `headers` | map<string|string[]> | No | Headers to be sent with the request | + +**Returns:** `oas:UpdateWorkflowDelegationResponse|error` + +**Sample code:** + +```ballerina +oas:UpdateWorkflowDelegationResponse result = check pricefxClient->updateWorkflowDelegation(payload); +``` + +
+
+ +
+validateWorkflowDelegation + +
+ +Validate a Workflow Delegation + +**Parameters:** + +| Name | Type | Required | Description | +|------|------|----------|--------------| +| `payload` | oas:ValidateWorkflowDelegationRequest | Yes | | +| `headers` | map<string|string[]> | No | Headers to be sent with the request | + +**Returns:** `oas:ValidateWorkflowDelegationResponse|error` + +**Sample code:** + +```ballerina +oas:ValidateWorkflowDelegationResponse result = check pricefxClient->validateWorkflowDelegation(payload); +``` + +
+
+ +#### Notifications + +
+deleteNotification + +
+ +Delete a Notification + +**Parameters:** + +| Name | Type | Required | Description | +|------|------|----------|--------------| +| `payload` | oas:NotificationSetreadBody | Yes | | +| `headers` | map<string|string[]> | No | Headers to be sent with the request | + +**Returns:** `oas:DeleteNotificationEnvelope|error` + +**Sample code:** + +```ballerina +oas:DeleteNotificationEnvelope result = check pricefxClient->deleteNotification(payload); +``` + +
+
+ +
+listNotifications + +
+ +List Notifications + +**Parameters:** + +| Name | Type | Required | Description | +|------|------|----------|--------------| +| `payload` | oas:NotificationListBody | Yes | | +| `headers` | map<string|string[]> | No | Headers to be sent with the request | + +**Returns:** `oas:ListNotificationsEnvelope|error` + +**Sample code:** + +```ballerina +oas:ListNotificationsEnvelope result = check pricefxClient->listNotifications(payload); +``` + +
+
+ +
+markAsRead + +
+ +Mark as Read + +**Parameters:** + +| Name | Type | Required | Description | +|------|------|----------|--------------| +| `payload` | record {} | Yes | | +| `headers` | map<string|string[]> | No | Headers to be sent with the request | + +**Returns:** `oas:generalResponse|error` + +**Sample code:** + +```ballerina +oas:generalResponse result = check pricefxClient->markAsRead(payload); +``` + +
+
+ +
+sendValidationMessage + +
+ +Send a Validation Message + +**Parameters:** + +| Name | Type | Required | Description | +|------|------|----------|--------------| +| `payload` | oas:NotificationSendBody | Yes | | +| `headers` | map<string|string[]> | No | Headers to be sent with the request | + +**Returns:** `oas:generalResponse|error` + +**Sample code:** + +```ballerina +oas:generalResponse result = check pricefxClient->sendValidationMessage(payload); +``` + +
+
+ +#### Internationalization + +
+addNewInternationalizationMessage + +
+ +Add a New Internationalization Message + payload - + +**Parameters:** + +| Name | Type | Required | Description | +|------|------|----------|--------------| +| `payload` | oas:I18nmanagerPutBody | Yes | | +| `headers` | map<string|string[]> | No | Headers to be sent with the request | + +**Returns:** `oas:AddInternationalizationMessageEnvelope|error` + +**Sample code:** + +```ballerina +oas:AddInternationalizationMessageEnvelope result = check pricefxClient->addNewInternationalizationMessage(payload); +``` + +
+
+ +
+deleteInternationalizationMessages + +
+ +Delete Internationalization Messages + +**Parameters:** + +| Name | Type | Required | Description | +|------|------|----------|--------------| +| `payload` | oas:I18nmanagerDeleteKeysBody | Yes | | +| `headers` | map<string|string[]> | No | Headers to be sent with the request | + +**Returns:** `http:Response|error` + +**Sample code:** + +```ballerina +http:Response result = check pricefxClient->deleteInternationalizationMessages(payload); +``` + +
+
+ +
+listInternationalizationMessages + +
+ +List Internationalization Messages + +**Parameters:** + +| Name | Type | Required | Description | +|------|------|----------|--------------| +| `payload` | oas:I18nmanagerFetchWithExtraDataBody | Yes | | +| `headers` | map<string|string[]> | No | Headers to be sent with the request | + +**Returns:** `oas:ListInternationalizationMessagesEnvelope|error` + +**Sample code:** + +```ballerina +oas:ListInternationalizationMessagesEnvelope result = check pricefxClient->listInternationalizationMessages(payload); +``` + +
+
+ +#### Clicmanager + +
+addLineItems + +
+ +Add Line Items + +**Parameters:** + +| Name | Type | Required | Description | +|------|------|----------|--------------| +| `typedId` | string | Yes | typed ID of the target CLIC document | +| `payload` | oas:ClicmanagerAdditemstypedIdBody | Yes | | +| `headers` | map<string|string[]> | No | Headers to be sent with the request | + +**Returns:** `record` + +**Sample code:** + +```ballerina +record result = check pricefxClient->addLineItems(typedId, payload); +``` + +
+
+ +
+fetchActivities + +
+ +Fetch Activities + +**Parameters:** + +| Name | Type | Required | Description | +|------|------|----------|--------------| +| `payload` | oas:ActivitylogFetchBody | Yes | | +| `headers` | map<string|string[]> | No | Headers to be sent with the request | + +**Returns:** `record` + +**Sample code:** + +```ballerina +record result = check pricefxClient->fetchActivities(payload); +``` + +
+
+ +
+getClicHeader + +
+ +Get a Quote/Contract/Rebate Agreement/Compensation Plan Header + +**Parameters:** + +| Name | Type | Required | Description | +|------|------|----------|--------------| +| `typedId` | string | Yes | The `typedId` of the Contract, Quote, or Rebate Agreement you want to return details for | +| `headers` | map<string|string[]> | No | Headers to be sent with the request | + +**Returns:** `oas:GetQuoteContractRebateAgreementResponse|error` + +**Sample code:** + +```ballerina +oas:GetQuoteContractRebateAgreementResponse result = check pricefxClient->getClicHeader(typedId); +``` + +
+
+ +
+importClicLineItems + +
+ +Import Line Items (w/o Input Types) + +**Parameters:** + +| Name | Type | Required | Description | +|------|------|----------|--------------| +| `typedId` | string | Yes | | +| `payload` | oas:ClicmanagerImportlineitemstypedIdBody | Yes | | +| `headers` | map<string|string[]> | No | Headers to be sent with the request | + +**Returns:** `oas:ClicOperationEnvelope|error` + +**Sample code:** + +```ballerina +oas:ClicOperationEnvelope result = check pricefxClient->importClicLineItems(typedId, payload); +``` + +
+
+ +
+listClicObjects + +
+ +List CLIC Objects + +**Parameters:** + +| Name | Type | Required | Description | +|------|------|----------|--------------| +| `typedId` | string | Yes | The `typedId` of the Quote/Contract/Rebate Agreement/Compensation Plan you want to retrieve line items for | +| `payload` | oas:GetCLICrequest | Yes | | +| `headers` | map<string|string[]> | No | Headers to be sent with the request | +| `queries` | *oas:ListClicObjectsQueries | Yes | Queries to be sent with the request | + +**Returns:** `oas:GetCLICresponse|error` + +**Sample code:** + +```ballerina +oas:GetCLICresponse result = check pricefxClient->listClicObjects(typedId, payload, queries); +``` + +
+
+ +
+listUniqueClicItems + +
+ +List Unique CLIC Items + +**Parameters:** + +| Name | Type | Required | Description | +|------|------|----------|--------------| +| `typedId` | string | Yes | | +| `payload` | record {} | Yes | | +| `headers` | map<string|string[]> | No | Headers to be sent with the request | + +**Returns:** `oas:ListUniqueCLICItemsResponse|error` + +**Sample code:** + +```ballerina +oas:ListUniqueCLICItemsResponse result = check pricefxClient->listUniqueClicItems(typedId, payload); +``` + +
+
+ +
+removeAllClicLineItems + +
+ +Delete All Line Items + +**Parameters:** + +| Name | Type | Required | Description | +|------|------|----------|--------------| +| `typedId` | string | Yes | `typedId` of the object you want to remove all line items from | +| `payload` | record {} | Yes | | +| `headers` | map<string|string[]> | No | Headers to be sent with the request | + +**Returns:** `oas:ClicOperationEnvelope|error` + +**Sample code:** + +```ballerina +oas:ClicOperationEnvelope result = check pricefxClient->removeAllClicLineItems(typedId, payload); +``` + +
+
+ +
+sendEmail + +
+ +Send an Email + +**Parameters:** + +| Name | Type | Required | Description | +|------|------|----------|--------------| +| `payload` | oas:SendEmailRequest | Yes | | +| `headers` | map<string|string[]> | No | Headers to be sent with the request | + +**Returns:** `oas:generalResponse|error` + +**Sample code:** + +```ballerina +oas:generalResponse result = check pricefxClient->sendEmail(payload); +``` + +
+
+ +
+setClicLostReason + +
+ +Mark an Offer as Lost (with reason) + +**Parameters:** + +| Name | Type | Required | Description | +|------|------|----------|--------------| +| `typedId` | string | Yes | `typedId` of the Quote you want set as lost | +| `payload` | oas:MarkOfferLostWithReasonRequest | Yes | | +| `headers` | map<string|string[]> | No | Headers to be sent with the request | + +**Returns:** `oas:SetClicLostReasonEnvelope|error` + +**Sample code:** + +```ballerina +oas:SetClicLostReasonEnvelope result = check pricefxClient->setClicLostReason(typedId, payload); +``` + +
+
+ +
+submitClic + +
+ +Submit a Quote/Contract/Rebate Agreement + +**Parameters:** + +| Name | Type | Required | Description | +|------|------|----------|--------------| +| `typedId` | string | Yes | The `typedId` of the Contract, Quote, or Rebate Agreement you want to submit | +| `payload` | oas:SubmitQuoteContractRebateAgreementRequest | Yes | | +| `headers` | map<string|string[]> | No | Headers to be sent with the request | + +**Returns:** `oas:SubmitQuoteContractRebateAgreementResponse|error` + +**Sample code:** + +```ballerina +oas:SubmitQuoteContractRebateAgreementResponse result = check pricefxClient->submitClic(typedId, payload); +``` + +
+
+ +
+updateClicLineItems + +
+ +Update CLIC Line Items + +**Parameters:** + +| Name | Type | Required | Description | +|------|------|----------|--------------| +| `typedId` | string | Yes | `typedId` of the CLIC object (e.g., a Quote) you want to update line items for | +| `payload` | oas:UpdateCLICLineItemsRequest | Yes | | +| `headers` | map<string|string[]> | No | Headers to be sent with the request | + +**Returns:** `oas:UpdateClicLineItemsEnvelope|error` + +**Sample code:** + +```ballerina +oas:UpdateClicLineItemsEnvelope result = check pricefxClient->updateClicLineItems(typedId, payload); +``` + +
+
+ +#### Advanced Configuration Options + +
+getAdvancedConfigurationProperty + +
+ +Get Advanced Configuration Property + +**Parameters:** + +| Name | Type | Required | Description | +|------|------|----------|--------------| +| `propertyname` | string | Yes | Name of the configuration property to retrieve | +| `headers` | map<string|string[]> | No | Headers to be sent with the request | + +**Returns:** `oas:AdvancedConfigPropertyEnvelope|error` + +**Sample code:** + +```ballerina +oas:AdvancedConfigPropertyEnvelope result = check pricefxClient->getAdvancedConfigurationProperty(propertyname); +``` + +
+
+ +#### Admin Tools + +
+changeTermsOfUse + +
+ +changeTermsOfUse + +**Parameters:** + +| Name | Type | Required | Description | +|------|------|----------|--------------| +| `payload` | oas:AccountmanagerChangetermsofuseBody | Yes | | +| `headers` | map<string|string[]> | No | | + +**Returns:** `http:Response|error` + +**Sample code:** + +```ballerina +http:Response result = check pricefxClient->changeTermsOfUse(payload); +``` + +
+
+ +
+pingWithout + +
+ +Ping (without authentication) + +**Parameters:** + +| Name | Type | Required | Description | +|------|------|----------|--------------| +| `headers` | map<string|string[]> | No | Headers to be sent with the request | + +**Returns:** `http:Response|error` + +**Sample code:** + +```ballerina +http:Response result = check pricefxClient->pingWithout(); +``` + +
+
+ +#### Configuration + +
+getExternalApplicationProperties + +
+ +Get External Application Properties + +**Parameters:** + +| Name | Type | Required | Description | +|------|------|----------|--------------| +| `headers` | map<string|string[]> | No | Headers to be sent with the request | + +**Returns:** `oas:GetexternalapppropertiesResponse|error` + +**Sample code:** + +```ballerina +oas:GetexternalapppropertiesResponse result = check pricefxClient->getExternalApplicationProperties(); +``` + +
+
+ +#### Visual Configuration + +
+addConfigurationStorage + +
+ +Add a Configuration Storage + +**Parameters:** + +| Name | Type | Required | Description | +|------|------|----------|--------------| +| `payload` | oas:AddJCSBody | Yes | | +| `headers` | map<string|string[]> | No | Headers to be sent with the request | + +**Returns:** `oas:ConfigurationStorageOperationEnvelope|error` + +**Sample code:** + +```ballerina +oas:ConfigurationStorageOperationEnvelope result = check pricefxClient->addConfigurationStorage(payload); +``` + +
+
+ +
+deleteConfigurationStorage + +
+ +Delete a Configuration Storage + +**Parameters:** + +| Name | Type | Required | Description | +|------|------|----------|--------------| +| `payload` | record {} | Yes | | +| `headers` | map<string|string[]> | No | Headers to be sent with the request | + +**Returns:** `oas:ConfigurationStorageOperationEnvelope|error` + +**Sample code:** + +```ballerina +oas:ConfigurationStorageOperationEnvelope result = check pricefxClient->deleteConfigurationStorage(payload); +``` + +
+
+ +
+deployConfigurationStorage + +
+ +Deploy a Configuration Storage + +**Parameters:** + +| Name | Type | Required | Description | +|------|------|----------|--------------| +| `payload` | oas:JcsmanagerDeployBody | Yes | | +| `headers` | map<string|string[]> | No | Headers to be sent with the request | + +**Returns:** `oas:ConfigurationStorageOperationEnvelope|error` + +**Sample code:** + +```ballerina +oas:ConfigurationStorageOperationEnvelope result = check pricefxClient->deployConfigurationStorage(payload); +``` + +
+
+ +
+getConfigurationStorage + +
+ +Get a Configuration Storage + +**Parameters:** + +| Name | Type | Required | Description | +|------|------|----------|--------------| +| `payload` | oas:FetchJCSBody | Yes | | +| `headers` | map<string|string[]> | No | Headers to be sent with the request | + +**Returns:** `oas:GetConfigurationStorageEnvelope|error` + +**Sample code:** + +```ballerina +oas:GetConfigurationStorageEnvelope result = check pricefxClient->getConfigurationStorage(payload); +``` + +
+
+ +
+updateConfigurationStorage + +
+ +Update a Configuration Storage + +**Parameters:** + +| Name | Type | Required | Description | +|------|------|----------|--------------| +| `payload` | oas:UpdateJCSBody | Yes | | +| `headers` | map<string|string[]> | No | Headers to be sent with the request | + +**Returns:** `oas:ConfigurationStorageOperationEnvelope|error` + +**Sample code:** + +```ballerina +oas:ConfigurationStorageOperationEnvelope result = check pricefxClient->updateConfigurationStorage(payload); +``` + +
+
+ +#### Metadata + +
+listAttributeFieldsMetadata + +
+ +List Attribute Fields' Metadata + +**Parameters:** + +| Name | Type | Required | Description | +|------|------|----------|--------------| +| `typeCode` | "ACTT"|"AI"|"AP"|"APIK"|"BD"|"BPT"|"BR"|"C"|"CA"|"CAM"|"CDESC"|"CF"|"CFS"|"CFT"|"CH"|"CL"|"CLLI"|"CLLIAM"|"CLR"|"CLT"|"CN"|"CO"|"COAM"|"COCT"|"COCTAM"|"COHT"|"COHTAM"|"COLI"|"COR"|"CORAM"|"COROLI"|"CORS"|"CORSC"|"COT"|"CS"|"CT"|"CTAM"|"CTLI"|"CTMU"|"CTMUI"|"CTT"|"CTTAM"|"CTTREE"|"CW"|"CX10"|"CX20"|"CX3"|"CX30"|"CX50"|"CX6"|"CX8"|"CXAM"|"DA"|"DB"|"DCR"|"DCRAM"|"DCRI"|"DCRL"|"DCRMC"|"DCRT"|"DE"|"DI"|"DM"|"DMDC"|"DMDL"|"DMDS"|"DMF"|"DMM"|"DMR"|"DMT"|"DP"|"DPR"|"DPT"|"DREF"|"DREG"|"EDL"|"ET"|"EVT"|"F"|"FE"|"FN"|"HEVT"|"HRT"|"HRTAM"|"IDC"|"IE"|"ISH"|"JLTV"|"JLTV2"|"JLTVM"|"JST"|"LAT"|"LT"|"LTT"|"LTV"|"M"|"MC"|"MLTV"|"MLTV2"|"MLTV3"|"MLTV4"|"MLTV5"|"MLTV6"|"MLTVM"|"MN"|"MO"|"MPL"|"MPLAM"|"MPLI"|"MPLIT"|"MPLT"|"MR"|"MRAM"|"MT"|"NT"|"P"|"PAM"|"PBOME"|"PCOMP"|"PCOMPCO"|"PCW"|"PDESC"|"PG"|"PGI"|"PGIM"|"PGT"|"PH"|"PL"|"PLI"|"PLIM"|"PLPGTT"|"PLT"|"PR"|"PRAM"|"PREF"|"PT"|"PWH"|"PX10"|"PX20"|"PX3"|"PX30"|"PX50"|"PX6"|"PX8"|"PXAM"|"PXREF"|"PYR"|"PYRAM"|"Q"|"QAM"|"QLI"|"QMU"|"QMUI"|"QT"|"QTT"|"QTTAM"|"R"|"RAT"|"RATM"|"RBA"|"RBAAM"|"RBALI"|"RBAROLI"|"RBAT"|"RBT"|"RBTAM"|"RR"|"RRAM"|"RRS"|"RRSC"|"RT"|"SAT"|"SC"|"SCN"|"SCNAM"|"SCT"|"SIAM"|"SIM"|"SIMI"|"SL"|"SLAM"|"SX10"|"SX20"|"SX3"|"SX30"|"SX50"|"SX6"|"SX8"|"SXAM"|"TFA"|"TODO"|"U"|"UG"|"US"|"W"|"WD"|"WF"|"WFE"|"XPGI"|"XPLI"|"XSIMI" | Yes | Enter the type code of the entity you want to retrieve information for. See [the list of Type Codes](https://pricefx.atlassian.net/wiki/spaces/KB/pages/99570616/Type+Codes) in the Pricefx Knowledge Base article | +| `headers` | map<string|string[]> | No | Headers to be sent with the request | +| `queries` | *oas:ListAttributeFieldsMetadataQueries | Yes | Queries to be sent with the request | + +**Returns:** `oas:ListAttributeFieldsMetadata|error` + +**Sample code:** + +```ballerina +oas:ListAttributeFieldsMetadata result = check pricefxClient->listAttributeFieldsMetadata(typeCode, queries); +``` + +
+
+ +
+listEntityFields + +
+ +List Entity Fields + +**Parameters:** + +| Name | Type | Required | Description | +|------|------|----------|--------------| +| `typeCode` | "ACTT"|"AI"|"AP"|"APIK"|"BD"|"BPT"|"BR"|"C"|"CA"|"CAM"|"CDESC"|"CF"|"CFS"|"CFT"|"CH"|"CL"|"CLLI"|"CLLIAM"|"CLR"|"CLT"|"CN"|"CO"|"COAM"|"COCT"|"COCTAM"|"COHT"|"COHTAM"|"COLI"|"COR"|"CORAM"|"COROLI"|"CORS"|"CORSC"|"COT"|"CS"|"CT"|"CTAM"|"CTLI"|"CTMU"|"CTMUI"|"CTT"|"CTTAM"|"CTTREE"|"CW"|"CX10"|"CX20"|"CX3"|"CX30"|"CX50"|"CX6"|"CX8"|"CXAM"|"DA"|"DB"|"DCR"|"DCRAM"|"DCRI"|"DCRL"|"DCRMC"|"DCRT"|"DE"|"DI"|"DM"|"DMDC"|"DMDL"|"DMDS"|"DMF"|"DMM"|"DMR"|"DMT"|"DP"|"DPR"|"DPT"|"DREF"|"DREG"|"EDL"|"ET"|"EVT"|"F"|"FE"|"FN"|"HEVT"|"HRT"|"HRTAM"|"IDC"|"IE"|"ISH"|"JLTV"|"JLTV2"|"JLTVM"|"JST"|"LAT"|"LT"|"LTT"|"LTV"|"M"|"MC"|"MLTV"|"MLTV2"|"MLTV3"|"MLTV4"|"MLTV5"|"MLTV6"|"MLTVM"|"MN"|"MO"|"MPL"|"MPLAM"|"MPLI"|"MPLIT"|"MPLT"|"MR"|"MRAM"|"MT"|"NT"|"P"|"PAM"|"PBOME"|"PCOMP"|"PCOMPCO"|"PCW"|"PDESC"|"PG"|"PGI"|"PGIM"|"PGT"|"PH"|"PL"|"PLI"|"PLIM"|"PLPGTT"|"PLT"|"PR"|"PRAM"|"PREF"|"PT"|"PWH"|"PX10"|"PX20"|"PX3"|"PX30"|"PX50"|"PX6"|"PX8"|"PXAM"|"PXREF"|"PYR"|"PYRAM"|"Q"|"QAM"|"QLI"|"QMU"|"QMUI"|"QT"|"QTT"|"QTTAM"|"R"|"RAT"|"RATM"|"RBA"|"RBAAM"|"RBALI"|"RBAROLI"|"RBAT"|"RBT"|"RBTAM"|"RR"|"RRAM"|"RRS"|"RRSC"|"RT"|"SAT"|"SC"|"SCN"|"SCNAM"|"SCT"|"SIAM"|"SIM"|"SIMI"|"SL"|"SLAM"|"SX10"|"SX20"|"SX3"|"SX30"|"SX50"|"SX6"|"SX8"|"SXAM"|"TFA"|"TODO"|"U"|"UG"|"US"|"W"|"WD"|"WF"|"WFE"|"XPGI"|"XPLI"|"XSIMI" | Yes | Enter the type code of the entity you want to retrieve information for. See [the list of Type Codes](https://pricefx.atlassian.net/wiki/spaces/KB/pages/99570616/Type+Codes) in the Pricefx Knowledge Base article | +| `headers` | map<string|string[]> | No | Headers to be sent with the request | +| `queries` | *oas:ListEntityFieldsQueries | Yes | Queries to be sent with the request | + +**Returns:** `oas:ListEntityFieldsResponse|error` + +**Sample code:** + +```ballerina +oas:ListEntityFieldsResponse result = check pricefxClient->listEntityFields(typeCode, queries); +``` + +
+
+ +#### General + +
+deleteColumnValues + +
+ +Delete Column Values + +**Parameters:** + +| Name | Type | Required | Description | +|------|------|----------|--------------| +| `typeCode` | string | Yes | The object's type code. See [the list of Type Codes](https://pricefx.atlassian.net/wiki/spaces/KB/pages/99570616/Type+Codes) | +| `columnName` | string | Yes | The name of the column/attribute you want to remove values from | +| `headers` | map<string|string[]> | No | Headers to be sent with the request | + +**Returns:** `oas:DeleteColumnValuesResponse|error` + +**Sample code:** + +```ballerina +oas:DeleteColumnValuesResponse result = check pricefxClient->deleteColumnValues(typeCode, columnName); +``` + +
+
+ +
+deleteObjects + +
+ +Delete Objects + +**Parameters:** + +| Name | Type | Required | Description | +|------|------|----------|--------------| +| `typeCode` | string | Yes | The object's type code. See [the list of Type Codes](https://pricefx.atlassian.net/wiki/spaces/KB/pages/99570616/Type+Codes) | +| `payload` | oas:DeleteObjectsForceFilterRequest | Yes | | +| `headers` | map<string|string[]> | No | Headers to be sent with the request | + +**Returns:** `oas:DeleteObjectsResponse|error` + +**Sample code:** + +```ballerina +oas:DeleteObjectsResponse result = check pricefxClient->deleteObjects(typeCode, payload); +``` + +
+
+ +
+getQueryApiMetadata + +
+ +Get Query API Metadata + +**Parameters:** + +| Name | Type | Required | Description | +|------|------|----------|--------------| +| `payload` | oas:QueryapiExecuteBody | Yes | | +| `headers` | map<string|string[]> | No | Headers to be sent with the request | + +**Returns:** `oas:QueryApiMetadataEnvelope|error` + +**Sample code:** + +```ballerina +oas:QueryApiMetadataEnvelope result = check pricefxClient->getQueryApiMetadata(payload); +``` + +
+
+ +
+insertBulkData + +
+ +Insert Bulk Data + +**Parameters:** + +| Name | Type | Required | Description | +|------|------|----------|--------------| +| `typeCode` | oas:TypeCodeEnum | Yes | Specify the type code for the entity you want to work with. See [the list of Type Codes](https://pricefx.atlassian.net/wiki/spaces/KB/pages/99570616/Type+Codes) in the Pricefx Knowledge Base article.' | +| `payload` | oas:InsertBulkDataRequest | Yes | The **`/loaddata/P`** endpoint (Insert Bulk Products) is used in our example.<p> | +| `headers` | map<string|string[]> | No | Headers to be sent with the request | + +**Returns:** `oas:loaddataResponse|error` + +**Sample code:** + +```ballerina +oas:loaddataResponse result = check pricefxClient->insertBulkData(typeCode, payload); +``` + +
+
+ +
+insertBulkDataFromFile + +
+ +Insert Bulk Data From a File + +**Parameters:** + +| Name | Type | Required | Description | +|------|------|----------|--------------| +| `typeCode` | "C"|"CDESC"|"CX"|"JLTV"|"LTV"|"MLTV"|"P"|"PBOME"|"PCOMP"|"PDESC"|"PR"|"PX"|"PXREF"|"SL"|"SX"|"TODO"|"UG" | Yes | Enter the type code of the entity you want to insert a data to. See [the list of Type Codes](https://pricefx.atlassian.net/wiki/spaces/KB/pages/99570616/Type+Codes) in the Pricefx Knowledge Base article | +| `payload` | oas:InsertBulkDataFromFileRequest | Yes | | +| `headers` | map<string|string[]> | No | Headers to be sent with the request | +| `queries` | *oas:InsertBulkDataFromFileQueries | Yes | Queries to be sent with the request | + +**Returns:** `oas:InsertBulkDataFromFileResponse|error` + +**Sample code:** + +```ballerina +oas:InsertBulkDataFromFileResponse result = check pricefxClient->insertBulkDataFromFile(typeCode, payload, queries); +``` + +
+
+ +
+insertBulkDataFromFileAsync + +
+ +Insert Bulk Data From a File (async) + +**Parameters:** + +| Name | Type | Required | Description | +|------|------|----------|--------------| +| `typeCode` | "C"|"CDESC"|"CX"|"JLTV"|"LTV"|"MLTV"|"P"|"PBOME"|"PCOMP"|"PDESC"|"PR"|"PX"|"PXREF"|"SL"|"SX"|"TODO"|"UG" | Yes | Enter the type code of the entity you want to insert a data to. See [the list of Type Codes](https://pricefx.atlassian.net/wiki/spaces/KB/pages/99570616/Type+Codes) in the Pricefx Knowledge Base article | +| `payload` | oas:InsertBulkDataFromFileAsyncRequest | Yes | | +| `headers` | map<string|string[]> | No | Headers to be sent with the request | +| `queries` | *oas:InsertBulkDataFromFileAsyncQueries | Yes | Queries to be sent with the request | + +**Returns:** `oas:InsertBulkDataFromFileAsyncResponse|error` + +**Sample code:** + +```ballerina +oas:InsertBulkDataFromFileAsyncResponse result = check pricefxClient->insertBulkDataFromFileAsync(typeCode, payload, queries); +``` + +
+
+ +
+listTypeCodes + +
+ +List Type Codes + +**Parameters:** + +| Name | Type | Required | Description | +|------|------|----------|--------------| +| `headers` | map<string|string[]> | No | Headers to be sent with the request | + +**Returns:** `oas:typecodesResponse|error?` + +**Sample code:** + +```ballerina +oas:typecodesResponse|error? result = check pricefxClient->listTypeCodes(); +``` + +
+
+ +
+massUpdate + +
+ +Mass Update + +**Parameters:** + +| Name | Type | Required | Description | +|------|------|----------|--------------| +| `typeCode` | string | Yes | The object's type code. See [the list of Type Codes](https://pricefx.atlassian.net/wiki/spaces/KB/pages/99570616/Type+Codes) | +| `payload` | oas:MassUpdateRequest | Yes | | +| `headers` | map<string|string[]> | No | Headers to be sent with the request | + +**Returns:** `oas:MassUpdateResponse|error` + +**Sample code:** + +```ballerina +oas:MassUpdateResponse result = check pricefxClient->massUpdate(typeCode, payload); +``` + +
+
+ +
+queryApiExecute + +
+ +Query API Execute + +**Parameters:** + +| Name | Type | Required | Description | +|------|------|----------|--------------| +| `payload` | oas:QueryapiExecuteBody | Yes | | +| `headers` | map<string|string[]> | No | Headers to be sent with the request | +| `queries` | *oas:QueryApiExecuteQueries | Yes | Queries to be sent with the request | + +**Returns:** `oas:QueryApiExecuteEnvelope|error` + +**Sample code:** + +```ballerina +oas:QueryApiExecuteEnvelope result = check pricefxClient->queryApiExecute(payload, queries); +``` + +
+
+ +
+updateObject + +
+ +Update an Object + +**Parameters:** + +| Name | Type | Required | Description | +|------|------|----------|--------------| +| `typeCode` | string | Yes | The object's type code. See [the list of Type Codes](https://pricefx.atlassian.net/wiki/spaces/KB/pages/99570616/Type+Codes) | +| `payload` | oas:UpdateObjectRequest | Yes | <!-- theme: warning --> | +| `headers` | map<string|string[]> | No | Headers to be sent with the request | + +**Returns:** `error?` + +**Sample code:** + +```ballerina +error? result = check pricefxClient->updateObject(typeCode, payload); +``` + +
+
+ +
+updateObjectReturningOldData + +
+ +Update an Object (and return old data) + +**Parameters:** + +| Name | Type | Required | Description | +|------|------|----------|--------------| +| `typeCode` | string | Yes | The object's type code. See [the list of Type Codes](https://pricefx.atlassian.net/wiki/spaces/KB/pages/99570616/Type+Codes) | +| `payload` | oas:UpdateObjectReturnOldDataRequest | Yes | <!-- theme: warning --> | +| `headers` | map<string|string[]> | No | Headers to be sent with the request | + +**Returns:** `error?` + +**Sample code:** + +```ballerina +error? result = check pricefxClient->updateObjectReturningOldData(typeCode, payload); +``` + +
+
+ +
+upsertObject + +
+ +Upsert an Object + +**Parameters:** + +| Name | Type | Required | Description | +|------|------|----------|--------------| +| `typeCode` | "ACTT"|"AP"|"APIK"|"BD"|"BPT"|"BR"|"C"|"CA"|"CAM"|"CDESC"|"CF"|"CFS"|"CFT"|"CH"|"CLLI"|"CN"|"CS"|"CT"|"CTAM"|"CTLI"|"CTMU"|"CTMUI"|"CTT"|"CTTAM"|"CTTREE"|"CW"|"CX"|"CXAM"|"DA"|"DB"|"DCR"|"DCRAM"|"DCRI"|"DCRL"|"DCRMC"|"DCRT"|"DE"|"DI"|"DM"|"DMDC"|"DMDL"|"DMDS"|"DMF"|"DMM"|"DMR"|"DMT"|"DREG"|"DWT"|"ET"|"EVT"|"F"|"FE"|"FN"|"IDC"|"IE"|"ISH"|"JST"|"JLTV"|"JLTVM"|"LAT"|"LT"|"LTT"|"LTV"|"M"|"MLTV"|"MLTV2"|"MLTV3"|"MLTV4"|"MLTV5"|"MLTV6"|"MLTVM"|"MPL"|"MPLAM"|"MPLI"|"MPLIT"|"MPLT"|"MR"|"MRAM"|"MT"|"P"|"PAM"|"PAPIJ"|"PBOME"|"PCOMP"|"PCW"|"PDESC"|"PG"|"PGI"|"PGIM"|"PGT"|"PH"|"PL"|"PLI"|"PLIM"|"PLT"|"PR"|"PRAM"|"PREF"|"PT"|"PWH"|"PX"|"PXAM"|"PXREF"|"PYR"|"PYRAM"|"Q"|"QAM"|"QLI"|"QMU"|"QMUI"|"QT"|"QTT"|"QTTAM"|"R"|"RAT"|"RATM"|"RBA"|"RBAAM"|"RBALI"|"RBAT"|"RBT"|"RBTAM"|"RR"|"RRAM"|"RRS"|"RRSC"|"RT"|"SAT"|"SC"|"SCN"|"SCNAM"|"SCT"|"SIAM"|"SIM"|"SIMI"|"TFA"|"TODO"|"U"|"UG"|"US"|"W"|"WD"|"WF"|"WFE"|"XPGI"|"XPLI"|"XSIMI" | Yes | Enter the Type code of the entity you want to insert a data to. See [the list of Type codes](https://pricefx.atlassian.net/wiki/spaces/KB/pages/99570616/Type+Codes) in the Pricefx Knowledge Base article | +| `payload` | oas:UpsertObjectRequest | Yes | The **`/integrate/P`** endpoint (Upsert a Product) is used in our example.<p> | +| `headers` | map<string|string[]> | No | Headers to be sent with the request | + +**Returns:** `oas:productResponse|error` + +**Sample code:** + +```ballerina +oas:productResponse result = check pricefxClient->upsertObject(typeCode, payload); +``` + +
+
+ +
+upsertObjectReturningOldData + +
+ +Upsert an Object (and return old data) + +**Parameters:** + +| Name | Type | Required | Description | +|------|------|----------|--------------| +| `typeCode` | oas:TypeCodeEnum | Yes | Specify the type code for the entity you want to work with. See [the list of Type Codes](https://pricefx.atlassian.net/wiki/spaces/KB/pages/99570616/Type+Codes) in the Pricefx Knowledge Base article.' | +| `payload` | oas:UpsertObjectReturnOldDataRequest | Yes | The **`/integrate/P/returnolddata`** endpoint (upserts a product) is used in our example.<p> | +| `headers` | map<string|string[]> | No | Headers to be sent with the request | + +**Returns:** `oas:UpsertObjectReturnOldDataResponse|error` + +**Sample code:** + +```ballerina +oas:UpsertObjectReturnOldDataResponse result = check pricefxClient->upsertObjectReturningOldData(typeCode, payload); +``` + +
+
+ +#### Optimization + +
+calculateModelObjectStep + +
+ +Calculate a Model Object Step + +**Parameters:** + +| Name | Type | Required | Description | +|------|------|----------|--------------| +| `typedId` | string | Yes | The `typedId` of the Model Object you want to recalculate the step for | +| `stepName` | "definition"|"configuration"|"results"|"projections"|"parallel" | Yes | Enter the name of the step you want to calculate | +| `headers` | map<string|string[]> | No | Headers to be sent with the request | +| `queries` | *oas:CalculateModelObjectStepQueries | Yes | Queries to be sent with the request | + +**Returns:** `oas:ModelCalculationStepEnvelope|error` + +**Sample code:** + +```ballerina +oas:ModelCalculationStepEnvelope result = check pricefxClient->calculateModelObjectStep(typedId, stepName, queries); +``` + +
+
+ +
+cancelCalculationStep + +
+ +Cancel a Calculation Step + +**Parameters:** + +| Name | Type | Required | Description | +|------|------|----------|--------------| +| `typedId` | string | Yes | The `typedId` of the Model Object you want to cancel the calculation step for | +| `stepName` | string | Yes | The name of the step you want to cancel | +| `headers` | map<string|string[]> | No | Headers to be sent with the request | + +**Returns:** `oas:JobStatusTrackerResponse|error` + +**Sample code:** + +```ballerina +oas:JobStatusTrackerResponse result = check pricefxClient->cancelCalculationStep(typedId, stepName); +``` + +
+
+ +
+duplicateModel + +
+ +Duplicate a Model + +**Parameters:** + +| Name | Type | Required | Description | +|------|------|----------|--------------| +| `typedId` | string | Yes | | +| `payload` | oas:OptimizationModelduplicatetypedIdBody | Yes | | +| `headers` | map<string|string[]> | No | Headers to be sent with the request | + +**Returns:** `oas:ModelDuplicationEnvelope|error` + +**Sample code:** + +```ballerina +oas:ModelDuplicationEnvelope result = check pricefxClient->duplicateModel(typedId, payload); +``` + +
+
+ +
+executeModelLogic + +
+ +Execute a Model Logic + +**Parameters:** + +| Name | Type | Required | Description | +|------|------|----------|--------------| +| `typedId` | string | Yes | The `typedId` of the Model Object you want to execute the logic for | +| `stepName` | string | Yes | The name of the step you want to execute the logic for | +| `formulaName` | string | Yes | The name of the logic you want to execute | +| `payload` | oas:ExecuteModelLogicRequest | Yes | | +| `headers` | map<string|string[]> | No | Headers to be sent with the request | + +**Returns:** `oas:ExecuteModelLogicResponse|error` + +**Sample code:** + +```ballerina +oas:ExecuteModelLogicResponse result = check pricefxClient->executeModelLogic(typedId, stepName, formulaName, payload); +``` + +
+
+ +
+exportModels + +
+ +Export Models + +**Parameters:** + +| Name | Type | Required | Description | +|------|------|----------|--------------| +| `payload` | oas:OptimizationModelexportBody | Yes | | +| `headers` | map<string|string[]> | No | Headers to be sent with the request | + +**Returns:** `http:Response|error` + +**Sample code:** + +```ballerina +http:Response result = check pricefxClient->exportModels(payload); +``` + +
+
+ +
+getCalculationStatus + +
+ +Get a Calculation Status + +**Parameters:** + +| Name | Type | Required | Description | +|------|------|----------|--------------| +| `typedId` | string | Yes | The `typedId` of the Model Object you want to retrieve the calculation status for | +| `headers` | map<string|string[]> | No | Headers to be sent with the request | + +**Returns:** `oas:JobStatusTrackerResponse|error` + +**Sample code:** + +```ballerina +oas:JobStatusTrackerResponse result = check pricefxClient->getCalculationStatus(typedId); +``` + +
+
+ +
+getParallelCalculationItem + +
+ +Get a Parallel Calculation Item + +**Parameters:** + +| Name | Type | Required | Description | +|------|------|----------|--------------| +| `id` | string | Yes | `id` of the Parallel Calculation Item (PCI) you want to retrieve | +| `payload` | record {} | Yes | | +| `headers` | map<string|string[]> | No | Headers to be sent with the request | + +**Returns:** `oas:GetParallelCalculationItemResponse|error` + +**Sample code:** + +```ballerina +oas:GetParallelCalculationItemResponse result = check pricefxClient->getParallelCalculationItem(id, payload); +``` + +
+
+ +
+getStepCalculationStatus + +
+ +Get a Step Calculation Status + +**Parameters:** + +| Name | Type | Required | Description | +|------|------|----------|--------------| +| `typedId` | string | Yes | The `typedId` of the Model Object you want to retrieve the calculation status for | +| `stepName` | string | Yes | The name of the step you want to calculate | +| `headers` | map<string|string[]> | No | Headers to be sent with the request | + +**Returns:** `oas:JobStatusTrackerResponse|error` + +**Sample code:** + +```ballerina +oas:JobStatusTrackerResponse result = check pricefxClient->getStepCalculationStatus(typedId, stepName); +``` + +
+
+ +
+importModels + +
+ +Import Models + +**Parameters:** + +| Name | Type | Required | Description | +|------|------|----------|--------------| +| `payload` | oas:OptimizationModelimportBody | Yes | | +| `headers` | map<string|string[]> | No | Headers to be sent with the request | + +**Returns:** `oas:ModelDuplicationEnvelope|error` + +**Sample code:** + +```ballerina +oas:ModelDuplicationEnvelope result = check pricefxClient->importModels(payload); +``` + +
+
+ +
+listModelLogicParameters + +
+ +List Model Logic Parameters + +**Parameters:** + +| Name | Type | Required | Description | +|------|------|----------|--------------| +| `typedId` | string | Yes | The `typedId` of the Model Object you want to retrieve logic parameters for | +| `stepName` | string | Yes | The name of the step you want to list logic parameters for | +| `formulaName` | string | Yes | The name of the logic you want to get parameters for | +| `headers` | map<string|string[]> | No | Headers to be sent with the request | + +**Returns:** `oas:ListModelLogicParametersResponse|error` + +**Sample code:** + +```ballerina +oas:ListModelLogicParametersResponse result = check pricefxClient->listModelLogicParameters(typedId, stepName, formulaName); +``` + +
+
+ +
+listParallelCalculationItems + +
+ +List Parallel Calculation Items + +**Parameters:** + +| Name | Type | Required | Description | +|------|------|----------|--------------| +| `payload` | oas:ListParallelCalculationItemsRequest | Yes | | +| `headers` | map<string|string[]> | No | Headers to be sent with the request | + +**Returns:** `oas:ListParallelCalculationItemsResponse|error` + +**Sample code:** + +```ballerina +oas:ListParallelCalculationItemsResponse result = check pricefxClient->listParallelCalculationItems(payload); +``` + +
+
+ +
+loadDataIntoFieldCollection + +
+ +Load Data Into FieldCollection + +**Parameters:** + +| Name | Type | Required | Description | +|------|------|----------|--------------| +| `typedId` | string | Yes | Specifies the typedId (format: `{id}.{type}`) of the FieldCollection to load data into. Type must be either `DMDS` or `DMT` | +| `payload` | oas:DatamartLoadfctypedIdBody | Yes | | +| `headers` | map<string|string[]> | No | Headers to be sent with the request | + +**Returns:** `http:Response|error` + +**Sample code:** + +```ballerina +http:Response result = check pricefxClient->loadDataIntoFieldCollection(typedId, payload); +``` + +
+
+ +
+recalculateCalculationOfStep + +
+ +Recalculate a Calculation of a Step + +**Parameters:** + +| Name | Type | Required | Description | +|------|------|----------|--------------| +| `typedId` | string | Yes | The `typedId` of the Model Object you want to recalculate the step for | +| `stepName` | "definition"|"configuration"|"results"|"projections"|"parallel" | Yes | Enter the name of the step you want to calculate | +| `calcName` | string | Yes | The name of the calculation you want to recalculate | +| `payload` | record {} | Yes | | +| `headers` | map<string|string[]> | No | Headers to be sent with the request | + +**Returns:** `oas:RecalculateCalculationOfStepResponse|error` + +**Sample code:** + +```ballerina +oas:RecalculateCalculationOfStepResponse result = check pricefxClient->recalculateCalculationOfStep(typedId, stepName, calcName, payload); +``` + +
+
+ +
+recalculateItemsOfParallelCalculation + +
+ +Recalculate Items of a Parallel Calculation + +**Parameters:** + +| Name | Type | Required | Description | +|------|------|----------|--------------| +| `typedId` | string | Yes | The `typedId` of the Model Object you want to recalculate the step for | +| `stepName` | "definition"|"configuration"|"results"|"projections"|"parallel" | Yes | Enter the name of the step you want to calculate | +| `calcName` | string | Yes | The name of the calculation you want to recalculate | +| `payload` | oas:CalcNameItemBody | Yes | | +| `headers` | map<string|string[]> | No | Headers to be sent with the request | + +**Returns:** `oas:ParallelCalculationEnvelope|error` + +**Sample code:** + +```ballerina +oas:ParallelCalculationEnvelope result = check pricefxClient->recalculateItemsOfParallelCalculation(typedId, stepName, calcName, payload); +``` + +
+
+ +
+revokeModel + +
+ +Revoke a Model + +**Parameters:** + +| Name | Type | Required | Description | +|------|------|----------|--------------| +| `typedId` | string | Yes | `typedId` of the model you want to revoke | +| `payload` | record {} | Yes | | +| `headers` | map<string|string[]> | No | Headers to be sent with the request | + +**Returns:** `oas:RevokeModelResponse|error` + +**Sample code:** + +```ballerina +oas:RevokeModelResponse result = check pricefxClient->revokeModel(typedId, payload); +``` + +
+
+ +
+saveModel + +
+ +Save a Model + +**Parameters:** + +| Name | Type | Required | Description | +|------|------|----------|--------------| +| `typedId` | string | Yes | The `typedId` of the Model Object you want to save | +| `stepName` | "definition"|"configuration"|"results"|"projections" | Yes | Enter the name of the step you want to save. Steps are defined in the Model Class that is associated to the Model Object | +| `payload` | oas:SaveModelRequest | Yes | The `data` property can only contain the `state` field, all the rest fields will be ignored (and cannot be updated even with update/MO endpoint) | +| `headers` | map<string|string[]> | No | Headers to be sent with the request | + +**Returns:** `oas:SaveModelResponse|error` + +**Sample code:** + +```ballerina +oas:SaveModelResponse result = check pricefxClient->saveModel(typedId, stepName, payload); +``` + +
+
+ +
+submitModel + +
+ +Submit a Model + +**Parameters:** + +| Name | Type | Required | Description | +|------|------|----------|--------------| +| `typedId` | string | Yes | The `typedId` of the Model Object you want to submit | +| `payload` | record {} | Yes | | +| `headers` | map<string|string[]> | No | Headers to be sent with the request | + +**Returns:** `oas:SaveModelResponse|error` + +**Sample code:** + +```ballerina +oas:SaveModelResponse result = check pricefxClient->submitModel(typedId, payload); +``` + +
+
+ +
+updateJobStatusTrackerEntry + +
+ +Update Job Status Tracker Entry + +**Parameters:** + +| Name | Type | Required | Description | +|------|------|----------|--------------| +| `payload` | oas:OptimizationUpdatejstBody | Yes | | +| `headers` | map<string|string[]> | No | Headers to be sent with the request | + +**Returns:** `oas:JobStatusTrackerUpdateEnvelope|error` + +**Sample code:** + +```ballerina +oas:JobStatusTrackerUpdateEnvelope result = check pricefxClient->updateJobStatusTrackerEntry(payload); +``` + +
+
+ +#### Logs + +
+getLokiLog + +
+ +Get a Loki Log + +**Parameters:** + +| Name | Type | Required | Description | +|------|------|----------|--------------| +| `headers` | map<string|string[]> | No | Headers to be sent with the request | +| `queries` | *oas:GetLokiLogQueries | Yes | Queries to be sent with the request | + +**Returns:** `oas:LokiLogEnvelope|error` + +**Sample code:** + +```ballerina +oas:LokiLogEnvelope result = check pricefxClient->getLokiLog(queries); +``` + +
+
+ +
+listEmailTasks + +
+ +List Email Tasks + +**Parameters:** + +| Name | Type | Required | Description | +|------|------|----------|--------------| +| `payload` | oas:NotificationListBody | Yes | | +| `headers` | map<string|string[]> | No | Headers to be sent with the request | + +**Returns:** `oas:ListEmailTasksEnvelope|error` + +**Sample code:** + +```ballerina +oas:ListEmailTasksEnvelope result = check pricefxClient->listEmailTasks(payload); +``` + +
+
+ +
+listEventTasks + +
+ +List Event Tasks + +**Parameters:** + +| Name | Type | Required | Description | +|------|------|----------|--------------| +| `payload` | oas:NotificationListBody | Yes | | +| `headers` | map<string|string[]> | No | Headers to be sent with the request | + +**Returns:** `oas:ListEventTasksEnvelope|error` + +**Sample code:** + +```ballerina +oas:ListEventTasksEnvelope result = check pricefxClient->listEventTasks(payload); +``` + +
+
+ +
+listLogins + +
+ +List Logins + +**Parameters:** + +| Name | Type | Required | Description | +|------|------|----------|--------------| +| `payload` | oas:BdmanagerListtypedIdBody | Yes | | +| `headers` | map<string|string[]> | No | Headers to be sent with the request | + +**Returns:** `oas:ListLoginsEnvelope|error` + +**Sample code:** + +```ballerina +oas:ListLoginsEnvelope result = check pricefxClient->listLogins(payload); +``` + +
+
+ +
+listSecurityConfigurationEvents + +
+ +List Security & Configuration Events + +**Parameters:** + +| Name | Type | Required | Description | +|------|------|----------|--------------| +| `payload` | oas:NotificationListBody | Yes | | +| `headers` | map<string|string[]> | No | Headers to be sent with the request | + +**Returns:** `oas:ListSecurityConfigEventsEnvelope|error` + +**Sample code:** + +```ballerina +oas:ListSecurityConfigEventsEnvelope result = check pricefxClient->listSecurityConfigurationEvents(payload); +``` + +
+
+ +#### Heartbeat + +
+listTasks + +
+ +List Tasks + +**Parameters:** + +| Name | Type | Required | Description | +|------|------|----------|--------------| +| `headers` | map<string|string[]> | No | Headers to be sent with the request | + +**Returns:** `oas:generalResponse|error` + +**Sample code:** + +```ballerina +oas:generalResponse result = check pricefxClient->listTasks(); +``` + +
+
+ +#### MCP + +
+getMcpRoles + +
+ +Get MCP Roles + +**Parameters:** + +| Name | Type | Required | Description | +|------|------|----------|--------------| +| `headers` | map<string|string[]> | No | Headers to be sent with the request | + +**Returns:** `oas:McpRolesEnvelope|error` + +**Sample code:** + +```ballerina +oas:McpRolesEnvelope result = check pricefxClient->getMcpRoles(); +``` + +
+
+ +
+getMcpTools + +
+ +Get MCP Tools + +**Parameters:** + +| Name | Type | Required | Description | +|------|------|----------|--------------| +| `headers` | map<string|string[]> | No | Headers to be sent with the request | + +**Returns:** `oas:McpToolsEnvelope|error` + +**Sample code:** + +```ballerina +oas:McpToolsEnvelope result = check pricefxClient->getMcpTools(); +``` + +
+
diff --git a/en/docs/connectors/catalog/erp-business/pricefx/overview.md b/en/docs/connectors/catalog/erp-business/pricefx/overview.md new file mode 100644 index 0000000000..e89ff2daaf --- /dev/null +++ b/en/docs/connectors/catalog/erp-business/pricefx/overview.md @@ -0,0 +1,39 @@ +--- +connector: true +connector_name: "pricefx" +title: "Pricefx" +description: "Overview of the ballerinax/pricefx connector for WSO2 Integrator." +--- + +[Pricefx](https://www.pricefx.com/) is a cloud-native pricing and revenue management platform that helps enterprises manage price lists, calculation grids, quotes, contracts, and rebate agreements across their sales organization. The `ballerinax/pricefx` connector provides a client for the [Pricefx Backend API](https://api.pricefx.com/), covering master data (products, customers, sellers), pricing (price lists, manual price lists, calculation grids, condition records), sales (quotes, contracts, rebate agreements, sales compensations), and platform administration (users, workflow, data manager, notifications, comments, custom forms, and more). + +## Key Features + +- Manage products, customers, sellers, and their extension fields +- Create, calculate, and manage price lists, manual price lists, and calculation grids +- Build quotes, submit and revoke them, and convert them to deals +- Manage contracts (agreements and promotions) and rebate agreements +- Run rebate calculations and manage rebate record groups +- Handle sales compensation plans and records +- Upload, download, and manage attachments and files +- Manage users, business roles, and workflow delegations +- Work with the Data Manager, lookup tables, and key-value stores +- Authenticate with username/password, an API key, OAuth 2.0, or a pre-signed external JWT +- Transparent re-authentication — the client automatically refreshes a short-lived token and retries once whenever a request comes back unauthenticated + +## Actions + +The connector exposes a single client for interacting with the Pricefx API. + +| Client | Actions | +|---|---| +| [`Client`](action-reference.md#client) | Manages Pricefx products, customers, sellers, condition records, price lists, manual price lists, calculation grids, quotes, contracts, rebate agreements and calculations, sales compensations, attachments, users, workflow, data manager, and authentication. | + +## Documentation + +- [Setup Guide](setup-guide.md) - Get Pricefx credentials +- [Action Reference](action-reference.md) - Available operations + +## How to contribute + +Contribute to the connector's development on GitHub: [module-ballerinax-pricefx](https://github.com/ballerina-platform/module-ballerinax-pricefx). diff --git a/en/docs/connectors/catalog/erp-business/pricefx/setup-guide.md b/en/docs/connectors/catalog/erp-business/pricefx/setup-guide.md new file mode 100644 index 0000000000..3f49997b78 --- /dev/null +++ b/en/docs/connectors/catalog/erp-business/pricefx/setup-guide.md @@ -0,0 +1,47 @@ +--- +connector: true +connector_name: "pricefx" +title: "Setup Guide" +description: "How to set up and configure the ballerinax/pricefx connector." +--- + +# Setup Guide + +This guide walks you through getting the details the connector needs to authenticate and communicate with your Pricefx partition. + +## Choose an authentication method + +The connector supports several ways to authenticate with Pricefx. Provide exactly one of the following credential combinations. + +### Username, password, and partition + +The most common setup. Sign in to your Pricefx partition to confirm your user name, password, and partition name. + +:::tip +Contact Pricefx Support for an API key (`pricefxKey`) if you want the faster `POST /token` exchange. Without one, the connector falls back to HTTP Basic auth (`/:` on every request), which needs no separate key but is slower per request. +::: + +### OAuth 2.0 + +Provide `oauth2ClientId`, `oauth2RefreshToken`, and optionally `oauth2ClientSecret`. The refresh token must be obtained once beforehand through Pricefx's Authorization Code Grant flow — that initial exchange needs an interactive browser redirect and can't be automated by this connector. Once you have a refresh token, the connector fetches and refreshes access tokens automatically. + +### External JWT + +Provide `externalJwtSystemName` and `externalJwt`, if your organization has a trust relationship configured on the Pricefx side (`externalJWTConfiguration`) with an external system that signs JWTs on your behalf. + +## Optional settings + +Independently of the authentication method you choose, you can also set: + +- `tfaCode` — a two-factor authentication code, if your user has TFA enabled +- `csrfToken` — a CSRF token, if your partition has CSRF protection enabled + +The connector automatically re-authenticates and retries once whenever a request comes back unauthenticated, so a long-lived client instance keeps working without manual re-initialization. + +## Note your service URL + +The connector connects to `https://.pricefx.com/pricefx/` by default. Confirm your node and partition name with your Pricefx administrator if you're not sure. + +## Next steps + +- [Action Reference](action-reference.md) - Available operations diff --git a/en/docs/connectors/catalog/index.mdx b/en/docs/connectors/catalog/index.mdx index e6eae342d5..e2432f397c 100644 --- a/en/docs/connectors/catalog/index.mdx +++ b/en/docs/connectors/catalog/index.mdx @@ -131,6 +131,7 @@ Find the right connector for your integration. Use the search bar or filter by c { name: "PayPal Payments", description: "Payment platform with authorization, capture, void, and refund operations", operations: "Authorize, Capture, Void, Refund, Show Details", auth: "OAuth 2.0 (Client Credentials)", link: "finance-accounting/paypal.payments/paypal-payments-connector-overview", category: "Finance & Accounting", icon: "https://bcentral-packageicons.azureedge.net/images/ballerinax_paypal.payments_2.0.1.png" }, { name: "PayPal Subscriptions", description: "PayPal recurring billing platform for creating subscription plans and managing subscription lifecycles", operations: "Create, Read, Update, Activate, Deactivate, Suspend, Cancel, Revise, Capture, List", auth: "OAuth 2.0", link: "finance-accounting/paypal.subscriptions/paypal-subscriptions-connector-overview", category: "Finance & Accounting", icon: "https://bcentral-packageicons.azureedge.net/images/ballerinax_paypal.subscriptions_1.0.1.png" }, { name: "People HR", description: "HR management system with employee records, holidays, salaries, vacancies, applicants, and appraisals", operations: "Create, Read, Update, Delete, Query", auth: "API Key", link: "hrms/peoplehr/people-hr-connector-overview", category: "HRMS", icon: "https://bcentral-packageicons.azureedge.net/images/ballerinax_peoplehr_2.2.1.png" }, + { name: "Pricefx", description: "Cloud-native pricing and revenue management: products, customers, price lists, calculation grids, quotes, contracts, and rebate agreements", operations: "Create, Read, Update, Delete, List, Search, Calculate, Submit", auth: "Username/Password, API Key, OAuth 2.0, External JWT", link: "erp-business/pricefx/overview", category: "ERP & Business" }, { name: "PostgreSQL", description: "Object-relational database with SQL queries, batch operations, stored procedures, and CDC triggers", operations: "Query, Execute, Batch Execute, Call, CDC", auth: "Username/Password", link: "database/postgresql/connector-overview", category: "Database", icon: "https://bcentral-packageicons.azureedge.net/images/ballerinax_postgresql_1.17.0.png" }, { name: "RabbitMQ", description: "AMQP 0-9-1 message broker with queue/exchange management, pub/sub, and consumer services", operations: "Publish, Consume, Queue Declare, Exchange Declare, Bind, Ack, Nack", auth: "Username / Password", link: "messaging/rabbitmq/connector-overview", category: "Messaging", icon: "https://bcentral-packageicons.azureedge.net/images/ballerinax_rabbitmq_3.3.3.png" }, { name: "Redis", description: "In-memory data store with string, list, set, sorted set, and hash operations", operations: "Get, Set, List, Hash, Set, Sorted Set, Key Management", auth: "Password / ACL", link: "database/redis/connector-overview", category: "Database", icon: "https://bcentral-packageicons.azureedge.net/images/ballerinax_redis_3.2.0.png" }, diff --git a/en/sidebars.ts b/en/sidebars.ts index 4580c3e587..36762efd6b 100644 --- a/en/sidebars.ts +++ b/en/sidebars.ts @@ -1387,6 +1387,15 @@ const sidebars: SidebarsConfig = { 'connectors/catalog/hrms/peoplehr/example', ], }, + { + type: 'category', + label: 'Pricefx', + link: { type: 'doc', id: 'connectors/catalog/erp-business/pricefx/overview' }, + items: [ + 'connectors/catalog/erp-business/pricefx/setup-guide', + 'connectors/catalog/erp-business/pricefx/action-reference', + ], + }, { type: 'category', From a74bb4982c03a075d0517cf29415d111756f7f77 Mon Sep 17 00:00:00 2001 From: Dilan Perera Date: Mon, 3 Aug 2026 12:54:22 +0530 Subject: [PATCH 2/6] Expand Pricefx setup guide with concrete auth steps, rename Actions section --- .../erp-business/pricefx/action-reference.md | 15 ++-- .../catalog/erp-business/pricefx/overview.md | 4 +- .../erp-business/pricefx/setup-guide.md | 90 ++++++++++++++++--- 3 files changed, 90 insertions(+), 19 deletions(-) diff --git a/en/docs/connectors/catalog/erp-business/pricefx/action-reference.md b/en/docs/connectors/catalog/erp-business/pricefx/action-reference.md index 23900595ee..fa4809d631 100644 --- a/en/docs/connectors/catalog/erp-business/pricefx/action-reference.md +++ b/en/docs/connectors/catalog/erp-business/pricefx/action-reference.md @@ -1,15 +1,21 @@ --- connector: true connector_name: "pricefx" -title: "Action Reference" +title: "Actions" description: "Available operations in the ballerinax/pricefx connector." --- -# Action Reference +# Actions -## Client +The `ballerinax/pricefx` package exposes the following clients: + +| Client | Purpose | +|--------|---------| +| [`Client`](#client) | Provides access to the Pricefx Backend API for managing products, customers, sellers, price lists, calculation grids, quotes, contracts, rebate agreements, sales compensations, attachments, and more. | -The `Client` wraps the generated `oas` client and adds the customization Pricefx's API needs on top: turning the credentials in `ConnectionConfig` into the right kind of authentication (JWT, HTTP Basic, OAuth 2.0, or a pre-signed external JWT), merging in any static headers (a two-factor authentication code, a CSRF token), and transparently re-authenticating and retrying once whenever a request comes back unauthenticated. Import `ballerinax/pricefx.oas` alongside `ballerinax/pricefx` — every operation's payload and response types live in the `oas` module. +--- + +## Client ### Configuration @@ -26,7 +32,6 @@ Pricefx account credentials and authentication options, included directly in `Co | `oauth2ClientId` | string | Optional | OAuth 2.0 client identifier, as registered in Pricefx's `oauthConfiguration` | | `oauth2ClientSecret` | string | Optional | OAuth 2.0 client secret, if one was configured for the client | | `oauth2RefreshToken` | string | Optional | A refresh token previously obtained through Pricefx's OAuth 2.0 Authorization Code Grant flow. The connector uses it to fetch (and automatically refresh) access tokens | -| `tfaCode` | string | Optional | A cleartext two-factor authentication code, sent as the `PriceFx-TFA` header on every request. Only required when the calling user has TFA enabled and no session cookie exists | | `csrfToken` | string | Optional | A CSRF token, sent as the `X-PriceFx-Csrf-Token` header on every request. Only required when the partition has CSRF protection enabled | | `externalJwtSystemName` | string | Optional | The name of the external system trusted via Pricefx's `externalJWTConfiguration`, used together with `externalJwt` | | `externalJwt` | string | Optional | A JWT signed by the external system named in `externalJwtSystemName`, sent as `Authorization: BEARER <externalJwtSystemName>;<externalJwt>` on every request | diff --git a/en/docs/connectors/catalog/erp-business/pricefx/overview.md b/en/docs/connectors/catalog/erp-business/pricefx/overview.md index e89ff2daaf..5a73fb5aef 100644 --- a/en/docs/connectors/catalog/erp-business/pricefx/overview.md +++ b/en/docs/connectors/catalog/erp-business/pricefx/overview.md @@ -19,7 +19,7 @@ description: "Overview of the ballerinax/pricefx connector for WSO2 Integrator." - Manage users, business roles, and workflow delegations - Work with the Data Manager, lookup tables, and key-value stores - Authenticate with username/password, an API key, OAuth 2.0, or a pre-signed external JWT -- Transparent re-authentication — the client automatically refreshes a short-lived token and retries once whenever a request comes back unauthenticated +- Transparent re-authentication - the client automatically refreshes a short-lived token and retries once whenever a request comes back unauthenticated ## Actions @@ -32,7 +32,7 @@ The connector exposes a single client for interacting with the Pricefx API. ## Documentation - [Setup Guide](setup-guide.md) - Get Pricefx credentials -- [Action Reference](action-reference.md) - Available operations +- [Actions](action-reference.md) - Available operations ## How to contribute diff --git a/en/docs/connectors/catalog/erp-business/pricefx/setup-guide.md b/en/docs/connectors/catalog/erp-business/pricefx/setup-guide.md index 3f49997b78..126af65aae 100644 --- a/en/docs/connectors/catalog/erp-business/pricefx/setup-guide.md +++ b/en/docs/connectors/catalog/erp-business/pricefx/setup-guide.md @@ -13,28 +13,94 @@ This guide walks you through getting the details the connector needs to authenti The connector supports several ways to authenticate with Pricefx. Provide exactly one of the following credential combinations. -### Username, password, and partition +### 1. Basic Authentication -The most common setup. Sign in to your Pricefx partition to confirm your user name, password, and partition name. +The most common setup, and the one to reach for first. -:::tip -Contact Pricefx Support for an API key (`pricefxKey`) if you want the faster `POST /token` exchange. Without one, the connector falls back to HTTP Basic auth (`/:` on every request), which needs no separate key but is slower per request. -::: +Your user name, password, and partition are provisioned when your Pricefx account is created - ask your Pricefx administrator if you don't already have them. The partition name also appears in your instance's login URL, in the form `https://.pricefx.com/pricefx/`. -### OAuth 2.0 +### 2. JWT Token Authentication -Provide `oauth2ClientId`, `oauth2RefreshToken`, and optionally `oauth2ClientSecret`. The refresh token must be obtained once beforehand through Pricefx's Authorization Code Grant flow — that initial exchange needs an interactive browser redirect and can't be automated by this connector. Once you have a refresh token, the connector fetches and refreshes access tokens automatically. +Provide `username`, `password`, `partition`, and `pricefxKey`. -### External JWT +Contact Pricefx Support to request an API key (`pricefxKey`) for your partition. With a `pricefxKey` set alongside your username, password, and partition, the connector exchanges your credentials for a token automatically and authenticates with that token instead of sending your username and password on every call - recommended over Basic Auth for production, server-to-server use. -Provide `externalJwtSystemName` and `externalJwt`, if your organization has a trust relationship configured on the Pricefx side (`externalJWTConfiguration`) with an external system that signs JWTs on your behalf. +### 3. OAuth 2.0 Authentication + +Provide `oauth2ClientId`, `oauth2RefreshToken`, and optionally `oauth2ClientSecret`. + +#### Registering an OAuth client + +On the Pricefx side, go to **Administration > Configuration > System Configuration > Advanced Configuration Options** and add a per-partition configuration named `oauthConfiguration` with a value shaped like this: + +```json +{ + "knownClients": { + "": { + "redirect_uri": "", + "client_secret": "", + "client_description": "A short label shown on the consent screen" + } + } +} +``` + +- The key you choose under `knownClients` (`` above) is the value you set as `oauth2ClientId`. +- `client_secret`, if you set one, is the value you set as `oauth2ClientSecret`. +- `redirect_uri` must match wherever your integration is set up to receive the sign-in redirect. + +#### Getting a refresh token + +`oauth2RefreshToken` comes from signing in once through Pricefx's OAuth 2.0 consent screen for the client you just registered, and approving access. That sign-in step is interactive (it happens in a browser) and can't be automated by this connector, but it's a one-time setup step - the consent screen hands back a refresh token as part of the exchange, and that's the value you configure here. + +Once you have a refresh token, the connector fetches and refreshes access tokens automatically - you never need to repeat that step. + +### 4. External JWT Authentication + +You can use a third-party JSON Web Token for authentication (for example, with Salesforce as the signer). As with SAML, no hard-coded per-user credentials are needed - instead, a system-to-system trust relationship is established using signed tokens. + +#### Configuring the trust relationship + +On the Pricefx side, go to **Administration > Configuration > System Configuration > Advanced Configuration Options** and add a per-partition configuration named `externalJWTConfiguration` with a value shaped like this: + +```json +{ + "entries": { + "": { + "publicKey": "", + "permissions": "" + } + } +} +``` + +- **`externalSystemName`** - a JSON-safe name for the external system (letters, digits only - no whitespace). This is the same name you pass as `externalJwtSystemName` to the connector. You can register as many external systems as you like, each under its own name. +- **`publicKey`** - the external system's public key, as a PEM-formatted string. Pricefx only supports RSA keys. For example: + + ``` + -----BEGIN PUBLIC KEY----- + MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA0E9Zp0JNbDaOMqhZd1C+ + /FdBTCjza0qXcjTYCbDUeY89qPpwN19QovmehCVGBSFzLOkltx0YmlCkaKLtzqfS + ... + fXr4+6SBmEOVa7RSzoXr3whpdMdKsIvnDCCmT++aJvHBw63ZKGKb8+ZTAXv0z3sm + LDRyhifUmEoJPGWHV6/oxZQiVRapEFe7SiVTbr2IW7OfrdE3DVrioJmATEKgVr5i + zwIDAQAB + -----END PUBLIC KEY----- + ``` + +- **`permissions`** - leave `null` (or omit it) to not further restrict permissions beyond what the authenticated user already has. If you provide a list of permission-name strings instead, a token issued under this configuration can only call endpoints whose required permission is in that list. + + :::caution + The `permissions` list is only an additional filter, on top of the authenticated user's own permissions - it can't grant a user something they couldn't otherwise do. Use it to restrict a given trust relationship to a narrower set of API calls than the user would normally have access to. + ::: + +Once the trust relationship is configured, give the connector two values: `externalJwtSystemName`, set to the name you registered above, and `externalJwt`, set to a JWT signed by that external system. ## Optional settings Independently of the authentication method you choose, you can also set: -- `tfaCode` — a two-factor authentication code, if your user has TFA enabled -- `csrfToken` — a CSRF token, if your partition has CSRF protection enabled +- `csrfToken` - a CSRF token, if your partition has CSRF protection enabled The connector automatically re-authenticates and retries once whenever a request comes back unauthenticated, so a long-lived client instance keeps working without manual re-initialization. @@ -44,4 +110,4 @@ The connector connects to `https://.pricefx.com/pricefx/ Date: Mon, 3 Aug 2026 14:28:32 +0530 Subject: [PATCH 3/6] Update Pricefx docs for the jwt auth field and revised operation set --- .../erp-business/pricefx/action-reference.md | 997 ++++++++---------- .../erp-business/pricefx/setup-guide.md | 14 +- 2 files changed, 475 insertions(+), 536 deletions(-) diff --git a/en/docs/connectors/catalog/erp-business/pricefx/action-reference.md b/en/docs/connectors/catalog/erp-business/pricefx/action-reference.md index fa4809d631..c69d11b6fd 100644 --- a/en/docs/connectors/catalog/erp-business/pricefx/action-reference.md +++ b/en/docs/connectors/catalog/erp-business/pricefx/action-reference.md @@ -21,14 +21,14 @@ The `ballerinax/pricefx` package exposes the following clients: #### PricefxCredentials -Pricefx account credentials and authentication options, included directly in `ConnectionConfig`. Provide exactly one of the three combinations below. +Pricefx account credentials and authentication options, included directly in `ConnectionConfig`. Provide exactly one of the four combinations below. | Field | Type | Default | Description | |-------|------|---------|-------------| | `username` | string | Optional | Your Pricefx username | | `password` | string | Optional | Your Pricefx password | | `partition` | string | Optional | Your Pricefx partition name | -| `pricefxKey` | string | Optional | A Pricefx API key (contact Pricefx Support to obtain one). When set, authentication uses `POST /token`, which is faster and recommended for server-to-server integrations. When absent, authentication falls back to HTTP Basic auth (`<partition>/<username>:<password>`), which needs no separate API key but is slower per request | +| `jwt` | string | Optional | A Pricefx-issued JWT you already hold, sent directly as the `X-PriceFx-jwt` header, with no exchange. Intended for the non-expiring integration tokens produced by `generateJwtToken` (or the time-limited ones from `generateTimedJwtToken`). Cannot be refreshed by the connector - a rejected token surfaces as an error rather than being retried, so avoid pasting in a short-lived session token here | | `oauth2ClientId` | string | Optional | OAuth 2.0 client identifier, as registered in Pricefx's `oauthConfiguration` | | `oauth2ClientSecret` | string | Optional | OAuth 2.0 client secret, if one was configured for the client | | `oauth2RefreshToken` | string | Optional | A refresh token previously obtained through Pricefx's OAuth 2.0 Authorization Code Grant flow. The connector uses it to fetch (and automatically refresh) access tokens | @@ -75,181 +75,6 @@ pricefx:Client pricefxClient = check new ({username, password, partition}, servi ### Operations -#### Authentication - -
-createAuthToken - -
- -Get an Authentication Token (API V2 only) - -**Parameters:** - -| Name | Type | Required | Description | -|------|------|----------|--------------| -| `headers` | oas:CreateAuthTokenHeaders | Yes | Headers to be sent with the request | -| `payload` | oas:GetAuthenticationTokenAPIv2Request | Yes | | - -**Returns:** `oas:tokenResponse|error` - -**Sample code:** - -```ballerina -oas:tokenResponse result = check pricefxClient->createAuthToken(headers, payload); -``` - -
-
- -
-deleteAuthToken - -
- -Delete an Authentication Token (API V2 only) - -**Parameters:** - -| Name | Type | Required | Description | -|------|------|----------|--------------| -| `headers` | oas:DeleteAuthTokenHeaders | No | Headers to be sent with the request | - -**Returns:** `http:Response|error` - -**Sample code:** - -```ballerina -http:Response result = check pricefxClient->deleteAuthToken(); -``` - -
-
- -
-login - -
- -User Login (V1) - -**Parameters:** - -| Name | Type | Required | Description | -|------|------|----------|--------------| -| `headers` | map<string|string[]> | No | Headers to be sent with the request | - -**Returns:** `oas:UserLoginResponse|error` - -**Sample code:** - -```ballerina -oas:UserLoginResponse result = check pricefxClient->login(); -``` - -
-
- -
-oauthAuthorize - -
- -OAuth Authorization Request - -**Parameters:** - -| Name | Type | Required | Description | -|------|------|----------|--------------| -| `headers` | map<string|string[]> | No | Headers to be sent with the request | -| `queries` | *oas:OauthAuthorizeQueries | Yes | Queries to be sent with the request | - -**Returns:** `error?` - -**Sample code:** - -```ballerina -error? result = check pricefxClient->oauthAuthorize(queries); -``` - -
-
- -
-oauthToken - -
- -Access Token Request - -**Parameters:** - -| Name | Type | Required | Description | -|------|------|----------|--------------| -| `headers` | map<string|string[]> | No | Headers to be sent with the request | -| `queries` | *oas:OauthTokenQueries | Yes | Queries to be sent with the request | - -**Returns:** `oas:OAuthTokenResponse|error` - -**Sample code:** - -```ballerina -oas:OAuthTokenResponse result = check pricefxClient->oauthToken(queries); -``` - -
-
- -
-refreshAuthToken - -
- -Refresh an Authentication Token (API V2 only) - -**Parameters:** - -| Name | Type | Required | Description | -|------|------|----------|--------------| -| `headers` | oas:RefreshAuthTokenHeaders | Yes | Headers to be sent with the request | -| `payload` | oas:TokenRefreshBody | Yes | Provide the referesh token | - -**Returns:** `oas:tokenResponse|error` - -**Sample code:** - -```ballerina -oas:tokenResponse result = check pricefxClient->refreshAuthToken(headers, payload); -``` - -
-
- -
-samlSignOn - -
- -Authenticate with SAML - -**Parameters:** - -| Name | Type | Required | Description | -|------|------|----------|--------------| -| `headers` | map<string|string[]> | No | Headers to be sent with the request | -| `queries` | *oas:SamlSignOnQueries | Yes | Queries to be sent with the request | - -**Returns:** `error?` - -**Sample code:** - -```ballerina -error? result = check pricefxClient->samlSignOn(queries); -``` - -
-
- #### User Admin
@@ -263,7 +88,7 @@ Add a User | Name | Type | Required | Description | |------|------|----------|--------------| -| `payload` | oas:AddUserRequest | Yes | | +| `payload` | oas:AddUserRequest | Yes | Request payload | | `headers` | map<string|string[]> | No | Headers to be sent with the request | **Returns:** `oas:userResponse|error` @@ -288,7 +113,7 @@ Assign a Business Role | Name | Type | Required | Description | |------|------|----------|--------------| -| `payload` | oas:AssignBusinessRoleRequest | Yes | | +| `payload` | oas:AssignBusinessRoleRequest | Yes | Request payload | | `headers` | map<string|string[]> | No | Headers to be sent with the request | **Returns:** `oas:AssignBusinessRoleResponse|error` @@ -314,7 +139,7 @@ Assign a Business Role to a User | Name | Type | Required | Description | |------|------|----------|--------------| | `userId` | string | Yes | The ID of the user you want to assign a role to. The `userId` is the `typedId` without the `U` suffix. For example, `userId` of the **2147490806.U** is **2147490806** | -| `payload` | oas:AssignBusinessRoleToUserRequest | Yes | | +| `payload` | oas:AssignBusinessRoleToUserRequest | Yes | Request payload | | `headers` | map<string|string[]> | No | Headers to be sent with the request | **Returns:** `oas:AssignBusinessRoleToUserResponse|error` @@ -339,7 +164,7 @@ Assign a Group to a Business Role | Name | Type | Required | Description | |------|------|----------|--------------| -| `payload` | oas:AssignGroupToBusinessRoleRequest | Yes | | +| `payload` | oas:AssignGroupToBusinessRoleRequest | Yes | Request payload | | `headers` | map<string|string[]> | No | Headers to be sent with the request | **Returns:** `oas:AssignGroupToBusinessRoleResponse|error` @@ -364,7 +189,7 @@ Assign a Role to a Business Role | Name | Type | Required | Description | |------|------|----------|--------------| -| `payload` | oas:AssignRoleToBusinessRoleRequest | Yes | | +| `payload` | oas:AssignRoleToBusinessRoleRequest | Yes | Request payload | | `headers` | map<string|string[]> | No | Headers to be sent with the request | **Returns:** `oas:AssignRoleToBusinessRoleResponse|error` @@ -390,7 +215,7 @@ Assign a Role to a User | Name | Type | Required | Description | |------|------|----------|--------------| | `userId` | string | Yes | The ID of the user you want to assign a role to. The `userId` is the `typedId` without the `U` suffix. For example, `userId` of the **2147490806.U** is **2147490806** | -| `payload` | oas:AssignRoleToUserRequest | Yes | | +| `payload` | oas:AssignRoleToUserRequest | Yes | Request payload | | `headers` | map<string|string[]> | No | Headers to be sent with the request | **Returns:** `oas:AssignRoleToUserResponse|error` @@ -415,7 +240,7 @@ Assign a Role to Users | Name | Type | Required | Description | |------|------|----------|--------------| -| `payload` | oas:AssignRoleToUsersRequest | Yes | | +| `payload` | oas:AssignRoleToUsersRequest | Yes | Request payload | | `headers` | map<string|string[]> | No | Headers to be sent with the request | **Returns:** `oas:AssignRoleToUsersResponse|error` @@ -440,7 +265,7 @@ Assign a User Group to Users | Name | Type | Required | Description | |------|------|----------|--------------| -| `payload` | oas:AssignUserGroupToUsersRequest | Yes | | +| `payload` | oas:AssignUserGroupToUsersRequest | Yes | Request payload | | `headers` | map<string|string[]> | No | Headers to be sent with the request | **Returns:** `oas:AssignUserGroupToUsersResponse|error` @@ -466,7 +291,7 @@ Assign a User to a User Group | Name | Type | Required | Description | |------|------|----------|--------------| | `userId` | string | Yes | The ID of the user you want to add to the group. The `userId` is the `typedId` without the `U` suffix. For example, `userId` of the **2147490806.U** is **2147490806** | -| `payload` | oas:AssignUserToUserGroupRequest | Yes | | +| `payload` | oas:AssignUserToUserGroupRequest | Yes | Request payload | | `headers` | map<string|string[]> | No | Headers to be sent with the request | **Returns:** `oas:AssignUserToUserGroupResponse|error` @@ -491,7 +316,7 @@ Change a Current User Password | Name | Type | Required | Description | |------|------|----------|--------------| -| `payload` | oas:ChangeCurrentUserPasswordRequest | Yes | | +| `payload` | oas:ChangeCurrentUserPasswordRequest | Yes | Request payload | | `headers` | map<string|string[]> | No | Headers to be sent with the request | **Returns:** `oas:ChangeCurrentUserPasswordResponse|error` @@ -517,7 +342,7 @@ Change a User Password | Name | Type | Required | Description | |------|------|----------|--------------| | `userId` | string | Yes | Enter the ID of the user whose password you want to change. The `userId` is the `typedId` without the `U` suffix. For example, `userId` of the **2147490806.U** is **2147490806** | -| `payload` | oas:ChangeUserPasswordRequest | Yes | | +| `payload` | oas:ChangeUserPasswordRequest | Yes | Request payload | | `headers` | map<string|string[]> | No | Headers to be sent with the request | **Returns:** `oas:ChangeUserPasswordResponse|error` @@ -592,7 +417,7 @@ Delete a Business Role | Name | Type | Required | Description | |------|------|----------|--------------| -| `payload` | oas:DeleteBusinessRoleRequest | Yes | | +| `payload` | oas:DeleteBusinessRoleRequest | Yes | Request payload | | `headers` | map<string|string[]> | No | Headers to be sent with the request | **Returns:** `oas:DeleteBusinessRoleResponse|error` @@ -617,7 +442,7 @@ Delete a User | Name | Type | Required | Description | |------|------|----------|--------------| -| `payload` | oas:DeleteUserRequest | Yes | | +| `payload` | oas:DeleteUserRequest | Yes | Request payload | | `headers` | map<string|string[]> | No | Headers to be sent with the request | **Returns:** `oas:userResponse|error` @@ -642,7 +467,7 @@ Delete a User Group | Name | Type | Required | Description | |------|------|----------|--------------| -| `payload` | oas:DeleteUserGroupRequest | Yes | | +| `payload` | oas:DeleteUserGroupRequest | Yes | Request payload | | `headers` | map<string|string[]> | No | Headers to be sent with the request | **Returns:** `oas:DeleteUserGroupResponse|error` @@ -667,7 +492,7 @@ Generate a JWT Token | Name | Type | Required | Description | |------|------|----------|--------------| -| `payload` | oas:GenerateJWTTokenRequest | Yes | | +| `payload` | oas:GenerateJWTTokenRequest | Yes | Request payload | | `headers` | map<string|string[]> | No | Headers to be sent with the request | **Returns:** `oas:GenerateJWTTokenResponse|error` @@ -743,7 +568,7 @@ Get a User Audit Report |------|------|----------|--------------| | `typeCode` | "R"|"UG"|"BR" | Yes | Specify whether you want to retrieve a report based on user roles (`R`), user groups (`UG`), or business roles (`BR`) | | `id` | string | Yes | Specify the `id`of the user role, user group, or business role for which you want to retrieve users. Call the `/fetch/R`, `/fetch/UG`, or `/fetch/BR` endpoint to retrieve a list with corresponding user roles, user groups, or business roles | -| `payload` | record {} | Yes | | +| `payload` | record {} | Yes | Request payload | | `headers` | map<string|string[]> | No | Headers to be sent with the request | **Returns:** `oas:UserAuditReportEnvelope|error` @@ -893,7 +718,7 @@ List Users | Name | Type | Required | Description | |------|------|----------|--------------| -| `payload` | oas:ListUsersRequest | Yes | | +| `payload` | oas:ListUsersRequest | Yes | Request payload | | `headers` | map<string|string[]> | No | Headers to be sent with the request | **Returns:** `oas:ListUsersResponse|error` @@ -945,7 +770,7 @@ Add a Product | Name | Type | Required | Description | |------|------|----------|--------------| -| `payload` | oas:AddProductRequest | Yes | | +| `payload` | oas:AddProductRequest | Yes | Request payload | | `headers` | map<string|string[]> | No | Headers to be sent with the request | **Returns:** `oas:productResponse|error` @@ -995,7 +820,7 @@ Delete a Product | Name | Type | Required | Description | |------|------|----------|--------------| -| `payload` | oas:DeleteProductRequest | Yes | | +| `payload` | oas:DeleteProductRequest | Yes | Request payload | | `headers` | map<string|string[]> | No | Headers to be sent with the request | **Returns:** `oas:DeleteProductResponse|error` @@ -1045,7 +870,7 @@ List Products | Name | Type | Required | Description | |------|------|----------|--------------| -| `payload` | oas:ListProductsRequest | Yes | | +| `payload` | oas:ListProductsRequest | Yes | Request payload | | `headers` | map<string|string[]> | No | Headers to be sent with the request | **Returns:** `oas:productResponse|error` @@ -1070,7 +895,7 @@ List Recommendations | Name | Type | Required | Description | |------|------|----------|--------------| -| `payload` | oas:ListRecommendationsRequest | Yes | | +| `payload` | oas:ListRecommendationsRequest | Yes | Request payload | | `headers` | map<string|string[]> | No | Headers to be sent with the request | **Returns:** `oas:ListRecommendationsEnvelope|error` @@ -1095,7 +920,7 @@ Search a Product | Name | Type | Required | Description | |------|------|----------|--------------| -| `payload` | oas:SearchProductRequest | Yes | | +| `payload` | oas:SearchProductRequest | Yes | Request payload | | `headers` | map<string|string[]> | No | Headers to be sent with the request | **Returns:** `oas:SearchProductResponse|error` @@ -1120,7 +945,7 @@ Search a Product (URL) | Name | Type | Required | Description | |------|------|----------|--------------| -| `query` | string | Yes | | +| `query` | string | Yes | The query to be sent with the request | | `headers` | map<string|string[]> | No | Headers to be sent with the request | **Returns:** `oas:SearchProductURLResponse|error` @@ -1197,7 +1022,7 @@ Delete a Product Extension | Name | Type | Required | Description | |------|------|----------|--------------| -| `payload` | oas:DeleteProductExtensionRequest | Yes | | +| `payload` | oas:DeleteProductExtensionRequest | Yes | Request payload | | `headers` | map<string|string[]> | No | Headers to be sent with the request | **Returns:** `oas:DeleteProductExtensionResponse|error` @@ -1222,7 +1047,7 @@ Get Product Attribute Meta | Name | Type | Required | Description | |------|------|----------|--------------| -| `payload` | record {} | Yes | | +| `payload` | record {} | Yes | Request payload | | `headers` | map<string|string[]> | No | Headers to be sent with the request | **Returns:** `oas:ProductAttributeMetaEnvelope|error` @@ -1273,7 +1098,7 @@ List Product Extension Objects | Name | Type | Required | Description | |------|------|----------|--------------| | `productMasterExtensionName` | string | Yes | Enter the name of Product Extension you want to retrieve objects from. You can find the name in **Administration** > **Configuration** > **Master Data** > **Product Master Extension** or using the **/configurationmanager.get/productextension** endpoint | -| `payload` | oas:ListProductExtensionObjectsRequest | Yes | | +| `payload` | oas:ListProductExtensionObjectsRequest | Yes | Request payload | | `headers` | map<string|string[]> | No | Headers to be sent with the request | | `queries` | *oas:ListProductExtensionObjectsQueries | Yes | Queries to be sent with the request | @@ -1299,7 +1124,7 @@ Upsert a Product Extension | Name | Type | Required | Description | |------|------|----------|--------------| -| `payload` | oas:UpsertProductExtensionRequest | Yes | | +| `payload` | oas:UpsertProductExtensionRequest | Yes | Request payload | | `headers` | map<string|string[]> | No | Headers to be sent with the request | **Returns:** `oas:productResponse|error` @@ -1369,7 +1194,7 @@ oas:CreateUploadSlotResponse result = check pricefxClient->getNewUploadSlot();
-2. Upload a File + request - +2. Upload a File **Parameters:** @@ -1377,7 +1202,7 @@ oas:CreateUploadSlotResponse result = check pricefxClient->getNewUploadSlot(); |------|------|----------|--------------| | `slotId` | string | Yes | Enter the ID of the slot you want to use for the upload | | `sku` | string | Yes | Enter the `sku` of the product you want to add the product image to | -| `payload` | oas:TypedIdslotIdBody | Yes | | +| `payload` | oas:TypedIdslotIdBody | Yes | Request payload | | `headers` | map<string|string[]> | No | Headers to be sent with the request | **Returns:** `error?` @@ -1404,7 +1229,7 @@ Get Competition Data | Name | Type | Required | Description | |------|------|----------|--------------| -| `payload` | oas:GetCompetitionDataRequest | Yes | | +| `payload` | oas:GetCompetitionDataRequest | Yes | Request payload | | `headers` | map<string|string[]> | No | Headers to be sent with the request | **Returns:** `oas:GetCompetitionDataResponse|error` @@ -1430,7 +1255,7 @@ Get a Product Set | Name | Type | Required | Description | |------|------|----------|--------------| | `label` | string | Yes | Enter the name of the product set you want to retrieve | -| `payload` | oas:GetProductSetRequest | Yes | | +| `payload` | oas:GetProductSetRequest | Yes | Request payload | | `headers` | map<string|string[]> | No | Headers to be sent with the request | **Returns:** `oas:GetProductSetResponse|error` @@ -1480,7 +1305,7 @@ List Product Sets | Name | Type | Required | Description | |------|------|----------|--------------| -| `payload` | oas:ListProductSetsRequest | Yes | | +| `payload` | oas:ListProductSetsRequest | Yes | Request payload | | `headers` | map<string|string[]> | No | Headers to be sent with the request | **Returns:** `oas:ListProductSetsResponse|error` @@ -1507,7 +1332,7 @@ Add a Customer | Name | Type | Required | Description | |------|------|----------|--------------| -| `payload` | oas:AddCustomerRequest | Yes | | +| `payload` | oas:AddCustomerRequest | Yes | Request payload | | `headers` | map<string|string[]> | No | Headers to be sent with the request | **Returns:** `oas:customerResponse|error` @@ -1532,7 +1357,7 @@ Assign Customers | Name | Type | Required | Description | |------|------|----------|--------------| -| `payload` | oas:AssignCustomersRequest | Yes | | +| `payload` | oas:AssignCustomersRequest | Yes | Request payload | | `headers` | map<string|string[]> | No | Headers to be sent with the request | **Returns:** `oas:assignmentResponse|error` @@ -1582,7 +1407,7 @@ Delete a Customer | Name | Type | Required | Description | |------|------|----------|--------------| -| `payload` | oas:DeleteCustomerRequest | Yes | | +| `payload` | oas:DeleteCustomerRequest | Yes | Request payload | | `headers` | map<string|string[]> | No | Headers to be sent with the request | **Returns:** `oas:DeleteCustomerResponse|error` @@ -1633,7 +1458,7 @@ List Customer Assignments | Name | Type | Required | Description | |------|------|----------|--------------| | `typedId` | string | Yes | The `typedId` of the entity you want to retrieve assignments for | -| `payload` | oas:ListCustomerAssignmentsRequest | Yes | | +| `payload` | oas:ListCustomerAssignmentsRequest | Yes | Request payload | | `headers` | map<string|string[]> | No | Headers to be sent with the request | **Returns:** `oas:assignmentResponse|error` @@ -1658,7 +1483,7 @@ List Customers | Name | Type | Required | Description | |------|------|----------|--------------| -| `payload` | oas:ListCustomersRequest | Yes | | +| `payload` | oas:ListCustomersRequest | Yes | Request payload | | `headers` | map<string|string[]> | No | Headers to be sent with the request | **Returns:** `oas:customerResponse|error` @@ -1735,7 +1560,7 @@ Delete a Customer Extension | Name | Type | Required | Description | |------|------|----------|--------------| -| `payload` | oas:DeleteCustomerExtensionRequest | Yes | | +| `payload` | oas:DeleteCustomerExtensionRequest | Yes | Request payload | | `headers` | map<string|string[]> | No | Headers to be sent with the request | **Returns:** `oas:DeleteCustomerExtensionResponse|error` @@ -1786,7 +1611,7 @@ List Customer Extension Objects | Name | Type | Required | Description | |------|------|----------|--------------| | `customerMasterExtensionName` | string | Yes | Enter the name of Customer Extension you want to retrieve objects from. You can find the name in **Administration** > **Configuration** > **Master Data** > **Customer Master Extension** or using the **/configurationmanager.get/customerextension** endpoint | -| `payload` | oas:ListCustomerExtensionObjectsRequest | Yes | | +| `payload` | oas:ListCustomerExtensionObjectsRequest | Yes | Request payload | | `headers` | map<string|string[]> | No | Headers to be sent with the request | | `queries` | *oas:ListCustomerExtensionObjectsQueries | Yes | Queries to be sent with the request | @@ -1806,7 +1631,7 @@ oas:ListCustomerExtensionObjectsResponse result = check pricefxClient->listCusto
-Upload a File to PX/CX/SX + request - +Upload a File to PX/CX/SX **Parameters:** @@ -1815,7 +1640,7 @@ Upload a File to PX/CX/SX + request - | `typeCode` | "PX"|"CX"|"SX" | Yes | Type code of the table you want to upload the file to | | `target` | string | Yes | The name of the PX/CX/SX table | | `uploadSlotId` | string | Yes | `id` of the upload slot. Use the **uploadslotmanager.newuploadslot** endpoint to retrieve the `id` | -| `payload` | oas:TargetuploadSlotIdBody | Yes | | +| `payload` | oas:TargetuploadSlotIdBody | Yes | Request payload | | `headers` | map<string|string[]> | No | Headers to be sent with the request | | `queries` | *oas:UploadFileToPxCxSxQueries | Yes | Queries to be sent with the request | @@ -1868,7 +1693,7 @@ Add a Seller | Name | Type | Required | Description | |------|------|----------|--------------| -| `payload` | oas:AddSellerRequest | Yes | | +| `payload` | oas:AddSellerRequest | Yes | Request payload | | `headers` | map<string|string[]> | No | Headers to be sent with the request | **Returns:** `oas:AddSellerEnvelope|error` @@ -1893,7 +1718,7 @@ Delete a Seller | Name | Type | Required | Description | |------|------|----------|--------------| -| `payload` | oas:DeleteSellerRequest | Yes | | +| `payload` | oas:DeleteSellerRequest | Yes | Request payload | | `headers` | map<string|string[]> | No | Headers to be sent with the request | **Returns:** `oas:DeleteSellerEnvelope|error` @@ -1918,7 +1743,7 @@ List Sellers | Name | Type | Required | Description | |------|------|----------|--------------| -| `payload` | oas:ListSellersRequest | Yes | | +| `payload` | oas:ListSellersRequest | Yes | Request payload | | `headers` | map<string|string[]> | No | Headers to be sent with the request | **Returns:** `oas:ListSellersEnvelope|error` @@ -1943,7 +1768,7 @@ Update a Seller | Name | Type | Required | Description | |------|------|----------|--------------| -| `payload` | oas:UpdateSellerRequest | Yes | | +| `payload` | oas:UpdateSellerRequest | Yes | Request payload | | `headers` | map<string|string[]> | No | Headers to be sent with the request | **Returns:** `oas:UpdateSellerEnvelope|error` @@ -1970,7 +1795,7 @@ Add a Seller Extension | Name | Type | Required | Description | |------|------|----------|--------------| -| `payload` | oas:AddSellerExtensionRequest | Yes | | +| `payload` | oas:AddSellerExtensionRequest | Yes | Request payload | | `headers` | map<string|string[]> | No | Headers to be sent with the request | **Returns:** `oas:AddSellerExtensionResponse|error` @@ -1995,7 +1820,7 @@ Delete a Seller Extension | Name | Type | Required | Description | |------|------|----------|--------------| -| `payload` | oas:DeleteSellerExtensionRequest | Yes | | +| `payload` | oas:DeleteSellerExtensionRequest | Yes | Request payload | | `headers` | map<string|string[]> | No | Headers to be sent with the request | **Returns:** `oas:DeleteSellerExtensionResponse|error` @@ -2048,7 +1873,7 @@ Import a File |------|------|----------|--------------| | `sXCategory` | string | Yes | The Seller Extension category (the `Name` from the *Seller Master Extension* table) | | `slotId` | string | Yes | The ID that is returned by the **/uploadmanager.newuploadslot** (Create an Upload Slot) endpoint | -| `payload` | oas:ImportSXFileRequest | Yes | | +| `payload` | oas:ImportSXFileRequest | Yes | Request payload | | `headers` | map<string|string[]> | No | Headers to be sent with the request | | `queries` | *oas:ImportSellerExtensionFileQueries | Yes | Queries to be sent with the request | @@ -2124,7 +1949,7 @@ Update a Seller Extension | Name | Type | Required | Description | |------|------|----------|--------------| -| `payload` | oas:UpdateSXBody | Yes | | +| `payload` | oas:UpdateSXBody | Yes | Request payload | | `headers` | map<string|string[]> | No | Headers to be sent with the request | **Returns:** `oas:UpdateSellerExtensionEnvelope|error` @@ -2151,7 +1976,7 @@ Add a Condition Record Item Attribute Meta | Name | Type | Required | Description | |------|------|----------|--------------| -| `payload` | oas:AddCRCIMBody | Yes | | +| `payload` | oas:AddCRCIMBody | Yes | Request payload | | `headers` | map<string|string[]> | No | Headers to be sent with the request | **Returns:** `oas:ConditionRecordItemMetaOperationEnvelope|error` @@ -2176,7 +2001,7 @@ Add a Condition Record Set | Name | Type | Required | Description | |------|------|----------|--------------| -| `payload` | oas:AddCRCSBody | Yes | | +| `payload` | oas:AddCRCSBody | Yes | Request payload | | `headers` | map<string|string[]> | No | Headers to be sent with the request | **Returns:** `oas:ConditionRecordSetOperationEnvelope|error` @@ -2201,7 +2026,7 @@ Delete a Condition Record Item Attribute Meta | Name | Type | Required | Description | |------|------|----------|--------------| -| `payload` | oas:DeleteCRCIMBody | Yes | | +| `payload` | oas:DeleteCRCIMBody | Yes | Request payload | | `headers` | map<string|string[]> | No | Headers to be sent with the request | **Returns:** `oas:ConditionRecordItemMetaOperationEnvelope|error` @@ -2226,7 +2051,7 @@ Delete a Condition Records Set | Name | Type | Required | Description | |------|------|----------|--------------| -| `payload` | oas:DcrmanagerDeletemassopidBody | Yes | | +| `payload` | oas:DcrmanagerDeletemassopidBody | Yes | Request payload | | `headers` | map<string|string[]> | No | Headers to be sent with the request | **Returns:** `oas:ConditionRecordSetOperationEnvelope|error` @@ -2251,7 +2076,7 @@ Get a Condition Record Item | Name | Type | Required | Description | |------|------|----------|--------------| -| `payload` | record {} | Yes | | +| `payload` | record {} | Yes | Request payload | | `headers` | map<string|string[]> | No | Headers to be sent with the request | **Returns:** `oas:ConditionRecordItemEnvelope|error` @@ -2276,7 +2101,7 @@ Get a Condition Record Item Attribute Meta | Name | Type | Required | Description | |------|------|----------|--------------| -| `payload` | oas:FetchCRCIMBody | Yes | | +| `payload` | oas:FetchCRCIMBody | Yes | Request payload | | `headers` | map<string|string[]> | No | Headers to be sent with the request | **Returns:** `oas:ConditionRecordItemMetaEnvelope|error` @@ -2301,7 +2126,7 @@ Get Condition Record Set Items With Set Id Validation | Name | Type | Required | Description | |------|------|----------|--------------| -| `payload` | oas:ConditionrecordsetFetchCRCI3Body | Yes | | +| `payload` | oas:ConditionrecordsetFetchCRCI3Body | Yes | Request payload | | `headers` | map<string|string[]> | No | Headers to be sent with the request | **Returns:** `oas:ConditionRecordSetItemsEnvelope|error` @@ -2326,7 +2151,7 @@ List Condition Record Sets | Name | Type | Required | Description | |------|------|----------|--------------| -| `payload` | record {} | Yes | | +| `payload` | record {} | Yes | Request payload | | `headers` | map<string|string[]> | No | Headers to be sent with the request | **Returns:** `oas:ListConditionRecordSetsEnvelope|error` @@ -2377,7 +2202,7 @@ Update a Condition Record Set | Name | Type | Required | Description | |------|------|----------|--------------| | `id` | string | Yes | `id` of the ConditionRecordSet object you want to update | -| `payload` | oas:ConditionrecordsetUpdateidBody | Yes | | +| `payload` | oas:ConditionrecordsetUpdateidBody | Yes | Request payload | | `headers` | map<string|string[]> | No | Headers to be sent with the request | **Returns:** `oas:ConditionRecordSetOperationEnvelope|error` @@ -2430,7 +2255,7 @@ Calculate a Pricelist | Name | Type | Required | Description | |------|------|----------|--------------| | `id` | string | Yes | The ID of the Price List you want to calculate. The `id` is the `typedId` without the suffix. For example, the `id` attribute of the item with `typedId` = **2147484837.PL** is **2147484837** | -| `payload` | oas:PricelistmanagerCalculateidBody | Yes | | +| `payload` | oas:PricelistmanagerCalculateidBody | Yes | Request payload | | `headers` | map<string|string[]> | No | Headers to be sent with the request | **Returns:** `oas:CalculatePricelistResponse|error` @@ -2455,7 +2280,7 @@ Create a Price List | Name | Type | Required | Description | |------|------|----------|--------------| -| `payload` | oas:CreatePriceListRequest | Yes | | +| `payload` | oas:CreatePriceListRequest | Yes | Request payload | | `headers` | map<string|string[]> | No | Headers to be sent with the request | **Returns:** `oas:CreatePriceListResponse|error` @@ -2481,7 +2306,7 @@ Create a Revision | Name | Type | Required | Description | |------|------|----------|--------------| | `id` | string | Yes | The ID of the Price List you want to create a revision for. The `id` is the `typedId` without the suffix. For example, the `id` attribute of the item with `typedId` = **2147484837.PL** is **2147484837** | -| `payload` | oas:CreateRevisionRequest | Yes | | +| `payload` | oas:CreateRevisionRequest | Yes | Request payload | | `headers` | map<string|string[]> | No | Headers to be sent with the request | **Returns:** `oas:pricelistitemResponse|error` @@ -2506,7 +2331,7 @@ Delete a Price List | Name | Type | Required | Description | |------|------|----------|--------------| -| `payload` | oas:DeletePriceListRequest | Yes | | +| `payload` | oas:DeletePriceListRequest | Yes | Request payload | | `headers` | map<string|string[]> | No | Headers to be sent with the request | **Returns:** `oas:DeletePriceListResponse|error` @@ -2532,7 +2357,7 @@ Delete a Price List Item | Name | Type | Required | Description | |------|------|----------|--------------| | `id` | string | Yes | Enter the ID of the Price List where you want to delete an item from | -| `payload` | oas:DeletePriceListItemRequest | Yes | | +| `payload` | oas:DeletePriceListItemRequest | Yes | Request payload | | `headers` | map<string|string[]> | No | Headers to be sent with the request | **Returns:** `oas:DeletePriceListItemResponse|error` @@ -2557,7 +2382,7 @@ Delete a Price List Type | Name | Type | Required | Description | |------|------|----------|--------------| -| `payload` | oas:DeletePLTTBody | Yes | | +| `payload` | oas:DeletePLTTBody | Yes | Request payload | | `headers` | map<string|string[]> | No | Headers to be sent with the request | **Returns:** `oas:PriceListTypeOperationEnvelope|error` @@ -2608,7 +2433,7 @@ List Price List Items | Name | Type | Required | Description | |------|------|----------|--------------| | `id` | string | Yes | The ID of the Price List you want to retrieve items for. The `id` is the `typedId` without the suffix. For example, the `id` attribute of the item with `typedId` = **2147484837.PL** is **2147484837** | -| `payload` | oas:ListPriceListItemsRequest | Yes | | +| `payload` | oas:ListPriceListItemsRequest | Yes | Request payload | | `headers` | map<string|string[]> | No | Headers to be sent with the request | **Returns:** `oas:pricelistitemResponse|error` @@ -2657,7 +2482,7 @@ List Price Lists | Name | Type | Required | Description | |------|------|----------|--------------| -| `payload` | oas:ListPriceListsRequest | Yes | | +| `payload` | oas:ListPriceListsRequest | Yes | Request payload | | `headers` | map<string|string[]> | No | Headers to be sent with the request | **Returns:** `oas:ListPriceListsResponse|error` @@ -2682,8 +2507,8 @@ Revoke a Price List | Name | Type | Required | Description | |------|------|----------|--------------| -| `id` | string | Yes | | -| `payload` | oas:PricelistmanagerSubmitidBody | Yes | | +| `id` | string | Yes | The id to be sent with the request | +| `payload` | oas:PricelistmanagerSubmitidBody | Yes | Request payload | | `headers` | map<string|string[]> | No | Headers to be sent with the request | **Returns:** `oas:pricelistitemResponse|error` @@ -2709,7 +2534,7 @@ Submit a Price List | Name | Type | Required | Description | |------|------|----------|--------------| | `id` | string | Yes | The ID of the Price List you want to submit. The `id` is the `typedId` without the suffix. For example, the `id` attribute of the item with `typedId` = **2147484837.PL** is **2147484837** | -| `payload` | oas:PricelistmanagerSubmitidBody | Yes | | +| `payload` | oas:PricelistmanagerSubmitidBody | Yes | Request payload | | `headers` | map<string|string[]> | No | Headers to be sent with the request | **Returns:** `oas:pricelistitemResponse|error` @@ -2735,7 +2560,7 @@ Update a Pricelist Detail | Name | Type | Required | Description | |------|------|----------|--------------| | `id` | string | Yes | The ID of the Price List whose Item you want to update. The `id` is the `typedId` without the suffix. For example, the `id` attribute of the item with `typedId` = **2147484837.PL** is **2147484837** | -| `payload` | oas:UpdatePricelistDetailRequest | Yes | | +| `payload` | oas:UpdatePricelistDetailRequest | Yes | Request payload | | `headers` | map<string|string[]> | No | Headers to be sent with the request | **Returns:** `oas:UpdatePricelistDetailResponse|error` @@ -2760,7 +2585,7 @@ Update a Price List Type | Name | Type | Required | Description | |------|------|----------|--------------| -| `payload` | oas:UpdatePLTTBody | Yes | | +| `payload` | oas:UpdatePLTTBody | Yes | Request payload | | `headers` | map<string|string[]> | No | Headers to be sent with the request | **Returns:** `oas:PriceListTypeOperationEnvelope|error` @@ -2788,7 +2613,7 @@ Add Products to a Manual Pricelist | Name | Type | Required | Description | |------|------|----------|--------------| | `id` | string | Yes | The ID of the Manual Price List where you want to add products to | -| `payload` | oas:AddProductsToManualPriceListRequest | Yes | | +| `payload` | oas:AddProductsToManualPriceListRequest | Yes | Request payload | | `headers` | map<string|string[]> | No | Headers to be sent with the request | **Returns:** `oas:generalResponse|error` @@ -2814,7 +2639,7 @@ Add Products to a Manual Price List (No Recalculation) | Name | Type | Required | Description | |------|------|----------|--------------| | `id` | string | Yes | The ID of the Manual Price List where you want to add products to | -| `payload` | oas:AddProductsToManualPriceListNoRecalcRequest | Yes | | +| `payload` | oas:AddProductsToManualPriceListNoRecalcRequest | Yes | Request payload | | `headers` | map<string|string[]> | No | Headers to be sent with the request | **Returns:** `oas:AddProductsToManualPriceListNoRecalcResponse|error` @@ -2889,7 +2714,7 @@ Create a Manual Price List | Name | Type | Required | Description | |------|------|----------|--------------| -| `payload` | oas:CreateManualPriceListRequest | Yes | | +| `payload` | oas:CreateManualPriceListRequest | Yes | Request payload | | `headers` | map<string|string[]> | No | Headers to be sent with the request | **Returns:** `oas:manualpricelistResponse|error` @@ -2914,7 +2739,7 @@ Delete a Manual Price List | Name | Type | Required | Description | |------|------|----------|--------------| -| `payload` | oas:DeleteManualPriceListRequest | Yes | | +| `payload` | oas:DeleteManualPriceListRequest | Yes | Request payload | | `headers` | map<string|string[]> | No | Headers to be sent with the request | **Returns:** `oas:manualpricelistResponse|error` @@ -2940,7 +2765,7 @@ Delete a Product from a Manual Price List | Name | Type | Required | Description | |------|------|----------|--------------| | `id` | string | Yes | The ID of the Manual Price List whose product you want to delete | -| `payload` | oas:DeleteProductFromManualPriceListRequest | Yes | | +| `payload` | oas:DeleteProductFromManualPriceListRequest | Yes | Request payload | | `headers` | map<string|string[]> | No | Headers to be sent with the request | **Returns:** `oas:productResponse|error` @@ -2966,7 +2791,7 @@ Delete Products from a Manual Price List | Name | Type | Required | Description | |------|------|----------|--------------| | `id` | string | Yes | The ID of the Manual Price List whose products you want to delete | -| `payload` | oas:DeleteProductsFromManualPriceListRequest | Yes | | +| `payload` | oas:DeleteProductsFromManualPriceListRequest | Yes | Request payload | | `headers` | map<string|string[]> | No | Headers to be sent with the request | **Returns:** `oas:DeleteProductsFromManualPriceListResponse|error` @@ -2992,7 +2817,7 @@ List Products From a Manual Price List | Name | Type | Required | Description | |------|------|----------|--------------| | `id` | string | Yes | The ID of the Manual Price List you want to retrieve products from | -| `payload` | oas:ListProductsFromManualPriceListRequest | Yes | | +| `payload` | oas:ListProductsFromManualPriceListRequest | Yes | Request payload | | `headers` | map<string|string[]> | No | Headers to be sent with the request | **Returns:** `oas:ListProductsFromManualPriceListResponse|error` @@ -3017,7 +2842,7 @@ List Manual Price Lists | Name | Type | Required | Description | |------|------|----------|--------------| -| `payload` | oas:ListManualPriceListsRequest | Yes | | +| `payload` | oas:ListManualPriceListsRequest | Yes | Request payload | | `headers` | map<string|string[]> | No | Headers to be sent with the request | **Returns:** `oas:manualpricelistResponse|error` @@ -3043,7 +2868,7 @@ Mass Edit a Manual Price List Items | Name | Type | Required | Description | |------|------|----------|--------------| | `id` | string | Yes | The ID of the Manual Price List whose products you want to update | -| `payload` | oas:MassEditMPLRequest | Yes | | +| `payload` | oas:MassEditMPLRequest | Yes | Request payload | | `headers` | map<string|string[]> | No | Headers to be sent with the request | **Returns:** `oas:MassEditManualPriceListResponse|error` @@ -3069,7 +2894,7 @@ Update a Manual Price List Item | Name | Type | Required | Description | |------|------|----------|--------------| | `id` | string | Yes | The ID of the Manual Price List whose item you want to update | -| `payload` | oas:UpdateManualPriceListRequest | Yes | | +| `payload` | oas:UpdateManualPriceListRequest | Yes | Request payload | | `headers` | map<string|string[]> | No | Headers to be sent with the request | **Returns:** `oas:UpdateManualPriceListResponse|error` @@ -3123,7 +2948,7 @@ Submit a Calculation Grid Item | Name | Type | Required | Description | |------|------|----------|--------------| | `id` | string | Yes | The `id` of the Calculation Grid you want to submit items for. You can retrieve the `id` of the CG, for example, by calling the `/fetch/CG` endpoint | -| `payload` | oas:SubmitCalculationGridItemRequest | Yes | | +| `payload` | oas:SubmitCalculationGridItemRequest | Yes | Request payload | | `headers` | map<string|string[]> | No | Headers to be sent with the request | **Returns:** `oas:SubmitCalculationGridItemResponse|error` @@ -3148,7 +2973,7 @@ Add a Calculation Grid | Name | Type | Required | Description | |------|------|----------|--------------| -| `payload` | oas:AddCalculationGridRequest | Yes | | +| `payload` | oas:AddCalculationGridRequest | Yes | Request payload | | `headers` | map<string|string[]> | No | Headers to be sent with the request | **Returns:** `oas:AddCalculationGridResponse|error` @@ -3174,7 +2999,7 @@ Add a Calculation Grid Item | Name | Type | Required | Description | |------|------|----------|--------------| | `keyNumber` | "1"|"2"|"3"|"4"|"5"|"6" | Yes | Use CGI1..CGI6 in the path, where numbers from 1 to 6 refer to Calculation Grid Item keys | -| `payload` | oas:AddCalculationGridItemRequest | Yes | | +| `payload` | oas:AddCalculationGridItemRequest | Yes | Request payload | | `headers` | map<string|string[]> | No | Headers to be sent with the request | **Returns:** `oas:AddCalculationGridItemResponse|error` @@ -3200,7 +3025,7 @@ Calculate a Calculation Grid | Name | Type | Required | Description | |------|------|----------|--------------| | `id` | string | Yes | `id` of the Calculation Grid you want to calculate | -| `payload` | oas:CalculateCalculationGridRequest | Yes | | +| `payload` | oas:CalculateCalculationGridRequest | Yes | Request payload | | `headers` | map<string|string[]> | No | Headers to be sent with the request | **Returns:** `oas:CalculateCalculationGridResponse|error` @@ -3225,7 +3050,7 @@ Delete a Calculation Grid | Name | Type | Required | Description | |------|------|----------|--------------| -| `payload` | oas:DeleteCalculationGridRequest | Yes | | +| `payload` | oas:DeleteCalculationGridRequest | Yes | Request payload | | `headers` | map<string|string[]> | No | Headers to be sent with the request | **Returns:** `oas:DeleteCalculationGridResponse|error` @@ -3251,7 +3076,7 @@ Delete a Calculation Grid Item | Name | Type | Required | Description | |------|------|----------|--------------| | `keyNumber` | "1"|"2"|"3"|"4"|"5"|"6" | Yes | Use CGI1..CGI6 in the path, where numbers from 1 to 6 refer to Calculation Grid Item keys | -| `payload` | oas:DeleteCalculationGridItemRequest | Yes | | +| `payload` | oas:DeleteCalculationGridItemRequest | Yes | Request payload | | `headers` | map<string|string[]> | No | Headers to be sent with the request | **Returns:** `oas:DeleteCalculationGridItemResponse|error` @@ -3277,7 +3102,7 @@ Get a Calculation Grid | Name | Type | Required | Description | |------|------|----------|--------------| | `id` | string | Yes | ID of the Calculation Grid you want to retrieve | -| `payload` | record {} | Yes | | +| `payload` | record {} | Yes | Request payload | | `headers` | map<string|string[]> | No | Headers to be sent with the request | **Returns:** `oas:GetCalculationGridResponse|error` @@ -3304,7 +3129,7 @@ Get a Calculation Grid Item |------|------|----------|--------------| | `keyNumber` | "1"|"2"|"3"|"4"|"5"|"6" | Yes | Use CGI1..CGI6 in the path, where numbers from 1 to 6 refer to Calculation Grid Item keys | | `id` | string | Yes | `id` of the Calculation Grid Item you want to fetch | -| `payload` | record {} | Yes | | +| `payload` | record {} | Yes | Request payload | | `headers` | map<string|string[]> | No | Headers to be sent with the request | **Returns:** `oas:GetCalculationGridItemResponse|error` @@ -3330,7 +3155,7 @@ List Calculation Grid Items | Name | Type | Required | Description | |------|------|----------|--------------| | `keyNumber` | "1"|"2"|"3"|"4"|"5"|"6" | Yes | Use CGI1..CGI6 in the path, where numbers from 1 to 6 refer to Calculation Grid Item keys | -| `payload` | oas:ListCalculationGridItemsRequest | Yes | | +| `payload` | oas:ListCalculationGridItemsRequest | Yes | Request payload | | `headers` | map<string|string[]> | No | Headers to be sent with the request | **Returns:** `oas:ListCalculationGridItemsResponse|error` @@ -3355,7 +3180,7 @@ List Calculation Grids | Name | Type | Required | Description | |------|------|----------|--------------| -| `payload` | record {} | Yes | | +| `payload` | record {} | Yes | Request payload | | `headers` | map<string|string[]> | No | Headers to be sent with the request | **Returns:** `oas:ListCalculationGridsResponse|error` @@ -3381,7 +3206,7 @@ Deny a Calculation Grid Item | Name | Type | Required | Description | |------|------|----------|--------------| | `id` | string | Yes | The `id` of the Calculation Grid you want to deny items for. You can retrieve the `id` of the CG, for example, by calling the `/fetch/CG` endpoint | -| `payload` | oas:DenyCalculationGridItemRequest | Yes | | +| `payload` | oas:DenyCalculationGridItemRequest | Yes | Request payload | | `headers` | map<string|string[]> | No | Headers to be sent with the request | **Returns:** `oas:DenyCalculationGridItemResponse|error` @@ -3406,7 +3231,7 @@ Update a Calculation Grid | Name | Type | Required | Description | |------|------|----------|--------------| -| `payload` | oas:UpdateCalculationGridRequest | Yes | | +| `payload` | oas:UpdateCalculationGridRequest | Yes | Request payload | | `headers` | map<string|string[]> | No | Headers to be sent with the request | **Returns:** `oas:UpdateCalculationGridResponse|error` @@ -3432,7 +3257,7 @@ Update a Calculation Grid Item | Name | Type | Required | Description | |------|------|----------|--------------| | `id` | string | Yes | `id` of the Calculation Grid Item you want to update | -| `payload` | oas:UpdateCalculationGridItemRequest | Yes | | +| `payload` | oas:UpdateCalculationGridItemRequest | Yes | Request payload | | `headers` | map<string|string[]> | No | Headers to be sent with the request | **Returns:** `oas:UpdateCalculationGridItemResponse|error` @@ -3509,7 +3334,7 @@ Delete a Calculated Field Set | Name | Type | Required | Description | |------|------|----------|--------------| -| `payload` | oas:DeleteCalculatedFieldSetRequest | Yes | | +| `payload` | oas:DeleteCalculatedFieldSetRequest | Yes | Request payload | | `headers` | map<string|string[]> | No | Headers to be sent with the request | **Returns:** `error?` @@ -3560,7 +3385,7 @@ Add a Live Price Grid Type | Name | Type | Required | Description | |------|------|----------|--------------| -| `payload` | oas:AddPGTTBody | Yes | | +| `payload` | oas:AddPGTTBody | Yes | Request payload | | `headers` | map<string|string[]> | No | Headers to be sent with the request | **Returns:** `oas:LivePriceGridTypeOperationEnvelope|error` @@ -3586,7 +3411,7 @@ Add Price Grid Items to a Price Grid | Name | Type | Required | Description | |------|------|----------|--------------| | `id` | string | Yes | The ID of the Live Price Grid where you want to add Price Grid Items to. `id` is the `typedId` without **PG** suffix. For example, the `id` attribute of the item with `typedId` = **649.PG** is **649**. You can retrieve the `id` of the LPG, for example, by calling the `/fetch/PG` endpoint | -| `payload` | oas:AddPriceGridItemsRequest | Yes | | +| `payload` | oas:AddPriceGridItemsRequest | Yes | Request payload | | `headers` | map<string|string[]> | No | Headers to be sent with the request | **Returns:** `oas:AddPriceGridItemsToPriceGridResponse|error` @@ -3611,7 +3436,7 @@ Calculate a Price Grid | Name | Type | Required | Description | |------|------|----------|--------------| -| `id` | string | Yes | | +| `id` | string | Yes | The id to be sent with the request | | `headers` | map<string|string[]> | No | Headers to be sent with the request | **Returns:** `oas:CalculatePriceGridResponse|error` @@ -3661,7 +3486,7 @@ Convert to Price List | Name | Type | Required | Description | |------|------|----------|--------------| -| `id` | string | Yes | | +| `id` | string | Yes | The id to be sent with the request | | `headers` | map<string|string[]> | No | Headers to be sent with the request | **Returns:** `oas:ConvertPriceListResponse|error` @@ -3711,8 +3536,8 @@ Count Mass Action Items | Name | Type | Required | Description | |------|------|----------|--------------| -| `id` | string | Yes | | -| `payload` | oas:CountMassActionItemsRequest | Yes | | +| `id` | string | Yes | The id to be sent with the request | +| `payload` | oas:CountMassActionItemsRequest | Yes | Request payload | | `headers` | map<string|string[]> | No | Headers to be sent with the request | **Returns:** `oas:CountMassActionItemsResponse|error` @@ -3737,7 +3562,7 @@ Delete a Live Price Grid | Name | Type | Required | Description | |------|------|----------|--------------| -| `payload` | oas:DeleteLivePriceGridRequest | Yes | | +| `payload` | oas:DeleteLivePriceGridRequest | Yes | Request payload | | `headers` | map<string|string[]> | No | Headers to be sent with the request | **Returns:** `oas:DeleteLivePriceGridResponse|error` @@ -3788,7 +3613,7 @@ Delete a Price Grid Item | Name | Type | Required | Description | |------|------|----------|--------------| | `id` | string | Yes | The ID of the Price Grid you want to delete the Price Grid Item from | -| `payload` | oas:DeletePriceGridItemRequest | Yes | | +| `payload` | oas:DeletePriceGridItemRequest | Yes | Request payload | | `headers` | map<string|string[]> | No | Headers to be sent with the request | **Returns:** `oas:pricegriditemResponse|error` @@ -3840,7 +3665,7 @@ Deny a Live Price Grid Item | Name | Type | Required | Description | |------|------|----------|--------------| | `id` | string | Yes | The ID of the Price Grid that contains the Price Grid Item you want to deny | -| `payload` | oas:DenyLivePriceGridItemRequest | Yes | | +| `payload` | oas:DenyLivePriceGridItemRequest | Yes | Request payload | | `headers` | map<string|string[]> | No | Headers to be sent with the request | **Returns:** `oas:pricegriditemResponse|error` @@ -3865,18 +3690,18 @@ Download a Live Price Grid Excel File | Name | Type | Required | Description | |------|------|----------|--------------| -| `id1` | string | Yes | | -| `id2` | string | Yes | | -| `id3` | string | Yes | | -| `id4` | string | Yes | | -| `id5` | string | Yes | | -| `id6` | string | Yes | | -| `id7` | string | Yes | | -| `id8` | string | Yes | | -| `id9` | string | Yes | | -| `id10` | string | Yes | | -| `id11` | string | Yes | | -| `id12` | string | Yes | | +| `id1` | string | Yes | The id1 to be sent with the request | +| `id2` | string | Yes | The id2 to be sent with the request | +| `id3` | string | Yes | The id3 to be sent with the request | +| `id4` | string | Yes | The id4 to be sent with the request | +| `id5` | string | Yes | The id5 to be sent with the request | +| `id6` | string | Yes | The id6 to be sent with the request | +| `id7` | string | Yes | The id7 to be sent with the request | +| `id8` | string | Yes | The id8 to be sent with the request | +| `id9` | string | Yes | The id9 to be sent with the request | +| `id10` | string | Yes | The id10 to be sent with the request | +| `id11` | string | Yes | The id11 to be sent with the request | +| `id12` | string | Yes | The id12 to be sent with the request | | `id13` | string | Yes | IDs of the Price Grids you want to download | | `headers` | map<string|string[]> | No | Headers to be sent with the request | | `queries` | *oas:DownloadLivePriceGridExcelFileQueries | Yes | Queries to be sent with the request | @@ -3929,7 +3754,7 @@ List Live Price Grid Items | Name | Type | Required | Description | |------|------|----------|--------------| | `id` | string | Yes | The `id` of the Live Price Grid you want to retrieve items for. You can retrieve the `id` of the LPG, for example, by calling the `/fetch/PG` endpoint | -| `payload` | oas:ListLivePriceGridItemsRequest | Yes | | +| `payload` | oas:ListLivePriceGridItemsRequest | Yes | Request payload | | `headers` | map<string|string[]> | No | Headers to be sent with the request | **Returns:** `oas:ListLivePriceGridItemsResponse|error` @@ -3978,7 +3803,7 @@ List Live Price Grids | Name | Type | Required | Description | |------|------|----------|--------------| -| `payload` | oas:ListLivePriceGridsRequest | Yes | | +| `payload` | oas:ListLivePriceGridsRequest | Yes | Request payload | | `headers` | map<string|string[]> | No | Headers to be sent with the request | **Returns:** `oas:ListLivePriceGridsResponse|error` @@ -4004,7 +3829,7 @@ Mass Edit Price Grid Items | Name | Type | Required | Description | |------|------|----------|--------------| | `id` | string | Yes | The `id` of the Live Price Grid whose items you want to edit. You can retrieve the `id` of the LPG, for example, by calling the `/fetch/PG` endpoint | -| `payload` | oas:MassEditPriceGridItemsRequest | Yes | | +| `payload` | oas:MassEditPriceGridItemsRequest | Yes | Request payload | | `headers` | map<string|string[]> | No | Headers to be sent with the request | **Returns:** `oas:MassEditPriceGridItemsResponse|error` @@ -4030,7 +3855,7 @@ Perform a Mass Action | Name | Type | Required | Description | |------|------|----------|--------------| | `id` | string | Yes | The ID of the Price Grid that contains items you want to apply workflow actions to | -| `payload` | oas:PerformMassActionRequest | Yes | | +| `payload` | oas:PerformMassActionRequest | Yes | Request payload | | `headers` | map<string|string[]> | No | Headers to be sent with the request | **Returns:** `oas:PerformMassActionResponse|error` @@ -4056,7 +3881,7 @@ Submit Products | Name | Type | Required | Description | |------|------|----------|--------------| | `id` | string | Yes | The `id` of the Live Price Grid you want to submit items for. You can retrieve the `id` of the LPG, for example, by calling the `/fetch/PG` endpoint | -| `payload` | oas:SubmitProductsRequest | Yes | | +| `payload` | oas:SubmitProductsRequest | Yes | Request payload | | `headers` | map<string|string[]> | No | Headers to be sent with the request | **Returns:** `oas:SubmitProductsResponse|error` @@ -4133,7 +3958,7 @@ Update a Live Price Grid Type | Name | Type | Required | Description | |------|------|----------|--------------| -| `payload` | oas:UpdatePGTTBody | Yes | | +| `payload` | oas:UpdatePGTTBody | Yes | Request payload | | `headers` | map<string|string[]> | No | Headers to be sent with the request | **Returns:** `oas:LivePriceGridTypeOperationEnvelope|error` @@ -4160,7 +3985,7 @@ Add Products to a Quote | Name | Type | Required | Description | |------|------|----------|--------------| -| `payload` | oas:AddProductsToQuoteRequest | Yes | | +| `payload` | oas:AddProductsToQuoteRequest | Yes | Request payload | | `headers` | map<string|string[]> | No | Headers to be sent with the request | **Returns:** `oas:quoteResponse|error` @@ -4210,8 +4035,8 @@ Copy a Quote | Name | Type | Required | Description | |------|------|----------|--------------| -| `typedId` | string | Yes | | -| `payload` | record {} | Yes | | +| `typedId` | string | Yes | The typedId to be sent with the request | +| `payload` | record {} | Yes | Request payload | | `headers` | map<string|string[]> | No | Headers to be sent with the request | **Returns:** `oas:CopyQuoteEnvelope|error` @@ -4237,7 +4062,7 @@ Create a Quote | Name | Type | Required | Description | |------|------|----------|--------------| | `typeCode` | "Q"|"QTMP" | Yes | Enter the type code of the entity you want to create | -| `payload` | oas:ClicmanagerCreateTypeCodeBody | Yes | | +| `payload` | oas:ClicmanagerCreateTypeCodeBody | Yes | Request payload | | `headers` | map<string|string[]> | No | Headers to be sent with the request | **Returns:** `oas:ClicOperationEnvelope|error` @@ -4366,7 +4191,7 @@ Get a Temporary Data | Name | Type | Required | Description | |------|------|----------|--------------| | `typedId` | string | Yes | `typedId` of the Quote you want to retrieve the temporary data from | -| `payload` | record {} | Yes | | +| `payload` | record {} | Yes | Request payload | | `headers` | map<string|string[]> | No | Headers to be sent with the request | **Returns:** `oas:ClicDraftHeaderEnvelope|error` @@ -4442,7 +4267,7 @@ List Products | Name | Type | Required | Description | |------|------|----------|--------------| -| `payload` | oas:ListProductsRequest1 | Yes | | +| `payload` | oas:ListProductsRequest1 | Yes | Request payload | | `headers` | map<string|string[]> | No | Headers to be sent with the request | **Returns:** `error?` @@ -4467,7 +4292,7 @@ List Quotes | Name | Type | Required | Description | |------|------|----------|--------------| -| `payload` | oas:ListQuotesRequest | Yes | | +| `payload` | oas:ListQuotesRequest | Yes | Request payload | | `headers` | map<string|string[]> | No | Headers to be sent with the request | **Returns:** `oas:ListQuotesResponse|error` @@ -4493,7 +4318,7 @@ Mark an Offer as Lost | Name | Type | Required | Description | |------|------|----------|--------------| | `identifier` | string | Yes | Can be either the `uniqueName` or the `typedId` | -| `payload` | oas:MarkOfferAsLostRequest | Yes | | +| `payload` | oas:MarkOfferAsLostRequest | Yes | Request payload | | `headers` | map<string|string[]> | No | Headers to be sent with the request | **Returns:** `oas:quoteResponse|error` @@ -4518,7 +4343,7 @@ Recalculate a Quote | Name | Type | Required | Description | |------|------|----------|--------------| -| `payload` | oas:RecalculateQuoteRequest | Yes | | +| `payload` | oas:RecalculateQuoteRequest | Yes | Request payload | | `headers` | map<string|string[]> | No | Headers to be sent with the request | **Returns:** `oas:quoteResponse|error` @@ -4569,7 +4394,7 @@ Save a Temporary Data | Name | Type | Required | Description | |------|------|----------|--------------| | `typedId` | string | Yes | `typedId` of the Temporary Quote you want to save | -| `payload` | record {} | Yes | | +| `payload` | record {} | Yes | Request payload | | `headers` | map<string|string[]> | No | Headers to be sent with the request | **Returns:** `oas:ClicOperationEnvelope|error` @@ -4594,7 +4419,7 @@ Submit a Quote | Name | Type | Required | Description | |------|------|----------|--------------| -| `payload` | oas:SubmitQuoteRequest | Yes | | +| `payload` | oas:SubmitQuoteRequest | Yes | Request payload | | `headers` | map<string|string[]> | No | Headers to be sent with the request | **Returns:** `oas:quoteResponse|error` @@ -4619,7 +4444,7 @@ Undo Quote Revocation | Name | Type | Required | Description | |------|------|----------|--------------| -| `typedId` | string | Yes | | +| `typedId` | string | Yes | The typedId to be sent with the request | | `headers` | map<string|string[]> | No | Headers to be sent with the request | **Returns:** `error?` @@ -4644,7 +4469,7 @@ Upsert a Quote | Name | Type | Required | Description | |------|------|----------|--------------| -| `payload` | oas:UpsertQuoteRequest | Yes | | +| `payload` | oas:UpsertQuoteRequest | Yes | Request payload | | `headers` | map<string|string[]> | No | Headers to be sent with the request | **Returns:** `oas:quoteResponse|error` @@ -4671,7 +4496,7 @@ Add Contract Line Items | Name | Type | Required | Description | |------|------|----------|--------------| -| `payload` | oas:AddContractLineItemsRequest | Yes | | +| `payload` | oas:AddContractLineItemsRequest | Yes | Request payload | | `headers` | map<string|string[]> | No | Headers to be sent with the request | **Returns:** `oas:contractModelResponse|error` @@ -4746,7 +4571,7 @@ List Contract Calculations | Name | Type | Required | Description | |------|------|----------|--------------| -| `payload` | record {} | Yes | | +| `payload` | record {} | Yes | Request payload | | `headers` | map<string|string[]> | No | Headers to be sent with the request | **Returns:** `oas:ListContractCalculationsEnvelope|error` @@ -4771,7 +4596,7 @@ List Contract Price Records | Name | Type | Required | Description | |------|------|----------|--------------| -| `payload` | oas:FetchCPRBody | Yes | | +| `payload` | oas:FetchCPRBody | Yes | Request payload | | `headers` | map<string|string[]> | No | Headers to be sent with the request | **Returns:** `oas:ListContractPriceRecords|error` @@ -4796,7 +4621,7 @@ List Contracts | Name | Type | Required | Description | |------|------|----------|--------------| -| `payload` | oas:ListContractsRequest | Yes | | +| `payload` | oas:ListContractsRequest | Yes | Request payload | | `headers` | map<string|string[]> | No | Headers to be sent with the request | **Returns:** `oas:contractResponse|error` @@ -4821,7 +4646,7 @@ Submit a Contract | Name | Type | Required | Description | |------|------|----------|--------------| -| `payload` | oas:SubmitContractRequest | Yes | | +| `payload` | oas:SubmitContractRequest | Yes | Request payload | | `headers` | map<string|string[]> | No | Headers to be sent with the request | **Returns:** `oas:contractModelResponse|error` @@ -4846,7 +4671,7 @@ Undo Agreement & Promotion Revocation | Name | Type | Required | Description | |------|------|----------|--------------| -| `typedId` | string | Yes | | +| `typedId` | string | Yes | The typedId to be sent with the request | | `headers` | map<string|string[]> | No | Headers to be sent with the request | **Returns:** `error?` @@ -4871,7 +4696,7 @@ Upsert a Contract | Name | Type | Required | Description | |------|------|----------|--------------| -| `payload` | oas:UpsertContractRequest | Yes | | +| `payload` | oas:UpsertContractRequest | Yes | Request payload | | `headers` | map<string|string[]> | No | Headers to be sent with the request | **Returns:** `oas:contractModelResponse|error` @@ -4898,7 +4723,7 @@ Add Rebate Agreement Items | Name | Type | Required | Description | |------|------|----------|--------------| -| `payload` | oas:GetCustomerRequest | Yes | | +| `payload` | oas:GetCustomerRequest | Yes | Request payload | | `headers` | map<string|string[]> | No | Headers to be sent with the request | **Returns:** `oas:rebateagreementResponse|error` @@ -4923,7 +4748,7 @@ Delete a Rebate Agreement | Name | Type | Required | Description | |------|------|----------|--------------| -| `payload` | oas:DeleteRebateAgreementRequest | Yes | | +| `payload` | oas:DeleteRebateAgreementRequest | Yes | Request payload | | `headers` | map<string|string[]> | No | Headers to be sent with the request | **Returns:** `oas:rebateagreementResponse|error` @@ -4973,7 +4798,7 @@ List Rebate Agreement Items | Name | Type | Required | Description | |------|------|----------|--------------| -| `payload` | oas:ListRebateAgreementItemsRequest | Yes | | +| `payload` | oas:ListRebateAgreementItemsRequest | Yes | Request payload | | `headers` | map<string|string[]> | No | Headers to be sent with the request | **Returns:** `oas:ListRebateAgreementItemsResponse|error` @@ -4998,7 +4823,7 @@ List Rebate Agreements | Name | Type | Required | Description | |------|------|----------|--------------| -| `payload` | oas:ListRebateAgreementsRequest | Yes | | +| `payload` | oas:ListRebateAgreementsRequest | Yes | Request payload | | `headers` | map<string|string[]> | No | Headers to be sent with the request | **Returns:** `oas:ListRebateAgreementsResponse|error` @@ -5023,7 +4848,7 @@ Undo Rebate Agreement Revocation | Name | Type | Required | Description | |------|------|----------|--------------| -| `typedId` | string | Yes | | +| `typedId` | string | Yes | The typedId to be sent with the request | | `headers` | map<string|string[]> | No | Headers to be sent with the request | **Returns:** `error?` @@ -5048,7 +4873,7 @@ Undo Rebate Record Revocation | Name | Type | Required | Description | |------|------|----------|--------------| -| `typedId` | string | Yes | | +| `typedId` | string | Yes | The typedId to be sent with the request | | `headers` | map<string|string[]> | No | Headers to be sent with the request | **Returns:** `error?` @@ -5073,7 +4898,7 @@ Upsert a Rebate Agreement | Name | Type | Required | Description | |------|------|----------|--------------| -| `payload` | oas:UpsertRebateAgreementRequest | Yes | | +| `payload` | oas:UpsertRebateAgreementRequest | Yes | Request payload | | `headers` | map<string|string[]> | No | Headers to be sent with the request | **Returns:** `oas:rebateagreementResponse|error` @@ -5100,7 +4925,7 @@ Add a Rebate Calculation | Name | Type | Required | Description | |------|------|----------|--------------| -| `payload` | oas:AddRRSCBody | Yes | | +| `payload` | oas:AddRRSCBody | Yes | Request payload | | `headers` | map<string|string[]> | No | Headers to be sent with the request | **Returns:** `oas:AddRebateCalculationResponse|error` @@ -5125,7 +4950,7 @@ Delete a Rebate Calculation | Name | Type | Required | Description | |------|------|----------|--------------| -| `payload` | oas:DeleteRebateCalculationRequest | Yes | | +| `payload` | oas:DeleteRebateCalculationRequest | Yes | Request payload | | `headers` | map<string|string[]> | No | Headers to be sent with the request | **Returns:** `oas:DeleteRebateCalculationResponse|error` @@ -5150,7 +4975,7 @@ List Rebate Calculations | Name | Type | Required | Description | |------|------|----------|--------------| -| `payload` | oas:FetchRRSCBody | Yes | | +| `payload` | oas:FetchRRSCBody | Yes | Request payload | | `headers` | map<string|string[]> | No | Headers to be sent with the request | **Returns:** `oas:ListRebateCalculationsResponse|error` @@ -5175,7 +5000,7 @@ Run a Rebate Calculation | Name | Type | Required | Description | |------|------|----------|--------------| -| `payload` | oas:RebaterecordCalculatesetBody | Yes | | +| `payload` | oas:RebaterecordCalculatesetBody | Yes | Request payload | | `headers` | map<string|string[]> | No | Headers to be sent with the request | **Returns:** `oas:RunRebateCalculationResponse|error` @@ -5200,7 +5025,7 @@ Save a Rebate Calculation | Name | Type | Required | Description | |------|------|----------|--------------| -| `payload` | oas:SaveRebateCalculationRequest | Yes | | +| `payload` | oas:SaveRebateCalculationRequest | Yes | Request payload | | `headers` | map<string|string[]> | No | Headers to be sent with the request | **Returns:** `oas:SaveRebateCalculationResponse|error` @@ -5228,7 +5053,7 @@ Calculate a Rebate Record Group | Name | Type | Required | Description | |------|------|----------|--------------| | `typedId` | string | Yes | `typedId` of the Rebate Record Group you want to calculate | -| `payload` | oas:RebaterecordgroupCalculatetypedIdBody | Yes | | +| `payload` | oas:RebaterecordgroupCalculatetypedIdBody | Yes | Request payload | | `headers` | map<string|string[]> | No | Headers to be sent with the request | **Returns:** `oas:CalculateRebateRecordGroupEnvelope|error` @@ -5253,7 +5078,7 @@ Get a Rebate Record Group | Name | Type | Required | Description | |------|------|----------|--------------| -| `payload` | record {} | Yes | | +| `payload` | record {} | Yes | Request payload | | `headers` | map<string|string[]> | No | Headers to be sent with the request | **Returns:** `error?` @@ -5278,8 +5103,8 @@ Mass Submit Rebate Record Groups | Name | Type | Required | Description | |------|------|----------|--------------| -| `typedId` | string | Yes | | -| `payload` | oas:RebaterecordgroupMasssubmittypedIdBody | Yes | | +| `typedId` | string | Yes | The typedId to be sent with the request | +| `payload` | oas:RebaterecordgroupMasssubmittypedIdBody | Yes | Request payload | | `headers` | map<string|string[]> | No | Headers to be sent with the request | **Returns:** `oas:MassSubmitRRGResponse|error` @@ -5304,7 +5129,7 @@ Mass Submit Rebate Record Groups | Name | Type | Required | Description | |------|------|----------|--------------| -| `payload` | oas:RebaterecordgroupMasssubmittypedIdBody | Yes | | +| `payload` | oas:RebaterecordgroupMasssubmittypedIdBody | Yes | Request payload | | `headers` | map<string|string[]> | No | Headers to be sent with the request | **Returns:** `oas:MassSubmitRebateRecordGroupsEnvelope|error` @@ -5329,8 +5154,8 @@ Preview a Rebate Record Group Workflow | Name | Type | Required | Description | |------|------|----------|--------------| -| `typedId` | string | Yes | | -| `payload` | oas:RebaterecordgroupPreviewtypedIdBody | Yes | | +| `typedId` | string | Yes | The typedId to be sent with the request | +| `payload` | oas:RebaterecordgroupPreviewtypedIdBody | Yes | Request payload | | `headers` | map<string|string[]> | No | Headers to be sent with the request | **Returns:** `oas:RebateRecordGroupWorkflowEnvelope|error` @@ -5381,7 +5206,7 @@ Should Submit a RRG Asynchronously | Name | Type | Required | Description | |------|------|----------|--------------| | `typedId` | string | Yes | `typedId` of the Rebate Record Group you want to return the async threshold boolean for | -| `payload` | record {} | Yes | | +| `payload` | record {} | Yes | Request payload | | `headers` | map<string|string[]> | No | Headers to be sent with the request | **Returns:** `oas:CheckFileExistsEnvelope|error` @@ -5407,7 +5232,7 @@ Submit a Rebate Record Group | Name | Type | Required | Description | |------|------|----------|--------------| | `typedId` | string | Yes | `typedId` of the Rebate Record Group you want to submit | -| `payload` | record {} | Yes | | +| `payload` | record {} | Yes | Request payload | | `headers` | map<string|string[]> | No | Headers to be sent with the request | **Returns:** `oas:SubmitRebateRecordGroup|error` @@ -5432,7 +5257,7 @@ Undo Rebate Record Group Revocation | Name | Type | Required | Description | |------|------|----------|--------------| -| `typedId` | string | Yes | | +| `typedId` | string | Yes | The typedId to be sent with the request | | `headers` | map<string|string[]> | No | Headers to be sent with the request | **Returns:** `error?` @@ -5459,7 +5284,7 @@ Add a Calculation | Name | Type | Required | Description | |------|------|----------|--------------| -| `payload` | oas:AddCalculationRequest | Yes | | +| `payload` | oas:AddCalculationRequest | Yes | Request payload | | `headers` | map<string|string[]> | No | Headers to be sent with the request | **Returns:** `oas:AddCalculationResponse|error` @@ -5484,7 +5309,7 @@ Add a Compensation Type | Name | Type | Required | Description | |------|------|----------|--------------| -| `payload` | oas:AddCompensationTypeRequest | Yes | | +| `payload` | oas:AddCompensationTypeRequest | Yes | Request payload | | `headers` | map<string|string[]> | No | Headers to be sent with the request | **Returns:** `oas:AddCompensationTypeEnvelope|error` @@ -5534,7 +5359,7 @@ Delete a Calculation | Name | Type | Required | Description | |------|------|----------|--------------| -| `payload` | oas:DeleteCalculationRequest | Yes | | +| `payload` | oas:DeleteCalculationRequest | Yes | Request payload | | `headers` | map<string|string[]> | No | Headers to be sent with the request | **Returns:** `oas:DeleteCalculationResponse|error` @@ -5559,7 +5384,7 @@ Delete a Compensation Plan | Name | Type | Required | Description | |------|------|----------|--------------| -| `payload` | oas:DeleteCompensationPlanRequest | Yes | | +| `payload` | oas:DeleteCompensationPlanRequest | Yes | Request payload | | `headers` | map<string|string[]> | No | Headers to be sent with the request | **Returns:** `oas:DeleteCompensationPlanResponse|error` @@ -5584,7 +5409,7 @@ Delete a Compensation Type | Name | Type | Required | Description | |------|------|----------|--------------| -| `payload` | oas:DeleteCOHTBody | Yes | | +| `payload` | oas:DeleteCOHTBody | Yes | Request payload | | `headers` | map<string|string[]> | No | Headers to be sent with the request | **Returns:** `oas:DeleteCompensationTypeEnvelope|error` @@ -5609,7 +5434,7 @@ Delete a Condition Type | Name | Type | Required | Description | |------|------|----------|--------------| -| `payload` | oas:DeleteConditionTypeRequest | Yes | | +| `payload` | oas:DeleteConditionTypeRequest | Yes | Request payload | | `headers` | map<string|string[]> | No | Headers to be sent with the request | **Returns:** `oas:DeleteConditionTypeEnvelope|error` @@ -5660,7 +5485,7 @@ Get a Signature Status | Name | Type | Required | Description | |------|------|----------|--------------| | `typedId` | string | Yes | `typedId` of the Compensation document you want to retrieve the signature status for | -| `payload` | record {} | Yes | | +| `payload` | record {} | Yes | Request payload | | `headers` | map<string|string[]> | No | Headers to be sent with the request | **Returns:** `oas:GetSignatureStatusResponse|error` @@ -5710,7 +5535,7 @@ List Accrual Records | Name | Type | Required | Description | |------|------|----------|--------------| -| `payload` | oas:ListAccrualRecordsRequest | Yes | | +| `payload` | oas:ListAccrualRecordsRequest | Yes | Request payload | | `headers` | map<string|string[]> | No | Headers to be sent with the request | **Returns:** `oas:ListAccrualRecordsResponse|error` @@ -5735,7 +5560,7 @@ List Calculations | Name | Type | Required | Description | |------|------|----------|--------------| -| `payload` | oas:ListCalculationsRequest | Yes | | +| `payload` | oas:ListCalculationsRequest | Yes | Request payload | | `headers` | map<string|string[]> | No | Headers to be sent with the request | **Returns:** `oas:ListCalculationsResponse|error` @@ -5760,7 +5585,7 @@ List Compensation Plans | Name | Type | Required | Description | |------|------|----------|--------------| -| `payload` | oas:ListCompensationPlansRequest | Yes | | +| `payload` | oas:ListCompensationPlansRequest | Yes | Request payload | | `headers` | map<string|string[]> | No | Headers to be sent with the request | **Returns:** `oas:ListCompensationPlansResponse|error` @@ -5786,7 +5611,7 @@ List Compensation Records | Name | Type | Required | Description | |------|------|----------|--------------| | `compensationRecordSetId` | string | Yes | ID of the CompensationRecordSet into which this Compensation Record belongs. By default it belongs to "Default" CompensationRecordSet, but you can change it when you create the Compensation Record. This can be useful if you create different "kinds" of Compensation Records which will be used to calculate different results at different times | -| `payload` | oas:ListCompensationRecordsRequest | Yes | | +| `payload` | oas:ListCompensationRecordsRequest | Yes | Request payload | | `headers` | map<string|string[]> | No | Headers to be sent with the request | **Returns:** `oas:ListCompensationRecordsResponse|error` @@ -5811,7 +5636,7 @@ List Compensation Types | Name | Type | Required | Description | |------|------|----------|--------------| -| `payload` | oas:ListCompensationTypesRequest | Yes | | +| `payload` | oas:ListCompensationTypesRequest | Yes | Request payload | | `headers` | map<string|string[]> | No | Headers to be sent with the request | **Returns:** `oas:ListCompensationTypesEnvelope|error` @@ -5836,7 +5661,7 @@ List Condition Types | Name | Type | Required | Description | |------|------|----------|--------------| -| `payload` | oas:ListConditionTypesRequest | Yes | | +| `payload` | oas:ListConditionTypesRequest | Yes | Request payload | | `headers` | map<string|string[]> | No | Headers to be sent with the request | **Returns:** `oas:ListConditionTypesEnvelope|error` @@ -5912,7 +5737,7 @@ Run a Calculation | Name | Type | Required | Description | |------|------|----------|--------------| -| `payload` | oas:RunCalculationRequest | Yes | | +| `payload` | oas:RunCalculationRequest | Yes | Request payload | | `headers` | map<string|string[]> | No | Headers to be sent with the request | **Returns:** `oas:RunCalculationResponse|error` @@ -5937,7 +5762,7 @@ Save Calculation | Name | Type | Required | Description | |------|------|----------|--------------| -| `payload` | oas:SaveCalculationRequest | Yes | | +| `payload` | oas:SaveCalculationRequest | Yes | Request payload | | `headers` | map<string|string[]> | No | Headers to be sent with the request | **Returns:** `oas:SaveCalculationResponse|error` @@ -5962,7 +5787,7 @@ Save a Compensation Record | Name | Type | Required | Description | |------|------|----------|--------------| -| `payload` | oas:SaveCompensationRecordRequest | Yes | | +| `payload` | oas:SaveCompensationRecordRequest | Yes | Request payload | | `headers` | map<string|string[]> | No | Headers to be sent with the request | **Returns:** `oas:SaveCompensationRecordResponse|error` @@ -5988,7 +5813,7 @@ Send a Document to Sign | Name | Type | Required | Description | |------|------|----------|--------------| | `typedId` | string | Yes | `typedId` of the Compensation whose data you want to send via the e-signature system | -| `payload` | oas:CreateSignatureRequest | Yes | | +| `payload` | oas:CreateSignatureRequest | Yes | Request payload | | `headers` | map<string|string[]> | No | Headers to be sent with the request | **Returns:** `oas:CreateSignatureResponse|error` @@ -6013,7 +5838,7 @@ Undo Compensation Plan Revocation | Name | Type | Required | Description | |------|------|----------|--------------| -| `typedId` | string | Yes | | +| `typedId` | string | Yes | The typedId to be sent with the request | | `headers` | map<string|string[]> | No | Headers to be sent with the request | **Returns:** `error?` @@ -6038,7 +5863,7 @@ Undo Compensation Record Revocation | Name | Type | Required | Description | |------|------|----------|--------------| -| `typedId` | string | Yes | | +| `typedId` | string | Yes | The typedId to be sent with the request | | `headers` | map<string|string[]> | No | Headers to be sent with the request | **Returns:** `error?` @@ -6063,7 +5888,7 @@ Update a Compensation Record | Name | Type | Required | Description | |------|------|----------|--------------| -| `payload` | oas:UpdateCompensationRecordRequest | Yes | | +| `payload` | oas:UpdateCompensationRecordRequest | Yes | Request payload | | `headers` | map<string|string[]> | No | Headers to be sent with the request | **Returns:** `oas:UpdateCompensationRecordResponse|error` @@ -6088,7 +5913,7 @@ Update a Compensation Type | Name | Type | Required | Description | |------|------|----------|--------------| -| `payload` | oas:UpdateCompensationTypeRequest | Yes | | +| `payload` | oas:UpdateCompensationTypeRequest | Yes | Request payload | | `headers` | map<string|string[]> | No | Headers to be sent with the request | **Returns:** `oas:UpdateCompensationTypeEnvelope|error` @@ -6113,7 +5938,7 @@ Update a Condition Type | Name | Type | Required | Description | |------|------|----------|--------------| -| `payload` | oas:UpdateConditionTypeRequest | Yes | | +| `payload` | oas:UpdateConditionTypeRequest | Yes | Request payload | | `headers` | map<string|string[]> | No | Headers to be sent with the request | **Returns:** `oas:UpdateConditionTypeEnvelope|error` @@ -6139,7 +5964,7 @@ Update a Quote/Contract/Rebate Agreement/Compensation Plan | Name | Type | Required | Description | |------|------|----------|--------------| | `typedId` | string | Yes | The `typedId` of the Compensation Plan you want to update | -| `payload` | oas:ClicmanagerUpdatetypedIdBody | Yes | | +| `payload` | oas:ClicmanagerUpdatetypedIdBody | Yes | Request payload | | `headers` | map<string|string[]> | No | Headers to be sent with the request | **Returns:** `oas:UpdateClicEnvelope|error` @@ -6164,7 +5989,7 @@ Upsert a Compensation Plan | Name | Type | Required | Description | |------|------|----------|--------------| -| `payload` | oas:UpsertCompensationPlanRequest | Yes | | +| `payload` | oas:UpsertCompensationPlanRequest | Yes | Request payload | | `headers` | map<string|string[]> | No | Headers to be sent with the request | **Returns:** `oas:UpsertCompensationPlanResponse|error` @@ -6191,7 +6016,7 @@ Add a Claim | Name | Type | Required | Description | |------|------|----------|--------------| -| `payload` | oas:AddClaimRequest | Yes | | +| `payload` | oas:AddClaimRequest | Yes | Request payload | | `headers` | map<string|string[]> | No | Headers to be sent with the request | **Returns:** `oas:AddClaimResponse|error` @@ -6217,7 +6042,7 @@ Calculate a Claim | Name | Type | Required | Description | |------|------|----------|--------------| | `typedId` | string | Yes | The `typedId` of the claim whose items you want to calculate | -| `payload` | oas:CalculateClaimRequest | Yes | | +| `payload` | oas:CalculateClaimRequest | Yes | Request payload | | `headers` | map<string|string[]> | No | Headers to be sent with the request | **Returns:** `oas:CalculateClaimResponse|error` @@ -6243,7 +6068,7 @@ Cancel a Calculation | Name | Type | Required | Description | |------|------|----------|--------------| | `typedId` | string | Yes | The `typedId` of the claim whose item calculation you want to cancel | -| `payload` | record {} | Yes | | +| `payload` | record {} | Yes | Request payload | | `headers` | map<string|string[]> | No | Headers to be sent with the request | **Returns:** `oas:CancelClaimCalculationResponse|error` @@ -6268,8 +6093,8 @@ Get a Summary | Name | Type | Required | Description | |------|------|----------|--------------| -| `typedId` | string | Yes | | -| `payload` | record {} | Yes | | +| `typedId` | string | Yes | The typedId to be sent with the request | +| `payload` | record {} | Yes | Request payload | | `headers` | map<string|string[]> | No | Headers to be sent with the request | **Returns:** `oas:GetClaimItemsSummaryResponse|error` @@ -6319,8 +6144,8 @@ List Items | Name | Type | Required | Description | |------|------|----------|--------------| -| `typedId` | string | Yes | | -| `payload` | record {} | Yes | | +| `typedId` | string | Yes | The typedId to be sent with the request | +| `payload` | record {} | Yes | Request payload | | `headers` | map<string|string[]> | No | Headers to be sent with the request | **Returns:** `oas:ListClaimItemsResponse|error` @@ -6346,7 +6171,7 @@ Reject Items | Name | Type | Required | Description | |------|------|----------|--------------| | `typedId` | string | Yes | The `typedId` of the Claim whose items you want to reject | -| `payload` | oas:RejectClaimItemsRequest | Yes | | +| `payload` | oas:RejectClaimItemsRequest | Yes | Request payload | | `headers` | map<string|string[]> | No | Headers to be sent with the request | **Returns:** `oas:RejectClaimItemsResponse|error` @@ -6372,7 +6197,7 @@ Remove Items | Name | Type | Required | Description | |------|------|----------|--------------| | `typedId` | string | Yes | The `typedId` of the Claim whose items you want to remove | -| `payload` | record {} | Yes | | +| `payload` | record {} | Yes | Request payload | | `headers` | map<string|string[]> | No | Headers to be sent with the request | **Returns:** `oas:RemoveClaimItemsResponse|error` @@ -6398,7 +6223,7 @@ Submit a Claim | Name | Type | Required | Description | |------|------|----------|--------------| | `typedId` | string | Yes | `typedId` of the Claim you want to submit | -| `payload` | record {} | Yes | | +| `payload` | record {} | Yes | Request payload | | `headers` | map<string|string[]> | No | Headers to be sent with the request | **Returns:** `oas:SubmitClaimResponse|error` @@ -6449,7 +6274,7 @@ Validate Items | Name | Type | Required | Description | |------|------|----------|--------------| | `typedId` | string | Yes | The `typedId` of the Claim whose items you want to validate | -| `payload` | oas:ValidateClaimItemsRequest | Yes | | +| `payload` | oas:ValidateClaimItemsRequest | Yes | Request payload | | `headers` | map<string|string[]> | No | Headers to be sent with the request | **Returns:** `oas:ValidateClaimItemsResponse|error` @@ -6476,7 +6301,7 @@ Add a Claim Type | Name | Type | Required | Description | |------|------|----------|--------------| -| `payload` | oas:AddClaimTypeRequest | Yes | | +| `payload` | oas:AddClaimTypeRequest | Yes | Request payload | | `headers` | map<string|string[]> | No | Headers to be sent with the request | **Returns:** `oas:AddClaimTypeResponse|error` @@ -6501,7 +6326,7 @@ Delete a Claim Type | Name | Type | Required | Description | |------|------|----------|--------------| -| `payload` | oas:DeleteClaimTypeRequest | Yes | | +| `payload` | oas:DeleteClaimTypeRequest | Yes | Request payload | | `headers` | map<string|string[]> | No | Headers to be sent with the request | **Returns:** `oas:DeleteClaimTypeResponse|error` @@ -6551,7 +6376,7 @@ Update a Claim Type | Name | Type | Required | Description | |------|------|----------|--------------| -| `payload` | oas:UpdateClaimTypeRequest | Yes | | +| `payload` | oas:UpdateClaimTypeRequest | Yes | Request payload | | `headers` | map<string|string[]> | No | Headers to be sent with the request | **Returns:** `oas:UpdateClaimTypeResponse|error` @@ -6630,7 +6455,7 @@ Delete a File |------|------|----------|--------------| | `typedId` | string | Yes | `typedId` of the document whose attachment you want to delete | | `binaryDataId` | string | Yes | If the `typedId` is, for example, 1145.BD then the binaryDataId is **1145** | -| `payload` | record {} | Yes | | +| `payload` | record {} | Yes | Request payload | | `headers` | map<string|string[]> | No | Headers to be sent with the request | **Returns:** `oas:generalResponse|error` @@ -6763,7 +6588,7 @@ http:Response result = check pricefxClient->downloadFileViaPost(typedId, binaryD | `ownerTypedId` | string | Yes | The `TypedId` of the document owning the attachment | | `binaryDataId` | string | Yes | The `binaryDataId` of the attachment to replace | | `slotId` | string | Yes | The upload `slot_id` containing the new file | -| `payload` | oas:BinaryDataIdslotIdBody | Yes | | +| `payload` | oas:BinaryDataIdslotIdBody | Yes | Request payload | | `headers` | map<string|string[]> | No | Headers to be sent with the request | **Returns:** `oas:FileDownloadEnvelope|error` @@ -6814,7 +6639,7 @@ List Files | Name | Type | Required | Description | |------|------|----------|--------------| | `typedId` | string | Yes | `typedId` of the document you want to list attachments for | -| `payload` | oas:BdmanagerListtypedIdBody | Yes | | +| `payload` | oas:BdmanagerListtypedIdBody | Yes | Request payload | | `headers` | map<string|string[]> | No | Headers to be sent with the request | **Returns:** `oas:ListFilesEnvelope|error` @@ -6840,7 +6665,7 @@ Update a File | Name | Type | Required | Description | |------|------|----------|--------------| | `typedId` | string | Yes | `typedId` of the document whose attachment's metadata you want to update | -| `payload` | oas:BdmanagerUpdatetypedIdBody | Yes | | +| `payload` | oas:BdmanagerUpdatetypedIdBody | Yes | Request payload | | `headers` | map<string|string[]> | No | Headers to be sent with the request | **Returns:** `oas:UpdateFileEnvelope|error` @@ -6867,7 +6692,7 @@ oas:UpdateFileEnvelope result = check pricefxClient->updateFile(typedId, payload |------|------|----------|--------------| | `typedId` | string | Yes | `typedId` of the document you want to attach the file to | | `slotId` | string | Yes | The ID of the slot you want to use for the upload. retrieve the slot ID using the `/uploadmanager.newuploadslot` (Create an Upload Slot) endpoint | -| `payload` | oas:TypedIdslotIdBody | Yes | | +| `payload` | oas:TypedIdslotIdBody | Yes | Request payload | | `headers` | map<string|string[]> | No | Headers to be sent with the request | **Returns:** `oas:FileOperationEnvelope|error` @@ -6894,7 +6719,7 @@ Add a Comment | Name | Type | Required | Description | |------|------|----------|--------------| -| `payload` | oas:CommentmanagerAddBody | Yes | | +| `payload` | oas:CommentmanagerAddBody | Yes | Request payload | | `headers` | map<string|string[]> | No | Headers to be sent with the request | **Returns:** `oas:CommentOperationEnvelope|error` @@ -6945,7 +6770,7 @@ Edit a Comment | Name | Type | Required | Description | |------|------|----------|--------------| | `typedId` | string | Yes | typedId of the comment you want to edit | -| `payload` | oas:CommentmanagerEdittypedIdBody | Yes | | +| `payload` | oas:CommentmanagerEdittypedIdBody | Yes | Request payload | | `headers` | map<string|string[]> | No | Headers to be sent with the request | **Returns:** `oas:CommentOperationEnvelope|error` @@ -6971,7 +6796,7 @@ List Comment Threads | Name | Type | Required | Description | |------|------|----------|--------------| | `typedId` | string | Yes | typedId of the object you want to fetch comments for | -| `payload` | oas:CommentmanagerFetchthreadstypedIdBody | Yes | | +| `payload` | oas:CommentmanagerFetchthreadstypedIdBody | Yes | Request payload | | `headers` | map<string|string[]> | No | Headers to be sent with the request | | `queries` | *oas:ListCommentThreadsQueries | Yes | Queries to be sent with the request | @@ -6997,7 +6822,7 @@ Reply To a Comment | Name | Type | Required | Description | |------|------|----------|--------------| -| `payload` | oas:CommentmanagerReplyBody | Yes | | +| `payload` | oas:CommentmanagerReplyBody | Yes | Request payload | | `headers` | map<string|string[]> | No | Headers to be sent with the request | **Returns:** `oas:CommentOperationEnvelope|error` @@ -7023,7 +6848,7 @@ Resolve a Comment | Name | Type | Required | Description | |------|------|----------|--------------| | `typedId` | string | Yes | The typedId of the comment thread | -| `payload` | record {} | Yes | | +| `payload` | record {} | Yes | Request payload | | `headers` | map<string|string[]> | No | Headers to be sent with the request | **Returns:** `oas:ResolveCommentEnvelope|error` @@ -7049,7 +6874,7 @@ Unresolve a Comment | Name | Type | Required | Description | |------|------|----------|--------------| | `typedId` | string | Yes | The typedId of the comment thread | -| `payload` | record {} | Yes | | +| `payload` | record {} | Yes | Request payload | | `headers` | map<string|string[]> | No | Headers to be sent with the request | **Returns:** `oas:ResolveCommentEnvelope|error` @@ -7077,7 +6902,7 @@ Change a Custom Form Status | Name | Type | Required | Description | |------|------|----------|--------------| | `typedId` | string | Yes | The `typedId` of the Custom Form whose status you want to change | -| `payload` | oas:ChangeCustomFormStatusRequest | Yes | | +| `payload` | oas:ChangeCustomFormStatusRequest | Yes | Request payload | | `headers` | map<string|string[]> | No | Headers to be sent with the request | **Returns:** `oas:ChangeCustomFormStatusResponse|error` @@ -7128,7 +6953,7 @@ Create a Custom Form Revision | Name | Type | Required | Description | |------|------|----------|--------------| | `typedId` | string | Yes | `typedId` of the Custom Form you want to create a revision from | -| `payload` | record {} | Yes | | +| `payload` | record {} | Yes | Request payload | | `headers` | map<string|string[]> | No | Headers to be sent with the request | **Returns:** `oas:CustomFormRevisionEnvelope|error` @@ -7153,7 +6978,7 @@ Create a Custom Form Type | Name | Type | Required | Description | |------|------|----------|--------------| -| `payload` | oas:CreateCustomFormTypeRequest | Yes | | +| `payload` | oas:CreateCustomFormTypeRequest | Yes | Request payload | | `headers` | map<string|string[]> | No | Headers to be sent with the request | **Returns:** `oas:CreateCustomFormTypeResponse|error` @@ -7178,7 +7003,7 @@ Delete a Custom Form | Name | Type | Required | Description | |------|------|----------|--------------| -| `payload` | oas:DeleteCustomFormRequest | Yes | | +| `payload` | oas:DeleteCustomFormRequest | Yes | Request payload | | `headers` | map<string|string[]> | No | Headers to be sent with the request | **Returns:** `oas:generalResponse|error` @@ -7203,7 +7028,7 @@ Delete a Custom Form Type | Name | Type | Required | Description | |------|------|----------|--------------| -| `payload` | oas:DeleteCFOTBody | Yes | | +| `payload` | oas:DeleteCFOTBody | Yes | Request payload | | `headers` | map<string|string[]> | No | Headers to be sent with the request | **Returns:** `oas:DeleteCustomFormTypeEnvelope|error` @@ -7229,7 +7054,7 @@ Duplicate a Custom Form | Name | Type | Required | Description | |------|------|----------|--------------| | `typedId` | string | Yes | `typedId` of the Custom Form you want to duplicate | -| `payload` | record {} | Yes | | +| `payload` | record {} | Yes | Request payload | | `headers` | map<string|string[]> | No | Headers to be sent with the request | **Returns:** `oas:CustomFormRevisionEnvelope|error` @@ -7279,7 +7104,7 @@ List Custom Form Types | Name | Type | Required | Description | |------|------|----------|--------------| -| `payload` | oas:ListCustomFormTypesRequest | Yes | | +| `payload` | oas:ListCustomFormTypesRequest | Yes | Request payload | | `headers` | map<string|string[]> | No | Headers to be sent with the request | **Returns:** `oas:ListCustomFormTypesResponse|error` @@ -7304,7 +7129,7 @@ List Custom Forms | Name | Type | Required | Description | |------|------|----------|--------------| -| `payload` | oas:ListCustomFormsRequest | Yes | | +| `payload` | oas:ListCustomFormsRequest | Yes | Request payload | | `headers` | map<string|string[]> | No | Headers to be sent with the request | **Returns:** `oas:ListCustomFormsEnvelope|error` @@ -7329,7 +7154,7 @@ Preview a Custom Form Workflow | Name | Type | Required | Description | |------|------|----------|--------------| -| `payload` | record {} | Yes | | +| `payload` | record {} | Yes | Request payload | | `headers` | map<string|string[]> | No | Headers to be sent with the request | **Returns:** `oas:PreviewCustomFormWorkflowResponse|error` @@ -7354,7 +7179,7 @@ Update a Custom Form | Name | Type | Required | Description | |------|------|----------|--------------| -| `payload` | oas:UpdateCustomFormRequest | Yes | | +| `payload` | oas:UpdateCustomFormRequest | Yes | Request payload | | `headers` | map<string|string[]> | No | Headers to be sent with the request | **Returns:** `oas:UpdateCustomFormEnvelope|error` @@ -7379,7 +7204,7 @@ Update a Custom Form Type | Name | Type | Required | Description | |------|------|----------|--------------| -| `payload` | oas:UpdateCustomFormTypeRequest | Yes | | +| `payload` | oas:UpdateCustomFormTypeRequest | Yes | Request payload | | `headers` | map<string|string[]> | No | Headers to be sent with the request | **Returns:** `oas:UpdateCustomFormTypeResponse|error` @@ -7406,7 +7231,7 @@ Add a Data Change Request | Name | Type | Required | Description | |------|------|----------|--------------| -| `payload` | oas:AddDCRRequest | Yes | | +| `payload` | oas:AddDCRRequest | Yes | Request payload | | `headers` | map<string|string[]> | No | Headers to be sent with the request | **Returns:** `oas:AddDCRResponse|error` @@ -7432,7 +7257,7 @@ Add a Data Change Request Item | Name | Type | Required | Description | |------|------|----------|--------------| | `id` | string | Yes | `id` of the Data Change Request you want to add the Data Change Request Item to | -| `payload` | oas:AddDCRIRequest | Yes | | +| `payload` | oas:AddDCRIRequest | Yes | Request payload | | `headers` | map<string|string[]> | No | Headers to be sent with the request | **Returns:** `oas:AddDCRIResponse|error` @@ -7458,7 +7283,7 @@ Delete a Data Change Request Item | Name | Type | Required | Description | |------|------|----------|--------------| | `id` | string | Yes | `id` of the Data Change Request whose item you want to delete | -| `payload` | oas:DeleteDCRIRequest | Yes | | +| `payload` | oas:DeleteDCRIRequest | Yes | Request payload | | `headers` | map<string|string[]> | No | Headers to be sent with the request | **Returns:** `oas:DeleteDCRIResponse|error` @@ -7484,7 +7309,7 @@ Delete a Data Change Request Mass Change | Name | Type | Required | Description | |------|------|----------|--------------| | `id` | string | Yes | `id` of the Data Change Request | -| `payload` | oas:DcrmanagerDeletemassopidBody | Yes | | +| `payload` | oas:DcrmanagerDeletemassopidBody | Yes | Request payload | | `headers` | map<string|string[]> | No | Headers to be sent with the request | **Returns:** `oas:DataChangeRequestMassChangeEnvelope|error` @@ -7510,7 +7335,7 @@ Get a Data Change Request | Name | Type | Required | Description | |------|------|----------|--------------| | `id` | string | Yes | `id` of the Data Change Request you want to retrieve | -| `payload` | oas:GetDCRRequest | Yes | | +| `payload` | oas:GetDCRRequest | Yes | Request payload | | `headers` | map<string|string[]> | No | Headers to be sent with the request | **Returns:** `oas:GetDCRResponse|error` @@ -7536,7 +7361,7 @@ Get a Data Change Request (changes only) | Name | Type | Required | Description | |------|------|----------|--------------| | `id` | string | Yes | `id` of the Data Change Request you want to retrieve changed items for | -| `payload` | oas:GetDCRRequestChangeOnly | Yes | | +| `payload` | oas:GetDCRRequestChangeOnly | Yes | Request payload | | `headers` | map<string|string[]> | No | Headers to be sent with the request | **Returns:** `oas:GetDCRResponseChangeOnly|error` @@ -7562,7 +7387,7 @@ Get Data Change Request Mass Changes | Name | Type | Required | Description | |------|------|----------|--------------| | `id` | string | Yes | `id` of the Data Change Request | -| `payload` | oas:DcrmanagerFetchmassopidBody | Yes | | +| `payload` | oas:DcrmanagerFetchmassopidBody | Yes | Request payload | | `headers` | map<string|string[]> | No | Headers to be sent with the request | **Returns:** `oas:DataChangeRequestMassChangeEnvelope|error` @@ -7588,7 +7413,7 @@ Mass Edit Data Change Request Items | Name | Type | Required | Description | |------|------|----------|--------------| | `id` | string | Yes | `id` of the Data Change Request | -| `payload` | oas:DcrmanagerAddmassopidBody | Yes | | +| `payload` | oas:DcrmanagerAddmassopidBody | Yes | Request payload | | `headers` | map<string|string[]> | No | Headers to be sent with the request | **Returns:** `oas:DataChangeRequestMassChangeEnvelope|error` @@ -7614,7 +7439,7 @@ Submit a Data Change Request | Name | Type | Required | Description | |------|------|----------|--------------| | `id` | string | Yes | `id` of the DCR to be submitted | -| `payload` | record {} | Yes | | +| `payload` | record {} | Yes | Request payload | | `headers` | map<string|string[]> | No | Headers to be sent with the request | **Returns:** `oas:SubmitDCRResponse|error` @@ -7640,7 +7465,7 @@ Submit a Data Change Request (async) | Name | Type | Required | Description | |------|------|----------|--------------| | `id` | string | Yes | `id` of the DCR to be submitted | -| `payload` | record {} | Yes | | +| `payload` | record {} | Yes | Request payload | | `headers` | map<string|string[]> | No | Headers to be sent with the request | **Returns:** `oas:SubmitDCRAsyncResponse|error` @@ -7666,7 +7491,7 @@ Update a Data Change Request Item | Name | Type | Required | Description | |------|------|----------|--------------| | `id` | string | Yes | `id` of the Data Change Request whose item you want to update | -| `payload` | oas:UpdateDCRIRequest | Yes | | +| `payload` | oas:UpdateDCRIRequest | Yes | Request payload | | `headers` | map<string|string[]> | No | Headers to be sent with the request | **Returns:** `oas:UpdateDCRIResponse|error` @@ -7692,7 +7517,7 @@ Update Data Change Request Mass Changes | Name | Type | Required | Description | |------|------|----------|--------------| | `id` | string | Yes | `id` of the Data Change Request | -| `payload` | oas:DcrmanagerUpdatemassopidBody | Yes | | +| `payload` | oas:DcrmanagerUpdatemassopidBody | Yes | Request payload | | `headers` | map<string|string[]> | No | Headers to be sent with the request | **Returns:** `oas:DataChangeRequestMassChangeEnvelope|error` @@ -7720,7 +7545,7 @@ Create a DMFieldCollection | Name | Type | Required | Description | |------|------|----------|--------------| | `fcType` | "DMDS"|"DMT" | Yes | The type of FC (FieldCollection) you want to create | -| `payload` | oas:DatamartCreatefcfcTypeBody | Yes | | +| `payload` | oas:DatamartCreatefcfcTypeBody | Yes | Request payload | | `headers` | map<string|string[]> | No | Headers to be sent with the request | **Returns:** `error?` @@ -7772,7 +7597,7 @@ Delete a Data Manager Entity | Name | Type | Required | Description | |------|------|----------|--------------| | `typeCode` | "DM"|"DMF"|"DMDS" | Yes | The type code of the **Field Collection** you want to delete | -| `payload` | oas:DeleteDataManagerEntityRequest | Yes | | +| `payload` | oas:DeleteDataManagerEntityRequest | Yes | Request payload | | `headers` | map<string|string[]> | No | Headers to be sent with the request | **Returns:** `oas:DeleteDataManagerEntityResponse|error` @@ -7847,7 +7672,7 @@ Export a CSV File | Name | Type | Required | Description | |------|------|----------|--------------| -| `payload` | oas:ExportCSVFileRequest | Yes | | +| `payload` | oas:ExportCSVFileRequest | Yes | Request payload | | `headers` | map<string|string[]> | No | Headers to be sent with the request | | `queries` | *oas:ExportCsvFileQueries | Yes | Queries to be sent with the request | @@ -7874,7 +7699,7 @@ Export Datamart | Name | Type | Required | Description | |------|------|----------|--------------| | `fcTypedIdOrSourceName` | string | Yes | Restricts the export to a specific source, identified by either the 'typedId' or 'sourceName'. | -| `payload` | oas:ExportDatamartRequest | Yes | | +| `payload` | oas:ExportDatamartRequest | Yes | Request payload | | `headers` | map<string|string[]> | No | Headers to be sent with the request | | `queries` | *oas:ExportDatamartQueries | Yes | Queries to be sent with the request | @@ -7900,7 +7725,7 @@ Export an Excel File (XLSX) | Name | Type | Required | Description | |------|------|----------|--------------| -| `payload` | oas:ExportExcelFileRequest | Yes | | +| `payload` | oas:ExportExcelFileRequest | Yes | Request payload | | `headers` | map<string|string[]> | No | Headers to be sent with the request | | `queries` | *oas:ExportExcelFileXlsxQueries | Yes | Queries to be sent with the request | @@ -7927,7 +7752,7 @@ Get a DM Object - **typedUniquename** – Format: "*<typeCode>.<uniqueN | Name | Type | Required | Description | |------|------|----------|--------------| | `objectId` | string | Yes | Use one of the following object identifiers: | -| `payload` | oas:GetDMObjectRequest | Yes | | +| `payload` | oas:GetDMObjectRequest | Yes | Request payload | | `headers` | map<string|string[]> | No | Headers to be sent with the request | | `queries` | *oas:FetchDataMartObjectQueries | Yes | Queries to be sent with the request | @@ -7953,7 +7778,7 @@ Get Action Status | Name | Type | Required | Description | |------|------|----------|--------------| -| `actionUUID` | string | Yes | | +| `actionUUID` | string | Yes | The actionUUID to be sent with the request | | `headers` | map<string|string[]> | No | Headers to be sent with the request | **Returns:** `oas:GetActionStatusResponse|error` @@ -8030,7 +7855,7 @@ Get a DM Object (no count) - **typedUniquename** – Format: "*<typeCode>. | Name | Type | Required | Description | |------|------|----------|--------------| | `objectId` | string | Yes | Use one of the following object identifiers: | -| `payload` | oas:GetDMObjectNoCountRequest | Yes | | +| `payload` | oas:GetDMObjectNoCountRequest | Yes | Request payload | | `headers` | map<string|string[]> | No | Headers to be sent with the request | **Returns:** `oas:GetDMObjectNoCountResponse|error` @@ -8055,7 +7880,7 @@ Import a Data Load | Name | Type | Required | Description | |------|------|----------|--------------| -| `payload` | oas:ImportDataLoadRequest | Yes | | +| `payload` | oas:ImportDataLoadRequest | Yes | Request payload | | `headers` | map<string|string[]> | No | Headers to be sent with the request | **Returns:** `error?` @@ -8179,7 +8004,7 @@ List Data Manager Entities | Name | Type | Required | Description | |------|------|----------|--------------| | `typeCode` | "DM"|"DMDS"|"DMF"|"DMT" | Yes | The type code of the **Field Collection** | -| `payload` | oas:ListDataManagerEntitiesRequest | Yes | | +| `payload` | oas:ListDataManagerEntitiesRequest | Yes | Request payload | | `headers` | map<string|string[]> | No | Headers to be sent with the request | **Returns:** `oas:dmobjectResponse|error` @@ -8228,7 +8053,7 @@ List Rollups | Name | Type | Required | Description | |------|------|----------|--------------| -| `payload` | oas:ListRollupsRequest | Yes | | +| `payload` | oas:ListRollupsRequest | Yes | Request payload | | `headers` | map<string|string[]> | No | Headers to be sent with the request | **Returns:** `oas:ListRollupsResponse|error` @@ -8254,7 +8079,7 @@ Mass Edit | Name | Type | Required | Description | |------|------|----------|--------------| | `typedId` | string | Yes | The `typedId` of the object you want to perform the mass edit action for | -| `payload` | oas:MassEditRequest1 | Yes | | +| `payload` | oas:MassEditRequest1 | Yes | Request payload | | `headers` | map<string|string[]> | No | Headers to be sent with the request | **Returns:** `oas:MassEditDatamartResponse|error` @@ -8279,7 +8104,7 @@ Query a Data Manager Object | Name | Type | Required | Description | |------|------|----------|--------------| -| `payload` | oas:QueryDataManagerObjectRequest | Yes | | +| `payload` | oas:QueryDataManagerObjectRequest | Yes | Request payload | | `headers` | map<string|string[]> | No | Headers to be sent with the request | | `queries` | *oas:QueryDataManagerObjectQueries | Yes | Queries to be sent with the request | @@ -8330,7 +8155,7 @@ Run a Data Load | Name | Type | Required | Description | |------|------|----------|--------------| -| `payload` | oas:RunDataLoadRequest | Yes | | +| `payload` | oas:RunDataLoadRequest | Yes | Request payload | | `headers` | map<string|string[]> | No | Headers to be sent with the request | **Returns:** `oas:RunDataLoadResponse|error` @@ -8355,7 +8180,7 @@ Save a Data Load | Name | Type | Required | Description | |------|------|----------|--------------| -| `payload` | oas:DatamartUpdatedataloadBody | Yes | | +| `payload` | oas:DatamartUpdatedataloadBody | Yes | Request payload | | `headers` | map<string|string[]> | No | Headers to be sent with the request | **Returns:** `oas:DataLoadEnvelope|error` @@ -8433,7 +8258,7 @@ Upload a Bulk Data to Data Source | Name | Type | Required | Description | |------|------|----------|--------------| | `datasourceUniqueName` | string | Yes | The unique name of the Data Source where you want to upload the data to. You can also use `typedId` or the source name | -| `payload` | oas:UploadBulkDataToDataSourceRequest | Yes | | +| `payload` | oas:UploadBulkDataToDataSourceRequest | Yes | Request payload | | `headers` | map<string|string[]> | No | Headers to be sent with the request | **Returns:** `oas:BulkDataUploadEnvelope|error` @@ -8460,7 +8285,7 @@ Delete Import Changes | Name | Type | Required | Description | |------|------|----------|--------------| -| `payload` | oas:ImportmanagerDeletechangesBody | Yes | | +| `payload` | oas:ImportmanagerDeletechangesBody | Yes | Request payload | | `headers` | map<string|string[]> | No | Headers to be sent with the request | **Returns:** `oas:generalResponse|error` @@ -8485,8 +8310,8 @@ List ImportManager Changes | Name | Type | Required | Description | |------|------|----------|--------------| -| `uniqueName` | string | Yes | | -| `payload` | record {} | Yes | | +| `uniqueName` | string | Yes | The uniqueName to be sent with the request | +| `payload` | record {} | Yes | Request payload | | `headers` | map<string|string[]> | No | Headers to be sent with the request | **Returns:** `oas:ListImportManagerChangesEnvelope|error` @@ -8511,8 +8336,8 @@ Mass Delete Imports | Name | Type | Required | Description | |------|------|----------|--------------| -| `typedId` | string | Yes | | -| `payload` | oas:ImportmanagerMassdeletetypedIdBody | Yes | | +| `typedId` | string | Yes | The typedId to be sent with the request | +| `payload` | oas:ImportmanagerMassdeletetypedIdBody | Yes | Request payload | | `headers` | map<string|string[]> | No | Headers to be sent with the request | **Returns:** `oas:MassDeleteImportsEnvelope|error` @@ -8537,8 +8362,8 @@ Mass Edit Imports | Name | Type | Required | Description | |------|------|----------|--------------| -| `typedId` | string | Yes | | -| `payload` | oas:ImportmanagerMassedittypedIdBody | Yes | | +| `typedId` | string | Yes | The typedId to be sent with the request | +| `payload` | oas:ImportmanagerMassedittypedIdBody | Yes | Request payload | | `headers` | map<string|string[]> | No | Headers to be sent with the request | **Returns:** `oas:MassEditImportsEnvelope|error` @@ -8563,7 +8388,7 @@ Save Import Change | Name | Type | Required | Description | |------|------|----------|--------------| -| `payload` | record {} | Yes | | +| `payload` | record {} | Yes | Request payload | | `headers` | map<string|string[]> | No | Headers to be sent with the request | **Returns:** `oas:SaveImportChangeEnvelope|error` @@ -8589,7 +8414,7 @@ Submit Changes | Name | Type | Required | Description | |------|------|----------|--------------| | `typedId` | string | Yes | typedId of the import | -| `payload` | oas:ImportmanagerSubmittypedIdBody | Yes | | +| `payload` | oas:ImportmanagerSubmittypedIdBody | Yes | Request payload | | `headers` | map<string|string[]> | No | Headers to be sent with the request | **Returns:** `oas:ImportManagerUploadEnvelope|error` @@ -8617,7 +8442,7 @@ Upload Excel to Import Manager | `typeCode` | "P"|"PX" | Yes | Target object type code | | `target` | string | Yes | Provides additional details about the target object, such as specifying a PX name if required | | `slotId` | string | Yes | ID of the Upload Slot | -| `payload` | oas:TypeCodetargetBody | Yes | | +| `payload` | oas:TypeCodetargetBody | Yes | Request payload | | `headers` | map<string|string[]> | No | Headers to be sent with the request | | `queries` | *oas:UploadExcelToImportManagerQueries | Yes | Queries to be sent with the request | @@ -8671,7 +8496,7 @@ Add a Lookup Table Value | Name | Type | Required | Description | |------|------|----------|--------------| | `tableId` | string | Yes | Enter the ID of the table. The ID can be retrieved using the `/lookuptablemanager.fetch` method | -| `payload` | oas:AddLookupTableValueRequest | Yes | | +| `payload` | oas:AddLookupTableValueRequest | Yes | Request payload | | `headers` | map<string|string[]> | No | Headers to be sent with the request | **Returns:** `oas:AddLookupTableValueResponse|error` @@ -8929,7 +8754,7 @@ Mass Edit | Name | Type | Required | Description | |------|------|----------|--------------| | `tableId` | string | Yes | The ID of the Lookup Table whose values you want to update | -| `payload` | oas:MassEditRequest | Yes | | +| `payload` | oas:MassEditRequest | Yes | Request payload | | `headers` | map<string|string[]> | No | Headers to be sent with the request | **Returns:** `oas:MassEditResponse|error` @@ -8980,7 +8805,7 @@ Update a Lookup Table Value | Name | Type | Required | Description | |------|------|----------|--------------| | `tableId` | string | Yes | Enter the ID of the table. The ID can be retrieved using the `/lookuptablemanager.fetch` method | -| `payload` | oas:UpdateLookupTableValueRequest | Yes | | +| `payload` | oas:UpdateLookupTableValueRequest | Yes | Request payload | | `headers` | map<string|string[]> | No | Headers to be sent with the request | **Returns:** `oas:UpdateLookupTableValueResponse|error` @@ -9006,7 +8831,7 @@ Upsert a Lookup Table Value | Name | Type | Required | Description | |------|------|----------|--------------| | `tableId` | string | Yes | Enter the ID of the table. The ID can be retrieved using the `/lookuptablemanager.fetch` method | -| `payload` | oas:UpsertLookupTableValueRequest | Yes | | +| `payload` | oas:UpsertLookupTableValueRequest | Yes | Request payload | | `headers` | map<string|string[]> | No | Headers to be sent with the request | **Returns:** `oas:UpsertLookupTableValueResponse|error` @@ -9084,8 +8909,8 @@ Delete a Key | Name | Type | Required | Description | |------|------|----------|--------------| -| `tableName` | string | Yes | | -| `payload` | oas:DeleteKVKeyRequest | Yes | | +| `tableName` | string | Yes | The tableName to be sent with the request | +| `payload` | oas:DeleteKVKeyRequest | Yes | Request payload | | `headers` | map<string|string[]> | No | Headers to be sent with the request | **Returns:** `error?` @@ -9111,7 +8936,7 @@ Drop a KV Table | Name | Type | Required | Description | |------|------|----------|--------------| | `tableName` | string | Yes | A name of the table you want drop. Only lower case letters, numbers and underscores are allowed. Do not use special characters | -| `payload` | record {} | Yes | | +| `payload` | record {} | Yes | Request payload | | `headers` | map<string|string[]> | No | Headers to be sent with the request | **Returns:** `record` @@ -9137,7 +8962,7 @@ Get a Key | Name | Type | Required | Description | |------|------|----------|--------------| | `tableName` | string | Yes | A name of the table you want to retrieve the "payload" from | -| `payload` | oas:GetKVKeyRequest | Yes | | +| `payload` | oas:GetKVKeyRequest | Yes | Request payload | | `headers` | map<string|string[]> | No | Headers to be sent with the request | **Returns:** `error?` @@ -9188,7 +9013,7 @@ Insert Bulk KV Data | Name | Type | Required | Description | |------|------|----------|--------------| | `tableName` | string | Yes | A name of the table you want upload data to | -| `payload` | oas:InsertBulkKVDataRequest | Yes | | +| `payload` | oas:InsertBulkKVDataRequest | Yes | Request payload | | `headers` | map<string|string[]> | No | Headers to be sent with the request | **Returns:** `oas:generalResponse|error` @@ -9369,7 +9194,7 @@ Execute Library Function | `formulaName` | string | Yes | Name of the formula library containing the function | | `elementName` | string | Yes | Name of the library element containing the function | | `functionName` | string | Yes | Name of the function to execute | -| `payload` | oas:ElementNamefunctionNameBody | Yes | | +| `payload` | oas:ElementNamefunctionNameBody | Yes | Request payload | | `headers` | map<string|string[]> | No | Headers to be sent with the request | **Returns:** `http:Response|error` @@ -9550,7 +9375,7 @@ Generate Parameters | Name | Type | Required | Description | |------|------|----------|--------------| -| `payload` | oas:GenerateParametersRequest | Yes | | +| `payload` | oas:GenerateParametersRequest | Yes | Request payload | | `headers` | map<string|string[]> | No | Headers to be sent with the request | **Returns:** `oas:GenerateParametersResponse|error` @@ -9771,7 +9596,7 @@ Syntax Check | Name | Type | Required | Description | |------|------|----------|--------------| -| `payload` | oas:SyntaxCheckRequest | Yes | | +| `payload` | oas:SyntaxCheckRequest | Yes | Request payload | | `headers` | map<string|string[]> | No | Headers to be sent with the request | **Returns:** `error?` @@ -9796,7 +9621,7 @@ Test a Logic | Name | Type | Required | Description | |------|------|----------|--------------| -| `payload` | oas:TestLogicRequest | Yes | | +| `payload` | oas:TestLogicRequest | Yes | Request payload | | `headers` | map<string|string[]> | No | Headers to be sent with the request | **Returns:** `oas:TestLogicEnvelope|error` @@ -9822,7 +9647,7 @@ Update a Logic | Name | Type | Required | Description | |------|------|----------|--------------| | `id` | string | Yes | The ID of the logic. The `id` is the `typedId` without the **F** suffix. For example, the `id` attribute of the item with `typedId` = **2147484837.F** is **2147484837** | -| `payload` | record {record {decimal version?; string typedId?; string uniqueName?; string label?; string validAfter?; string status?; anydata simulationSet?; anydata userGroupEdit?; anydata userGroupViewDetails?; anydata formulaNature?; string lastUpdateByName?; record {decimal version?; string typedId?; string elementName?; string elementLabel?; anydata elementDescription?; string[] elementGroups?; anydata conditionElementName?; boolean hideWarnings?; boolean excludeFromExport?; boolean protectedExpression?; decimal elementTimeout?; decimal displayOptions?; string? formatType?; anydata elementSuffix?; boolean allowOverride?; boolean summarize?; boolean hideOnNull?; anydata userGroup?; anydata cssProperties?; anydata resultGroup?; string combinationType?; boolean storeInAttributeExtension?; anydata criticalAlert?; anydata redAlert?; anydata yellowAlert?; anydata labelTranslations?; string createDate?; decimal createdBy?; string lastUpdateDate?; decimal lastUpdateBy?; string formulaExpression?;}[] elements?; record {}[] inputDescriptors?; string formulaType?; anydata createdByName?; string createDate?; decimal createdBy?; string lastUpdateDate?; decimal lastUpdateBy?;} data?;} | Yes | | +| `payload` | record {record {decimal version?; string typedId?; string uniqueName?; string label?; string validAfter?; string status?; anydata simulationSet?; anydata userGroupEdit?; anydata userGroupViewDetails?; anydata formulaNature?; string lastUpdateByName?; record {decimal version?; string typedId?; string elementName?; string elementLabel?; anydata elementDescription?; string[] elementGroups?; anydata conditionElementName?; boolean hideWarnings?; boolean excludeFromExport?; boolean protectedExpression?; decimal elementTimeout?; decimal displayOptions?; string? formatType?; anydata elementSuffix?; boolean allowOverride?; boolean summarize?; boolean hideOnNull?; anydata userGroup?; anydata cssProperties?; anydata resultGroup?; string combinationType?; boolean storeInAttributeExtension?; anydata criticalAlert?; anydata redAlert?; anydata yellowAlert?; anydata labelTranslations?; string createDate?; decimal createdBy?; string lastUpdateDate?; decimal lastUpdateBy?; string formulaExpression?;}[] elements?; record {}[] inputDescriptors?; string formulaType?; anydata createdByName?; string createDate?; decimal createdBy?; string lastUpdateDate?; decimal lastUpdateBy?;} data?;} | Yes | Request payload | | `headers` | map<string|string[]> | No | Headers to be sent with the request | **Returns:** `oas:logicResponse|error` @@ -9848,7 +9673,7 @@ Update a Logic (No syntax check) | Name | Type | Required | Description | |------|------|----------|--------------| | `id` | string | Yes | The ID of the logic. The `id` is the `typedId` without the **F** suffix. For example, the `id` attribute of the item with `typedId` = **2147484837.F** is **2147484837** | -| `payload` | record {record {decimal version?; string typedId?; string uniqueName?; string label?; string validAfter?; string status?; anydata simulationSet?; anydata userGroupEdit?; anydata userGroupViewDetails?; anydata formulaNature?; string lastUpdateByName?; record {decimal version?; string typedId?; string elementName?; string elementLabel?; anydata elementDescription?; string[] elementGroups?; anydata conditionElementName?; boolean hideWarnings?; boolean excludeFromExport?; boolean protectedExpression?; decimal elementTimeout?; decimal displayOptions?; string? formatType?; anydata elementSuffix?; boolean allowOverride?; boolean summarize?; boolean hideOnNull?; anydata userGroup?; anydata cssProperties?; anydata resultGroup?; string combinationType?; boolean storeInAttributeExtension?; anydata criticalAlert?; anydata redAlert?; anydata yellowAlert?; anydata labelTranslations?; string createDate?; decimal createdBy?; string lastUpdateDate?; decimal lastUpdateBy?; string formulaExpression?;}[] elements?; record {}[] inputDescriptors?; string formulaType?; anydata createdByName?; string createDate?; decimal createdBy?; string lastUpdateDate?; decimal lastUpdateBy?;} data?;} | Yes | | +| `payload` | record {record {decimal version?; string typedId?; string uniqueName?; string label?; string validAfter?; string status?; anydata simulationSet?; anydata userGroupEdit?; anydata userGroupViewDetails?; anydata formulaNature?; string lastUpdateByName?; record {decimal version?; string typedId?; string elementName?; string elementLabel?; anydata elementDescription?; string[] elementGroups?; anydata conditionElementName?; boolean hideWarnings?; boolean excludeFromExport?; boolean protectedExpression?; decimal elementTimeout?; decimal displayOptions?; string? formatType?; anydata elementSuffix?; boolean allowOverride?; boolean summarize?; boolean hideOnNull?; anydata userGroup?; anydata cssProperties?; anydata resultGroup?; string combinationType?; boolean storeInAttributeExtension?; anydata criticalAlert?; anydata redAlert?; anydata yellowAlert?; anydata labelTranslations?; string createDate?; decimal createdBy?; string lastUpdateDate?; decimal lastUpdateBy?; string formulaExpression?;}[] elements?; record {}[] inputDescriptors?; string formulaType?; anydata createdByName?; string createDate?; decimal createdBy?; string lastUpdateDate?; decimal lastUpdateBy?;} data?;} | Yes | Request payload | | `headers` | map<string|string[]> | No | Headers to be sent with the request | **Returns:** `oas:logicResponse|error` @@ -9874,7 +9699,7 @@ Update a Logic (Partial) | Name | Type | Required | Description | |------|------|----------|--------------| | `id` | string | Yes | The ID of the logic. The `id` is the `typedId` without the **F** suffix. For example, the `id` attribute of the item with `typedId` = **2147484837.F** is **2147484837** | -| `payload` | record {record {decimal version?; string typedId?; string uniqueName?; string label?; string validAfter?; string status?; anydata simulationSet?; anydata userGroupEdit?; anydata userGroupViewDetails?; anydata formulaNature?; string lastUpdateByName?; record {decimal version?; string typedId?; string elementName?; string elementLabel?; anydata elementDescription?; string[] elementGroups?; anydata conditionElementName?; boolean hideWarnings?; boolean excludeFromExport?; boolean protectedExpression?; decimal elementTimeout?; decimal displayOptions?; string? formatType?; anydata elementSuffix?; boolean allowOverride?; boolean summarize?; boolean hideOnNull?; anydata userGroup?; anydata cssProperties?; anydata resultGroup?; string combinationType?; boolean storeInAttributeExtension?; anydata criticalAlert?; anydata redAlert?; anydata yellowAlert?; anydata labelTranslations?; string createDate?; decimal createdBy?; string lastUpdateDate?; decimal lastUpdateBy?; string formulaExpression?;}[] elements?; record {}[] inputDescriptors?; string formulaType?; anydata createdByName?; string createDate?; decimal createdBy?; string lastUpdateDate?; decimal lastUpdateBy?;} data?;} | Yes | | +| `payload` | record {record {decimal version?; string typedId?; string uniqueName?; string label?; string validAfter?; string status?; anydata simulationSet?; anydata userGroupEdit?; anydata userGroupViewDetails?; anydata formulaNature?; string lastUpdateByName?; record {decimal version?; string typedId?; string elementName?; string elementLabel?; anydata elementDescription?; string[] elementGroups?; anydata conditionElementName?; boolean hideWarnings?; boolean excludeFromExport?; boolean protectedExpression?; decimal elementTimeout?; decimal displayOptions?; string? formatType?; anydata elementSuffix?; boolean allowOverride?; boolean summarize?; boolean hideOnNull?; anydata userGroup?; anydata cssProperties?; anydata resultGroup?; string combinationType?; boolean storeInAttributeExtension?; anydata criticalAlert?; anydata redAlert?; anydata yellowAlert?; anydata labelTranslations?; string createDate?; decimal createdBy?; string lastUpdateDate?; decimal lastUpdateBy?; string formulaExpression?;}[] elements?; record {}[] inputDescriptors?; string formulaType?; anydata createdByName?; string createDate?; decimal createdBy?; string lastUpdateDate?; decimal lastUpdateBy?;} data?;} | Yes | Request payload | | `headers` | map<string|string[]> | No | Headers to be sent with the request | **Returns:** `oas:logicResponse|error` @@ -9902,7 +9727,7 @@ Submit a Calculation Grid Item | Name | Type | Required | Description | |------|------|----------|--------------| | `id` | string | Yes | The `id` of the Calculation Grid you want to submit items for. You can retrieve the `id` of the CG, for example, by calling the `/fetch/CG` endpoint | -| `payload` | oas:SubmitCalculationGridItemRequest | Yes | | +| `payload` | oas:SubmitCalculationGridItemRequest | Yes | Request payload | | `headers` | map<string|string[]> | No | Headers to be sent with the request | **Returns:** `oas:SubmitCalculationGridItemResponse|error` @@ -9927,7 +9752,7 @@ Add a Calculation Grid | Name | Type | Required | Description | |------|------|----------|--------------| -| `payload` | oas:AddCalculationGridRequest | Yes | | +| `payload` | oas:AddCalculationGridRequest | Yes | Request payload | | `headers` | map<string|string[]> | No | Headers to be sent with the request | **Returns:** `oas:AddCalculationGridResponse|error` @@ -9953,7 +9778,7 @@ Add a Calculation Grid Item | Name | Type | Required | Description | |------|------|----------|--------------| | `keyNumber` | "1"|"2"|"3"|"4"|"5"|"6" | Yes | Use CGI1..CGI6 in the path, where numbers from 1 to 6 refer to Calculation Grid Item keys | -| `payload` | oas:AddCalculationGridItemRequest | Yes | | +| `payload` | oas:AddCalculationGridItemRequest | Yes | Request payload | | `headers` | map<string|string[]> | No | Headers to be sent with the request | **Returns:** `oas:AddCalculationGridItemResponse|error` @@ -9979,7 +9804,7 @@ Calculate a Calculation Grid | Name | Type | Required | Description | |------|------|----------|--------------| | `id` | string | Yes | `id` of the Calculation Grid you want to calculate | -| `payload` | oas:CalculateCalculationGridRequest | Yes | | +| `payload` | oas:CalculateCalculationGridRequest | Yes | Request payload | | `headers` | map<string|string[]> | No | Headers to be sent with the request | **Returns:** `oas:CalculateCalculationGridResponse|error` @@ -10004,7 +9829,7 @@ Delete a Calculation Grid | Name | Type | Required | Description | |------|------|----------|--------------| -| `payload` | oas:DeleteCalculationGridRequest | Yes | | +| `payload` | oas:DeleteCalculationGridRequest | Yes | Request payload | | `headers` | map<string|string[]> | No | Headers to be sent with the request | **Returns:** `oas:DeleteCalculationGridResponse|error` @@ -10030,7 +9855,7 @@ Delete a Calculation Grid Item | Name | Type | Required | Description | |------|------|----------|--------------| | `keyNumber` | "1"|"2"|"3"|"4"|"5"|"6" | Yes | Use CGI1..CGI6 in the path, where numbers from 1 to 6 refer to Calculation Grid Item keys | -| `payload` | oas:DeleteCalculationGridItemRequest | Yes | | +| `payload` | oas:DeleteCalculationGridItemRequest | Yes | Request payload | | `headers` | map<string|string[]> | No | Headers to be sent with the request | **Returns:** `oas:DeleteCalculationGridItemResponse|error` @@ -10056,7 +9881,7 @@ Get a Calculation Grid | Name | Type | Required | Description | |------|------|----------|--------------| | `id` | string | Yes | ID of the Calculation Grid you want to retrieve | -| `payload` | record {} | Yes | | +| `payload` | record {} | Yes | Request payload | | `headers` | map<string|string[]> | No | Headers to be sent with the request | **Returns:** `oas:GetCalculationGridResponse|error` @@ -10083,7 +9908,7 @@ Get a Calculation Grid Item |------|------|----------|--------------| | `keyNumber` | "1"|"2"|"3"|"4"|"5"|"6" | Yes | Use CGI1..CGI6 in the path, where numbers from 1 to 6 refer to Calculation Grid Item keys | | `id` | string | Yes | `id` of the Calculation Grid Item you want to fetch | -| `payload` | record {} | Yes | | +| `payload` | record {} | Yes | Request payload | | `headers` | map<string|string[]> | No | Headers to be sent with the request | **Returns:** `oas:GetCalculationGridItemResponse|error` @@ -10109,7 +9934,7 @@ List Calculation Grid Items | Name | Type | Required | Description | |------|------|----------|--------------| | `keyNumber` | "1"|"2"|"3"|"4"|"5"|"6" | Yes | Use CGI1..CGI6 in the path, where numbers from 1 to 6 refer to Calculation Grid Item keys | -| `payload` | oas:ListCalculationGridItemsRequest | Yes | | +| `payload` | oas:ListCalculationGridItemsRequest | Yes | Request payload | | `headers` | map<string|string[]> | No | Headers to be sent with the request | **Returns:** `oas:ListCalculationGridItemsResponse|error` @@ -10134,7 +9959,7 @@ List Calculation Grids | Name | Type | Required | Description | |------|------|----------|--------------| -| `payload` | record {} | Yes | | +| `payload` | record {} | Yes | Request payload | | `headers` | map<string|string[]> | No | Headers to be sent with the request | **Returns:** `oas:ListCalculationGridsResponse|error` @@ -10160,7 +9985,7 @@ Deny a Calculation Grid Item | Name | Type | Required | Description | |------|------|----------|--------------| | `id` | string | Yes | The `id` of the Calculation Grid you want to deny items for. You can retrieve the `id` of the CG, for example, by calling the `/fetch/CG` endpoint | -| `payload` | oas:DenyCalculationGridItemRequest | Yes | | +| `payload` | oas:DenyCalculationGridItemRequest | Yes | Request payload | | `headers` | map<string|string[]> | No | Headers to be sent with the request | **Returns:** `oas:DenyCalculationGridItemResponse|error` @@ -10185,7 +10010,7 @@ Update a Calculation Grid | Name | Type | Required | Description | |------|------|----------|--------------| -| `payload` | oas:UpdateCalculationGridRequest | Yes | | +| `payload` | oas:UpdateCalculationGridRequest | Yes | Request payload | | `headers` | map<string|string[]> | No | Headers to be sent with the request | **Returns:** `oas:UpdateCalculationGridResponse|error` @@ -10211,7 +10036,7 @@ Update a Calculation Grid Item | Name | Type | Required | Description | |------|------|----------|--------------| | `id` | string | Yes | `id` of the Calculation Grid Item you want to update | -| `payload` | oas:UpdateCalculationGridItemRequest | Yes | | +| `payload` | oas:UpdateCalculationGridItemRequest | Yes | Request payload | | `headers` | map<string|string[]> | No | Headers to be sent with the request | **Returns:** `oas:UpdateCalculationGridItemResponse|error` @@ -10238,7 +10063,7 @@ Add an Action Type | Name | Type | Required | Description | |------|------|----------|--------------| -| `payload` | oas:AddActionTypeRequest | Yes | | +| `payload` | oas:AddActionTypeRequest | Yes | Request payload | | `headers` | map<string|string[]> | No | Headers to be sent with the request | **Returns:** `oas:AddActionTypeResponse|error` @@ -10313,7 +10138,7 @@ Update an Action Type | Name | Type | Required | Description | |------|------|----------|--------------| -| `payload` | oas:UpdateAITBody | Yes | | +| `payload` | oas:UpdateAITBody | Yes | Request payload | | `headers` | map<string|string[]> | No | Headers to be sent with the request | **Returns:** `oas:UpdateActionTypeResponse|error` @@ -10365,7 +10190,7 @@ Delete an Action Item | Name | Type | Required | Description | |------|------|----------|--------------| -| `payload` | oas:DeleteActionItemRequest | Yes | | +| `payload` | oas:DeleteActionItemRequest | Yes | Request payload | | `headers` | map<string|string[]> | No | Headers to be sent with the request | **Returns:** `oas:DeleteActionItemResponse|error` @@ -10391,7 +10216,7 @@ Execute a Logic | Name | Type | Required | Description | |------|------|----------|--------------| | `typeCode` | string | Yes | The `typeCode` of the Action Item you want to execute the calculation for | -| `payload` | record {} | Yes | | +| `payload` | record {} | Yes | Request payload | | `headers` | map<string|string[]> | No | Headers to be sent with the request | **Returns:** `oas:ExecuteActionItemLogicResponse|error` @@ -10416,7 +10241,7 @@ List Action Items | Name | Type | Required | Description | |------|------|----------|--------------| -| `payload` | oas:FetchAIBody | Yes | | +| `payload` | oas:FetchAIBody | Yes | Request payload | | `headers` | map<string|string[]> | No | Headers to be sent with the request | **Returns:** `oas:ListActionItemsResponse|error` @@ -10441,7 +10266,7 @@ Update an Action Item | Name | Type | Required | Description | |------|------|----------|--------------| -| `payload` | oas:UpdateActionItemRequest | Yes | | +| `payload` | oas:UpdateActionItemRequest | Yes | Request payload | | `headers` | map<string|string[]> | No | Headers to be sent with the request | **Returns:** `oas:UpdateActionItemResponse|error` @@ -10469,7 +10294,7 @@ Cancel a Job | Name | Type | Required | Description | |------|------|----------|--------------| | `id` | string | Yes | `id` if the job you want to cancel | -| `payload` | record {} | Yes | | +| `payload` | record {} | Yes | Request payload | | `headers` | map<string|string[]> | No | Headers to be sent with the request | **Returns:** `oas:generalResponse|error` @@ -10522,7 +10347,7 @@ Add an Approver Step | Name | Type | Required | Description | |------|------|----------|--------------| | `currentStepId` | string | Yes | The ID of the workflow step. It can be retrieved using the `/workflowsmanager.fetch/active` (**List Pending Approvals**) endpoint | -| `payload` | oas:AddApproverStepRequest | Yes | | +| `payload` | oas:AddApproverStepRequest | Yes | Request payload | | `headers` | map<string|string[]> | No | Headers to be sent with the request | **Returns:** `oas:AddApproverStepResponse|error` @@ -10548,7 +10373,7 @@ Add a Watcher Step | Name | Type | Required | Description | |------|------|----------|--------------| | `currentStepId` | string | Yes | The ID of the workflow step. It can be retrieved using the `/workflowsmanager.fetch/active` (**List Pending Approvals**) endpoint | -| `payload` | oas:AddWatcherStepRequest | Yes | | +| `payload` | oas:AddWatcherStepRequest | Yes | Request payload | | `headers` | map<string|string[]> | No | Headers to be sent with the request | **Returns:** `oas:AddWatcherStepResponse|error` @@ -10574,7 +10399,7 @@ Approve a Document | Name | Type | Required | Description | |------|------|----------|--------------| | `currentStepId` | string | Yes | The ID of the workflow step. It can be retrieved using the `/workflowsmanager.fetch/active` (**List Pending Approvals**) endpoint | -| `payload` | oas:ApproveDocumentRequest | Yes | | +| `payload` | oas:ApproveDocumentRequest | Yes | Request payload | | `headers` | map<string|string[]> | No | Headers to be sent with the request | **Returns:** `oas:ApproveDocumentResponse|error` @@ -10600,7 +10425,7 @@ Deny a Document | Name | Type | Required | Description | |------|------|----------|--------------| | `currentStepId` | string | Yes | The ID of the workflow step. It can be retrieved using the `/workflowsmanager.fetch/active` (**List Pending Approvals**) endpoint | -| `payload` | oas:DenyDocumentRequest | Yes | | +| `payload` | oas:DenyDocumentRequest | Yes | Request payload | | `headers` | map<string|string[]> | No | Headers to be sent with the request | **Returns:** `oas:DenyDocumentResponse|error` @@ -10723,7 +10548,7 @@ List Workflows | Name | Type | Required | Description | |------|------|----------|--------------| -| `payload` | oas:ListWorkflowsRequest | Yes | | +| `payload` | oas:ListWorkflowsRequest | Yes | Request payload | | `headers` | map<string|string[]> | No | Headers to be sent with the request | **Returns:** `oas:ListWorkflowsResponse|error` @@ -10749,7 +10574,7 @@ Set a Review as Done | Name | Type | Required | Description | |------|------|----------|--------------| | `typedId` | string | Yes | typedId of the object to mark as reviewed | -| `payload` | record {} | Yes | | +| `payload` | record {} | Yes | Request payload | | `headers` | map<string|string[]> | No | Headers to be sent with the request | **Returns:** `http:Response|error` @@ -10775,7 +10600,7 @@ Update a Review Status | Name | Type | Required | Description | |------|------|----------|--------------| | `typedId` | string | Yes | typedId of the object to update | -| `payload` | record {} | Yes | | +| `payload` | record {} | Yes | Request payload | | `headers` | map<string|string[]> | No | Headers to be sent with the request | **Returns:** `oas:generalResponse|error` @@ -10827,7 +10652,7 @@ Create a Workflow Delegation | Name | Type | Required | Description | |------|------|----------|--------------| -| `payload` | oas:CreateWorkflowDelegationRequest | Yes | | +| `payload` | oas:CreateWorkflowDelegationRequest | Yes | Request payload | | `headers` | map<string|string[]> | No | Headers to be sent with the request | **Returns:** `oas:CreateWorkflowDelegationResponse|error` @@ -10852,7 +10677,7 @@ Deactivate a Workflow Delegation | Name | Type | Required | Description | |------|------|----------|--------------| -| `payload` | oas:DeactivateWorkflowDelegationRequest | Yes | | +| `payload` | oas:DeactivateWorkflowDelegationRequest | Yes | Request payload | | `headers` | map<string|string[]> | No | Headers to be sent with the request | **Returns:** `oas:DeactivateWorkflowDelegationResponse|error` @@ -10877,7 +10702,7 @@ Delete a Workflow Delegation | Name | Type | Required | Description | |------|------|----------|--------------| -| `payload` | oas:DeleteWorkflowDelegationRequest | Yes | | +| `payload` | oas:DeleteWorkflowDelegationRequest | Yes | Request payload | | `headers` | map<string|string[]> | No | Headers to be sent with the request | **Returns:** `oas:DeleteWorkflowDelegationResponse|error` @@ -10902,7 +10727,7 @@ List Delegated Workflows | Name | Type | Required | Description | |------|------|----------|--------------| -| `payload` | oas:ListDelegatedWorkflowsRequest | Yes | | +| `payload` | oas:ListDelegatedWorkflowsRequest | Yes | Request payload | | `headers` | map<string|string[]> | No | Headers to be sent with the request | **Returns:** `oas:ListDelegatedWorkflowsResponse|error` @@ -10927,7 +10752,7 @@ Update a Workflow Delegation | Name | Type | Required | Description | |------|------|----------|--------------| -| `payload` | oas:UpdateWorkflowDelegationRequest | Yes | | +| `payload` | oas:UpdateWorkflowDelegationRequest | Yes | Request payload | | `headers` | map<string|string[]> | No | Headers to be sent with the request | **Returns:** `oas:UpdateWorkflowDelegationResponse|error` @@ -10952,7 +10777,7 @@ Validate a Workflow Delegation | Name | Type | Required | Description | |------|------|----------|--------------| -| `payload` | oas:ValidateWorkflowDelegationRequest | Yes | | +| `payload` | oas:ValidateWorkflowDelegationRequest | Yes | Request payload | | `headers` | map<string|string[]> | No | Headers to be sent with the request | **Returns:** `oas:ValidateWorkflowDelegationResponse|error` @@ -10979,7 +10804,7 @@ Delete a Notification | Name | Type | Required | Description | |------|------|----------|--------------| -| `payload` | oas:NotificationSetreadBody | Yes | | +| `payload` | oas:NotificationSetreadBody | Yes | Request payload | | `headers` | map<string|string[]> | No | Headers to be sent with the request | **Returns:** `oas:DeleteNotificationEnvelope|error` @@ -11004,7 +10829,7 @@ List Notifications | Name | Type | Required | Description | |------|------|----------|--------------| -| `payload` | oas:NotificationListBody | Yes | | +| `payload` | oas:NotificationListBody | Yes | Request payload | | `headers` | map<string|string[]> | No | Headers to be sent with the request | **Returns:** `oas:ListNotificationsEnvelope|error` @@ -11029,7 +10854,7 @@ Mark as Read | Name | Type | Required | Description | |------|------|----------|--------------| -| `payload` | record {} | Yes | | +| `payload` | record {} | Yes | Request payload | | `headers` | map<string|string[]> | No | Headers to be sent with the request | **Returns:** `oas:generalResponse|error` @@ -11054,7 +10879,7 @@ Send a Validation Message | Name | Type | Required | Description | |------|------|----------|--------------| -| `payload` | oas:NotificationSendBody | Yes | | +| `payload` | oas:NotificationSendBody | Yes | Request payload | | `headers` | map<string|string[]> | No | Headers to be sent with the request | **Returns:** `oas:generalResponse|error` @@ -11106,7 +10931,7 @@ Delete Internationalization Messages | Name | Type | Required | Description | |------|------|----------|--------------| -| `payload` | oas:I18nmanagerDeleteKeysBody | Yes | | +| `payload` | oas:I18nmanagerDeleteKeysBody | Yes | Request payload | | `headers` | map<string|string[]> | No | Headers to be sent with the request | **Returns:** `http:Response|error` @@ -11131,7 +10956,7 @@ List Internationalization Messages | Name | Type | Required | Description | |------|------|----------|--------------| -| `payload` | oas:I18nmanagerFetchWithExtraDataBody | Yes | | +| `payload` | oas:I18nmanagerFetchWithExtraDataBody | Yes | Request payload | | `headers` | map<string|string[]> | No | Headers to be sent with the request | **Returns:** `oas:ListInternationalizationMessagesEnvelope|error` @@ -11159,7 +10984,7 @@ Add Line Items | Name | Type | Required | Description | |------|------|----------|--------------| | `typedId` | string | Yes | typed ID of the target CLIC document | -| `payload` | oas:ClicmanagerAdditemstypedIdBody | Yes | | +| `payload` | oas:ClicmanagerAdditemstypedIdBody | Yes | Request payload | | `headers` | map<string|string[]> | No | Headers to be sent with the request | **Returns:** `record` @@ -11184,7 +11009,7 @@ Fetch Activities | Name | Type | Required | Description | |------|------|----------|--------------| -| `payload` | oas:ActivitylogFetchBody | Yes | | +| `payload` | oas:ActivitylogFetchBody | Yes | Request payload | | `headers` | map<string|string[]> | No | Headers to be sent with the request | **Returns:** `record` @@ -11234,8 +11059,8 @@ Import Line Items (w/o Input Types) | Name | Type | Required | Description | |------|------|----------|--------------| -| `typedId` | string | Yes | | -| `payload` | oas:ClicmanagerImportlineitemstypedIdBody | Yes | | +| `typedId` | string | Yes | The typedId to be sent with the request | +| `payload` | oas:ClicmanagerImportlineitemstypedIdBody | Yes | Request payload | | `headers` | map<string|string[]> | No | Headers to be sent with the request | **Returns:** `oas:ClicOperationEnvelope|error` @@ -11261,7 +11086,7 @@ List CLIC Objects | Name | Type | Required | Description | |------|------|----------|--------------| | `typedId` | string | Yes | The `typedId` of the Quote/Contract/Rebate Agreement/Compensation Plan you want to retrieve line items for | -| `payload` | oas:GetCLICrequest | Yes | | +| `payload` | oas:GetCLICrequest | Yes | Request payload | | `headers` | map<string|string[]> | No | Headers to be sent with the request | | `queries` | *oas:ListClicObjectsQueries | Yes | Queries to be sent with the request | @@ -11287,8 +11112,8 @@ List Unique CLIC Items | Name | Type | Required | Description | |------|------|----------|--------------| -| `typedId` | string | Yes | | -| `payload` | record {} | Yes | | +| `typedId` | string | Yes | The typedId to be sent with the request | +| `payload` | record {} | Yes | Request payload | | `headers` | map<string|string[]> | No | Headers to be sent with the request | **Returns:** `oas:ListUniqueCLICItemsResponse|error` @@ -11314,7 +11139,7 @@ Delete All Line Items | Name | Type | Required | Description | |------|------|----------|--------------| | `typedId` | string | Yes | `typedId` of the object you want to remove all line items from | -| `payload` | record {} | Yes | | +| `payload` | record {} | Yes | Request payload | | `headers` | map<string|string[]> | No | Headers to be sent with the request | **Returns:** `oas:ClicOperationEnvelope|error` @@ -11339,7 +11164,7 @@ Send an Email | Name | Type | Required | Description | |------|------|----------|--------------| -| `payload` | oas:SendEmailRequest | Yes | | +| `payload` | oas:SendEmailRequest | Yes | Request payload | | `headers` | map<string|string[]> | No | Headers to be sent with the request | **Returns:** `oas:generalResponse|error` @@ -11365,7 +11190,7 @@ Mark an Offer as Lost (with reason) | Name | Type | Required | Description | |------|------|----------|--------------| | `typedId` | string | Yes | `typedId` of the Quote you want set as lost | -| `payload` | oas:MarkOfferLostWithReasonRequest | Yes | | +| `payload` | oas:MarkOfferLostWithReasonRequest | Yes | Request payload | | `headers` | map<string|string[]> | No | Headers to be sent with the request | **Returns:** `oas:SetClicLostReasonEnvelope|error` @@ -11391,7 +11216,7 @@ Submit a Quote/Contract/Rebate Agreement | Name | Type | Required | Description | |------|------|----------|--------------| | `typedId` | string | Yes | The `typedId` of the Contract, Quote, or Rebate Agreement you want to submit | -| `payload` | oas:SubmitQuoteContractRebateAgreementRequest | Yes | | +| `payload` | oas:SubmitQuoteContractRebateAgreementRequest | Yes | Request payload | | `headers` | map<string|string[]> | No | Headers to be sent with the request | **Returns:** `oas:SubmitQuoteContractRebateAgreementResponse|error` @@ -11417,7 +11242,7 @@ Update CLIC Line Items | Name | Type | Required | Description | |------|------|----------|--------------| | `typedId` | string | Yes | `typedId` of the CLIC object (e.g., a Quote) you want to update line items for | -| `payload` | oas:UpdateCLICLineItemsRequest | Yes | | +| `payload` | oas:UpdateCLICLineItemsRequest | Yes | Request payload | | `headers` | map<string|string[]> | No | Headers to be sent with the request | **Returns:** `oas:UpdateClicLineItemsEnvelope|error` @@ -11548,7 +11373,7 @@ Add a Configuration Storage | Name | Type | Required | Description | |------|------|----------|--------------| -| `payload` | oas:AddJCSBody | Yes | | +| `payload` | oas:AddJCSBody | Yes | Request payload | | `headers` | map<string|string[]> | No | Headers to be sent with the request | **Returns:** `oas:ConfigurationStorageOperationEnvelope|error` @@ -11573,7 +11398,7 @@ Delete a Configuration Storage | Name | Type | Required | Description | |------|------|----------|--------------| -| `payload` | record {} | Yes | | +| `payload` | record {} | Yes | Request payload | | `headers` | map<string|string[]> | No | Headers to be sent with the request | **Returns:** `oas:ConfigurationStorageOperationEnvelope|error` @@ -11598,7 +11423,7 @@ Deploy a Configuration Storage | Name | Type | Required | Description | |------|------|----------|--------------| -| `payload` | oas:JcsmanagerDeployBody | Yes | | +| `payload` | oas:JcsmanagerDeployBody | Yes | Request payload | | `headers` | map<string|string[]> | No | Headers to be sent with the request | **Returns:** `oas:ConfigurationStorageOperationEnvelope|error` @@ -11623,7 +11448,7 @@ Get a Configuration Storage | Name | Type | Required | Description | |------|------|----------|--------------| -| `payload` | oas:FetchJCSBody | Yes | | +| `payload` | oas:FetchJCSBody | Yes | Request payload | | `headers` | map<string|string[]> | No | Headers to be sent with the request | **Returns:** `oas:GetConfigurationStorageEnvelope|error` @@ -11648,7 +11473,7 @@ Update a Configuration Storage | Name | Type | Required | Description | |------|------|----------|--------------| -| `payload` | oas:UpdateJCSBody | Yes | | +| `payload` | oas:UpdateJCSBody | Yes | Request payload | | `headers` | map<string|string[]> | No | Headers to be sent with the request | **Returns:** `oas:ConfigurationStorageOperationEnvelope|error` @@ -11718,6 +11543,32 @@ oas:ListEntityFieldsResponse result = check pricefxClient->listEntityFields(type #### General +
+createObject + +
+ +Create an Object + +**Parameters:** + +| Name | Type | Required | Description | +|------|------|----------|--------------| +| `typeCode` | string | Yes | The object's type code. See [the list of Type Codes](https://pricefx.atlassian.net/wiki/spaces/KB/pages/99570616/Type+Codes) | +| `payload` | oas:createObjectRequest | Yes | Request payload | +| `headers` | map<string|string[]> | No | Headers to be sent with the request | + +**Returns:** `error?` + +**Sample code:** + +```ballerina +error? result = check pricefxClient->createObject(typeCode, payload); +``` + +
+
+
deleteColumnValues @@ -11744,6 +11595,32 @@ oas:DeleteColumnValuesResponse result = check pricefxClient->deleteColumnValues(
+
+deleteObject + +
+ +Delete an Object + +**Parameters:** + +| Name | Type | Required | Description | +|------|------|----------|--------------| +| `typeCode` | "ACTT"|"AP"|"APIK"|"BD"|"BPT"|"BR"|"C"|"CA"|"CAM"|"CDESC"|"CF"|"CFS"|"CFT"|"CH"|"CLLI"|"CN"|"CS"|"CT"|"CTAM"|"CTLI"|"CTMU"|"CTMUI"|"CTT"|"CTTAM"|"CTTREE"|"CW"|"CX"|"CXAM"|"DA"|"DB"|"DCR"|"DCRAM"|"DCRI"|"DCRL"|"DCRMC"|"DCRT"|"DE"|"DI"|"DM"|"DMDC"|"DMDL"|"DMDS"|"DMF"|"DMM"|"DMR"|"DMT"|"DREG"|"DWT"|"ET"|"EVT"|"F"|"FE"|"FN"|"IDC"|"IE"|"ISH"|"JST"|"JLTV"|"JLTVM"|"LAT"|"LT"|"LTT"|"LTV"|"M"|"MLTV"|"MLTV2"|"MLTV3"|"MLTV4"|"MLTV5"|"MLTV6"|"MLTVM"|"MPL"|"MPLAM"|"MPLI"|"MPLIT"|"MPLT"|"MR"|"MRAM"|"MT"|"P"|"PAM"|"PAPIJ"|"PBOME"|"PCOMP"|"PCW"|"PDESC"|"PG"|"PGI"|"PGIM"|"PGT"|"PH"|"PL"|"PLI"|"PLIM"|"PLT"|"PR"|"PRAM"|"PREF"|"PT"|"PWH"|"PX"|"PXAM"|"PXREF"|"PYR"|"PYRAM"|"Q"|"QAM"|"QLI"|"QMU"|"QMUI"|"QT"|"QTT"|"QTTAM"|"R"|"RAT"|"RATM"|"RBA"|"RBAAM"|"RBALI"|"RBAT"|"RBT"|"RBTAM"|"RR"|"RRAM"|"RRS"|"RRSC"|"RT"|"SAT"|"SC"|"SCN"|"SCNAM"|"SCT"|"SIAM"|"SIM"|"SIMI"|"TFA"|"TODO"|"U"|"UG"|"US"|"W"|"WD"|"WF"|"WFE"|"XPGI"|"XPLI"|"XSIMI" | Yes | Enter the type code of the entity you want to delete the object from. See [the list of Type Codes](https://pricefx.atlassian.net/wiki/spaces/KB/pages/99570616/Type+Codes) in the Pricefx Knowledge Base article | +| `payload` | oas:deleteObjectRequest | Yes | Request payload | +| `headers` | map<string|string[]> | No | Headers to be sent with the request | + +**Returns:** `oas:deleteObjectResponse|error` + +**Sample code:** + +```ballerina +oas:deleteObjectResponse result = check pricefxClient->deleteObject(typeCode, payload); +``` + +
+
+
deleteObjects @@ -11756,7 +11633,7 @@ Delete Objects | Name | Type | Required | Description | |------|------|----------|--------------| | `typeCode` | string | Yes | The object's type code. See [the list of Type Codes](https://pricefx.atlassian.net/wiki/spaces/KB/pages/99570616/Type+Codes) | -| `payload` | oas:DeleteObjectsForceFilterRequest | Yes | | +| `payload` | oas:DeleteObjectsForceFilterRequest | Yes | Request payload | | `headers` | map<string|string[]> | No | Headers to be sent with the request | **Returns:** `oas:DeleteObjectsResponse|error` @@ -11770,6 +11647,32 @@ oas:DeleteObjectsResponse result = check pricefxClient->deleteObjects(typeCode,
+
+getObject + +
+ +Get an Object + +**Parameters:** + +| Name | Type | Required | Description | +|------|------|----------|--------------| +| `typeCode` | string | Yes | The object's type code. See [the list of Type Codes](https://pricefx.atlassian.net/wiki/spaces/KB/pages/99570616/Type+Codes) | +| `id` | string | Yes | The ID of the object you want to retrieve details for | +| `headers` | map<string|string[]> | No | Headers to be sent with the request | + +**Returns:** `oas:getObjectResponse|error` + +**Sample code:** + +```ballerina +oas:getObjectResponse result = check pricefxClient->getObject(typeCode, id); +``` + +
+
+
getQueryApiMetadata @@ -11781,7 +11684,7 @@ Get Query API Metadata | Name | Type | Required | Description | |------|------|----------|--------------| -| `payload` | oas:QueryapiExecuteBody | Yes | | +| `payload` | oas:QueryapiExecuteBody | Yes | Request payload | | `headers` | map<string|string[]> | No | Headers to be sent with the request | **Returns:** `oas:QueryApiMetadataEnvelope|error` @@ -11833,7 +11736,7 @@ Insert Bulk Data From a File | Name | Type | Required | Description | |------|------|----------|--------------| | `typeCode` | "C"|"CDESC"|"CX"|"JLTV"|"LTV"|"MLTV"|"P"|"PBOME"|"PCOMP"|"PDESC"|"PR"|"PX"|"PXREF"|"SL"|"SX"|"TODO"|"UG" | Yes | Enter the type code of the entity you want to insert a data to. See [the list of Type Codes](https://pricefx.atlassian.net/wiki/spaces/KB/pages/99570616/Type+Codes) in the Pricefx Knowledge Base article | -| `payload` | oas:InsertBulkDataFromFileRequest | Yes | | +| `payload` | oas:InsertBulkDataFromFileRequest | Yes | Request payload | | `headers` | map<string|string[]> | No | Headers to be sent with the request | | `queries` | *oas:InsertBulkDataFromFileQueries | Yes | Queries to be sent with the request | @@ -11860,7 +11763,7 @@ Insert Bulk Data From a File (async) | Name | Type | Required | Description | |------|------|----------|--------------| | `typeCode` | "C"|"CDESC"|"CX"|"JLTV"|"LTV"|"MLTV"|"P"|"PBOME"|"PCOMP"|"PDESC"|"PR"|"PX"|"PXREF"|"SL"|"SX"|"TODO"|"UG" | Yes | Enter the type code of the entity you want to insert a data to. See [the list of Type Codes](https://pricefx.atlassian.net/wiki/spaces/KB/pages/99570616/Type+Codes) in the Pricefx Knowledge Base article | -| `payload` | oas:InsertBulkDataFromFileAsyncRequest | Yes | | +| `payload` | oas:InsertBulkDataFromFileAsyncRequest | Yes | Request payload | | `headers` | map<string|string[]> | No | Headers to be sent with the request | | `queries` | *oas:InsertBulkDataFromFileAsyncQueries | Yes | Queries to be sent with the request | @@ -11875,6 +11778,32 @@ oas:InsertBulkDataFromFileAsyncResponse result = check pricefxClient->insertBulk
+
+listObjects + +
+ +List Objects + +**Parameters:** + +| Name | Type | Required | Description | +|------|------|----------|--------------| +| `typeCode` | string | Yes | The object's type code. See [the list of Type Codes](https://pricefx.atlassian.net/wiki/spaces/KB/pages/99570616/Type+Codes) | +| `payload` | oas:fetch_typeCode_body | Yes | Request payload | +| `headers` | map<string|string[]> | No | Headers to be sent with the request | + +**Returns:** `oas:generalResponse|error` + +**Sample code:** + +```ballerina +oas:generalResponse result = check pricefxClient->listObjects(typeCode, payload); +``` + +
+
+
listTypeCodes @@ -11911,7 +11840,7 @@ Mass Update | Name | Type | Required | Description | |------|------|----------|--------------| | `typeCode` | string | Yes | The object's type code. See [the list of Type Codes](https://pricefx.atlassian.net/wiki/spaces/KB/pages/99570616/Type+Codes) | -| `payload` | oas:MassUpdateRequest | Yes | | +| `payload` | oas:MassUpdateRequest | Yes | Request payload | | `headers` | map<string|string[]> | No | Headers to be sent with the request | **Returns:** `oas:MassUpdateResponse|error` @@ -11936,7 +11865,7 @@ Query API Execute | Name | Type | Required | Description | |------|------|----------|--------------| -| `payload` | oas:QueryapiExecuteBody | Yes | | +| `payload` | oas:QueryapiExecuteBody | Yes | Request payload | | `headers` | map<string|string[]> | No | Headers to be sent with the request | | `queries` | *oas:QueryApiExecuteQueries | Yes | Queries to be sent with the request | @@ -12121,8 +12050,8 @@ Duplicate a Model | Name | Type | Required | Description | |------|------|----------|--------------| -| `typedId` | string | Yes | | -| `payload` | oas:OptimizationModelduplicatetypedIdBody | Yes | | +| `typedId` | string | Yes | The typedId to be sent with the request | +| `payload` | oas:OptimizationModelduplicatetypedIdBody | Yes | Request payload | | `headers` | map<string|string[]> | No | Headers to be sent with the request | **Returns:** `oas:ModelDuplicationEnvelope|error` @@ -12150,7 +12079,7 @@ Execute a Model Logic | `typedId` | string | Yes | The `typedId` of the Model Object you want to execute the logic for | | `stepName` | string | Yes | The name of the step you want to execute the logic for | | `formulaName` | string | Yes | The name of the logic you want to execute | -| `payload` | oas:ExecuteModelLogicRequest | Yes | | +| `payload` | oas:ExecuteModelLogicRequest | Yes | Request payload | | `headers` | map<string|string[]> | No | Headers to be sent with the request | **Returns:** `oas:ExecuteModelLogicResponse|error` @@ -12175,7 +12104,7 @@ Export Models | Name | Type | Required | Description | |------|------|----------|--------------| -| `payload` | oas:OptimizationModelexportBody | Yes | | +| `payload` | oas:OptimizationModelexportBody | Yes | Request payload | | `headers` | map<string|string[]> | No | Headers to be sent with the request | **Returns:** `http:Response|error` @@ -12226,7 +12155,7 @@ Get a Parallel Calculation Item | Name | Type | Required | Description | |------|------|----------|--------------| | `id` | string | Yes | `id` of the Parallel Calculation Item (PCI) you want to retrieve | -| `payload` | record {} | Yes | | +| `payload` | record {} | Yes | Request payload | | `headers` | map<string|string[]> | No | Headers to be sent with the request | **Returns:** `oas:GetParallelCalculationItemResponse|error` @@ -12277,7 +12206,7 @@ Import Models | Name | Type | Required | Description | |------|------|----------|--------------| -| `payload` | oas:OptimizationModelimportBody | Yes | | +| `payload` | oas:OptimizationModelimportBody | Yes | Request payload | | `headers` | map<string|string[]> | No | Headers to be sent with the request | **Returns:** `oas:ModelDuplicationEnvelope|error` @@ -12329,7 +12258,7 @@ List Parallel Calculation Items | Name | Type | Required | Description | |------|------|----------|--------------| -| `payload` | oas:ListParallelCalculationItemsRequest | Yes | | +| `payload` | oas:ListParallelCalculationItemsRequest | Yes | Request payload | | `headers` | map<string|string[]> | No | Headers to be sent with the request | **Returns:** `oas:ListParallelCalculationItemsResponse|error` @@ -12355,7 +12284,7 @@ Load Data Into FieldCollection | Name | Type | Required | Description | |------|------|----------|--------------| | `typedId` | string | Yes | Specifies the typedId (format: `{id}.{type}`) of the FieldCollection to load data into. Type must be either `DMDS` or `DMT` | -| `payload` | oas:DatamartLoadfctypedIdBody | Yes | | +| `payload` | oas:DatamartLoadfctypedIdBody | Yes | Request payload | | `headers` | map<string|string[]> | No | Headers to be sent with the request | **Returns:** `http:Response|error` @@ -12383,7 +12312,7 @@ Recalculate a Calculation of a Step | `typedId` | string | Yes | The `typedId` of the Model Object you want to recalculate the step for | | `stepName` | "definition"|"configuration"|"results"|"projections"|"parallel" | Yes | Enter the name of the step you want to calculate | | `calcName` | string | Yes | The name of the calculation you want to recalculate | -| `payload` | record {} | Yes | | +| `payload` | record {} | Yes | Request payload | | `headers` | map<string|string[]> | No | Headers to be sent with the request | **Returns:** `oas:RecalculateCalculationOfStepResponse|error` @@ -12411,7 +12340,7 @@ Recalculate Items of a Parallel Calculation | `typedId` | string | Yes | The `typedId` of the Model Object you want to recalculate the step for | | `stepName` | "definition"|"configuration"|"results"|"projections"|"parallel" | Yes | Enter the name of the step you want to calculate | | `calcName` | string | Yes | The name of the calculation you want to recalculate | -| `payload` | oas:CalcNameItemBody | Yes | | +| `payload` | oas:CalcNameItemBody | Yes | Request payload | | `headers` | map<string|string[]> | No | Headers to be sent with the request | **Returns:** `oas:ParallelCalculationEnvelope|error` @@ -12437,7 +12366,7 @@ Revoke a Model | Name | Type | Required | Description | |------|------|----------|--------------| | `typedId` | string | Yes | `typedId` of the model you want to revoke | -| `payload` | record {} | Yes | | +| `payload` | record {} | Yes | Request payload | | `headers` | map<string|string[]> | No | Headers to be sent with the request | **Returns:** `oas:RevokeModelResponse|error` @@ -12490,7 +12419,7 @@ Submit a Model | Name | Type | Required | Description | |------|------|----------|--------------| | `typedId` | string | Yes | The `typedId` of the Model Object you want to submit | -| `payload` | record {} | Yes | | +| `payload` | record {} | Yes | Request payload | | `headers` | map<string|string[]> | No | Headers to be sent with the request | **Returns:** `oas:SaveModelResponse|error` @@ -12515,7 +12444,7 @@ Update Job Status Tracker Entry | Name | Type | Required | Description | |------|------|----------|--------------| -| `payload` | oas:OptimizationUpdatejstBody | Yes | | +| `payload` | oas:OptimizationUpdatejstBody | Yes | Request payload | | `headers` | map<string|string[]> | No | Headers to be sent with the request | **Returns:** `oas:JobStatusTrackerUpdateEnvelope|error` @@ -12567,7 +12496,7 @@ List Email Tasks | Name | Type | Required | Description | |------|------|----------|--------------| -| `payload` | oas:NotificationListBody | Yes | | +| `payload` | oas:NotificationListBody | Yes | Request payload | | `headers` | map<string|string[]> | No | Headers to be sent with the request | **Returns:** `oas:ListEmailTasksEnvelope|error` @@ -12592,7 +12521,7 @@ List Event Tasks | Name | Type | Required | Description | |------|------|----------|--------------| -| `payload` | oas:NotificationListBody | Yes | | +| `payload` | oas:NotificationListBody | Yes | Request payload | | `headers` | map<string|string[]> | No | Headers to be sent with the request | **Returns:** `oas:ListEventTasksEnvelope|error` @@ -12617,7 +12546,7 @@ List Logins | Name | Type | Required | Description | |------|------|----------|--------------| -| `payload` | oas:BdmanagerListtypedIdBody | Yes | | +| `payload` | oas:BdmanagerListtypedIdBody | Yes | Request payload | | `headers` | map<string|string[]> | No | Headers to be sent with the request | **Returns:** `oas:ListLoginsEnvelope|error` @@ -12642,7 +12571,7 @@ List Security & Configuration Events | Name | Type | Required | Description | |------|------|----------|--------------| -| `payload` | oas:NotificationListBody | Yes | | +| `payload` | oas:NotificationListBody | Yes | Request payload | | `headers` | map<string|string[]> | No | Headers to be sent with the request | **Returns:** `oas:ListSecurityConfigEventsEnvelope|error` diff --git a/en/docs/connectors/catalog/erp-business/pricefx/setup-guide.md b/en/docs/connectors/catalog/erp-business/pricefx/setup-guide.md index 126af65aae..e3a829a1c0 100644 --- a/en/docs/connectors/catalog/erp-business/pricefx/setup-guide.md +++ b/en/docs/connectors/catalog/erp-business/pricefx/setup-guide.md @@ -19,11 +19,21 @@ The most common setup, and the one to reach for first. Your user name, password, and partition are provisioned when your Pricefx account is created - ask your Pricefx administrator if you don't already have them. The partition name also appears in your instance's login URL, in the form `https://.pricefx.com/pricefx/`. +You only pay for a Basic authenticated request once: the connector uses your username, password, and partition to bootstrap a session token when the client is created, then reuses that token for every request afterward instead of sending your credentials again. + ### 2. JWT Token Authentication -Provide `username`, `password`, `partition`, and `pricefxKey`. +Provide `jwt` on its own - no username, password, or partition needed. + +Pricefx's `generateJwtToken` operation mints a non-expiring JWT meant for integrations like this one. Call it once (using any of the other authentication methods), save the resulting token in your configuration, and hand it to the connector as `jwt`. It's the cheapest option available: the token is sent as-is, so creating the client makes no network call at all. + +```ballerina +configurable string jwt = ?; + +pricefx:Client pricefxClient = check new ({jwt}, serviceUrl); +``` -Contact Pricefx Support to request an API key (`pricefxKey`) for your partition. With a `pricefxKey` set alongside your username, password, and partition, the connector exchanges your credentials for a token automatically and authenticates with that token instead of sending your username and password on every call - recommended over Basic Auth for production, server-to-server use. +Only use a non-expiring token here - the connector has no credentials to re-authenticate with, so it can't refresh or retry a token supplied this way. A short-lived session token will eventually stop working. ### 3. OAuth 2.0 Authentication From 6b9082d2c93f95482d6986cbc285e4f9dfcf44ff Mon Sep 17 00:00:00 2001 From: Dilan Perera Date: Mon, 3 Aug 2026 20:07:45 +0530 Subject: [PATCH 4/6] Update Pricefx docs for the tagged-union auth model (merged main) --- .../erp-business/pricefx/action-reference.md | 358 +++++++++--------- .../erp-business/pricefx/setup-guide.md | 40 +- 2 files changed, 194 insertions(+), 204 deletions(-) diff --git a/en/docs/connectors/catalog/erp-business/pricefx/action-reference.md b/en/docs/connectors/catalog/erp-business/pricefx/action-reference.md index c69d11b6fd..222c405b6c 100644 --- a/en/docs/connectors/catalog/erp-business/pricefx/action-reference.md +++ b/en/docs/connectors/catalog/erp-business/pricefx/action-reference.md @@ -21,28 +21,44 @@ The `ballerinax/pricefx` package exposes the following clients: #### PricefxCredentials -Pricefx account credentials and authentication options, included directly in `ConnectionConfig`. Provide exactly one of the four combinations below. +`PricefxCredentials` is a union of four records - `BasicCredentials`, `JwtCredentials`, `OAuth2Credentials`, or `ExternalJwtCredentials`. Pick the one matching the credentials you hold and pass it as the `auth` field of `ConnectionConfig`. + +**BasicCredentials** + +| Field | Type | Default | Description | +|-------|------|---------|-------------| +| `username` | string | Required | Your Pricefx username | +| `password` | string | Required | Your Pricefx password | +| `partition` | string | Required | Your Pricefx partition name | + +**JwtCredentials** + +| Field | Type | Default | Description | +|-------|------|---------|-------------| +| `jwt` | string | Required | A Pricefx-issued JWT you already hold, sent directly as the `X-PriceFx-jwt` header, with no exchange. Intended for the non-expiring integration tokens produced by `generateJwtToken` (or the time-limited ones from `generateTimedJwtToken`). Cannot be refreshed by the connector - a rejected token surfaces as an error rather than being retried, so avoid pasting in a short-lived session token here | + +**OAuth2Credentials** + +| Field | Type | Default | Description | +|-------|------|---------|-------------| +| `clientId` | string | Required | The client identifier, as registered in Pricefx's `oauthConfiguration` | +| `clientSecret` | string | Optional | The client secret, if one was configured for this client | +| `refreshToken` | string | Required | A refresh token from a completed Authorization Code Grant flow | + +**ExternalJwtCredentials** | Field | Type | Default | Description | |-------|------|---------|-------------| -| `username` | string | Optional | Your Pricefx username | -| `password` | string | Optional | Your Pricefx password | -| `partition` | string | Optional | Your Pricefx partition name | -| `jwt` | string | Optional | A Pricefx-issued JWT you already hold, sent directly as the `X-PriceFx-jwt` header, with no exchange. Intended for the non-expiring integration tokens produced by `generateJwtToken` (or the time-limited ones from `generateTimedJwtToken`). Cannot be refreshed by the connector - a rejected token surfaces as an error rather than being retried, so avoid pasting in a short-lived session token here | -| `oauth2ClientId` | string | Optional | OAuth 2.0 client identifier, as registered in Pricefx's `oauthConfiguration` | -| `oauth2ClientSecret` | string | Optional | OAuth 2.0 client secret, if one was configured for the client | -| `oauth2RefreshToken` | string | Optional | A refresh token previously obtained through Pricefx's OAuth 2.0 Authorization Code Grant flow. The connector uses it to fetch (and automatically refresh) access tokens | -| `csrfToken` | string | Optional | A CSRF token, sent as the `X-PriceFx-Csrf-Token` header on every request. Only required when the partition has CSRF protection enabled | -| `externalJwtSystemName` | string | Optional | The name of the external system trusted via Pricefx's `externalJWTConfiguration`, used together with `externalJwt` | -| `externalJwt` | string | Optional | A JWT signed by the external system named in `externalJwtSystemName`, sent as `Authorization: BEARER <externalJwtSystemName>;<externalJwt>` on every request | +| `systemName` | string | Required | The external system's name, as configured in `externalJWTConfiguration` | +| `jwt` | string | Required | A JWT signed by that system | #### ConnectionConfig -Provides a set of configurations for controlling the behaviours when communicating with the Pricefx API. Includes `PricefxCredentials` directly. The client automatically re-authenticates and retries once whenever a request comes back unauthenticated, so a long-lived client instance keeps working without manual re-initialization. +Provides a set of configurations for controlling the behaviours when communicating with the Pricefx API. | Field | Type | Default | Description | |-------|------|---------|-------------| -| *(all `PricefxCredentials` fields)* | | | See above | +| `auth` | PricefxCredentials | Required | How to authenticate - one of the four `PricefxCredentials` records above | | `httpVersion` | http:HttpVersion | http:HTTP_2_0 | The HTTP version understood by the client | | `http1Settings` | oas:ClientHttp1Settings | Optional | Configurations related to HTTP/1.x protocol | | `http2Settings` | http:ClientHttp2Settings | Optional | Configurations related to HTTP/2 protocol | @@ -70,7 +86,7 @@ configurable string password = ?; configurable string partition = ?; configurable string serviceUrl = ?; -pricefx:Client pricefxClient = check new ({username, password, partition}, serviceUrl); +pricefx:Client pricefxClient = check new ({auth: {username, password, partition}}, serviceUrl); ``` ### Operations @@ -91,12 +107,12 @@ Add a User | `payload` | oas:AddUserRequest | Yes | Request payload | | `headers` | map<string|string[]> | No | Headers to be sent with the request | -**Returns:** `oas:userResponse|error` +**Returns:** `oas:UserResponse|error` **Sample code:** ```ballerina -oas:userResponse result = check pricefxClient->addUser(payload); +oas:UserResponse result = check pricefxClient->addUser(payload); ``` @@ -445,12 +461,12 @@ Delete a User | `payload` | oas:DeleteUserRequest | Yes | Request payload | | `headers` | map<string|string[]> | No | Headers to be sent with the request | -**Returns:** `oas:userResponse|error` +**Returns:** `oas:UserResponse|error` **Sample code:** ```ballerina -oas:userResponse result = check pricefxClient->deleteUser(payload); +oas:UserResponse result = check pricefxClient->deleteUser(payload); ``` @@ -746,12 +762,12 @@ Update a User | `payload` | oas:UpdateUserRequest | Yes | Specify the user by `typedId` and define the new value of the field you want to update in the `data` object | | `headers` | map<string|string[]> | No | Headers to be sent with the request | -**Returns:** `oas:userResponse|error` +**Returns:** `oas:UserResponse|error` **Sample code:** ```ballerina -oas:userResponse result = check pricefxClient->updateUser(payload); +oas:UserResponse result = check pricefxClient->updateUser(payload); ``` @@ -773,12 +789,12 @@ Add a Product | `payload` | oas:AddProductRequest | Yes | Request payload | | `headers` | map<string|string[]> | No | Headers to be sent with the request | -**Returns:** `oas:productResponse|error` +**Returns:** `oas:ProductResponse|error` **Sample code:** ```ballerina -oas:productResponse result = check pricefxClient->addProduct(payload); +oas:ProductResponse result = check pricefxClient->addProduct(payload); ``` @@ -798,12 +814,12 @@ Insert Bulk Products | `payload` | oas:InsertBulkProductsRequest | Yes | Specify product field names in the `header` object and fields values in the `data` object.<p> | | `headers` | map<string|string[]> | No | Headers to be sent with the request | -**Returns:** `oas:loaddataResponse|error` +**Returns:** `oas:LoadDataResponse|error` **Sample code:** ```ballerina -oas:loaddataResponse result = check pricefxClient->bulkInsertProducts(payload); +oas:LoadDataResponse result = check pricefxClient->bulkInsertProducts(payload); ``` @@ -873,12 +889,12 @@ List Products | `payload` | oas:ListProductsRequest | Yes | Request payload | | `headers` | map<string|string[]> | No | Headers to be sent with the request | -**Returns:** `oas:productResponse|error` +**Returns:** `oas:ProductResponse|error` **Sample code:** ```ballerina -oas:productResponse result = check pricefxClient->listProducts(payload); +oas:ProductResponse result = check pricefxClient->listProducts(payload); ``` @@ -973,12 +989,12 @@ Update a Product | `payload` | oas:UpdateProductRequest | Yes | Updates specified fields of the record. Only one record can be updated per request (unless batched).<p> | | `headers` | map<string|string[]> | No | Headers to be sent with the request | -**Returns:** `oas:productResponse|error` +**Returns:** `oas:ProductResponse|error` **Sample code:** ```ballerina -oas:productResponse result = check pricefxClient->updateProduct(payload); +oas:ProductResponse result = check pricefxClient->updateProduct(payload); ``` @@ -998,12 +1014,12 @@ Upsert a Product | `payload` | oas:UpsertProductRequest | Yes | Either `sku` or `typedId` must be specified in order to *update* an existing product | | `headers` | map<string|string[]> | No | Headers to be sent with the request | -**Returns:** `oas:productResponse|error` +**Returns:** `oas:ProductResponse|error` **Sample code:** ```ballerina -oas:productResponse result = check pricefxClient->upsertProduct(payload); +oas:ProductResponse result = check pricefxClient->upsertProduct(payload); ``` @@ -1127,12 +1143,12 @@ Upsert a Product Extension | `payload` | oas:UpsertProductExtensionRequest | Yes | Request payload | | `headers` | map<string|string[]> | No | Headers to be sent with the request | -**Returns:** `oas:productResponse|error` +**Returns:** `oas:ProductResponse|error` **Sample code:** ```ballerina -oas:productResponse result = check pricefxClient->upsertProductExtension(payload); +oas:ProductResponse result = check pricefxClient->upsertProductExtension(payload); ``` @@ -1335,12 +1351,12 @@ Add a Customer | `payload` | oas:AddCustomerRequest | Yes | Request payload | | `headers` | map<string|string[]> | No | Headers to be sent with the request | -**Returns:** `oas:customerResponse|error` +**Returns:** `oas:CustomerResponse|error` **Sample code:** ```ballerina -oas:customerResponse result = check pricefxClient->addCustomer(payload); +oas:CustomerResponse result = check pricefxClient->addCustomer(payload); ``` @@ -1360,12 +1376,12 @@ Assign Customers | `payload` | oas:AssignCustomersRequest | Yes | Request payload | | `headers` | map<string|string[]> | No | Headers to be sent with the request | -**Returns:** `oas:assignmentResponse|error` +**Returns:** `oas:AssignmentResponse|error` **Sample code:** ```ballerina -oas:assignmentResponse result = check pricefxClient->assignCustomers(payload); +oas:AssignmentResponse result = check pricefxClient->assignCustomers(payload); ``` @@ -1385,12 +1401,12 @@ Insert Bulk Customers | `payload` | oas:InsertBulkCustomersRequest | Yes | Specify customer field names in the `header` object and fields values in the `data` object.<p> | | `headers` | map<string|string[]> | No | Headers to be sent with the request | -**Returns:** `oas:loaddataResponse|error` +**Returns:** `oas:LoadDataResponse|error` **Sample code:** ```ballerina -oas:loaddataResponse result = check pricefxClient->bulkInsertCustomers(payload); +oas:LoadDataResponse result = check pricefxClient->bulkInsertCustomers(payload); ``` @@ -1435,12 +1451,12 @@ Get a Customer | `id` | string | Yes | The ID of the Customer you want to retrieve details for. The `id` is the `typedId` without the **C** suffix. For example, the `id` parameter of the item with `typedId` = **2147492200.C** is **2147492200** | | `headers` | map<string|string[]> | No | Headers to be sent with the request | -**Returns:** `oas:customerResponse|error` +**Returns:** `oas:CustomerResponse|error` **Sample code:** ```ballerina -oas:customerResponse result = check pricefxClient->getCustomer(id); +oas:CustomerResponse result = check pricefxClient->getCustomer(id); ``` @@ -1461,12 +1477,12 @@ List Customer Assignments | `payload` | oas:ListCustomerAssignmentsRequest | Yes | Request payload | | `headers` | map<string|string[]> | No | Headers to be sent with the request | -**Returns:** `oas:assignmentResponse|error` +**Returns:** `oas:AssignmentResponse|error` **Sample code:** ```ballerina -oas:assignmentResponse result = check pricefxClient->listCustomerAssignments(typedId, payload); +oas:AssignmentResponse result = check pricefxClient->listCustomerAssignments(typedId, payload); ``` @@ -1486,12 +1502,12 @@ List Customers | `payload` | oas:ListCustomersRequest | Yes | Request payload | | `headers` | map<string|string[]> | No | Headers to be sent with the request | -**Returns:** `oas:customerResponse|error` +**Returns:** `oas:CustomerResponse|error` **Sample code:** ```ballerina -oas:customerResponse result = check pricefxClient->listCustomers(payload); +oas:CustomerResponse result = check pricefxClient->listCustomers(payload); ``` @@ -1511,12 +1527,12 @@ Update a Customer + payload - | `payload` | oas:UpdateCustomerRequest | Yes | | | `headers` | map<string|string[]> | No | Headers to be sent with the request | -**Returns:** `oas:customerResponse|error` +**Returns:** `oas:CustomerResponse|error` **Sample code:** ```ballerina -oas:customerResponse result = check pricefxClient->updateCustomer(payload); +oas:CustomerResponse result = check pricefxClient->updateCustomer(payload); ``` @@ -1536,12 +1552,12 @@ Upsert a Customer | `payload` | oas:UpsertCustomerRequest | Yes | If the customer does not exist yet, at least the `customerId` must be specified in the payload.<p> | | `headers` | map<string|string[]> | No | Headers to be sent with the request | -**Returns:** `oas:customerResponse|error` +**Returns:** `oas:CustomerResponse|error` **Sample code:** ```ballerina -oas:customerResponse result = check pricefxClient->upsertCustomer(payload); +oas:CustomerResponse result = check pricefxClient->upsertCustomer(payload); ``` @@ -1588,12 +1604,12 @@ Insert Bulk Customer Extensions | `payload` | oas:InsertBulkCustomerExtensionsRequest | Yes | Specify customer extension field names in the `header` object and field values in the `data` object.<p> | | `headers` | map<string|string[]> | No | Headers to be sent with the request | -**Returns:** `oas:loaddataResponse|error` +**Returns:** `oas:LoadDataResponse|error` **Sample code:** ```ballerina -oas:loaddataResponse result = check pricefxClient->insertBulkCustomerExtensions(payload); +oas:LoadDataResponse result = check pricefxClient->insertBulkCustomerExtensions(payload); ``` @@ -1644,12 +1660,12 @@ Upload a File to PX/CX/SX | `headers` | map<string|string[]> | No | Headers to be sent with the request | | `queries` | *oas:UploadFileToPxCxSxQueries | Yes | Queries to be sent with the request | -**Returns:** `oas:generalResponse|error` +**Returns:** `oas:GenericDataResponse|error` **Sample code:** ```ballerina -oas:generalResponse result = check pricefxClient->uploadFileToPxCxSx(typeCode, target, uploadSlotId, payload, queries); +oas:GenericDataResponse result = check pricefxClient->uploadFileToPxCxSx(typeCode, target, uploadSlotId, payload, queries); ``` @@ -2309,12 +2325,12 @@ Create a Revision | `payload` | oas:CreateRevisionRequest | Yes | Request payload | | `headers` | map<string|string[]> | No | Headers to be sent with the request | -**Returns:** `oas:pricelistitemResponse|error` +**Returns:** `oas:PriceListItemResponse|error` **Sample code:** ```ballerina -oas:pricelistitemResponse result = check pricefxClient->createPriceListRevision(id, payload); +oas:PriceListItemResponse result = check pricefxClient->createPriceListRevision(id, payload); ``` @@ -2436,12 +2452,12 @@ List Price List Items | `payload` | oas:ListPriceListItemsRequest | Yes | Request payload | | `headers` | map<string|string[]> | No | Headers to be sent with the request | -**Returns:** `oas:pricelistitemResponse|error` +**Returns:** `oas:PriceListItemResponse|error` **Sample code:** ```ballerina -oas:pricelistitemResponse result = check pricefxClient->listPriceListItems(id, payload); +oas:PriceListItemResponse result = check pricefxClient->listPriceListItems(id, payload); ``` @@ -2511,12 +2527,12 @@ Revoke a Price List | `payload` | oas:PricelistmanagerSubmitidBody | Yes | Request payload | | `headers` | map<string|string[]> | No | Headers to be sent with the request | -**Returns:** `oas:pricelistitemResponse|error` +**Returns:** `oas:PriceListItemResponse|error` **Sample code:** ```ballerina -oas:pricelistitemResponse result = check pricefxClient->revokePriceList(id, payload); +oas:PriceListItemResponse result = check pricefxClient->revokePriceList(id, payload); ``` @@ -2537,12 +2553,12 @@ Submit a Price List | `payload` | oas:PricelistmanagerSubmitidBody | Yes | Request payload | | `headers` | map<string|string[]> | No | Headers to be sent with the request | -**Returns:** `oas:pricelistitemResponse|error` +**Returns:** `oas:PriceListItemResponse|error` **Sample code:** ```ballerina -oas:pricelistitemResponse result = check pricefxClient->submitPriceList(id, payload); +oas:PriceListItemResponse result = check pricefxClient->submitPriceList(id, payload); ``` @@ -2616,12 +2632,12 @@ Add Products to a Manual Pricelist | `payload` | oas:AddProductsToManualPriceListRequest | Yes | Request payload | | `headers` | map<string|string[]> | No | Headers to be sent with the request | -**Returns:** `oas:generalResponse|error` +**Returns:** `oas:GenericDataResponse|error` **Sample code:** ```ballerina -oas:generalResponse result = check pricefxClient->addManualPriceListProducts(id, payload); +oas:GenericDataResponse result = check pricefxClient->addManualPriceListProducts(id, payload); ``` @@ -2692,12 +2708,12 @@ Copy a Manual Price List | `id` | string | Yes | The ID of the Manual Price List you want to copy | | `headers` | map<string|string[]> | No | Headers to be sent with the request | -**Returns:** `oas:manualpricelistResponse|error` +**Returns:** `oas:ManualPriceListResponse|error` **Sample code:** ```ballerina -oas:manualpricelistResponse result = check pricefxClient->copyManualPriceList(id); +oas:ManualPriceListResponse result = check pricefxClient->copyManualPriceList(id); ``` @@ -2717,12 +2733,12 @@ Create a Manual Price List | `payload` | oas:CreateManualPriceListRequest | Yes | Request payload | | `headers` | map<string|string[]> | No | Headers to be sent with the request | -**Returns:** `oas:manualpricelistResponse|error` +**Returns:** `oas:ManualPriceListResponse|error` **Sample code:** ```ballerina -oas:manualpricelistResponse result = check pricefxClient->createManualPriceList(payload); +oas:ManualPriceListResponse result = check pricefxClient->createManualPriceList(payload); ``` @@ -2742,12 +2758,12 @@ Delete a Manual Price List | `payload` | oas:DeleteManualPriceListRequest | Yes | Request payload | | `headers` | map<string|string[]> | No | Headers to be sent with the request | -**Returns:** `oas:manualpricelistResponse|error` +**Returns:** `oas:ManualPriceListResponse|error` **Sample code:** ```ballerina -oas:manualpricelistResponse result = check pricefxClient->deleteManualPriceList(payload); +oas:ManualPriceListResponse result = check pricefxClient->deleteManualPriceList(payload); ``` @@ -2768,12 +2784,12 @@ Delete a Product from a Manual Price List | `payload` | oas:DeleteProductFromManualPriceListRequest | Yes | Request payload | | `headers` | map<string|string[]> | No | Headers to be sent with the request | -**Returns:** `oas:productResponse|error` +**Returns:** `oas:ProductResponse|error` **Sample code:** ```ballerina -oas:productResponse result = check pricefxClient->deleteManualPriceListProduct(id, payload); +oas:ProductResponse result = check pricefxClient->deleteManualPriceListProduct(id, payload); ``` @@ -2845,12 +2861,12 @@ List Manual Price Lists | `payload` | oas:ListManualPriceListsRequest | Yes | Request payload | | `headers` | map<string|string[]> | No | Headers to be sent with the request | -**Returns:** `oas:manualpricelistResponse|error` +**Returns:** `oas:ManualPriceListResponse|error` **Sample code:** ```ballerina -oas:manualpricelistResponse result = check pricefxClient->listManualPriceLists(payload); +oas:ManualPriceListResponse result = check pricefxClient->listManualPriceLists(payload); ``` @@ -2923,12 +2939,12 @@ Upsert a Product in a Manual Price List + payload - | `payload` | oas:UpsertProductManualPriceListRequest | Yes | | | `headers` | map<string|string[]> | No | Headers to be sent with the request | -**Returns:** `oas:productResponse|error` +**Returns:** `oas:ProductResponse|error` **Sample code:** ```ballerina -oas:productResponse result = check pricefxClient->upsertManualPriceListProduct(id, payload); +oas:ProductResponse result = check pricefxClient->upsertManualPriceListProduct(id, payload); ``` @@ -3312,12 +3328,12 @@ Cancel a CFS Calculation | `id` | string | Yes | The `id` is the `typedId` without the type suffix. For example, the `id` attribute of the item with `typedId` = **2147484837.PL** is **2147484837** | | `headers` | map<string|string[]> | No | Headers to be sent with the request | -**Returns:** `oas:generalResponse|error` +**Returns:** `oas:GenericDataResponse|error` **Sample code:** ```ballerina -oas:generalResponse result = check pricefxClient->cancelCfsCalculation(id); +oas:GenericDataResponse result = check pricefxClient->cancelCfsCalculation(id); ``` @@ -3616,12 +3632,12 @@ Delete a Price Grid Item | `payload` | oas:DeletePriceGridItemRequest | Yes | Request payload | | `headers` | map<string|string[]> | No | Headers to be sent with the request | -**Returns:** `oas:pricegriditemResponse|error` +**Returns:** `oas:PriceGridItemResponse|error` **Sample code:** ```ballerina -oas:pricegriditemResponse result = check pricefxClient->deletePriceGridItem(id, payload); +oas:PriceGridItemResponse result = check pricefxClient->deletePriceGridItem(id, payload); ``` @@ -3668,12 +3684,12 @@ Deny a Live Price Grid Item | `payload` | oas:DenyLivePriceGridItemRequest | Yes | Request payload | | `headers` | map<string|string[]> | No | Headers to be sent with the request | -**Returns:** `oas:pricegriditemResponse|error` +**Returns:** `oas:PriceGridItemResponse|error` **Sample code:** ```ballerina -oas:pricegriditemResponse result = check pricefxClient->denyLivePriceGridItem(id, payload); +oas:PriceGridItemResponse result = check pricefxClient->denyLivePriceGridItem(id, payload); ``` @@ -3910,12 +3926,12 @@ Update a Live Price Grid Item | `payload` | oas:UpdateLivePriceGridItemRequest | Yes | We have performed an update action on the `comments` field in our request sample >>> | | `headers` | map<string|string[]> | No | Headers to be sent with the request | -**Returns:** `oas:pricegriditemResponse|error` +**Returns:** `oas:PriceGridItemResponse|error` **Sample code:** ```ballerina -oas:pricegriditemResponse result = check pricefxClient->updateLivePriceGridItem(id, payload); +oas:PriceGridItemResponse result = check pricefxClient->updateLivePriceGridItem(id, payload); ``` @@ -3936,12 +3952,12 @@ Update a Live Price Grid Item (No Recalculation) | `payload` | oas:UpdateLivePriceGridItemNoRecalcRequest | Yes | We have performed an update action on the `comments` field in our request sample >>> | | `headers` | map<string|string[]> | No | Headers to be sent with the request | -**Returns:** `oas:pricegriditemResponse|error` +**Returns:** `oas:PriceGridItemResponse|error` **Sample code:** ```ballerina -oas:pricegriditemResponse result = check pricefxClient->updateLivePriceGridItemNo(id, payload); +oas:PriceGridItemResponse result = check pricefxClient->updateLivePriceGridItemNo(id, payload); ``` @@ -3988,12 +4004,12 @@ Add Products to a Quote | `payload` | oas:AddProductsToQuoteRequest | Yes | Request payload | | `headers` | map<string|string[]> | No | Headers to be sent with the request | -**Returns:** `oas:quoteResponse|error` +**Returns:** `oas:QuoteResponse|error` **Sample code:** ```ballerina -oas:quoteResponse result = check pricefxClient->addQuoteProducts(payload); +oas:QuoteResponse result = check pricefxClient->addQuoteProducts(payload); ``` @@ -4013,12 +4029,12 @@ Convert to a Deal | `identifier` | string | Yes | Can be either the `uniqueName` or the `typedId` | | `headers` | map<string|string[]> | No | Headers to be sent with the request | -**Returns:** `oas:quoteResponse|error` +**Returns:** `oas:QuoteResponse|error` **Sample code:** ```ballerina -oas:quoteResponse result = check pricefxClient->convertQuoteToDeal(identifier); +oas:QuoteResponse result = check pricefxClient->convertQuoteToDeal(identifier); ``` @@ -4090,12 +4106,12 @@ Create a New Revision | `identifier` | string | Yes | Can be either the `uniqueName` or the `typedId` | | `headers` | map<string|string[]> | No | Headers to be sent with the request | -**Returns:** `oas:quoteResponse|error` +**Returns:** `oas:QuoteResponse|error` **Sample code:** ```ballerina -oas:quoteResponse result = check pricefxClient->createQuoteRevision(identifier); +oas:QuoteResponse result = check pricefxClient->createQuoteRevision(identifier); ``` @@ -4245,12 +4261,12 @@ Get a Quote | `typedID` | string | Yes | Enter the quote typed ID. You get the `typedId` in the response when fetching all quotes using the `/quotemanager.fetchlist` endpoint | | `headers` | map<string|string[]> | No | Headers to be sent with the request | -**Returns:** `oas:quoteResponse|error` +**Returns:** `oas:QuoteResponse|error` **Sample code:** ```ballerina -oas:quoteResponse result = check pricefxClient->getQuote(typedID); +oas:QuoteResponse result = check pricefxClient->getQuote(typedID); ``` @@ -4321,12 +4337,12 @@ Mark an Offer as Lost | `payload` | oas:MarkOfferAsLostRequest | Yes | Request payload | | `headers` | map<string|string[]> | No | Headers to be sent with the request | -**Returns:** `oas:quoteResponse|error` +**Returns:** `oas:QuoteResponse|error` **Sample code:** ```ballerina -oas:quoteResponse result = check pricefxClient->markQuoteLost(identifier, payload); +oas:QuoteResponse result = check pricefxClient->markQuoteLost(identifier, payload); ``` @@ -4346,12 +4362,12 @@ Recalculate a Quote | `payload` | oas:RecalculateQuoteRequest | Yes | Request payload | | `headers` | map<string|string[]> | No | Headers to be sent with the request | -**Returns:** `oas:quoteResponse|error` +**Returns:** `oas:QuoteResponse|error` **Sample code:** ```ballerina -oas:quoteResponse result = check pricefxClient->recalculateQuote(payload); +oas:QuoteResponse result = check pricefxClient->recalculateQuote(payload); ``` @@ -4422,12 +4438,12 @@ Submit a Quote | `payload` | oas:SubmitQuoteRequest | Yes | Request payload | | `headers` | map<string|string[]> | No | Headers to be sent with the request | -**Returns:** `oas:quoteResponse|error` +**Returns:** `oas:QuoteResponse|error` **Sample code:** ```ballerina -oas:quoteResponse result = check pricefxClient->submitQuote(payload); +oas:QuoteResponse result = check pricefxClient->submitQuote(payload); ``` @@ -4472,12 +4488,12 @@ Upsert a Quote | `payload` | oas:UpsertQuoteRequest | Yes | Request payload | | `headers` | map<string|string[]> | No | Headers to be sent with the request | -**Returns:** `oas:quoteResponse|error` +**Returns:** `oas:QuoteResponse|error` **Sample code:** ```ballerina -oas:quoteResponse result = check pricefxClient->upsertQuote(payload); +oas:QuoteResponse result = check pricefxClient->upsertQuote(payload); ``` @@ -4499,12 +4515,12 @@ Add Contract Line Items | `payload` | oas:AddContractLineItemsRequest | Yes | Request payload | | `headers` | map<string|string[]> | No | Headers to be sent with the request | -**Returns:** `oas:contractModelResponse|error` +**Returns:** `oas:ContractModelResponse|error` **Sample code:** ```ballerina -oas:contractModelResponse result = check pricefxClient->addContractLineItems(payload); +oas:ContractModelResponse result = check pricefxClient->addContractLineItems(payload); ``` @@ -4549,12 +4565,12 @@ Get a Contract | `uniqueName` | string | Yes | `uniqueName` of the Contract you want to retrieve details for. Alternatively, `typedId` can be also used | | `headers` | map<string|string[]> | No | Headers to be sent with the request | -**Returns:** `oas:contractModelResponse|error` +**Returns:** `oas:ContractModelResponse|error` **Sample code:** ```ballerina -oas:contractModelResponse result = check pricefxClient->getContract(uniqueName); +oas:ContractModelResponse result = check pricefxClient->getContract(uniqueName); ``` @@ -4624,12 +4640,12 @@ List Contracts | `payload` | oas:ListContractsRequest | Yes | Request payload | | `headers` | map<string|string[]> | No | Headers to be sent with the request | -**Returns:** `oas:contractResponse|error` +**Returns:** `oas:ContractResponse|error` **Sample code:** ```ballerina -oas:contractResponse result = check pricefxClient->listContracts(payload); +oas:ContractResponse result = check pricefxClient->listContracts(payload); ``` @@ -4649,12 +4665,12 @@ Submit a Contract | `payload` | oas:SubmitContractRequest | Yes | Request payload | | `headers` | map<string|string[]> | No | Headers to be sent with the request | -**Returns:** `oas:contractModelResponse|error` +**Returns:** `oas:ContractModelResponse|error` **Sample code:** ```ballerina -oas:contractModelResponse result = check pricefxClient->submitContract(payload); +oas:ContractModelResponse result = check pricefxClient->submitContract(payload); ``` @@ -4699,12 +4715,12 @@ Upsert a Contract | `payload` | oas:UpsertContractRequest | Yes | Request payload | | `headers` | map<string|string[]> | No | Headers to be sent with the request | -**Returns:** `oas:contractModelResponse|error` +**Returns:** `oas:ContractModelResponse|error` **Sample code:** ```ballerina -oas:contractModelResponse result = check pricefxClient->upsertContract(payload); +oas:ContractModelResponse result = check pricefxClient->upsertContract(payload); ``` @@ -4726,12 +4742,12 @@ Add Rebate Agreement Items | `payload` | oas:GetCustomerRequest | Yes | Request payload | | `headers` | map<string|string[]> | No | Headers to be sent with the request | -**Returns:** `oas:rebateagreementResponse|error` +**Returns:** `oas:RebateAgreementResponse|error` **Sample code:** ```ballerina -oas:rebateagreementResponse result = check pricefxClient->addRebateAgreementItems(payload); +oas:RebateAgreementResponse result = check pricefxClient->addRebateAgreementItems(payload); ``` @@ -4751,12 +4767,12 @@ Delete a Rebate Agreement | `payload` | oas:DeleteRebateAgreementRequest | Yes | Request payload | | `headers` | map<string|string[]> | No | Headers to be sent with the request | -**Returns:** `oas:rebateagreementResponse|error` +**Returns:** `oas:RebateAgreementResponse|error` **Sample code:** ```ballerina -oas:rebateagreementResponse result = check pricefxClient->deleteRebateAgreement(payload); +oas:RebateAgreementResponse result = check pricefxClient->deleteRebateAgreement(payload); ``` @@ -4776,12 +4792,12 @@ Get a Rebate Agreement | `uniqueName` | string | Yes | The `uniqueName` of the Rebate Agreement you want to retrieve details for | | `headers` | map<string|string[]> | No | Headers to be sent with the request | -**Returns:** `oas:rebateagreementResponse|error` +**Returns:** `oas:RebateAgreementResponse|error` **Sample code:** ```ballerina -oas:rebateagreementResponse result = check pricefxClient->getRebateAgreement(uniqueName); +oas:RebateAgreementResponse result = check pricefxClient->getRebateAgreement(uniqueName); ``` @@ -4901,12 +4917,12 @@ Upsert a Rebate Agreement | `payload` | oas:UpsertRebateAgreementRequest | Yes | Request payload | | `headers` | map<string|string[]> | No | Headers to be sent with the request | -**Returns:** `oas:rebateagreementResponse|error` +**Returns:** `oas:RebateAgreementResponse|error` **Sample code:** ```ballerina -oas:rebateagreementResponse result = check pricefxClient->upsertRebateAgreement(payload); +oas:RebateAgreementResponse result = check pricefxClient->upsertRebateAgreement(payload); ``` @@ -5715,12 +5731,12 @@ Revoke a Compensation Record | `typedId` | string | Yes | `typedId` of the Compensation Record you want to revoke | | `headers` | map<string|string[]> | No | Headers to be sent with the request | -**Returns:** `oas:generalResponse|error` +**Returns:** `oas:GenericDataResponse|error` **Sample code:** ```ballerina -oas:generalResponse result = check pricefxClient->revokeCompensationRecord(typedId); +oas:GenericDataResponse result = check pricefxClient->revokeCompensationRecord(typedId); ``` @@ -6458,12 +6474,12 @@ Delete a File | `payload` | record {} | Yes | Request payload | | `headers` | map<string|string[]> | No | Headers to be sent with the request | -**Returns:** `oas:generalResponse|error` +**Returns:** `oas:GenericDataResponse|error` **Sample code:** ```ballerina -oas:generalResponse result = check pricefxClient->deleteFile(typedId, binaryDataId, payload); +oas:GenericDataResponse result = check pricefxClient->deleteFile(typedId, binaryDataId, payload); ``` @@ -7006,12 +7022,12 @@ Delete a Custom Form | `payload` | oas:DeleteCustomFormRequest | Yes | Request payload | | `headers` | map<string|string[]> | No | Headers to be sent with the request | -**Returns:** `oas:generalResponse|error` +**Returns:** `oas:GenericDataResponse|error` **Sample code:** ```ballerina -oas:generalResponse result = check pricefxClient->deleteCustomForm(payload); +oas:GenericDataResponse result = check pricefxClient->deleteCustomForm(payload); ``` @@ -7574,12 +7590,12 @@ Create a Data Manager Entity | `payload` | oas:CreateDataManagerEntityRequest | Yes | Either `uniqueName` or `typedId` must be provided in the request | | `headers` | map<string|string[]> | No | Headers to be sent with the request | -**Returns:** `oas:dmobjectResponse|error` +**Returns:** `oas:DmObjectResponse|error` **Sample code:** ```ballerina -oas:dmobjectResponse result = check pricefxClient->createDataManagerEntity(typeCode, payload); +oas:DmObjectResponse result = check pricefxClient->createDataManagerEntity(typeCode, payload); ``` @@ -8007,12 +8023,12 @@ List Data Manager Entities | `payload` | oas:ListDataManagerEntitiesRequest | Yes | Request payload | | `headers` | map<string|string[]> | No | Headers to be sent with the request | -**Returns:** `oas:dmobjectResponse|error` +**Returns:** `oas:DmObjectResponse|error` **Sample code:** ```ballerina -oas:dmobjectResponse result = check pricefxClient->listDataManagerEntities(typeCode, payload); +oas:DmObjectResponse result = check pricefxClient->listDataManagerEntities(typeCode, payload); ``` @@ -8235,12 +8251,12 @@ Update a Data Manager Entity | `payload` | oas:UpdateDataManagerEntityRequest | Yes | Either `uniqueName` or `typedId` must be provided in the request | | `headers` | map<string|string[]> | No | Headers to be sent with the request | -**Returns:** `oas:dmobjectResponse|error` +**Returns:** `oas:DmObjectResponse|error` **Sample code:** ```ballerina -oas:dmobjectResponse result = check pricefxClient->updateDataManagerEntity(typeCode, payload); +oas:DmObjectResponse result = check pricefxClient->updateDataManagerEntity(typeCode, payload); ``` @@ -8288,12 +8304,12 @@ Delete Import Changes | `payload` | oas:ImportmanagerDeletechangesBody | Yes | Request payload | | `headers` | map<string|string[]> | No | Headers to be sent with the request | -**Returns:** `oas:generalResponse|error` +**Returns:** `oas:GenericDataResponse|error` **Sample code:** ```ballerina -oas:generalResponse result = check pricefxClient->deleteImportChanges(payload); +oas:GenericDataResponse result = check pricefxClient->deleteImportChanges(payload); ``` @@ -8887,12 +8903,12 @@ Create a KV Table | `payload` | oas:CreateKVTableRequest | Yes | The sample request creates a table with four columns: sku, customer, record and payload (TEXT).<br> | | `headers` | map<string|string[]> | No | Headers to be sent with the request | -**Returns:** `oas:generalResponse|error` +**Returns:** `oas:GenericDataResponse|error` **Sample code:** ```ballerina -oas:generalResponse result = check pricefxClient->createKvTable(tableName, payload); +oas:GenericDataResponse result = check pricefxClient->createKvTable(tableName, payload); ``` @@ -9016,12 +9032,12 @@ Insert Bulk KV Data | `payload` | oas:InsertBulkKVDataRequest | Yes | Request payload | | `headers` | map<string|string[]> | No | Headers to be sent with the request | -**Returns:** `oas:generalResponse|error` +**Returns:** `oas:GenericDataResponse|error` **Sample code:** ```ballerina -oas:generalResponse result = check pricefxClient->insertBulkKvData(tableName, payload); +oas:GenericDataResponse result = check pricefxClient->insertBulkKvData(tableName, payload); ``` @@ -9223,12 +9239,12 @@ Execute a Logic Without a Context in a Service + payload - | `payload` | record {record {} data?;} | Yes | | | `headers` | map<string|string[]> | No | Headers to be sent with the request | -**Returns:** `oas:logicResponse|error` +**Returns:** `oas:LogicResponse|error` **Sample code:** ```ballerina -oas:logicResponse result = check pricefxClient->executeLogicInService(uniqueName, payload); +oas:LogicResponse result = check pricefxClient->executeLogicInService(uniqueName, payload); ``` @@ -9650,12 +9666,12 @@ Update a Logic | `payload` | record {record {decimal version?; string typedId?; string uniqueName?; string label?; string validAfter?; string status?; anydata simulationSet?; anydata userGroupEdit?; anydata userGroupViewDetails?; anydata formulaNature?; string lastUpdateByName?; record {decimal version?; string typedId?; string elementName?; string elementLabel?; anydata elementDescription?; string[] elementGroups?; anydata conditionElementName?; boolean hideWarnings?; boolean excludeFromExport?; boolean protectedExpression?; decimal elementTimeout?; decimal displayOptions?; string? formatType?; anydata elementSuffix?; boolean allowOverride?; boolean summarize?; boolean hideOnNull?; anydata userGroup?; anydata cssProperties?; anydata resultGroup?; string combinationType?; boolean storeInAttributeExtension?; anydata criticalAlert?; anydata redAlert?; anydata yellowAlert?; anydata labelTranslations?; string createDate?; decimal createdBy?; string lastUpdateDate?; decimal lastUpdateBy?; string formulaExpression?;}[] elements?; record {}[] inputDescriptors?; string formulaType?; anydata createdByName?; string createDate?; decimal createdBy?; string lastUpdateDate?; decimal lastUpdateBy?;} data?;} | Yes | Request payload | | `headers` | map<string|string[]> | No | Headers to be sent with the request | -**Returns:** `oas:logicResponse|error` +**Returns:** `oas:LogicResponse|error` **Sample code:** ```ballerina -oas:logicResponse result = check pricefxClient->updateLogic(id, payload); +oas:LogicResponse result = check pricefxClient->updateLogic(id, payload); ``` @@ -9676,12 +9692,12 @@ Update a Logic (No syntax check) | `payload` | record {record {decimal version?; string typedId?; string uniqueName?; string label?; string validAfter?; string status?; anydata simulationSet?; anydata userGroupEdit?; anydata userGroupViewDetails?; anydata formulaNature?; string lastUpdateByName?; record {decimal version?; string typedId?; string elementName?; string elementLabel?; anydata elementDescription?; string[] elementGroups?; anydata conditionElementName?; boolean hideWarnings?; boolean excludeFromExport?; boolean protectedExpression?; decimal elementTimeout?; decimal displayOptions?; string? formatType?; anydata elementSuffix?; boolean allowOverride?; boolean summarize?; boolean hideOnNull?; anydata userGroup?; anydata cssProperties?; anydata resultGroup?; string combinationType?; boolean storeInAttributeExtension?; anydata criticalAlert?; anydata redAlert?; anydata yellowAlert?; anydata labelTranslations?; string createDate?; decimal createdBy?; string lastUpdateDate?; decimal lastUpdateBy?; string formulaExpression?;}[] elements?; record {}[] inputDescriptors?; string formulaType?; anydata createdByName?; string createDate?; decimal createdBy?; string lastUpdateDate?; decimal lastUpdateBy?;} data?;} | Yes | Request payload | | `headers` | map<string|string[]> | No | Headers to be sent with the request | -**Returns:** `oas:logicResponse|error` +**Returns:** `oas:LogicResponse|error` **Sample code:** ```ballerina -oas:logicResponse result = check pricefxClient->updateLogicNo(id, payload); +oas:LogicResponse result = check pricefxClient->updateLogicNo(id, payload); ``` @@ -9702,12 +9718,12 @@ Update a Logic (Partial) | `payload` | record {record {decimal version?; string typedId?; string uniqueName?; string label?; string validAfter?; string status?; anydata simulationSet?; anydata userGroupEdit?; anydata userGroupViewDetails?; anydata formulaNature?; string lastUpdateByName?; record {decimal version?; string typedId?; string elementName?; string elementLabel?; anydata elementDescription?; string[] elementGroups?; anydata conditionElementName?; boolean hideWarnings?; boolean excludeFromExport?; boolean protectedExpression?; decimal elementTimeout?; decimal displayOptions?; string? formatType?; anydata elementSuffix?; boolean allowOverride?; boolean summarize?; boolean hideOnNull?; anydata userGroup?; anydata cssProperties?; anydata resultGroup?; string combinationType?; boolean storeInAttributeExtension?; anydata criticalAlert?; anydata redAlert?; anydata yellowAlert?; anydata labelTranslations?; string createDate?; decimal createdBy?; string lastUpdateDate?; decimal lastUpdateBy?; string formulaExpression?;}[] elements?; record {}[] inputDescriptors?; string formulaType?; anydata createdByName?; string createDate?; decimal createdBy?; string lastUpdateDate?; decimal lastUpdateBy?;} data?;} | Yes | Request payload | | `headers` | map<string|string[]> | No | Headers to be sent with the request | -**Returns:** `oas:logicResponse|error` +**Returns:** `oas:LogicResponse|error` **Sample code:** ```ballerina -oas:logicResponse result = check pricefxClient->updateLogicPartial(id, payload); +oas:LogicResponse result = check pricefxClient->updateLogicPartial(id, payload); ``` @@ -10297,12 +10313,12 @@ Cancel a Job | `payload` | record {} | Yes | Request payload | | `headers` | map<string|string[]> | No | Headers to be sent with the request | -**Returns:** `oas:generalResponse|error` +**Returns:** `oas:GenericDataResponse|error` **Sample code:** ```ballerina -oas:generalResponse result = check pricefxClient->cancelJob(id, payload); +oas:GenericDataResponse result = check pricefxClient->cancelJob(id, payload); ``` @@ -10603,12 +10619,12 @@ Update a Review Status | `payload` | record {} | Yes | Request payload | | `headers` | map<string|string[]> | No | Headers to be sent with the request | -**Returns:** `oas:generalResponse|error` +**Returns:** `oas:GenericDataResponse|error` **Sample code:** ```ballerina -oas:generalResponse result = check pricefxClient->updateReviewStatus(typedId, payload); +oas:GenericDataResponse result = check pricefxClient->updateReviewStatus(typedId, payload); ``` @@ -10857,12 +10873,12 @@ Mark as Read | `payload` | record {} | Yes | Request payload | | `headers` | map<string|string[]> | No | Headers to be sent with the request | -**Returns:** `oas:generalResponse|error` +**Returns:** `oas:GenericDataResponse|error` **Sample code:** ```ballerina -oas:generalResponse result = check pricefxClient->markAsRead(payload); +oas:GenericDataResponse result = check pricefxClient->markAsRead(payload); ``` @@ -10882,12 +10898,12 @@ Send a Validation Message | `payload` | oas:NotificationSendBody | Yes | Request payload | | `headers` | map<string|string[]> | No | Headers to be sent with the request | -**Returns:** `oas:generalResponse|error` +**Returns:** `oas:GenericDataResponse|error` **Sample code:** ```ballerina -oas:generalResponse result = check pricefxClient->sendValidationMessage(payload); +oas:GenericDataResponse result = check pricefxClient->sendValidationMessage(payload); ``` @@ -11167,12 +11183,12 @@ Send an Email | `payload` | oas:SendEmailRequest | Yes | Request payload | | `headers` | map<string|string[]> | No | Headers to be sent with the request | -**Returns:** `oas:generalResponse|error` +**Returns:** `oas:GenericDataResponse|error` **Sample code:** ```ballerina -oas:generalResponse result = check pricefxClient->sendEmail(payload); +oas:GenericDataResponse result = check pricefxClient->sendEmail(payload); ``` @@ -11555,7 +11571,7 @@ Create an Object | Name | Type | Required | Description | |------|------|----------|--------------| | `typeCode` | string | Yes | The object's type code. See [the list of Type Codes](https://pricefx.atlassian.net/wiki/spaces/KB/pages/99570616/Type+Codes) | -| `payload` | oas:createObjectRequest | Yes | Request payload | +| `payload` | oas:CreateObjectRequest_1 | Yes | Request payload | | `headers` | map<string|string[]> | No | Headers to be sent with the request | **Returns:** `error?` @@ -11607,15 +11623,15 @@ Delete an Object | Name | Type | Required | Description | |------|------|----------|--------------| | `typeCode` | "ACTT"|"AP"|"APIK"|"BD"|"BPT"|"BR"|"C"|"CA"|"CAM"|"CDESC"|"CF"|"CFS"|"CFT"|"CH"|"CLLI"|"CN"|"CS"|"CT"|"CTAM"|"CTLI"|"CTMU"|"CTMUI"|"CTT"|"CTTAM"|"CTTREE"|"CW"|"CX"|"CXAM"|"DA"|"DB"|"DCR"|"DCRAM"|"DCRI"|"DCRL"|"DCRMC"|"DCRT"|"DE"|"DI"|"DM"|"DMDC"|"DMDL"|"DMDS"|"DMF"|"DMM"|"DMR"|"DMT"|"DREG"|"DWT"|"ET"|"EVT"|"F"|"FE"|"FN"|"IDC"|"IE"|"ISH"|"JST"|"JLTV"|"JLTVM"|"LAT"|"LT"|"LTT"|"LTV"|"M"|"MLTV"|"MLTV2"|"MLTV3"|"MLTV4"|"MLTV5"|"MLTV6"|"MLTVM"|"MPL"|"MPLAM"|"MPLI"|"MPLIT"|"MPLT"|"MR"|"MRAM"|"MT"|"P"|"PAM"|"PAPIJ"|"PBOME"|"PCOMP"|"PCW"|"PDESC"|"PG"|"PGI"|"PGIM"|"PGT"|"PH"|"PL"|"PLI"|"PLIM"|"PLT"|"PR"|"PRAM"|"PREF"|"PT"|"PWH"|"PX"|"PXAM"|"PXREF"|"PYR"|"PYRAM"|"Q"|"QAM"|"QLI"|"QMU"|"QMUI"|"QT"|"QTT"|"QTTAM"|"R"|"RAT"|"RATM"|"RBA"|"RBAAM"|"RBALI"|"RBAT"|"RBT"|"RBTAM"|"RR"|"RRAM"|"RRS"|"RRSC"|"RT"|"SAT"|"SC"|"SCN"|"SCNAM"|"SCT"|"SIAM"|"SIM"|"SIMI"|"TFA"|"TODO"|"U"|"UG"|"US"|"W"|"WD"|"WF"|"WFE"|"XPGI"|"XPLI"|"XSIMI" | Yes | Enter the type code of the entity you want to delete the object from. See [the list of Type Codes](https://pricefx.atlassian.net/wiki/spaces/KB/pages/99570616/Type+Codes) in the Pricefx Knowledge Base article | -| `payload` | oas:deleteObjectRequest | Yes | Request payload | +| `payload` | oas:DeleteObjectRequest_1 | Yes | Request payload | | `headers` | map<string|string[]> | No | Headers to be sent with the request | -**Returns:** `oas:deleteObjectResponse|error` +**Returns:** `oas:DeleteObjectResponse_1|error` **Sample code:** ```ballerina -oas:deleteObjectResponse result = check pricefxClient->deleteObject(typeCode, payload); +oas:DeleteObjectResponse_1 result = check pricefxClient->deleteObject(typeCode, payload); ``` @@ -11662,12 +11678,12 @@ Get an Object | `id` | string | Yes | The ID of the object you want to retrieve details for | | `headers` | map<string|string[]> | No | Headers to be sent with the request | -**Returns:** `oas:getObjectResponse|error` +**Returns:** `oas:GetObjectResponse_1|error` **Sample code:** ```ballerina -oas:getObjectResponse result = check pricefxClient->getObject(typeCode, id); +oas:GetObjectResponse_1 result = check pricefxClient->getObject(typeCode, id); ``` @@ -11713,12 +11729,12 @@ Insert Bulk Data | `payload` | oas:InsertBulkDataRequest | Yes | The **`/loaddata/P`** endpoint (Insert Bulk Products) is used in our example.<p> | | `headers` | map<string|string[]> | No | Headers to be sent with the request | -**Returns:** `oas:loaddataResponse|error` +**Returns:** `oas:LoadDataResponse|error` **Sample code:** ```ballerina -oas:loaddataResponse result = check pricefxClient->insertBulkData(typeCode, payload); +oas:LoadDataResponse result = check pricefxClient->insertBulkData(typeCode, payload); ``` @@ -11790,15 +11806,15 @@ List Objects | Name | Type | Required | Description | |------|------|----------|--------------| | `typeCode` | string | Yes | The object's type code. See [the list of Type Codes](https://pricefx.atlassian.net/wiki/spaces/KB/pages/99570616/Type+Codes) | -| `payload` | oas:fetch_typeCode_body | Yes | Request payload | +| `payload` | oas:ListObjectsRequest | Yes | Request payload | | `headers` | map<string|string[]> | No | Headers to be sent with the request | -**Returns:** `oas:generalResponse|error` +**Returns:** `oas:GenericDataResponse|error` **Sample code:** ```ballerina -oas:generalResponse result = check pricefxClient->listObjects(typeCode, payload); +oas:GenericDataResponse result = check pricefxClient->listObjects(typeCode, payload); ``` @@ -11817,12 +11833,12 @@ List Type Codes |------|------|----------|--------------| | `headers` | map<string|string[]> | No | Headers to be sent with the request | -**Returns:** `oas:typecodesResponse|error?` +**Returns:** `oas:TypeCodesResponse|error?` **Sample code:** ```ballerina -oas:typecodesResponse|error? result = check pricefxClient->listTypeCodes(); +oas:TypeCodesResponse|error? result = check pricefxClient->listTypeCodes(); ``` @@ -11947,12 +11963,12 @@ Upsert an Object | `payload` | oas:UpsertObjectRequest | Yes | The **`/integrate/P`** endpoint (Upsert a Product) is used in our example.<p> | | `headers` | map<string|string[]> | No | Headers to be sent with the request | -**Returns:** `oas:productResponse|error` +**Returns:** `oas:ProductResponse|error` **Sample code:** ```ballerina -oas:productResponse result = check pricefxClient->upsertObject(typeCode, payload); +oas:ProductResponse result = check pricefxClient->upsertObject(typeCode, payload); ``` @@ -12600,12 +12616,12 @@ List Tasks |------|------|----------|--------------| | `headers` | map<string|string[]> | No | Headers to be sent with the request | -**Returns:** `oas:generalResponse|error` +**Returns:** `oas:GenericDataResponse|error` **Sample code:** ```ballerina -oas:generalResponse result = check pricefxClient->listTasks(); +oas:GenericDataResponse result = check pricefxClient->listTasks(); ``` diff --git a/en/docs/connectors/catalog/erp-business/pricefx/setup-guide.md b/en/docs/connectors/catalog/erp-business/pricefx/setup-guide.md index e3a829a1c0..07883a87c8 100644 --- a/en/docs/connectors/catalog/erp-business/pricefx/setup-guide.md +++ b/en/docs/connectors/catalog/erp-business/pricefx/setup-guide.md @@ -27,17 +27,9 @@ Provide `jwt` on its own - no username, password, or partition needed. Pricefx's `generateJwtToken` operation mints a non-expiring JWT meant for integrations like this one. Call it once (using any of the other authentication methods), save the resulting token in your configuration, and hand it to the connector as `jwt`. It's the cheapest option available: the token is sent as-is, so creating the client makes no network call at all. -```ballerina -configurable string jwt = ?; - -pricefx:Client pricefxClient = check new ({jwt}, serviceUrl); -``` - -Only use a non-expiring token here - the connector has no credentials to re-authenticate with, so it can't refresh or retry a token supplied this way. A short-lived session token will eventually stop working. - ### 3. OAuth 2.0 Authentication -Provide `oauth2ClientId`, `oauth2RefreshToken`, and optionally `oauth2ClientSecret`. +Provide `clientId`, `refreshToken`, and optionally `clientSecret`. #### Registering an OAuth client @@ -55,13 +47,13 @@ On the Pricefx side, go to **Administration > Configuration > System Configurati } ``` -- The key you choose under `knownClients` (`` above) is the value you set as `oauth2ClientId`. -- `client_secret`, if you set one, is the value you set as `oauth2ClientSecret`. +- The key you choose under `knownClients` (`` above) is the value you set as `clientId`. +- `client_secret`, if you set one, is the value you set as `clientSecret`. - `redirect_uri` must match wherever your integration is set up to receive the sign-in redirect. #### Getting a refresh token -`oauth2RefreshToken` comes from signing in once through Pricefx's OAuth 2.0 consent screen for the client you just registered, and approving access. That sign-in step is interactive (it happens in a browser) and can't be automated by this connector, but it's a one-time setup step - the consent screen hands back a refresh token as part of the exchange, and that's the value you configure here. +`refreshToken` comes from signing in once through Pricefx's OAuth 2.0 consent screen for the client you just registered, and approving access. That sign-in step is interactive (it happens in a browser) and can't be automated by this connector, but it's a one-time setup step - the consent screen hands back a refresh token as part of the exchange, and that's the value you configure here. Once you have a refresh token, the connector fetches and refreshes access tokens automatically - you never need to repeat that step. @@ -84,33 +76,15 @@ On the Pricefx side, go to **Administration > Configuration > System Configurati } ``` -- **`externalSystemName`** - a JSON-safe name for the external system (letters, digits only - no whitespace). This is the same name you pass as `externalJwtSystemName` to the connector. You can register as many external systems as you like, each under its own name. -- **`publicKey`** - the external system's public key, as a PEM-formatted string. Pricefx only supports RSA keys. For example: - - ``` - -----BEGIN PUBLIC KEY----- - MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA0E9Zp0JNbDaOMqhZd1C+ - /FdBTCjza0qXcjTYCbDUeY89qPpwN19QovmehCVGBSFzLOkltx0YmlCkaKLtzqfS - ... - fXr4+6SBmEOVa7RSzoXr3whpdMdKsIvnDCCmT++aJvHBw63ZKGKb8+ZTAXv0z3sm - LDRyhifUmEoJPGWHV6/oxZQiVRapEFe7SiVTbr2IW7OfrdE3DVrioJmATEKgVr5i - zwIDAQAB - -----END PUBLIC KEY----- - ``` - +- **`externalSystemName`** - a JSON-safe name for the external system (letters, digits only - no whitespace). This is the same name you pass as `systemName` to the connector. You can register as many external systems as you like, each under its own name. +- **`publicKey`** - the external system's public key, as a PEM-formatted string. Pricefx only supports RSA keys. - **`permissions`** - leave `null` (or omit it) to not further restrict permissions beyond what the authenticated user already has. If you provide a list of permission-name strings instead, a token issued under this configuration can only call endpoints whose required permission is in that list. :::caution The `permissions` list is only an additional filter, on top of the authenticated user's own permissions - it can't grant a user something they couldn't otherwise do. Use it to restrict a given trust relationship to a narrower set of API calls than the user would normally have access to. ::: -Once the trust relationship is configured, give the connector two values: `externalJwtSystemName`, set to the name you registered above, and `externalJwt`, set to a JWT signed by that external system. - -## Optional settings - -Independently of the authentication method you choose, you can also set: - -- `csrfToken` - a CSRF token, if your partition has CSRF protection enabled +Once the trust relationship is configured, give the connector two values: `systemName`, set to the name you registered above, and `jwt`, set to a JWT signed by that external system. The connector automatically re-authenticates and retries once whenever a request comes back unauthenticated, so a long-lived client instance keeps working without manual re-initialization. From 71868790e769851751f49e181fd887d4790bebda Mon Sep 17 00:00:00 2001 From: Dilan Perera Date: Mon, 3 Aug 2026 21:46:25 +0530 Subject: [PATCH 5/6] Add Pricefx connector example page --- .../catalog/erp-business/pricefx/example.md | 115 ++++++++++++++++++ en/sidebars.ts | 1 + ...llerinax_pricefx_screenshot_01_palette.png | Bin 0 -> 148708 bytes ..._pricefx_screenshot_02_connection_form.png | Bin 0 -> 121071 bytes ...pricefx_screenshot_03_connections_list.png | Bin 0 -> 132820 bytes ...pricefx_screenshot_04_operations_panel.png | Bin 0 -> 132281 bytes ...x_pricefx_screenshot_05_operation_form.png | Bin 0 -> 115809 bytes ...x_pricefx_screenshot_06_completed_flow.png | Bin 0 -> 99983 bytes 8 files changed, 116 insertions(+) create mode 100644 en/docs/connectors/catalog/erp-business/pricefx/example.md create mode 100644 en/static/img/connectors/catalog/erp-business/pricefx/example/ballerinax_pricefx_screenshot_01_palette.png create mode 100644 en/static/img/connectors/catalog/erp-business/pricefx/example/ballerinax_pricefx_screenshot_02_connection_form.png create mode 100644 en/static/img/connectors/catalog/erp-business/pricefx/example/ballerinax_pricefx_screenshot_03_connections_list.png create mode 100644 en/static/img/connectors/catalog/erp-business/pricefx/example/ballerinax_pricefx_screenshot_04_operations_panel.png create mode 100644 en/static/img/connectors/catalog/erp-business/pricefx/example/ballerinax_pricefx_screenshot_05_operation_form.png create mode 100644 en/static/img/connectors/catalog/erp-business/pricefx/example/ballerinax_pricefx_screenshot_06_completed_flow.png diff --git a/en/docs/connectors/catalog/erp-business/pricefx/example.md b/en/docs/connectors/catalog/erp-business/pricefx/example.md new file mode 100644 index 0000000000..9cc010ab23 --- /dev/null +++ b/en/docs/connectors/catalog/erp-business/pricefx/example.md @@ -0,0 +1,115 @@ +--- +title: Example +--- + +# Example + +## What you'll build + +This example builds an automation that connects to Pricefx and lists the price list types defined in your partition. The automation calls the **List Price List Types** operation and logs the result. + +**Operations used:** +- **List Price List Types** : Retrieves the price list types configured for your partition. + +## Architecture + +```mermaid +flowchart LR + A((User)) --> B[List Price List Types] + B --> C[Pricefx Connector] + C --> D[(Pricefx)] +``` + +## Prerequisites + +- A Pricefx username, password, and partition. See the connector's [Setup Guide](setup-guide.md). + +## Setting up the Pricefx integration + +> **New to WSO2 Integrator?** Follow the [Create a New Integration](../../../../develop/create-integrations/create-a-new-integration.md) guide to set up your integration first, then return here to add the connector. + +## Adding the Pricefx connector + +### Step 1: Open the connector palette + +Select **Add Connection** in the **Connections** section. + +![Pricefx connector palette open before selection](/img/connectors/catalog/erp-business/pricefx/example/ballerinax_pricefx_screenshot_01_palette.png) + +### Step 2: Select the Pricefx connector + +Enter "pricefx" in the search box to filter the connector list, then select the **Pricefx** connector card (`ballerinax/pricefx`) to open its connection configuration form. + +## Configuring the Pricefx connection + +### Step 3: Bind the connection parameters to configurable variables + +Bind the required connection fields to configurable variables. + +- **Config** : The authentication method to use. Select **BasicCredentials** and bind its `username`, `password`, and `partition` fields. + +![Pricefx connection form with the username, password, and partition bound before saving](/img/connectors/catalog/erp-business/pricefx/example/ballerinax_pricefx_screenshot_02_connection_form.png) + +### Step 4: Save the connection + +Select **Save Connection** and verify that the connection appears in the **Connections** section. + +![Pricefx connection visible after saving](/img/connectors/catalog/erp-business/pricefx/example/ballerinax_pricefx_screenshot_03_connections_list.png) + +### Step 5: Set actual values for your configurables + +1. Select **Configurations** at the bottom of the project tree under **Data Mappers**. +2. Enter a value for each configurable listed below before you run the integration. + +- **username** (`string`) : Your Pricefx username. +- **password** (`string`) : Your Pricefx password. +- **partition** (`string`) : Your Pricefx partition name. + +## Configuring the Pricefx List Price List Types operation + +### Step 6: Add an automation entry point + +1. In the left panel under **Entry Points**, select **+** (**Add Entry Point**). +2. Under **Automation**, select **Automation**. +3. In the **Create New Automation** dialog, accept the default settings and select **Create**. + +The canvas switches to the Automation flow view, showing a Start node, an Error Handler node, and an End node. + +### Step 7: Select the List Price List Types operation + +1. In the automation flow body on the canvas, select the **+** (Add Step) button between the Start and Error Handler nodes to open the step-addition panel. +2. Under **Connections** in the step panel, select the **pricefxClient** connection node to expand it and reveal all available Pricefx API operations. + +![Pricefx connection expanded to display operations before selection](/img/connectors/catalog/erp-business/pricefx/example/ballerinax_pricefx_screenshot_04_operations_panel.png) + +3. Select **List Price List Types** from the list. This operation has no required parameters, so only the result variable needs a name. + +- **Result** : The name of the variable that holds the returned price list types. + +![Pricefx List Price List Types operation with the result variable set before saving](/img/connectors/catalog/erp-business/pricefx/example/ballerinax_pricefx_screenshot_05_operation_form.png) + +4. Select **Save** to add the Pricefx operation step to the automation flow. + +### Step 8: Log the List Price List Types result + +Add a log action for the returned value, then return to the visual flow. + +![Completed Pricefx flow with the configured operation](/img/connectors/catalog/erp-business/pricefx/example/ballerinax_pricefx_screenshot_06_completed_flow.png) + +## Try it yourself + +Try this sample in WSO2 Integration Platform. + +[![Deploy to Devant](https://openindevant.choreoapps.dev/images/DeployDevant-White.svg)](https://console.devant.dev/new?gh=wso2/integration-samples/tree/main/integrator-default-profile/connectors/pricefx_connector_sample) + +[View source on GitHub](https://github.com/wso2/integration-samples/tree/main/integrator-default-profile/connectors/pricefx_connector_sample) + +## More code examples + +The `Pricefx` connector offers practical examples illustrating its use in various scenarios. +Explore these [examples](https://github.com/ballerina-platform/module-ballerinax-pricefx/tree/main/examples/), covering the following use cases: + +1. [Product catalog management](https://github.com/ballerina-platform/module-ballerinax-pricefx/tree/main/examples/product-catalog-management): Add a new product to the catalog, update one of its fields, then list matching products to confirm the change. +2. [Customer quote workflow](https://github.com/ballerina-platform/module-ballerinax-pricefx/tree/main/examples/customer-quote-workflow): Add a new customer, create a quote for them, then submit the quote for approval. +3. [Price list calculation](https://github.com/ballerina-platform/module-ballerinax-pricefx/tree/main/examples/price-list-calculation): Create a new price list, run its calculation, then fetch the calculated price list. +4. [Attachment upload workflow](https://github.com/ballerina-platform/module-ballerinax-pricefx/tree/main/examples/attachment-upload-workflow): Create an upload slot for a customer record, upload a file to it, then list the customer's files. diff --git a/en/sidebars.ts b/en/sidebars.ts index 36762efd6b..9a31243686 100644 --- a/en/sidebars.ts +++ b/en/sidebars.ts @@ -1394,6 +1394,7 @@ const sidebars: SidebarsConfig = { items: [ 'connectors/catalog/erp-business/pricefx/setup-guide', 'connectors/catalog/erp-business/pricefx/action-reference', + 'connectors/catalog/erp-business/pricefx/example', ], }, { diff --git a/en/static/img/connectors/catalog/erp-business/pricefx/example/ballerinax_pricefx_screenshot_01_palette.png b/en/static/img/connectors/catalog/erp-business/pricefx/example/ballerinax_pricefx_screenshot_01_palette.png new file mode 100644 index 0000000000000000000000000000000000000000..7fe3df3337e69cc26ee321984a2828a1afe6d304 GIT binary patch literal 148708 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 literal 0 HcmV?d00001 diff --git a/en/static/img/connectors/catalog/erp-business/pricefx/example/ballerinax_pricefx_screenshot_02_connection_form.png b/en/static/img/connectors/catalog/erp-business/pricefx/example/ballerinax_pricefx_screenshot_02_connection_form.png new file mode 100644 index 0000000000000000000000000000000000000000..39caeffab9c6bb1da2375844d33242fdc3bd1973 GIT binary patch literal 121071 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 z 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�WZKNaQ{Fq~IWsmK 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 literal 0 HcmV?d00001 diff --git a/en/static/img/connectors/catalog/erp-business/pricefx/example/ballerinax_pricefx_screenshot_03_connections_list.png b/en/static/img/connectors/catalog/erp-business/pricefx/example/ballerinax_pricefx_screenshot_03_connections_list.png new file mode 100644 index 0000000000000000000000000000000000000000..32b5beaff0d870641091177fe885173db62cca86 GIT binary patch literal 132820 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

->0iS&9)<)`onpw$pEokUkZ7TQ7RuHWWbwv?{P!~;Pu3n3;)9F}2 M{(D(B{MaY|23@U3fdBvi literal 0 HcmV?d00001 diff --git a/en/static/img/connectors/catalog/erp-business/pricefx/example/ballerinax_pricefx_screenshot_04_operations_panel.png b/en/static/img/connectors/catalog/erp-business/pricefx/example/ballerinax_pricefx_screenshot_04_operations_panel.png new file mode 100644 index 0000000000000000000000000000000000000000..5caee49e4a5d5b9ac7a2afcf766dd38786551a0f GIT binary patch literal 132281 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≪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 z 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

}Cv6%0K76kEa55|0`(yUV9$S|w9 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 Cg5%Es literal 0 HcmV?d00001 diff --git a/en/static/img/connectors/catalog/erp-business/pricefx/example/ballerinax_pricefx_screenshot_06_completed_flow.png b/en/static/img/connectors/catalog/erp-business/pricefx/example/ballerinax_pricefx_screenshot_06_completed_flow.png new file mode 100644 index 0000000000000000000000000000000000000000..46458d6dd0b2ea7b741923802ebba4abf46c145a GIT binary patch literal 99983 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

7fDh=2P&acN?AVh`6-pKo#Ad{r4wf` zIAK4O9lst;Il-h3W$8@nAiOix8A`K0aDmE4tu#-MTQiGBF8xi*_YP8K(cx{!abe_F zt26#NIdI{#6B?QJTlpCbbyn{t=41*=> z{eg}c3iaA`BLGWTx`iEs^t5qDzFAR53cq7r@-@&=mpZ8bR9rkWIVarFWO#GEX#7^!2g4v@ zFpg9Y)cfO6lV#}4BIt_*4`|Q|tOLW1Ohsz#4%|Na7V-R9CtKM&;Im7SOgZuG@-F=h zKk6ASs69+h*<@f#DW@tO6pXV@)(FqYsPw6lp ztzpZw`jBC!)NON_eMi+@>XPM%RbH@H0IwbP(XdhIJ@$x^&Dv{UywF~^{2Q|a=kV!< z<<+?kmSAuoX5o#|A_4rCfb$x+uLd(f8Hsv9|!`%_pCU@4q(| zVNa+5X0AsH#4>lhJIqv*X90Bxv5S7kZ@L zhz@bpu0uhGN>IWb%9qTepK9kj$8u;W%h*Tm4x5yNA%td9LKd;xNMf>Qy2*|4O+pOu zUz-WuP~YY4`}gQiaC6q$^W3&8?5{eKIwc@CqL{{#bPdJWm9J~kkA@^W7w>M{D)ysm zs`RClXz>1+$@%fm+*jF(JKD4^3b3MPf_LmS%E69s^}6BFFJ#hFw_TNT3~781K0Y!? zs5`smk{0UfOCLAC$o|Ut28y@w+YoNWQbDV#sNN6ZT9lV?L#ii9h>(PO+t(Xqecv8A1&H*rY{N0ML z?OZ&6xq!h=Hdbrgwn0@Usq%M&HjqpOd}H!j*&2_C`t9>)9$mZkM<>h;mTepagt?thTpeFvuOto$MIerV6@);^X7Ju9)*(IybW( z@0z1I`l);Oxr!JK>#bOVH#&NnI!H!`Qei8$b7w0~q2w(H7Qtrg#%_=GIxzYQ?7Zr3 zXYdSZhuDN2pkL==G#K=#x)2ahU{=SCRPamkQj~*5;(k^U$wRtgXg2| z4c7r|z|7!jgwuw));8H2mLr+;{yP1D$2@0ar`%slbiuXP(d*2SAenC&jgR`;RRP4^r|e` zA+8tdHp0N+cq5@R&(v7E@^@bZv-lBPo~9H41!M0Fn}V-5+9Iu$kbmi3+jC~Jzxj}Q ziTA8C%69PP$DN!A=zC8VJYNLBJ&{%r7XUL%u}vkhS2RMl+B*tO$ zmNE|}1UmonGd*g^67a7lS?g(gB5r_#Ss3rrf(Qp7tEZ<&5_M+jPI$whY_&22XcobQ zE#Aew9jnHxfkZ9815Q_x_12x;DJiL9@d&1AhG=@#xae&|ljdJzBl^x356KO^Ry5R6 zEMP*6<1Cix>Qmy2!;4T?XE@^*s%SpM=aAV1#b|gX7T3T6MRr0+RHKR z04E5V$kGBV6Iks{_y*xAboJ_cXp4iKKX6-BBWv|CdyZbcu#@RH)?7Ntn6%k^w z>`H9#K8K@WIEUx~KwHc))(w7`*gi>2PQo~92>2Chql9tbGVnqF2C7N>w36KA)Ohy5 zl^w#ykNWt~>6)|xWLsxNx#PPl4XCItWYtcMj#i|{#>TeS%k14djZq`CGT`>j0sb7f z;Mi6gOhThDa0eTVZKG!)@iy(q*mng&bbhz$^VAdXgO4eD8#DMkJx*)=RAfFQeZ*G!#nOKx>^W>j}sd zNHX{LJO!KZ?~G@0iBH? ztgr(Q3Uuhuj>U7ax?n&;)FB!J37r#?A;Y-EM`I|^*;UoaX#^B@y|eZxT2_p=u9@+s zF|=7>l!coLdoYSPLdP%!v6etqro7JD5EXk479KJD8+SBwqQ{R$Fs?_%!A>=JlPdiH z4l?lg0?ddc!X(ATF^Hf|z`LT)pDj|icx5rPt)zpj#`4rD;G>m|cO&|aSK=WkwSVdA zio(*)v4xH*f?}4{(M?!CD2haL7ZYY{4b)^3_qsdEuA`xu!8RYbP4(U$TpmqqdMVza zW_XsofHGzQI$K=Qt8(Y=CnlOAQ~!$u0!Q~rlbF58fjM}zJ5Rlv1hY22YHQt>$ZG5| zqNzfQ7GX`vwQepnY_4Y12~&@j&+@{J-nEi*2w3ay?5OpRF)3hZA~V_0Vy zw7fbf;W_-z1Y$H?fUVgSv(PtNEnJJ*P5ttwn`Vc^4~4?>cK5Lc<}I0QcL3Qy2>nYB z0>@YBa~iOU{*vtV2^@e3vbMGs<6@zDTxm1)Diav1L6a8)T|3txGJta9*Jc;+2-A~% z6xxMR7*}LSmdW>+^}1o^?TlHkPd(P0(-Q>zgqy?;&-&ay-So*x?O~+cG)zHQn_`h- zaolF1>Q~KP>Wmvy11swoE!VPArDptd4)}E87q|ZF*Q9;ox}f~)--!QnX)*g5z9Cm^ z#5!{ZYrs5#i-_*{gk9^OCORe0liU=1HCuCcyaCebC+luppw78e=vfXRSZwoUEllQ@7uwUm5`S@Go~;ImF%rRJsb*C5_aC4 zotS*eJ#<(8|NO`I!<%hsdp11brvniA@Zm#irgO)K4@d5XM?}2B#q{yMn-%8AexDeM;4vi2C(GNk)Oe!OzuQd4z>uw6t6ya1ZfxFfieP3#Pv^ zIVmX#h1}8ov^d@9N?bt~9c42X@B%qG~#BJo|{V~ZF%@bzaegKI&>k_gCD?R)$#=K6shuyN1gAvuJp zP7dz<{4tLo;u%Bgsy$yE8OgxtgZFR;zzUk`^qf)jW)>Re?GN4d4(vcM zlfeuy3O$Is_1P|LaYwAu*!At(xBmq!+Cp|_VBAtP64B%(HfEr0vN<#|f^mu=;FJ@2*y6McwIk9SG{QnaRm7?@ zV(jJGwQJh@_t#AK0sfRxHRyq#WhIC9VX|fVK67dPMJ|NJ6>PhLvqs=<+kI^yS zfxX!3aO-ndmp_yCI!V_vXJ)}qqtyu%A0ETd2kjj)ckOt&=Y-nPN}yCjES3r4Fe`CB zwi!cOLZi$kN!+g84=s!PYLI=}XjySD52?&G)+ zs}4;GE-D}(ppyiZA6C~*V4?|vlUDU(t+`+o5u1a=&HyYSL#TCL+9QF-i0-b^d~h{G z6|gZkmWHsd&9*|9Mp#4yP^$EFmohWoo7?z$@YJHXtdh{s9vp|V#Tk?@BP)|+?8bPA z5~t8X5mQ=g{S=#*3yFQ}l&w)>_wAck+z!zr@E`cYDJ%ifBE7VsgmvarR;lVNT*dD6&znE}c``MstdhFYaho*=w(vaw-~ia%;gR`~}!n-*bXtQe&W zgX@4h`gY=C_Dww1p+IgiePHMA7Zg-13s5#i#l9}^JlM)$-3qVW+<;K-)Q_m~8oKZ$Gy_Sq42$wt*cI#fob08t=eT(!wh z))imAypD_5)O4dEMy~~xLL_}oeR}B-MOKV(wkc}*^vQgJM~S7o5;0RoMn>oAu5}B$ zNKea&f(t=nkcHM29^@Oi3i+I~#WtpXs9A|E7`BFXsjR=!m3~;wu1$a?v~xt$sz zq%Ml5-VEC0n0q@2;S3Dk_(FgyU*pPSu_^)YXa$($egQFiob+R>EpW2*m4-Z@<>2VR zK8Jy7d{Y2&;(`CVDOkyuKFAV{saoJ$9h!vQcZd&=h}=Wb1@#F#JA1t~Rg^UzuW9?( z*qG9HD36A)G06Jz(R+Wn05vwkIYOD1PW;aAqhuap$I;>x!0nnw-nLbVcZIMl27y7% zeh%K&xz!D^=s0$n;~Dftx#0Ms15Q*mgbV|f8-~?fbS-gZ0rPdE_-cqnODh5C#dA^^ zct3*eLr6RX{DpE4>%ZJk0ib#+!jgrGH#qYtDJeknDH(`hjI~FLY-qnofQKs$G-Rx| zMTv#OfnVjnqz@en!DodKR!ay~QFf>7?M-luP_kK>0ouO9UyCnP%+XK?yYk+Fw(Guf zzO5^&_g96lKy|JaP-tJ-DVF$1-Jrn0ly6%>0>~hHSs9%BT;WfQ?Fj53M+PcxKYs04 zF4YPp&nTsXpoD`uQF82twV7uF(I4Pnn!hc8k?ZRc$LPkZ!P=Obn7DvA1>7XvfW8JN z4GM?LU2q7xXWy*MsU>d)UIPUfnpc|1veM2Ks4UTslt+sPinNN`gw`*UiGK&ubD39L zC02X~RfqKswBg(2l=ptv?l68Fg)PE~m6KCB4$PLN<-fkNIoC)g2eZZytCdM29>zd( zi7ZTvs-a57JEYz5d~lI5Z}k8HAN##<3#kr!mrbYP=vOc5Sudd0*E>4Zr&E>xO-#-e~F{5v~&Rw;r9|^s8OjC(Wt37#V$3_N* zNUR~9%I0u$b!Ev|=Un{90N^hSO$#I-hUnq@!+<<^PT2<*GSg2YQbIS0KxWeWxW87L zY4215sktlrm%Y{*#fjD)wj)Od0a3(Oa~Y(O)z`D*!q7@uNp^ zf(BdfA5i}NmtESZsW+j}w7+zw`u%k0r&Vo@QSt9OeBnwkJ-h?sf!@ZI$56sGk4 zl|daHFbnYp5rR%L1{zh-3Ir=5`Wy0+nw5DvoLa0Kquu)Qc25gG8V`FeXIvg0D3I_s>LK6J&;If88v_WnB5GFTlL6Fz07p1-T1cb%Ux@+JH~D^O`}nU| z3AFG9?kM0djPedm!A6`!s)PF<#?o`ZLPn>} zy#W`x5iTNn+c5a)w=iXlS!ez5m1s%7$7jbnF1-zBF~IiepLd);^=POcg+nL#MO{aK zd3=Y;`k7~8Cn7$SwTqlQ?r`$q!1zzCC9h8jdc0e9&Uc?3alcV6=e~5wSbw5>;uXt8 z#+kB_MA7t`kt<9qm}F#8#&x5>)1bw)pedSSv#;^|8CS$@KS(#w34k2ggw@XPpuw)D zFoG4w&74IJvQlcDhr@>63i8;38aHk)-n-JhtXmf*M=w{_)T}Hare7iEGc5D=#N-sx z6p{cjJ&K4akAX`>WMYz)mKdkZ=kq4_0l8t%;l1N6Y7C5m#CB5R6?IznTY!SJ_i4TQ zi#55e@psB6mDZbVwacke(cHX=B6HV~!>>PxQs9{#Cb_=+(d^vw>krBV8^gS*R9?v~ zoV2x~=x<_q#pAmTSN+`7Aj|l}>vS=#d54Y7?yni(;(F{lMC>`+GlC#nH-k|){~3D0 zPJGFrS_yOwUZ1mN>BqOL?E}5f<8_Tpu;IH~A;X`B4i-+vr5-R{nO(%1x?-qPxqS3#=W{;t0&!1aO6%a ze(B@6_U$$yDWh}GMKf=B=a{!{-?L@7?n%UPk;Rr5xkoz=%cwaN{ z9w8kN>2igRQ9nqDL$k>E80V}}1PFLo*#OJSDy%@Hc4-twnf?Fi3cuGTz3WNz4#+yKS!D-rN% zrfu)tCwb?%W1eVVV**EnZl_X5+4W?XtfpHF zXVAg%n=Iv5@O#dAdJ^N#(JKl+qWdf>E8E+sJ<7}?22YPmhC9H$xPSlfv;|Ocx2)`k zii*#`xPuvbZ?Q18rKP2|_6zb?kyy?E*2kL;jT5Y(J*X8?@lfD6J{eh50GrB@7Rf8g zmpp8+PQprsM8j^US}(&`!jlph2A$Ci5Xar1FPjy9F@ou;$gZv-v*RE9At!>Ql& zI#X0p$pJf!<6iTr#u2XcSJ*epd_1jt+}2RgY10~m^f}endp}K+uMe(#%}c7Tm@<~X zx5jjGe2o~p z7L_CB+9`~6KYNc?GQGK}WY`>4G8g`duOkwm$+oI61h zHy2-7+ONB0%1a`LCG1XD^>|ouKG;d`3Ex1C6DpZq2oQCvVa>rGbHoXF2kaF~!*UX; zHu*b>o@mb>n+>Gh5IG0ip{j<496)>^yyz=1PJM=$iNZ6SCm*_T+(}8jMX5uX6WC+g zSQ9DL*Mk#_h>8Z}T}2^RAdf_5glcsv*1N2lG16EEu0)=^?l1d#k3Yf^Qtq6jN$p_un4Qa`kDMf4w!(rtD!fMtZ|nbn-cN^1BZC1+@d zZ2Sc}ehp6Q%#U=gA|lj6DJq=os*s`FSNWfmqgLG#)7q)N#-Xh349}J=)b-c1vyX$J z;u}`zxd|_>4D8@Ut$7z?jzn)$gBGPtXmKIFedUtAF-%fNez$xjJ1$(TqyCJ~l6Cwv z>;43qxE2sT^HwtQUE?obcF{?rQvZTcg$bA))g+i5j;mhzQM5m?#BZt0mNz+#K~zwd)NiIHUzy#W^`cnWY5+kqMs>8@)qx(C5J}dU2Q{R0sUWu#wRi#*b(! zwQe>hfG4O$<&vafkUm5h-6@9Lq_MWyGGH7h^oHCyw~TK5Mxxi>g$xD#=9m8dJ!o3v zJsvlE@Tad4eG!pd7xw{;kN^tFOyDV+#-?4MG@x#AQTJaid--_`L(^zv5MAKL#}yZ(*brk^d2Za@difwKBUR1sdaR8;}a9luWWmT z13q(CX{@HPWwqab@nA0Z;i-d3b`tu-n&gpFKxJqWTm>&Oc8)SO9YpcHx8^e!zo0OMsR*nSCViF4mvtUSJ=+{bjZVP;GKB|J`6-lJfb#5Y zY=lM8A#2sL#C=G|#N;;e2ue?4Yf@bA%j-mCqCD_<4)i(Enqw%ypQ51yQOx35gmUyZ zrM~Od`G$c0_%7Jz;?=Df7#gv8(M^0tFKoN6m zgK6V(?p4@ul+VfqKQ_==a31I=_bY$!z#UMt!0vp?X&glO8U3%iB1*A-hN%7M!UL_x zqt6ZJ+TYdszBQFmn1sWBFn@~vB1H!iugCZ>sT+C_4%lXZRAy+=PIzh!A%K*myex>R zS#ah9Fs}dnIT8?=ncyaCYj5EM;jH7MT~S|eH3KVY1TWkYX^CoRi+?kZn!O&QJPTWA z^tWlcM9*YD6F=WeAb>%_94dlC`apFnQZq<9M16-7Cxo;h!!f>VyPxcfAQ&aOhYez{ zvTCHB6Ra3VK{McLQW9O7c^J_?#yq)yL4nxt?3%QUm#|}O5^LzW0{>wB6*1Mia^e1k zbc~zb;Asmw2B#%kFm-F*0|9YZPsF(I`Nfl`Wh`%|b^D1PsmF6`%^Vodgk8Sunh{8j z5gVgan)f6B;G4sMteAwvfi<902pJAq)--8>!Ro(3m;Q&(7(%CIh#<`e!S7^KiQZ82 z|Ax}XLW7qR@ALNy(B|*!zn$iQUyjbde}wj*Q8R{_e&agDqmFC;asj`7D2gzI{`;~J zP7_432lxjLMXL!_un-&{Avn{x1c1PbX&eYlaHpkCcIYuI)DrdB{{Lq^M%+d2gFYvo z#{^KA65uEac_s`A6;aHi6@fd0mBm<&^B9UdO2*0)utILb5X{?m?|@9tAlD!)w(2jT zyGL*@Enw(CiRe||2V8wnwnOy){N>B_#A;K$A$}*Klm1$*)f;0QnvdK^!t0#DzmcA`z_bnh+2;+wwMv$_ z<4AB*SV&0+K#rzR$@N}XVJNIQ*kE(<)&pVy-C@Q0~A2ojX6 zNE4XHpmjp%weX}^#xek+LHel)XYHU`1!~x1AUJ*Ro;}Dxb|}**gJNPZJWag;HtGC` zjo~0DN6Xpmt8iLv?xC!<=*D;VpT0MkX4M#;muFpEs^7yHSh3n$!vcaEG|%DgW74X$ zKf{*|Ln5+8<;W~nlZ1_)$>jJrylK$VTR@Z{G_uWTaR<9F#WHHjpZl@)it0-bd>s5e zf1Q!}(w11h8AQ0&!KD~hc99LxM)AfqT-`l_xR;15#Q2qgCLF^_o;P2-iCpN)mKWqD zqHsjrXNHQrBP9p=Pu+*AEmNg8Gu;^!6Z*s;oppM1@PWuygnK5kDB-=EPq?Rn`a{2f z_<=a##G5y7!uS14Kh00%?~8?EAJCELCH5f4zY!mXf(JEoAk$XdpL+nn2#OlpqQo%o zX@|zg|87(??kf&YK3bgNbOa-RsH`)$O7t&rCU!C z3ZuOfRcoa91gg`aAVkvbE2$uqqR=Sx-UjP0F%?R;{r%gw^_J-8V5$*bC`RFFWz*+5<`p`hO#LPO>pg2E*%PjY+P+aD2%; z9M^Iwj+!)RdLm~vZxR68dc5q)1BKe3==W@#9YmkaH3FSkox~y9K3iS1n%2V%_l8xxv_Z<35_DZO_uMk5!|KS0!A{Tmp`OF~{s7y_@ul?fI?E@pvu7t{R! zx`iR!-OUl`noznJYC~>Z7#_jNL}Q6&e6+0VV~ajJZ7#eEK{0@kCxR0E&pb0M!EZW! zd=#YI*Z_wdLV|+sh<+KcH~wxgVmosLU!i6PVM^hIVNP&U6WUpSn;wh{qEB=no`{9V z5HY@n$A+Lh&g6lSE3^;@$3obP*>o!g>UlgPw=DTZf`5Cf+ z=XB?<0o#LSq>F$P4{DOjgR4X_^yZO!^zp9oGEfIRKkpV5Ri2ksdWdN&lzb!D4v27M zvp?(bgFC^&&+uvWr2$b;Pt^LUclPWVkHO!D1N*x8xIyZcFjW8ltcA%-&v~35F~0@E zTd`sVa`OYL8anC&U_%wV@W9PWJ;brA9u(actvGG7bqq)}_u#??zjx#Y-n2{YjoL(m zTWh%HNkKsY3T;@>Hp6QWB~4u``Q#|XWP0{CHW|8o5S}S0l+(OnAoGMeTU+|Yk4qSjF-!LIp1p`(md)Q z7;ZtF%2#epF-YtQg>@f`D{$o>st4+UjH+cVHD6`OSkk1=x8rA9Wd{&4gmLffN;Jv0E9uE zf`&TzSwE$xxL;Tp}Z8FIZQLf?Gr!~LP8N_g}n()cXFQ8U}Qeh7d zPYNI~)F{88vc4HANyw#5Oib3Yi77rKXncSn%=jazdK`isEu3_*oLnYnPF`LQ440hR|eRpv^XO5{n&MAspuDxzAVCDbs3tI@>;z71Vj~maBp@bvILolZh zQ@BJShp>WuR>x5=;oZa%ZwcC)g$C5QRD? z3tv@?l&&9=?8*bm{{RZ}=4cDO4&-nc^nEDzGr!9~DBN7a?CockMlOQ)Mp8O*X99a^)H%3%I%3&e!}Qv%`1Huf5M)rJqPlKp`RSwwh6 z{BgLBG0hr0mDWt~bZQ}UhC|FaG{yKS+?+IT$P*|GKuMRSN-C1H`k*dF`}%isRM5wDvPl)d53m z_);_bZ>q%VILEHzH~<89;t#g)$3V;K9w=N6^f#gt)!zOCh>y*z$R-3HVMwlG*NJ`% zbVx|^2|Q+-ut5*%@cD%W##cZ@$Dv!ml~))0IyAJ|lNhmt{{y|V+FI)vG||(@Wz22N z#2`OXCVrRIckqT!>0mdGNiekWx%%pUGT8G8kbMl-uUp3{X}fl-6gV63eHc4m6S{p{ z5k4sr&WjrgnB}C`3a>tm?;Y{9rXRa-|GY?rT1jt6WFE?kHM4Jk%!1&VC)*aqR0&ld zM3s|h{^A&-d%@4CLLDb=t!CpuGXt5XC;IaE>gb;ECZL^DwTw?TmE&1FB%L6oq2M8q z^<70?rYfR&TmhIkdlVl2P(UDEFX2vuTvJc5fNmj@if^*|62W03&w#p#!oD{B{i*mn z$2BS-h$Ln&K&%jEge~Qm2HbZ;FWiCrnKFd~BV@#_Z;Ojm;DK6Zug_d@uC<*Vy4ND9 zM?_$Lvxd>f&FEiL(PWASl5WjqfZ?8NW}tF?b45qT4Du9~Ai#_RdWA30HzJb|CHXI3 zR6d!-g=uq7(<+>9@PUl}{N1wJBIElnp$bH|;w;8WOW|6&DaQUulz34IPGicZc0#a@ ze7{>vY^IADI{;uWK$9V$OWm&DGXg6GTxW9#ZqR85BNVwxP3kSaVwd0EpkUF6 zT`9x}T1mJdPm1B!Ak|8%x=eJcBArlA!TtY~Hd>vl#5fzZxYdlb{7nhpJ^z~YP5ggF zUHaXz)cN{Z*(u65lIogKQ5Hb(JG&EKE8=z;wxe8xi;%eA;ykxm*eejtH8sR`=el=T zXMyqP9+Xk_g+MuIdjcxm>C9wndDesLA2}3s@giLx1?rn}WaXiRpv#x{0{~%a6i0CD zS-E}B2%3SYJ5Y)8f1mvE!|0V!ttQ&HD?C4;gA5-~)7V7@;WtaEN zXdP{~tkh3bqCmv2uI|pi_SeyxFRfZskXxTkr0zLl2yq8NN1|#-vq94wdjVpMw-?{P z4;g5l*91eJ5lKuB5=oE%{Ldj)(SXN7ZBo8sNz$RD#6+;CPn(;^(Aq-u&o+DVNVcP? zvy&@gP`W1ii-GWa%mX1fXPJgiiscCMRw(RjJ^%@ zKUG)%@zBRk1F7wVnJ=(gx1ZBo*y#f31xzebuVEe7i^8H2>Aze+0#wCxbL$>@&V5#i zmiF1cFw_(Ee}e&2g`BzexRW|e0(+1IxzQ-+E0C3;2j73+eZ(x#9@v1Q5pdyxYuNYR zUgkC}T;&sOIV|1Mp3JE^V1(+hSxc`I0R%PF_LybFG%n+iW%wlOl%!|v0(6KDw{hLj0NlA|j2mlkx)4CI zZ%Bl)_?vB3nIu}=zULhRsgC|ZhZki{w!!iqhElR}ay>$>w@N}yD21LR}d`xu2U?>y= z;SM7|jJXjb^HD+}?Bm)2FxY~E^A&*C*TclWkcUygq|lF?3I!!_#j)>kJK>g@hQj30 z5RWzo<^k|+LOXdE83^IsQjyG^R!eX`hM$k?>FIfRJe*lM>I4H73Mw4$xgpzs&o4xI zGMt2+E7){J(IW^NG}xrQQ68eEfiPy}>eZNC$wAG_7o~^sHQJ&|{JRw7PdUwKJ$pe} ziYrooegt;N_-H72PlKLUb$M7)0+~m#(7hdqz&t|xUP3_F_|7$A6Lk?9Z#`|*(JX56$uD(ygP~{T z+m=BHH$P&WA(2TLzAD)7hGynw>LBPO0UzYuzjNIB8#@vnLz@>(-V&j~hLHm-ZJ0pJ zhCm99)no6 zAn%Hm)cZ*Lj+k18;n}k%9>wjKTEo~??~kLy?+!m$w%2NFBOoloHv?o$VPyQ;cuksk zAS4L*mEk)P`Mv8Dv8`czPuNc&1nAujxnO$=;Y-|(ql0~YQc#`;hImM!UBogf|D4^D zz4!c$8=v6E0YilUkFvJ_t7>hxhEX@7pdbn&C}5#91}GsQDxx5g(xE6Kpro{ffq?>| zi*BS-32E3CASo@~-O?cNkEz@Je&_qo`LF+Qz1M!(+vQqw&G|fcj4|%oOqBzy}mE^gDSjyoQ>3n23h8X`o0?egSv!R5vT5SA8|ZC^?UZ= zO0Vy>NT6$L-~sUVpKD=oj(+M(ZLLxPr)Ogse3n2O5bjJc#fUUTb8yT=X~*B#-1|$; zO8arvJ1-dkt1GzrVSU?kWpr2QP)fS6K)PvZf2ApIZam~G5DNVDl)aq9v7l08Re zq^IZMn%IxhVM>XM3`-jigodQ#7CfbHFmU`Y|66Mto<6g9ZnJ!1TX`hH494|tpt^#P zp;!9ZVEZ8y!ofgYPzd3uvja4(%liPihwmXVED}lh`hLHFo3fF~KR7H-o&s$Fia|k# zS3UuGy;~vr(O#S-iadOGcoNjfREiy5pL(}IR-N1T5uyU}qZCM97)DomX?A_Q$i^u^aj zA3vU9v0yJ?b?^fpLCgGOv=d>mEC!XR?*>?w3+=6geS#R^%jc(fb%G%&LX{jG989xE z@T#$K!lKcmZ%1-u0wFH>jj9p~RJ9J+8~mrV4ASFa$9V?%5Tr*#@q?0OzdKCwUS2qe z%u$QQfGvbzK_BNIavegJ+OJ;?5xqh}LI5q{jerq}tQY%jFueDi!^#pco@HcS`CV;c zN02x1ek^F4P{_coix{;j(@%yPY+v~lDi`#B9``PVa(~e4EVKmli+?Y*uuJ-i9dFnk z$)+K*n~tuIn0ZK9b|AisgF5`3%G{zRFoi<@+!p`9}nswrQlVQWO&8&*V z;e4%dhOeTclZL`%70fk;LmLtQp~(prbx;W@eBnzNi)U@^x{g$W&Zduk!-3ZnM~p;Y z(7FP)AFqv}X|DmSa#hW7^KnVBr$WH^-(sI!SmKX4L^?v779#HK1ONazA*$WC>0cXT zgzDNL-&L9CYTK05aJ&any4Nmfcisat{uj>Ne)u7de{&oLvZsqlQbI7In}g_&3*45> zgF}a_cl{t-x(%Zr5h-~I4Rk6T1EYUUk*@C z_kMl&^xKy&`d~OpnDkz5FG>L_^J3T0{qd?;ttkWR9>ZSfY0!4cKKlnpWj22RiS_a0 zdWGAllKSd5LJ*r+;P&XUjWqiJixBKV&g~Lndof<4H~t^Dwc9Y|fiBwE5(4H$K^JI@)yFMZI_Z#;4Oi%GZoeP@`Pu~hZDdEP> z{*+EaIUtNqQhqY*``djiG;R@_cG6L~QR;nib8+9VecFwmJkn-+>7hpl5AK`IZ>wGz zkd@nX@czWW52nLug?9b^n*)RMV_<4c#<0-Fs7C5E)+-@p7FG~qzEK1=Z2_v?2~ zXsW$+{xBjC8Dc*i7xV8ws*(yUUWTrdFQuD#aRwDnWMpJ|I=|8`=x_lBBjs-V=RG-Y zD*aS_nFDz0)XGe)^a@&s)V#ZMqw4ugyLS0GCIezcrD6oEBKm4XLaRN96QVgvfj5(X0T=1SaLa?DqHQLbJE+LmV#9n{mY0?a7P_A!Im#cpMVW|Y z4siF_@6RTa&OFolMqa%uqfy8BpZ}zF7Zm3|zdtzh&o6(u{`1QgiGBb4cJ|+Uv5jv1 z@Ben>fBUk}6=bKK_K&_h5y->+y|8nZNl{L8wod8ae+;PT3YAomvFi)I+4lP*T;8#< zvH2?=;N;|lu#b#=pFIu0X{6ES)u?CwPly-EbN}DB;puV8-w&1S-%I`XkzU>O=g)Ti z`)wbG{rR+gf1dpR&zJ2riJl}F7!=9(%7C@XgKFOJ`^v-WxTNK?P$r|2jS@o4xM3$C zB-B*DkAnl+_usE!-*MY*`jS^UB0nk^#DmIXD_u`m3%VZfCW>cDzW@5QIR`UWWOfL= zcw20=Yv-u$-`2`0`~J_{rzGcSGVA^DCx5xw+w(QGwPV&I@5tmIWJ&#bhL!Apy}W2* zKqvgqjSD)w-QxT{d3&?-e_rwLJ^61Qt@&|DdV2c4v9VysoI}HGf4=7^yS;oCZa`;e z=V+|}VX66Nr8g;jmhr@KCvPGmaF(Fg3Y%|;SeEY!6^TT3}wuR`ztd_#a23aCHO ztkOrS>2o%4Z#>P&aLu#c`Ttnw#ENGqVELO|DJ$%oN#^qMGL9Hvz{?@JsOA213x;mW zNK13tf=ZpnHyP>g_nC+)E~2GFjR%vQ>BqZGj*#!b6QQHKK}On^Pl1Ly13)`V7NkIA!NCwoAm-k4t~B0OD`U z=g{-AlbERgxthNvBhBXj><%-9{eOP_H$=MpS=287`%OfAhVSEhfSKR^qhU7V`PqY%lL zrXsDX9l+YUq7~a}327e02+A}5*G1P@Vu^?^W9itpSA0Vl$$Xlr;L@5*fPFCT;NOx5 z5s3~RA|QFB?f&lWp)fDBUWgAJZW3E@8I|r8TS82wW#xDMPmk@i|I47DJkZ`UhsDzN zR}(-qstvN!j9y+|*R}>97#bR~&J9*0W0yEJi*(l+5kWG;N{6ehZ{ z1?=02P~h_X9ApImlQGkntxQf%9u*x8Aw@G@5H|TMlJagxDVU<37M-0AeAO7&LOe`Y zsb7!ks31<&J9dmkF@+~=EG+37{zU%5@9TOP8_VwO>}=_TJPBa8h(wFICkVHH{q5eH z#4C%~4#5oEF4(hnGZ2C4ijy7O+By9D_JtGLxt90&WA9r4M9$U#o&~RJ+o)}W`qrJTcXlA2xO_y&v;}0uObHvvDWIDe2SvNP zZy)Rx2O)slda_j>9U1Xbs{Q!FU_}j0Dk7fFs-QO;>a{Ehjzr!j+O|0Xcs_6l?{lc5?e2x%Lrk z9ehNh>?R79O}3&fFmVgqX*2r$=iD)~fOts1ov)S+&%QC23+Edk)TA*!z?@&pjQ^GH%Af6vQ( zXYcmfqBZi@3FDrDNL)s>GJL zGfDCohyQ`a+e##lc83WD-Fw%_NanP2YAaH|svpO=ByqXSUaZFFPoKsr#dv)D;3>XJ z93zD6wK(|3lSFef?v(vZ>|-qPU`uJAH($`~y;uB5^(n{jz?##qki_RMd zQ*`+3=T`{5Ta$KI{+w$ut+WG66P(R~a+cfu@ZrOO(}(u$`;c>v*aPGS#~%)iIA2ss zDa#$lr1i;m+aA&R*6GfNGyxxN`~3}^eohtZIxVuXv$J<}$HvA!AgvRWn_+<}4%P=5 zD`kSow=AjGkwqyX!r*jdi1shNb9?@LHxyg|_0Z`P=MOV7F1FcpU|*xoXF!C2XM-Ky z*R){qCizn^oB>$EXo86j8rR?9yyl1=)u;<+nM0P{gTrspVIRT7yg?bjGL+kLR$A&~ zw{(_A_mf8_ZvppwaWt(8M#ykeJty0k;6{yBH~uWaWkOoHhE+GyV_LWp zU5bYXcg^oj9tmgreXRbO-GQ*g_8ir3*eEd*r|+xn!{*7w zd-38$L{=y2CZZ2|%X{{OM<6hbA|TK^dmr|k`eFxfGq66U&FOLL$VhrY3bq#&q-_@_ zuQ9vi{rpk3Rr=lfU{0rN*b5I8X%Rb=t(AA?0!?x*enPZl#9awuMG(Vw z<{x+h;T?$UInp=#um0PainHB;p>cP1MNQwW2`#u`WQ>3;FFa@#t$4;AjQQuVyIk_} z1RevlVqoD_cOd|5WMRPxi{Rin4xmSG&O^3HR!Ku{hwp-K)L-M{=NJ3wI{=3h$VPM* zk&x+Qn(-`po*EWaEW@dG3u43gxg)^_lTlG zmkH_!A_dgAkUPCD)+V^dV=z-C0_b#6ON-|6ZS?e@t@~d^njQd32{;D}DCl@@n-~O! zNY8|KC;2_6_AJT~V^%2?^)i}j3 z`1H|DUU*dl&~l@};bCEnqp;aW zPu@PEdHo4c1}7L2ArPfTCuD%tpg&^$*;O@+S!!h`)Wrcd6#|V~Z?w~aqtC%Le>nj% z`Ruu7W1_s`eF`ZiZo%qQF)Nm9e|J4t4WR;&rx3`RpWc7Tl?xdWjEAeIqIcCOJz)q+eQmQ;PI7` z0!dsQg@$oA0B=kMnstBPOsp_pmPUjtfVW7xMl9Dt=c;C&gW7bQ^Cgbu1S26cH{^hi zXJf~?RZ{oplR1<`z>x=dH@C`JUU-DE;n`V$>si$6;h5i8zI@uy2Aa8a2RDfhDf`8-#pKx(V2> z>9E*h@9XB1jz|H-ZI*rz`cNRm%PTx_40Rf6ZITzfCCX2Omy5o+|#$64|Kjq*>C-g{P1PWlINY2=NNUqbY@SXF40pgJ%3YRvCY6$ z_sqvViBrHf3y}1I&Ykoq<`Q4~IZYXG=Iq(6()Z7tdw;Uy-ZZjvhi%W+k$p{A#$|67 zK;NQl(m+3oQ3uZ=?S>aQ;Q7 z+jV@NjMS6OBLZ5&Io{}|O3n*)Qn20&%OWgIfo8ou1oHd`>dZs?x!K$-GB1320JWR# zkFSTF7yEpnMjBLg!14{O*vZ7Cftnm!8prHCJNymrg`d4t`VVmI;!kFqR&&T_k@(#W z3bp9jq6R&^3A3j=e;Qr(U2G3g39jKLqIi{%R*TOfdI$V;t{;X@3&r2#jZqh?tNwJr zZed{5bscBDB{)7Y{=v=u1+W;tHR?JC`}h#nmuOUWlMV$b{00?WoYB`B6X0DCD=@#c z$xk$(6;0$z|A1DVtjKNe&tuC}*qLE9l1Oy!I31pmbnI6Pg)3T+0>hr<1vV^j`YJ%- zh6{KKTcjEPpg2FVl$cah1hI~hp#AkSP)Z|ws2#u@Az+cC?E1ETn}2;bvehnxKPauB zH;atAM5-qLg9SuEdN3YnS`Y`dXG%)StP$jJ8t-rWJ0^oSgpnQd{1C;wT#Xk$OBs4H^H%HeOcNx#$Z}q=MV6zy>O630EIL&|i z_yM;62f4fsu*77T#VRB&%0asCRVDVIGL(F$^D;? zUHlEGyC}N;!s7R*4F2&LQPY4v5g{AO5fra~QOz#TY zyznM3Q(nB-Vm!F#qMTf2%h>1jr#I`dQsbSzobKwZZ8KIsK;^*gwasGe+BeGiz9TiZY6}Pms0B6N3>2?v3f;|Ccqkd)!JssyZ z1#YhkiQDx)QH$s-<<%P~V# z@Jt8>fu^gcO-Npl0`JAR0VbKW*5m6!0MCq3uhEzJe^*psyut#VBqk z1eI9Rm^IF6XM5Pt^kDI(GpZK_1qE8_W<~|dMmAoQt(aaS=2HFp7iplu&{>tH6-0FWLl%!w{Nd34)>a_ zKQCa{PmT(UczRM0dG7)_^uW;H*5BB!= zM?X?XOQ6+vMJaOO;>Dw6^5@wD(F3*<1tuUyg!2`II20ImRX>QJGts_+)&`Ib+@XSi zo6H5^?I5D~Kv#tFxPBD+&a^^)%xVBrjo<4&ijap=mY6eUH~f_)OSgR4L$ph$y#~iD zY4e`Vw5f3rhK|T`7+y53bjOSXS|0RXGZpIU;my5^Lu93Y=^GJcYd;6RITKFZ2@TaX zNkiToB726%w*L!?0Hr4vQyXu$ysy9#q{)2a_)8@>?9*K?%2cfxo8fiVx66F21(TpRj+l`Am~uw zK?XhvRGpuNkuh!xH&D6<3}qeWN{WwXzVz~%8j1-uvd1nPDEEKuNQ+XvhG=+>dhFOJ zunKhRmXk9>i6rOj=+E73sFiZ$%F&U z90O5r-0LO9Qf`pI43nwkViO#=W4Bdx4m;W(#0Rby)xM63knDWJIX-#!m zJHyHQ91{4**tY^MB#e`QQAw`z2MGmHB7e0>CbU#UQ6{)*Yt$;NDtzeB`JRAR+2m2S z4HcB$xsJ9(4ShT0-TXcu&6zhf=Z$l^ONg56i7R9}m?j&Aa1{90E~)qh zl+7bqm1k*0Bfm|5Jsg@IZ5%864)`c)9;mPGc7J|`cmadHSe2vzoqPZZAj@vcleNCt zc6t>oYqJ$K)f}H~{^MWF(-+MY@pBFDrc%pWz+S|4^0-KGecshOIssU5!Bs2ln$E1~+Y=@$b54H`I%$-LM`Ry!%e-$r z7vrj!lHAH-V#=Og12YrS2muTe^djfF!`F$Ni*6%%xJ?-qP} zhoT@52BlDIZv`K=W=;7QvGR)9;nx0iCh?z)!V#@ElKXNaNZF4aS zuULU((a{KUS4@eo0U@20)C1BF9EVZF`Zg+1%S2^ypy+@FcZ^MGDvcK`kHh^DjGU)ld{|4bF6`fa@9N5!1hZ6uRE>ewr~(D@MI)olzb4*5LlNU}W7U{$a+XCj3o zBHrS{!i|*dAEjId<$mGXw9F>3Snhr;Cl>eR4lKQf6H<6f-1jENL}T_y^3&)%WjgOx z9l(5u9*H9!m;;TQ6~4FdR`{l9ARElPn~r{QW)ik>JJkpd>Df+cdDIXG=h=QzP8KIHQE|S;BgbNq@1Bv_)!Eb2-B~1e=TG$h{Ql_)60ULpQ z>KiN-4;?aM)$R%_!pIwfPLQguBXo-y__pf(qQ3QYiWaAIxjRmH--p+LibQy3<~)#X z6InP|xfa}-yXhXK7%aXS zXV{b)_247=*h|lE!7Sg0FiinzAuMi|_BPp`_vyld?MS)AnEx%-&eSqqB?CGpPIf?A zT?qYj>ygovb_CP()Ofu7SOJzLSw8n{t9-<-z)i;cQi{dyU>TjGRO!@(OLIe|+%I~x zKI&zUr($mbv954<)^r8FMp#B^MYC<4XqN~OJB`A1AT=QSYt2oTEq0qKyX6#pJ0|(CNbFnzu0atd|uN>ZI|dVZ-Uv1Plr6C;X5hD3e&;Cu|R6Fn(E6 z$T5ASN8BjBJY8K~#Y4;Z>S?tHU`x302}4;sEChI<#CT4CX^@rZ0_&VUO^ibfa5w5W zj9~x;gn>I?_!RA270s(S2@@No;tnk&uS`y>ivyIb8T&Ub{^F9^bKuL3Uc;zRT`G@Q zmmCEBhoL*T#0T*aB6GxeLJ4G9B^q;mwRyt{4+HXo=}M92+AD9P0yIssC65M0ClKgI zvt$FyBE6~>F=mKa|1ma1`*SJ7Qd=o7#?t4j8^4O)D`l<`gyI6WH<+*~50P;*>)R*= z0FgU)KRaxZcW4k1$LcCATfmEX~`9XIMafg~P>YV^*1g2l_>UINU~ATLwy z^g0^oD6xf>8m_g;X&0=mIwXY&r&wu0PEioSJ`aZ@Q(M~w@KZqy`h35KGgOwrsUd1s z`!ezf^YF;-06xN?f04k2QJs0`GX+sJ*DallK1qUvI@@JtLYAsNVs`6vUOPQ4nOl*a z-!SgO36Dp~!2g!i>fBui8~ zL#dL^8|fu@b@J5WBFuxX#)io|tZ$$%@Tc(;Flkj2In#W=?b)+;P-Ug)Tc@%_C(_&< zpzHH)7KQ7GtMvugt0vN4l$Nfc$e%u1TDpuvDv5@ei`ZS9_6jVd{p;mJz;9k#tELZx zg>0kS`4^G=vlfPSEr8JTmb(Ar*x0(jk212dZGBom@s`G|Uo#jcmu z^)4SISr{BfEE+}`{l(DumUg^q3K4xq3M89U?;+daqn+LKiP@~7iO>;m0?;Q#T9~FgzYcg5&Q6Fbbs^=UKynt(bcFX7VQ1xq*y|3JGM@EY4g9;mj50e7Mfs*) z8XCU3hlZzGLTrTT##jl5-Q9L-$>ISLjggy}T`=pCu*<;hNGR1S^{*tVO#$5h)*QSX ztjSAD^j4kS0Ci&T87EG!dw$-o3E@XSICs9uAT%FEA|ZOPe(K&+U@J{ZJ*P^r-{x97 zBL6BCqz(biMVx2}?A6`;)LT4OBT6a4cN%dOHh{Mgz9<{%ZW?~haZ}Nyf!{~m7KJz; z0U4hIb2|=SRyOmQsHLet%4QYZLB4}`!BqmIT#RjMn8!GDDL9G^e29MJAK-zH6u z0y^@vlIE2a)tZ5y&0*~F38s5guOu9Hqob!APH;UFfdDGo6p<4@7MD1Qd9()AF!U!d zB^gE`UdQKp_*m%SrHF(M?e@cwL5EeSlc~`pvp-KPcAXY`zWDms(=y)N@}+kL56^?+zp;m*`UbDZ)2Aio;gs3H-Swlin^Icp&rHj1 zmYniQJ)(aPZEwA&unIxf^;^>?{gB}Dt+ROs#T%zdtsBfQLL2ML5okkzjDc=1!eA0m zri^g}`s3ua=*W}eR*%NEpi)roIHsG}dt0hSw&fbwd6@ZQ?DK?2hiShx_9wi=*6Ql& zP~xvF^mrN>KtB%fx0pOvJ=`ZjUnnKKAd6!^pI7Z>9t6yWF^P3#41RO`Gv;eRY=>hfL#K_xFpca`^iH}6>39Z#YJAt}> ztTj6gsCy#} zgxH;L>HxzC2tgdm4t=wRY_igi#~2zh>n)+_F&0!Y2UYt5-izXKNO=Vll_k zAf-1J1`!$&qRxF(2+kW#8(g;pmqpvEC{_Y=?oCO$$C?g5%#Qt1Tx_fc75Msw6c|*j zmCvL!FIC&g+%G@L`ps0uc`IesQ2HQPC##+ZqGpU_oxKACHi$4xT57+xt70Tc-q7p3 zj^k{7F{^WH(C(4+0)Pe_;sJ28d-W7_K);vf?0B0d^EV6NjXe_+DUla>0PLoLcMouc zfC09R$_K!Dwx=7uraz-^C^7Usv%^UQb4vmOxG{bDSWi0r2ga5Zrj3}V3vMcLg!kWp zF?WD8&U_C=PsdHAR71fLO`5D~+7!2@b zNx|6H$0ynsP261E!vbZZG|%MKhC`&0mP}(-j@M!ohM56bXzuF-MNE46@~ZY1%r-mo zOyT~j(j|QUHvIiC$P#SH*h__XXPcHJHCx8k%l{l68A+&6Ouvv>acd8`G1PlU!9QmE-dT(6b9DK4!i~-fsm2{^ZXn^O zzn!H~=i}fA1QWH}G!OhD1-WZ>TWhgVQkF_>j)7kPve)zD?8-*Rq0!51x0ku2ah&r` z`sI_kQ$@Q`OogW_eC>g{>17M^26SU6x+41sc@pY$f8Csc5Qm_3QAJ4@N7+> zGzLax5p+A(KB6QMki0gCrs2|9(D|MP_f3CTIbP<0r}eR%lAcy0C`OFl%>Dz%G-q88 z6^5NHgLJs%0(s`@XDmv@L_69;ge=cg;v0F0D3+%&a!7W*)w2r9oNwah0ifL<^I@b`hBg7 zc;-^)&l}x9H7ZG!ixU2p^ikJr087=-T$#67H4=wdQk*subJ8i3n^45b*S%lX>8+y7CNx-#(y5@2vpCN~M3 zun|yU`q!*ckKkCd5qo>X?;@7KaPU?&CFqjfj0I*O=CMZLaWws_e&|WHueJ(#G z|L^gI!pT{ofW9!=zD;f{TjYzFVW$yVhNN&(vinl8^uV$x90|dj0hL5t5rjVyTp9|F zuMUW>se@X^gB=HymtP!gLuJ)YIx@{e1>kuR!UB(T<|pni@*mTsZO)w0S8cfR-mrmHmtP7lQhqIJGTNjW?59;ilt#5D9@Ld8js z2pQ)@Y$XQQQT`LNAV80SMfL=Z_w~VUd;jZN9xD1YBK0k{lPNs6w%&mIdY^}b<12{? znEELSW_F4H3=inu&#e_%HkRTFDyP)9lI#YQfw?*X6CWsVS9|4xpJVR!dl7N zRN0#MG~;$tjn*+bT26L;wsX&^w`}1jlRpCZI|m>LWF)rOJZehB^MZf|R#-)Q1L6KW zEUzC<9n7hA5Bb`mw7A4bKoy;HK)e$jGtZJ^Upro_H9AzCN9{NeZnT&Vt@ zc~Rn6KioKh6*S_BKy$3Jp{P~zo`JMB7Im2l6~u1PzJBYPN>5LRE{c^k6oaA0OQ_p- z^6A{pY!M(FK~)5a9m?i7-)bq>FNO(HjS8b7z_@2YwIn@jo`ztx5`Rsg8)HUgJellj zT8OaVFHpX*u(GBwIl4obBX{}oI0Ar=2+)#@#7dNaM019?@Z{#bg{~)rZUL|*4wg3@ zBW87RVx{Xdjpw)!2p7J#wP`1WG2NlyNx*z&DP#TZIqE^S4Ro&_oN=V6E&Ps_)t`!s zm-n)1f?lBv>UBS{Hv)CVnaA1h>ZrNvb#-?Wl?N$aQ)cAsFt$*>--9#bEg+QS?;<_O zT)aqRpIL8$;DPk;6NEziD?pc$a6$p_N4jm>jsVC(t5u5YqJpN-ekI|EG3Yk1nOUZW{VbAZ2o2eZyrchlksTT&LIqG4(*wk!E{ct*aWbaP{lAp&;v( zpdgNTS|i#zxR*`DNSp#F4KZd`kB7+2VlpduAWL^lAKL=jQMsQQ1J2!9m?`EN7E~<> z1@jB+aU_0WYk;gYCQYed;!k1b7aWDIta9KIcLSZ{jghB4&=Emt@W%71u{F-53Gs<2 z1=`uv9QSP!`LUYLduTH9O7wXwWgQ-k&>^sOUt90YO60Pk{H{v?ZmbYxtN<8_9`ZQ;4_&MV_s5asf)K9ot(<{GGCq~Uso@wmBMc+yyo%jfRIJG>Y z6dP4D&>RXM1c}TBnGxgsfP9*W4N(EH8#B1?Xc|XkG@)2rt>x7o5TmL{+;R5%~3K8Y|lzN@i=)$B02$* zk#F3{f+K!W=hT|S7MR{>QuhTHGQevEz8-LEzbdREqE>D*TQ!=%?)nZyi77WGn~hVh z7{K}B`-czGr_<8{7tf1RQq(g_I^f}?H%JPF5l4nLA>MICSwSzC_CTS}4-$0&4@bQu zl65gXwb8>{tlExc?dvwsUBq-Il1x(VRlZ$3yeCemJU@YmBs?0kVfT`4y;O+z(Y}75 z$HK!W;IiWQic|9^s?EDvV~CN&(I)~u2BD78a(AMx0+P6LBxaY4!+K#(e?LD#j6|Y^ z;*_XmJukaQ)IMD-%=@B%VNEYMn>w!x`ql)+_T&dDth(2beANnu%+3IO=Ui6Gi^`|s z%Bz)e>*CjTRH2N^<~K*-4npFoO1`}n^F(>;9Uc=z9HVJyL#qw)cj5`pbJz!>W1=>T z@5ByP?P!PQnOV5LMxYPavnD)+1acpoS@F|XBD`jyT67yuUkkf^S&Bb{&NWH+V4Ohx zyZu(&W!%Ft*2fboVw*CCpm&d)Onf7ppf;$&Y@9O)`xI9jAN$ zedOHd#HT8`S5)+F-8p(^jJuF~Z0?qpc8vy?ZT+gJ*de;K_)G4_W2D`~Y*#ql+dw4w zY*kY+8-g6*?`#V(W3|NqYxdw;5Y>JYc|gJ}#5B%*)y8gf@A-JmnZno}rU&W8LHb1{ zB_)7UA*(lt37P_tSXcS(hXCBt^k<@M!yH~M;^ka}ro_#4ZG9`8CW`eUu|C#D;y62W@_sGa&_9g;Zr(7WALbm-~ z_@wwrV&BZZi!Hw#`lF#u2w5)ro3z7vAaM$jQ5p%f~q zLBA-ED#Mhk076xiklCSLQiS#h@nGg~opgh8;wb`HIp#6Vn(?c)5BP+dFeOZ>c$2rd z(cyDatn}{s6YuBFV?Z;?%Q!jvJkKrF4}vVaq9j3)oi+?MAN@qQP7H-pl7u+ZYC~K+ z1ULuFEhgxCE^MdRvMY?%)ers~V&>hCtU1%497h9u=i;3x0&Cxa!`&=fUjXZnI`9Ns zwl$_Bq&K9^Uqb~he6$0j@hQT+p;HihWuTl8GSI3@%m$#Cx(>KaQ3k|x_aU^(1 zJKtSJzD^IGef2*4v2cL{=4lNhiime4&stloa=xVgOFdzhoL-pRW;1eO85u__)-J;) z7p{I|`Z!F4@ZALH3_U^P_$pXF$oJ#4?=jal6y#DH8`Jt5lrM)!Ek%c)9f5yBb#gYQ zw$_Unv#K@~Nu59Uz~*wNF{hG$MkO==mEeUZEvmtLcj@sq1+gE_A{0R3<0!FvA{C&-TvMHkjm>*K|Up>fK zr=%4{`X*??8DY-c`}V<^5s6C;l3S!J>O8h{jYRaINNdFiP(yt&&8bP3G?@m;0t9-y zfnXc4<3OZZhyLBL;j&et*WMXtq)MxT{S-UOI<{TpJy~mEj{#?;TA%mj(VW95jb_>lCIM-O?||;Eyj?)x!EvqCg4VvKIYWnf zzR%Wm&0`$FP+aG}t93(uem*gld7!=_Pvt-ZeFdjduYs&Trm`@g`HY@{m~I0SAxhvI8F4K%{ccp>`Ef-m>Jcvvx)NX^#&E9^-WZo>0ff0>hS&@fl25jzCB8|kYIr(lonG~(=M7WiBx){x zSKsTba2N`jH^rcXf_t|NTTDY#X_0x#X8kxoCBu=^bszUkY)z_&3U^{|UT79<3XO{p zhB%fR8#t|%%wP8={$q2s*@BMiBnPs7h99l+Fs)s63gi5uF#GY)Gmy&WPLKfNrzK zycnHxLyE3$ao5a~DF7(dQj^478p`!nlj^r{Z)dK)w=@)UB}{TKHpE)!uAsb7Cjj-B z;H_hs?0w3Co~M31jUId(k%Pc0rgXKzT^1&!bUEr@qx%Akli!WMj;%BZHHO{`b{lo~ z<@9|^DY&l0-_Vvz>LE4TgAQ}74R?9+)ME4@lj@)yS|sDwPJqUs*-%i9KcYMWU{dMM z69UWq(2b~xGidn*t+NM? zJ}{*uvMHH?a6?$!! z@>2UV?vg(Ra_I>C2?G~kkwZAve&>dl`GwT0Nku(8u%uJ08-=92V28H<9U>$5$skV6N=$G; zd6PsawvSQN4va(AC;j&WCtdTnRsx4$3<)l^ecle$OX#q;O2 ztir~b27n2O0U$&kkc@B^PScu+SBu|!cw!)n&h^YvtwGz$w}_4hOx(>KYAfC+{Kqu_ zV990!Vnx`B*>o&3JLt*5v`cl;`h|I!n;egLIBPeV&Ibhq#EQuTZENMVS1kb#CgJKI7;YWhEtq!#Cy&0a;-7$Da3aW^`24SVy5aFE3%W%h2yt zN){ye=56Pz*RQ?XN!d@hht5iM9R2k1qu@rR#}F6)!p!LD9+NZ7T)+5_Uj>6hKD^NM z^di>DA5>44<;rztP1jTeZs+)9e`SzI`};eZm|mivrl0%4k7GVTsE}jmg2IQpjAs* z8I08`_u@FS&ViTnc3c24-o1MVwn$D|+QQP3YU|dmI1N%6V;kIB_FFpFPI&MySuwz^f+k(!5A7JPY&N+18ExYLaeGoLTUnT zn-+)Hk+^w9H%jlrZ3cpP5pKBK?-TnmUim8-`*bSX#XnepAD-~ZlbO$tvGIE>k5dRk zLSG~Z$?h$`D9GZ@E?&KG;b~|nYn8x8vb|D7gbRDInTAFj2m{7nvNtlaZ^~EaPlOLa z_IHjgTdm(ZDVz8O1>H_-qNBAiNB=;skR`H83|wynHaR~t(~4Vs?_ORi*@nHl^95!$ zHet4^o!j?jd~)lzU)th8(zesqb6KRUNdAY4o!^JjWLAasr9~Yh&r3@BPj{jcm%DJ` zNYn-bYIZrs!Ox$LS{Se~;Sc)!`SVmV8ylMqe`Cyw1gsCOZ@v@+tExL$Nt?+As%&;& z_E^5Qrt9TAa7;FS!HGY;TK~$uip7%-JztIPhp0Ycm}&YJNL`e{SlCtkgm0oX_5lZV zX-|QUb9Z>9It}xz({h!G?1R->vC%y(92N#nP1eKN6Y~@P--_sVe6jln>Ecj<8!V%s z*;VwyvgQt$bAhfbWTkZt;S(v`5pgFEO3p+MApNtbCW>D$Ua#CubnEgecJ}rf4$6cw zOj0mo+gtc3a0nk}{mW(4XW|9p!s>gPjVA{!B};}L)v5Ng4p06l+Q6qfHe%NX^Z-`eb|Panb}t^P9}Asv;;z{+UnD8Qz~G(Tk){4Mjc zk$utJ)8k1-OT~wyMCaHFbNOzn$Zy00l3uBZx3oxA{PCCiOmqYW{(zL}_Xs?{CTdsGqN+7qt zX)^F5zAydRW9{8@%@59oZZS^pO;K`BSTJ(DGT9JuAZEK_=n(DrXqSK5(1zsrg^xTL z)~s?RtxumU}=Q*3Dv*cHxdEhY3T zV)xW~(8rv1h3j?0VAzD^e!YHc#bF9Sr&&4bbiGZollGjudC!Ap7q?ofEq8g-c zYfPyC6c?ZQcD7;FU~Udv0N$Kv+J@>OaKizIt@ZU+?wl~JId{jX9Zm)Yuwg_&Xm|JS z4D@0aKQrUc|AXNb!qbRQmq2`J~ofj*9K_ zPVcO~nW;nDJdvLyB^NAPRw8IIJi4^uU59vGubWxn6N7O@^)nV46PatVn$^p`#Q_`? zqigN&3lE3LDp9M6)H&2E@vP*v9$K?Fr_kA59LV)|&iw0O$~~b4LR!`B`Hfc;czt?O zQ)eveLu!Xxl2n!JECyDlsvM`r{onQ6)f@gP6|l7+r-n+L<*D1+vIb?}vk7h?VJou@ zQMOf;Z82)HJKl7^*3~u}46nRWm@}U`aUv*a%|LlG zYUC*Bd&ivOWHtYHdTtPr0I~&xckmU7zF_dCE0B?S@-z z!`Q6%L8rpSUJ{#B>fQ5!{6A(oG&`#fOl9Wh&W^voM#Xx^$1ljbn4%@=j)+ZK{>`_U zZgRmF?Hs<+%Kmh!y*O*ur^I7GZ5p|2-t*H`Wd@`eN{P{40R0J=Nhy6Ex}^5IwXzWQ zHp8B?*nPLJe$rvt06M70yVq^lNX(66G@#)#8ZbV!x1G>>vI5tDlmh}@LwaX~vw&j| z^%5W~@Y5n%=9{L@0H!JbBBC(HaKE@hr1-wM?lW|M0BDKnE+XQgyu+wnJ;d{U3nSn5 z!~X-*o$^4A0NDCb{hoOtBh&i1{dKL}XEv_kng#zfL&x^T+9lJN=$y_e)_sM~L1sx%a0yp|o+SuRk_GNzFvX;o-EOk%Z=?PERB zk~DNSIqvRs-v{R1DucDh?oR1ehm7-fNjRt2=1Yt95}S_F;m+P(YuN;E%M;yQ zT?%nE9R@E{5>yEDXh2EmYgAuix?I%tE@V?e$ed|{JUn;Ml+%bUT!ov5Fy_$k5Fx&* zupfeo5|VEPxVr-8)sK2&0XT#Z69Hyn1S*Vi1p&6=Im{glV@_2u4X+b9b?PS}ZW<*( zPl%0ZnV5*g^#4V-V zy<68t)t9B>4F6R9A_a|9XuUI&>B(zv(iXx*3JQ7xn6exE$!Pv@9p5AHC(@@ zZf`c(kv#_KX_@cZKu{_6z5No999ZBI{v5>2uy&A_7r_^fj07(F$Qco$E$C9cLqkK?nR(^pST8p1mb1Pk z|KU@`iG=`ZY*$a`{9Nl;o2VboQrfvinbtQIx6@jlaG<)fAwOPavi!%>cJ;#0lAk@! zV(mxYT181Er}U2uF$w=r9k|PNwA@_XpQqhP`csT)a+h9OMsnX;XL%Ou38}XBoQOlo zEvzl?u90V?>8W0l&n|2+)I8Z4V$3z4n;Ib`o^IYR-aL9k>xUHA0g8gcJ8PfwLSz%u z$Lsu^c||>Bmkc5$^g|ECtX@1LcR2D;bmSGz3ICo^frt5XYk~en2Y-q>WSmYpP%ZRx z=e<)}G1MlLOD;K7nddvEr#v2CE6CS;)cgG=Tnx608lM7(_X)=m4kQ5CDVmzx!NrB9 zE^=6QJg9MR%b0bP?fCe((EBy0ii~^Vf}?nM;Ug7aR@RODpiHzdD(5+tPL&pfVfd;| z@bcBVJdEoSa}Ox`>v7VI<*GRWz>~SWikVO)HWD;uvR*`VCQSDbTOn}tm+~*zDh8$# z`Fsq)9HAB_P`5>uY6N*t?-sF6oUItc2)@6NWi-e3q!P3;n9SSaQZw+(q`pI!<>**r z$)jHWK9_mNoZ6PQ4DEa}QySlqVTu>aU4O?N=WviaXnjw=_Eq8KzVByh;|pSTD0OIB z^B)z`7LYAU%;5E`7%gwQE6%5CquMg#?Pc!q{07_SD#x+a?+cOX_k3snANJln9P4&% z8@?LUo#rw`#9fgo%8*$SDMOh>h7vMnN*OXVs5_-3QZmo8GK3;cW>LmOhD;$uD1>)E zFL$l=t#>`o^S$5uJpX;ywzh4#<(huK^E}Su*pGeRkA~^4Th3`RKcDb?&t6;SB`}dR zI~8*Bbo%2RPa8G~4rL(wdOKg3W<6P~UmUhs``*`YFD|JcQfedzagXbAr(@q`OXFS) zelLxWWBl|e|J?b99%BMmd4J>`tJ$l5_P(NIj$DCftI1xLu-J)d$DzHQmQ9t5jem4{ z$6H)#7j~_@%DdHR5Ewn9?_`eWT;!HkcHR?q%%WkJCSXpu02?Q~nX? zh6l*;9)agU8zH^*`0n?f*pm9h+-!|8d~k)`B_-m`-o*7-^*66P(?MpMPA3iwe~p;` z*#|UjHzSoGM!nNo=($#p?W(v~cP<(CSO%H_K=3tbz1YAIeZ5DPM(mLU+;OCWZ4qUD zU&LDHZUwe}kB7#gE#qk;0Hgu#r7lvN&Q9C>bxPXrfY;Le|}CbIoY@;!-)Tz(2-D^J(@3?JQ`{{YlR{Jz|!>CZ?qriHC_vP&1{5jP)MID}~rzy6LgGX(9Bi5xIc&IzV z@aGVx&6&2+U2CiJujH(Bw|&v+xb3d-{DGs=Xf zIjlCHwL1D|<^E7Wgs@0?3g-TC2s?ediFgfw2=^HjZY}61W@RT`QaSsy5Jx4t-!5oM zh{TjX6PYvo3a~k)@$}Q7J&*~aqqIq}JGgKbY6UaoK%yVd)B)=LR4^=-g~+)U#;yRe z^iRvmHhNh?ujtE&m!I)E7H``E!B}EM@6W8D(rtC{&C_PyCIJ8oyAB_m?4RBs0$Xqdg}!$o&z2rgRD_7CMMh@++?`Z3 zh5C0aSN(!{ZGlo5Zcx2|jXDB>0N27f&ue6oRC9WantM>!JKh6-WKv!8a2d0_s`~45V7eyow?YADsAhwz8+%g;Qkbe$^@Wr)Cku zy;i(mGWi64+DAGB6=giqzUT645CE@~%ebFNYH)z2kVajdhm^rLTlt{jbe}ml#ykG{ zZ7n;$8MtQO>AHL9Q03bv)(`qxm}bvro1K^bW*jVZst(%URzoMF`>;)b!ZyWuc2MId zF|RzP>DB;6@r=mJX3PiZS5xb)x!wAq$sq;>PtT(?O;*A7r7^-CTcB$qzKzDYu>5Ef z*ZyTz>Xp>6BO&(w%j51wv=j8aKL}+T9wF_ZltUF03%vXsar^*nZo*JmVD+Y59ngwm zi1+lv_1hxces(6z&u9Vs9j^tiP?+dr0n8E>3}UYpi*XGSAl|~*UFlXi1JZ62O!h51 zi++w>cNR?qa(CFc7If73M#OeVDa4H1i|l;oL6E})o{`?R+%#zEPMF-aJ4foIyNMZA z_jf!4Z|p);kmT9nDBdG-p0vKZ=+9T+&ks}6yV~f;y+cH1q zjAQxo(poF^6+QauKYWCHM{%BXQo@``at4c*$@eANXEe8o^__`l*Lx6GaKz}EZ|(Ch z+)*Nhe^h2>Cw7Xue3(RuC9^*GymQ#txlemOaj--Z%BoVCi?2 zkJitgr487i)Mkc*?*51Dp4%IgUerloPw+)-%g>1zVYU0nqQbr4KihF0GW2#-m*8W0 zw%F!=L|Y9XU+d;1eA0LxW*NcOpcWT3BfmG~%*n~&W?RFrfauvg5R{RU)}G-w4IB-w$Nz(gwk(0YP zw$IrUOgcC1LXYo5qMS#jI*9(x_*nsM;NAgVpyqvpqo6(R6Wy~~;^%uqY3quP`(i+perEow`7aYKBmAWAwE zTd2xI9C74>R4w@p6tru;lflYKEWGSZc#?K0edi{2smRY){l zZF~DXM7gdYRi}l_j1(1tD#5I-k<`ZdI#i7<_0Gne5LaWjsv@?5q}+6|15qydPwO+f zPkMh_u;6_@)c{6uU*4z37@t6>F8fYQZeDyqUf#lGqCraT|Y{dFE5MM|5)f_Y)Hk4FKKPmEVhwT9ySvqQwh-K^%osVio; z1J}&jdi(2ryg^;Fs~1tYco&=>LXE*6abD)NeoeKtV^(`TSa(Xyr=jLU$M8%wrgFll zK6w;Po{}l{GU(D;s}K76`i2Oa`EGql4{`&z@mZM6xEIw6+Tkoh<|@6)9JtCc1WoC6 zS$rJw{A1Y`qiACs-3u$%a4`qDeSL_)eqD#&a59GS&``Lpk9mc!Bq?<0b+~YIU(0G4 z0v*N+oH$^^jmg^SM@lCrCZHLu0n_R$j`GstV(#5PYrN*NTt-bW00*qULg?SH7!NBc zK_A!j*ZOT*cME+0@e-O78q8!oC~Rm&z-7igg25i>PC8MYpjuCYo-ePc$os_|VGYH$ zw$H7`;>u>!d*9KU%yx?|7{hkZy42`L=M*Db2U~nr8JDk-z3`Y0WL+?~>G-Lk^&QdV z$bCVDE>w8xd;0qO@AvF`b)S0?Xhf_~<(I&26@q7IG`#%wj+Je*GDUS*GP-U<&z0&H z8uLl4z>?RmNup}i9sl68Mr@+}S0Y{2OhAv$V-hzb(IZ9Ub`QS1U0C$JDdGJOE;+Os z?uPr-z%>IDmIDQFpxcsbch<>CbA|}HKqX8sfpq~~Fu1naxU#K&`uv~lwU5K$^lXyt zyx{z>Fyp`pPLM}6e;bC(1qB4uf{}n}h+MIC;a4D>EAraM<_53U^Eepc=Fd0tXUGS0JO-X~V)rm&Z+%8HMZ{(EzpwQ5< zu@w;;KqJ3v*QRhKR`dU{PmagJ z(LDAa&#CYG3>fiFSniWv0mXh_0koiI{9N+=FUr4?bx5JaeSnPR2_{QHQ3HeqB;v=fRvQ><=xNSfN6Ms+}ao+K)kx1%K;Ei0~ohdDs!4 z>xFS8Qm3j}F!SkDB^o@_P|W9i21kUrK|kp?ot%TOvKOe9AxF~<@`+$Ud&+2%3XrBmL+jxqacBoY4E!rx@hp6BV&AGKyL^@~LKr*Uq74#;P}@ zL3Go3K|T=-B*7hkZE#6*Jp7fYGTY6i--4lmJ=K7w4OP+x-W?H)p*I8WUbVhI{Bi>W zN#}8+h#gpMfYspS5&9yO99Jrt zPvb=o0(x3M?F^(+>DP#S*Fo9K zrxzk6{MRzjd~gO`8!4y_WOYO}$yXJ!Wy1!+*-T{zUNEF$KB8N5eyECwdLOdjs$?&(dv}DQrJdJr9Xn<6w>H4z6 zYgePl(*t&8eeyYPk!9obC8Vi$u?HLniyTX^Q>{#}E=Asj7<$}9-^?yeXgRLBZBIaS z=p)2Nus}}X5Ckxh+@N0l9+I-+Fsm2(A{J+cjR zKa4Tf?$m{5yo5NesII~oSCS?o z%HVo6rhw&IGJ5ZJtDBjjW~h(;+l#4WK9BYK{0T3}A^@y89nL<00X5N4^aA<>3}uOm z&CSgfiNm@c&~|hjLnclpTKQaJP>8^hrn!fC-MYxHgr_gQXA?8CmH*%P3&p!O1r&PU zZ>ggY9P;Q?&RCAY_oxJ=hP*sd7DQp#-rlc7cl|@I9Wc~s7>ONQ%en^B`EK0EHiElK zo!b47%)NcCKFA(8k668^=)KV;Vdi{{$@u1M)2?sw*7Da^u2?aJMJ|*J3mAzBM7}q) z(m7kPAPkV@0-S5}oUs*|L%K!=(FwS^x=O6GXEMicVFCZlMbz z!<5iJ;420N<|8nZz4g@}&3TkJ>U{WIGZWSVG_srs5 zH1>_*&H^OzaOf&an}?j@At%p|y3Ew(hCXn=5xe@3@sklmxUWJnT7E_v?1?$nU>WGV z5j(687W(BZU7|Z3+vg{2-B<;sr-SLu)m91^*alZ4TmRKm3u#2wKqKTPxBmKz@REhm zJZ=HV*<&aL&Nz)d8ZXaR3KZ;uB#`E;(ptdmeFa+0IAIuag5b&!Fh0Ucm-MBrQTbR< zMOiTy`9pW<6RAC~UNHZ%n#w<4U{;E3sPj7(!0YH>7^3`YA@Ij9#&MjiXPF&g;55A*WHo zn847Ds&s`ERkW?8n9mrM-QfFW*%z5z8F0Smg?X0Q;TMj|D=^Y*9wgLpSbRF++zsbI zkGp05{$kCQ&5U>pC+o-XlWN{!ZdV7ld3U|Z>Qi?9fxAShJRaQL;80vQA~J-HlHl{A zUy+kv+@Qzr%m4J`4dOL6b?ss42b;$akI!FhvOY+42b+!4i3klar@geWyS%uYbk~dt zQIwddjec_4AGZPVEWZ9PUtd~UT0trS=E8*wm}BzT%hIIxU+>zEZQEWkODHZ(oM@BS zbK(~k@LOU=UX$w5L;YbPN5PN(-v@8}zn;&rj54-Idrl*r7}rn&1%G)nQl9@;E@@+Lf1xSx5Il0=z!i}*H^Hj_U~94{a;d|A zHc;aTN%fxRyPtgV;@;)JB|A2X$ef)Fr?7p$ZAe^^DS_P7kKyeU7x*r?#=kv7`woSjoQzBET43g*hJR@CuGAs8sF)Q&Tn?@nvG=GiyiL^FN{9M~b5hrn7Z?2NqZpn-ck5B%AoX+Tk>^IP z0*&S%hFpV211nxtRS`<|^^x9Q_y!LR5kG7^h4uy!4+Ux?vC3>2qNSz(i;H1&VnT#+ z1Iy^z&6_&j!=0V$VL`TT-Es2g)L9XMhcG#y=^6uN6|GHx5;66tNQK#$mlk_B2bOk6<5e);lJ+=_)0T+JMR&?jfdR(K5^Em?l5 z)mJmTxM0=!51XsT{dfW;lgjxtyY$9f5?UK>Gw_+rEHHXjc zngUwf2p`qm7=XRA7*0KSg$@(>g^3RqXc^&%h1qei8}yy#e8kV z?`fQ?5I8nt<|4s1peA#(L}d@^!vLgd2TlV!#Rw93l@OmYtbFj%>zOfDpy^2kCV{sR z$~;m|2^{9LVyJVFViY2$vue$cL_uDFdL0=P(vLP=9wwyFu&5z*1zMrVK_K{j=wOhL z+6laF9vME1F7>-JFTb#e@|=U@BDB@1fe)b-V+N{Z@F+}N6b0jXU|%@E-H^}=+kO}) zj=@mh(Y4@eOM%FFol)Q!I7DCs=HkYK_;GNNfxf?9e!Efe;$;=jY z@qXqYp-(sH8h=F5Q?;_zQKSjg(U;y{sDpD+6ZC?fs96K#R6F&dhI&WC8h{=(4kCyJ zlnOEG*%TZKjUbOs3SKo|BC|*TpAY@9(&l!^E&u@% z8Fh135n1i{@Q5Hla|Lf+y>o9XjPT(<_X5)4S1jo;iPUt-Pm6y+6BXHr{QSN^Cm+tn zvk2G3(QMCyG_{HNT~w#l>nSpJKnb!Aq$-~S=70cT?zajM2wl)b-#cbvWW~+RjTLrt z!hp`_5?ZT)&Nsg^+D*w zeSTeBj48$pm29RtXK#Ktt#S}ipAPGK@CU{BHa(p=+=Hj>A1xThe!_aA*eB(|GvP*; zI|0%|_cBN_G6ur|+3Y^S71D8HLKm@sjjF>Q9GF%3?06v`_X%^EHSzaC-8IG2Ir+Um zfBp>0=%8^W05})>S>5DZq z_usX*M`%v^H)D5TFqvOh`5v@iFh7D)e3hgy2Ks;mg|*Zy_}O6`4O>zxFxVPjU0mro z^%Z6JYX5Q&QQm=litYqLH#x;k6v)BHzq4`MEncm}!gi1B%wAJ>sH5T1{ZS3S}rZ});NSHmDWCT69lvG_8XZ(rELDB@pKXU|||(rvOeW%F7eQBzV9I z@2mSTb*U2v)zI6h{rh-epZEw(0q7F3n)LTYT@<=g=hmZo3^SoZVBip+`0VGH@@gT0 zQ9uo~c2R#6HNUJa>fAcNg#QC}13#GCt7gM?Fi@1%QN#arH3@zF9|&zwG*`cIJ=?6GcCagA<_28025gyXq$O+1MQTJ}}qbTC35Qcpze zaV)u=ASGl6WxvHh)(!yAB7fm@! zyaTov?t8L*GP?S-k5fzEwYd$Z`6d!3E0z~gP?iU;+O$j7H6nof)XIvc!0kNAng`*c zn&6_ok=_w>McoP}^ejj&>Io#^ene@20+`Y{e<&PB8t8CXYb>#95Z6<;HX%|q40h}| zvKnbBtLsV>q_t9eLwCbyZURtNSP5X(B)8&7j1&P8JUO}C~l7+F2M;jx~iSsJ`1D?BY zYzym;*=p1Cj%!^`K9C)+vl2<2le4q4kv$ONjX4bZinE{0A?o{DFE)IdjAZIRm!PGq zPDZfid}`!_t`j2YLw8e(CXzpBm6CF$8J6k?x5S~;THpmB1}UHmlvH*|oQw}2KM6?- z5Mt7Z#6Yv2p16M8u=;T!X0zPlulIercc;x~yPNlznDbMFrJ)uz(f ziBvZFHTv5I@~7kV0wXP>oztUrl)j<5)a%kO#X^1z>8(SQ&H!$F=AOTF_CY~@q4jap zOU1O*yFpX6Cl&5k^%1+`$44zJ5+%M7{pMh!YO#_6Vrhc6c4t4%uk^c41_HA%bh2gO zc-ZK%YA5`;lIwRlv1Rk)5Vi$WSdtSD2}je#K<8v-UvH7!JUmJ%y(-Ic@ zyn6DI6{i3nIX_9hHn11^m?_*~4;eZkEWw#PQ)ZgifSby~QXvBq8@ z}OAKQQX{>#*=@5Lm)j@)&AzmsD zjvts!ng{5NgFo#i@oU@HhT<^F*7^+~S=m8Bt1g$<58Zy0ZM!8Faa+)R(uT$q1p+8= zzEkONf#$fPRGOWKdUsPPO%ci8Hrj9ZqoI&A0`vj`93WKui4lLSX7DH?u6 zGQg}G94Isg50C*eh$h9E)b425od~l@EOs9H&=4|+DnSg326)EpsivqBGCq$0@RRTF z)<&Lrc8y{XlDf@^X-(r_&IMP=+)dju{-Sh?y5}rG@ox0?FEvN zx>>CpZ$lD4@onChAB*ntw{cn9b#Ly4hNd3jMRQX#c7liaBjGTD0r_O(Ekq43oQrfT z&4<$-H$d_kbTItZ8al>{a+J8``~Fm;rLsO{-;wz&5)#uGq6ARjJWgO0b?&wb2e;n7 z^^CssugunV@ipIh$_JwMBh;Hn19g(MxG{OrcODi&1y~r!dC2}pTuccyyQUY;Wa2m? zd$aB%WPep-{tVWax*O-uH>Es;H2)UbdHT1ahk@caxj_K;K-e-9N)O~S72=~rPKqX` zk`vn26n{~CPKug2*VT%$GA`{tF?6;GRhhHyq$vLySP!gbF)%a?`_mk4bGpk+rClCQ z=L1WNfi9A{s``2~@p`A--oyHKQ0Y_xE{XoyDE^%BN$!pqLjbFB)bYxJOwhHVg{gOV zH?LmQn%?M*-LP*IjITOJUqJWc#}7i$C=G6HZO!~SpzMlTI@o+r)f8LM@kP*j#N4W{ zlaqivg(<%Bb`i?mT59;f!V6~qt1ilQ7@(q{o3Uj9_)>hCjGLCdzn+DKg`OS&pV5H> zCEzKz+=cH}8P(Z~O9&Ii;M0qa3uZ0UZdSC5(3s$3$4h>oVt|=sxJ7X>X~-^r<>}_6u298BJz1+Z%Lt*wY!ThJWfiWwBAzG5+O4Ibucat`hiHzbr+jZ zOk;Adw6PPcX9m9C{u_6CDG#!@uzsJ3g^x&6Od|+KHwc z$6`8@cc-m9S~E$dFBJvC2n++k;#U10Dg1xYarpnc4AeV>#X_MhC8iGK@t@A1`R|x$ zBip))(!Jy57VE6$mltPO8vPnY9<1--s1(Az>hTWJ%bkrg_&*-$-W~Po@&q$K>&FU& ziim$5K10P4s9*8-cm35=qx^S_bpOvgOaF7@iC*0>zGWpAYe>HYosWMVNctCbo|2l> zUw>djRtS>~N%~b1&Nzz{5W?G>kVF>RS zLwZk@mnY1Bn0nVZq^WwK#LRER_UJtS+FN7fLYUD~?;5S`{DpkQZFe_+`(A8<8~x#_ zosN=K!9;CE!>v?9(fG4zGU4I$Rqdh~_DM!*);YHw*J$os1A1*2^sjb~0bR=oh zhw03c@0O;6kI&tTIGS~`skA!y@#zSO^A-iT>$3gSsq5ZySsE`ZAKVxpqn#Y1P2S|D zeemnvwOcIJMyl^js+Jx}RaNp;Qp&WO`sP<(FGN0N+!pGm^i3RU$mkO@jEWKx1+J#% z2r~PrtY+dFMjBmIdofDnWirJCxjyp3R&bJ$coPu((kV zd!fkh>r04yOJ3+IIk_=t9F1G+_axcfdCWX~cxcGh_d!l7c1zVpGyp}a%F1@d9Ru|M z%o0-Bz945dB~k^2cLS)#s_NXmSOwM3o1Fae!0D zVe$wWx5@}`FH~p*sS`^O2)uAN*^f{+ z374=yO=N7A`tIG5OBN6GsmCu)c^|qQI?p*wOAOshyq$f2qN^CR;u)rnK*eH4;59@I z@%r?KMSqz5!U7DRA}>MUAUKtroE!ir3}eN@Nbnys@R;ljEnf^~BBM}~Y zXg^-~Rtf{CSIijBOF)#M?>Wd=0iY}G03dI}(!|NjmCaxXRu_IZi#8D9t_8dXLYLGF zS3j%!i~NlJpA-5}LD4oW9PNA251@2zmQRy7^;|nX@^Ow}C}uque8l zgqluLeBd+ZOyje@RHv7fF8Mjnp1v0lJD)T$3Eg`I#IL?(6(~;#1)Hgq+nJe%1D26b zFl!tlhNQr+xcT{DvWgU<83zxWIf!R5G3MkOG5A8kqw`CpMq9!kwNo)p`REfo(2xV; zR__An>I3kn>NVo7)|}BlgNO=%?k=3sc({o2ZX&>OKN}mHU$(`&Pe3Z)WXk8H(z5`^ z8hZo45&X^sqB_~wf*Z@SvWq&Vv+axeGdUJ_};zmg&{jUui-d}uwS{$T5^ zG@JV47F*12-;7i%ju$iS_kxj-<5R_`XwejzUae4vZnH+3BHD?-H)K!pXnJpAVCX&X z;^6l+q`YKX>9Vl$m>z(kz{zqChx)cZKAG#Owds^9Toqt@UI&k~&>#ZsFtB1)=Oc|c z>6yudxHwjs^LeOl(AattF3qLocSQg;Ar=!-?n?J&zYq5Gh@5!2^v=q;S=5+tnzj4%odU_8d*@lVg}PpeIm`+ko;Zk1ZE3g@_b> ziQ4=4+0?5V(KfeAedBf>JzAVd$-x>LpS0plG+8poy-@vv-C83R2NAyBK%s$#(2@Rz zlqOuQEnYtz{BXv<36pFRt7gbHny^2&v!0VSO)cH>)y)VmDO(s-Rko|gf zMg~58>Yw{Q{2d#fD5lXhK?|DbO-Og%s1;Zw96AN|&WLgBCO+(l7obH|V~{)ea1V~n zG)oqt--$}Nf4{-zWY7qw8vFbRS>~C`Agt6^d21|CQ54=y4m6$Ynq(9EacS|3EuuTW zjwW@V=l-+v9%uL=F=nHfrxhv=S!;}Koyw#PM~!rjB%j>HUETPhaHRVQnWqZAO@VgDJ0P{g2v|g^FPt> z`%bL96gjRC^EM+#2Zu+!V-ph|KmZBD7wqW!MFQ<>o}%rY8n`Pr-8>i>1-wOA*6Nb3 z%+w=s0avcoR3dnF<^E9$-QOLv;S=bXeOtMK(y{d+UIfAE!PY~Eq=np1&)k_@ZDjO< zwdF_(Q``QH-`Re6mXAdpIyC9uaktQ&|J*s=&kC8v?;o940Eu3{^7{#Pnp4uxQQ<{) zWN{Tp!k!k8;e%sF%SSNo=#IaCq)HuKIgn6j*~4b+ z<*tvtfQ;gN<#|>Wbz;VguS>U37Wh`TNM@I+eiNM^owl=%$lNN&$argyZee|D|F#nQ zJrX$N^yEle%iGD+x^es+&k0rrfv3uQ&pa89@$dNNT)qphRlRU_(=G9Vzu#%nL*vRa zASnhO-pUK7Klz!OjglXJ=UM+{Z9=>CA2TkCxCSeOc!S}Xti_Inx!3^fS&OyOrgrlAqQE%Gk}|CE%JA>)vHt|TR6kvLOUTDn6_ z?0q075$T+^A|C0u-DY7m;h^S!UU&PSb2Ee5pR=>dolJxYi{e=nZ<6OtEj;)waYh2M zM+O^T|FC7Kfx8}x^*25kYl&I19lgB_EG$(^RPc^U z3whxjg!0TAHblSY-@SWOE?htHueZ=>?C%L8SsBM=(&nVhE2@WGy~JI>RJ5hR{@_y{ z@=s>#sKvPK=nog|%X32b4cCL;l@&GR!LKOPd6eXbe^)1cGRNt%e)1@WFf)8H{`zZ5 zc2WJn9nD&m6AvLELr4_p`9H~_RjZ_yQrOqBa;7%f_kY%bTl!Csl8)~0`*+#%?@vb^ z-$p*>^WUHRzoY2=cdz#P4GK1l+uQSCC*S*`j{jXJs6nLG#uXDmmwuA4NzFOQN89vY ztWnu55-LYCI&0shVM$Mwmz6!dQhgh}-G4*{@A=X;4_QTZ5l^^5aqQa;U#Xo$%`VK>W-J=#KMk)t` z#sU+hdbqvfg7z|=YcpLsc!&CnjP5ax{j^LJ*HzLak0*~!x|oVkE(CCzI<)<|eCcrv z?1rvlaIxR`c^V4)>fANQlA081ny|oQcc7GfCP9=A*u1Y7KUa{y^{Xhv5JkM4UgMe1 z5!Z9svRlZx{YuB=)1TWdRM@q!*|=ORpi@(f*E-Zu5!NpVP?Z zjaxV;n>(f&>Az4uuE6j3)fZm9x#Q;G{z{tVG&DbI!|-+;8>n0YZ<`Ls`)i-*t{CgP zNKaxZ{rnx=3|XDx5{{qwgReWg9=XR_86p1K#+Ys%U;t(o%U?1Vq@^qe`G#+@>3?ArrZ%8wVo-nk*em6UNVGt%5F#H9m`8!Rv%dUNyBAKvBcsvDensvk_9%9f$t`6E-6&!oH!s2Wi3RYx;tkII#d zh$bG=84^E%m-4@w589|oIIJaD(H5c@Y?oLDGeHb{G-R}h?c=3TYL581SWlk5tOjafCGx0|ZjFPc9rYGh0O9#klUeTf|HbWvSgKzZc3r&_etE(O$gr7|qNZ}c}O zY7K@I7YKOizA*`Tji>#(3s?LG^wN$;W{7fV+nlK(kT1n`;T#rBt=GPwxYu&>;J3{5 z`pVBSi{4Zw-=ihxP`4}foGQD)?iF!sBqQ_dlv~r~Ugf!@0|PNfhBKl~$jbyTrd}IU zow|w_l2=9BoW^bByZirol^_!Tsey*)E|Fwt`(Yp-~9;vsenIyR(VTZIaY#KAdg+?_wH@F za|&`qKwX0z8ejk7T?r>g+LwGlDYSKjB_y6M0KAoblOJ9vX{KO#r;oFyO!A-n9+zVgt z*KJMEd1iX>&n4`)@OJ)TAb$fG$l%%3(dAg&6uW=lFD#&>#7$iLV3cfOyp9o59GqZo zt(A_%hC=UT-+z4fOTy~JGb}ZgHZd}ua=cPhv{#QTI{W5>Dk|9-)!xi>zXE#7X4%J> z`z$KXsd$P^Ek_sx%J=wD(NZH{q2<(HP{Swr>37mV<)@S1{M$ z3S<`ZnmZ4Pw@_Pqdpmg+XjV83Wce+@EQa)i^)y16H*Ao(aMJM8 zB0T0N00~0+Su2ZR#EKDTeZF zf|L3ag@Ogeo-2I1HBbK9h9nOpf#76pWMlIzr2c!yCwmb3?n!OKNThrxChyjSle>`q zHZ?UlUpO!@p;mvW@QM$^VfV53?~mTO1G4;(_drb3nZd3|oW1{aZzGy2f>&|JHpz=h zqJ&&WPp`m7F_8at6@z&;3zXzxSlH$cUl2POyBV07L*5Ne;~OHnAd5x6}*{m-@l7e zT9*epe*5dMzrYco=hk>Vvm&2$lea;pX?Xxzmi02)2lAnWo~?OKzPUGJ;07|01~34| zMw4j}+<$i1=Nm|DC4eB%z-`4dm;g?_&d)hY;xB_cvWucYJ(HC`rW_6cN2K^a!^|Fhw>lr2uM# zF0&*1u)xT}o*Vn1kEvAl%ICz<_)Sz53im8~ z8R7t_F7s|`OgB7+9d+jVg8vb=eJcjO+s3qj`AO#LI97pUK+HB)%O5y!bJK1)hlFw+ zfFM)gps5T`gE0V}=4Z3cGfmGyz9i}FD!9qz~5wJWu1j*hcwJKcw%Uw_XYr?islND?V^<=Of;Ni7{IlSJ80>+ zz$2AyX-c?6ju%(x)qK2 zFE}m|PAyr9l?Dh4fk)w9YKQ5aFi7w`-T$p?0ihKgpTv7^u6V7vMIX@rQ%zQ6~_3&;rSzIKX%9)JM3>SjTz7 z*x{aun4eaVusu*&tK_R&+&%*)Klcp7=EjL&6hnTH^|_LPW;&g!htLe4}$g z7C$^?7+}{A{|Xlu7i{L?{Jt&4x0$~|&w+uk>fhAs6ORu=A3-}OwId0hCK?K>6AL)C zOp`h>j;oI;hb$R5(+)(s4h(@K8-@YNqHQiQKwJpNgjx9EHVn_qsIdM4E0)HGLS8V= z06W@R7Ob}9fQkv5qGE#Gtk&8Ra^BhU4NRVnnPJ05(V@{;>q4l(A+J4)G0pHTPT5P! zOM|y8DLXuU?U0vP*7wOm{$ORV_v2aj$f@F8r6H>WFKqC6EnI;76FtH(=M4wr`C}lp zAWo=;Nob!0h8rWF0kxV^Y2avcc>~XA!DStFL*I6dOw&V>k=ci{G`8o0)>cT&Y{CQ) z21d^(mVwMxbbiW_BdDT@PK{>~7}nib2!YBU7K1&Lxx{zs#>|yV5U~Qlf3jG{!>8~` z^Gw1{HktG9`%^3inKo|R$jI0?GBTpa$H!N-=KV@P5p6uN;3sXGsE1ElT3@RFcQX;L z`p3Fk?6T~KdT0}r1G!F63~rAHAM!F(Iji}_V&395J=q3jq2QmAw*iOx@!F0hYo*k1 z9&R@SX)fcunnRRe9uD%g%)$q`ugXc!Br$XPGK+8y3BWx?x^z3{w9Z&oo|R3C3#)isHaGj-`00i~n`JaKaX%EmfC)G5tfF-_=DZ{~ zltD)I5sGiNWVvF+HE=Wap@v5yUtJ`ko&aD4<9!-VKfIc!k2Cnh)61gZR=`ycRmk zg8!;o>H~rICL!}1V;y7y=8NTQT4T0Pqvk*fulN|urx$J52{XEW%u0t5=xT4?1CvG$ zp%18;w*Ayp!<)RP!eDp*eB5$6t7ekSa0iub9FQLbc7Sm@^$5al~I#2 zzNlM}^-{&`L`vY`VyDg#KM&Ohvu}3xy*)yx40$&1(<#?ZpOqEY*U}0Uee@j5z^WUR=6uJ4$+*R_4+X~x$^nxXtb^~}{J3J2oT44*c-N*!hvJo_pG$pse& zpJsd&?(s$-M3}Qir&$n(fGNQMkM@EWW4Ikfv?lTQx{ukcDI$c9jD7@U$U&z#aZ5e_yF06cw}@splK-65-%k`-=^#R{G9C-GXDQ#*2U zk^g8J+}o}KSdBdVn_Omg-9cS}SOcA4@wX`POtb{SkP){d!dPS%90HM+SWUNwbHDD| z*zxJpLP_RWs^E2Rg}uV)*a=S05=nG_8^}A|xuMJFf*poFf^{BRY=<=DxQ{(f4QqWs zg%I(M&lNgt)hr?`LQT@!-|oy=fg~)fe9`kLwoRZWhwQPnqJA#fEgiOM_gdja0Y4Bj z#%_Dpx1LJUFobe0A+O!y;89;mPe1bWFz$K&EGL&)^^)ds6du*x3x7Zv6DP~tz{8==sc)1Lnd&doN(Rk_XV>QS?4O>m|v%K^z{YL zFD{&zm~d{xm?;7$A}t>^MJbFEzKd9x;ccFMeYsM>mo5o24Ux~yf#8g8?OX1R3=ECf z#}GeR{Xi^4ghcE2D3lDVDS1b>nOwCsmJ2&Vx=4h+DY%XfZ!iw?EAn({w=*~yY;=BL z<_POq%?l|XZA4$8-(G1xE@``FMSvB^!u0QZ|K6362FO^mjQ{e zsjcYh_kn6`g&;E{QPVx4YO?SgfTB#F)h!wbeRT8_*a1_pwWC|yhJ4YDP#6>mGh-cQ zGQ~Hc@Rf#dR_tYpMjf*Ah2n4Q#;WB$B_A{FG3)&ALrnq+!S;wNK0cs3=OBGFa9G8@ z8ax|e>N~R6l&Pp$w0`Hc>1IIjfUSgB1}DhSa~zAfnal>;fgT|*{YJ#I zYrdizp^AFP#BoE72)WGu;IxB&G- z>XwVJb{aPn#TW*^k?j4-l`A1C;^5XpyAddU76gPGL5u?-ntkk%${xXdiyvP*Nvk~I zHnhbWVBrM%5p7nA2{eh2`iYd$@8Qsr`GHKDSUZZ}rr)qo$xvduz`z-5%7{>1VTP(t zX~hJjFwc;lLx}5N9*B@N=!}?RxzqalvZR(^O`zQ3nxmf8EQF*17Je>$gXCgfFy26N4L>; zCwZ3#B5;6Wanwl?4s)z^=zxNwU~wE76~yX^%Rt+aDST{MXO2D0Ok|`V@-5kmT?rW- zd9`C3Y6;=G?;7K?#<`f%6wy>;1fsuQ}K>afc>%0uOn?_EFLXwANR0&b_Fx?%*73YvwRWv;^$+-}#kw=TM22ahXOk)G1js7S~Lc=+E%f=mQIurhrGmrs5ii+36=O<~SQdv6sAL0ybK*bnSpEvh7Xx-`)s`6DqW0r`ITioyj*i5#^)W7CHU7VP;zG@9xCk;jPBH zNBIh!U~nK}2x=J%*qGrqKkd1D?8`wPGcxB7b%AQhPRu-jxkT=tk*y#>VenX4%q^J@ z_(n*M^Im&M2Q~?7oM*0AE0P3GoJa_8GX1 zs^k5v+FD>9ceyo7Ivn@?eaZNpJU#VR%gXKF4<256>Q@}WzEwzv2?7QBSi3_hYxvse z2_qz`Qtb%p?W^C0;LGU7Gb`yGe z_9qa!Ui4JbZ`^ot>;^at-D~X^`CC(C_@LsS)MiY`<6p2bX-axmUi5fq7yW>Bp}jW7 z$$&gT87GkH0esh39B!PIz%CM|xC9BxtuJdOYq(;zAA?>aY3wj4uk)pAk3<%4E21FC zLcOYzA0GkN16&(_?8dJ>Dj2+zJ1P*>&>AhwfHl}{mB-Z0B>sK7HIP&4YNGtc@&9o~ z{GALzu`-li0tjU|l03aC@Q(kArlUG{`6ikEp4=g)cgcDOOVi zNII?PC&~f5xI6s$^XFi6Cj7V^+{Z`$RPEcJprnF>wal9l02i{cKGpKnWj=^TfZY3V zMTO5dK!*k|Kh$}G6#syyAE`&I={^gK&$u8Y)KgqK(JcV_HX3iLbLl1AC-}B*ed&4( z9|`Ud3+aV-XlGX!5*c7L=^%%0qFCbfPvI{N_=81#vgqhgcEA=m1C=ET$l4Ylbs0$M z$!A2%FLtYf@1}E$9pUJ~Oi6mXTO(2JPxk_sZLf|GyOx#~p{vcg$q=zYu;)?`ukPar0JJj*RBUi_Q5F4|4KgQ@b@85u^`bVRD&b+u z%fSx64;h?>`265nqJy;BzF6~U!WSZEB3Ee4_vBUOwdd>&T{)XgaOv>`wyLZUXfj2;=Bsj~^t_6ikqgJN~g1>ZFj?@;LC zJZwO%W%ul&@~sQkuTxb9l$LMA zPCPVx^6wrfdq%nJEjdL~(^#RnA`{D1!Qs{R*(5@e+Wx5Rh5)7Cr8Q4u?nCpG+1mY`}40_XgJV z$h^u(UsK6WSJ&Xm2E=WwUrV_q9kc+^yGBMp%pGY>5kB_WG+J}@IZ5zCC>_!wDuD;L z7nP{*ypAz<^<`^r0G z)RR>DJZQhy85rkMLxzEr(oVoa%{UczjM&@bV8nMQ!hjs{5PDeW+O!o+UD1SGNL_P!Z{hmKpP#|TzDR|7OF-$xPlv^|92$3t@>$j$w>_NvJ|jD~`ksq*d!U^Z}IJlPi8LMSotRC;?`RExxz-ND&$> z^m#y%Q2K6d#6MxNOks#%s=Co0(=vZR;`c(capFNjXr(uXt&5WqK%X?6hmbt0Gn_@z z%fNSZ*VJ~DYA*0W{_^l*F%S^sw0t>J^Ehb%+Mk9eV!MX}|XajQ4N(?W02ZfzN!PldB}Q9r8L}cN##~u4@}0)V z&HbZu6ZdDWgWuso0trK0W5grm!FGiccQxK22P=TJ3t(!X90wnn!uABp`mpXTXWC$f z>pj*;cL{rxaljeuehi}BRpu^uwkG52*ROCsAmE|WDl&ezFdQe6<)c}x&f{n{FP_26 z<5fI-Ewzt6O&1OX>`B9<9J zLzta3eG`}@>|k~UdkB>~G)l*9lzssIX;GAi*K98k*+VBc^u!`S0!al@H-n-9EJk@r zqa`q^c`IkB<3^G@6?=Ci-4kSha8rW5)#~?8YtO-FDawBtj=Jx-f)d}_u`fZAC+4B_ zYKwV}&HcgxRJx}cP}4w}tR^82kKY|B#6^)Tq^B~t(N;~=nw}tsK~~4H#F?iM(+jY~ zJ}|(D*!R$5L!2W$W0Q+@T`fw6iCz+y)aCeeSh*+ARLjSw zxf(@qL}J_P`O`_1!x}eFWLR>;2M+Cv44AP~B?Lo|`$Q4Jc_civ`+z?H0Yy}sWX*5{ zA<@a)CK3Tq!qUS^nzy6wSn>5~G6fOGh80GF$Q|u^HWX9)9GIymYR~dqWo%~D$eS?W zE1+U)jsbULbM032((S=9Kua?FdW2~X*Slo(m=a(rHIOL}<+?p66!ogg%ABTCANoXO zFCXw7J$dnEn8Vx`Rwh3^{!6`E3onjD3jK5ke8Lis2YcOf?9eTO^NM=x!P_`Yc@Bo4 z^aHL1()7m7n;(=&VGlJz|AuSI!vVjyLQc{9aU+JL3`l=6kW5V9Fa+ghdy!XB@HtAh z;R`J`?K$LCWSl}KYmYUujA z=IFZz%fm`O4?!Ta5%yOj+9e4*mfb+p&l5|uhsw_kv)M6i{VGq!|ElWCN%hK zet*B`>91bV7@v8+ujQO`olDuY2qeEzMic2UZreirt`sdTEfJ>Sm&=KB>A0ANp6!8bG34FNKMZZL|_+%aDe;tdsr5|>=-rRwh%MS63( zhKUNEr~v%>eXLRGRmD+@H90SYRTpD<0>B8A7z;>fm~BQ*dxWxKa|IAe2n!@xsp=09 zz8Z#PE;Pz^_gws^p@|Sa93lDuEO3iIS0-qEJ6SDwpxjHxqvp_wlusLZc(No3ru11Q z6uX3#Yk4c{#!{}N0q)wv55sDslsm-=>61A`Tj+y?i2>Q5@ zwo!z^j_5d7L;09_33y$P!oQEKA+6#O%lx-{QF#G@%zAnMABE?CF(l<-^WPv+y;Ruw z=w;YWxVP4rC&$0HIT!gU1vMffplm&Ak!W?7_u=vb3OHT=nd!mmLSnoMImQ>Rcc?4n z*nHdp`fR@j~6 zU1^92SYOQv$301E7~lugbT4^xEj)1z<6C@b)0yv0#SccLu%%(>{ zA*&V~*;iYM8L2}O3N`6FG{y7(19Pd{Pr-CxgutF)@CSqNvg_EpN30Y9S(&Nw7FW!D zISeA^yKFrO-(T>)J-8#VGIU!+k;34Y>F%7jAT7AXEONj+&V5AmeRv}#<{c-sw-C$} zRFTAr084R+G588tM$weS3T?{@k+AFdt;nsgUrIZ{nFLFRnZ++~1Bk_ZZYP-3BDmjS z$x%6C-7BOB40g^F*1^O`7+5lUFfvWA-Dc6> z6t1(pD4@&s>MFZ17ehh=%2r;*sXpE=^*01OgBR>J-CwmUz+H_{3vT12~98s%76j2ux=Y|^wWMB{w#OlU_K7b|Z-7H0JipVOj^n7#``L}`= zd5$x&aW+zt(-(2LQD2=GW=Wh6W0&lT{SnDNUnb~UH`Ol4wNEdixC*t^rrn24BGTEH zb5cJ8l(u?LStJ#18UM~#udHdUn+A*TZR)}8M1{Gid^K8{`l(1uX20YH4S=lr$vQ&3 z8C4@Ev#!+ziH?J(awvY?EI~Jp+U4#N`%PFV8jYObk>@sXA*+7<67Oxd&k}Wy6>KZ# zb$rxrANN~w)w4B3)%}m4>aJJhv9+Ea&)mf-`M*B1l4Y(~cd2^CUn7ZYP_#M(h3wTC>*vkJZ0~1oP2DTok zC(%Zgp`GGe)Jr%n!bq?Q&@0wZC=_$nZq%U=G2#Inb(+@vz<`skk-I&@uuYX0{E zxW&8!p?g8A>r{LOahI?YzkQq7xzO#txy4r7W$xvvj8sF3|8GQ zXcg#2gI9_&0Mk;Ac6N#T27dO#n#h#F>)Hj~H2w_m?LYS(+iV~RoPb9;LMO_?SuBLx zkAe^33T$c}YISTn+6G<3`@Qu3j;^m;KGz||fHyu}{088GO^@JCC=FuzMKleiRfUCh zh7ILl=B?oKDZ2g&8ghoad>5WY!X}$&hEoSkzQPd&RKRKUb=EbY~(T^D*Q;QeK&zK--B{Az25fJpG*0dw>7N<&BYbi*cU z5I{8i#CFs^KGkda`;2}b0BuI-S?CY&xe+!pAQB9AcJ77I<l?hL?}zLUWUvWvF3MlozCs6u zSK3OHO0V7vh}yT#On#aD<@N*5F?TIG@Yd^x0k2huk2by)QPCPY68ArYtWl(mT9N^bTVJIvANF*>BQOXaC$JQiKZ~ zy!pg5>PF&XDHZ4jq2eS>^JwG*5N^IhDqM=}9#qJ>85}k~HUq%4TvCWm{N(PTrZq8V z?)Rn3DkD)uc`_O!$M)~nn7=cVE<-wBvSjpbx5r+^tUeril)-KFf|c){0RagIkB9b; zkdv*H$C!rBr=5~c5ZmwNGuLD{DkiC5z7|fehbE2DC*~|NJ(3nC^lMs0o-?>Un5n1v z!WefHxwqgg9=j3Nsz5WA%hPpiMbfCxC0Ixm0oQ<ex3oD)sSG$>z&yGv zGO;8M?Vbn#VrcK8Lxt5$N*@01Bj03UPagEK+Dp4w0slyQBQgMvdb#_0f55iAM4>4Hh*$A1Je<3i6it6`p%ovUd3ST%&$(9DmW`z+-BTA-FFkVL~Z#A|fBr z(-Jig<5*h%97@lYS)0e~kGq8VStKE!ADLG6Ecb<%8H4s0f`Vd}iog8!(<1U;PzC^Z z;H*?|%A}&a*oi97U$!T96e_&#@1W}Q44N!|N8GAYMOV%h`kO6*^f0I{NFu>pCndms zcg*&N$!Jw>5fgRO`1HH`+&33>okNKw^8wI;!4Tsu+Hk{gE!hY#QA-m34MOKls+B1Y z{`E6p9_zAt&b}wS;|PP~dLK*zLwsElm7nw#q3)Bdg@V688P*sAzo z-Lc2q)#$mL8r`~;$UOdG!o)_LX&$2q3Hnglo`P8+V(t1WI8gX5AD>1cSkvM7EgucW%vLW9ES z5OwFE+B)(!#L%8C`5OQ7zgWQ6&H=kqR1Z^H$5X>7LA_m;&r!hk+|20QYRx|#K4Q;i z>E$Ng)Aq88p@||_c)W0RMbBUoV_o-2i&igR#-Y%u@halz$R z#JfObM3>s@*RDB7^{T3nS~{OJdtXYv)>WaoM5sG#RaN4tKTKzba92duBT?;EjT2n< z)x@%-;-A2oT)4W;n67bOdGv}`u+PsCy_cd9?oH8EU8d=Lue>ba;TfW!huijSWzb=ONB%m~ZV3JxSVz~UaaJTM+QjPzC5jF~t zJkm!#%LC!2HAM|Q#&mgdm0bEpyBDcpE}Ja-Jk&aqhwQ#lLpsMPcWA$yCEF&+O>@2K zN6dxyw0DhUVY4r3LAHQeP-NBMQT!ZP+3bRFs9gTHYHIZw61^B3y?J(tcX(!P&@Vls zwy<_+w+>Dn&vB2l?U#H{DiK@c#O__NVJ9hWYoA}1aqP6ra{j%Hi@s`IO_YphQ!{Il z;WdzXtp3N3pTDB)y-kp6d`6bd=CBno0n8npe5Cd1H_YkOF+$DG*WXh=P6n$0#5!VX+?f=Xyu zBYS`|m|Vz|5u@+nC+)UJ{o;5Q#mo#^KMUTWwI8CjL@FP0T~G*^&S6XN0JjjXo-9Xe zdaQ(Q9D4rO!Z)5dkvlmkzTjsb`T8*~b18KzA73RPF(tc9-M=`mkfVA1RMYPzF=9%k z@f_$I$m(&??8Z!saZnA04r}@#U`Ds7Cv9d}iw8?As#9@o%x|jSWie`NsH<%u+GO?D zEt^rYHlqyXTh|3)qeNI7_=enpjR)6?6(-Ny<=%n_&0m(yzLoy*;H+s_g8Ha0phs|m z7IGAxN!aJ#pU!y=bi&f!RzL05BsXiP+cdG@NV1KT2sV{aFZ;ljc`xJ(Owne(21i;L z?8Wn68Yi4X7R}2PE4YlxGM`F4|4Q#bq=&nkzHA+RmFSIjCgJxUcd59RunhF^-Mamq zuGHCSb?Zc&D`SH1Z!t26n{a-*Ewcpiyb8JWGV>tp28pNk~w zx78K^0EoY_HjCI)7v0ha*o1rI#%yY~F;AY@YRj|P&bkK+o46Fs#zLA&inJNRMYN1$ zOOxzXF$_&RDO>Bdxk&e5Z?#T#`PX1*xB)|vIcpFdWP4eVCv>jO5QB2Xl4(=3pTRws5^`)QD@RbqOu)alq=!k_I?7rhan*Olu%BYcNalW&5pHMre;rw^ zN|&1U3g@>vnZqkK-uZx)=<~r)qT^6EA|(AFd187??%1*5Lp1a3??1M&6_c0WznyL{ z$WaR5uHh?t4F?`MWkXn#tm5NAXm=D}xIFc7FBUzw_P+sMX;5^Fg@e7Je(h57W05PS z=Q5>8$@-WJd2n1KP~bo=AWgTm+pYNlqer6EuFKnK#%(-Sa>_fv4g(qG1mHy#p+)>q{VJpY>9fm)6xe7H)CUy>>E9i z%d(r!*^dBlIGRr?k$H|ak6IEY^dh&VB>`W_)HT!%vQK0SUJBC<2}M5NHJ9+*Ob*$o z>}BqG)Mu4o5p~2H-6e&bNjJD9dbQ0B(1ke3-eX(mJiQ24O5O=)A+?zv2MmvpPIWd6 zU^(Mu4o>blXI{DscZ_1SQj~`~XP;OBJ+np2!*We+u45m!MegtbU=oi{sl#Rm>`kv~ zO7ZXZ&D31RygHF?A{fi~lCwoWtwQb#^zyX(iaWT&U8>BEYp>BGiN8)F_BC3&X}Ikc z%4>*l`+O=;LG)wyoP|lwiI4!s?WX6!w3XgWlze+ti685_f4^hJEDB~)J~79no(v}IlGN_>1$8$ z2DF^pL#WEQSGsx$^A@E95XF#y+t}JqdP?CeV*%0#tun!&wOLY;=6${GuN<$tKjYD- zCMjx*33UwGgnIzU^^$A8@q1A6k~}vjW9>%5oL-uvR>vqMJK0_Ch4fa- z7^yF3c9J;9Vk&?omPLl3MtAAzMOCRd?(g5)DO^?^8okl* z{@$k*5q4pIGV>_!V*U~l`SN-lPsr-cG9NMd@E|wto{ga#YrV^w_kR11WPB*?`ix~2 zDS_krEuY(;IE_4NB9L`I)MlpX2Izzts@PyFDD#a+sNV_ZvC&udEq%9sc{IHmXPxvD zpwH2&^PbccZu!eW(c%1`KX|s0f(HX9R01#Oc^+dsFF#`~onVZ8^t$seIp@1ZR>W-< zDrrh4d@TcqE9;y!+1fT!Bq8=pTYh`SK6ay3-3@6OHjxVG9q)O1;F|y27Rz_ z9jZxi@>LN%?0?U9344*AqH>nTs2u$TL+n6@zKKpjOnbTK5L&-ShXK%kS%8y58J z0Om(jidMkvwGXf07#ic5ljTyZKIqE#*ycI-+q2_4SSC?N^g^#Z1FZ53gIjX*Q@f7` zZf2zFyBTL``W{}R=Xj+q=?aGWascdyH51-rmW1-tX38eNj{jLe$;vjzB~PJ$a#q#f zo^)2rlp#^pm+stlx-x7xPlN)~6WmMkK2zo~*C$h&Zvgr2_q^q+ylb*uQ#9X9KTEko z^h{`be;>5}rO%9H$Cl`}XNS40Pf&7Qi;uvo(EBGsb(CMrt98^ZmClT%U|8a%9Ik&m z+DX%(hn^oOJ_A;L#y(J=MdxyMgPwRf5E0*iXToK{zb7F;}UI zgID{P4Q5`pe|YB8TgoAKdF6@~XOqQ8HmhHcM^Hl|3EYHYk=4=DCqs!1tmF`5z)`-%o5FIzI41y+@5ROclzD%DeZr*GZ z(I%d?3rMZCzqTo`dTHJhDV`8un#vZ-_)l_>a~=c03A3=!k@Xz^DT5|3Xao}}sbtqG zVfpdWOonSiCM`^+1tCtR#>RC5?!bq3+9~)?X1=?HHr#oGNRRaRHnSqI88Jad>QGPB zJW_vn#U`2%90MA(aYd0zOKE@$TS)7)XD^t4qsYuLiu;yq&kG-E=wgInpoQ+wQPSZ-0 z&>I&8ALOPtz`#qoKIvUs&*c~+#OFK5n`M#>lC={qXJukxU-Sk^;Rb;pByR+Ez9bh5g94a8&y=& zG+x@KPydn!$#<-;QTDc~cD)eIK5pbB#qS_i@MIi-iQl-=-TiYrlH9)f)vBI)QOuQR z{P04l_3uO6hGXH+k}9qXYL=yExpkRfCRtD_eSMTcUy$049h!e#4PVABr3_Gnd^5MP zpoJLyCO6CDa*bSxzP6qeW38IgRr6^I3Ul6~3cEdqZOB9kMOi)TO1?S$c-dGU6${E- ztn|U1v+UN4Pzm&tMY33aI(tQ$pZVee^csM=^oN+>QqyLLHB9ENUAe7!(laNL^^3VT z=Vh*6YMA9?MkiY`7a9=~?=}efC*Rs=LN~j3!b@D1i34w$b-FHTJF(*TBAo$+)tOKY z?R_>fOrc?%52L^h&Ob%FegOUUx*j8itw{DvZMO?m5I{xkcaHIkloU>yVq5t3x%k z4O}YIcXwzGKV!ttJbQaLuXJS5B2Ga)Ee#7)EB+h2omHG8kx`C{CL|?zHKw;+N9<2{ z9lzfzo1Cw%|FA<{eyB!1D`;J4*CjJkJ^_ku+|`W-`4|I{&E=Is!o5qAmA~zA%6zt* z{}|xWWUB~I0S*SKu3x(l=KxsnKLcbG!TJgpf0UPon5}X;=jP2`wD}_@M62bqJio0T z9mHz$`{w|*%L><0iy|;4cI)qNYx>SSO4^^y^&?KnudtMEb@Q2!kWuoTE9Lloc(TQh z(mm)iv?KI=&Ph2Or9bl?bXBGEQH7`%0=bRE9<~oxv)I<+k zs^`-aZ`AZL{J!qIv9_Of(}g*DE#}>J%43q^M5eFNG_eVaepRg1ua2;rq?ihIxil+R ziv2#oF6K-Vi6Zz6cIB8Jkg$|pAXW?4>7G29KDm?bnr)QyX=0)%yNG@N-ch3zRcfhc znDM4BndF?Tq#s+S?TZ%{Ck4(rMv&9z&YQ<|Y)y>Jyd`bky!&}V?v}^pz5l#`CXL`D zt2|5tDps~-Wtse&I38P9TkEp8eT9~c0H;B6^G9NLDKSui`CAi9OAB^y|3N;@5X@M; z*&o^=SH=qKbT2x=lGc*Ub&q$0G&QIa8ui6XmO;KL;Z=EWQkc_;aKkjplz{v#-zR6C z{@WzBMOS;w$#d$MHIg@%b`P{|| zd5`;@+7xu7CZ3e$r+PVm?B3+4Iww`6a=W8BT(m!W z{bs-AFUtl34%zBnj{n)y)6@(?+f*_4SmLzlhw<;J3dedASvRD$2@H*^KyS~6J74r8 zHVW1|jA6xl;mcW!m*fWd%vk-2K-qPl?ruMTD&s4jqZ%3raL$D&eQ*OipFrUG8SBS7 z6wOza;;@r;OZ#n@l@WBQqv*Je8BneX&x35HJFVNrGJJK+QQ2Hml5!3UY{!5X5~Qb> z)EV*}f4%V7gl$Ld-M0mo(O6N8f=FviC7sC#WTR%Dgo;92J+T?cBa}fu#|>11V$Jzm zt0F;~zH)=GNM6Yh-GoGq*6YXCH&Q&*S(HcFO2<}8GAR0%ybQALf^(5{fy;qy#Ri|sqV{gk~g+F zsOMfCXQvbVTkUu0)%|!=Vk!uFF=%dQCI*8sqs_S-VziZ9TppcyJk`9D1rVfU-g{%W z6+8B}$ftEspy`7rUSfe~sKC>d5zHS{-Cl&Dic8 zu@E4l(EF6=>p%DwL-{^f5fiuU=TyqCQ?%w|TSW&hDNm$%(r z&+#PY>OR%qANT*7d#U?D_~QQhb$8F=fAE)OM7&(GDD`%KZL?ziE#kZNw2ib1HIHBU EA23{++W-In literal 0 HcmV?d00001 From b10681af19bbdecbcaa5bb70435c79599219882a Mon Sep 17 00:00:00 2001 From: Dilan Perera Date: Mon, 3 Aug 2026 22:04:00 +0530 Subject: [PATCH 6/6] Simplify JWT Token Authentication description --- en/docs/connectors/catalog/erp-business/pricefx/setup-guide.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/en/docs/connectors/catalog/erp-business/pricefx/setup-guide.md b/en/docs/connectors/catalog/erp-business/pricefx/setup-guide.md index 07883a87c8..c56b93f27b 100644 --- a/en/docs/connectors/catalog/erp-business/pricefx/setup-guide.md +++ b/en/docs/connectors/catalog/erp-business/pricefx/setup-guide.md @@ -25,7 +25,7 @@ You only pay for a Basic authenticated request once: the connector uses your use Provide `jwt` on its own - no username, password, or partition needed. -Pricefx's `generateJwtToken` operation mints a non-expiring JWT meant for integrations like this one. Call it once (using any of the other authentication methods), save the resulting token in your configuration, and hand it to the connector as `jwt`. It's the cheapest option available: the token is sent as-is, so creating the client makes no network call at all. +If you already have a non-expiring Pricefx JWT, you can use it directly by setting it as `jwt`. ### 3. OAuth 2.0 Authentication