From 335ff3a3bdcb109e466f3e7505ce610680adcd92 Mon Sep 17 00:00:00 2001 From: swaroopar Date: Mon, 29 Apr 2024 06:00:20 +0000 Subject: [PATCH 1/3] fix query key for CSP user's getServiceTemplates Signed-off-by: swaroopar --- src/components/content/review/ServiceReviews.tsx | 2 +- .../content/review/query/useListAllServiceTemplatesQuery.ts | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/components/content/review/ServiceReviews.tsx b/src/components/content/review/ServiceReviews.tsx index c578fa4b0..3cb2994f4 100644 --- a/src/components/content/review/ServiceReviews.tsx +++ b/src/components/content/review/ServiceReviews.tsx @@ -345,7 +345,7 @@ export const ServiceReviews = (): React.JSX.Element => { diff --git a/src/components/content/review/query/useListAllServiceTemplatesQuery.ts b/src/components/content/review/query/useListAllServiceTemplatesQuery.ts index 152c9204f..3e161c1fa 100644 --- a/src/components/content/review/query/useListAllServiceTemplatesQuery.ts +++ b/src/components/content/review/query/useListAllServiceTemplatesQuery.ts @@ -8,7 +8,7 @@ import { CloudServiceProviderService } from '../../../../xpanse-api/generated'; export default function useListAllServiceTemplatesQuery() { return useQuery({ - queryKey: ['listDeployedServicesDetails'], + queryKey: ['listManagedServiceTemplatesForCspUser'], queryFn: () => CloudServiceProviderService.listManagedServiceTemplates( undefined, From 422e86f653866ecef5599b7069f494f4a2c95951 Mon Sep 17 00:00:00 2001 From: WangLiNaruto Date: Mon, 29 Apr 2024 14:50:22 +0800 Subject: [PATCH 2/3] add eula information to UI --- .../services/details/ServiceDetail.tsx | 4 + .../content/common/ocl/AgreementText.tsx | 17 + .../content/common/ocl/BillingText.tsx | 3 +- .../content/common/ocl/DisplayOclData.tsx | 4 + .../content/order/common/BillingInfo.tsx | 3 +- .../content/order/common/EulaInfo.tsx | 44 ++ .../order/common/utils/OrderSubmitProps.ts | 1 + .../content/order/create/GoToSubmit.tsx | 72 --- .../content/order/create/OrderSubmit.tsx | 13 + .../order/create/SelectServiceForm.tsx | 75 ++- .../order/formDataHelpers/billingHelper.ts | 3 +- .../formDataHelpers/deployParamsHelper.ts | 4 +- .../order/formDataHelpers/eulaHelper.ts | 21 + .../formDataHelpers/modifyParamsHelper.ts | 34 +- .../content/order/migrate/DeploymentForm.tsx | 23 +- .../content/order/migrate/Migrate.tsx | 3 + .../order/migrate/SelectDestination.tsx | 18 +- .../content/order/modify/Modify.tsx | 19 +- src/components/content/order/scale/Scale.tsx | 28 +- .../content/review/ServiceReviewsDetails.tsx | 8 + src/styles/register.css | 7 + src/xpanse-api/api.json | 516 +++++++++--------- src/xpanse-api/generated/core/OpenAPI.ts | 2 +- src/xpanse-api/generated/index.ts | 2 +- src/xpanse-api/generated/models/Billing.ts | 16 +- .../generated/models/ModifyRequest.ts | 2 +- .../models/ServiceTemplateDetailVo.ts | 2 +- .../models/UserOrderableServiceVo.ts | 2 +- 28 files changed, 515 insertions(+), 431 deletions(-) create mode 100644 src/components/content/common/ocl/AgreementText.tsx create mode 100644 src/components/content/order/common/EulaInfo.tsx delete mode 100644 src/components/content/order/create/GoToSubmit.tsx create mode 100644 src/components/content/order/formDataHelpers/eulaHelper.ts diff --git a/src/components/content/catalog/services/details/ServiceDetail.tsx b/src/components/content/catalog/services/details/ServiceDetail.tsx index 1e7898c04..e1d8c3eba 100644 --- a/src/components/content/catalog/services/details/ServiceDetail.tsx +++ b/src/components/content/catalog/services/details/ServiceDetail.tsx @@ -15,6 +15,7 @@ import { BillingText } from '../../../common/ocl/BillingText'; import { ServiceRegistrationStatus } from './ServiceRegistrationStatus'; import { ContactDetailsText } from '../../../common/ocl/ContactDetailsText'; import { ContactDetailsShowType } from '../../../common/ocl/ContactDetailsShowType'; +import { AgreementText } from '../../../common/ocl/AgreementText'; function ServiceDetail({ serviceDetails }: { serviceDetails: ServiceTemplateDetailVo }): React.JSX.Element { return ( @@ -73,6 +74,9 @@ function ServiceDetail({ serviceDetails }: { serviceDetails: ServiceTemplateDeta showFor={ContactDetailsShowType.Catalog} /> + + {serviceDetails.eula ? : Not Provided} + ); diff --git a/src/components/content/common/ocl/AgreementText.tsx b/src/components/content/common/ocl/AgreementText.tsx new file mode 100644 index 000000000..9d53b7e0d --- /dev/null +++ b/src/components/content/common/ocl/AgreementText.tsx @@ -0,0 +1,17 @@ +/* + * SPDX-License-Identifier: Apache-2.0 + * SPDX-FileCopyrightText: Huawei Inc. + */ + +import React from 'react'; +import { Button, Popover } from 'antd'; + +export function AgreementText({ eula }: { eula: string }): React.JSX.Element { + return ( + {eula}} title={'Eula'} trigger='hover'> + + + ); +} diff --git a/src/components/content/common/ocl/BillingText.tsx b/src/components/content/common/ocl/BillingText.tsx index 2fc38e359..d1c8e71b7 100644 --- a/src/components/content/common/ocl/BillingText.tsx +++ b/src/components/content/common/ocl/BillingText.tsx @@ -18,7 +18,8 @@ export function BillingText({ billing }: { billing: Billing }): React.JSX.Elemen return ( {yamlDocument.toString()}} title={'Billing'} trigger='hover'> ); diff --git a/src/components/content/common/ocl/DisplayOclData.tsx b/src/components/content/common/ocl/DisplayOclData.tsx index 7856c169d..714479f2e 100644 --- a/src/components/content/common/ocl/DisplayOclData.tsx +++ b/src/components/content/common/ocl/DisplayOclData.tsx @@ -12,6 +12,7 @@ import { cspMap } from '../csp/CspLogo'; import { ContactDetailsText } from './ContactDetailsText'; import { ContactDetailsShowType } from './ContactDetailsShowType'; import { FlavorsText } from './FlavorsText'; +import { AgreementText } from './AgreementText'; function DisplayOclData({ ocl }: { ocl: Ocl }): React.JSX.Element | string { const PLACE_HOLDER_UNKNOWN_VALUE: string = 'NOT PROVIDED'; @@ -108,6 +109,9 @@ function DisplayOclData({ ocl }: { ocl: Ocl }): React.JSX.Element | string { /> {ocl.description} + + {ocl.eula ? : Not Provided} + diff --git a/src/components/content/order/common/BillingInfo.tsx b/src/components/content/order/common/BillingInfo.tsx index 7877b1e72..957a5bb73 100644 --- a/src/components/content/order/common/BillingInfo.tsx +++ b/src/components/content/order/common/BillingInfo.tsx @@ -18,7 +18,8 @@ export const BillingInfo = ({ priceValue, billing }: { priceValue: string; billi Model:  - {billing.billingModel} + {/* TODO Will be fixed in #1591 or #1592 */} + {billing.billingModes[0]} diff --git a/src/components/content/order/common/EulaInfo.tsx b/src/components/content/order/common/EulaInfo.tsx new file mode 100644 index 000000000..2db970e5b --- /dev/null +++ b/src/components/content/order/common/EulaInfo.tsx @@ -0,0 +1,44 @@ +/* + * SPDX-License-Identifier: Apache-2.0 + * SPDX-FileCopyrightText: Huawei Inc. + */ + +import React, { Dispatch, SetStateAction } from 'react'; +import { Checkbox, Form, Space } from 'antd'; +import '../../../../styles/service_order.css'; +import { AgreementText } from '../../common/ocl/AgreementText'; +import { CheckboxChangeEvent } from 'antd/es/checkbox'; + +export const EulaInfo = ({ + eula, + isEulaAccepted, + setIsEulaAccepted, +}: { + eula: string | undefined; + isEulaAccepted: boolean; + setIsEulaAccepted: Dispatch>; +}): React.JSX.Element => { + const onChange = (e: CheckboxChangeEvent) => { + setIsEulaAccepted(e.target.checked); + }; + + return ( + <> + {eula && eula.length > 0 ? ( +
+ + + + I have read and agreed to the of the service. + + + +
+ ) : null} + + ); +}; diff --git a/src/components/content/order/common/utils/OrderSubmitProps.ts b/src/components/content/order/common/utils/OrderSubmitProps.ts index 495990580..7b11cd2d5 100644 --- a/src/components/content/order/common/utils/OrderSubmitProps.ts +++ b/src/components/content/order/common/utils/OrderSubmitProps.ts @@ -14,4 +14,5 @@ export interface OrderSubmitProps { serviceHostingType: DeployRequest.serviceHostingType; contactServiceDetails: ServiceProviderContactDetails | undefined; availabilityZones?: Record; + eula: string | undefined; } diff --git a/src/components/content/order/create/GoToSubmit.tsx b/src/components/content/order/create/GoToSubmit.tsx deleted file mode 100644 index 5130f8222..000000000 --- a/src/components/content/order/create/GoToSubmit.tsx +++ /dev/null @@ -1,72 +0,0 @@ -/* - * SPDX-License-Identifier: Apache-2.0 - * SPDX-FileCopyrightText: Huawei Inc. - */ - -import { Region, ServiceProviderContactDetails, UserOrderableServiceVo } from '../../../../xpanse-api/generated'; -import { getDeployParams } from '../formDataHelpers/deployParamsHelper'; -import { Button } from 'antd'; -import { useNavigate } from 'react-router-dom'; -import React from 'react'; -import { orderPageRoute } from '../../../utils/constants'; -import { OrderSubmitProps } from '../common/utils/OrderSubmitProps'; -import useGetAvailabilityZonesForRegionQuery from '../common/utils/useGetAvailabilityZonesForRegionQuery'; - -export default function GoToSubmit({ - selectedVersion, - selectedCsp, - region, - selectedFlavor, - versionMapper, - selectedServiceHostingType, - currentServiceProviderContactDetails, - availabilityZones, - isDisableNextButton, -}: { - selectedVersion: string; - selectedCsp: UserOrderableServiceVo.csp; - region: Region; - selectedFlavor: string; - selectedServiceHostingType: UserOrderableServiceVo.serviceHostingType; - versionMapper: Map; - currentServiceProviderContactDetails: ServiceProviderContactDetails | undefined; - availabilityZones: Record | undefined; - isDisableNextButton: boolean; -}): React.JSX.Element { - const navigate = useNavigate(); - useGetAvailabilityZonesForRegionQuery(selectedCsp, region.name); - const gotoOrderSubmit = function () { - const orderSubmitParams: OrderSubmitProps = getDeployParams( - versionMapper.get(selectedVersion) ?? [], - selectedCsp, - selectedServiceHostingType, - region, - selectedFlavor, - currentServiceProviderContactDetails, - availabilityZones - ); - - navigate( - orderPageRoute - .concat('?serviceName=', orderSubmitParams.name) - .concat('&version=', orderSubmitParams.version) - .concat('#', orderSubmitParams.category), - { - state: orderSubmitParams, - } - ); - }; - - return ( - <> -
-
-
- -
-
- - ); -} diff --git a/src/components/content/order/create/OrderSubmit.tsx b/src/components/content/order/create/OrderSubmit.tsx index a9073a81c..120d8ce70 100644 --- a/src/components/content/order/create/OrderSubmit.tsx +++ b/src/components/content/order/create/OrderSubmit.tsx @@ -19,9 +19,11 @@ import { useServiceDetailsPollingQuery } from '../orderStatus/useServiceDetailsP import { v4 } from 'uuid'; import { OrderSubmitProps } from '../common/utils/OrderSubmitProps'; import { OrderItem } from '../common/utils/OrderItem'; +import { EulaInfo } from '../common/EulaInfo'; function OrderSubmit(state: OrderSubmitProps): React.JSX.Element { const [form] = Form.useForm(); + const [isEulaAccepted, setIsEulaAccepted] = useState(false); const [isShowDeploymentResult, setIsShowDeploymentResult] = useState(false); const uniqueRequestId = useRef(v4()); const submitDeploymentRequest = useDeployRequestSubmitQuery(); @@ -59,6 +61,7 @@ function OrderSubmit(state: OrderSubmitProps): React.JSX.Element { customerServiceName: useOrderFormStore.getState().deployParams.Name as string, serviceHostingType: state.serviceHostingType, availabilityZones: state.availabilityZones, + eulaAccepted: isEulaAccepted, }; const serviceRequestProperties: Record = {}; for (const variable in useOrderFormStore.getState().deployParams) { @@ -149,6 +152,16 @@ function OrderSubmit(state: OrderSubmitProps): React.JSX.Element { ) : undefined )}
+
+
+
+ +
+
diff --git a/src/components/content/order/create/SelectServiceForm.tsx b/src/components/content/order/create/SelectServiceForm.tsx index 3e358d1e0..80af6e65c 100644 --- a/src/components/content/order/create/SelectServiceForm.tsx +++ b/src/components/content/order/create/SelectServiceForm.tsx @@ -3,7 +3,7 @@ * SPDX-FileCopyrightText: Huawei Inc. */ -import { To, useLocation, useSearchParams } from 'react-router-dom'; +import { To, useLocation, useNavigate, useSearchParams } from 'react-router-dom'; import React, { useEffect, useMemo, useState } from 'react'; import { AvailabilityZoneConfig, @@ -22,7 +22,7 @@ import { getFlavorList } from '../formDataHelpers/flavorHelper'; import { convertAreasToTabs } from '../formDataHelpers/areaHelper'; import { getRegionDropDownValues } from '../formDataHelpers/regionHelper'; import { getBilling } from '../formDataHelpers/billingHelper'; -import { Col, Form, Row, Select, Tabs } from 'antd'; +import { Button, Col, Form, Row, Select, Tabs } from 'antd'; import NavigateOrderSubmission from './NavigateOrderSubmission'; import { ContactDetailsText } from '../../common/ocl/ContactDetailsText'; import { ContactDetailsShowType } from '../../common/ocl/ContactDetailsShowType'; @@ -31,19 +31,23 @@ import { ServiceHostingSelection } from '../common/ServiceHostingSelection'; import { RegionInfo } from '../common/RegionInfo'; import { FlavorInfo } from '../common/FlavorInfo'; import { BillingInfo } from '../common/BillingInfo'; -import GoToSubmit from './GoToSubmit'; -import { servicesSubPageRoute } from '../../../utils/constants'; +import { orderPageRoute, servicesSubPageRoute } from '../../../utils/constants'; import { OrderSubmitProps } from '../common/utils/OrderSubmitProps'; import useGetAvailabilityZonesForRegionQuery from '../common/utils/useGetAvailabilityZonesForRegionQuery'; import { getAvailabilityZoneRequirementsForAService } from '../formDataHelpers/getAvailabilityZoneRequirementsForAService'; import { AvailabilityZoneFormItem } from '../common/availabilityzone/AvailabilityZoneFormItem'; +import { getEulaByCsp } from '../formDataHelpers/eulaHelper'; +import { getDeployParams } from '../formDataHelpers/deployParamsHelper'; export function SelectServiceForm({ services }: { services: UserOrderableServiceVo[] }): React.JSX.Element { + const [form] = Form.useForm(); const [urlParams] = useSearchParams(); const location = useLocation(); + const navigate = useNavigate(); const latestVersion = decodeURI(urlParams.get('latestVersion') ?? ''); const serviceName = decodeURI(urlParams.get('serviceName') ?? ''); const categoryName = decodeURI(urlParams.get('catalog') ?? ''); + const servicePageUrl = servicesSubPageRoute + categoryName; let serviceInfo: OrderSubmitProps | undefined; const versionToServicesMap = useMemo>(() => { @@ -101,6 +105,7 @@ export function SelectServiceForm({ services }: { services: UserOrderableService let currentServiceProviderContactDetails: ServiceProviderContactDetails | undefined = getContactServiceDetailsOfServiceByCsp(selectCsp, versionToServicesMap.get(selectVersion)); + const currentEula: string | undefined = getEulaByCsp(selectCsp, versionToServicesMap.get(selectVersion)); let currentBilling: Billing = getBilling(selectCsp, selectServiceHostType, versionToServicesMap.get(selectVersion)); const getAvailabilityZonesForRegionQuery = useGetAvailabilityZonesForRegionQuery(selectCsp, selectRegion); @@ -224,9 +229,39 @@ export function SelectServiceForm({ services }: { services: UserOrderableService return availabilityZoneConfigs.filter((availabilityZoneConfig) => availabilityZoneConfig.mandatory).length > 0; } + const gotoOrderSubmit = function () { + const orderSubmitParams: OrderSubmitProps = getDeployParams( + versionToServicesMap.get(selectVersion) ?? [], + selectCsp, + selectServiceHostType, + { name: selectRegion, area: selectArea }, + selectFlavor, + currentServiceProviderContactDetails, + selectAvailabilityZones, + currentEula + ); + + navigate( + orderPageRoute + .concat('?serviceName=', orderSubmitParams.name) + .concat('&version=', orderSubmitParams.version) + .concat('#', orderSubmitParams.category), + { + state: orderSubmitParams, + } + ); + }; + return ( <> -
+
@@ -306,20 +341,22 @@ export function SelectServiceForm({ services }: { services: UserOrderableService
- +
+
+
+ +
+
diff --git a/src/components/content/order/formDataHelpers/billingHelper.ts b/src/components/content/order/formDataHelpers/billingHelper.ts index 0b8ae7a5c..808c21949 100644 --- a/src/components/content/order/formDataHelpers/billingHelper.ts +++ b/src/components/content/order/formDataHelpers/billingHelper.ts @@ -11,7 +11,8 @@ export function getBilling( versionMapper: UserOrderableServiceVo[] | undefined ): Billing { let billing: Billing = { - billingModel: Billing.billingModel.MONTHLY, + // TODO Will be fixed in #1591 or #1592 + billingModes: ['monthly'], }; if (versionMapper) { versionMapper.forEach((userOrderableServiceVo) => { diff --git a/src/components/content/order/formDataHelpers/deployParamsHelper.ts b/src/components/content/order/formDataHelpers/deployParamsHelper.ts index b6e06d56d..f8db44fa0 100644 --- a/src/components/content/order/formDataHelpers/deployParamsHelper.ts +++ b/src/components/content/order/formDataHelpers/deployParamsHelper.ts @@ -20,7 +20,8 @@ export const getDeployParams = ( region: Region, selectFlavor: string, currentContactServiceDetails: ServiceProviderContactDetails | undefined, - availabilityZones: Record | undefined + availabilityZones: Record | undefined, + eula: string | undefined ): OrderSubmitProps => { let service: UserOrderableServiceVo | undefined; let registeredServiceId = ''; @@ -45,6 +46,7 @@ export const getDeployParams = ( serviceHostingType: selectServiceHostingType as DeployRequest.serviceHostingType, contactServiceDetails: currentContactServiceDetails ?? undefined, availabilityZones: availabilityZones, + eula: eula, }; if (service !== undefined) { diff --git a/src/components/content/order/formDataHelpers/eulaHelper.ts b/src/components/content/order/formDataHelpers/eulaHelper.ts new file mode 100644 index 000000000..c5201b3be --- /dev/null +++ b/src/components/content/order/formDataHelpers/eulaHelper.ts @@ -0,0 +1,21 @@ +/* + * SPDX-License-Identifier: Apache-2.0 + * SPDX-FileCopyrightText: Huawei Inc. + */ + +import { UserOrderableServiceVo } from '../../../../xpanse-api/generated'; + +export function getEulaByCsp( + selectCsp: UserOrderableServiceVo.csp, + services: UserOrderableServiceVo[] | undefined +): string | undefined { + let eula: string | undefined = undefined; + if (services) { + services.forEach((userOrderableServiceVo) => { + if (userOrderableServiceVo.csp === selectCsp) { + eula = userOrderableServiceVo.eula; + } + }); + } + return eula; +} diff --git a/src/components/content/order/formDataHelpers/modifyParamsHelper.ts b/src/components/content/order/formDataHelpers/modifyParamsHelper.ts index 073fc1390..fbd0ceb9a 100644 --- a/src/components/content/order/formDataHelpers/modifyParamsHelper.ts +++ b/src/components/content/order/formDataHelpers/modifyParamsHelper.ts @@ -3,37 +3,15 @@ * SPDX-FileCopyrightText: Huawei Inc. */ -import { OrderSubmitProps } from '../common/utils/OrderSubmitProps'; import { DeployParam } from '../types/DeployParam'; -import { - DeployedServiceDetails, - DeployVariable, - ServiceProviderContactDetails, - VendorHostedDeployedServiceDetails, -} from '../../../../xpanse-api/generated'; +import { DeployVariable } from '../../../../xpanse-api/generated'; + +export const getModifyParams = (variables: DeployVariable[]): DeployParam[] => { + const params: DeployParam[] = []; -export const getModifyParams = ( - currentSelectedService: DeployedServiceDetails | VendorHostedDeployedServiceDetails, - serviceProviderContactDetails: ServiceProviderContactDetails | undefined, - variables: DeployVariable[] -): OrderSubmitProps => { - const orderSubmitProps: OrderSubmitProps = { - id: currentSelectedService.serviceTemplateId ?? '', - category: currentSelectedService.deployRequest.category, - name: currentSelectedService.name, - version: currentSelectedService.version, - region: currentSelectedService.deployRequest.region.name, - area: currentSelectedService.deployRequest.region.area, - csp: currentSelectedService.deployRequest.csp, - flavor: currentSelectedService.deployRequest.flavor, - params: new Array(), - serviceHostingType: currentSelectedService.serviceHostingType, - contactServiceDetails: serviceProviderContactDetails ?? undefined, - availabilityZones: currentSelectedService.deployRequest.availabilityZones, - }; if (variables.length > 0) { for (const param of variables) { - orderSubmitProps.params.push({ + params.push({ name: param.name, kind: param.kind, type: param.dataType, @@ -47,5 +25,5 @@ export const getModifyParams = ( }); } } - return orderSubmitProps; + return params; }; diff --git a/src/components/content/order/migrate/DeploymentForm.tsx b/src/components/content/order/migrate/DeploymentForm.tsx index 0f372d18c..38c0f98eb 100644 --- a/src/components/content/order/migrate/DeploymentForm.tsx +++ b/src/components/content/order/migrate/DeploymentForm.tsx @@ -8,11 +8,13 @@ import { getDeployParams } from '../formDataHelpers/deployParamsHelper'; import { ApiDoc } from '../../common/doc/ApiDoc'; import { Button, Form, Input, Space, StepProps, Tooltip } from 'antd'; import { InfoCircleOutlined } from '@ant-design/icons'; -import React from 'react'; +import React, { Dispatch, SetStateAction } from 'react'; import { useOrderFormStore } from '../store/OrderFormStore'; import { CUSTOMER_SERVICE_NAME_FIELD } from '../../../utils/constants'; import { MigrationSteps } from '../types/MigrationSteps'; import { OrderItem } from '../common/utils/OrderItem'; +import { getEulaByCsp } from '../formDataHelpers/eulaHelper'; +import { EulaInfo } from '../common/EulaInfo'; export const DeploymentForm = ({ userOrderableServiceVoList, @@ -21,6 +23,8 @@ export const DeploymentForm = ({ region, availabilityZones, selectFlavor, + isEulaAccepted, + setIsEulaAccepted, setCurrentMigrationStep, setDeployParameters, stepItem, @@ -31,11 +35,14 @@ export const DeploymentForm = ({ region: Region; availabilityZones: Record; selectFlavor: string; + isEulaAccepted: boolean; + setIsEulaAccepted: Dispatch>; setCurrentMigrationStep: (currentMigrationStep: MigrationSteps) => void; setDeployParameters: (createRequest: DeployRequest) => void; stepItem: StepProps; }): React.JSX.Element => { const [form] = Form.useForm(); + const currentEula: string | undefined = getEulaByCsp(selectCsp, userOrderableServiceVoList); const deployParams = getDeployParams( userOrderableServiceVoList, selectCsp, @@ -43,7 +50,8 @@ export const DeploymentForm = ({ region, selectFlavor, undefined, - availabilityZones + availabilityZones, + currentEula ); const [cacheFormVariable] = useOrderFormStore((state) => [state.addDeployVariable]); @@ -62,6 +70,7 @@ export const DeploymentForm = ({ customerServiceName: useOrderFormStore.getState().deployParams.Name as string, serviceHostingType: deployParams.serviceHostingType, availabilityZones: deployParams.availabilityZones, + eulaAccepted: isEulaAccepted, }; const serviceRequestProperties: Record = {}; for (const variable in useOrderFormStore.getState().deployParams) { @@ -128,6 +137,16 @@ export const DeploymentForm = ({ ) : undefined )}
+
+
+
+ +
+
- diff --git a/src/components/content/order/modify/Modify.tsx b/src/components/content/order/modify/Modify.tsx index b2f0db9f5..d9fc1037a 100644 --- a/src/components/content/order/modify/Modify.tsx +++ b/src/components/content/order/modify/Modify.tsx @@ -20,11 +20,11 @@ import { OrderItem } from '../common/utils/OrderItem'; import { useOrderFormStore } from '../store/OrderFormStore'; import '../../../../styles/service_order.css'; import { getModifyParams } from '../formDataHelpers/modifyParamsHelper'; -import { OrderSubmitProps } from '../common/utils/OrderSubmitProps'; import ScaleOrModifySubmitStatusAlert from '../common/ScaleOrModifySubmitStatusAlert'; import { ModifySubmitRequest } from '../common/modifySubmitRequest'; import { useMutation } from '@tanstack/react-query'; import { getExistingServiceParameters } from '../common/utils/existingServiceParameters'; +import { DeployParam } from '../types/DeployParam'; export const Modify = ({ currentSelectedService, @@ -32,7 +32,7 @@ export const Modify = ({ currentSelectedService: DeployedServiceDetails | VendorHostedDeployedServiceDetails; }): React.JSX.Element => { const [form] = Form.useForm(); - let getParams: OrderSubmitProps | undefined = undefined; + let getParams: DeployParam[] = []; const [isShowModifyingResult, setIsShowModifyingResult] = useState(false); const [modifyStatus, setModifyStatus] = useState(undefined); @@ -53,11 +53,7 @@ export const Modify = ({ }; if (serviceTemplateDetailsQuery.isSuccess) { - getParams = getModifyParams( - currentSelectedService, - serviceTemplateDetailsQuery.data.serviceProviderContactDetails, - serviceTemplateDetailsQuery.data.variables - ); + getParams = getModifyParams(serviceTemplateDetailsQuery.data.variables); } const onFinish = () => { @@ -145,9 +141,14 @@ export const Modify = ({ : '' } > - {getParams?.params.map((item) => + {getParams.map((item) => item.kind === 'variable' || item.kind === 'env' ? ( - + ) : undefined )}
diff --git a/src/components/content/order/scale/Scale.tsx b/src/components/content/order/scale/Scale.tsx index 57f0bcde6..253cb429a 100644 --- a/src/components/content/order/scale/Scale.tsx +++ b/src/components/content/order/scale/Scale.tsx @@ -22,10 +22,10 @@ import { CUSTOMER_SERVICE_NAME_FIELD } from '../../../utils/constants'; import { OrderItem } from '../common/utils/OrderItem'; import { useOrderFormStore } from '../store/OrderFormStore'; import { getModifyParams } from '../formDataHelpers/modifyParamsHelper'; -import { OrderSubmitProps } from '../common/utils/OrderSubmitProps'; import { ModifySubmitRequest } from '../common/modifySubmitRequest'; import ScaleOrModifySubmitStatusAlert from '../common/ScaleOrModifySubmitStatusAlert'; import { useMutation } from '@tanstack/react-query'; +import { DeployParam } from '../types/DeployParam'; export const Scale = ({ currentSelectedService, @@ -34,7 +34,7 @@ export const Scale = ({ }): React.JSX.Element => { const [form] = Form.useForm(); let flavorList: ServiceFlavor[] = []; - let getParams: OrderSubmitProps | undefined = undefined; + let getParams: DeployParam[] = []; let currentBilling: Billing | undefined = undefined; const [modifyStatus, setModifyStatus] = useState(undefined); const [selectFlavor, setSelectFlavor] = useState( @@ -56,11 +56,7 @@ export const Scale = ({ if (serviceTemplateDetailsQuery.data.flavors.serviceFlavors.length > 0) { flavorList = serviceTemplateDetailsQuery.data.flavors.serviceFlavors; } - getParams = getModifyParams( - currentSelectedService, - serviceTemplateDetailsQuery.data.serviceProviderContactDetails, - serviceTemplateDetailsQuery.data.variables - ); + getParams = getModifyParams(serviceTemplateDetailsQuery.data.variables); } const onFinish = () => { @@ -170,8 +166,8 @@ export const Scale = ({ <> {flavor.fixedPrice} - {'/'} - {currentBilling.billingModel} + {/* TODO Will be fixed in #1591 or #1592 */} + {currentBilling.billingModes[0]} ) : ( @@ -188,8 +184,9 @@ export const Scale = ({ <> {flavor.fixedPrice} - {'/'} - {currentBilling.billingModel} + {/* TODO Will be fixed in #1591 or #1592 */} + {currentBilling.billingModes[0]} + in #1591 or #1592 ) : ( @@ -235,9 +232,14 @@ export const Scale = ({ : '' } > - {getParams?.params.map((item) => + {getParams.map((item) => item.kind === 'variable' || item.kind === 'env' ? ( - + ) : undefined )}
diff --git a/src/components/content/review/ServiceReviewsDetails.tsx b/src/components/content/review/ServiceReviewsDetails.tsx index 5c11bab3c..003760dd6 100644 --- a/src/components/content/review/ServiceReviewsDetails.tsx +++ b/src/components/content/review/ServiceReviewsDetails.tsx @@ -16,6 +16,7 @@ import { ApproveOrRejectServiceTemplate } from './ApproveOrRejectServiceTemplate import '../../../styles/service_review.css'; import useGetRegistrationDetails from './query/useGetRegistrationDetails'; import { useApproveOrRejectMutationState } from './query/useApproveOrRejectRequest'; +import { AgreementText } from '../common/ocl/AgreementText'; export const ServiceReviewsDetails = ({ currentServiceTemplateVo, @@ -182,6 +183,13 @@ export const ServiceReviewsDetails = ({ {currentServiceTemplateVo.description} + + {currentServiceTemplateVo.eula ? ( + + ) : ( + Not Provided + )} + {getRegistrationDetailsQuery.isSuccess && getRegistrationDetailsQuery.data.serviceRegistrationState !== diff --git a/src/styles/register.css b/src/styles/register.css index 17a114110..32a032f70 100644 --- a/src/styles/register.css +++ b/src/styles/register.css @@ -52,6 +52,13 @@ max-width: 50vh; } +.agreement-text { + max-height: 40vh; + position: relative; + overflow: auto; + max-width: 60vh; +} + .try-again-btn-class { margin-right: 20px; } diff --git a/src/xpanse-api/api.json b/src/xpanse-api/api.json index 512f276cc..04963fef4 100644 --- a/src/xpanse-api/api.json +++ b/src/xpanse-api/api.json @@ -3,7 +3,7 @@ "info": { "title": "XpanseAPI", "description": "RESTful Services to interact with Xpanse runtime.", - "version": "1.0.11-SNAPSHOT" + "version": "@project.version@" }, "servers": [{ "url": "http://localhost:8080", "description": "Generated server url" }], "security": [{ "OAuth2Flow": [] }], @@ -72,14 +72,14 @@ "description": "Unprocessable Entity", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Response" } } } }, - "403": { - "description": "Forbidden", - "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Response" } } } - }, "401": { "description": "Unauthorized", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Response" } } } }, + "403": { + "description": "Forbidden", + "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Response" } } } + }, "502": { "description": "Bad Gateway", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Response" } } } @@ -123,14 +123,14 @@ "description": "Unprocessable Entity", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Response" } } } }, - "403": { - "description": "Forbidden", - "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Response" } } } - }, "401": { "description": "Unauthorized", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Response" } } } }, + "403": { + "description": "Forbidden", + "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Response" } } } + }, "502": { "description": "Bad Gateway", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Response" } } } @@ -188,14 +188,14 @@ "description": "Unprocessable Entity", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Response" } } } }, - "403": { - "description": "Forbidden", - "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Response" } } } - }, "401": { "description": "Unauthorized", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Response" } } } }, + "403": { + "description": "Forbidden", + "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Response" } } } + }, "502": { "description": "Bad Gateway", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Response" } } } @@ -236,14 +236,14 @@ "description": "Unprocessable Entity", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Response" } } } }, - "403": { - "description": "Forbidden", - "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Response" } } } - }, "401": { "description": "Unauthorized", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Response" } } } }, + "403": { + "description": "Forbidden", + "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Response" } } } + }, "502": { "description": "Bad Gateway", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Response" } } } @@ -274,14 +274,14 @@ "description": "Unprocessable Entity", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Response" } } } }, - "403": { - "description": "Forbidden", - "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Response" } } } - }, "401": { "description": "Unauthorized", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Response" } } } }, + "403": { + "description": "Forbidden", + "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Response" } } } + }, "502": { "description": "Bad Gateway", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Response" } } } @@ -344,14 +344,14 @@ "description": "Unprocessable Entity", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Response" } } } }, - "403": { - "description": "Forbidden", - "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Response" } } } - }, "401": { "description": "Unauthorized", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Response" } } } }, + "403": { + "description": "Forbidden", + "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Response" } } } + }, "502": { "description": "Bad Gateway", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Response" } } } @@ -379,14 +379,14 @@ "description": "Unprocessable Entity", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Response" } } } }, - "403": { - "description": "Forbidden", - "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Response" } } } - }, "401": { "description": "Unauthorized", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Response" } } } }, + "403": { + "description": "Forbidden", + "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Response" } } } + }, "502": { "description": "Bad Gateway", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Response" } } } @@ -419,14 +419,14 @@ "description": "Unprocessable Entity", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Response" } } } }, - "403": { - "description": "Forbidden", - "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Response" } } } - }, "401": { "description": "Unauthorized", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Response" } } } }, + "403": { + "description": "Forbidden", + "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Response" } } } + }, "502": { "description": "Bad Gateway", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Response" } } } @@ -459,14 +459,14 @@ "description": "Unprocessable Entity", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Response" } } } }, - "403": { - "description": "Forbidden", - "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Response" } } } - }, "401": { "description": "Unauthorized", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Response" } } } }, + "403": { + "description": "Forbidden", + "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Response" } } } + }, "502": { "description": "Bad Gateway", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Response" } } } @@ -511,14 +511,14 @@ "description": "Unprocessable Entity", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Response" } } } }, - "403": { - "description": "Forbidden", - "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Response" } } } - }, "401": { "description": "Unauthorized", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Response" } } } }, + "403": { + "description": "Forbidden", + "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Response" } } } + }, "502": { "description": "Bad Gateway", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Response" } } } @@ -563,14 +563,14 @@ "description": "Unprocessable Entity", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Response" } } } }, - "403": { - "description": "Forbidden", - "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Response" } } } - }, "401": { "description": "Unauthorized", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Response" } } } }, + "403": { + "description": "Forbidden", + "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Response" } } } + }, "502": { "description": "Bad Gateway", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Response" } } } @@ -606,14 +606,14 @@ "description": "Unprocessable Entity", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Response" } } } }, - "403": { - "description": "Forbidden", - "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Response" } } } - }, "401": { "description": "Unauthorized", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Response" } } } }, + "403": { + "description": "Forbidden", + "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Response" } } } + }, "502": { "description": "Bad Gateway", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Response" } } } @@ -656,14 +656,14 @@ "description": "Unprocessable Entity", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Response" } } } }, - "403": { - "description": "Forbidden", - "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Response" } } } - }, "401": { "description": "Unauthorized", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Response" } } } }, + "403": { + "description": "Forbidden", + "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Response" } } } + }, "502": { "description": "Bad Gateway", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Response" } } } @@ -702,14 +702,14 @@ "description": "Unprocessable Entity", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Response" } } } }, - "403": { - "description": "Forbidden", - "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Response" } } } - }, "401": { "description": "Unauthorized", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Response" } } } }, + "403": { + "description": "Forbidden", + "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Response" } } } + }, "502": { "description": "Bad Gateway", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Response" } } } @@ -754,14 +754,14 @@ "description": "Unprocessable Entity", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Response" } } } }, - "403": { - "description": "Forbidden", - "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Response" } } } - }, "401": { "description": "Unauthorized", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Response" } } } }, + "403": { + "description": "Forbidden", + "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Response" } } } + }, "502": { "description": "Bad Gateway", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Response" } } } @@ -796,22 +796,22 @@ "description": "Internal Server Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Response" } } } }, - "400": { - "description": "Bad Request", - "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Response" } } } - }, "422": { "description": "Unprocessable Entity", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Response" } } } }, - "403": { - "description": "Forbidden", + "400": { + "description": "Bad Request", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Response" } } } }, "401": { "description": "Unauthorized", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Response" } } } }, + "403": { + "description": "Forbidden", + "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Response" } } } + }, "502": { "description": "Bad Gateway", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Response" } } } @@ -844,14 +844,14 @@ "description": "Unprocessable Entity", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Response" } } } }, - "403": { - "description": "Forbidden", - "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Response" } } } - }, "401": { "description": "Unauthorized", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Response" } } } }, + "403": { + "description": "Forbidden", + "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Response" } } } + }, "502": { "description": "Bad Gateway", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Response" } } } @@ -896,14 +896,14 @@ "description": "Unprocessable Entity", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Response" } } } }, - "403": { - "description": "Forbidden", - "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Response" } } } - }, "401": { "description": "Unauthorized", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Response" } } } }, + "403": { + "description": "Forbidden", + "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Response" } } } + }, "502": { "description": "Bad Gateway", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Response" } } } @@ -934,14 +934,14 @@ "description": "Unprocessable Entity", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Response" } } } }, - "403": { - "description": "Forbidden", - "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Response" } } } - }, "401": { "description": "Unauthorized", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Response" } } } }, + "403": { + "description": "Forbidden", + "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Response" } } } + }, "502": { "description": "Bad Gateway", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Response" } } } @@ -969,14 +969,14 @@ "description": "Unprocessable Entity", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Response" } } } }, - "403": { - "description": "Forbidden", - "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Response" } } } - }, "401": { "description": "Unauthorized", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Response" } } } }, + "403": { + "description": "Forbidden", + "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Response" } } } + }, "502": { "description": "Bad Gateway", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Response" } } } @@ -1019,14 +1019,14 @@ "description": "Unprocessable Entity", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Response" } } } }, - "403": { - "description": "Forbidden", - "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Response" } } } - }, "401": { "description": "Unauthorized", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Response" } } } }, + "403": { + "description": "Forbidden", + "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Response" } } } + }, "502": { "description": "Bad Gateway", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Response" } } } @@ -1055,14 +1055,14 @@ "description": "Unprocessable Entity", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Response" } } } }, - "403": { - "description": "Forbidden", - "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Response" } } } - }, "401": { "description": "Unauthorized", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Response" } } } }, + "403": { + "description": "Forbidden", + "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Response" } } } + }, "502": { "description": "Bad Gateway", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Response" } } } @@ -1120,14 +1120,14 @@ "description": "Unprocessable Entity", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Response" } } } }, - "403": { - "description": "Forbidden", - "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Response" } } } - }, "401": { "description": "Unauthorized", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Response" } } } }, + "403": { + "description": "Forbidden", + "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Response" } } } + }, "502": { "description": "Bad Gateway", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Response" } } } @@ -1168,14 +1168,14 @@ "description": "Unprocessable Entity", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Response" } } } }, - "403": { - "description": "Forbidden", - "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Response" } } } - }, "401": { "description": "Unauthorized", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Response" } } } }, + "403": { + "description": "Forbidden", + "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Response" } } } + }, "502": { "description": "Bad Gateway", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Response" } } } @@ -1206,14 +1206,14 @@ "description": "Unprocessable Entity", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Response" } } } }, - "403": { - "description": "Forbidden", - "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Response" } } } - }, "401": { "description": "Unauthorized", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Response" } } } }, + "403": { + "description": "Forbidden", + "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Response" } } } + }, "502": { "description": "Bad Gateway", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Response" } } } @@ -1276,14 +1276,14 @@ "description": "Unprocessable Entity", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Response" } } } }, - "403": { - "description": "Forbidden", - "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Response" } } } - }, "401": { "description": "Unauthorized", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Response" } } } }, + "403": { + "description": "Forbidden", + "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Response" } } } + }, "502": { "description": "Bad Gateway", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Response" } } } @@ -1388,14 +1388,14 @@ "description": "Unprocessable Entity", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Response" } } } }, - "403": { - "description": "Forbidden", - "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Response" } } } - }, "401": { "description": "Unauthorized", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Response" } } } }, + "403": { + "description": "Forbidden", + "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Response" } } } + }, "502": { "description": "Bad Gateway", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Response" } } } @@ -1434,14 +1434,14 @@ "description": "Unprocessable Entity", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Response" } } } }, - "403": { - "description": "Forbidden", - "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Response" } } } - }, "401": { "description": "Unauthorized", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Response" } } } }, + "403": { + "description": "Forbidden", + "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Response" } } } + }, "502": { "description": "Bad Gateway", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Response" } } } @@ -1475,14 +1475,14 @@ "description": "Unprocessable Entity", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Response" } } } }, - "403": { - "description": "Forbidden", - "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Response" } } } - }, "401": { "description": "Unauthorized", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Response" } } } }, + "403": { + "description": "Forbidden", + "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Response" } } } + }, "502": { "description": "Bad Gateway", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Response" } } } @@ -1586,14 +1586,14 @@ "description": "Unprocessable Entity", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Response" } } } }, - "403": { - "description": "Forbidden", - "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Response" } } } - }, "401": { "description": "Unauthorized", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Response" } } } }, + "403": { + "description": "Forbidden", + "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Response" } } } + }, "502": { "description": "Bad Gateway", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Response" } } } @@ -1632,14 +1632,14 @@ "description": "Unprocessable Entity", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Response" } } } }, - "403": { - "description": "Forbidden", - "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Response" } } } - }, "401": { "description": "Unauthorized", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Response" } } } }, + "403": { + "description": "Forbidden", + "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Response" } } } + }, "502": { "description": "Bad Gateway", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Response" } } } @@ -1672,22 +1672,22 @@ "description": "Internal Server Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Response" } } } }, - "400": { - "description": "Bad Request", - "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Response" } } } - }, "422": { "description": "Unprocessable Entity", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Response" } } } }, - "403": { - "description": "Forbidden", + "400": { + "description": "Bad Request", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Response" } } } }, "401": { "description": "Unauthorized", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Response" } } } }, + "403": { + "description": "Forbidden", + "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Response" } } } + }, "502": { "description": "Bad Gateway", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Response" } } } @@ -1728,14 +1728,14 @@ "description": "Unprocessable Entity", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Response" } } } }, - "403": { - "description": "Forbidden", - "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Response" } } } - }, "401": { "description": "Unauthorized", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Response" } } } }, + "403": { + "description": "Forbidden", + "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Response" } } } + }, "502": { "description": "Bad Gateway", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Response" } } } @@ -1773,14 +1773,14 @@ "description": "Unprocessable Entity", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Response" } } } }, - "403": { - "description": "Forbidden", - "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Response" } } } - }, "401": { "description": "Unauthorized", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Response" } } } }, + "403": { + "description": "Forbidden", + "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Response" } } } + }, "502": { "description": "Bad Gateway", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Response" } } } @@ -1840,14 +1840,14 @@ "description": "Unprocessable Entity", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Response" } } } }, - "403": { - "description": "Forbidden", - "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Response" } } } - }, "401": { "description": "Unauthorized", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Response" } } } }, + "403": { + "description": "Forbidden", + "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Response" } } } + }, "502": { "description": "Bad Gateway", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Response" } } } @@ -1885,14 +1885,14 @@ "description": "Unprocessable Entity", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Response" } } } }, - "403": { - "description": "Forbidden", - "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Response" } } } - }, "401": { "description": "Unauthorized", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Response" } } } }, + "403": { + "description": "Forbidden", + "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Response" } } } + }, "502": { "description": "Bad Gateway", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Response" } } } @@ -1931,14 +1931,14 @@ "description": "Unprocessable Entity", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Response" } } } }, - "403": { - "description": "Forbidden", - "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Response" } } } - }, "401": { "description": "Unauthorized", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Response" } } } }, + "403": { + "description": "Forbidden", + "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Response" } } } + }, "502": { "description": "Bad Gateway", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Response" } } } @@ -2021,14 +2021,14 @@ "description": "Unprocessable Entity", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Response" } } } }, - "403": { - "description": "Forbidden", - "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Response" } } } - }, "401": { "description": "Unauthorized", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Response" } } } }, + "403": { + "description": "Forbidden", + "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Response" } } } + }, "502": { "description": "Bad Gateway", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Response" } } } @@ -2074,14 +2074,14 @@ "description": "Unprocessable Entity", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Response" } } } }, - "403": { - "description": "Forbidden", - "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Response" } } } - }, "401": { "description": "Unauthorized", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Response" } } } }, + "403": { + "description": "Forbidden", + "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Response" } } } + }, "502": { "description": "Bad Gateway", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Response" } } } @@ -2191,14 +2191,14 @@ "description": "Unprocessable Entity", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Response" } } } }, - "403": { - "description": "Forbidden", - "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Response" } } } - }, "401": { "description": "Unauthorized", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Response" } } } }, + "403": { + "description": "Forbidden", + "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Response" } } } + }, "502": { "description": "Bad Gateway", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Response" } } } @@ -2244,14 +2244,14 @@ "description": "Unprocessable Entity", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Response" } } } }, - "403": { - "description": "Forbidden", - "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Response" } } } - }, "401": { "description": "Unauthorized", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Response" } } } }, + "403": { + "description": "Forbidden", + "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Response" } } } + }, "502": { "description": "Bad Gateway", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Response" } } } @@ -2361,14 +2361,14 @@ "description": "Unprocessable Entity", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Response" } } } }, - "403": { - "description": "Forbidden", - "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Response" } } } - }, "401": { "description": "Unauthorized", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Response" } } } }, + "403": { + "description": "Forbidden", + "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Response" } } } + }, "502": { "description": "Bad Gateway", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Response" } } } @@ -2414,14 +2414,14 @@ "description": "Unprocessable Entity", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Response" } } } }, - "403": { - "description": "Forbidden", - "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Response" } } } - }, "401": { "description": "Unauthorized", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Response" } } } }, + "403": { + "description": "Forbidden", + "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Response" } } } + }, "502": { "description": "Bad Gateway", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Response" } } } @@ -2464,14 +2464,14 @@ "description": "Unprocessable Entity", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Response" } } } }, - "403": { - "description": "Forbidden", - "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Response" } } } - }, "401": { "description": "Unauthorized", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Response" } } } }, + "403": { + "description": "Forbidden", + "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Response" } } } + }, "502": { "description": "Bad Gateway", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Response" } } } @@ -2557,14 +2557,14 @@ "description": "Unprocessable Entity", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Response" } } } }, - "403": { - "description": "Forbidden", - "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Response" } } } - }, "401": { "description": "Unauthorized", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Response" } } } }, + "403": { + "description": "Forbidden", + "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Response" } } } + }, "502": { "description": "Bad Gateway", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Response" } } } @@ -2598,14 +2598,14 @@ "description": "Unprocessable Entity", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Response" } } } }, - "403": { - "description": "Forbidden", - "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Response" } } } - }, "401": { "description": "Unauthorized", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Response" } } } }, + "403": { + "description": "Forbidden", + "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Response" } } } + }, "502": { "description": "Bad Gateway", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Response" } } } @@ -2635,14 +2635,14 @@ "description": "Unprocessable Entity", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Response" } } } }, - "403": { - "description": "Forbidden", - "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Response" } } } - }, "401": { "description": "Unauthorized", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Response" } } } }, + "403": { + "description": "Forbidden", + "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Response" } } } + }, "502": { "description": "Bad Gateway", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Response" } } } @@ -2746,14 +2746,14 @@ "description": "Unprocessable Entity", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Response" } } } }, - "403": { - "description": "Forbidden", - "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Response" } } } - }, "401": { "description": "Unauthorized", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Response" } } } }, + "403": { + "description": "Forbidden", + "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Response" } } } + }, "502": { "description": "Bad Gateway", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Response" } } } @@ -2799,14 +2799,14 @@ "description": "Unprocessable Entity", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Response" } } } }, - "403": { - "description": "Forbidden", - "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Response" } } } - }, "401": { "description": "Unauthorized", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Response" } } } }, + "403": { + "description": "Forbidden", + "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Response" } } } + }, "502": { "description": "Bad Gateway", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Response" } } } @@ -2887,14 +2887,14 @@ "description": "Unprocessable Entity", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Response" } } } }, - "403": { - "description": "Forbidden", - "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Response" } } } - }, "401": { "description": "Unauthorized", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Response" } } } }, + "403": { + "description": "Forbidden", + "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Response" } } } + }, "502": { "description": "Bad Gateway", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Response" } } } @@ -2954,14 +2954,14 @@ "description": "Unprocessable Entity", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Response" } } } }, - "403": { - "description": "Forbidden", - "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Response" } } } - }, "401": { "description": "Unauthorized", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Response" } } } }, + "403": { + "description": "Forbidden", + "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Response" } } } + }, "502": { "description": "Bad Gateway", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Response" } } } @@ -3024,14 +3024,14 @@ "description": "Unprocessable Entity", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Response" } } } }, - "403": { - "description": "Forbidden", - "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Response" } } } - }, "401": { "description": "Unauthorized", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Response" } } } }, + "403": { + "description": "Forbidden", + "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Response" } } } + }, "502": { "description": "Bad Gateway", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Response" } } } @@ -3099,14 +3099,14 @@ "description": "Unprocessable Entity", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Response" } } } }, - "403": { - "description": "Forbidden", - "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Response" } } } - }, "401": { "description": "Unauthorized", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Response" } } } }, + "403": { + "description": "Forbidden", + "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Response" } } } + }, "502": { "description": "Bad Gateway", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Response" } } } @@ -3164,14 +3164,14 @@ "description": "Unprocessable Entity", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Response" } } } }, - "403": { - "description": "Forbidden", - "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Response" } } } - }, "401": { "description": "Unauthorized", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Response" } } } }, + "403": { + "description": "Forbidden", + "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Response" } } } + }, "502": { "description": "Bad Gateway", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Response" } } } @@ -3278,14 +3278,14 @@ "description": "Unprocessable Entity", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Response" } } } }, - "403": { - "description": "Forbidden", - "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Response" } } } - }, "401": { "description": "Unauthorized", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Response" } } } }, + "403": { + "description": "Forbidden", + "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Response" } } } + }, "502": { "description": "Bad Gateway", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Response" } } } @@ -3337,14 +3337,14 @@ "description": "Unprocessable Entity", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Response" } } } }, - "403": { - "description": "Forbidden", - "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Response" } } } - }, "401": { "description": "Unauthorized", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Response" } } } }, + "403": { + "description": "Forbidden", + "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Response" } } } + }, "502": { "description": "Bad Gateway", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Response" } } } @@ -3377,14 +3377,14 @@ "description": "Unprocessable Entity", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Response" } } } }, - "403": { - "description": "Forbidden", - "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Response" } } } - }, "401": { "description": "Unauthorized", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Response" } } } }, + "403": { + "description": "Forbidden", + "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Response" } } } + }, "502": { "description": "Bad Gateway", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Response" } } } @@ -3430,14 +3430,14 @@ "description": "Unprocessable Entity", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Response" } } } }, - "403": { - "description": "Forbidden", - "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Response" } } } - }, "401": { "description": "Unauthorized", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Response" } } } }, + "403": { + "description": "Forbidden", + "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Response" } } } + }, "502": { "description": "Bad Gateway", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Response" } } } @@ -3469,14 +3469,14 @@ "description": "Unprocessable Entity", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Response" } } } }, - "403": { - "description": "Forbidden", - "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Response" } } } - }, "401": { "description": "Unauthorized", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Response" } } } }, + "403": { + "description": "Forbidden", + "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Response" } } } + }, "502": { "description": "Bad Gateway", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Response" } } } @@ -3504,14 +3504,14 @@ "description": "Unprocessable Entity", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Response" } } } }, - "403": { - "description": "Forbidden", - "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Response" } } } - }, "401": { "description": "Unauthorized", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Response" } } } }, + "403": { + "description": "Forbidden", + "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Response" } } } + }, "502": { "description": "Bad Gateway", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Response" } } } @@ -3542,14 +3542,14 @@ "description": "Unprocessable Entity", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Response" } } } }, - "403": { - "description": "Forbidden", - "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Response" } } } - }, "401": { "description": "Unauthorized", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Response" } } } }, + "403": { + "description": "Forbidden", + "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Response" } } } + }, "502": { "description": "Bad Gateway", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Response" } } } @@ -3806,7 +3806,7 @@ "properties": { "customerServiceName": { "type": "string", - "description": "Customer's name for the service. Used only for customer's reference.If not provided, this value will be auto-generated" + "description": "Customer's name for the service. Used only for customer's reference. If not provided, the existing customerServiceName from the service will be reused." }, "flavor": { "type": "string", "description": "The flavor of the Service." }, "serviceRequestProperties": { @@ -3855,13 +3855,17 @@ "description": "The list of availability zones of the service." }, "Billing": { - "required": ["billingModel"], + "required": ["billingModes"], "type": "object", "properties": { - "billingModel": { - "type": "string", - "description": "The billing model of the managed service", - "enum": ["yearly", "monthly", "daily", "hourly", "pay_per_use"] + "billingModes": { + "type": "array", + "description": "Supported billing modes by the managed service", + "items": { + "type": "string", + "description": "Supported billing modes by the managed service", + "enum": ["yearly", "monthly", "daily", "hourly", "pay_per_use"] + } } }, "description": "The billing policy of the managed service" @@ -4128,7 +4132,6 @@ "csp", "deployment", "description", - "eula", "flavors", "icon", "id", @@ -5009,7 +5012,6 @@ "category", "csp", "description", - "eula", "flavors", "icon", "id", diff --git a/src/xpanse-api/generated/core/OpenAPI.ts b/src/xpanse-api/generated/core/OpenAPI.ts index d6c9ec6d8..4aa70df79 100644 --- a/src/xpanse-api/generated/core/OpenAPI.ts +++ b/src/xpanse-api/generated/core/OpenAPI.ts @@ -26,7 +26,7 @@ export type OpenAPIConfig = { export const OpenAPI: OpenAPIConfig = { BASE: 'http://localhost:8080', - VERSION: '1.0.11-SNAPSHOT', + VERSION: '@project.version@', WITH_CREDENTIALS: false, CREDENTIALS: 'include', TOKEN: undefined, diff --git a/src/xpanse-api/generated/index.ts b/src/xpanse-api/generated/index.ts index 9c9eab903..6f37eb480 100644 --- a/src/xpanse-api/generated/index.ts +++ b/src/xpanse-api/generated/index.ts @@ -16,7 +16,7 @@ export { AbstractCredentialInfo } from './models/AbstractCredentialInfo'; export { AutoFill } from './models/AutoFill'; export type { AvailabilityZoneConfig } from './models/AvailabilityZoneConfig'; export { BackendSystemStatus } from './models/BackendSystemStatus'; -export { Billing } from './models/Billing'; +export type { Billing } from './models/Billing'; export { CloudServiceProvider } from './models/CloudServiceProvider'; export { CreateCredential } from './models/CreateCredential'; export type { CredentialVariable } from './models/CredentialVariable'; diff --git a/src/xpanse-api/generated/models/Billing.ts b/src/xpanse-api/generated/models/Billing.ts index bab317b27..ff8d1b3b0 100644 --- a/src/xpanse-api/generated/models/Billing.ts +++ b/src/xpanse-api/generated/models/Billing.ts @@ -12,19 +12,7 @@ */ export type Billing = { /** - * The billing model of the managed service + * Supported billing modes by the managed service */ - billingModel: Billing.billingModel; + billingModes: Array<'yearly' | 'monthly' | 'daily' | 'hourly' | 'pay_per_use'>; }; -export namespace Billing { - /** - * The billing model of the managed service - */ - export enum billingModel { - YEARLY = 'yearly', - MONTHLY = 'monthly', - DAILY = 'daily', - HOURLY = 'hourly', - PAY_PER_USE = 'pay_per_use', - } -} diff --git a/src/xpanse-api/generated/models/ModifyRequest.ts b/src/xpanse-api/generated/models/ModifyRequest.ts index d8fdcf223..f3ee1d100 100644 --- a/src/xpanse-api/generated/models/ModifyRequest.ts +++ b/src/xpanse-api/generated/models/ModifyRequest.ts @@ -9,7 +9,7 @@ /* eslint-disable */ export type ModifyRequest = { /** - * Customer's name for the service. Used only for customer's reference.If not provided, this value will be auto-generated + * Customer's name for the service. Used only for customer's reference. If not provided, the existing customerServiceName from the service will be reused. */ customerServiceName?: string; /** diff --git a/src/xpanse-api/generated/models/ServiceTemplateDetailVo.ts b/src/xpanse-api/generated/models/ServiceTemplateDetailVo.ts index 5fc45a061..bbb2edb5b 100644 --- a/src/xpanse-api/generated/models/ServiceTemplateDetailVo.ts +++ b/src/xpanse-api/generated/models/ServiceTemplateDetailVo.ts @@ -82,7 +82,7 @@ export type ServiceTemplateDetailVo = { /** * End user license agreement content of the service. */ - eula: string; + eula?: string; links?: Array; }; export namespace ServiceTemplateDetailVo { diff --git a/src/xpanse-api/generated/models/UserOrderableServiceVo.ts b/src/xpanse-api/generated/models/UserOrderableServiceVo.ts index bbbf5c979..44e0d4f8a 100644 --- a/src/xpanse-api/generated/models/UserOrderableServiceVo.ts +++ b/src/xpanse-api/generated/models/UserOrderableServiceVo.ts @@ -68,7 +68,7 @@ export type UserOrderableServiceVo = { /** * End user license agreement content of the service. */ - eula: string; + eula?: string; links?: Array; }; export namespace UserOrderableServiceVo { From f2a709b146cdec794bca6a83c9c0efd6a395caa9 Mon Sep 17 00:00:00 2001 From: WangLiNaruto Date: Mon, 29 Apr 2024 20:45:00 +0800 Subject: [PATCH 3/3] The service name is too long causing page format problems --- .../catalog/services/details/ShowIcon.tsx | 10 +++++-- .../catalog/services/tree/CategoryCatalog.tsx | 11 +++++-- .../content/common/ocl/DisplayOclData.tsx | 12 ++++---- .../content/order/create/OrderSubmit.tsx | 19 ++++++++---- .../order/create/SelectServiceForm.tsx | 29 ++++++++++--------- .../content/order/services/Services.tsx | 14 +++++++-- .../content/review/ServiceReviewsDetails.tsx | 11 ++++--- src/styles/app.css | 11 ++++++- src/styles/catalog.css | 8 +++++ src/styles/service_order.css | 13 +++++++-- 10 files changed, 101 insertions(+), 37 deletions(-) diff --git a/src/components/content/catalog/services/details/ShowIcon.tsx b/src/components/content/catalog/services/details/ShowIcon.tsx index 1bd133e2a..4e287652f 100644 --- a/src/components/content/catalog/services/details/ShowIcon.tsx +++ b/src/components/content/catalog/services/details/ShowIcon.tsx @@ -5,13 +5,19 @@ import { ServiceTemplateDetailVo } from '../../../../../xpanse-api/generated'; import React from 'react'; +import { Tooltip, Typography } from 'antd'; export function ShowIcon({ serviceDetails }: { serviceDetails: ServiceTemplateDetailVo }): React.JSX.Element { + const { Paragraph } = Typography; return (
- Service Icon + Service Icon   - {serviceDetails.name} + + + {serviceDetails.name} + +
); } diff --git a/src/components/content/catalog/services/tree/CategoryCatalog.tsx b/src/components/content/catalog/services/tree/CategoryCatalog.tsx index ad48c0fe0..9f1a03bcb 100644 --- a/src/components/content/catalog/services/tree/CategoryCatalog.tsx +++ b/src/components/content/catalog/services/tree/CategoryCatalog.tsx @@ -8,7 +8,7 @@ import '../../../../../styles/catalog.css'; import { DataNode } from 'antd/es/tree'; import { TagOutlined } from '@ant-design/icons'; import { ApiError, DeployedService, Response, ServiceTemplateDetailVo } from '../../../../../xpanse-api/generated'; -import { Alert, Empty, Skeleton } from 'antd'; +import { Alert, Empty, Skeleton, Tooltip, Typography } from 'antd'; import { convertStringArrayToUnorderedList } from '../../../../utils/generateUnorderedList'; import { groupServiceTemplatesByName, @@ -19,6 +19,7 @@ import { CatalogFullView } from './CatalogFullView'; function CategoryCatalog({ category }: { category: DeployedService.category }): React.JSX.Element { const treeData: DataNode[] = []; + const { Paragraph } = Typography; let categoryOclData: Map = new Map(); const availableServiceTemplatesQuery = useAvailableServiceTemplatesQuery(category); @@ -28,7 +29,13 @@ function CategoryCatalog({ category }: { category: DeployedService.category }): categoryOclData = groupServiceTemplatesByName(userAvailableServiceList); categoryOclData.forEach((_value: ServiceTemplateDetailVo[], serviceName: string) => { const dataNode: DataNode = { - title: serviceName, + title: ( + + + {serviceName} + + + ), key: serviceName || '', children: [], }; diff --git a/src/components/content/common/ocl/DisplayOclData.tsx b/src/components/content/common/ocl/DisplayOclData.tsx index 714479f2e..ee03fbf24 100644 --- a/src/components/content/common/ocl/DisplayOclData.tsx +++ b/src/components/content/common/ocl/DisplayOclData.tsx @@ -5,7 +5,7 @@ import React from 'react'; import { Ocl } from '../../../../xpanse-api/generated'; -import { Descriptions, Image, Tag } from 'antd'; +import { Descriptions, Image, Tag, Tooltip, Typography } from 'antd'; import { DeploymentText } from './DeploymentText'; import { BillingText } from './BillingText'; import { cspMap } from '../csp/CspLogo'; @@ -16,7 +16,7 @@ import { AgreementText } from './AgreementText'; function DisplayOclData({ ocl }: { ocl: Ocl }): React.JSX.Element | string { const PLACE_HOLDER_UNKNOWN_VALUE: string = 'NOT PROVIDED'; - + const { Paragraph } = Typography; try { return ( <> @@ -40,9 +40,11 @@ function DisplayOclData({ ocl }: { ocl: Ocl }): React.JSX.Element | string {
Service Name
- - {ocl.name} - + + + {ocl.name} + +

diff --git a/src/components/content/order/create/OrderSubmit.tsx b/src/components/content/order/create/OrderSubmit.tsx index 120d8ce70..a883b5984 100644 --- a/src/components/content/order/create/OrderSubmit.tsx +++ b/src/components/content/order/create/OrderSubmit.tsx @@ -7,7 +7,7 @@ import NavigateOrderSubmission from './NavigateOrderSubmission'; import '../../../../styles/service_order.css'; import { Navigate, To, useLocation, useNavigate } from 'react-router-dom'; import React, { useRef, useState } from 'react'; -import { Button, Form, Input, Tooltip } from 'antd'; +import { Button, Col, Form, Input, Row, Tooltip, Typography } from 'antd'; import { DeployedServiceDetails, DeployRequest } from '../../../../xpanse-api/generated'; import { createServicePageRoute, CUSTOMER_SERVICE_NAME_FIELD, homePageRoute } from '../../../utils/constants'; import { InfoCircleOutlined } from '@ant-design/icons'; @@ -22,6 +22,7 @@ import { OrderItem } from '../common/utils/OrderItem'; import { EulaInfo } from '../common/EulaInfo'; function OrderSubmit(state: OrderSubmitProps): React.JSX.Element { + const { Paragraph } = Typography; const [form] = Form.useForm(); const [isEulaAccepted, setIsEulaAccepted] = useState(false); const [isShowDeploymentResult, setIsShowDeploymentResult] = useState(false); @@ -87,12 +88,18 @@ function OrderSubmit(state: OrderSubmitProps): React.JSX.Element {
-
-
- Service: {state.name}@{state.version} + +
+ + + Service: {state.name + '@' + state.version} + + + + - - + + {isShowDeploymentResult ? ( diff --git a/src/components/content/order/create/SelectServiceForm.tsx b/src/components/content/order/create/SelectServiceForm.tsx index 80af6e65c..543978e1d 100644 --- a/src/components/content/order/create/SelectServiceForm.tsx +++ b/src/components/content/order/create/SelectServiceForm.tsx @@ -22,7 +22,7 @@ import { getFlavorList } from '../formDataHelpers/flavorHelper'; import { convertAreasToTabs } from '../formDataHelpers/areaHelper'; import { getRegionDropDownValues } from '../formDataHelpers/regionHelper'; import { getBilling } from '../formDataHelpers/billingHelper'; -import { Button, Col, Form, Row, Select, Tabs } from 'antd'; +import { Button, Col, Form, Row, Select, Tabs, Tooltip, Typography } from 'antd'; import NavigateOrderSubmission from './NavigateOrderSubmission'; import { ContactDetailsText } from '../../common/ocl/ContactDetailsText'; import { ContactDetailsShowType } from '../../common/ocl/ContactDetailsShowType'; @@ -40,6 +40,7 @@ import { getEulaByCsp } from '../formDataHelpers/eulaHelper'; import { getDeployParams } from '../formDataHelpers/deployParamsHelper'; export function SelectServiceForm({ services }: { services: UserOrderableServiceVo[] }): React.JSX.Element { + const { Paragraph } = Typography; const [form] = Form.useForm(); const [urlParams] = useSearchParams(); const location = useLocation(); @@ -268,19 +269,12 @@ export function SelectServiceForm({ services }: { services: UserOrderableService
-
-
Service: {serviceName}
- -
- Version:  - +

[state.clearFormVariables]); @@ -108,7 +109,16 @@ function Services(): React.JSX.Element { />
- {item.name} + + + + {item.name} + + + {item.content}
diff --git a/src/components/content/review/ServiceReviewsDetails.tsx b/src/components/content/review/ServiceReviewsDetails.tsx index 003760dd6..50f61ab7a 100644 --- a/src/components/content/review/ServiceReviewsDetails.tsx +++ b/src/components/content/review/ServiceReviewsDetails.tsx @@ -4,7 +4,7 @@ */ import React, { useState } from 'react'; -import { Button, Descriptions, Image, Tag } from 'antd'; +import { Button, Descriptions, Image, Tag, Tooltip, Typography } from 'antd'; import { cspMap } from '../common/csp/CspLogo'; import { FlavorsText } from '../common/ocl/FlavorsText'; import { BillingText } from '../common/ocl/BillingText'; @@ -30,6 +30,7 @@ export const ServiceReviewsDetails = ({ const [isApproved, setIsApproved] = useState(undefined); const getRegistrationDetailsQuery = useGetRegistrationDetails(currentServiceTemplateVo.id); const useReviewRequestState = useApproveOrRejectMutationState(currentServiceTemplateVo.id); + const { Paragraph } = Typography; const onClickApprove = () => { setIsApproved(true); @@ -100,9 +101,11 @@ export const ServiceReviewsDetails = ({
Service Name
- - {currentServiceTemplateVo.name} - + + + {currentServiceTemplateVo.name} + +

diff --git a/src/styles/app.css b/src/styles/app.css index 6761e84a4..db5fa0f5d 100644 --- a/src/styles/app.css +++ b/src/styles/app.css @@ -79,6 +79,15 @@ margin-top: 10px; overflow-x: auto; } +.ocl-data-display-service-review-name { + width: 400px; + margin-top: 15px; +} + +.ocl-data-display-service-register-name { + width: 800px; + margin-top: 15px; +} .home-data-display { padding: 24px; @@ -91,7 +100,7 @@ .content-title { font-size: 20px; font-weight: bold; - width: 600px; + width: 400px; } .menu-loading { diff --git a/src/styles/catalog.css b/src/styles/catalog.css index bb157a79c..8216862ce 100644 --- a/src/styles/catalog.css +++ b/src/styles/catalog.css @@ -57,11 +57,19 @@ width: 80%; } +.catalog-tree-node { + width: 200px; +} + .catalog-service-icon { display: flex; align-items: center; } +.catalog-service-name { + width: 200px; + margin-top: 15px; +} .catalog-service-status-size { font-size: 14px; } diff --git a/src/styles/service_order.css b/src/styles/service_order.css index 636057447..4582c4c2b 100644 --- a/src/styles/service_order.css +++ b/src/styles/service_order.css @@ -191,11 +191,20 @@ font-weight: 700; } +.service-type-option-name { + width: 200px; + margin-top: 10px; +} + +.service-type-option-service-name { + width: 200px; +} + .service-type-option-description { font-size: 12px; color: #5e6366; min-height: 35px; - margin-top: 5px; + //margin-top: 5px; word-break: normal; width: auto; display: block; @@ -252,12 +261,12 @@ .content-title-api { font-size: 13px; font-weight: bold; - float: right; background-color: transparent; border: none; cursor: pointer; display: inline; padding: 0; + margin-left: 155px; margin-top: 10px; }