diff --git a/apps/web/public/images/budget-charts/ic_accumulated_usage_over.svg b/apps/web/public/images/budget-charts/ic_accumulated_usage_over.svg new file mode 100644 index 0000000000..6a57d43921 --- /dev/null +++ b/apps/web/public/images/budget-charts/ic_accumulated_usage_over.svg @@ -0,0 +1,4 @@ + + + + diff --git a/apps/web/public/images/budget-charts/ic_accumulated_usage_under.svg b/apps/web/public/images/budget-charts/ic_accumulated_usage_under.svg new file mode 100644 index 0000000000..41e8045520 --- /dev/null +++ b/apps/web/public/images/budget-charts/ic_accumulated_usage_under.svg @@ -0,0 +1,4 @@ + + + + diff --git a/apps/web/public/images/budget-charts/ic_actual_spend.svg b/apps/web/public/images/budget-charts/ic_actual_spend.svg new file mode 100644 index 0000000000..2733853472 --- /dev/null +++ b/apps/web/public/images/budget-charts/ic_actual_spend.svg @@ -0,0 +1,3 @@ + + + diff --git a/apps/web/public/images/budget-charts/ic_planned_budget.svg b/apps/web/public/images/budget-charts/ic_planned_budget.svg new file mode 100644 index 0000000000..10b51a2436 --- /dev/null +++ b/apps/web/public/images/budget-charts/ic_planned_budget.svg @@ -0,0 +1,3 @@ + + + diff --git a/apps/web/src/api-clients/_common/constants/api-doc-constant.ts b/apps/web/src/api-clients/_common/constants/api-doc-constant.ts index 163634c799..e4eeaf9b87 100644 --- a/apps/web/src/api-clients/_common/constants/api-doc-constant.ts +++ b/apps/web/src/api-clients/_common/constants/api-doc-constant.ts @@ -25,6 +25,120 @@ */ export const API_DOC = { + 'add-ons': { + autocomplete: [ + 'distinct', + ], + 'page-schema': [ + 'get', + 'update', + ], + }, + 'alert-manager': { + alert: [ + 'create', + 'delete', + 'get', + 'history', + 'list', + 'update', + ], + 'escalation-policy': [ + 'create', + 'delete', + 'get', + 'list', + 'update', + ], + event: [ + 'create', + ], + 'event-rule': [ + 'change-order', + 'create', + 'delete', + 'get', + 'list', + 'update', + ], + note: [ + 'create', + 'delete', + 'get', + 'list', + 'update', + ], + 'notification-protocol': [ + 'create', + 'delete', + 'disable', + 'enable', + 'get', + 'list', + 'update-plugin', + 'update', + 'verify-plugin', + ], + service: [ + 'change-members', + 'create', + 'delete', + 'get', + 'list', + 'update', + ], + 'service-channel': [ + 'create-forward-channel', + 'create', + 'delete', + 'disable', + 'enable', + 'get', + 'list', + 'update', + ], + 'user-channel': [ + 'create', + 'delete', + 'disable', + 'enable', + 'get', + 'list', + 'update', + ], + 'user-group-channel': [ + 'create', + 'delete', + 'disable', + 'enable', + 'get', + 'list', + 'update', + ], + webhook: [ + 'create', + 'delete', + 'disable', + 'enable', + 'get', + 'list-errors', + 'list', + 'update-message-format', + 'update-plugin', + 'update', + 'verify-plugin', + ], + }, + board: { + post: [ + 'create', + 'delete', + 'get', + 'list', + 'send', + 'update', + ], + }, config: { 'domain-config': [ 'create', @@ -88,28 +202,12 @@ export const API_DOC = { ], 'cost-report-config': [ 'list', + 'run', 'update-recipients', 'update', ], 'cost-report-data': [ 'analyze', - 'list', - ], - 'report-adjustment-policy': [ - 'create', - 'delete', - 'get', - 'list', - 'update', - 'change-order', - ], - 'report-adjustment': [ - 'create', - 'delete', - 'get', - 'list', - 'update', - 'change-order', ], 'data-source': [ 'get', @@ -125,11 +223,28 @@ export const API_DOC = { ], job: [ 'cancel', + 'get', + 'list', + ], + 'report-adjustment': [ + 'change-order', + 'create', + 'delete', + 'get', + 'list', + 'update', + ], + 'report-adjustment-policy': [ + 'change-order', + 'create', + 'delete', + 'get', 'list', + 'sync-currency', + 'update', ], 'unified-cost': [ 'analyze', - 'get', 'list', 'stat', ], @@ -206,6 +321,20 @@ export const API_DOC = { 'update', ], }, + 'api-clients': { + 'file-manager': [ + 'add', + 'delete', + 'get-download-url', + 'get', + 'list', + 'update', + ], + plugin: [ + 'get-plugin-endpoint', + 'get-plugin-metadata', + ], + }, identity: { agent: [ 'create', @@ -221,7 +350,7 @@ export const API_DOC = { 'delete', 'disable', 'enable', - 'generateApiKey', + 'generateClientSecret', 'get', 'list', 'stat', @@ -258,6 +387,7 @@ export const API_DOC = { 'get', 'list', 'remove-users', + 'stat', 'udpate', 'update-project-type', ], @@ -269,6 +399,7 @@ export const API_DOC = { 'get', 'list', 'remove-users', + 'stat', 'update', ], provider: [ @@ -323,6 +454,7 @@ export const API_DOC = { 'get', 'list', 'stat', + 'sync', 'update-secret-data', 'update', ], @@ -361,6 +493,8 @@ export const API_DOC = { 'change-workspace-group', 'create', 'delete', + 'disable', + 'enable', 'list', 'remove-package', 'update', @@ -393,8 +527,207 @@ export const API_DOC = { ], }, inventory: { + 'change-history': [ + 'list', + ], + 'cloud-service': [ + 'analyze', + 'get-data', + 'get', + 'list', + ], + 'cloud-service-query-set': [ + 'list', + ], + 'cloud-service-stats': [ + 'analyze', + ], + 'cloud-service-type': [ + 'list', + 'stat', + ], + collector: [ + 'collect', + 'create', + 'delete', + 'get', + 'list', + 'update-plugin', + 'update', + ], + 'collector-rule': [ + 'change-order', + 'create', + 'delete', + 'get', + 'list', + 'update', + ], + job: [ + 'analyze', + 'get', + 'list', + ], + 'job-task': [ + 'list', + ], + metric: [ + 'create', + 'delete', + 'get', + 'list', + 'run', + 'update', + ], 'metric-data': [ 'analyze', + 'stat', + ], + 'metric-example': [ + 'create', + 'delete', + 'get', + 'list', + 'update', + ], + namespace: [ + 'get', + 'list', + 'stat', + ], + note: [ + 'create', + 'delete', + 'list', + 'update', + ], + region: [ + 'list', + 'stat', + ], + }, + 'inventory-v2': { + namespace: [ + 'create', + 'delete', + 'get', + 'list', + 'update', + ], + 'namespace-group': [ + 'create', + 'delete', + 'get', + 'list', + 'update', + ], + }, + monitoring: { + alert: [ + 'assign-user', + 'create', + 'delete', + 'get', + 'list', + 'update-state', + 'update', + ], + 'data-source': [ + 'get', + 'list', + ], + 'escalation-policy': [ + 'create', + 'delete', + 'get', + 'list', + 'set-default', + 'update', + ], + event: [ + 'list', + ], + 'event-rule': [ + 'change-order', + 'create', + 'delete', + 'get', + 'list', + 'update', + ], + log: [ + 'list', + ], + metric: [ + 'get-data', + 'list', + ], + note: [ + 'create', + 'delete', + 'get', + 'list', + 'update', + ], + 'project-alert-config': [ + 'create', + 'delete', + 'get', + 'list', + 'update', + ], + webhook: [ + 'create', + 'delete', + 'disable', + 'enable', + 'get', + 'list', + 'update-plugin', + 'update', + 'verify-plugin', + ], + }, + notification: { + notification: [ + 'create', + 'delete', + 'get', + 'list', + 'push', + 'set-read', + ], + 'project-channel': [ + 'create', + 'delete', + 'disable', + 'enable', + 'get', + 'list', + 'set-schedule', + 'set-subscription', + 'update', + ], + protocol: [ + 'create', + 'delete', + 'disable', + 'enable', + 'get', + 'list', + 'update-plugin', + 'update', + ], + 'user-channel': [ + 'create', + 'delete', + 'disable', + 'enable', + 'get', + 'list', + 'set-schedule', + 'set-subscription', + 'update', ], }, opsflow: { @@ -439,6 +772,45 @@ export const API_DOC = { 'list', 'register', ], + plugin: [ + 'deregister', + 'disable', + 'enable', + 'get-versions', + 'get', + 'list', + 'register', + 'stat', + 'update', + ], + repository: [ + 'list', + ], + }, + search: { + resource: [ + 'search', + ], + }, + secret: { + secret: [ + 'create', + 'get', + 'list', + ], + 'trusted-secret': [ + 'create', + 'delete', + 'get', + 'list', + 'update-data', + 'update', + ], + }, + plugin: { + plugin: [ + 'get-plugin-metadata', + ], }, } as const; export type APIDoc = typeof API_DOC; diff --git a/apps/web/src/api-clients/_common/schema/api-verbs/stat.ts b/apps/web/src/api-clients/_common/schema/api-verbs/stat.ts new file mode 100644 index 0000000000..cee7739e66 --- /dev/null +++ b/apps/web/src/api-clients/_common/schema/api-verbs/stat.ts @@ -0,0 +1,4 @@ +export interface StatResponse { + results?: string[]; + total_count?: number; +} diff --git a/apps/web/src/api-clients/_common/schema/type.ts b/apps/web/src/api-clients/_common/schema/type.ts index 54ccf642bd..37ea1b6f52 100644 --- a/apps/web/src/api-clients/_common/schema/type.ts +++ b/apps/web/src/api-clients/_common/schema/type.ts @@ -1,3 +1,5 @@ +import type { Query } from '@cloudforet/core-lib/space-connector/type'; + import type { RESOURCE_GROUP } from '@/api-clients/_common/schema/constant'; export type ResourceGroupType = typeof RESOURCE_GROUP[keyof typeof RESOURCE_GROUP]; @@ -8,3 +10,5 @@ export interface Page { } export type ContentsType = 'html' | 'markdown' | 'plain'; + +export type StatQuery = Query & { distinct: string }; diff --git a/apps/web/src/api-clients/add-ons/autocomplete/composables/use-autocomplete-api.ts b/apps/web/src/api-clients/add-ons/autocomplete/composables/use-autocomplete-api.ts new file mode 100644 index 0000000000..decc4d27de --- /dev/null +++ b/apps/web/src/api-clients/add-ons/autocomplete/composables/use-autocomplete-api.ts @@ -0,0 +1,14 @@ +import { SpaceConnector } from '@cloudforet/core-lib/space-connector'; + +import type { ListResponse } from '@/api-clients/_common/schema/api-verbs/list'; +import type { AutocompleteDistinctParameters } from '@/api-clients/add-ons/autocomplete/schema/api-verbs/distinct'; + +export const useAutocompleteApi = () => { + const actions = { + distinct: SpaceConnector.client.addOns.autocomplete.distinct>, + }; + + return { + autocompleteAPI: actions, + }; +}; diff --git a/apps/web/src/api-clients/add-ons/autocomplete/schema/api-verbs/distinct.ts b/apps/web/src/api-clients/add-ons/autocomplete/schema/api-verbs/distinct.ts new file mode 100644 index 0000000000..8e22905b85 --- /dev/null +++ b/apps/web/src/api-clients/add-ons/autocomplete/schema/api-verbs/distinct.ts @@ -0,0 +1,13 @@ +import type { ApiFilter } from '@cloudforet/core-lib/space-connector/type'; + +export interface AutocompleteDistinctParameters { + resource_type: string; + distinct_key: string; + search?: string; + options?: { + limit?: number; + search_type?: 'key' | 'value'; + filter?: ApiFilter[]; + }; + extra_params?: Record; +} diff --git a/apps/web/src/api-clients/add-ons/page-schema/composables/use-page-schema-api.ts b/apps/web/src/api-clients/add-ons/page-schema/composables/use-page-schema-api.ts new file mode 100644 index 0000000000..888f51a6a1 --- /dev/null +++ b/apps/web/src/api-clients/add-ons/page-schema/composables/use-page-schema-api.ts @@ -0,0 +1,16 @@ +import { SpaceConnector } from '@cloudforet/core-lib/space-connector'; + +import type { PageSchemaGetParameters } from '@/api-clients/add-ons/page-schema/schema/api-verbs/get'; +import type { PageSchemaUpdateParameters } from '@/api-clients/add-ons/page-schema/schema/api-verbs/update'; +import type { PageSchemaModel } from '@/api-clients/add-ons/page-schema/schema/model'; + + +export const usePageSchemaApi = () => { + const actions = { + get: SpaceConnector.client.addOns.pageSchema.get, + update: SpaceConnector.client.addOns.pageSchema.update, + }; + return { + pageSchemaAPI: actions, + }; +}; diff --git a/apps/web/src/api-clients/add-ons/page-schema/schema/api-verbs/get.ts b/apps/web/src/api-clients/add-ons/page-schema/schema/api-verbs/get.ts new file mode 100644 index 0000000000..1fa439d3f0 --- /dev/null +++ b/apps/web/src/api-clients/add-ons/page-schema/schema/api-verbs/get.ts @@ -0,0 +1,5 @@ +export interface PageSchemaGetParameters { + schema: 'table' | 'details'; + resource_type: string; + options: Record; +} diff --git a/apps/web/src/api-clients/add-ons/page-schema/schema/api-verbs/update.ts b/apps/web/src/api-clients/add-ons/page-schema/schema/api-verbs/update.ts new file mode 100644 index 0000000000..b4caf56389 --- /dev/null +++ b/apps/web/src/api-clients/add-ons/page-schema/schema/api-verbs/update.ts @@ -0,0 +1,6 @@ +export interface PageSchemaUpdateParameters { + resource_type: string; + schema: 'table' | 'details'; + data: any; + options: Record; +} diff --git a/apps/web/src/api-clients/add-ons/page-schema/schema/model.ts b/apps/web/src/api-clients/add-ons/page-schema/schema/model.ts new file mode 100644 index 0000000000..a73a027ace --- /dev/null +++ b/apps/web/src/api-clients/add-ons/page-schema/schema/model.ts @@ -0,0 +1,5 @@ +import type { DynamicLayout } from '@cloudforet/mirinae/types/data-display/dynamic/dynamic-layout/type/layout-schema'; + +export interface PageSchemaModel extends DynamicLayout { + details?: DynamicLayout[]; // schema: 'details' +} diff --git a/apps/web/src/api-clients/alert-manager/alert/composables/use-alert-api.ts b/apps/web/src/api-clients/alert-manager/alert/composables/use-alert-api.ts new file mode 100644 index 0000000000..d5aa525557 --- /dev/null +++ b/apps/web/src/api-clients/alert-manager/alert/composables/use-alert-api.ts @@ -0,0 +1,26 @@ +import { SpaceConnector } from '@cloudforet/core-lib/space-connector'; + +import type { ListResponse } from '@/api-clients/_common/schema/api-verbs/list'; +import type { AlertCreateParameters } from '@/api-clients/alert-manager/alert/schema/api-verbs/create'; +import type { AlertDeleteParameters } from '@/api-clients/alert-manager/alert/schema/api-verbs/delete'; +import type { AlertGetParameters } from '@/api-clients/alert-manager/alert/schema/api-verbs/get'; +import type { AlertHistoryParameters } from '@/api-clients/alert-manager/alert/schema/api-verbs/history'; +import type { AlertListParameters } from '@/api-clients/alert-manager/alert/schema/api-verbs/list'; +import type { AlertUpdateParameters } from '@/api-clients/alert-manager/alert/schema/api-verbs/update'; +import type { AlertHistoryModel, AlertModel } from '@/api-clients/alert-manager/alert/schema/model'; + +export const useAlertApi = () => { + const actions = { + create: SpaceConnector.clientV2.alertManager.alert.create, + delete: SpaceConnector.clientV2.alertManager.alert.delete, + get: SpaceConnector.clientV2.alertManager.alert.get, + history: SpaceConnector.clientV2.alertManager.alert.history>, + list: SpaceConnector.clientV2.alertManager.alert.list>, + update: SpaceConnector.clientV2.alertManager.alert.update, + }; + + return { + alertAPI: actions, + }; +}; + diff --git a/apps/web/src/schema/alert-manager/alert/api-verbs/create.ts b/apps/web/src/api-clients/alert-manager/alert/schema/api-verbs/create.ts similarity index 85% rename from apps/web/src/schema/alert-manager/alert/api-verbs/create.ts rename to apps/web/src/api-clients/alert-manager/alert/schema/api-verbs/create.ts index 1ca43abb2b..6074e7775f 100644 --- a/apps/web/src/schema/alert-manager/alert/api-verbs/create.ts +++ b/apps/web/src/api-clients/alert-manager/alert/schema/api-verbs/create.ts @@ -1,4 +1,4 @@ -import type { AlertResourcesType, AlertSeverityType, AlertUrgencyType } from '@/schema/alert-manager/alert/type'; +import type { AlertResourcesType, AlertSeverityType, AlertUrgencyType } from '@/api-clients/alert-manager/alert/schema/type'; export interface AlertCreateParameters { title: string; diff --git a/apps/web/src/schema/alert-manager/alert/api-verbs/delete.ts b/apps/web/src/api-clients/alert-manager/alert/schema/api-verbs/delete.ts similarity index 100% rename from apps/web/src/schema/alert-manager/alert/api-verbs/delete.ts rename to apps/web/src/api-clients/alert-manager/alert/schema/api-verbs/delete.ts diff --git a/apps/web/src/schema/alert-manager/alert/api-verbs/get.ts b/apps/web/src/api-clients/alert-manager/alert/schema/api-verbs/get.ts similarity index 100% rename from apps/web/src/schema/alert-manager/alert/api-verbs/get.ts rename to apps/web/src/api-clients/alert-manager/alert/schema/api-verbs/get.ts diff --git a/apps/web/src/schema/alert-manager/alert/api-verbs/history.ts b/apps/web/src/api-clients/alert-manager/alert/schema/api-verbs/history.ts similarity index 100% rename from apps/web/src/schema/alert-manager/alert/api-verbs/history.ts rename to apps/web/src/api-clients/alert-manager/alert/schema/api-verbs/history.ts diff --git a/apps/web/src/schema/alert-manager/alert/api-verbs/list.ts b/apps/web/src/api-clients/alert-manager/alert/schema/api-verbs/list.ts similarity index 91% rename from apps/web/src/schema/alert-manager/alert/api-verbs/list.ts rename to apps/web/src/api-clients/alert-manager/alert/schema/api-verbs/list.ts index 2e9688c080..b5d9aa122f 100644 --- a/apps/web/src/schema/alert-manager/alert/api-verbs/list.ts +++ b/apps/web/src/api-clients/alert-manager/alert/schema/api-verbs/list.ts @@ -5,7 +5,7 @@ import type { AlertSeverityType, AlertStatusType, AlertTriggeredType, AlertUrgencyType, -} from '@/schema/alert-manager/alert/type'; +} from '@/api-clients/alert-manager/alert/schema/type'; export interface AlertListParameters { query?: Query; diff --git a/apps/web/src/schema/alert-manager/alert/api-verbs/update.ts b/apps/web/src/api-clients/alert-manager/alert/schema/api-verbs/update.ts similarity index 62% rename from apps/web/src/schema/alert-manager/alert/api-verbs/update.ts rename to apps/web/src/api-clients/alert-manager/alert/schema/api-verbs/update.ts index 7a3cb2a177..c67905fd95 100644 --- a/apps/web/src/schema/alert-manager/alert/api-verbs/update.ts +++ b/apps/web/src/api-clients/alert-manager/alert/schema/api-verbs/update.ts @@ -1,4 +1,4 @@ -import type { AlertUrgencyType, AlertStatusType } from '@/schema/alert-manager/alert/type'; +import type { AlertUrgencyType, AlertStatusType } from '@/api-clients/alert-manager/alert/schema/type'; export interface AlertUpdateParameters { alert_id: string; diff --git a/apps/web/src/schema/alert-manager/alert/constants.ts b/apps/web/src/api-clients/alert-manager/alert/schema/constants.ts similarity index 100% rename from apps/web/src/schema/alert-manager/alert/constants.ts rename to apps/web/src/api-clients/alert-manager/alert/schema/constants.ts diff --git a/apps/web/src/schema/alert-manager/alert/model.ts b/apps/web/src/api-clients/alert-manager/alert/schema/model.ts similarity index 95% rename from apps/web/src/schema/alert-manager/alert/model.ts rename to apps/web/src/api-clients/alert-manager/alert/schema/model.ts index cba934c392..c8b1e79a42 100644 --- a/apps/web/src/schema/alert-manager/alert/model.ts +++ b/apps/web/src/api-clients/alert-manager/alert/schema/model.ts @@ -5,7 +5,7 @@ import type { AlertUrgencyType, AlertHistoryActionType, AlertHistoryNotificationInfoType, -} from '@/schema/alert-manager/alert/type'; +} from '@/api-clients/alert-manager/alert/schema/type'; export interface AlertModel { alert_id: string; diff --git a/apps/web/src/schema/alert-manager/alert/type.ts b/apps/web/src/api-clients/alert-manager/alert/schema/type.ts similarity index 95% rename from apps/web/src/schema/alert-manager/alert/type.ts rename to apps/web/src/api-clients/alert-manager/alert/schema/type.ts index 5ffa4ecf5e..7f99c8c449 100644 --- a/apps/web/src/schema/alert-manager/alert/type.ts +++ b/apps/web/src/api-clients/alert-manager/alert/schema/type.ts @@ -2,7 +2,7 @@ import type { ALERT_SEVERITY, ALERT_STATUS, ALERT_TRIGGERED_TYPE, ALERT_URGENCY, ALERT_HISTORY_ACTION, ALERT_HISTORY_NOTIFICATION_STATE, -} from '@/schema/alert-manager/alert/constants'; +} from '@/api-clients/alert-manager/alert/schema/constants'; export type AlertStatusType = typeof ALERT_STATUS[keyof typeof ALERT_STATUS]; export type AlertUrgencyType = typeof ALERT_URGENCY[keyof typeof ALERT_URGENCY]; diff --git a/apps/web/src/api-clients/alert-manager/escalation-policy/composables/use-escalation-policy-api.ts b/apps/web/src/api-clients/alert-manager/escalation-policy/composables/use-escalation-policy-api.ts new file mode 100644 index 0000000000..7f361c35c2 --- /dev/null +++ b/apps/web/src/api-clients/alert-manager/escalation-policy/composables/use-escalation-policy-api.ts @@ -0,0 +1,24 @@ +import { SpaceConnector } from '@cloudforet/core-lib/space-connector'; + +import type { ListResponse } from '@/api-clients/_common/schema/api-verbs/list'; +import type { EscalationPolicyCreateParameters } from '@/api-clients/alert-manager/escalation-policy/schema/api-verbs/create'; +import type { EscalationPolicyDeleteParameters } from '@/api-clients/alert-manager/escalation-policy/schema/api-verbs/delete'; +import type { EscalationPolicyGetParameters } from '@/api-clients/alert-manager/escalation-policy/schema/api-verbs/get'; +import type { EscalationPolicyListParameters } from '@/api-clients/alert-manager/escalation-policy/schema/api-verbs/list'; +import type { EscalationPolicyUpdateParameters } from '@/api-clients/alert-manager/escalation-policy/schema/api-verbs/update'; +import type { EscalationPolicyModel } from '@/api-clients/alert-manager/escalation-policy/schema/model'; + +export const useEscalationPolicyApi = () => { + const actions = { + create: SpaceConnector.clientV2.alertManager.escalationPolicy.create, + delete: SpaceConnector.clientV2.alertManager.escalationPolicy.delete, + get: SpaceConnector.clientV2.alertManager.escalationPolicy.get, + list: SpaceConnector.clientV2.alertManager.escalationPolicy.list>, + update: SpaceConnector.clientV2.alertManager.escalationPolicy.update, + }; + + return { + escalationPolicyAPI: actions, + }; +}; + diff --git a/apps/web/src/schema/alert-manager/escalation-policy/api-verbs/create.ts b/apps/web/src/api-clients/alert-manager/escalation-policy/schema/api-verbs/create.ts similarity index 86% rename from apps/web/src/schema/alert-manager/escalation-policy/api-verbs/create.ts rename to apps/web/src/api-clients/alert-manager/escalation-policy/schema/api-verbs/create.ts index d4ae69a1b3..6e985463db 100644 --- a/apps/web/src/schema/alert-manager/escalation-policy/api-verbs/create.ts +++ b/apps/web/src/api-clients/alert-manager/escalation-policy/schema/api-verbs/create.ts @@ -3,7 +3,7 @@ import type { EscalationPolicyFinishConditionType, EscalationPolicyRepeatType, EscalationPolicyRulesType, -} from '@/schema/alert-manager/escalation-policy/type'; +} from '@/api-clients/alert-manager/escalation-policy/schema/type'; export interface EscalationPolicyCreateParameters { name: string; diff --git a/apps/web/src/schema/alert-manager/escalation-policy/api-verbs/delete.ts b/apps/web/src/api-clients/alert-manager/escalation-policy/schema/api-verbs/delete.ts similarity index 100% rename from apps/web/src/schema/alert-manager/escalation-policy/api-verbs/delete.ts rename to apps/web/src/api-clients/alert-manager/escalation-policy/schema/api-verbs/delete.ts diff --git a/apps/web/src/schema/alert-manager/escalation-policy/api-verbs/get.ts b/apps/web/src/api-clients/alert-manager/escalation-policy/schema/api-verbs/get.ts similarity index 100% rename from apps/web/src/schema/alert-manager/escalation-policy/api-verbs/get.ts rename to apps/web/src/api-clients/alert-manager/escalation-policy/schema/api-verbs/get.ts diff --git a/apps/web/src/schema/alert-manager/escalation-policy/api-verbs/list.ts b/apps/web/src/api-clients/alert-manager/escalation-policy/schema/api-verbs/list.ts similarity index 70% rename from apps/web/src/schema/alert-manager/escalation-policy/api-verbs/list.ts rename to apps/web/src/api-clients/alert-manager/escalation-policy/schema/api-verbs/list.ts index 8cab61a71b..7dc1b6bf89 100644 --- a/apps/web/src/schema/alert-manager/escalation-policy/api-verbs/list.ts +++ b/apps/web/src/api-clients/alert-manager/escalation-policy/schema/api-verbs/list.ts @@ -1,6 +1,6 @@ import type { Query } from '@cloudforet/core-lib/space-connector/type'; -import type { EscalationPolicyFinishConditionType } from '@/schema/alert-manager/escalation-policy/type'; +import type { EscalationPolicyFinishConditionType } from '@/api-clients/alert-manager/escalation-policy/schema/type'; export interface EscalationPolicyListParameters { query?: Query; diff --git a/apps/web/src/schema/alert-manager/escalation-policy/api-verbs/update.ts b/apps/web/src/api-clients/alert-manager/escalation-policy/schema/api-verbs/update.ts similarity index 86% rename from apps/web/src/schema/alert-manager/escalation-policy/api-verbs/update.ts rename to apps/web/src/api-clients/alert-manager/escalation-policy/schema/api-verbs/update.ts index 933f30a875..68b8abd555 100644 --- a/apps/web/src/schema/alert-manager/escalation-policy/api-verbs/update.ts +++ b/apps/web/src/api-clients/alert-manager/escalation-policy/schema/api-verbs/update.ts @@ -3,7 +3,7 @@ import type { EscalationPolicyFinishConditionType, EscalationPolicyRepeatType, EscalationPolicyRulesType, -} from '@/schema/alert-manager/escalation-policy/type'; +} from '@/api-clients/alert-manager/escalation-policy/schema/type'; export interface EscalationPolicyUpdateParameters { escalation_policy_id: string; diff --git a/apps/web/src/schema/alert-manager/escalation-policy/constants.ts b/apps/web/src/api-clients/alert-manager/escalation-policy/schema/constants.ts similarity index 100% rename from apps/web/src/schema/alert-manager/escalation-policy/constants.ts rename to apps/web/src/api-clients/alert-manager/escalation-policy/schema/constants.ts diff --git a/apps/web/src/schema/alert-manager/escalation-policy/model.ts b/apps/web/src/api-clients/alert-manager/escalation-policy/schema/model.ts similarity index 89% rename from apps/web/src/schema/alert-manager/escalation-policy/model.ts rename to apps/web/src/api-clients/alert-manager/escalation-policy/schema/model.ts index 0293026271..eddce58ba8 100644 --- a/apps/web/src/schema/alert-manager/escalation-policy/model.ts +++ b/apps/web/src/api-clients/alert-manager/escalation-policy/schema/model.ts @@ -3,7 +3,7 @@ import type { EscalationPolicyFinishConditionType, EscalationPolicyRepeatType, EscalationPolicyRulesType, -} from '@/schema/alert-manager/escalation-policy/type'; +} from '@/api-clients/alert-manager/escalation-policy/schema/type'; export interface EscalationPolicyModel { escalation_policy_id: string; diff --git a/apps/web/src/schema/alert-manager/escalation-policy/type.ts b/apps/web/src/api-clients/alert-manager/escalation-policy/schema/type.ts similarity index 88% rename from apps/web/src/schema/alert-manager/escalation-policy/type.ts rename to apps/web/src/api-clients/alert-manager/escalation-policy/schema/type.ts index 8ea1fdb9cc..7ce746ea13 100644 --- a/apps/web/src/schema/alert-manager/escalation-policy/type.ts +++ b/apps/web/src/api-clients/alert-manager/escalation-policy/schema/type.ts @@ -1,7 +1,7 @@ import type { ESCALATION_POLICY_FINISH_CONDITION, ESCALATION_POLICY_STATE, -} from '@/schema/alert-manager/escalation-policy/constants'; +} from '@/api-clients/alert-manager/escalation-policy/schema/constants'; export type EscalationPolicyStateType = typeof ESCALATION_POLICY_STATE[keyof typeof ESCALATION_POLICY_STATE]; export type EscalationPolicyFinishConditionType = typeof ESCALATION_POLICY_FINISH_CONDITION[keyof typeof ESCALATION_POLICY_FINISH_CONDITION]; diff --git a/apps/web/src/api-clients/alert-manager/event-rule/composables/use-event-rule-api.ts b/apps/web/src/api-clients/alert-manager/event-rule/composables/use-event-rule-api.ts new file mode 100644 index 0000000000..aa054cadb8 --- /dev/null +++ b/apps/web/src/api-clients/alert-manager/event-rule/composables/use-event-rule-api.ts @@ -0,0 +1,26 @@ +import { SpaceConnector } from '@cloudforet/core-lib/space-connector'; + +import type { ListResponse } from '@/api-clients/_common/schema/api-verbs/list'; +import type { EventRuleChangeOrderParameters } from '@/api-clients/alert-manager/event-rule/schema/api-verbs/change-order'; +import type { EventRuleCreateParameters } from '@/api-clients/alert-manager/event-rule/schema/api-verbs/create'; +import type { EventRuleDeleteParameters } from '@/api-clients/alert-manager/event-rule/schema/api-verbs/delete'; +import type { EventRuleGetParameters } from '@/api-clients/alert-manager/event-rule/schema/api-verbs/get'; +import type { EventRuleListParameters } from '@/api-clients/alert-manager/event-rule/schema/api-verbs/list'; +import type { EventRuleUpdateParameters } from '@/api-clients/alert-manager/event-rule/schema/api-verbs/update'; +import type { EventRuleModel } from '@/api-clients/alert-manager/event-rule/schema/model'; + +export const useEventRuleApi = () => { + const actions = { + changeOrder: SpaceConnector.clientV2.alertManager.eventRule.changeOrder, + create: SpaceConnector.clientV2.alertManager.eventRule.create, + delete: SpaceConnector.clientV2.alertManager.eventRule.delete, + get: SpaceConnector.clientV2.alertManager.eventRule.get, + list: SpaceConnector.clientV2.alertManager.eventRule.list>, + update: SpaceConnector.clientV2.alertManager.eventRule.update, + }; + + return { + eventRuleAPI: actions, + }; +}; + diff --git a/apps/web/src/schema/alert-manager/event-rule/api-verbs/change-order.ts b/apps/web/src/api-clients/alert-manager/event-rule/schema/api-verbs/change-order.ts similarity index 100% rename from apps/web/src/schema/alert-manager/event-rule/api-verbs/change-order.ts rename to apps/web/src/api-clients/alert-manager/event-rule/schema/api-verbs/change-order.ts diff --git a/apps/web/src/schema/alert-manager/event-rule/api-verbs/create.ts b/apps/web/src/api-clients/alert-manager/event-rule/schema/api-verbs/create.ts similarity index 89% rename from apps/web/src/schema/alert-manager/event-rule/api-verbs/create.ts rename to apps/web/src/api-clients/alert-manager/event-rule/schema/api-verbs/create.ts index ddda29c748..e0ec40ca8c 100644 --- a/apps/web/src/schema/alert-manager/event-rule/api-verbs/create.ts +++ b/apps/web/src/api-clients/alert-manager/event-rule/schema/api-verbs/create.ts @@ -4,7 +4,7 @@ import type { EventRuleConditionsPolicyType, EventRuleConditionsType, EventRuleOptions, EventRuleScopeType, -} from '@/schema/alert-manager/event-rule/type'; +} from '@/api-clients/alert-manager/event-rule/schema/type'; export interface EventRuleCreateParameters { name?: string; diff --git a/apps/web/src/schema/alert-manager/event-rule/api-verbs/delete.ts b/apps/web/src/api-clients/alert-manager/event-rule/schema/api-verbs/delete.ts similarity index 100% rename from apps/web/src/schema/alert-manager/event-rule/api-verbs/delete.ts rename to apps/web/src/api-clients/alert-manager/event-rule/schema/api-verbs/delete.ts diff --git a/apps/web/src/schema/alert-manager/event-rule/api-verbs/get.ts b/apps/web/src/api-clients/alert-manager/event-rule/schema/api-verbs/get.ts similarity index 100% rename from apps/web/src/schema/alert-manager/event-rule/api-verbs/get.ts rename to apps/web/src/api-clients/alert-manager/event-rule/schema/api-verbs/get.ts diff --git a/apps/web/src/schema/alert-manager/event-rule/api-verbs/list.ts b/apps/web/src/api-clients/alert-manager/event-rule/schema/api-verbs/list.ts similarity index 100% rename from apps/web/src/schema/alert-manager/event-rule/api-verbs/list.ts rename to apps/web/src/api-clients/alert-manager/event-rule/schema/api-verbs/list.ts diff --git a/apps/web/src/schema/alert-manager/event-rule/api-verbs/update.ts b/apps/web/src/api-clients/alert-manager/event-rule/schema/api-verbs/update.ts similarity index 88% rename from apps/web/src/schema/alert-manager/event-rule/api-verbs/update.ts rename to apps/web/src/api-clients/alert-manager/event-rule/schema/api-verbs/update.ts index dbe47c84e1..23b6fe77e5 100644 --- a/apps/web/src/schema/alert-manager/event-rule/api-verbs/update.ts +++ b/apps/web/src/api-clients/alert-manager/event-rule/schema/api-verbs/update.ts @@ -3,7 +3,7 @@ import type { EventRuleActionsType, EventRuleConditionsPolicyType, EventRuleConditionsType, EventRuleOptions, -} from '@/schema/alert-manager/event-rule/type'; +} from '@/api-clients/alert-manager/event-rule/schema/type'; export interface EventRuleUpdateParameters { event_rule_id: string; diff --git a/apps/web/src/schema/alert-manager/event-rule/constant.ts b/apps/web/src/api-clients/alert-manager/event-rule/schema/constants.ts similarity index 100% rename from apps/web/src/schema/alert-manager/event-rule/constant.ts rename to apps/web/src/api-clients/alert-manager/event-rule/schema/constants.ts diff --git a/apps/web/src/schema/alert-manager/event-rule/model.ts b/apps/web/src/api-clients/alert-manager/event-rule/schema/model.ts similarity index 91% rename from apps/web/src/schema/alert-manager/event-rule/model.ts rename to apps/web/src/api-clients/alert-manager/event-rule/schema/model.ts index 539eef9b03..60d08f2016 100644 --- a/apps/web/src/schema/alert-manager/event-rule/model.ts +++ b/apps/web/src/api-clients/alert-manager/event-rule/schema/model.ts @@ -5,7 +5,7 @@ import type { EventRuleConditionsType, EventRuleOptions, EventRuleScopeType, -} from '@/schema/alert-manager/event-rule/type'; +} from '@/api-clients/alert-manager/event-rule/schema/type'; export interface EventRuleModel { event_rule_id: string; diff --git a/apps/web/src/schema/alert-manager/event-rule/type.ts b/apps/web/src/api-clients/alert-manager/event-rule/schema/type.ts similarity index 89% rename from apps/web/src/schema/alert-manager/event-rule/type.ts rename to apps/web/src/api-clients/alert-manager/event-rule/schema/type.ts index 52004cdf13..3f7e7ba828 100644 --- a/apps/web/src/schema/alert-manager/event-rule/type.ts +++ b/apps/web/src/api-clients/alert-manager/event-rule/schema/type.ts @@ -1,5 +1,5 @@ -import type { AlertStatusType } from '@/schema/alert-manager/alert/type'; -import type { EVENT_RULE_CONDITIONS_POLICY, EVENT_RULE_URGENCY, EVENT_RULE_SCOPE } from '@/schema/alert-manager/event-rule/constant'; +import type { AlertStatusType } from '@/api-clients/alert-manager/alert/schema/type'; +import type { EVENT_RULE_CONDITIONS_POLICY, EVENT_RULE_URGENCY, EVENT_RULE_SCOPE } from '@/api-clients/alert-manager/event-rule/schema/constants'; export type EventRuleConditionsPolicyType = typeof EVENT_RULE_CONDITIONS_POLICY[keyof typeof EVENT_RULE_CONDITIONS_POLICY]; export type EventRuleUrgencyType = typeof EVENT_RULE_URGENCY[keyof typeof EVENT_RULE_URGENCY]; diff --git a/apps/web/src/api-clients/alert-manager/event/composables/use-event-api.ts b/apps/web/src/api-clients/alert-manager/event/composables/use-event-api.ts new file mode 100644 index 0000000000..5cc0d196b3 --- /dev/null +++ b/apps/web/src/api-clients/alert-manager/event/composables/use-event-api.ts @@ -0,0 +1,15 @@ +import { SpaceConnector } from '@cloudforet/core-lib/space-connector'; + +import type { EventCreateParameters } from '@/api-clients/alert-manager/event/schema/api-verbs/create'; +import type { EventModel } from '@/api-clients/alert-manager/event/schema/model'; + +export const useEventApi = () => { + const actions = { + create: SpaceConnector.clientV2.alertManager.event.create, + }; + + return { + eventAPI: actions, + }; +}; + diff --git a/apps/web/src/schema/alert-manager/event/api-verbs/create.ts b/apps/web/src/api-clients/alert-manager/event/schema/api-verbs/create.ts similarity index 100% rename from apps/web/src/schema/alert-manager/event/api-verbs/create.ts rename to apps/web/src/api-clients/alert-manager/event/schema/api-verbs/create.ts diff --git a/apps/web/src/schema/alert-manager/event/constants.ts b/apps/web/src/api-clients/alert-manager/event/schema/constants.ts similarity index 100% rename from apps/web/src/schema/alert-manager/event/constants.ts rename to apps/web/src/api-clients/alert-manager/event/schema/constants.ts diff --git a/apps/web/src/schema/alert-manager/event/model.ts b/apps/web/src/api-clients/alert-manager/event/schema/model.ts similarity index 84% rename from apps/web/src/schema/alert-manager/event/model.ts rename to apps/web/src/api-clients/alert-manager/event/schema/model.ts index b41a6f0e6f..2a6b9c56aa 100644 --- a/apps/web/src/schema/alert-manager/event/model.ts +++ b/apps/web/src/api-clients/alert-manager/event/schema/model.ts @@ -1,4 +1,4 @@ -import type { EventSeverityType, EventType } from '@/schema/alert-manager/event/type'; +import type { EventSeverityType, EventType } from '@/api-clients/alert-manager/event/schema/type'; export interface EventModel { event_id: string; diff --git a/apps/web/src/schema/alert-manager/event/type.ts b/apps/web/src/api-clients/alert-manager/event/schema/type.ts similarity index 60% rename from apps/web/src/schema/alert-manager/event/type.ts rename to apps/web/src/api-clients/alert-manager/event/schema/type.ts index a33245a307..e2ab56d74e 100644 --- a/apps/web/src/schema/alert-manager/event/type.ts +++ b/apps/web/src/api-clients/alert-manager/event/schema/type.ts @@ -1,4 +1,4 @@ -import type { EVENT_SEVERITY, EVENT_TYPE } from '@/schema/alert-manager/event/constants'; +import type { EVENT_SEVERITY, EVENT_TYPE } from '@/api-clients/alert-manager/event/schema/constants'; export type EventSeverityType = typeof EVENT_SEVERITY[keyof typeof EVENT_SEVERITY]; export type EventType = typeof EVENT_TYPE[keyof typeof EVENT_TYPE]; diff --git a/apps/web/src/api-clients/alert-manager/note/composables/use-note-api.ts b/apps/web/src/api-clients/alert-manager/note/composables/use-note-api.ts new file mode 100644 index 0000000000..ed09f3c827 --- /dev/null +++ b/apps/web/src/api-clients/alert-manager/note/composables/use-note-api.ts @@ -0,0 +1,24 @@ +import { SpaceConnector } from '@cloudforet/core-lib/space-connector'; + +import type { ListResponse } from '@/api-clients/_common/schema/api-verbs/list'; +import type { NoteCreateParameters } from '@/api-clients/alert-manager/note/schema/api-verbs/create'; +import type { NoteDeleteParameters } from '@/api-clients/alert-manager/note/schema/api-verbs/delete'; +import type { NoteGetParameters } from '@/api-clients/alert-manager/note/schema/api-verbs/get'; +import type { NoteListParameters } from '@/api-clients/alert-manager/note/schema/api-verbs/list'; +import type { NoteUpdateParameters } from '@/api-clients/alert-manager/note/schema/api-verbs/update'; +import type { NoteModel } from '@/api-clients/alert-manager/note/schema/model'; + +export const useNoteApi = () => { + const actions = { + create: SpaceConnector.clientV2.alertManager.note.create, + delete: SpaceConnector.clientV2.alertManager.note.delete, + get: SpaceConnector.clientV2.alertManager.note.get, + list: SpaceConnector.clientV2.alertManager.note.list>, + update: SpaceConnector.clientV2.alertManager.note.update, + }; + + return { + noteAPI: actions, + }; +}; + diff --git a/apps/web/src/schema/alert-manager/note/api-verbs/create.ts b/apps/web/src/api-clients/alert-manager/note/schema/api-verbs/create.ts similarity index 100% rename from apps/web/src/schema/alert-manager/note/api-verbs/create.ts rename to apps/web/src/api-clients/alert-manager/note/schema/api-verbs/create.ts diff --git a/apps/web/src/schema/alert-manager/note/api-verbs/delete.ts b/apps/web/src/api-clients/alert-manager/note/schema/api-verbs/delete.ts similarity index 100% rename from apps/web/src/schema/alert-manager/note/api-verbs/delete.ts rename to apps/web/src/api-clients/alert-manager/note/schema/api-verbs/delete.ts diff --git a/apps/web/src/schema/alert-manager/note/api-verbs/get.ts b/apps/web/src/api-clients/alert-manager/note/schema/api-verbs/get.ts similarity index 100% rename from apps/web/src/schema/alert-manager/note/api-verbs/get.ts rename to apps/web/src/api-clients/alert-manager/note/schema/api-verbs/get.ts diff --git a/apps/web/src/schema/alert-manager/note/api-verbs/list.ts b/apps/web/src/api-clients/alert-manager/note/schema/api-verbs/list.ts similarity index 100% rename from apps/web/src/schema/alert-manager/note/api-verbs/list.ts rename to apps/web/src/api-clients/alert-manager/note/schema/api-verbs/list.ts diff --git a/apps/web/src/schema/alert-manager/note/api-verbs/update.ts b/apps/web/src/api-clients/alert-manager/note/schema/api-verbs/update.ts similarity index 100% rename from apps/web/src/schema/alert-manager/note/api-verbs/update.ts rename to apps/web/src/api-clients/alert-manager/note/schema/api-verbs/update.ts diff --git a/apps/web/src/schema/alert-manager/note/model.ts b/apps/web/src/api-clients/alert-manager/note/schema/model.ts similarity index 100% rename from apps/web/src/schema/alert-manager/note/model.ts rename to apps/web/src/api-clients/alert-manager/note/schema/model.ts diff --git a/apps/web/src/api-clients/alert-manager/notification-protocol/composables/use-notification-protocol-api.ts b/apps/web/src/api-clients/alert-manager/notification-protocol/composables/use-notification-protocol-api.ts new file mode 100644 index 0000000000..cbff5e8e06 --- /dev/null +++ b/apps/web/src/api-clients/alert-manager/notification-protocol/composables/use-notification-protocol-api.ts @@ -0,0 +1,32 @@ +import { SpaceConnector } from '@cloudforet/core-lib/space-connector'; + +import type { ListResponse } from '@/api-clients/_common/schema/api-verbs/list'; +import type { NotificationProtocolCreateParameters } from '@/api-clients/alert-manager/notification-protocol/schema/api-verbs/create'; +import type { NotificationProtocolDeleteParameters } from '@/api-clients/alert-manager/notification-protocol/schema/api-verbs/delete'; +import type { NotificationProtocolDisableParameters } from '@/api-clients/alert-manager/notification-protocol/schema/api-verbs/disable'; +import type { NotificationProtocolEnableParameters } from '@/api-clients/alert-manager/notification-protocol/schema/api-verbs/enable'; +import type { NotificationProtocolGetParameters } from '@/api-clients/alert-manager/notification-protocol/schema/api-verbs/get'; +import type { NotificationProtocolListParameters } from '@/api-clients/alert-manager/notification-protocol/schema/api-verbs/list'; +import type { NotificationProtocolUpdateParameters } from '@/api-clients/alert-manager/notification-protocol/schema/api-verbs/update'; +import type { NotificationProtocolUpdatePluginParameters } from '@/api-clients/alert-manager/notification-protocol/schema/api-verbs/update-plugin'; +import type { NotificationProtocolVerifyPluginParameters } from '@/api-clients/alert-manager/notification-protocol/schema/api-verbs/verify-plugin'; +import type { NotificationProtocolModel } from '@/api-clients/alert-manager/notification-protocol/schema/model'; + +export const useNotificationProtocolApi = () => { + const actions = { + create: SpaceConnector.clientV2.alertManager.notificationProtocol.create, + delete: SpaceConnector.clientV2.alertManager.notificationProtocol.delete, + disable: SpaceConnector.clientV2.alertManager.notificationProtocol.disable, + enable: SpaceConnector.clientV2.alertManager.notificationProtocol.enable, + get: SpaceConnector.clientV2.alertManager.notificationProtocol.get, + list: SpaceConnector.clientV2.alertManager.notificationProtocol.list>, + updatePlugin: SpaceConnector.clientV2.alertManager.notificationProtocol.updatePlugin, + update: SpaceConnector.clientV2.alertManager.notificationProtocol.update, + verifyPlugin: SpaceConnector.clientV2.alertManager.notificationProtocol.verifyPlugin, + }; + + return { + notificationProtocolAPI: actions, + }; +}; + diff --git a/apps/web/src/schema/alert-manager/notification-protocol/api-verbs/create.ts b/apps/web/src/api-clients/alert-manager/notification-protocol/schema/api-verbs/create.ts similarity index 81% rename from apps/web/src/schema/alert-manager/notification-protocol/api-verbs/create.ts rename to apps/web/src/api-clients/alert-manager/notification-protocol/schema/api-verbs/create.ts index 260e2f04eb..5177becb1e 100644 --- a/apps/web/src/schema/alert-manager/notification-protocol/api-verbs/create.ts +++ b/apps/web/src/api-clients/alert-manager/notification-protocol/schema/api-verbs/create.ts @@ -1,6 +1,5 @@ import type { Tags } from '@/api-clients/_common/schema/model'; -import type { NotificationProtocolPluginInfoRequestType } from '@/schema/alert-manager/notification-protocol/type'; - +import type { NotificationProtocolPluginInfoRequestType } from '@/api-clients/alert-manager/notification-protocol/schema/type'; export interface NotificationProtocolCreateParameters { name: string; diff --git a/apps/web/src/schema/alert-manager/notification-protocol/api-verbs/delete.ts b/apps/web/src/api-clients/alert-manager/notification-protocol/schema/api-verbs/delete.ts similarity index 100% rename from apps/web/src/schema/alert-manager/notification-protocol/api-verbs/delete.ts rename to apps/web/src/api-clients/alert-manager/notification-protocol/schema/api-verbs/delete.ts diff --git a/apps/web/src/schema/alert-manager/notification-protocol/api-verbs/disable.ts b/apps/web/src/api-clients/alert-manager/notification-protocol/schema/api-verbs/disable.ts similarity index 100% rename from apps/web/src/schema/alert-manager/notification-protocol/api-verbs/disable.ts rename to apps/web/src/api-clients/alert-manager/notification-protocol/schema/api-verbs/disable.ts diff --git a/apps/web/src/schema/alert-manager/notification-protocol/api-verbs/enable.ts b/apps/web/src/api-clients/alert-manager/notification-protocol/schema/api-verbs/enable.ts similarity index 100% rename from apps/web/src/schema/alert-manager/notification-protocol/api-verbs/enable.ts rename to apps/web/src/api-clients/alert-manager/notification-protocol/schema/api-verbs/enable.ts diff --git a/apps/web/src/schema/alert-manager/notification-protocol/api-verbs/get.ts b/apps/web/src/api-clients/alert-manager/notification-protocol/schema/api-verbs/get.ts similarity index 100% rename from apps/web/src/schema/alert-manager/notification-protocol/api-verbs/get.ts rename to apps/web/src/api-clients/alert-manager/notification-protocol/schema/api-verbs/get.ts diff --git a/apps/web/src/schema/alert-manager/notification-protocol/api-verbs/list.ts b/apps/web/src/api-clients/alert-manager/notification-protocol/schema/api-verbs/list.ts similarity index 67% rename from apps/web/src/schema/alert-manager/notification-protocol/api-verbs/list.ts rename to apps/web/src/api-clients/alert-manager/notification-protocol/schema/api-verbs/list.ts index 173a7aa9fc..d6b3abc1a2 100644 --- a/apps/web/src/schema/alert-manager/notification-protocol/api-verbs/list.ts +++ b/apps/web/src/api-clients/alert-manager/notification-protocol/schema/api-verbs/list.ts @@ -1,6 +1,6 @@ import type { Query } from '@cloudforet/core-lib/space-connector/type'; -import type { NotificationProtocolStateType } from '@/schema/alert-manager/notification-protocol/type'; +import type { NotificationProtocolStateType } from '@/api-clients/alert-manager/notification-protocol/schema/type'; export interface NotificationProtocolListParameters { query?: Query; diff --git a/apps/web/src/schema/alert-manager/notification-protocol/api-verbs/update-plugin.ts b/apps/web/src/api-clients/alert-manager/notification-protocol/schema/api-verbs/update-plugin.ts similarity index 81% rename from apps/web/src/schema/alert-manager/notification-protocol/api-verbs/update-plugin.ts rename to apps/web/src/api-clients/alert-manager/notification-protocol/schema/api-verbs/update-plugin.ts index 422a7f6d71..a0ebf66977 100644 --- a/apps/web/src/schema/alert-manager/notification-protocol/api-verbs/update-plugin.ts +++ b/apps/web/src/api-clients/alert-manager/notification-protocol/schema/api-verbs/update-plugin.ts @@ -1,4 +1,4 @@ -import type { NotificationProtocolPluginUpgradeModeType } from '@/schema/alert-manager/notification-protocol/type'; +import type { NotificationProtocolPluginUpgradeModeType } from '@/api-clients/alert-manager/notification-protocol/schema/type'; export interface NotificationProtocolUpdatePluginParameters { protocol_id: string; diff --git a/apps/web/src/schema/alert-manager/notification-protocol/api-verbs/update.ts b/apps/web/src/api-clients/alert-manager/notification-protocol/schema/api-verbs/update.ts similarity index 100% rename from apps/web/src/schema/alert-manager/notification-protocol/api-verbs/update.ts rename to apps/web/src/api-clients/alert-manager/notification-protocol/schema/api-verbs/update.ts diff --git a/apps/web/src/schema/alert-manager/notification-protocol/api-verbs/verify-plugin.ts b/apps/web/src/api-clients/alert-manager/notification-protocol/schema/api-verbs/verify-plugin.ts similarity index 100% rename from apps/web/src/schema/alert-manager/notification-protocol/api-verbs/verify-plugin.ts rename to apps/web/src/api-clients/alert-manager/notification-protocol/schema/api-verbs/verify-plugin.ts diff --git a/apps/web/src/schema/alert-manager/notification-protocol/constants.ts b/apps/web/src/api-clients/alert-manager/notification-protocol/schema/constants.ts similarity index 100% rename from apps/web/src/schema/alert-manager/notification-protocol/constants.ts rename to apps/web/src/api-clients/alert-manager/notification-protocol/schema/constants.ts diff --git a/apps/web/src/schema/alert-manager/notification-protocol/model.ts b/apps/web/src/api-clients/alert-manager/notification-protocol/schema/model.ts similarity index 86% rename from apps/web/src/schema/alert-manager/notification-protocol/model.ts rename to apps/web/src/api-clients/alert-manager/notification-protocol/schema/model.ts index 09858280e6..4d8e4e4fbe 100644 --- a/apps/web/src/schema/alert-manager/notification-protocol/model.ts +++ b/apps/web/src/api-clients/alert-manager/notification-protocol/schema/model.ts @@ -4,7 +4,7 @@ import type { Tags } from '@/api-clients/_common/schema/model'; import type { NotificationProtocolPluginInfoType, NotificationProtocolStateType, -} from '@/schema/alert-manager/notification-protocol/type'; +} from '@/api-clients/alert-manager/notification-protocol/schema/type'; export interface NotificationProtocolModel { protocol_id: string; diff --git a/apps/web/src/schema/alert-manager/notification-protocol/type.ts b/apps/web/src/api-clients/alert-manager/notification-protocol/schema/type.ts similarity index 92% rename from apps/web/src/schema/alert-manager/notification-protocol/type.ts rename to apps/web/src/api-clients/alert-manager/notification-protocol/schema/type.ts index 093b9d778d..4ac5864484 100644 --- a/apps/web/src/schema/alert-manager/notification-protocol/type.ts +++ b/apps/web/src/api-clients/alert-manager/notification-protocol/schema/type.ts @@ -1,6 +1,6 @@ import type { JsonSchema } from '@cloudforet/mirinae/types/controls/forms/json-schema-form/type'; -import type { NOTIFICATION_PROTOCOL_STATE, NOTIFICATION_PROTOCOL_PLUGIN_UPGRADE_MODE } from '@/schema/alert-manager/notification-protocol/constants'; +import type { NOTIFICATION_PROTOCOL_STATE, NOTIFICATION_PROTOCOL_PLUGIN_UPGRADE_MODE } from '@/api-clients/alert-manager/notification-protocol/schema/constants'; export type NotificationProtocolStateType = typeof NOTIFICATION_PROTOCOL_STATE[keyof typeof NOTIFICATION_PROTOCOL_STATE]; diff --git a/apps/web/src/api-clients/alert-manager/service-channel/composables/use-service-channel-api.ts b/apps/web/src/api-clients/alert-manager/service-channel/composables/use-service-channel-api.ts new file mode 100644 index 0000000000..f25d52ec78 --- /dev/null +++ b/apps/web/src/api-clients/alert-manager/service-channel/composables/use-service-channel-api.ts @@ -0,0 +1,30 @@ +import { SpaceConnector } from '@cloudforet/core-lib/space-connector'; + +import type { ListResponse } from '@/api-clients/_common/schema/api-verbs/list'; +import type { ServiceChannelCreateParameters } from '@/api-clients/alert-manager/service-channel/schema/api-verbs/create'; +import type { ServiceChannelCreateForwardChannelParameters } from '@/api-clients/alert-manager/service-channel/schema/api-verbs/create-forward-channel'; +import type { ServiceChannelDeleteParameters } from '@/api-clients/alert-manager/service-channel/schema/api-verbs/delete'; +import type { ServiceChannelDisableParameters } from '@/api-clients/alert-manager/service-channel/schema/api-verbs/disable'; +import type { ServiceChannelEnableParameters } from '@/api-clients/alert-manager/service-channel/schema/api-verbs/enable'; +import type { ServiceChannelGetParameters } from '@/api-clients/alert-manager/service-channel/schema/api-verbs/get'; +import type { ServiceChannelListParameters } from '@/api-clients/alert-manager/service-channel/schema/api-verbs/list'; +import type { ServiceChannelUpdateParameters } from '@/api-clients/alert-manager/service-channel/schema/api-verbs/update'; +import type { ServiceChannelModel } from '@/api-clients/alert-manager/service-channel/schema/model'; + +export const useServiceChannelApi = () => { + const actions = { + createForwardChannel: SpaceConnector.clientV2.alertManager.serviceChannel.createForwardChannel, + create: SpaceConnector.clientV2.alertManager.serviceChannel.create, + delete: SpaceConnector.clientV2.alertManager.serviceChannel.delete, + disable: SpaceConnector.clientV2.alertManager.serviceChannel.disable, + enable: SpaceConnector.clientV2.alertManager.serviceChannel.enable, + get: SpaceConnector.clientV2.alertManager.serviceChannel.get, + list: SpaceConnector.clientV2.alertManager.serviceChannel.list>, + update: SpaceConnector.clientV2.alertManager.serviceChannel.update, + }; + + return { + serviceChannelAPI: actions, + }; +}; + diff --git a/apps/web/src/schema/alert-manager/service-channel/api-verbs/create-forward-channel.ts b/apps/web/src/api-clients/alert-manager/service-channel/schema/api-verbs/create-forward-channel.ts similarity index 82% rename from apps/web/src/schema/alert-manager/service-channel/api-verbs/create-forward-channel.ts rename to apps/web/src/api-clients/alert-manager/service-channel/schema/api-verbs/create-forward-channel.ts index 9cc120c911..ec8613bb5c 100644 --- a/apps/web/src/schema/alert-manager/service-channel/api-verbs/create-forward-channel.ts +++ b/apps/web/src/api-clients/alert-manager/service-channel/schema/api-verbs/create-forward-channel.ts @@ -1,5 +1,5 @@ import type { Tags } from '@/api-clients/_common/schema/model'; -import type { ServiceChannelDataType, ServiceChannelScheduleInfoType } from '@/schema/alert-manager/service-channel/type'; +import type { ServiceChannelDataType, ServiceChannelScheduleInfoType } from '@/api-clients/alert-manager/service-channel/schema/type'; export interface ServiceChannelCreateForwardChannelParameters { name: string; diff --git a/apps/web/src/schema/alert-manager/service-channel/api-verbs/create.ts b/apps/web/src/api-clients/alert-manager/service-channel/schema/api-verbs/create.ts similarity index 83% rename from apps/web/src/schema/alert-manager/service-channel/api-verbs/create.ts rename to apps/web/src/api-clients/alert-manager/service-channel/schema/api-verbs/create.ts index 7a9cb76cdc..37e9b0d926 100644 --- a/apps/web/src/schema/alert-manager/service-channel/api-verbs/create.ts +++ b/apps/web/src/api-clients/alert-manager/service-channel/schema/api-verbs/create.ts @@ -1,5 +1,5 @@ import type { Tags } from '@/api-clients/_common/schema/model'; -import type { ServiceChannelDataType, ServiceChannelScheduleInfoType } from '@/schema/alert-manager/service-channel/type'; +import type { ServiceChannelDataType, ServiceChannelScheduleInfoType } from '@/api-clients/alert-manager/service-channel/schema/type'; export interface ServiceChannelCreateParameters { protocol_id: string; diff --git a/apps/web/src/schema/alert-manager/service-channel/api-verbs/delete.ts b/apps/web/src/api-clients/alert-manager/service-channel/schema/api-verbs/delete.ts similarity index 100% rename from apps/web/src/schema/alert-manager/service-channel/api-verbs/delete.ts rename to apps/web/src/api-clients/alert-manager/service-channel/schema/api-verbs/delete.ts diff --git a/apps/web/src/schema/alert-manager/service-channel/api-verbs/disable.ts b/apps/web/src/api-clients/alert-manager/service-channel/schema/api-verbs/disable.ts similarity index 100% rename from apps/web/src/schema/alert-manager/service-channel/api-verbs/disable.ts rename to apps/web/src/api-clients/alert-manager/service-channel/schema/api-verbs/disable.ts diff --git a/apps/web/src/schema/alert-manager/service-channel/api-verbs/enable.ts b/apps/web/src/api-clients/alert-manager/service-channel/schema/api-verbs/enable.ts similarity index 100% rename from apps/web/src/schema/alert-manager/service-channel/api-verbs/enable.ts rename to apps/web/src/api-clients/alert-manager/service-channel/schema/api-verbs/enable.ts diff --git a/apps/web/src/schema/alert-manager/service-channel/api-verbs/get.ts b/apps/web/src/api-clients/alert-manager/service-channel/schema/api-verbs/get.ts similarity index 100% rename from apps/web/src/schema/alert-manager/service-channel/api-verbs/get.ts rename to apps/web/src/api-clients/alert-manager/service-channel/schema/api-verbs/get.ts diff --git a/apps/web/src/schema/alert-manager/service-channel/api-verbs/list.ts b/apps/web/src/api-clients/alert-manager/service-channel/schema/api-verbs/list.ts similarity index 86% rename from apps/web/src/schema/alert-manager/service-channel/api-verbs/list.ts rename to apps/web/src/api-clients/alert-manager/service-channel/schema/api-verbs/list.ts index c7283b3582..fe2f8b25ce 100644 --- a/apps/web/src/schema/alert-manager/service-channel/api-verbs/list.ts +++ b/apps/web/src/api-clients/alert-manager/service-channel/schema/api-verbs/list.ts @@ -3,7 +3,7 @@ import type { Query } from '@cloudforet/core-lib/space-connector/type'; import type { ServiceChannelStateType, ServiceChannelType, -} from '@/schema/alert-manager/service-channel/type'; +} from '@/api-clients/alert-manager/service-channel/schema/type'; export interface ServiceChannelListParameters { query?: Query; diff --git a/apps/web/src/schema/alert-manager/service-channel/api-verbs/update.ts b/apps/web/src/api-clients/alert-manager/service-channel/schema/api-verbs/update.ts similarity index 81% rename from apps/web/src/schema/alert-manager/service-channel/api-verbs/update.ts rename to apps/web/src/api-clients/alert-manager/service-channel/schema/api-verbs/update.ts index 51dc4c2801..68221986b6 100644 --- a/apps/web/src/schema/alert-manager/service-channel/api-verbs/update.ts +++ b/apps/web/src/api-clients/alert-manager/service-channel/schema/api-verbs/update.ts @@ -1,5 +1,5 @@ import type { Tags } from '@/api-clients/_common/schema/model'; -import type { ServiceChannelDataType, ServiceChannelScheduleInfoType } from '@/schema/alert-manager/service-channel/type'; +import type { ServiceChannelDataType, ServiceChannelScheduleInfoType } from '@/api-clients/alert-manager/service-channel/schema/type'; export interface ServiceChannelUpdateParameters { channel_id: string; diff --git a/apps/web/src/schema/alert-manager/service-channel/constants.ts b/apps/web/src/api-clients/alert-manager/service-channel/schema/constants.ts similarity index 100% rename from apps/web/src/schema/alert-manager/service-channel/constants.ts rename to apps/web/src/api-clients/alert-manager/service-channel/schema/constants.ts diff --git a/apps/web/src/schema/alert-manager/service-channel/model.ts b/apps/web/src/api-clients/alert-manager/service-channel/schema/model.ts similarity index 80% rename from apps/web/src/schema/alert-manager/service-channel/model.ts rename to apps/web/src/api-clients/alert-manager/service-channel/schema/model.ts index 0d8bea6974..0b1f852dfe 100644 --- a/apps/web/src/schema/alert-manager/service-channel/model.ts +++ b/apps/web/src/api-clients/alert-manager/service-channel/schema/model.ts @@ -1,9 +1,10 @@ import type { Tags } from '@/api-clients/_common/schema/model'; import type { ServiceChannelDataType, + ServiceChannelScheduleInfoType, ServiceChannelStateType, - ServiceChannelType, ServiceChannelScheduleInfoType, -} from '@/schema/alert-manager/service-channel/type'; + ServiceChannelType, +} from '@/api-clients/alert-manager/service-channel/schema/type'; export interface ServiceChannelModel { channel_id: string; diff --git a/apps/web/src/schema/alert-manager/service-channel/type.ts b/apps/web/src/api-clients/alert-manager/service-channel/schema/type.ts similarity index 94% rename from apps/web/src/schema/alert-manager/service-channel/type.ts rename to apps/web/src/api-clients/alert-manager/service-channel/schema/type.ts index b349dd71f4..96809817e4 100644 --- a/apps/web/src/schema/alert-manager/service-channel/type.ts +++ b/apps/web/src/api-clients/alert-manager/service-channel/schema/type.ts @@ -3,7 +3,7 @@ import type { SERVICE_CHANNEL_STATE, SERVICE_CHANNEL_TYPE, SERVICE_CHANNEL_SCHEDULE_TYPE, -} from '@/schema/alert-manager/service-channel/constants'; +} from '@/api-clients/alert-manager/service-channel/schema/constants'; export type ServiceChannelStateType = typeof SERVICE_CHANNEL_STATE[keyof typeof SERVICE_CHANNEL_STATE]; export type ServiceChannelType = typeof SERVICE_CHANNEL_TYPE[keyof typeof SERVICE_CHANNEL_TYPE]; diff --git a/apps/web/src/api-clients/alert-manager/service/composables/use-service-api.ts b/apps/web/src/api-clients/alert-manager/service/composables/use-service-api.ts new file mode 100644 index 0000000000..f1006031cb --- /dev/null +++ b/apps/web/src/api-clients/alert-manager/service/composables/use-service-api.ts @@ -0,0 +1,26 @@ +import { SpaceConnector } from '@cloudforet/core-lib/space-connector'; + +import type { ListResponse } from '@/api-clients/_common/schema/api-verbs/list'; +import type { ServiceChangeMembersParameters } from '@/api-clients/alert-manager/service/schema/api-verbs/change-members'; +import type { ServiceCreateParameters } from '@/api-clients/alert-manager/service/schema/api-verbs/create'; +import type { ServiceDeleteParameters } from '@/api-clients/alert-manager/service/schema/api-verbs/delete'; +import type { ServiceGetParameters } from '@/api-clients/alert-manager/service/schema/api-verbs/get'; +import type { ServiceListParameters } from '@/api-clients/alert-manager/service/schema/api-verbs/list'; +import type { ServiceUpdateParameters } from '@/api-clients/alert-manager/service/schema/api-verbs/update'; +import type { ServiceModel } from '@/api-clients/alert-manager/service/schema/model'; + +export const useServiceApi = () => { + const actions = { + changeMembers: SpaceConnector.clientV2.alertManager.service.changeMembers, + create: SpaceConnector.clientV2.alertManager.service.create, + delete: SpaceConnector.clientV2.alertManager.service.delete, + get: SpaceConnector.clientV2.alertManager.service.get, + list: SpaceConnector.clientV2.alertManager.service.list>, + update: SpaceConnector.clientV2.alertManager.service.update, + }; + + return { + serviceAPI: actions, + }; +}; + diff --git a/apps/web/src/schema/alert-manager/service/api-verbs/chagne-members.ts b/apps/web/src/api-clients/alert-manager/service/schema/api-verbs/change-members.ts similarity index 59% rename from apps/web/src/schema/alert-manager/service/api-verbs/chagne-members.ts rename to apps/web/src/api-clients/alert-manager/service/schema/api-verbs/change-members.ts index ebdd311bd8..9c6eb4dc90 100644 --- a/apps/web/src/schema/alert-manager/service/api-verbs/chagne-members.ts +++ b/apps/web/src/api-clients/alert-manager/service/schema/api-verbs/change-members.ts @@ -1,4 +1,4 @@ -import type { MembersType } from '@/schema/alert-manager/service/type'; +import type { MembersType } from '@/api-clients/alert-manager/service/schema/type'; export interface ServiceChangeMembersParameters { service_id: string; diff --git a/apps/web/src/schema/alert-manager/service/api-verbs/create.ts b/apps/web/src/api-clients/alert-manager/service/schema/api-verbs/create.ts similarity index 72% rename from apps/web/src/schema/alert-manager/service/api-verbs/create.ts rename to apps/web/src/api-clients/alert-manager/service/schema/api-verbs/create.ts index 21a95bb002..7710aa8519 100644 --- a/apps/web/src/schema/alert-manager/service/api-verbs/create.ts +++ b/apps/web/src/api-clients/alert-manager/service/schema/api-verbs/create.ts @@ -1,5 +1,5 @@ import type { Tags } from '@/api-clients/_common/schema/model'; -import type { MembersType, ServiceOptionsType } from '@/schema/alert-manager/service/type'; +import type { MembersType, ServiceOptionsType } from '@/api-clients/alert-manager/service/schema/type'; export interface ServiceCreateParameters { name: string; diff --git a/apps/web/src/schema/alert-manager/service/api-verbs/delete.ts b/apps/web/src/api-clients/alert-manager/service/schema/api-verbs/delete.ts similarity index 100% rename from apps/web/src/schema/alert-manager/service/api-verbs/delete.ts rename to apps/web/src/api-clients/alert-manager/service/schema/api-verbs/delete.ts diff --git a/apps/web/src/schema/alert-manager/service/api-verbs/get.ts b/apps/web/src/api-clients/alert-manager/service/schema/api-verbs/get.ts similarity index 100% rename from apps/web/src/schema/alert-manager/service/api-verbs/get.ts rename to apps/web/src/api-clients/alert-manager/service/schema/api-verbs/get.ts diff --git a/apps/web/src/schema/alert-manager/service/api-verbs/list.ts b/apps/web/src/api-clients/alert-manager/service/schema/api-verbs/list.ts similarity index 100% rename from apps/web/src/schema/alert-manager/service/api-verbs/list.ts rename to apps/web/src/api-clients/alert-manager/service/schema/api-verbs/list.ts diff --git a/apps/web/src/schema/alert-manager/service/api-verbs/update.ts b/apps/web/src/api-clients/alert-manager/service/schema/api-verbs/update.ts similarity index 74% rename from apps/web/src/schema/alert-manager/service/api-verbs/update.ts rename to apps/web/src/api-clients/alert-manager/service/schema/api-verbs/update.ts index bcfb7b6917..77486e249b 100644 --- a/apps/web/src/schema/alert-manager/service/api-verbs/update.ts +++ b/apps/web/src/api-clients/alert-manager/service/schema/api-verbs/update.ts @@ -1,5 +1,5 @@ import type { Tags } from '@/api-clients/_common/schema/model'; -import type { ServiceOptionsType } from '@/schema/alert-manager/service/type'; +import type { ServiceOptionsType } from '@/api-clients/alert-manager/service/schema/type'; export interface ServiceUpdateParameters { service_id: string; diff --git a/apps/web/src/schema/alert-manager/service/constants.ts b/apps/web/src/api-clients/alert-manager/service/schema/constants.ts similarity index 100% rename from apps/web/src/schema/alert-manager/service/constants.ts rename to apps/web/src/api-clients/alert-manager/service/schema/constants.ts diff --git a/apps/web/src/schema/alert-manager/service/model.ts b/apps/web/src/api-clients/alert-manager/service/schema/model.ts similarity index 91% rename from apps/web/src/schema/alert-manager/service/model.ts rename to apps/web/src/api-clients/alert-manager/service/schema/model.ts index bad20bc731..27c9ccca2c 100644 --- a/apps/web/src/schema/alert-manager/service/model.ts +++ b/apps/web/src/api-clients/alert-manager/service/schema/model.ts @@ -1,7 +1,7 @@ import type { Tags } from '@/api-clients/_common/schema/model'; import type { AlertsInfoType, AlertsType, HealthyType, MembersType, ServiceOptionsType, -} from '@/schema/alert-manager/service/type'; +} from '@/api-clients/alert-manager/service/schema/type'; export interface ServiceModel { service_id: string; diff --git a/apps/web/src/schema/alert-manager/service/type.ts b/apps/web/src/api-clients/alert-manager/service/schema/type.ts similarity index 92% rename from apps/web/src/schema/alert-manager/service/type.ts rename to apps/web/src/api-clients/alert-manager/service/schema/type.ts index 67cc5867ec..dec52b4ad4 100644 --- a/apps/web/src/schema/alert-manager/service/type.ts +++ b/apps/web/src/api-clients/alert-manager/service/schema/type.ts @@ -1,7 +1,7 @@ import type { NOTIFICATION_URGENCY, RECOVERY_MODE, MEMBERS_TYPE, SERVICE_ALERTS_TYPE, SERVICE_HEALTHY_TYPE, -} from '@/schema/alert-manager/service/constants'; +} from '@/api-clients/alert-manager/service/schema/constants'; export type NotificationUrgencyType = typeof NOTIFICATION_URGENCY[keyof typeof NOTIFICATION_URGENCY]; export type RecoveryModeType = typeof RECOVERY_MODE[keyof typeof RECOVERY_MODE]; diff --git a/apps/web/src/api-clients/alert-manager/user-channel/composables/use-user-channel-api.ts b/apps/web/src/api-clients/alert-manager/user-channel/composables/use-user-channel-api.ts new file mode 100644 index 0000000000..6da3118a1c --- /dev/null +++ b/apps/web/src/api-clients/alert-manager/user-channel/composables/use-user-channel-api.ts @@ -0,0 +1,28 @@ +import { SpaceConnector } from '@cloudforet/core-lib/space-connector'; + +import type { ListResponse } from '@/api-clients/_common/schema/api-verbs/list'; +import type { UserChannelCreateParameters } from '@/api-clients/alert-manager/user-channel/schema/api-verbs/create'; +import type { UserChannelDeleteParameters } from '@/api-clients/alert-manager/user-channel/schema/api-verbs/delete'; +import type { UserChannelDisableParameters } from '@/api-clients/alert-manager/user-channel/schema/api-verbs/disable'; +import type { UserChannelEnableParameters } from '@/api-clients/alert-manager/user-channel/schema/api-verbs/enable'; +import type { UserChannelGetParameters } from '@/api-clients/alert-manager/user-channel/schema/api-verbs/get'; +import type { UserChannelListParameters } from '@/api-clients/alert-manager/user-channel/schema/api-verbs/list'; +import type { UserChannelUpdateParameters } from '@/api-clients/alert-manager/user-channel/schema/api-verbs/update'; +import type { UserChannelModel } from '@/api-clients/alert-manager/user-channel/schema/model'; + +export const useUserChannelApi = () => { + const actions = { + create: SpaceConnector.clientV2.alertManager.userChannel.create, + delete: SpaceConnector.clientV2.alertManager.userChannel.delete, + disable: SpaceConnector.clientV2.alertManager.userChannel.disable, + enable: SpaceConnector.clientV2.alertManager.userChannel.enable, + get: SpaceConnector.clientV2.alertManager.userChannel.get, + list: SpaceConnector.clientV2.alertManager.userChannel.list>, + update: SpaceConnector.clientV2.alertManager.userChannel.update, + }; + + return { + userChannelAPI: actions, + }; +}; + diff --git a/apps/web/src/schema/alert-manager/user-channel/api-verbs/create.ts b/apps/web/src/api-clients/alert-manager/user-channel/schema/api-verbs/create.ts similarity index 67% rename from apps/web/src/schema/alert-manager/user-channel/api-verbs/create.ts rename to apps/web/src/api-clients/alert-manager/user-channel/schema/api-verbs/create.ts index 1ba874cf52..9ffeb0383b 100644 --- a/apps/web/src/schema/alert-manager/user-channel/api-verbs/create.ts +++ b/apps/web/src/api-clients/alert-manager/user-channel/schema/api-verbs/create.ts @@ -1,5 +1,5 @@ import type { Tags } from '@/api-clients/_common/schema/model'; -import type { UserChannelScheduleInfoType } from '@/schema/alert-manager/user-channel/type'; +import type { UserChannelScheduleInfoType } from '@/api-clients/alert-manager/user-channel/schema/type'; export interface UserChannelCreateParameters { protocol_id: string; diff --git a/apps/web/src/schema/alert-manager/user-channel/api-verbs/delete.ts b/apps/web/src/api-clients/alert-manager/user-channel/schema/api-verbs/delete.ts similarity index 100% rename from apps/web/src/schema/alert-manager/user-channel/api-verbs/delete.ts rename to apps/web/src/api-clients/alert-manager/user-channel/schema/api-verbs/delete.ts diff --git a/apps/web/src/schema/alert-manager/user-channel/api-verbs/disable.ts b/apps/web/src/api-clients/alert-manager/user-channel/schema/api-verbs/disable.ts similarity index 100% rename from apps/web/src/schema/alert-manager/user-channel/api-verbs/disable.ts rename to apps/web/src/api-clients/alert-manager/user-channel/schema/api-verbs/disable.ts diff --git a/apps/web/src/schema/alert-manager/user-channel/api-verbs/enable.ts b/apps/web/src/api-clients/alert-manager/user-channel/schema/api-verbs/enable.ts similarity index 100% rename from apps/web/src/schema/alert-manager/user-channel/api-verbs/enable.ts rename to apps/web/src/api-clients/alert-manager/user-channel/schema/api-verbs/enable.ts diff --git a/apps/web/src/schema/alert-manager/user-channel/api-verbs/get.ts b/apps/web/src/api-clients/alert-manager/user-channel/schema/api-verbs/get.ts similarity index 100% rename from apps/web/src/schema/alert-manager/user-channel/api-verbs/get.ts rename to apps/web/src/api-clients/alert-manager/user-channel/schema/api-verbs/get.ts diff --git a/apps/web/src/schema/alert-manager/user-channel/api-verbs/list.ts b/apps/web/src/api-clients/alert-manager/user-channel/schema/api-verbs/list.ts similarity index 71% rename from apps/web/src/schema/alert-manager/user-channel/api-verbs/list.ts rename to apps/web/src/api-clients/alert-manager/user-channel/schema/api-verbs/list.ts index d746592400..6da2293dce 100644 --- a/apps/web/src/schema/alert-manager/user-channel/api-verbs/list.ts +++ b/apps/web/src/api-clients/alert-manager/user-channel/schema/api-verbs/list.ts @@ -1,6 +1,6 @@ import type { Query } from '@cloudforet/core-lib/space-connector/type'; -import type { UserChannelStateType } from '@/schema/alert-manager/user-channel/type'; +import type { UserChannelStateType } from '@/api-clients/alert-manager/user-channel/schema/type'; export interface UserChannelListParameters { query?: Query; diff --git a/apps/web/src/schema/alert-manager/user-channel/api-verbs/update.ts b/apps/web/src/api-clients/alert-manager/user-channel/schema/api-verbs/update.ts similarity index 70% rename from apps/web/src/schema/alert-manager/user-channel/api-verbs/update.ts rename to apps/web/src/api-clients/alert-manager/user-channel/schema/api-verbs/update.ts index b6a8cbe81c..2aeec64aa1 100644 --- a/apps/web/src/schema/alert-manager/user-channel/api-verbs/update.ts +++ b/apps/web/src/api-clients/alert-manager/user-channel/schema/api-verbs/update.ts @@ -1,5 +1,5 @@ import type { Tags } from '@/api-clients/_common/schema/model'; -import type { UserChannelScheduleInfoType } from '@/schema/alert-manager/user-channel/type'; +import type { UserChannelScheduleInfoType } from '@/api-clients/alert-manager/user-channel/schema/type'; export interface UserChannelUpdateParameters { channel_id: string; diff --git a/apps/web/src/schema/alert-manager/user-channel/constants.ts b/apps/web/src/api-clients/alert-manager/user-channel/schema/constants.ts similarity index 100% rename from apps/web/src/schema/alert-manager/user-channel/constants.ts rename to apps/web/src/api-clients/alert-manager/user-channel/schema/constants.ts diff --git a/apps/web/src/schema/alert-manager/user-channel/model.ts b/apps/web/src/api-clients/alert-manager/user-channel/schema/model.ts similarity index 86% rename from apps/web/src/schema/alert-manager/user-channel/model.ts rename to apps/web/src/api-clients/alert-manager/user-channel/schema/model.ts index bc046d561b..7b801b2ce2 100644 --- a/apps/web/src/schema/alert-manager/user-channel/model.ts +++ b/apps/web/src/api-clients/alert-manager/user-channel/schema/model.ts @@ -1,5 +1,5 @@ import type { Tags } from '@/api-clients/_common/schema/model'; -import type { UserChannelScheduleInfoType, UserChannelStateType } from '@/schema/alert-manager/user-channel/type'; +import type { UserChannelScheduleInfoType, UserChannelStateType } from '@/api-clients/alert-manager/user-channel/schema/type'; export interface UserChannelModel { channel_id: string; diff --git a/apps/web/src/schema/alert-manager/user-channel/type.ts b/apps/web/src/api-clients/alert-manager/user-channel/schema/type.ts similarity index 92% rename from apps/web/src/schema/alert-manager/user-channel/type.ts rename to apps/web/src/api-clients/alert-manager/user-channel/schema/type.ts index 4336b248f8..654d022915 100644 --- a/apps/web/src/schema/alert-manager/user-channel/type.ts +++ b/apps/web/src/api-clients/alert-manager/user-channel/schema/type.ts @@ -1,4 +1,4 @@ -import type { USER_CHANNEL_SCHEDULE_TYPE, USER_CHANNEL_STATE } from '@/schema/alert-manager/user-channel/constants'; +import type { USER_CHANNEL_SCHEDULE_TYPE, USER_CHANNEL_STATE } from '@/api-clients/alert-manager/user-channel/schema/constants'; export type UserChannelStateType = typeof USER_CHANNEL_STATE[keyof typeof USER_CHANNEL_STATE]; export type UserChannelScheduleType = typeof USER_CHANNEL_SCHEDULE_TYPE[keyof typeof USER_CHANNEL_SCHEDULE_TYPE]; diff --git a/apps/web/src/api-clients/alert-manager/user-group-channel/composables/use-user-group-channel-api.ts b/apps/web/src/api-clients/alert-manager/user-group-channel/composables/use-user-group-channel-api.ts new file mode 100644 index 0000000000..cb664ab266 --- /dev/null +++ b/apps/web/src/api-clients/alert-manager/user-group-channel/composables/use-user-group-channel-api.ts @@ -0,0 +1,28 @@ +import { SpaceConnector } from '@cloudforet/core-lib/space-connector'; + +import type { ListResponse } from '@/api-clients/_common/schema/api-verbs/list'; +import type { UserGroupChannelCreateParameters } from '@/api-clients/alert-manager/user-group-channel/schema/api-verbs/create'; +import type { UserGroupChannelDeleteParameters } from '@/api-clients/alert-manager/user-group-channel/schema/api-verbs/delete'; +import type { UserGroupChannelDisableParameters } from '@/api-clients/alert-manager/user-group-channel/schema/api-verbs/disable'; +import type { UserGroupChannelEnableParameters } from '@/api-clients/alert-manager/user-group-channel/schema/api-verbs/enable'; +import type { UserGroupChannelGetParameters } from '@/api-clients/alert-manager/user-group-channel/schema/api-verbs/get'; +import type { UserGroupChannelListParameters } from '@/api-clients/alert-manager/user-group-channel/schema/api-verbs/list'; +import type { UserGroupChannelUpdateParameters } from '@/api-clients/alert-manager/user-group-channel/schema/api-verbs/update'; +import type { UserGroupChannelModel } from '@/api-clients/alert-manager/user-group-channel/schema/model'; + +export const useUserGroupChannelApi = () => { + const actions = { + create: SpaceConnector.clientV2.alertManager.userGroupChannel.create, + delete: SpaceConnector.clientV2.alertManager.userGroupChannel.delete, + disable: SpaceConnector.clientV2.alertManager.userGroupChannel.disable, + enable: SpaceConnector.clientV2.alertManager.userGroupChannel.enable, + get: SpaceConnector.clientV2.alertManager.userGroupChannel.get, + list: SpaceConnector.clientV2.alertManager.userGroupChannel.list>, + update: SpaceConnector.clientV2.alertManager.userGroupChannel.update, + }; + + return { + userGroupChannelAPI: actions, + }; +}; + diff --git a/apps/web/src/schema/alert-manager/user-group-channel/api-verbs/create.ts b/apps/web/src/api-clients/alert-manager/user-group-channel/schema/api-verbs/create.ts similarity index 83% rename from apps/web/src/schema/alert-manager/user-group-channel/api-verbs/create.ts rename to apps/web/src/api-clients/alert-manager/user-group-channel/schema/api-verbs/create.ts index 0b3172b938..92f3f9dcc4 100644 --- a/apps/web/src/schema/alert-manager/user-group-channel/api-verbs/create.ts +++ b/apps/web/src/api-clients/alert-manager/user-group-channel/schema/api-verbs/create.ts @@ -1,7 +1,7 @@ import type { Tags } from '@/api-clients/_common/schema/model'; import type { UserGroupChannelScheduleInfoType, -} from '@/schema/alert-manager/user-group-channel/type'; +} from '@/api-clients/alert-manager/user-group-channel/schema/type'; export interface UserGroupChannelCreateParameters { protocol_id: string; diff --git a/apps/web/src/schema/alert-manager/user-group-channel/api-verbs/delete.ts b/apps/web/src/api-clients/alert-manager/user-group-channel/schema/api-verbs/delete.ts similarity index 100% rename from apps/web/src/schema/alert-manager/user-group-channel/api-verbs/delete.ts rename to apps/web/src/api-clients/alert-manager/user-group-channel/schema/api-verbs/delete.ts diff --git a/apps/web/src/schema/alert-manager/user-group-channel/api-verbs/disable.ts b/apps/web/src/api-clients/alert-manager/user-group-channel/schema/api-verbs/disable.ts similarity index 100% rename from apps/web/src/schema/alert-manager/user-group-channel/api-verbs/disable.ts rename to apps/web/src/api-clients/alert-manager/user-group-channel/schema/api-verbs/disable.ts diff --git a/apps/web/src/schema/alert-manager/user-group-channel/api-verbs/enable.ts b/apps/web/src/api-clients/alert-manager/user-group-channel/schema/api-verbs/enable.ts similarity index 100% rename from apps/web/src/schema/alert-manager/user-group-channel/api-verbs/enable.ts rename to apps/web/src/api-clients/alert-manager/user-group-channel/schema/api-verbs/enable.ts diff --git a/apps/web/src/schema/alert-manager/user-group-channel/api-verbs/get.ts b/apps/web/src/api-clients/alert-manager/user-group-channel/schema/api-verbs/get.ts similarity index 100% rename from apps/web/src/schema/alert-manager/user-group-channel/api-verbs/get.ts rename to apps/web/src/api-clients/alert-manager/user-group-channel/schema/api-verbs/get.ts diff --git a/apps/web/src/schema/alert-manager/user-group-channel/api-verbs/list.ts b/apps/web/src/api-clients/alert-manager/user-group-channel/schema/api-verbs/list.ts similarity index 73% rename from apps/web/src/schema/alert-manager/user-group-channel/api-verbs/list.ts rename to apps/web/src/api-clients/alert-manager/user-group-channel/schema/api-verbs/list.ts index bc96d55c14..cb57908681 100644 --- a/apps/web/src/schema/alert-manager/user-group-channel/api-verbs/list.ts +++ b/apps/web/src/api-clients/alert-manager/user-group-channel/schema/api-verbs/list.ts @@ -1,6 +1,6 @@ import type { Query } from '@cloudforet/core-lib/space-connector/type'; -import type { UserGroupChannelStateType } from '@/schema/alert-manager/user-group-channel/type'; +import type { UserGroupChannelStateType } from '@/api-clients/alert-manager/user-group-channel/schema/type'; export interface UserGroupChannelListParameters { query?: Query; diff --git a/apps/web/src/schema/alert-manager/user-group-channel/api-verbs/update.ts b/apps/web/src/api-clients/alert-manager/user-group-channel/schema/api-verbs/update.ts similarity index 69% rename from apps/web/src/schema/alert-manager/user-group-channel/api-verbs/update.ts rename to apps/web/src/api-clients/alert-manager/user-group-channel/schema/api-verbs/update.ts index 63d204af10..26ec28a318 100644 --- a/apps/web/src/schema/alert-manager/user-group-channel/api-verbs/update.ts +++ b/apps/web/src/api-clients/alert-manager/user-group-channel/schema/api-verbs/update.ts @@ -1,5 +1,5 @@ import type { Tags } from '@/api-clients/_common/schema/model'; -import type { UserGroupChannelScheduleInfoType } from '@/schema/alert-manager/user-group-channel/type'; +import type { UserGroupChannelScheduleInfoType } from '@/api-clients/alert-manager/user-group-channel/schema/type'; export interface UserGroupChannelUpdateParameters { channel_id: string; diff --git a/apps/web/src/schema/alert-manager/user-group-channel/constants.ts b/apps/web/src/api-clients/alert-manager/user-group-channel/schema/constants.ts similarity index 100% rename from apps/web/src/schema/alert-manager/user-group-channel/constants.ts rename to apps/web/src/api-clients/alert-manager/user-group-channel/schema/constants.ts diff --git a/apps/web/src/schema/alert-manager/user-group-channel/model.ts b/apps/web/src/api-clients/alert-manager/user-group-channel/schema/model.ts similarity index 88% rename from apps/web/src/schema/alert-manager/user-group-channel/model.ts rename to apps/web/src/api-clients/alert-manager/user-group-channel/schema/model.ts index 2c86789ad5..a6a339a88d 100644 --- a/apps/web/src/schema/alert-manager/user-group-channel/model.ts +++ b/apps/web/src/api-clients/alert-manager/user-group-channel/schema/model.ts @@ -3,7 +3,7 @@ import type { Tags } from '@/api-clients/_common/schema/model'; import type { UserGroupChannelStateType, UserGroupChannelScheduleInfoType, -} from '@/schema/alert-manager/user-group-channel/type'; +} from '@/api-clients/alert-manager/user-group-channel/schema/type'; export interface UserGroupChannelModel { channel_id: string; diff --git a/apps/web/src/schema/alert-manager/user-group-channel/type.ts b/apps/web/src/api-clients/alert-manager/user-group-channel/schema/type.ts similarity index 92% rename from apps/web/src/schema/alert-manager/user-group-channel/type.ts rename to apps/web/src/api-clients/alert-manager/user-group-channel/schema/type.ts index 8850cfbbad..21541e0b73 100644 --- a/apps/web/src/schema/alert-manager/user-group-channel/type.ts +++ b/apps/web/src/api-clients/alert-manager/user-group-channel/schema/type.ts @@ -1,7 +1,7 @@ import type { USER_GROUP_CHANNEL_SCHEDULE_TYPE, USER_GROUP_CHANNEL_STATE, -} from '@/schema/alert-manager/user-group-channel/constants'; +} from '@/api-clients/alert-manager/user-group-channel/schema/constants'; export type UserGroupChannelStateType = typeof USER_GROUP_CHANNEL_STATE[keyof typeof USER_GROUP_CHANNEL_STATE]; export type UserGroupChannelScheduleType = typeof USER_GROUP_CHANNEL_SCHEDULE_TYPE[keyof typeof USER_GROUP_CHANNEL_SCHEDULE_TYPE]; diff --git a/apps/web/src/api-clients/alert-manager/webhook/composables/use-webhook-api.ts b/apps/web/src/api-clients/alert-manager/webhook/composables/use-webhook-api.ts new file mode 100644 index 0000000000..6d7b725828 --- /dev/null +++ b/apps/web/src/api-clients/alert-manager/webhook/composables/use-webhook-api.ts @@ -0,0 +1,36 @@ +import { SpaceConnector } from '@cloudforet/core-lib/space-connector'; + +import type { ListResponse } from '@/api-clients/_common/schema/api-verbs/list'; +import type { WebhookCreateParameters } from '@/api-clients/alert-manager/webhook/schema/api-verbs/create'; +import type { WebhookDeleteParameters } from '@/api-clients/alert-manager/webhook/schema/api-verbs/delete'; +import type { WebhookDisableParameters } from '@/api-clients/alert-manager/webhook/schema/api-verbs/disable'; +import type { WebhookEnableParameters } from '@/api-clients/alert-manager/webhook/schema/api-verbs/enable'; +import type { WebhookGetParameters } from '@/api-clients/alert-manager/webhook/schema/api-verbs/get'; +import type { WebhookListParameters } from '@/api-clients/alert-manager/webhook/schema/api-verbs/list'; +import type { WebhookListErrorsParameters } from '@/api-clients/alert-manager/webhook/schema/api-verbs/list-errors'; +import type { WebhookUpdateParameters } from '@/api-clients/alert-manager/webhook/schema/api-verbs/update'; +import type { WebhookUpdateMessageFormatParameters } from '@/api-clients/alert-manager/webhook/schema/api-verbs/update-message-format'; +import type { WebhookUpdatePluginParameters } from '@/api-clients/alert-manager/webhook/schema/api-verbs/update-plugin'; +import type { WebhookVerifyPluginParameters } from '@/api-clients/alert-manager/webhook/schema/api-verbs/verify-plugin'; +import type { WebhookListErrorsModel, WebhookModel } from '@/api-clients/alert-manager/webhook/schema/model'; + +export const useWebhookApi = () => { + const actions = { + create: SpaceConnector.clientV2.alertManager.webhook.create, + delete: SpaceConnector.clientV2.alertManager.webhook.delete, + disable: SpaceConnector.clientV2.alertManager.webhook.disable, + enable: SpaceConnector.clientV2.alertManager.webhook.enable, + get: SpaceConnector.clientV2.alertManager.webhook.get, + listErrors: SpaceConnector.clientV2.alertManager.webhook.listErrors>, + list: SpaceConnector.clientV2.alertManager.webhook.list>, + updateMessageFormat: SpaceConnector.clientV2.alertManager.webhook.updateMessageFormat, + updatePlugin: SpaceConnector.clientV2.alertManager.webhook.updatePlugin, + update: SpaceConnector.clientV2.alertManager.webhook.update, + verifyPlugin: SpaceConnector.clientV2.alertManager.webhook.verifyPlugin, + }; + + return { + webhookAPI: actions, + }; +}; + diff --git a/apps/web/src/schema/alert-manager/webhook/api-verbs/create.ts b/apps/web/src/api-clients/alert-manager/webhook/schema/api-verbs/create.ts similarity index 68% rename from apps/web/src/schema/alert-manager/webhook/api-verbs/create.ts rename to apps/web/src/api-clients/alert-manager/webhook/schema/api-verbs/create.ts index 0242ea89c0..feec006c04 100644 --- a/apps/web/src/schema/alert-manager/webhook/api-verbs/create.ts +++ b/apps/web/src/api-clients/alert-manager/webhook/schema/api-verbs/create.ts @@ -1,5 +1,5 @@ import type { Tags } from '@/api-clients/_common/schema/model'; -import type { WebhookPluginInfoType } from '@/schema/alert-manager/webhook/type'; +import type { WebhookPluginInfoType } from '@/api-clients/alert-manager/webhook/schema/type'; export interface WebhookCreateParameters { name: string; diff --git a/apps/web/src/schema/alert-manager/webhook/api-verbs/delete.ts b/apps/web/src/api-clients/alert-manager/webhook/schema/api-verbs/delete.ts similarity index 100% rename from apps/web/src/schema/alert-manager/webhook/api-verbs/delete.ts rename to apps/web/src/api-clients/alert-manager/webhook/schema/api-verbs/delete.ts diff --git a/apps/web/src/schema/alert-manager/webhook/api-verbs/disable.ts b/apps/web/src/api-clients/alert-manager/webhook/schema/api-verbs/disable.ts similarity index 100% rename from apps/web/src/schema/alert-manager/webhook/api-verbs/disable.ts rename to apps/web/src/api-clients/alert-manager/webhook/schema/api-verbs/disable.ts diff --git a/apps/web/src/schema/alert-manager/webhook/api-verbs/enable.ts b/apps/web/src/api-clients/alert-manager/webhook/schema/api-verbs/enable.ts similarity index 100% rename from apps/web/src/schema/alert-manager/webhook/api-verbs/enable.ts rename to apps/web/src/api-clients/alert-manager/webhook/schema/api-verbs/enable.ts diff --git a/apps/web/src/schema/alert-manager/webhook/api-verbs/get.ts b/apps/web/src/api-clients/alert-manager/webhook/schema/api-verbs/get.ts similarity index 100% rename from apps/web/src/schema/alert-manager/webhook/api-verbs/get.ts rename to apps/web/src/api-clients/alert-manager/webhook/schema/api-verbs/get.ts diff --git a/apps/web/src/schema/alert-manager/webhook/api-verbs/list-errors.ts b/apps/web/src/api-clients/alert-manager/webhook/schema/api-verbs/list-errors.ts similarity index 75% rename from apps/web/src/schema/alert-manager/webhook/api-verbs/list-errors.ts rename to apps/web/src/api-clients/alert-manager/webhook/schema/api-verbs/list-errors.ts index e0c55dfb20..5a8d9db5de 100644 --- a/apps/web/src/schema/alert-manager/webhook/api-verbs/list-errors.ts +++ b/apps/web/src/api-clients/alert-manager/webhook/schema/api-verbs/list-errors.ts @@ -1,6 +1,6 @@ import type { Query } from '@cloudforet/core-lib/space-connector/type'; -export interface WebhookListErrorSParameters { +export interface WebhookListErrorsParameters { query?: Query; webhook_id: string; error_id?: string; diff --git a/apps/web/src/schema/alert-manager/webhook/api-verbs/list.ts b/apps/web/src/api-clients/alert-manager/webhook/schema/api-verbs/list.ts similarity index 76% rename from apps/web/src/schema/alert-manager/webhook/api-verbs/list.ts rename to apps/web/src/api-clients/alert-manager/webhook/schema/api-verbs/list.ts index d33ccc8621..4d1125df00 100644 --- a/apps/web/src/schema/alert-manager/webhook/api-verbs/list.ts +++ b/apps/web/src/api-clients/alert-manager/webhook/schema/api-verbs/list.ts @@ -1,6 +1,6 @@ import type { Query } from '@cloudforet/core-lib/space-connector/type'; -import type { WebhookStateType } from '@/schema/alert-manager/webhook/type'; +import type { WebhookStateType } from '@/api-clients/alert-manager/webhook/schema/type'; export interface WebhookListParameters { query?: Query; diff --git a/apps/web/src/schema/alert-manager/webhook/api-verbs/update-message-format.ts b/apps/web/src/api-clients/alert-manager/webhook/schema/api-verbs/update-message-format.ts similarity index 58% rename from apps/web/src/schema/alert-manager/webhook/api-verbs/update-message-format.ts rename to apps/web/src/api-clients/alert-manager/webhook/schema/api-verbs/update-message-format.ts index 20ddd80fd0..2bd6a6d426 100644 --- a/apps/web/src/schema/alert-manager/webhook/api-verbs/update-message-format.ts +++ b/apps/web/src/api-clients/alert-manager/webhook/schema/api-verbs/update-message-format.ts @@ -1,4 +1,4 @@ -import type { WebhookMessageFormatType } from '@/schema/alert-manager/webhook/type'; +import type { WebhookMessageFormatType } from '@/api-clients/alert-manager/webhook/schema/type'; export interface WebhookUpdateMessageFormatParameters { webhook_id: string; diff --git a/apps/web/src/schema/alert-manager/webhook/api-verbs/update-plugin.ts b/apps/web/src/api-clients/alert-manager/webhook/schema/api-verbs/update-plugin.ts similarity index 100% rename from apps/web/src/schema/alert-manager/webhook/api-verbs/update-plugin.ts rename to apps/web/src/api-clients/alert-manager/webhook/schema/api-verbs/update-plugin.ts diff --git a/apps/web/src/schema/alert-manager/webhook/api-verbs/update.ts b/apps/web/src/api-clients/alert-manager/webhook/schema/api-verbs/update.ts similarity index 100% rename from apps/web/src/schema/alert-manager/webhook/api-verbs/update.ts rename to apps/web/src/api-clients/alert-manager/webhook/schema/api-verbs/update.ts diff --git a/apps/web/src/schema/alert-manager/webhook/api-verbs/verify-plugin.ts b/apps/web/src/api-clients/alert-manager/webhook/schema/api-verbs/verify-plugin.ts similarity index 100% rename from apps/web/src/schema/alert-manager/webhook/api-verbs/verify-plugin.ts rename to apps/web/src/api-clients/alert-manager/webhook/schema/api-verbs/verify-plugin.ts diff --git a/apps/web/src/schema/alert-manager/webhook/constants.ts b/apps/web/src/api-clients/alert-manager/webhook/schema/constants.ts similarity index 100% rename from apps/web/src/schema/alert-manager/webhook/constants.ts rename to apps/web/src/api-clients/alert-manager/webhook/schema/constants.ts diff --git a/apps/web/src/schema/alert-manager/webhook/model.ts b/apps/web/src/api-clients/alert-manager/webhook/schema/model.ts similarity index 93% rename from apps/web/src/schema/alert-manager/webhook/model.ts rename to apps/web/src/api-clients/alert-manager/webhook/schema/model.ts index 35017a43c0..58d2ef1dbd 100644 --- a/apps/web/src/schema/alert-manager/webhook/model.ts +++ b/apps/web/src/api-clients/alert-manager/webhook/schema/model.ts @@ -1,7 +1,7 @@ import type { Tags } from '@/api-clients/_common/schema/model'; import type { WebhookPluginInfoType, WebhookRequestType, WebhookStateType, WebhookMessageFormatType, -} from '@/schema/alert-manager/webhook/type'; +} from '@/api-clients/alert-manager/webhook/schema/type'; export interface WebhookModel { webhook_id: string; diff --git a/apps/web/src/schema/alert-manager/webhook/type.ts b/apps/web/src/api-clients/alert-manager/webhook/schema/type.ts similarity index 82% rename from apps/web/src/schema/alert-manager/webhook/type.ts rename to apps/web/src/api-clients/alert-manager/webhook/schema/type.ts index 2621883d09..5e51504f8c 100644 --- a/apps/web/src/schema/alert-manager/webhook/type.ts +++ b/apps/web/src/api-clients/alert-manager/webhook/schema/type.ts @@ -1,4 +1,4 @@ -import type { WEBHOOK_STATE } from '@/schema/alert-manager/webhook/constants'; +import type { WEBHOOK_STATE } from '@/api-clients/alert-manager/webhook/schema/constants'; export type WebhookStateType = typeof WEBHOOK_STATE[keyof typeof WEBHOOK_STATE]; diff --git a/apps/web/src/api-clients/board/post/composables/use-post-api.ts b/apps/web/src/api-clients/board/post/composables/use-post-api.ts new file mode 100644 index 0000000000..f33690ef99 --- /dev/null +++ b/apps/web/src/api-clients/board/post/composables/use-post-api.ts @@ -0,0 +1,27 @@ +import { SpaceConnector } from '@cloudforet/core-lib/space-connector'; + +import type { ListResponse } from '@/api-clients/_common/schema/api-verbs/list'; +import type { PostCreateParameters } from '@/api-clients/board/post/schema/api-verbs/create'; +import type { PostDeleteParameters } from '@/api-clients/board/post/schema/api-verbs/delete'; +import type { PostGetParameters } from '@/api-clients/board/post/schema/api-verbs/get'; +import type { PostListParameters } from '@/api-clients/board/post/schema/api-verbs/list'; +import type { PostSendParameters } from '@/api-clients/board/post/schema/api-verbs/send'; +import type { PostUpdateParameters } from '@/api-clients/board/post/schema/api-verbs/update'; +import type { PostModel } from '@/api-clients/board/post/schema/model'; + + +export const usePostApi = () => { + const actions = { + create: SpaceConnector.clientV2.board.post.create, + delete: SpaceConnector.clientV2.board.post.delete, + get: SpaceConnector.clientV2.board.post.get, + list: SpaceConnector.clientV2.board.post.list>, + send: SpaceConnector.clientV2.board.post.send, + update: SpaceConnector.clientV2.board.post.update, + }; + + return { + postAPI: actions, + }; +}; + diff --git a/apps/web/src/schema/board/post/api-verbs/create.ts b/apps/web/src/api-clients/board/post/schema/api-verbs/create.ts similarity index 85% rename from apps/web/src/schema/board/post/api-verbs/create.ts rename to apps/web/src/api-clients/board/post/schema/api-verbs/create.ts index b951186517..54977db661 100644 --- a/apps/web/src/schema/board/post/api-verbs/create.ts +++ b/apps/web/src/api-clients/board/post/schema/api-verbs/create.ts @@ -1,5 +1,5 @@ import type { ResourceGroupType } from '@/api-clients/_common/schema/type'; -import type { PostBoardType } from '@/schema/board/post/type'; +import type { PostBoardType } from '@/api-clients/board/post/schema/type'; export interface PostCreateParameters { board_type: PostBoardType; diff --git a/apps/web/src/schema/board/post/api-verbs/delete.ts b/apps/web/src/api-clients/board/post/schema/api-verbs/delete.ts similarity index 100% rename from apps/web/src/schema/board/post/api-verbs/delete.ts rename to apps/web/src/api-clients/board/post/schema/api-verbs/delete.ts diff --git a/apps/web/src/schema/board/post/api-verbs/get.ts b/apps/web/src/api-clients/board/post/schema/api-verbs/get.ts similarity index 100% rename from apps/web/src/schema/board/post/api-verbs/get.ts rename to apps/web/src/api-clients/board/post/schema/api-verbs/get.ts diff --git a/apps/web/src/schema/board/post/api-verbs/list.ts b/apps/web/src/api-clients/board/post/schema/api-verbs/list.ts similarity index 81% rename from apps/web/src/schema/board/post/api-verbs/list.ts rename to apps/web/src/api-clients/board/post/schema/api-verbs/list.ts index 3498e2bc1c..26279e68ff 100644 --- a/apps/web/src/schema/board/post/api-verbs/list.ts +++ b/apps/web/src/api-clients/board/post/schema/api-verbs/list.ts @@ -1,6 +1,6 @@ import type { Query } from '@cloudforet/core-lib/space-connector/type'; -import type { PostBoardType } from '@/schema/board/post/type'; +import type { PostBoardType } from '@/api-clients/board/post/schema/type'; export interface PostListParameters { query?: Query; diff --git a/apps/web/src/schema/board/post/api-verbs/send.ts b/apps/web/src/api-clients/board/post/schema/api-verbs/send.ts similarity index 100% rename from apps/web/src/schema/board/post/api-verbs/send.ts rename to apps/web/src/api-clients/board/post/schema/api-verbs/send.ts diff --git a/apps/web/src/schema/board/post/api-verbs/update.ts b/apps/web/src/api-clients/board/post/schema/api-verbs/update.ts similarity index 100% rename from apps/web/src/schema/board/post/api-verbs/update.ts rename to apps/web/src/api-clients/board/post/schema/api-verbs/update.ts diff --git a/apps/web/src/schema/board/post/constant.ts b/apps/web/src/api-clients/board/post/schema/constant.ts similarity index 100% rename from apps/web/src/schema/board/post/constant.ts rename to apps/web/src/api-clients/board/post/schema/constant.ts diff --git a/apps/web/src/schema/board/post/model.ts b/apps/web/src/api-clients/board/post/schema/model.ts similarity index 80% rename from apps/web/src/schema/board/post/model.ts rename to apps/web/src/api-clients/board/post/schema/model.ts index c0469b880b..9bd7fb790e 100644 --- a/apps/web/src/schema/board/post/model.ts +++ b/apps/web/src/api-clients/board/post/schema/model.ts @@ -1,6 +1,6 @@ import type { ResourceGroupType, ContentsType } from '@/api-clients/_common/schema/type'; -import type { PostBoardType } from '@/schema/board/post/type'; -import type { FileModel } from '@/schema/file-manager/model'; +import type { PostBoardType } from '@/api-clients/board/post/schema/type'; +import type { FileModel } from '@/api-clients/file-manager/schema/model'; export interface PostModel { board_type: PostBoardType; diff --git a/apps/web/src/schema/board/post/type.ts b/apps/web/src/api-clients/board/post/schema/type.ts similarity index 67% rename from apps/web/src/schema/board/post/type.ts rename to apps/web/src/api-clients/board/post/schema/type.ts index c069f98392..cfcb26593d 100644 --- a/apps/web/src/schema/board/post/type.ts +++ b/apps/web/src/api-clients/board/post/schema/type.ts @@ -1,4 +1,4 @@ -import type { POST_BOARD_TYPE } from '@/schema/board/post/constant'; +import type { POST_BOARD_TYPE } from '@/api-clients/board/post/schema/constant'; export type PostBoardType = typeof POST_BOARD_TYPE[keyof typeof POST_BOARD_TYPE]; diff --git a/apps/web/src/api-clients/config/user-config/composables/use-user-config-api.ts b/apps/web/src/api-clients/config/user-config/composables/use-user-config-api.ts index 74b4f3867d..2f25742c73 100644 --- a/apps/web/src/api-clients/config/user-config/composables/use-user-config-api.ts +++ b/apps/web/src/api-clients/config/user-config/composables/use-user-config-api.ts @@ -11,11 +11,11 @@ import type { UserConfigModel } from '@/api-clients/config/user-config/schema/mo export const useUserConfigApi = () => { const actions = { - create: SpaceConnector.clientV2.config.userConfig.create, - update: SpaceConnector.clientV2.config.userConfig.update, + create: >(params: UserConfigCreateParameters) => SpaceConnector.clientV2.config.userConfig.create>(params), + update: >(params: UserConfigUpdateParameters) => SpaceConnector.clientV2.config.userConfig.update>(params), delete: SpaceConnector.clientV2.config.userConfig.delete, - get: SpaceConnector.clientV2.config.userConfig.get, - list: SpaceConnector.clientV2.config.userConfig.list>, + get: >(params: UserConfigGetParameters) => SpaceConnector.clientV2.config.userConfig.get>(params), + list: >(params: UserConfigListParameters) => SpaceConnector.clientV2.config.userConfig.list>>(params), set: SpaceConnector.clientV2.config.userConfig.set, }; diff --git a/apps/web/src/api-clients/cost-analysis/budget/composables/use-budget-api.ts b/apps/web/src/api-clients/cost-analysis/budget/composables/use-budget-api.ts index e69de29bb2..b93ab82ada 100644 --- a/apps/web/src/api-clients/cost-analysis/budget/composables/use-budget-api.ts +++ b/apps/web/src/api-clients/cost-analysis/budget/composables/use-budget-api.ts @@ -0,0 +1,26 @@ +import { SpaceConnector } from '@cloudforet/core-lib/space-connector'; + +import type { ListResponse } from '@/api-clients/_common/schema/api-verbs/list'; +import type { BudgetCreateParameters } from '@/api-clients/cost-analysis/budget/schema/api-verbs/create'; +import type { BudgetDeleteParameters } from '@/api-clients/cost-analysis/budget/schema/api-verbs/delete'; +import type { BudgetGetParameters } from '@/api-clients/cost-analysis/budget/schema/api-verbs/get'; +import type { BudgetListParameters } from '@/api-clients/cost-analysis/budget/schema/api-verbs/list'; +import type { BudgetSetNotificationParameters } from '@/api-clients/cost-analysis/budget/schema/api-verbs/set-notification'; +import type { BudgetUpdateParameters } from '@/api-clients/cost-analysis/budget/schema/api-verbs/update'; +import type { BudgetModel } from '@/api-clients/cost-analysis/budget/schema/model'; + + +export const useBudgetApi = () => { + const actions = { + list: SpaceConnector.clientV2.costAnalysis.budget.list>, + get: SpaceConnector.clientV2.costAnalysis.budget.get, + create: SpaceConnector.clientV2.costAnalysis.budget.create, + update: SpaceConnector.clientV2.costAnalysis.budget.update, + delete: SpaceConnector.clientV2.costAnalysis.budget.delete, + setNotification: SpaceConnector.clientV2.costAnalysis.budget.setNotification, + }; + + return { + budgetAPI: actions, + }; +}; diff --git a/apps/web/src/api-clients/cost-analysis/budget/composables/use-budget-usage-api.ts b/apps/web/src/api-clients/cost-analysis/budget/composables/use-budget-usage-api.ts new file mode 100644 index 0000000000..df7c9520ea --- /dev/null +++ b/apps/web/src/api-clients/cost-analysis/budget/composables/use-budget-usage-api.ts @@ -0,0 +1,18 @@ +import { SpaceConnector } from '@cloudforet/core-lib/space-connector'; + +import type { AnalyzeResponse } from '@/api-clients/_common/schema/api-verbs/analyze'; +import type { ListResponse } from '@/api-clients/_common/schema/api-verbs/list'; +import type { BudgetUsageAnalyzeParameters, BudgetUsageAnalyzeResult } from '@/api-clients/cost-analysis/budget-usage/schema/api-verbs/analyze'; +import type { BudgetUsageListParameters } from '@/api-clients/cost-analysis/budget-usage/schema/api-verbs/list'; +import type { BudgetUsageModel } from '@/api-clients/cost-analysis/budget-usage/schema/model'; + +export const useBudgetUsageApi = () => { + const actions = { + list: SpaceConnector.clientV2.costAnalysis.budgetUsage.list>, + analyze: SpaceConnector.clientV2.costAnalysis.budgetUsage.analyze>, + }; + + return { + budgetUsageAPI: actions, + }; +}; diff --git a/apps/web/src/api-clients/cost-analysis/budget/schema/api-verbs/update.ts b/apps/web/src/api-clients/cost-analysis/budget/schema/api-verbs/update.ts index a12da39dcf..a672ca38dd 100644 --- a/apps/web/src/api-clients/cost-analysis/budget/schema/api-verbs/update.ts +++ b/apps/web/src/api-clients/cost-analysis/budget/schema/api-verbs/update.ts @@ -10,4 +10,5 @@ export interface BudgetUpdateParameters { end?: string; utilization_rate?: number; tags?: Tags; + budget_manager_id?: string; } diff --git a/apps/web/src/api-clients/cost-analysis/cost-report-config/composables/use-cost-report-config-api.ts b/apps/web/src/api-clients/cost-analysis/cost-report-config/composables/use-cost-report-config-api.ts index 5ea33b9898..fea61ec225 100644 --- a/apps/web/src/api-clients/cost-analysis/cost-report-config/composables/use-cost-report-config-api.ts +++ b/apps/web/src/api-clients/cost-analysis/cost-report-config/composables/use-cost-report-config-api.ts @@ -4,6 +4,7 @@ import type { ListResponse } from '@/api-clients/_common/schema/api-verbs/list'; import type { CostReportConfigListParameters } from '@/api-clients/cost-analysis/cost-report-config/schema/api-verbs/list'; import type { CostReportConfigRunParameters } from '@/api-clients/cost-analysis/cost-report-config/schema/api-verbs/run'; import type { CostReportConfigUpdateParameters } from '@/api-clients/cost-analysis/cost-report-config/schema/api-verbs/update'; +import type { CostReportConfigUpdateRecipientsParameters } from '@/api-clients/cost-analysis/cost-report-config/schema/api-verbs/update-recipients'; import type { CostReportConfigModel } from '@/api-clients/cost-analysis/cost-report-config/schema/model'; interface UseCostReportConfigApiReturn { @@ -11,6 +12,7 @@ interface UseCostReportConfigApiReturn { update: (params: CostReportConfigUpdateParameters) => Promise; list: (params: CostReportConfigListParameters) => Promise>; run: (params: CostReportConfigRunParameters) => Promise; + updateRecipients: (params: CostReportConfigUpdateRecipientsParameters) => Promise; } } @@ -19,6 +21,7 @@ export const useCostReportConfigApi = (): UseCostReportConfigApiReturn => { update: SpaceConnector.clientV2.costAnalysis.costReportConfig.update, list: SpaceConnector.clientV2.costAnalysis.costReportConfig.list>, run: SpaceConnector.clientV2.costAnalysis.costReportConfig.run, + updateRecipients: SpaceConnector.clientV2.costAnalysis.costReportConfig.updateRecipients, }; return { diff --git a/apps/web/src/api-clients/cost-analysis/cost-report-data/composables/use-cost-report-data-api.ts b/apps/web/src/api-clients/cost-analysis/cost-report-data/composables/use-cost-report-data-api.ts index e69de29bb2..93e1f09fb9 100644 --- a/apps/web/src/api-clients/cost-analysis/cost-report-data/composables/use-cost-report-data-api.ts +++ b/apps/web/src/api-clients/cost-analysis/cost-report-data/composables/use-cost-report-data-api.ts @@ -0,0 +1,22 @@ +import { SpaceConnector } from '@cloudforet/core-lib/space-connector'; + +import type { AnalyzeResponse } from '@/api-clients/_common/schema/api-verbs/analyze'; + +import type { CostReportDataAnalyzeResult } from '@/services/cost-explorer/types/cost-report-data-type'; + +import type { CostReportDataAnalyzeParameters } from '../schema/api-verbs/analyze'; + +interface UseCostReportDataApiReturn { + costReportDataAPI: { + analyze: (params: CostReportDataAnalyzeParameters) => Promise>; + } +} +export const useCostReportDataApi = (): UseCostReportDataApiReturn => { + const actions = { + analyze: SpaceConnector.clientV2.costAnalysis.costReportData.analyze>, + }; + + return { + costReportDataAPI: actions, + }; +}; diff --git a/apps/web/src/api-clients/cost-analysis/cost-report-data/schema/api-verbs/analyze.ts b/apps/web/src/api-clients/cost-analysis/cost-report-data/schema/api-verbs/analyze.ts index c0f8fa3586..e75bebd635 100644 --- a/apps/web/src/api-clients/cost-analysis/cost-report-data/schema/api-verbs/analyze.ts +++ b/apps/web/src/api-clients/cost-analysis/cost-report-data/schema/api-verbs/analyze.ts @@ -1,5 +1,7 @@ +import type { AnalyzeQuery } from '@cloudforet/core-lib/space-connector/type'; + export interface CostReportDataAnalyzeParameters { - query?: any; + query?: AnalyzeQuery; cost_report_config_id?: string; is_confirmed?: boolean; product?: string; diff --git a/apps/web/src/api-clients/cost-analysis/cost-report-data/schema/api-verbs/list.ts b/apps/web/src/api-clients/cost-analysis/cost-report-data/schema/api-verbs/list.ts deleted file mode 100644 index 8ad0468599..0000000000 --- a/apps/web/src/api-clients/cost-analysis/cost-report-data/schema/api-verbs/list.ts +++ /dev/null @@ -1,14 +0,0 @@ -import type { Query } from '@cloudforet/core-lib/space-connector/type'; - - -export interface CostReportDataListParameters { - query?: Query; - cost_report_data_id?: string; - cost_report_config_id?: string; - cost_report_id?: string; - product?: string; - provider?: string; - is_confirmed?: boolean; - data_source_id?: string; - workspace_id?: string; -} diff --git a/apps/web/src/api-clients/cost-analysis/cost-report/composables/use-cost-report-api.ts b/apps/web/src/api-clients/cost-analysis/cost-report/composables/use-cost-report-api.ts index e69de29bb2..737461afe0 100644 --- a/apps/web/src/api-clients/cost-analysis/cost-report/composables/use-cost-report-api.ts +++ b/apps/web/src/api-clients/cost-analysis/cost-report/composables/use-cost-report-api.ts @@ -0,0 +1,21 @@ +import { SpaceConnector } from '@cloudforet/core-lib/space-connector'; + +import type { ListResponse } from '@/api-clients/_common/schema/api-verbs/list'; +import type { CostReportGetParameters } from '@/api-clients/cost-analysis/cost-report/schema/api-verbs/get'; +import type { CostReportGetUrlParameters } from '@/api-clients/cost-analysis/cost-report/schema/api-verbs/get-url'; +import type { CostReportListParameters } from '@/api-clients/cost-analysis/cost-report/schema/api-verbs/list'; +import type { CostReportSendParameters } from '@/api-clients/cost-analysis/cost-report/schema/api-verbs/send'; +import type { CostReportDataLinkInfoModel, CostReportModel } from '@/api-clients/cost-analysis/cost-report/schema/model'; + +export const useCostReportApi = () => { + const actions = { + get: SpaceConnector.clientV2.costAnalysis.costReport.get, + list: SpaceConnector.clientV2.costAnalysis.costReport.list>, + send: SpaceConnector.clientV2.costAnalysis.costReport.send, + getUrl: SpaceConnector.clientV2.costAnalysis.costReport.getUrl, + }; + + return { + costReportAPI: actions, + }; +}; diff --git a/apps/web/src/api-clients/cost-analysis/cost/composables/use-cost-api.ts b/apps/web/src/api-clients/cost-analysis/cost/composables/use-cost-api.ts index 98d080e22e..7fc53b00c7 100644 --- a/apps/web/src/api-clients/cost-analysis/cost/composables/use-cost-api.ts +++ b/apps/web/src/api-clients/cost-analysis/cost/composables/use-cost-api.ts @@ -1,25 +1,23 @@ import { SpaceConnector } from '@cloudforet/core-lib/space-connector'; import type { AnalyzeResponse } from '@/api-clients/_common/schema/api-verbs/analyze'; +import type { StatResponse } from '@/api-clients/_common/schema/api-verbs/stat'; import type { CostAnalyzeParameters } from '@/api-clients/cost-analysis/cost/schema/api-verbs/analyze'; import type { CostStatParameters } from '@/api-clients/cost-analysis/cost/schema/api-verbs/stat'; -import type { ListResponse } from '@/lib/variable-models/_base/types'; - import type { CostAnalyzeRawData } from '@/services/cost-explorer/types/cost-analyze-type'; -import type { CostModel } from '../schema/model'; interface UseCostApiReturn { costAPI: { analyze: (params: CostAnalyzeParameters) => Promise>; - stat: (params: CostStatParameters) => Promise>; + stat: (params: CostStatParameters) => Promise; } } export const useCostApi = (): UseCostApiReturn => { const actions = { analyze: SpaceConnector.clientV2.costAnalysis.cost.analyze>, - stat: SpaceConnector.clientV2.costAnalysis.cost.stat>, + stat: SpaceConnector.clientV2.costAnalysis.cost.stat, }; return { diff --git a/apps/web/src/api-clients/cost-analysis/cost/schema/api-verbs/stat.ts b/apps/web/src/api-clients/cost-analysis/cost/schema/api-verbs/stat.ts index 97b30b8ded..aaae35bf66 100644 --- a/apps/web/src/api-clients/cost-analysis/cost/schema/api-verbs/stat.ts +++ b/apps/web/src/api-clients/cost-analysis/cost/schema/api-verbs/stat.ts @@ -1,6 +1,6 @@ -import type { Query } from '@cloudforet/core-lib/space-connector/type'; +import type { StatQuery } from '@/api-clients/_common/schema/type'; export interface CostStatParameters { data_source_id?: string; - query: Query; + query: StatQuery; } diff --git a/apps/web/src/api-clients/cost-analysis/data-source-account/composables/use-data-source-account-api.ts b/apps/web/src/api-clients/cost-analysis/data-source-account/composables/use-data-source-account-api.ts index e69de29bb2..1714800c91 100644 --- a/apps/web/src/api-clients/cost-analysis/data-source-account/composables/use-data-source-account-api.ts +++ b/apps/web/src/api-clients/cost-analysis/data-source-account/composables/use-data-source-account-api.ts @@ -0,0 +1,21 @@ +import { SpaceConnector } from '@cloudforet/core-lib/space-connector'; + +import type { ListResponse } from '@/api-clients/_common/schema/api-verbs/list'; +import type { CostDataSourceAccountAnalyzeParameters } from '@/api-clients/cost-analysis/data-source-account/schema/api-verbs/analyze'; +import type { CostDataSourceAccountListParameters } from '@/api-clients/cost-analysis/data-source-account/schema/api-verbs/list'; +import type { CostDataSourceAccountResetParameters } from '@/api-clients/cost-analysis/data-source-account/schema/api-verbs/reset'; +import type { CostDataSourceAccountUpdateParameters } from '@/api-clients/cost-analysis/data-source-account/schema/api-verbs/update'; +import type { CostDataSourceAccountModel, CostDataSourceAnalyzeModel } from '@/api-clients/cost-analysis/data-source-account/schema/model'; + +export const useDataSourceAccountApi = () => { + const actions = { + list: SpaceConnector.clientV2.costAnalysis.dataSourceAccount.list>, + update: SpaceConnector.clientV2.costAnalysis.dataSourceAccount.update, + reset: SpaceConnector.clientV2.costAnalysis.dataSourceAccount.reset, + analyze: SpaceConnector.clientV2.costAnalysis.dataSourceAccount.analyze, + }; + + return { + dataSourceAccountAPI: actions, + }; +}; diff --git a/apps/web/src/api-clients/cost-analysis/data-source-account/schema/api-verbs/analyze.ts b/apps/web/src/api-clients/cost-analysis/data-source-account/schema/api-verbs/analyze.ts index 8bb2ae1e91..0fa71dd10f 100644 --- a/apps/web/src/api-clients/cost-analysis/data-source-account/schema/api-verbs/analyze.ts +++ b/apps/web/src/api-clients/cost-analysis/data-source-account/schema/api-verbs/analyze.ts @@ -1,3 +1,5 @@ -export interface DataSourceAccountAnalyzeParameters { - query: object; +import type { AnalyzeQuery } from '@cloudforet/core-lib/space-connector/type'; + +export interface CostDataSourceAccountAnalyzeParameters { + query: AnalyzeQuery; } diff --git a/apps/web/src/api-clients/cost-analysis/data-source/composables/use-data-source-api.ts b/apps/web/src/api-clients/cost-analysis/data-source/composables/use-data-source-api.ts index 452af1e8d1..e62fb7f5c8 100644 --- a/apps/web/src/api-clients/cost-analysis/data-source/composables/use-data-source-api.ts +++ b/apps/web/src/api-clients/cost-analysis/data-source/composables/use-data-source-api.ts @@ -7,16 +7,7 @@ import type { CostDataSourceSyncParameters } from '@/api-clients/cost-analysis/d import type { CostDataSourceUpdatePermissionsParameters } from '@/api-clients/cost-analysis/data-source/schema/api-verbs/update-permissions'; import type { CostDataSourceModel } from '@/api-clients/cost-analysis/data-source/schema/model'; -interface UseDataSourceApiReturn { - dataSourceAPI: { - get: (params: CostDataSourceGetParameters) => Promise; - list: (params: CostDataSourceListParameters) => Promise>; - sync: (params: CostDataSourceSyncParameters) => Promise; - updatePermissions: (params: CostDataSourceUpdatePermissionsParameters) => Promise; - } -} - -export const useDataSourceApi = (): UseDataSourceApiReturn => { +export const useDataSourceApi = () => { const actions = { get: SpaceConnector.clientV2.costAnalysis.dataSource.get, list: SpaceConnector.clientV2.costAnalysis.dataSource.list>, diff --git a/apps/web/src/api-clients/cost-analysis/job/composables/use-job-api.ts b/apps/web/src/api-clients/cost-analysis/job/composables/use-job-api.ts index e69de29bb2..61d7b12378 100644 --- a/apps/web/src/api-clients/cost-analysis/job/composables/use-job-api.ts +++ b/apps/web/src/api-clients/cost-analysis/job/composables/use-job-api.ts @@ -0,0 +1,20 @@ +import { SpaceConnector } from '@cloudforet/core-lib/space-connector'; + +import type { ListResponse } from '@/api-clients/_common/schema/api-verbs/list'; +import type { CostJobCancelParameters } from '@/api-clients/cost-analysis/job/schema/api-verbs/cancel'; +import type { CostJobGetParameters } from '@/api-clients/cost-analysis/job/schema/api-verbs/get'; +import type { CostJobListParameters } from '@/api-clients/cost-analysis/job/schema/api-verbs/list'; +import type { CostJobModel } from '@/api-clients/cost-analysis/job/schema/model'; + + +export const useCostJobApi = () => { + const actions = { + list: SpaceConnector.clientV2.costAnalysis.job.list>, + cancel: SpaceConnector.clientV2.costAnalysis.job.cancel, + get: SpaceConnector.clientV2.costAnalysis.job.get, + }; + + return { + costJobAPI: actions, + }; +}; diff --git a/apps/web/src/api-clients/cost-analysis/job/schema/api-verbs/get.ts b/apps/web/src/api-clients/cost-analysis/job/schema/api-verbs/get.ts new file mode 100644 index 0000000000..27601357a2 --- /dev/null +++ b/apps/web/src/api-clients/cost-analysis/job/schema/api-verbs/get.ts @@ -0,0 +1,3 @@ +export interface CostJobGetParameters { + job_id: string; +} diff --git a/apps/web/src/api-clients/cost-analysis/job/schema/api-verbs/list.ts b/apps/web/src/api-clients/cost-analysis/job/schema/api-verbs/list.ts index eeeba7102e..cf8e1aab26 100644 --- a/apps/web/src/api-clients/cost-analysis/job/schema/api-verbs/list.ts +++ b/apps/web/src/api-clients/cost-analysis/job/schema/api-verbs/list.ts @@ -1,6 +1,6 @@ import type { Query } from '@cloudforet/core-lib/space-connector/type'; -import type { JobStatus } from '@/schema/inventory/job/type'; +import type { JobStatus } from '@/api-clients/inventory/job/schema/type'; export interface CostJobListParameters { query?: Query; diff --git a/apps/web/src/api-clients/cost-analysis/unified-cost/composables/use-unified-cost-api.ts b/apps/web/src/api-clients/cost-analysis/unified-cost/composables/use-unified-cost-api.ts index 289e9d7da3..4e48448bc7 100644 --- a/apps/web/src/api-clients/cost-analysis/unified-cost/composables/use-unified-cost-api.ts +++ b/apps/web/src/api-clients/cost-analysis/unified-cost/composables/use-unified-cost-api.ts @@ -2,6 +2,7 @@ import { SpaceConnector } from '@cloudforet/core-lib/space-connector'; import type { AnalyzeResponse } from '@/api-clients/_common/schema/api-verbs/analyze'; import type { ListResponse } from '@/api-clients/_common/schema/api-verbs/list'; +import type { StatResponse } from '@/api-clients/_common/schema/api-verbs/stat'; import type { UnifiedCostAnalyzeParameters } from '@/api-clients/cost-analysis/unified-cost/schema/api-verbs/analyze'; import type { UnifiedCostListParameters } from '@/api-clients/cost-analysis/unified-cost/schema/api-verbs/list'; import type { UnifiedCostStatParameters } from '@/api-clients/cost-analysis/unified-cost/schema/api-verbs/stat'; @@ -11,7 +12,7 @@ export const useUnifiedCostApi = () => { const actions = { analyze: SpaceConnector.clientV2.costAnalysis.unifiedCost.analyze>, list: SpaceConnector.clientV2.costAnalysis.unifiedCost.list>, - stat: SpaceConnector.clientV2.costAnalysis.unifiedCost.stat, + stat: SpaceConnector.clientV2.costAnalysis.unifiedCost.stat, }; return { diff --git a/apps/web/src/api-clients/cost-analysis/unified-cost/schema/api-verbs/get.ts b/apps/web/src/api-clients/cost-analysis/unified-cost/schema/api-verbs/get.ts deleted file mode 100644 index 48c4e67201..0000000000 --- a/apps/web/src/api-clients/cost-analysis/unified-cost/schema/api-verbs/get.ts +++ /dev/null @@ -1,3 +0,0 @@ -export interface UnifiedCostGetParameters { - unified_cost_id: string; -} diff --git a/apps/web/src/api-clients/cost-analysis/unified-cost/schema/api-verbs/stat.ts b/apps/web/src/api-clients/cost-analysis/unified-cost/schema/api-verbs/stat.ts index 5b8221580a..4b1cfb906b 100644 --- a/apps/web/src/api-clients/cost-analysis/unified-cost/schema/api-verbs/stat.ts +++ b/apps/web/src/api-clients/cost-analysis/unified-cost/schema/api-verbs/stat.ts @@ -1,5 +1,5 @@ -import type { Query } from '@cloudforet/core-lib/space-connector/type'; +import type { StatQuery } from '@/api-clients/_common/schema/type'; export interface UnifiedCostStatParameters { - query: Query; + query: StatQuery; } diff --git a/apps/web/src/api-clients/dashboard/public-data-table/schema/api-verbs/transform.ts b/apps/web/src/api-clients/dashboard/public-data-table/schema/api-verbs/transform.ts index 4e18967e73..a2e356c2a2 100644 --- a/apps/web/src/api-clients/dashboard/public-data-table/schema/api-verbs/transform.ts +++ b/apps/web/src/api-clients/dashboard/public-data-table/schema/api-verbs/transform.ts @@ -3,7 +3,7 @@ import type { DashboardVars } from '@/api-clients/dashboard/_types/dashboard-typ import type { DataTableOperator, - DataTableOptions, + DataTableTransformOptions, } from '@/common/modules/widgets/types/widget-model'; @@ -12,7 +12,7 @@ export interface DataTableTransformParameters { widget_id: string; name?: string; operator: DataTableOperator; - options?: DataTableOptions; + options?: DataTableTransformOptions; tags?: Tags; vars?: DashboardVars; } diff --git a/apps/web/src/api-clients/dashboard/public-data-table/schema/api-verbs/update.ts b/apps/web/src/api-clients/dashboard/public-data-table/schema/api-verbs/update.ts index 9641db8bbc..b621188aeb 100644 --- a/apps/web/src/api-clients/dashboard/public-data-table/schema/api-verbs/update.ts +++ b/apps/web/src/api-clients/dashboard/public-data-table/schema/api-verbs/update.ts @@ -1,7 +1,7 @@ import type { Tags } from '@/api-clients/_common/schema/model'; import type { DashboardVars } from '@/api-clients/dashboard/_types/dashboard-type'; -import type { DataTableOptions } from '@/common/modules/widgets/types/widget-model'; +import type { DataTableAddOptions, DataTableOptions, DataTableTransformOptions } from '@/common/modules/widgets/types/widget-model'; @@ -12,3 +12,19 @@ export interface DataTableUpdateParameters { tags?: Tags; vars?: DashboardVars; } + +// derive from DataTableAddParameters +export interface DataTableAddUpdateParameters { + data_table_id: string; + name?: string; + options?: DataTableAddOptions; + tags?: Tags; + vars?: DashboardVars; +} +export interface DataTableTransformUpdateParameters { + data_table_id: string; + name?: string; + options?: DataTableTransformOptions; + tags?: Tags; + vars?: DashboardVars; +} diff --git a/apps/web/src/schema/file-manager/api-verbs/add.ts b/apps/web/src/api-clients/file-manager/schema/api-verbs/add.ts similarity index 83% rename from apps/web/src/schema/file-manager/api-verbs/add.ts rename to apps/web/src/api-clients/file-manager/schema/api-verbs/add.ts index b67fd3212e..5d7dc609cb 100644 --- a/apps/web/src/schema/file-manager/api-verbs/add.ts +++ b/apps/web/src/api-clients/file-manager/schema/api-verbs/add.ts @@ -1,6 +1,6 @@ import type { Tags } from '@/api-clients/_common/schema/model'; import type { ResourceGroupType } from '@/api-clients/_common/schema/type'; -import type { FileReference } from '@/schema/file-manager/type'; +import type { FileReference } from '@/api-clients/file-manager/schema/type'; export interface FileAddParameters { name: string; diff --git a/apps/web/src/schema/file-manager/api-verbs/delete.ts b/apps/web/src/api-clients/file-manager/schema/api-verbs/delete.ts similarity index 100% rename from apps/web/src/schema/file-manager/api-verbs/delete.ts rename to apps/web/src/api-clients/file-manager/schema/api-verbs/delete.ts diff --git a/apps/web/src/schema/file-manager/api-verbs/get-download-url.ts b/apps/web/src/api-clients/file-manager/schema/api-verbs/get-download-url.ts similarity index 100% rename from apps/web/src/schema/file-manager/api-verbs/get-download-url.ts rename to apps/web/src/api-clients/file-manager/schema/api-verbs/get-download-url.ts diff --git a/apps/web/src/schema/file-manager/api-verbs/get.ts b/apps/web/src/api-clients/file-manager/schema/api-verbs/get.ts similarity index 100% rename from apps/web/src/schema/file-manager/api-verbs/get.ts rename to apps/web/src/api-clients/file-manager/schema/api-verbs/get.ts diff --git a/apps/web/src/schema/file-manager/api-verbs/list.ts b/apps/web/src/api-clients/file-manager/schema/api-verbs/list.ts similarity index 81% rename from apps/web/src/schema/file-manager/api-verbs/list.ts rename to apps/web/src/api-clients/file-manager/schema/api-verbs/list.ts index d86b7433a3..218f3e9172 100644 --- a/apps/web/src/schema/file-manager/api-verbs/list.ts +++ b/apps/web/src/api-clients/file-manager/schema/api-verbs/list.ts @@ -1,6 +1,6 @@ import type { Query } from '@cloudforet/core-lib/space-connector/type'; -import type { FileState } from '@/schema/file-manager/type'; +import type { FileState } from '@/api-clients/file-manager/schema/type'; export interface FileListParameters { query?: Query; diff --git a/apps/web/src/schema/file-manager/api-verbs/update.ts b/apps/web/src/api-clients/file-manager/schema/api-verbs/update.ts similarity index 69% rename from apps/web/src/schema/file-manager/api-verbs/update.ts rename to apps/web/src/api-clients/file-manager/schema/api-verbs/update.ts index cdc8432a50..84cb5fb3b6 100644 --- a/apps/web/src/schema/file-manager/api-verbs/update.ts +++ b/apps/web/src/api-clients/file-manager/schema/api-verbs/update.ts @@ -1,5 +1,5 @@ import type { Tags } from '@/api-clients/_common/schema/model'; -import type { FileReference } from '@/schema/file-manager/type'; +import type { FileReference } from '@/api-clients/file-manager/schema/type'; export interface FileUpdateParameters { file_id: string; diff --git a/apps/web/src/schema/file-manager/model.ts b/apps/web/src/api-clients/file-manager/schema/model.ts similarity index 86% rename from apps/web/src/schema/file-manager/model.ts rename to apps/web/src/api-clients/file-manager/schema/model.ts index aee6055f17..c2b15ded79 100644 --- a/apps/web/src/schema/file-manager/model.ts +++ b/apps/web/src/api-clients/file-manager/schema/model.ts @@ -1,6 +1,6 @@ import type { Tags } from '@/api-clients/_common/schema/model'; import type { ResourceGroupType } from '@/api-clients/_common/schema/type'; -import type { FileState, FileReference } from '@/schema/file-manager/type'; +import type { FileState, FileReference } from '@/api-clients/file-manager/schema/type'; export interface FileModel { file_id: string; diff --git a/apps/web/src/schema/file-manager/type.ts b/apps/web/src/api-clients/file-manager/schema/type.ts similarity index 100% rename from apps/web/src/schema/file-manager/type.ts rename to apps/web/src/api-clients/file-manager/schema/type.ts diff --git a/apps/web/src/api-clients/identity/app/composables/use-app-api.ts b/apps/web/src/api-clients/identity/app/composables/use-app-api.ts index 4381dff6d4..5f4fc340fb 100644 --- a/apps/web/src/api-clients/identity/app/composables/use-app-api.ts +++ b/apps/web/src/api-clients/identity/app/composables/use-app-api.ts @@ -1,11 +1,12 @@ import { SpaceConnector } from '@cloudforet/core-lib/space-connector'; import type { ListResponse } from '@/api-clients/_common/schema/api-verbs/list'; +import type { StatResponse } from '@/api-clients/_common/schema/api-verbs/stat'; import type { AppCreateParameters } from '@/api-clients/identity/app/schema/api-verbs/create'; import type { AppDeleteParameters } from '@/api-clients/identity/app/schema/api-verbs/delete'; import type { AppDisableParameters } from '@/api-clients/identity/app/schema/api-verbs/disable'; import type { AppEnableParameters } from '@/api-clients/identity/app/schema/api-verbs/enable'; -import type { AppGenerateApiKeyParameters } from '@/api-clients/identity/app/schema/api-verbs/generateApiKey'; +import type { AppGenerateClientSecretParameters } from '@/api-clients/identity/app/schema/api-verbs/generateClientSecret'; import type { AppGetParameters } from '@/api-clients/identity/app/schema/api-verbs/get'; import type { AppListParameters } from '@/api-clients/identity/app/schema/api-verbs/list'; import type { AppStatParameters } from '@/api-clients/identity/app/schema/api-verbs/stat'; @@ -21,8 +22,8 @@ export const useAppApi = () => { list: SpaceConnector.clientV2.identity.app.list>, enable: SpaceConnector.clientV2.identity.app.enable, disable: SpaceConnector.clientV2.identity.app.disable, - generateApiKey: SpaceConnector.clientV2.identity.app.generateApiKey, - stat: SpaceConnector.clientV2.identity.app.stat, + generateClientSecret: SpaceConnector.clientV2.identity.app.generateClientSecret, + stat: SpaceConnector.clientV2.identity.app.stat, }; return { diff --git a/apps/web/src/api-clients/identity/app/schema/api-verbs/generateApiKey.ts b/apps/web/src/api-clients/identity/app/schema/api-verbs/generateApiKey.ts deleted file mode 100644 index f373182cc9..0000000000 --- a/apps/web/src/api-clients/identity/app/schema/api-verbs/generateApiKey.ts +++ /dev/null @@ -1,4 +0,0 @@ -export interface AppGenerateApiKeyParameters { - app_id: string; - expired_at?: string; -} diff --git a/apps/web/src/api-clients/identity/app/schema/api-verbs/generateClientSecret.ts b/apps/web/src/api-clients/identity/app/schema/api-verbs/generateClientSecret.ts new file mode 100644 index 0000000000..47e26426eb --- /dev/null +++ b/apps/web/src/api-clients/identity/app/schema/api-verbs/generateClientSecret.ts @@ -0,0 +1,4 @@ +export interface AppGenerateClientSecretParameters { + app_id: string; + expired_at?: string; +} diff --git a/apps/web/src/api-clients/identity/app/schema/api-verbs/stat.ts b/apps/web/src/api-clients/identity/app/schema/api-verbs/stat.ts index aac58dcc20..8c34811926 100644 --- a/apps/web/src/api-clients/identity/app/schema/api-verbs/stat.ts +++ b/apps/web/src/api-clients/identity/app/schema/api-verbs/stat.ts @@ -1,5 +1,5 @@ -import type { Query } from '@cloudforet/core-lib/space-connector/type'; +import type { StatQuery } from '@/api-clients/_common/schema/type'; export interface AppStatParameters { - query: Query; + query: StatQuery; } diff --git a/apps/web/src/api-clients/identity/job/composables/use-job-api.ts b/apps/web/src/api-clients/identity/job/composables/use-job-api.ts index 319265693a..10211796e3 100644 --- a/apps/web/src/api-clients/identity/job/composables/use-job-api.ts +++ b/apps/web/src/api-clients/identity/job/composables/use-job-api.ts @@ -1,6 +1,7 @@ import { SpaceConnector } from '@cloudforet/core-lib/space-connector'; import type { ListResponse } from '@/api-clients/_common/schema/api-verbs/list'; +import type { StatResponse } from '@/api-clients/_common/schema/api-verbs/stat'; import type { IdentityJobDeleteParameters } from '@/api-clients/identity/job/schema/api-verbs/delete'; import type { IdentityJobGetParameters } from '@/api-clients/identity/job/schema/api-verbs/get'; import type { IdentityJobListParameters } from '@/api-clients/identity/job/schema/api-verbs/list'; @@ -12,7 +13,7 @@ export const useJobApi = () => { delete: SpaceConnector.clientV2.identity.job.delete, get: SpaceConnector.clientV2.identity.job.get, list: SpaceConnector.clientV2.identity.job.list>, - stat: SpaceConnector.clientV2.identity.job.stat, + stat: SpaceConnector.clientV2.identity.job.stat, }; return { diff --git a/apps/web/src/api-clients/identity/job/schema/api-verbs/stat.ts b/apps/web/src/api-clients/identity/job/schema/api-verbs/stat.ts index 6694e8392d..6f7e27ae39 100644 --- a/apps/web/src/api-clients/identity/job/schema/api-verbs/stat.ts +++ b/apps/web/src/api-clients/identity/job/schema/api-verbs/stat.ts @@ -1,3 +1,5 @@ +import type { StatQuery } from '@/api-clients/_common/schema/type'; + export interface IdentityJobStatParameters { - query: any; + query: StatQuery; } diff --git a/apps/web/src/api-clients/identity/project-group/composables/use-project-group-api.ts b/apps/web/src/api-clients/identity/project-group/composables/use-project-group-api.ts index 5477be2074..0cb5cb3065 100644 --- a/apps/web/src/api-clients/identity/project-group/composables/use-project-group-api.ts +++ b/apps/web/src/api-clients/identity/project-group/composables/use-project-group-api.ts @@ -1,6 +1,7 @@ import { SpaceConnector } from '@cloudforet/core-lib/space-connector'; import type { ListResponse } from '@/api-clients/_common/schema/api-verbs/list'; +import type { StatResponse } from '@/api-clients/_common/schema/api-verbs/stat'; import type { ProjectGroupAddUsersParameters } from '@/api-clients/identity/project-group/schema/api-verbs/add-users'; import type { ProjectGroupChangeParentGroupParameters } from '@/api-clients/identity/project-group/schema/api-verbs/change-parent-group'; import type { ProjectGroupCreateParameters } from '@/api-clients/identity/project-group/schema/api-verbs/create'; @@ -8,6 +9,7 @@ import type { ProjectGroupDeleteParameters } from '@/api-clients/identity/projec import type { ProjectGroupGetParameters } from '@/api-clients/identity/project-group/schema/api-verbs/get'; import type { ProjectGroupListParameters } from '@/api-clients/identity/project-group/schema/api-verbs/list'; import type { ProjectGroupRemoveUsersParameters } from '@/api-clients/identity/project-group/schema/api-verbs/remove-users'; +import type { ProjectGroupStatParameters } from '@/api-clients/identity/project-group/schema/api-verbs/stat'; import type { ProjectGroupUpdateParameters } from '@/api-clients/identity/project-group/schema/api-verbs/update'; import type { ProjectGroupModel } from '@/api-clients/identity/project-group/schema/model'; @@ -22,6 +24,7 @@ export const useProjectGroupApi = () => { addUsers: SpaceConnector.clientV2.identity.projectGroup.addUsers, removeUsers: SpaceConnector.clientV2.identity.projectGroup.removeUsers, changeParentGroup: SpaceConnector.clientV2.identity.projectGroup.changeParentGroup, + stat: SpaceConnector.clientV2.identity.projectGroup.stat, }; return { diff --git a/apps/web/src/api-clients/identity/project-group/schema/api-verbs/stat.ts b/apps/web/src/api-clients/identity/project-group/schema/api-verbs/stat.ts new file mode 100644 index 0000000000..77bdb3e6dc --- /dev/null +++ b/apps/web/src/api-clients/identity/project-group/schema/api-verbs/stat.ts @@ -0,0 +1,5 @@ +import type { StatQuery } from '@/api-clients/_common/schema/type'; + +export interface ProjectGroupStatParameters { + query: StatQuery +} diff --git a/apps/web/src/api-clients/identity/project/composables/use-project-api.ts b/apps/web/src/api-clients/identity/project/composables/use-project-api.ts index 719a441e58..f47dd68e7a 100644 --- a/apps/web/src/api-clients/identity/project/composables/use-project-api.ts +++ b/apps/web/src/api-clients/identity/project/composables/use-project-api.ts @@ -1,6 +1,7 @@ import { SpaceConnector } from '@cloudforet/core-lib/space-connector'; import type { ListResponse } from '@/api-clients/_common/schema/api-verbs/list'; +import type { StatResponse } from '@/api-clients/_common/schema/api-verbs/stat'; import type { ProjectAddUsersParameters } from '@/api-clients/identity/project/schema/api-verbs/add-users'; import type { ProjectChangeProjectGroupParameters } from '@/api-clients/identity/project/schema/api-verbs/change-project-group'; import type { ProjectCreateParameters } from '@/api-clients/identity/project/schema/api-verbs/create'; @@ -8,6 +9,7 @@ import type { ProjectDeleteParameters } from '@/api-clients/identity/project/sch import type { ProjectGetParameters } from '@/api-clients/identity/project/schema/api-verbs/get'; import type { ProjectListParameters } from '@/api-clients/identity/project/schema/api-verbs/list'; import type { ProjectRemoveUsersParameters } from '@/api-clients/identity/project/schema/api-verbs/remove-users'; +import type { ProjectStatParameters } from '@/api-clients/identity/project/schema/api-verbs/stat'; import type { ProjectUpdateParameters } from '@/api-clients/identity/project/schema/api-verbs/udpate'; import type { ProjectUpdateProjectTypeParameters } from '@/api-clients/identity/project/schema/api-verbs/update-project-type'; import type { ProjectModel } from '@/api-clients/identity/project/schema/model'; @@ -24,6 +26,7 @@ export const useProjectApi = () => { removeUsers: SpaceConnector.clientV2.identity.project.removeUsers, changeProjectGroup: SpaceConnector.clientV2.identity.project.changeProjectGroup, updateProjectType: SpaceConnector.clientV2.identity.project.updateProjectType, + stat: SpaceConnector.clientV2.identity.project.stat, }; return { diff --git a/apps/web/src/api-clients/identity/project/schema/api-verbs/stat.ts b/apps/web/src/api-clients/identity/project/schema/api-verbs/stat.ts new file mode 100644 index 0000000000..d5c1ff5f51 --- /dev/null +++ b/apps/web/src/api-clients/identity/project/schema/api-verbs/stat.ts @@ -0,0 +1,5 @@ +import type { StatQuery } from '@/api-clients/_common/schema/type'; + +export interface ProjectStatParameters { + query: StatQuery +} diff --git a/apps/web/src/api-clients/identity/provider/composables/use-provider-api.ts b/apps/web/src/api-clients/identity/provider/composables/use-provider-api.ts index 961e700d35..824054e8fb 100644 --- a/apps/web/src/api-clients/identity/provider/composables/use-provider-api.ts +++ b/apps/web/src/api-clients/identity/provider/composables/use-provider-api.ts @@ -1,6 +1,7 @@ import { SpaceConnector } from '@cloudforet/core-lib/space-connector'; import type { ListResponse } from '@/api-clients/_common/schema/api-verbs/list'; +import type { StatResponse } from '@/api-clients/_common/schema/api-verbs/stat'; import type { ProviderCreateParameters } from '@/api-clients/identity/provider/schema/api-verbs/create'; import type { ProviderDeleteParameters } from '@/api-clients/identity/provider/schema/api-verbs/delete'; import type { ProviderGetParameters } from '@/api-clients/identity/provider/schema/api-verbs/get'; @@ -17,7 +18,7 @@ export const useProviderApi = () => { delete: SpaceConnector.clientV2.identity.provider.delete, get: SpaceConnector.clientV2.identity.provider.get, list: SpaceConnector.clientV2.identity.provider.list>, - stat: SpaceConnector.clientV2.identity.provider.stat, + stat: SpaceConnector.clientV2.identity.provider.stat, }; return { diff --git a/apps/web/src/api-clients/identity/provider/schema/api-verbs/stat.ts b/apps/web/src/api-clients/identity/provider/schema/api-verbs/stat.ts index 68476c83d0..31222e95ad 100644 --- a/apps/web/src/api-clients/identity/provider/schema/api-verbs/stat.ts +++ b/apps/web/src/api-clients/identity/provider/schema/api-verbs/stat.ts @@ -1,3 +1,5 @@ +import type { StatQuery } from '@/api-clients/_common/schema/type'; + export interface ProviderStatParameters { - query: any; + query: StatQuery; } diff --git a/apps/web/src/api-clients/identity/schema/composables/use-schema-api.ts b/apps/web/src/api-clients/identity/schema/composables/use-schema-api.ts index 0b5b061108..db17f8eb40 100644 --- a/apps/web/src/api-clients/identity/schema/composables/use-schema-api.ts +++ b/apps/web/src/api-clients/identity/schema/composables/use-schema-api.ts @@ -1,6 +1,7 @@ import { SpaceConnector } from '@cloudforet/core-lib/space-connector'; import type { ListResponse } from '@/api-clients/_common/schema/api-verbs/list'; +import type { StatResponse } from '@/api-clients/_common/schema/api-verbs/stat'; import type { SchemaCreateParameters } from '@/api-clients/identity/schema/schema/api-verbs/create'; import type { SchemaDeleteParameters } from '@/api-clients/identity/schema/schema/api-verbs/delete'; import type { SchemaGetParameters } from '@/api-clients/identity/schema/schema/api-verbs/get'; @@ -16,7 +17,7 @@ export const useSchemaApi = () => { delete: SpaceConnector.clientV2.identity.schema.delete, get: SpaceConnector.clientV2.identity.schema.get, list: SpaceConnector.clientV2.identity.schema.list>, - stat: SpaceConnector.clientV2.identity.schema.stat, + stat: SpaceConnector.clientV2.identity.schema.stat, }; return { diff --git a/apps/web/src/api-clients/identity/schema/schema/api-verbs/stat.ts b/apps/web/src/api-clients/identity/schema/schema/api-verbs/stat.ts index e611b9438e..b5f6a36e93 100644 --- a/apps/web/src/api-clients/identity/schema/schema/api-verbs/stat.ts +++ b/apps/web/src/api-clients/identity/schema/schema/api-verbs/stat.ts @@ -1,3 +1,5 @@ +import type { StatQuery } from '@/api-clients/_common/schema/type'; + export interface SchemaStatParameters { - query: any; + query: StatQuery; } diff --git a/apps/web/src/api-clients/identity/service-account/composables/use-service-account-api.ts b/apps/web/src/api-clients/identity/service-account/composables/use-service-account-api.ts index 97c61212cf..f2dbb492e4 100644 --- a/apps/web/src/api-clients/identity/service-account/composables/use-service-account-api.ts +++ b/apps/web/src/api-clients/identity/service-account/composables/use-service-account-api.ts @@ -1,6 +1,7 @@ import { SpaceConnector } from '@cloudforet/core-lib/space-connector'; import type { ListResponse } from '@/api-clients/_common/schema/api-verbs/list'; +import type { StatResponse } from '@/api-clients/_common/schema/api-verbs/stat'; import type { ServiceAccountCreateParameters } from '@/api-clients/identity/service-account/schema/api-verbs/create'; import type { ServiceAccountDeleteParameters } from '@/api-clients/identity/service-account/schema/api-verbs/detele'; import type { ServiceAccountDeleteSecretDataParameters } from '@/api-clients/identity/service-account/schema/api-verbs/detele-secret-data'; @@ -19,7 +20,7 @@ export const useServiceAccountApi = () => { delete: SpaceConnector.clientV2.identity.serviceAccount.delete, get: SpaceConnector.clientV2.identity.serviceAccount.get, list: SpaceConnector.clientV2.identity.serviceAccount.list>, - stat: SpaceConnector.clientV2.identity.serviceAccount.stat, + stat: SpaceConnector.clientV2.identity.serviceAccount.stat, updateSecretData: SpaceConnector.clientV2.identity.serviceAccount.updateSecretData, deleteSecretData: SpaceConnector.clientV2.identity.serviceAccount.deleteSecretData, }; diff --git a/apps/web/src/api-clients/identity/service-account/schema/api-verbs/stat.ts b/apps/web/src/api-clients/identity/service-account/schema/api-verbs/stat.ts index d1371e3d01..ba319adb52 100644 --- a/apps/web/src/api-clients/identity/service-account/schema/api-verbs/stat.ts +++ b/apps/web/src/api-clients/identity/service-account/schema/api-verbs/stat.ts @@ -1,5 +1,5 @@ -import type { Query } from '@cloudforet/core-lib/space-connector/type'; +import type { StatQuery } from '@/api-clients/_common/schema/type'; export interface ServiceAccountStatParameters { - query: Query; + query: StatQuery; } diff --git a/apps/web/src/api-clients/identity/trusted-account/composables/use-trusted-account-api.ts b/apps/web/src/api-clients/identity/trusted-account/composables/use-trusted-account-api.ts index 5c926fbabd..6d287c531c 100644 --- a/apps/web/src/api-clients/identity/trusted-account/composables/use-trusted-account-api.ts +++ b/apps/web/src/api-clients/identity/trusted-account/composables/use-trusted-account-api.ts @@ -1,16 +1,19 @@ import { SpaceConnector } from '@cloudforet/core-lib/space-connector'; import type { ListResponse } from '@/api-clients/_common/schema/api-verbs/list'; +import type { StatResponse } from '@/api-clients/_common/schema/api-verbs/stat'; import type { TrustedAccountCreateParameters } from '@/api-clients/identity/trusted-account/schema/api-verbs/create'; import type { TrustedAccountDeleteParameters } from '@/api-clients/identity/trusted-account/schema/api-verbs/detele'; import type { TrustedAccountGetParameters } from '@/api-clients/identity/trusted-account/schema/api-verbs/get'; import type { TrustedAccountListParameters } from '@/api-clients/identity/trusted-account/schema/api-verbs/list'; import type { TrustedAccountStatParameters } from '@/api-clients/identity/trusted-account/schema/api-verbs/stat'; +import type { TrustedAccountSyncParameters } from '@/api-clients/identity/trusted-account/schema/api-verbs/sync'; import type { TrustedAccountUpdateParameters } from '@/api-clients/identity/trusted-account/schema/api-verbs/update'; import type { TrustedAccountUpdateSecretDataParameters } from '@/api-clients/identity/trusted-account/schema/api-verbs/update-secret-data'; import type { TrustedAccountModel } from '@/api-clients/identity/trusted-account/schema/model'; + export const useTrustedAccountApi = () => { const actions = { create: SpaceConnector.clientV2.identity.trustedAccount.create, @@ -18,8 +21,9 @@ export const useTrustedAccountApi = () => { delete: SpaceConnector.clientV2.identity.trustedAccount.delete, get: SpaceConnector.clientV2.identity.trustedAccount.get, list: SpaceConnector.clientV2.identity.trustedAccount.list>, - stat: SpaceConnector.clientV2.identity.trustedAccount.stat, + stat: SpaceConnector.clientV2.identity.trustedAccount.stat, updateSecretData: SpaceConnector.clientV2.identity.trustedAccount.updateSecretData, + sync: SpaceConnector.clientV2.identity.trustedAccount.sync, }; return { diff --git a/apps/web/src/api-clients/identity/trusted-account/schema/api-verbs/stat.ts b/apps/web/src/api-clients/identity/trusted-account/schema/api-verbs/stat.ts index a942105fab..67dcdc0132 100644 --- a/apps/web/src/api-clients/identity/trusted-account/schema/api-verbs/stat.ts +++ b/apps/web/src/api-clients/identity/trusted-account/schema/api-verbs/stat.ts @@ -1,3 +1,5 @@ +import type { StatQuery } from '@/api-clients/_common/schema/type'; + export interface TrustedAccountStatParameters { - query: any; + query: StatQuery; } diff --git a/apps/web/src/api-clients/identity/trusted-account/schema/api-verbs/sync.ts b/apps/web/src/api-clients/identity/trusted-account/schema/api-verbs/sync.ts new file mode 100644 index 0000000000..2ee9fdc636 --- /dev/null +++ b/apps/web/src/api-clients/identity/trusted-account/schema/api-verbs/sync.ts @@ -0,0 +1,3 @@ +export interface TrustedAccountSyncParameters { + trusted_account_id: string; +} diff --git a/apps/web/src/api-clients/identity/user-group/schema/model.ts b/apps/web/src/api-clients/identity/user-group/schema/model.ts index 9c617c1d1d..4be86f694a 100644 --- a/apps/web/src/api-clients/identity/user-group/schema/model.ts +++ b/apps/web/src/api-clients/identity/user-group/schema/model.ts @@ -1,5 +1,5 @@ import type { Tags } from '@/api-clients/_common/schema/model'; -import type { UserGroupChannelModel } from '@/schema/alert-manager/user-group-channel/model'; +import type { UserGroupChannelModel } from '@/api-clients/alert-manager/user-group-channel/schema/model'; export interface UserGroupModel { user_group_id: string; diff --git a/apps/web/src/api-clients/identity/user-profile/composables/use-user-profile-api.ts b/apps/web/src/api-clients/identity/user-profile/composables/use-user-profile-api.ts index c08aa42a31..ca74db5831 100644 --- a/apps/web/src/api-clients/identity/user-profile/composables/use-user-profile-api.ts +++ b/apps/web/src/api-clients/identity/user-profile/composables/use-user-profile-api.ts @@ -24,6 +24,7 @@ export const useUserProfileApi = () => { enableMfa: SpaceConnector.clientV2.identity.userProfile.enableMfa, confirmMfa: SpaceConnector.clientV2.identity.userProfile.confirmMfa, getWorkspaces: SpaceConnector.clientV2.identity.userProfile.getWorkspaces, + getWorkspaceGroups: SpaceConnector.clientV2.identity.userProfile.getWorkspaceGroups, }; return { diff --git a/apps/web/src/api-clients/identity/workspace-group-user/composables/use-workspace-group-user-api.ts b/apps/web/src/api-clients/identity/workspace-group-user/composables/use-workspace-group-user-api.ts index fab5821b63..f0f015fbe4 100644 --- a/apps/web/src/api-clients/identity/workspace-group-user/composables/use-workspace-group-user-api.ts +++ b/apps/web/src/api-clients/identity/workspace-group-user/composables/use-workspace-group-user-api.ts @@ -1,13 +1,14 @@ import { SpaceConnector } from '@cloudforet/core-lib/space-connector'; import type { ListResponse } from '@/api-clients/_common/schema/api-verbs/list'; +import type { StatResponse } from '@/api-clients/_common/schema/api-verbs/stat'; import type { WorkspaceGroupUserAddParameters } from '@/api-clients/identity/workspace-group-user/schema/api-verbs/add'; import type { WorkspaceGroupUserFindParameters } from '@/api-clients/identity/workspace-group-user/schema/api-verbs/find'; import type { WorkspaceGroupUserGetParameters } from '@/api-clients/identity/workspace-group-user/schema/api-verbs/get'; import type { WorkspaceGroupUserListParameters } from '@/api-clients/identity/workspace-group-user/schema/api-verbs/list'; import type { WorkspaceGroupUserRemoveParameters } from '@/api-clients/identity/workspace-group-user/schema/api-verbs/remove'; import type { WorkspaceGroupUserUpdateRoleParameters } from '@/api-clients/identity/workspace-group-user/schema/api-verbs/update-role'; -import type { WorkspaceGroupUserModel } from '@/api-clients/identity/workspace-group-user/schema/model'; +import type { WorkspaceGroupUserModel, WorkspaceGroupUserSummaryModel } from '@/api-clients/identity/workspace-group-user/schema/model'; export const useWorkspaceGroupUserApi = () => { const actions = { @@ -15,9 +16,9 @@ export const useWorkspaceGroupUserApi = () => { remove: SpaceConnector.clientV2.identity.workspaceGroupUser.remove, get: SpaceConnector.clientV2.identity.workspaceGroupUser.get, list: SpaceConnector.clientV2.identity.workspaceGroupUser.list>, - find: SpaceConnector.clientV2.identity.workspaceGroupUser.find, + find: SpaceConnector.clientV2.identity.workspaceGroupUser.find>, updateRole: SpaceConnector.clientV2.identity.workspaceGroupUser.updateRole, - stat: SpaceConnector.clientV2.identity.workspaceGroupUser.stat, + stat: SpaceConnector.clientV2.identity.workspaceGroupUser.stat, }; return { diff --git a/apps/web/src/api-clients/identity/workspace-group/composables/use-workspace-group-api.ts b/apps/web/src/api-clients/identity/workspace-group/composables/use-workspace-group-api.ts index 756b377597..787e0101fe 100644 --- a/apps/web/src/api-clients/identity/workspace-group/composables/use-workspace-group-api.ts +++ b/apps/web/src/api-clients/identity/workspace-group/composables/use-workspace-group-api.ts @@ -1,6 +1,7 @@ import { SpaceConnector } from '@cloudforet/core-lib/space-connector'; import type { ListResponse } from '@/api-clients/_common/schema/api-verbs/list'; +import type { StatResponse } from '@/api-clients/_common/schema/api-verbs/stat'; import type { WorkspaceGroupAddUsersParameters } from '@/api-clients/identity/workspace-group/schema/api-verbs/add-users'; import type { WorkspaceGroupCreateParameters } from '@/api-clients/identity/workspace-group/schema/api-verbs/create'; import type { WorkspaceGroupDeleteParameters } from '@/api-clients/identity/workspace-group/schema/api-verbs/delete'; @@ -22,7 +23,7 @@ export const useWorkspaceGroupApi = () => { addUsers: SpaceConnector.clientV2.identity.workspaceGroup.addUsers, removeUsers: SpaceConnector.clientV2.identity.workspaceGroup.removeUsers, updateRole: SpaceConnector.clientV2.identity.workspaceGroup.updateRole, - stat: SpaceConnector.clientV2.identity.workspaceGroup.stat, + stat: SpaceConnector.clientV2.identity.workspaceGroup.stat, }; return { diff --git a/apps/web/src/api-clients/identity/workspace-group/schema/api-verbs/stat.ts b/apps/web/src/api-clients/identity/workspace-group/schema/api-verbs/stat.ts index 384d88af90..9deabab963 100644 --- a/apps/web/src/api-clients/identity/workspace-group/schema/api-verbs/stat.ts +++ b/apps/web/src/api-clients/identity/workspace-group/schema/api-verbs/stat.ts @@ -1,5 +1,5 @@ -import type { Query } from '@cloudforet/core-lib/space-connector/type'; +import type { StatQuery } from '@/api-clients/_common/schema/type'; export interface WorkspaceGroupStatParameters { - query?: Query; + query: StatQuery; } diff --git a/apps/web/src/api-clients/identity/workspace-user/schema/model.ts b/apps/web/src/api-clients/identity/workspace-user/schema/model.ts index c304390a6e..04700dcd5e 100644 --- a/apps/web/src/api-clients/identity/workspace-user/schema/model.ts +++ b/apps/web/src/api-clients/identity/workspace-user/schema/model.ts @@ -9,6 +9,7 @@ export interface WorkspaceUserModel { name: string; state: UserState; email: string; + email_verified?: boolean; auth_type: AuthType; role_type: RoleType; language: string; diff --git a/apps/web/src/api-clients/identity/workspace/composables/use-workspace-api.ts b/apps/web/src/api-clients/identity/workspace/composables/use-workspace-api.ts index 83ee5f71de..f0a8488719 100644 --- a/apps/web/src/api-clients/identity/workspace/composables/use-workspace-api.ts +++ b/apps/web/src/api-clients/identity/workspace/composables/use-workspace-api.ts @@ -5,6 +5,8 @@ import type { WorkspaceAddPackageParameters } from '@/api-clients/identity/works import type { WorkspaceChangeWorkspaceGroupParameters } from '@/api-clients/identity/workspace/schema/api-verbs/change-workspace-group'; import type { WorkspaceCreateParameters } from '@/api-clients/identity/workspace/schema/api-verbs/create'; import type { WorkspaceDeleteParameters } from '@/api-clients/identity/workspace/schema/api-verbs/delete'; +import type { WorkspaceDisableParameters } from '@/api-clients/identity/workspace/schema/api-verbs/disable'; +import type { WorkspaceEnableParameters } from '@/api-clients/identity/workspace/schema/api-verbs/enable'; import type { WorkspaceListParameters } from '@/api-clients/identity/workspace/schema/api-verbs/list'; import type { WorkspaceRemovePackageParameters } from '@/api-clients/identity/workspace/schema/api-verbs/remove-package'; import type { WorkspaceUpdateParameters } from '@/api-clients/identity/workspace/schema/api-verbs/update'; @@ -15,6 +17,8 @@ export const useWorkspaceApi = () => { create: SpaceConnector.clientV2.identity.workspace.create, update: SpaceConnector.clientV2.identity.workspace.update, delete: SpaceConnector.clientV2.identity.workspace.delete, + enable: SpaceConnector.clientV2.identity.workspace.enable, + disable: SpaceConnector.clientV2.identity.workspace.disable, list: SpaceConnector.clientV2.identity.workspace.list>, addPackage: SpaceConnector.clientV2.identity.workspace.addPackage, removePackage: SpaceConnector.clientV2.identity.workspace.removePackage, diff --git a/apps/web/src/api-clients/identity/workspace/schema/api-verbs/disable.ts b/apps/web/src/api-clients/identity/workspace/schema/api-verbs/disable.ts new file mode 100644 index 0000000000..8548f3b6cd --- /dev/null +++ b/apps/web/src/api-clients/identity/workspace/schema/api-verbs/disable.ts @@ -0,0 +1,5 @@ + + +export interface WorkspaceDisableParameters { + workspace_id: string; +} diff --git a/apps/web/src/api-clients/identity/workspace/schema/api-verbs/enable.ts b/apps/web/src/api-clients/identity/workspace/schema/api-verbs/enable.ts new file mode 100644 index 0000000000..f67c1000c9 --- /dev/null +++ b/apps/web/src/api-clients/identity/workspace/schema/api-verbs/enable.ts @@ -0,0 +1,5 @@ + + +export interface WorkspaceEnableParameters { + workspace_id: string; +} diff --git a/apps/web/src/schema/inventory-v2/namespace-group/api-verbs/create.ts b/apps/web/src/api-clients/inventory-v2/namespace-group/schema/api-verbs/create.ts similarity index 100% rename from apps/web/src/schema/inventory-v2/namespace-group/api-verbs/create.ts rename to apps/web/src/api-clients/inventory-v2/namespace-group/schema/api-verbs/create.ts diff --git a/apps/web/src/schema/inventory-v2/namespace-group/api-verbs/delete.ts b/apps/web/src/api-clients/inventory-v2/namespace-group/schema/api-verbs/delete.ts similarity index 100% rename from apps/web/src/schema/inventory-v2/namespace-group/api-verbs/delete.ts rename to apps/web/src/api-clients/inventory-v2/namespace-group/schema/api-verbs/delete.ts diff --git a/apps/web/src/schema/inventory-v2/namespace-group/api-verbs/get.ts b/apps/web/src/api-clients/inventory-v2/namespace-group/schema/api-verbs/get.ts similarity index 100% rename from apps/web/src/schema/inventory-v2/namespace-group/api-verbs/get.ts rename to apps/web/src/api-clients/inventory-v2/namespace-group/schema/api-verbs/get.ts diff --git a/apps/web/src/schema/inventory-v2/namespace-group/api-verbs/list.ts b/apps/web/src/api-clients/inventory-v2/namespace-group/schema/api-verbs/list.ts similarity index 100% rename from apps/web/src/schema/inventory-v2/namespace-group/api-verbs/list.ts rename to apps/web/src/api-clients/inventory-v2/namespace-group/schema/api-verbs/list.ts diff --git a/apps/web/src/schema/inventory-v2/namespace-group/api-verbs/update.ts b/apps/web/src/api-clients/inventory-v2/namespace-group/schema/api-verbs/update.ts similarity index 100% rename from apps/web/src/schema/inventory-v2/namespace-group/api-verbs/update.ts rename to apps/web/src/api-clients/inventory-v2/namespace-group/schema/api-verbs/update.ts diff --git a/apps/web/src/schema/inventory-v2/namespace-group/model.ts b/apps/web/src/api-clients/inventory-v2/namespace-group/schema/model.ts similarity index 100% rename from apps/web/src/schema/inventory-v2/namespace-group/model.ts rename to apps/web/src/api-clients/inventory-v2/namespace-group/schema/model.ts diff --git a/apps/web/src/schema/inventory-v2/namespace/api-verbs/create.ts b/apps/web/src/api-clients/inventory-v2/namespace/schema/api-verbs/create.ts similarity index 81% rename from apps/web/src/schema/inventory-v2/namespace/api-verbs/create.ts rename to apps/web/src/api-clients/inventory-v2/namespace/schema/api-verbs/create.ts index 0e8b3fbeed..5564625e94 100644 --- a/apps/web/src/schema/inventory-v2/namespace/api-verbs/create.ts +++ b/apps/web/src/api-clients/inventory-v2/namespace/schema/api-verbs/create.ts @@ -1,6 +1,6 @@ import type { Tags } from '@/api-clients/_common/schema/model'; import type { ResourceGroupType } from '@/api-clients/_common/schema/type'; -import type { NamespaceCategory } from '@/schema/inventory-v2/namespace/type'; +import type { NamespaceCategory } from '@/api-clients/inventory-v2/namespace/schema/type'; export interface NamespaceCreateParameters { namespace_id?: string; diff --git a/apps/web/src/schema/inventory-v2/namespace/api-verbs/delete.ts b/apps/web/src/api-clients/inventory-v2/namespace/schema/api-verbs/delete.ts similarity index 100% rename from apps/web/src/schema/inventory-v2/namespace/api-verbs/delete.ts rename to apps/web/src/api-clients/inventory-v2/namespace/schema/api-verbs/delete.ts diff --git a/apps/web/src/schema/inventory-v2/namespace/api-verbs/get.ts b/apps/web/src/api-clients/inventory-v2/namespace/schema/api-verbs/get.ts similarity index 100% rename from apps/web/src/schema/inventory-v2/namespace/api-verbs/get.ts rename to apps/web/src/api-clients/inventory-v2/namespace/schema/api-verbs/get.ts diff --git a/apps/web/src/schema/inventory-v2/namespace/api-verbs/list.ts b/apps/web/src/api-clients/inventory-v2/namespace/schema/api-verbs/list.ts similarity index 82% rename from apps/web/src/schema/inventory-v2/namespace/api-verbs/list.ts rename to apps/web/src/api-clients/inventory-v2/namespace/schema/api-verbs/list.ts index f6f0d70fb0..108a7778ab 100644 --- a/apps/web/src/schema/inventory-v2/namespace/api-verbs/list.ts +++ b/apps/web/src/api-clients/inventory-v2/namespace/schema/api-verbs/list.ts @@ -1,7 +1,7 @@ import type { Query } from '@cloudforet/core-lib/space-connector/type'; import type { ResourceGroupType } from '@/api-clients/_common/schema/type'; -import type { NamespaceCategory } from '@/schema/inventory-v2/namespace/type'; +import type { NamespaceCategory } from '@/api-clients/inventory-v2/namespace/schema/type'; export interface NamespaceListParameters { diff --git a/apps/web/src/schema/inventory-v2/namespace/api-verbs/update.ts b/apps/web/src/api-clients/inventory-v2/namespace/schema/api-verbs/update.ts similarity index 100% rename from apps/web/src/schema/inventory-v2/namespace/api-verbs/update.ts rename to apps/web/src/api-clients/inventory-v2/namespace/schema/api-verbs/update.ts diff --git a/apps/web/src/schema/inventory-v2/namespace/constant.ts b/apps/web/src/api-clients/inventory-v2/namespace/schema/constant.ts similarity index 100% rename from apps/web/src/schema/inventory-v2/namespace/constant.ts rename to apps/web/src/api-clients/inventory-v2/namespace/schema/constant.ts diff --git a/apps/web/src/schema/inventory-v2/namespace/model.ts b/apps/web/src/api-clients/inventory-v2/namespace/schema/model.ts similarity index 84% rename from apps/web/src/schema/inventory-v2/namespace/model.ts rename to apps/web/src/api-clients/inventory-v2/namespace/schema/model.ts index 7c25db5851..6698521e8d 100644 --- a/apps/web/src/schema/inventory-v2/namespace/model.ts +++ b/apps/web/src/api-clients/inventory-v2/namespace/schema/model.ts @@ -1,6 +1,6 @@ import type { Tags } from '@/api-clients/_common/schema/model'; import type { ResourceGroupType } from '@/api-clients/_common/schema/type'; -import type { NamespaceCategory } from '@/schema/inventory-v2/namespace/type'; +import type { NamespaceCategory } from '@/api-clients/inventory-v2/namespace/schema/type'; export interface NamespaceModel { diff --git a/apps/web/src/api-clients/inventory-v2/namespace/schema/type.ts b/apps/web/src/api-clients/inventory-v2/namespace/schema/type.ts new file mode 100644 index 0000000000..a21c1a2ea9 --- /dev/null +++ b/apps/web/src/api-clients/inventory-v2/namespace/schema/type.ts @@ -0,0 +1,3 @@ +import type { NAMESPACE_CATEGORY } from '@/api-clients/inventory-v2/namespace/schema/constant'; + +export type NamespaceCategory = typeof NAMESPACE_CATEGORY[keyof typeof NAMESPACE_CATEGORY]; diff --git a/apps/web/src/api-clients/inventory/change-history/composables/use-change-history-api.ts b/apps/web/src/api-clients/inventory/change-history/composables/use-change-history-api.ts new file mode 100644 index 0000000000..6f826146b0 --- /dev/null +++ b/apps/web/src/api-clients/inventory/change-history/composables/use-change-history-api.ts @@ -0,0 +1,15 @@ +import { SpaceConnector } from '@cloudforet/core-lib/space-connector'; + +import type { ListResponse } from '@/api-clients/_common/schema/api-verbs/list'; +import type { ChangeHistoryListParameters } from '@/api-clients/inventory/change-history/schema/api-verbs/list'; +import type { ChangeHistoryModel } from '@/api-clients/inventory/change-history/schema/model'; + +export const useChangeHistoryApi = () => { + const actions = { + list: SpaceConnector.clientV2.inventory.changeHistory.list>, + }; + + return { + changeHistoryAPI: actions, + }; +}; diff --git a/apps/web/src/schema/inventory/change-history/api-verbs/list.ts b/apps/web/src/api-clients/inventory/change-history/schema/api-verbs/list.ts similarity index 75% rename from apps/web/src/schema/inventory/change-history/api-verbs/list.ts rename to apps/web/src/api-clients/inventory/change-history/schema/api-verbs/list.ts index db5b128c1d..44fff71ae6 100644 --- a/apps/web/src/schema/inventory/change-history/api-verbs/list.ts +++ b/apps/web/src/api-clients/inventory/change-history/schema/api-verbs/list.ts @@ -1,6 +1,6 @@ import type { Query } from '@cloudforet/core-lib/space-connector/type'; -import type { ChangeHistoryAction, UpdatedBy } from '@/schema/inventory/change-history/type'; +import type { ChangeHistoryAction, UpdatedBy } from '@/api-clients/inventory/change-history/schema/type'; export interface ChangeHistoryListParameters { cloud_service_id: string; diff --git a/apps/web/src/schema/inventory/change-history/model.ts b/apps/web/src/api-clients/inventory/change-history/schema/model.ts similarity index 89% rename from apps/web/src/schema/inventory/change-history/model.ts rename to apps/web/src/api-clients/inventory/change-history/schema/model.ts index 62426826c7..41f6771225 100644 --- a/apps/web/src/schema/inventory/change-history/model.ts +++ b/apps/web/src/api-clients/inventory/change-history/schema/model.ts @@ -1,4 +1,4 @@ -import type { DiffType, ChangeHistoryAction, UpdatedBy } from '@/schema/inventory/change-history/type'; +import type { DiffType, ChangeHistoryAction, UpdatedBy } from '@/api-clients/inventory/change-history/schema/type'; export interface ChangeHistoryModel { record_id: string; diff --git a/apps/web/src/schema/inventory/change-history/type.ts b/apps/web/src/api-clients/inventory/change-history/schema/type.ts similarity index 100% rename from apps/web/src/schema/inventory/change-history/type.ts rename to apps/web/src/api-clients/inventory/change-history/schema/type.ts diff --git a/apps/web/src/api-clients/inventory/cloud-service-query-set/composables/use-cloud-service-query-set-api.ts b/apps/web/src/api-clients/inventory/cloud-service-query-set/composables/use-cloud-service-query-set-api.ts new file mode 100644 index 0000000000..33ab353b45 --- /dev/null +++ b/apps/web/src/api-clients/inventory/cloud-service-query-set/composables/use-cloud-service-query-set-api.ts @@ -0,0 +1,14 @@ +import { SpaceConnector } from '@cloudforet/core-lib/space-connector'; + +import type { ListResponse } from '@/api-clients/_common/schema/api-verbs/list'; +import type { CloudServiceQuerySetListParameters } from '@/api-clients/inventory/cloud-service-query-set/schema/api-verbs/list'; +import type { CloudServiceQuerySetModel } from '@/api-clients/inventory/cloud-service-query-set/schema/model'; + +export const useCloudServiceQuerySetApi = () => { + const actions = { + list: SpaceConnector.clientV2.inventory.cloudServiceQuerySet.list>, + }; + return { + cloudServiceQuerySetAPI: actions, + }; +}; diff --git a/apps/web/src/schema/inventory/cloud-service-query-set/api-verbs/list.ts b/apps/web/src/api-clients/inventory/cloud-service-query-set/schema/api-verbs/list.ts similarity index 86% rename from apps/web/src/schema/inventory/cloud-service-query-set/api-verbs/list.ts rename to apps/web/src/api-clients/inventory/cloud-service-query-set/schema/api-verbs/list.ts index 6325c2fd74..524af2d050 100644 --- a/apps/web/src/schema/inventory/cloud-service-query-set/api-verbs/list.ts +++ b/apps/web/src/api-clients/inventory/cloud-service-query-set/schema/api-verbs/list.ts @@ -1,6 +1,6 @@ import type { Query } from '@cloudforet/core-lib/space-connector/type'; -import type { CloudServiceQueryType, CloudServiceQuerySetState } from '@/schema/inventory/cloud-service-query-set/type'; +import type { CloudServiceQueryType, CloudServiceQuerySetState } from '@/api-clients/inventory/cloud-service-query-set/schema/type'; export interface CloudServiceQuerySetListParameters { diff --git a/apps/web/src/schema/inventory/cloud-service-query-set/model.ts b/apps/web/src/api-clients/inventory/cloud-service-query-set/schema/model.ts similarity index 91% rename from apps/web/src/schema/inventory/cloud-service-query-set/model.ts rename to apps/web/src/api-clients/inventory/cloud-service-query-set/schema/model.ts index 6d1739e9f6..e2a87673cb 100644 --- a/apps/web/src/schema/inventory/cloud-service-query-set/model.ts +++ b/apps/web/src/api-clients/inventory/cloud-service-query-set/schema/model.ts @@ -1,6 +1,6 @@ import type { Tags } from '@/api-clients/_common/schema/model'; import type { ResourceGroupType } from '@/api-clients/_common/schema/type'; -import type { CloudServiceQueryType, CloudServiceQuerySetState } from '@/schema/inventory/cloud-service-query-set/type'; +import type { CloudServiceQueryType, CloudServiceQuerySetState } from '@/api-clients/inventory/cloud-service-query-set/schema/type'; export interface CloudServiceQuerySetModel { query_set_id: string; diff --git a/apps/web/src/schema/inventory/cloud-service-query-set/type.ts b/apps/web/src/api-clients/inventory/cloud-service-query-set/schema/type.ts similarity index 100% rename from apps/web/src/schema/inventory/cloud-service-query-set/type.ts rename to apps/web/src/api-clients/inventory/cloud-service-query-set/schema/type.ts diff --git a/apps/web/src/api-clients/inventory/cloud-service-stats/composables/use-cloud-service-stats-api.ts b/apps/web/src/api-clients/inventory/cloud-service-stats/composables/use-cloud-service-stats-api.ts new file mode 100644 index 0000000000..4588b50962 --- /dev/null +++ b/apps/web/src/api-clients/inventory/cloud-service-stats/composables/use-cloud-service-stats-api.ts @@ -0,0 +1,13 @@ +import { SpaceConnector } from '@cloudforet/core-lib/space-connector'; + +import type { CloudServiceStatsAnalyzeParameters } from '@/api-clients/inventory/cloud-service-stats/schema/api-verbs/analyze'; +import type { CloudServiceStatModel } from '@/api-clients/inventory/cloud-service-stats/schema/model'; + +export const useCloudServiceStatsApi = () => { + const actions = { + analyze: SpaceConnector.clientV2.inventory.cloudServiceStats.analyze, + }; + return { + cloudServiceStatsAPI: actions, + }; +}; diff --git a/apps/web/src/schema/inventory/cloud-service-stats/api-verbs/analyze.ts b/apps/web/src/api-clients/inventory/cloud-service-stats/schema/api-verbs/analyze.ts similarity index 100% rename from apps/web/src/schema/inventory/cloud-service-stats/api-verbs/analyze.ts rename to apps/web/src/api-clients/inventory/cloud-service-stats/schema/api-verbs/analyze.ts diff --git a/apps/web/src/schema/inventory/cloud-service-stats/model.ts b/apps/web/src/api-clients/inventory/cloud-service-stats/schema/model.ts similarity index 100% rename from apps/web/src/schema/inventory/cloud-service-stats/model.ts rename to apps/web/src/api-clients/inventory/cloud-service-stats/schema/model.ts diff --git a/apps/web/src/api-clients/inventory/cloud-service-type/composables/use-cloud-service-type-api.ts b/apps/web/src/api-clients/inventory/cloud-service-type/composables/use-cloud-service-type-api.ts new file mode 100644 index 0000000000..cc988cbd33 --- /dev/null +++ b/apps/web/src/api-clients/inventory/cloud-service-type/composables/use-cloud-service-type-api.ts @@ -0,0 +1,19 @@ +import { SpaceConnector } from '@cloudforet/core-lib/space-connector'; + +import type { ListResponse } from '@/api-clients/_common/schema/api-verbs/list'; +import type { StatResponse } from '@/api-clients/_common/schema/api-verbs/stat'; +import type { CloudServiceTypeListParameters } from '@/api-clients/inventory/cloud-service-type/schema/api-verbs/list'; +import type { CloudServiceTypeStatParameters } from '@/api-clients/inventory/cloud-service-type/schema/api-verbs/stat'; +import type { CloudServiceTypeModel } from '@/api-clients/inventory/cloud-service-type/schema/model'; + + +export const useCloudServiceTypeApi = () => { + const actions = { + list: SpaceConnector.clientV2.inventory.cloudServiceType.list>, + stat: SpaceConnector.clientV2.inventory.cloudServiceType.stat, + }; + + return { + cloudServiceTypeAPI: actions, + }; +}; diff --git a/apps/web/src/schema/inventory/cloud-service-type/api-verbs/list.ts b/apps/web/src/api-clients/inventory/cloud-service-type/schema/api-verbs/list.ts similarity index 100% rename from apps/web/src/schema/inventory/cloud-service-type/api-verbs/list.ts rename to apps/web/src/api-clients/inventory/cloud-service-type/schema/api-verbs/list.ts diff --git a/apps/web/src/api-clients/inventory/cloud-service-type/schema/api-verbs/stat.ts b/apps/web/src/api-clients/inventory/cloud-service-type/schema/api-verbs/stat.ts new file mode 100644 index 0000000000..230b950c81 --- /dev/null +++ b/apps/web/src/api-clients/inventory/cloud-service-type/schema/api-verbs/stat.ts @@ -0,0 +1,5 @@ +import type { StatQuery } from '@/api-clients/_common/schema/type'; + +export interface CloudServiceTypeStatParameters { + query: StatQuery; +} diff --git a/apps/web/src/schema/inventory/cloud-service-type/model.ts b/apps/web/src/api-clients/inventory/cloud-service-type/schema/model.ts similarity index 100% rename from apps/web/src/schema/inventory/cloud-service-type/model.ts rename to apps/web/src/api-clients/inventory/cloud-service-type/schema/model.ts diff --git a/apps/web/src/api-clients/inventory/cloud-service/composables/use-cloud-service-api.ts b/apps/web/src/api-clients/inventory/cloud-service/composables/use-cloud-service-api.ts new file mode 100644 index 0000000000..8553050c7c --- /dev/null +++ b/apps/web/src/api-clients/inventory/cloud-service/composables/use-cloud-service-api.ts @@ -0,0 +1,25 @@ +import { SpaceConnector } from '@cloudforet/core-lib/space-connector'; + +import type { AnalyzeResponse } from '@/api-clients/_common/schema/api-verbs/analyze'; +import type { ExportParameter, ExportResponse } from '@/api-clients/_common/schema/api-verbs/export'; +import type { ListResponse } from '@/api-clients/_common/schema/api-verbs/list'; +import type { CloudServiceAnalyzeParameters } from '@/api-clients/inventory/cloud-service/schema/api-verbs/analyze'; +import type { CloudServiceGetParameters } from '@/api-clients/inventory/cloud-service/schema/api-verbs/get'; +import type { CloudServiceGetDataParameters } from '@/api-clients/inventory/cloud-service/schema/api-verbs/get-data'; +import type { CloudServiceListParameters } from '@/api-clients/inventory/cloud-service/schema/api-verbs/list'; +import type { CloudServiceModel } from '@/api-clients/inventory/cloud-service/schema/model'; +import type { CloudServiceAnalyzeResult } from '@/api-clients/inventory/cloud-service/schema/type'; + + +export const useCloudServiceApi = () => { + const actions = { + analyze: SpaceConnector.clientV2.inventory.cloudService.analyze>, + get: SpaceConnector.clientV2.inventory.cloudService.get, + getData: SpaceConnector.client.inventory.cloudService.getData, + list: SpaceConnector.clientV2.inventory.cloudService.list>, + export: SpaceConnector.clientV2.inventory.cloudService.export, + }; + return { + cloudServiceAPI: actions, + }; +}; diff --git a/apps/web/src/schema/inventory/cloud-service/api-verbs/analyze.ts b/apps/web/src/api-clients/inventory/cloud-service/schema/api-verbs/analyze.ts similarity index 100% rename from apps/web/src/schema/inventory/cloud-service/api-verbs/analyze.ts rename to apps/web/src/api-clients/inventory/cloud-service/schema/api-verbs/analyze.ts diff --git a/apps/web/src/api-clients/inventory/cloud-service/schema/api-verbs/get-data.ts b/apps/web/src/api-clients/inventory/cloud-service/schema/api-verbs/get-data.ts new file mode 100644 index 0000000000..3ecd4e35c8 --- /dev/null +++ b/apps/web/src/api-clients/inventory/cloud-service/schema/api-verbs/get-data.ts @@ -0,0 +1,3 @@ +export interface CloudServiceGetDataParameters { + [key: string]: any; +} diff --git a/apps/web/src/schema/inventory/cloud-service/api-verbs/get.ts b/apps/web/src/api-clients/inventory/cloud-service/schema/api-verbs/get.ts similarity index 100% rename from apps/web/src/schema/inventory/cloud-service/api-verbs/get.ts rename to apps/web/src/api-clients/inventory/cloud-service/schema/api-verbs/get.ts diff --git a/apps/web/src/schema/inventory/cloud-service/api-verbs/list.ts b/apps/web/src/api-clients/inventory/cloud-service/schema/api-verbs/list.ts similarity index 100% rename from apps/web/src/schema/inventory/cloud-service/api-verbs/list.ts rename to apps/web/src/api-clients/inventory/cloud-service/schema/api-verbs/list.ts diff --git a/apps/web/src/schema/inventory/cloud-service/model.ts b/apps/web/src/api-clients/inventory/cloud-service/schema/model.ts similarity index 88% rename from apps/web/src/schema/inventory/cloud-service/model.ts rename to apps/web/src/api-clients/inventory/cloud-service/schema/model.ts index 0419954449..eaefe0d4dd 100644 --- a/apps/web/src/schema/inventory/cloud-service/model.ts +++ b/apps/web/src/api-clients/inventory/cloud-service/schema/model.ts @@ -1,5 +1,5 @@ import type { Tags } from '@/api-clients/_common/schema/model'; -import type { CloudServiceState } from '@/schema/inventory/cloud-service/type'; +import type { CloudServiceState } from '@/api-clients/inventory/cloud-service/schema/type'; export interface CloudServiceModel { cloud_service_id:string; diff --git a/apps/web/src/api-clients/inventory/cloud-service/schema/type.ts b/apps/web/src/api-clients/inventory/cloud-service/schema/type.ts new file mode 100644 index 0000000000..74ebf46dca --- /dev/null +++ b/apps/web/src/api-clients/inventory/cloud-service/schema/type.ts @@ -0,0 +1,12 @@ +export type CloudServiceState = 'ACTIVE' | 'DELETED'; + +export interface CloudServiceAnalyzeResultResource { + value?: number; + cloud_service_type?: string; +} +export interface CloudServiceAnalyzeResult { + provider?: string; + cloud_service_group?: string; + resources?: CloudServiceAnalyzeResultResource[]; + _total_resources?: number; +} diff --git a/apps/web/src/api-clients/inventory/collector-rule/composables/use-collector-rule-api.ts b/apps/web/src/api-clients/inventory/collector-rule/composables/use-collector-rule-api.ts new file mode 100644 index 0000000000..ae4f9af816 --- /dev/null +++ b/apps/web/src/api-clients/inventory/collector-rule/composables/use-collector-rule-api.ts @@ -0,0 +1,24 @@ +import { SpaceConnector } from '@cloudforet/core-lib/space-connector'; + +import type { ListResponse } from '@/api-clients/_common/schema/api-verbs/list'; +import type { CollectorRuleChangeOrderParameters } from '@/api-clients/inventory/collector-rule/schema/api-verbs/change-order'; +import type { CollectorRuleCreateParameters } from '@/api-clients/inventory/collector-rule/schema/api-verbs/create'; +import type { CollectorRuleDeleteParameters } from '@/api-clients/inventory/collector-rule/schema/api-verbs/delete'; +import type { CollectorRuleListParameters } from '@/api-clients/inventory/collector-rule/schema/api-verbs/list'; +import type { CollectorRuleUpdateParameters } from '@/api-clients/inventory/collector-rule/schema/api-verbs/update'; +import type { CollectorRuleModel } from '@/api-clients/inventory/collector-rule/schema/model'; + + +export const useCollectorRuleApi = () => { + const actions = { + list: SpaceConnector.clientV2.inventory.collectorRule.list>, + changeOrder: SpaceConnector.clientV2.inventory.collectorRule.changeOrder, + create: SpaceConnector.clientV2.inventory.collectorRule.create, + delete: SpaceConnector.clientV2.inventory.collectorRule.delete, + update: SpaceConnector.clientV2.inventory.collectorRule.update, + }; + + return { + collectorRuleAPI: actions, + }; +}; diff --git a/apps/web/src/schema/inventory/collector-rule/api-verbs/change-order.ts b/apps/web/src/api-clients/inventory/collector-rule/schema/api-verbs/change-order.ts similarity index 100% rename from apps/web/src/schema/inventory/collector-rule/api-verbs/change-order.ts rename to apps/web/src/api-clients/inventory/collector-rule/schema/api-verbs/change-order.ts diff --git a/apps/web/src/schema/inventory/collector-rule/api-verbs/create.ts b/apps/web/src/api-clients/inventory/collector-rule/schema/api-verbs/create.ts similarity index 72% rename from apps/web/src/schema/inventory/collector-rule/api-verbs/create.ts rename to apps/web/src/api-clients/inventory/collector-rule/schema/api-verbs/create.ts index 4cf2fc2327..4884b27705 100644 --- a/apps/web/src/schema/inventory/collector-rule/api-verbs/create.ts +++ b/apps/web/src/api-clients/inventory/collector-rule/schema/api-verbs/create.ts @@ -1,6 +1,6 @@ import type { Tags } from '@/api-clients/_common/schema/model'; -import type { AdditionalRuleAction, AdditionalRuleCondition } from '@/schema/inventory/collector-rule/model'; -import type { CollectorRuleConditionPolicy } from '@/schema/inventory/collector-rule/type'; +import type { AdditionalRuleAction, AdditionalRuleCondition } from '@/api-clients/inventory/collector-rule/schema/model'; +import type { CollectorRuleConditionPolicy } from '@/api-clients/inventory/collector-rule/schema/type'; export interface CollectorRuleCreateParameters { collector_id: string; diff --git a/apps/web/src/schema/inventory/collector-rule/api-verbs/delete.ts b/apps/web/src/api-clients/inventory/collector-rule/schema/api-verbs/delete.ts similarity index 100% rename from apps/web/src/schema/inventory/collector-rule/api-verbs/delete.ts rename to apps/web/src/api-clients/inventory/collector-rule/schema/api-verbs/delete.ts diff --git a/apps/web/src/schema/inventory/collector-rule/api-verbs/get.ts b/apps/web/src/api-clients/inventory/collector-rule/schema/api-verbs/get.ts similarity index 100% rename from apps/web/src/schema/inventory/collector-rule/api-verbs/get.ts rename to apps/web/src/api-clients/inventory/collector-rule/schema/api-verbs/get.ts diff --git a/apps/web/src/schema/inventory/collector-rule/api-verbs/list.ts b/apps/web/src/api-clients/inventory/collector-rule/schema/api-verbs/list.ts similarity index 100% rename from apps/web/src/schema/inventory/collector-rule/api-verbs/list.ts rename to apps/web/src/api-clients/inventory/collector-rule/schema/api-verbs/list.ts diff --git a/apps/web/src/schema/inventory/collector-rule/api-verbs/update.ts b/apps/web/src/api-clients/inventory/collector-rule/schema/api-verbs/update.ts similarity index 74% rename from apps/web/src/schema/inventory/collector-rule/api-verbs/update.ts rename to apps/web/src/api-clients/inventory/collector-rule/schema/api-verbs/update.ts index 6e141430c5..d4912cafef 100644 --- a/apps/web/src/schema/inventory/collector-rule/api-verbs/update.ts +++ b/apps/web/src/api-clients/inventory/collector-rule/schema/api-verbs/update.ts @@ -1,6 +1,6 @@ import type { Tags } from '@/api-clients/_common/schema/model'; -import type { AdditionalRuleAction, AdditionalRuleCondition } from '@/schema/inventory/collector-rule/model'; -import type { CollectorRuleConditionPolicy } from '@/schema/inventory/collector-rule/type'; +import type { AdditionalRuleAction, AdditionalRuleCondition } from '@/api-clients/inventory/collector-rule/schema/model'; +import type { CollectorRuleConditionPolicy } from '@/api-clients/inventory/collector-rule/schema/type'; // collector api parameters export interface CollectorRuleUpdateParameters { diff --git a/apps/web/src/schema/inventory/collector-rule/constant.ts b/apps/web/src/api-clients/inventory/collector-rule/schema/constant.ts similarity index 100% rename from apps/web/src/schema/inventory/collector-rule/constant.ts rename to apps/web/src/api-clients/inventory/collector-rule/schema/constant.ts diff --git a/apps/web/src/schema/inventory/collector-rule/model.ts b/apps/web/src/api-clients/inventory/collector-rule/schema/model.ts similarity index 94% rename from apps/web/src/schema/inventory/collector-rule/model.ts rename to apps/web/src/api-clients/inventory/collector-rule/schema/model.ts index 1829e9e427..78af3e0d4f 100644 --- a/apps/web/src/schema/inventory/collector-rule/model.ts +++ b/apps/web/src/api-clients/inventory/collector-rule/schema/model.ts @@ -2,7 +2,7 @@ import type { Tags } from '@/api-clients/_common/schema/model'; import type { CollectorRuleConditionPolicy, CollectorRuleType, CollectorResourceGroup, CollectorRuleConditionOperator, CollectorRuleConditionKey, -} from '@/schema/inventory/collector-rule/type'; +} from '@/api-clients/inventory/collector-rule/schema/type'; export interface AdditionalRuleCondition { key: CollectorRuleConditionKey; diff --git a/apps/web/src/schema/inventory/collector-rule/type.ts b/apps/web/src/api-clients/inventory/collector-rule/schema/type.ts similarity index 92% rename from apps/web/src/schema/inventory/collector-rule/type.ts rename to apps/web/src/api-clients/inventory/collector-rule/schema/type.ts index 2a33e00468..e8d33400d8 100644 --- a/apps/web/src/schema/inventory/collector-rule/type.ts +++ b/apps/web/src/api-clients/inventory/collector-rule/schema/type.ts @@ -1,7 +1,7 @@ import type { COLLECTOR_RULE_TYPE, COLLECTOR_RULE_CONDITION_POLICY, COLLECTOR_RESOURCE_GROUP, COLLECTOR_RULE_CONDITION_OPERATOR, COLLECTOR_RULE_CONDITION_KEY, -} from '@/schema/inventory/collector-rule/constant'; +} from '@/api-clients/inventory/collector-rule/schema/constant'; export type CollectorRuleType = typeof COLLECTOR_RULE_TYPE[keyof typeof COLLECTOR_RULE_TYPE]; diff --git a/apps/web/src/api-clients/inventory/collector/composables/use-collector-api.ts b/apps/web/src/api-clients/inventory/collector/composables/use-collector-api.ts new file mode 100644 index 0000000000..8ea13df805 --- /dev/null +++ b/apps/web/src/api-clients/inventory/collector/composables/use-collector-api.ts @@ -0,0 +1,29 @@ +import { SpaceConnector } from '@cloudforet/core-lib/space-connector'; + +import type { ListResponse } from '@/api-clients/_common/schema/api-verbs/list'; +import type { CollectorCollectParameters } from '@/api-clients/inventory/collector/schema/api-verbs/collect'; +import type { CollectorCreateParameters } from '@/api-clients/inventory/collector/schema/api-verbs/create'; +import type { CollectorDeleteParameters } from '@/api-clients/inventory/collector/schema/api-verbs/delete'; +import type { CollectorGetParameters } from '@/api-clients/inventory/collector/schema/api-verbs/get'; +import type { CollectorListParameters } from '@/api-clients/inventory/collector/schema/api-verbs/list'; +import type { CollectorUpdateParameters } from '@/api-clients/inventory/collector/schema/api-verbs/update'; +import type { CollectorUpdatePluginParameters } from '@/api-clients/inventory/collector/schema/api-verbs/update-plugin'; +import type { CollectorModel } from '@/api-clients/inventory/collector/schema/model'; +import type { JobModel } from '@/api-clients/inventory/job/schema/model'; + + +export const useCollectorApi = () => { + const actions = { + collect: SpaceConnector.clientV2.inventory.collector.collect, + create: SpaceConnector.clientV2.inventory.collector.create, + delete: SpaceConnector.clientV2.inventory.collector.delete, + get: SpaceConnector.clientV2.inventory.collector.get, + list: SpaceConnector.clientV2.inventory.collector.list>, + update: SpaceConnector.clientV2.inventory.collector.update, + updatePlugin: SpaceConnector.clientV2.inventory.collector.updatePlugin, + }; + + return { + collectorAPI: actions, + }; +}; diff --git a/apps/web/src/schema/inventory/collector/api-verbs/collect.ts b/apps/web/src/api-clients/inventory/collector/schema/api-verbs/collect.ts similarity index 100% rename from apps/web/src/schema/inventory/collector/api-verbs/collect.ts rename to apps/web/src/api-clients/inventory/collector/schema/api-verbs/collect.ts diff --git a/apps/web/src/schema/inventory/collector/api-verbs/create.ts b/apps/web/src/api-clients/inventory/collector/schema/api-verbs/create.ts similarity index 74% rename from apps/web/src/schema/inventory/collector/api-verbs/create.ts rename to apps/web/src/api-clients/inventory/collector/schema/api-verbs/create.ts index 9e2955ae7b..bd5af2b0a2 100644 --- a/apps/web/src/schema/inventory/collector/api-verbs/create.ts +++ b/apps/web/src/api-clients/inventory/collector/schema/api-verbs/create.ts @@ -1,7 +1,7 @@ import type { Tags } from '@/api-clients/_common/schema/model'; import type { ResourceGroupType } from '@/api-clients/_common/schema/type'; -import type { CollectorPluginInfo } from '@/schema/inventory/collector/model'; -import type { Schedule, SecretFilter } from '@/schema/inventory/collector/type'; +import type { CollectorPluginInfo } from '@/api-clients/inventory/collector/schema/model'; +import type { Schedule, SecretFilter } from '@/api-clients/inventory/collector/schema/type'; export interface CollectorCreateParameters { name: string; diff --git a/apps/web/src/schema/inventory/collector/api-verbs/delete.ts b/apps/web/src/api-clients/inventory/collector/schema/api-verbs/delete.ts similarity index 100% rename from apps/web/src/schema/inventory/collector/api-verbs/delete.ts rename to apps/web/src/api-clients/inventory/collector/schema/api-verbs/delete.ts diff --git a/apps/web/src/schema/inventory/collector/api-verbs/get.ts b/apps/web/src/api-clients/inventory/collector/schema/api-verbs/get.ts similarity index 100% rename from apps/web/src/schema/inventory/collector/api-verbs/get.ts rename to apps/web/src/api-clients/inventory/collector/schema/api-verbs/get.ts diff --git a/apps/web/src/schema/inventory/collector/api-verbs/list.ts b/apps/web/src/api-clients/inventory/collector/schema/api-verbs/list.ts similarity index 78% rename from apps/web/src/schema/inventory/collector/api-verbs/list.ts rename to apps/web/src/api-clients/inventory/collector/schema/api-verbs/list.ts index 15a36e8180..fecfabe37f 100644 --- a/apps/web/src/schema/inventory/collector/api-verbs/list.ts +++ b/apps/web/src/api-clients/inventory/collector/schema/api-verbs/list.ts @@ -1,6 +1,6 @@ import type { Query } from '@cloudforet/core-lib/space-connector/type'; -import type { ScheduleState } from '@/schema/inventory/collector/type'; +import type { ScheduleState } from '@/api-clients/inventory/collector/schema/type'; export interface CollectorListParameters { query?: Query; diff --git a/apps/web/src/schema/inventory/collector/api-verbs/update-plugin.ts b/apps/web/src/api-clients/inventory/collector/schema/api-verbs/update-plugin.ts similarity index 58% rename from apps/web/src/schema/inventory/collector/api-verbs/update-plugin.ts rename to apps/web/src/api-clients/inventory/collector/schema/api-verbs/update-plugin.ts index 944ba447f3..722f842304 100644 --- a/apps/web/src/schema/inventory/collector/api-verbs/update-plugin.ts +++ b/apps/web/src/api-clients/inventory/collector/schema/api-verbs/update-plugin.ts @@ -1,5 +1,5 @@ -import type { CollectorOptions } from '@/schema/inventory/collector/type'; -import type { UpgradeMode } from '@/schema/plugin/plugin/type'; +import type { CollectorOptions } from '@/api-clients/inventory/collector/schema/type'; +import type { UpgradeMode } from '@/api-clients/plugin/plugin/type'; export interface CollectorUpdatePluginParameters { collector_id: string; diff --git a/apps/web/src/schema/inventory/collector/api-verbs/update.ts b/apps/web/src/api-clients/inventory/collector/schema/api-verbs/update.ts similarity index 79% rename from apps/web/src/schema/inventory/collector/api-verbs/update.ts rename to apps/web/src/api-clients/inventory/collector/schema/api-verbs/update.ts index d1c9321ef9..7a43826836 100644 --- a/apps/web/src/schema/inventory/collector/api-verbs/update.ts +++ b/apps/web/src/api-clients/inventory/collector/schema/api-verbs/update.ts @@ -1,5 +1,5 @@ import type { Tags } from '@/api-clients/_common/schema/model'; -import type { Schedule, SecretFilter } from '@/schema/inventory/collector/type'; +import type { Schedule, SecretFilter } from '@/api-clients/inventory/collector/schema/type'; // collector api parameters export interface CollectorUpdateParameters { diff --git a/apps/web/src/schema/inventory/collector/constant.ts b/apps/web/src/api-clients/inventory/collector/schema/constant.ts similarity index 100% rename from apps/web/src/schema/inventory/collector/constant.ts rename to apps/web/src/api-clients/inventory/collector/schema/constant.ts diff --git a/apps/web/src/schema/inventory/collector/model.ts b/apps/web/src/api-clients/inventory/collector/schema/model.ts similarity index 80% rename from apps/web/src/schema/inventory/collector/model.ts rename to apps/web/src/api-clients/inventory/collector/schema/model.ts index f33f743596..dc8875c5ea 100644 --- a/apps/web/src/schema/inventory/collector/model.ts +++ b/apps/web/src/api-clients/inventory/collector/schema/model.ts @@ -2,9 +2,9 @@ import type { Tags } from '@/api-clients/_common/schema/model'; import type { ResourceGroupType } from '@/api-clients/_common/schema/type'; import type { CollectorMetadata, CollectorOptions, Schedule, SecretFilter, -} from '@/schema/inventory/collector/type'; -import type { UpgradeMode } from '@/schema/plugin/plugin/type'; -import type { Capability } from '@/schema/repository/plugin/type'; +} from '@/api-clients/inventory/collector/schema/type'; +import type { UpgradeMode } from '@/api-clients/plugin/plugin/type'; +import type { Capability } from '@/api-clients/repository/plugin/schema/type'; export interface CollectorPluginInfo { diff --git a/apps/web/src/schema/inventory/collector/type.ts b/apps/web/src/api-clients/inventory/collector/schema/type.ts similarity index 88% rename from apps/web/src/schema/inventory/collector/type.ts rename to apps/web/src/api-clients/inventory/collector/schema/type.ts index 1fcf048c03..33b8219af1 100644 --- a/apps/web/src/schema/inventory/collector/type.ts +++ b/apps/web/src/api-clients/inventory/collector/schema/type.ts @@ -1,6 +1,6 @@ import type { JsonSchema } from '@cloudforet/mirinae/types/controls/forms/json-schema-form/type'; -import type { STATE } from '@/schema/inventory/collector/constant'; +import type { STATE } from '@/api-clients/inventory/collector/schema/constant'; export interface CollectorOptions { [key: string]: any; diff --git a/apps/web/src/api-clients/inventory/job-task/composables/use-job-task-api.ts b/apps/web/src/api-clients/inventory/job-task/composables/use-job-task-api.ts new file mode 100644 index 0000000000..7583d96ded --- /dev/null +++ b/apps/web/src/api-clients/inventory/job-task/composables/use-job-task-api.ts @@ -0,0 +1,15 @@ +import { SpaceConnector } from '@cloudforet/core-lib/space-connector'; + +import type { ListResponse } from '@/api-clients/_common/schema/api-verbs/list'; +import type { JobTaskListParameters } from '@/api-clients/inventory/job-task/schema/api-verbs/list'; +import type { JobTaskModel } from '@/api-clients/inventory/job-task/schema/model'; + +export const useInventoryJobTaskApi = () => { + const actions = { + list: SpaceConnector.clientV2.inventory.jobTask.list>, + }; + + return { + jobTaskAPI: actions, + }; +}; diff --git a/apps/web/src/schema/inventory/job-task/api-verbs/list.ts b/apps/web/src/api-clients/inventory/job-task/schema/api-verbs/list.ts similarity index 82% rename from apps/web/src/schema/inventory/job-task/api-verbs/list.ts rename to apps/web/src/api-clients/inventory/job-task/schema/api-verbs/list.ts index 08785132fe..f507b45787 100644 --- a/apps/web/src/schema/inventory/job-task/api-verbs/list.ts +++ b/apps/web/src/api-clients/inventory/job-task/schema/api-verbs/list.ts @@ -1,6 +1,6 @@ import type { Query } from '@cloudforet/core-lib/space-connector/type'; -import type { JobStatus } from '@/schema/inventory/job/type'; +import type { JobStatus } from '@/api-clients/inventory/job/schema/type'; export interface JobTaskListParameters { query?: Query; diff --git a/apps/web/src/schema/inventory/job-task/model.ts b/apps/web/src/api-clients/inventory/job-task/schema/model.ts similarity index 88% rename from apps/web/src/schema/inventory/job-task/model.ts rename to apps/web/src/api-clients/inventory/job-task/schema/model.ts index 60ebdfe96f..51d843d484 100644 --- a/apps/web/src/schema/inventory/job-task/model.ts +++ b/apps/web/src/api-clients/inventory/job-task/schema/model.ts @@ -1,4 +1,4 @@ -import type { JobStatus } from '@/schema/inventory/job/type'; +import type { JobStatus } from '@/api-clients/inventory/job/schema/type'; import type { JobTaskError } from '@/services/asset-inventory/types/collector-history-job-type'; diff --git a/apps/web/src/api-clients/inventory/job/composables/use-job-api.ts b/apps/web/src/api-clients/inventory/job/composables/use-job-api.ts new file mode 100644 index 0000000000..8f8cb93d1a --- /dev/null +++ b/apps/web/src/api-clients/inventory/job/composables/use-job-api.ts @@ -0,0 +1,19 @@ +import { SpaceConnector } from '@cloudforet/core-lib/space-connector'; + +import type { ListResponse } from '@/api-clients/_common/schema/api-verbs/list'; +import type { JobAnalyzeParameters } from '@/api-clients/inventory/job/schema/api-verbs/analyze'; +import type { JobGetParameters } from '@/api-clients/inventory/job/schema/api-verbs/get'; +import type { JobListParameters } from '@/api-clients/inventory/job/schema/api-verbs/list'; +import type { JobModel } from '@/api-clients/inventory/job/schema/model'; + +export const useInventoryJobApi = () => { + const actions = { + list: SpaceConnector.clientV2.inventory.job.list>, + analyze: SpaceConnector.clientV2.inventory.job.analyze>, + get: SpaceConnector.clientV2.inventory.job.get, + }; + + return { + jobAPI: actions, + }; +}; diff --git a/apps/web/src/schema/inventory/job/api-verbs/analyze.ts b/apps/web/src/api-clients/inventory/job/schema/api-verbs/analyze.ts similarity index 100% rename from apps/web/src/schema/inventory/job/api-verbs/analyze.ts rename to apps/web/src/api-clients/inventory/job/schema/api-verbs/analyze.ts diff --git a/apps/web/src/api-clients/inventory/job/schema/api-verbs/get.ts b/apps/web/src/api-clients/inventory/job/schema/api-verbs/get.ts new file mode 100644 index 0000000000..acdc99b2fb --- /dev/null +++ b/apps/web/src/api-clients/inventory/job/schema/api-verbs/get.ts @@ -0,0 +1,4 @@ + +export interface JobGetParameters { + job_id: string; +} diff --git a/apps/web/src/schema/inventory/job/api-verbs/list.ts b/apps/web/src/api-clients/inventory/job/schema/api-verbs/list.ts similarity index 80% rename from apps/web/src/schema/inventory/job/api-verbs/list.ts rename to apps/web/src/api-clients/inventory/job/schema/api-verbs/list.ts index 602b51764c..548c35a17a 100644 --- a/apps/web/src/schema/inventory/job/api-verbs/list.ts +++ b/apps/web/src/api-clients/inventory/job/schema/api-verbs/list.ts @@ -1,6 +1,6 @@ import type { Query } from '@cloudforet/core-lib/space-connector/type'; -import type { JobStatus } from '@/schema/inventory/job/type'; +import type { JobStatus } from '@/api-clients/inventory/job/schema/type'; export interface JobListParameters { query?: Query; diff --git a/apps/web/src/schema/inventory/job/model.ts b/apps/web/src/api-clients/inventory/job/schema/model.ts similarity index 87% rename from apps/web/src/schema/inventory/job/model.ts rename to apps/web/src/api-clients/inventory/job/schema/model.ts index 3d1b429969..c3558cc00c 100644 --- a/apps/web/src/schema/inventory/job/model.ts +++ b/apps/web/src/api-clients/inventory/job/schema/model.ts @@ -1,5 +1,5 @@ import type { ResourceGroupType } from '@/api-clients/_common/schema/type'; -import type { JobStatus } from '@/schema/inventory/job/type'; +import type { JobStatus } from '@/api-clients/inventory/job/schema/type'; export interface JobModel { diff --git a/apps/web/src/schema/inventory/job/type.ts b/apps/web/src/api-clients/inventory/job/schema/type.ts similarity index 100% rename from apps/web/src/schema/inventory/job/type.ts rename to apps/web/src/api-clients/inventory/job/schema/type.ts diff --git a/apps/web/src/api-clients/inventory/metric-data/composables/use-metric-data-api.ts b/apps/web/src/api-clients/inventory/metric-data/composables/use-metric-data-api.ts index 153dc8ab0b..98eca1ee3c 100644 --- a/apps/web/src/api-clients/inventory/metric-data/composables/use-metric-data-api.ts +++ b/apps/web/src/api-clients/inventory/metric-data/composables/use-metric-data-api.ts @@ -1,18 +1,16 @@ import { SpaceConnector } from '@cloudforet/core-lib/space-connector'; import type { AnalyzeResponse } from '@/api-clients/_common/schema/api-verbs/analyze'; -import type { ListResponse } from '@/api-clients/_common/schema/api-verbs/list'; +import type { StatResponse } from '@/api-clients/_common/schema/api-verbs/stat'; import type { MetricDataAnalyzeParameters } from '@/api-clients/inventory/metric-data/schema/api-verbs/analyze'; -import type { MetricDataListParameters } from '@/schema/inventory/metric-data/api-verbs/list'; -import type { MetricDataModel } from '@/schema/inventory/metric-data/model'; - +import type { MetricDataStatParameters } from '@/api-clients/inventory/metric-data/schema/api-verbs/stat'; export const useMetricDataApi = () => { const actions = { - list: SpaceConnector.clientV2.inventory.metricData.list>, analyze: SpaceConnector.clientV2.inventory.metricData.analyze>, + stat: SpaceConnector.clientV2.inventory.metricData.stat, }; return { diff --git a/apps/web/src/api-clients/inventory/metric-data/schema/api-verbs/analyze.ts b/apps/web/src/api-clients/inventory/metric-data/schema/api-verbs/analyze.ts index f569e131c7..30d3ba3c3b 100644 --- a/apps/web/src/api-clients/inventory/metric-data/schema/api-verbs/analyze.ts +++ b/apps/web/src/api-clients/inventory/metric-data/schema/api-verbs/analyze.ts @@ -1,4 +1,6 @@ +import type { AnalyzeQuery } from '@cloudforet/core-lib/space-connector/type'; + export interface MetricDataAnalyzeParameters { metric_id: string; - query: object; + query: AnalyzeQuery; } diff --git a/apps/web/src/api-clients/inventory/metric-data/schema/api-verbs/stat.ts b/apps/web/src/api-clients/inventory/metric-data/schema/api-verbs/stat.ts new file mode 100644 index 0000000000..1314482b2b --- /dev/null +++ b/apps/web/src/api-clients/inventory/metric-data/schema/api-verbs/stat.ts @@ -0,0 +1,5 @@ +import type { StatQuery } from '@/api-clients/_common/schema/type'; + +export interface MetricDataStatParameters { + query: StatQuery +} diff --git a/apps/web/src/schema/inventory/metric-data/model.ts b/apps/web/src/api-clients/inventory/metric-data/schema/model.ts similarity index 100% rename from apps/web/src/schema/inventory/metric-data/model.ts rename to apps/web/src/api-clients/inventory/metric-data/schema/model.ts diff --git a/apps/web/src/api-clients/inventory/metric-example/composables/use-metric-example-api.ts b/apps/web/src/api-clients/inventory/metric-example/composables/use-metric-example-api.ts new file mode 100644 index 0000000000..3e0e4c0e6d --- /dev/null +++ b/apps/web/src/api-clients/inventory/metric-example/composables/use-metric-example-api.ts @@ -0,0 +1,24 @@ +import { SpaceConnector } from '@cloudforet/core-lib/space-connector'; + +import type { ListResponse } from '@/api-clients/_common/schema/api-verbs/list'; +import type { MetricExampleCreateParameters } from '@/api-clients/inventory/metric-example/schema/api-verbs/create'; +import type { MetricExampleDeleteParameters } from '@/api-clients/inventory/metric-example/schema/api-verbs/delete'; +import type { MetricExampleGetParameters } from '@/api-clients/inventory/metric-example/schema/api-verbs/get'; +import type { MetricExampleListParameters } from '@/api-clients/inventory/metric-example/schema/api-verbs/list'; +import type { MetricExampleUpdateParameters } from '@/api-clients/inventory/metric-example/schema/api-verbs/update'; +import type { MetricExampleModel } from '@/api-clients/inventory/metric-example/schema/model'; + + +export const useMetricExampleApi = () => { + const actions = { + list: SpaceConnector.clientV2.inventory.metricExample.list>, + get: SpaceConnector.clientV2.inventory.metricExample.get, + create: SpaceConnector.clientV2.inventory.metricExample.create, + update: SpaceConnector.clientV2.inventory.metricExample.update, + delete: SpaceConnector.clientV2.inventory.metricExample.delete, + }; + + return { + metricExampleAPI: actions, + }; +}; diff --git a/apps/web/src/schema/inventory/metric-example/api-verbs/create.ts b/apps/web/src/api-clients/inventory/metric-example/schema/api-verbs/create.ts similarity index 100% rename from apps/web/src/schema/inventory/metric-example/api-verbs/create.ts rename to apps/web/src/api-clients/inventory/metric-example/schema/api-verbs/create.ts diff --git a/apps/web/src/schema/inventory/metric-example/api-verbs/delete.ts b/apps/web/src/api-clients/inventory/metric-example/schema/api-verbs/delete.ts similarity index 100% rename from apps/web/src/schema/inventory/metric-example/api-verbs/delete.ts rename to apps/web/src/api-clients/inventory/metric-example/schema/api-verbs/delete.ts diff --git a/apps/web/src/schema/inventory/metric-example/api-verbs/get.ts b/apps/web/src/api-clients/inventory/metric-example/schema/api-verbs/get.ts similarity index 100% rename from apps/web/src/schema/inventory/metric-example/api-verbs/get.ts rename to apps/web/src/api-clients/inventory/metric-example/schema/api-verbs/get.ts diff --git a/apps/web/src/schema/inventory/metric-example/api-verbs/list.ts b/apps/web/src/api-clients/inventory/metric-example/schema/api-verbs/list.ts similarity index 100% rename from apps/web/src/schema/inventory/metric-example/api-verbs/list.ts rename to apps/web/src/api-clients/inventory/metric-example/schema/api-verbs/list.ts diff --git a/apps/web/src/schema/inventory/metric-example/api-verbs/update.ts b/apps/web/src/api-clients/inventory/metric-example/schema/api-verbs/update.ts similarity index 100% rename from apps/web/src/schema/inventory/metric-example/api-verbs/update.ts rename to apps/web/src/api-clients/inventory/metric-example/schema/api-verbs/update.ts diff --git a/apps/web/src/schema/inventory/metric-example/model.ts b/apps/web/src/api-clients/inventory/metric-example/schema/model.ts similarity index 100% rename from apps/web/src/schema/inventory/metric-example/model.ts rename to apps/web/src/api-clients/inventory/metric-example/schema/model.ts diff --git a/apps/web/src/api-clients/inventory/metric/composables/use-metric-api.ts b/apps/web/src/api-clients/inventory/metric/composables/use-metric-api.ts new file mode 100644 index 0000000000..80f39ad737 --- /dev/null +++ b/apps/web/src/api-clients/inventory/metric/composables/use-metric-api.ts @@ -0,0 +1,25 @@ +import { SpaceConnector } from '@cloudforet/core-lib/space-connector'; + +import type { ListResponse } from '@/api-clients/_common/schema/api-verbs/list'; +import type { MetricCreateParameters } from '@/api-clients/inventory/metric/schema/api-verbs/create'; +import type { MetricDeleteParameters } from '@/api-clients/inventory/metric/schema/api-verbs/delete'; +import type { MetricGetParameters } from '@/api-clients/inventory/metric/schema/api-verbs/get'; +import type { MetricListParameters } from '@/api-clients/inventory/metric/schema/api-verbs/list'; +import type { MetricRunParameters } from '@/api-clients/inventory/metric/schema/api-verbs/run'; +import type { MetricUpdateParameters } from '@/api-clients/inventory/metric/schema/api-verbs/update'; +import type { MetricModel } from '@/api-clients/inventory/metric/schema/model'; + +export const useMetricApi = () => { + const actions = { + create: SpaceConnector.clientV2.inventory.metric.create, + delete: SpaceConnector.clientV2.inventory.metric.delete, + get: SpaceConnector.clientV2.inventory.metric.get, + run: SpaceConnector.clientV2.inventory.metric.run, + update: SpaceConnector.clientV2.inventory.metric.update, + list: SpaceConnector.clientV2.inventory.metric.list>, + }; + + return { + metricAPI: actions, + }; +}; diff --git a/apps/web/src/schema/inventory/metric/api-verbs/create.ts b/apps/web/src/api-clients/inventory/metric/schema/api-verbs/create.ts similarity index 84% rename from apps/web/src/schema/inventory/metric/api-verbs/create.ts rename to apps/web/src/api-clients/inventory/metric/schema/api-verbs/create.ts index 50b2ce7e5a..e95b24fae6 100644 --- a/apps/web/src/schema/inventory/metric/api-verbs/create.ts +++ b/apps/web/src/api-clients/inventory/metric/schema/api-verbs/create.ts @@ -1,6 +1,6 @@ import type { Tags } from '@/api-clients/_common/schema/model'; import type { ResourceGroupType } from '@/api-clients/_common/schema/type'; -import type { MetricType } from '@/schema/inventory/metric/type'; +import type { MetricType } from '@/api-clients/inventory/metric/schema/type'; export interface MetricCreateParameters { diff --git a/apps/web/src/schema/inventory/metric/api-verbs/delete.ts b/apps/web/src/api-clients/inventory/metric/schema/api-verbs/delete.ts similarity index 100% rename from apps/web/src/schema/inventory/metric/api-verbs/delete.ts rename to apps/web/src/api-clients/inventory/metric/schema/api-verbs/delete.ts diff --git a/apps/web/src/schema/inventory/metric/api-verbs/get.ts b/apps/web/src/api-clients/inventory/metric/schema/api-verbs/get.ts similarity index 100% rename from apps/web/src/schema/inventory/metric/api-verbs/get.ts rename to apps/web/src/api-clients/inventory/metric/schema/api-verbs/get.ts diff --git a/apps/web/src/schema/inventory/metric/api-verbs/list.ts b/apps/web/src/api-clients/inventory/metric/schema/api-verbs/list.ts similarity index 66% rename from apps/web/src/schema/inventory/metric/api-verbs/list.ts rename to apps/web/src/api-clients/inventory/metric/schema/api-verbs/list.ts index 34e2538a22..53fa70ab5e 100644 --- a/apps/web/src/schema/inventory/metric/api-verbs/list.ts +++ b/apps/web/src/api-clients/inventory/metric/schema/api-verbs/list.ts @@ -1,7 +1,7 @@ import type { Query } from '@cloudforet/core-lib/space-connector/type'; -import type { MetricType } from '@/schema/inventory/metric/type'; -import type { NamespaceCategory } from '@/schema/inventory/namespace/type'; +import type { MetricType } from '@/api-clients/inventory/metric/schema/type'; +import type { NamespaceCategory } from '@/api-clients/inventory/namespace/schema/type'; export interface MetricListParameters { diff --git a/apps/web/src/schema/inventory/metric/api-verbs/run.ts b/apps/web/src/api-clients/inventory/metric/schema/api-verbs/run.ts similarity index 100% rename from apps/web/src/schema/inventory/metric/api-verbs/run.ts rename to apps/web/src/api-clients/inventory/metric/schema/api-verbs/run.ts diff --git a/apps/web/src/schema/inventory/metric/api-verbs/update.ts b/apps/web/src/api-clients/inventory/metric/schema/api-verbs/update.ts similarity index 100% rename from apps/web/src/schema/inventory/metric/api-verbs/update.ts rename to apps/web/src/api-clients/inventory/metric/schema/api-verbs/update.ts diff --git a/apps/web/src/schema/inventory/metric/constant.ts b/apps/web/src/api-clients/inventory/metric/schema/constant.ts similarity index 100% rename from apps/web/src/schema/inventory/metric/constant.ts rename to apps/web/src/api-clients/inventory/metric/schema/constant.ts diff --git a/apps/web/src/schema/inventory/metric/model.ts b/apps/web/src/api-clients/inventory/metric/schema/model.ts similarity index 84% rename from apps/web/src/schema/inventory/metric/model.ts rename to apps/web/src/api-clients/inventory/metric/schema/model.ts index a2615a5812..43a51c7327 100644 --- a/apps/web/src/schema/inventory/metric/model.ts +++ b/apps/web/src/api-clients/inventory/metric/schema/model.ts @@ -1,5 +1,5 @@ import type { Tags } from '@/api-clients/_common/schema/model'; -import type { MetricType, MetricLabelKey } from '@/schema/inventory/metric/type'; +import type { MetricType, MetricLabelKey } from '@/api-clients/inventory/metric/schema/type'; export interface MetricModel { diff --git a/apps/web/src/schema/inventory/metric/type.ts b/apps/web/src/api-clients/inventory/metric/schema/type.ts similarity index 77% rename from apps/web/src/schema/inventory/metric/type.ts rename to apps/web/src/api-clients/inventory/metric/schema/type.ts index 108d75b9ae..7a210c87f5 100644 --- a/apps/web/src/schema/inventory/metric/type.ts +++ b/apps/web/src/api-clients/inventory/metric/schema/type.ts @@ -1,4 +1,4 @@ -import type { METRIC_TYPE } from '@/schema/inventory/metric/constant'; +import type { METRIC_TYPE } from '@/api-clients/inventory/metric/schema/constant'; export type MetricType = typeof METRIC_TYPE[keyof typeof METRIC_TYPE]; diff --git a/apps/web/src/api-clients/inventory/namespace/composables/use-namespace-api.ts b/apps/web/src/api-clients/inventory/namespace/composables/use-namespace-api.ts new file mode 100644 index 0000000000..27ed2dfe1a --- /dev/null +++ b/apps/web/src/api-clients/inventory/namespace/composables/use-namespace-api.ts @@ -0,0 +1,20 @@ +import { SpaceConnector } from '@cloudforet/core-lib/space-connector'; + +import type { ListResponse } from '@/api-clients/_common/schema/api-verbs/list'; +import type { StatResponse } from '@/api-clients/_common/schema/api-verbs/stat'; +import type { NamespaceGetParameters } from '@/api-clients/inventory/namespace/schema/api-verbs/get'; +import type { NamespaceListParameters } from '@/api-clients/inventory/namespace/schema/api-verbs/list'; +import type { NamespaceStatParameters } from '@/api-clients/inventory/namespace/schema/api-verbs/stat'; +import type { NamespaceModel } from '@/api-clients/inventory/namespace/schema/model'; + +export const useNamespaceApi = () => { + const actions = { + get: SpaceConnector.clientV2.inventory.namespace.get, + list: SpaceConnector.clientV2.inventory.namespace.list>, + stat: SpaceConnector.clientV2.inventory.namespace.stat, + }; + + return { + namespaceAPI: actions, + }; +}; diff --git a/apps/web/src/schema/inventory/namespace/api-verbs/get.ts b/apps/web/src/api-clients/inventory/namespace/schema/api-verbs/get.ts similarity index 100% rename from apps/web/src/schema/inventory/namespace/api-verbs/get.ts rename to apps/web/src/api-clients/inventory/namespace/schema/api-verbs/get.ts diff --git a/apps/web/src/schema/inventory/namespace/api-verbs/list.ts b/apps/web/src/api-clients/inventory/namespace/schema/api-verbs/list.ts similarity index 74% rename from apps/web/src/schema/inventory/namespace/api-verbs/list.ts rename to apps/web/src/api-clients/inventory/namespace/schema/api-verbs/list.ts index 2adc1b0c5e..a3e0647de1 100644 --- a/apps/web/src/schema/inventory/namespace/api-verbs/list.ts +++ b/apps/web/src/api-clients/inventory/namespace/schema/api-verbs/list.ts @@ -1,6 +1,6 @@ import type { Query } from '@cloudforet/core-lib/space-connector/type'; -import type { NamespaceCategory, NamespaceGroup } from '@/schema/inventory/namespace/type'; +import type { NamespaceCategory, NamespaceGroup } from '@/api-clients/inventory/namespace/schema/type'; export interface NamespaceListParameters { diff --git a/apps/web/src/api-clients/inventory/namespace/schema/api-verbs/stat.ts b/apps/web/src/api-clients/inventory/namespace/schema/api-verbs/stat.ts new file mode 100644 index 0000000000..df6a316423 --- /dev/null +++ b/apps/web/src/api-clients/inventory/namespace/schema/api-verbs/stat.ts @@ -0,0 +1,5 @@ +import type { StatQuery } from '@/api-clients/_common/schema/type'; + +export interface NamespaceStatParameters { + query: StatQuery +} diff --git a/apps/web/src/schema/inventory/namespace/constant.ts b/apps/web/src/api-clients/inventory/namespace/schema/constant.ts similarity index 100% rename from apps/web/src/schema/inventory/namespace/constant.ts rename to apps/web/src/api-clients/inventory/namespace/schema/constant.ts diff --git a/apps/web/src/schema/inventory/namespace/model.ts b/apps/web/src/api-clients/inventory/namespace/schema/model.ts similarity index 76% rename from apps/web/src/schema/inventory/namespace/model.ts rename to apps/web/src/api-clients/inventory/namespace/schema/model.ts index 90f2feae1f..0ccc5edbff 100644 --- a/apps/web/src/schema/inventory/namespace/model.ts +++ b/apps/web/src/api-clients/inventory/namespace/schema/model.ts @@ -1,5 +1,5 @@ import type { Tags } from '@/api-clients/_common/schema/model'; -import type { NamespaceCategory, NamespaceGroup } from '@/schema/inventory/namespace/type'; +import type { NamespaceCategory, NamespaceGroup } from '@/api-clients/inventory/namespace/schema/type'; export interface NamespaceModel { diff --git a/apps/web/src/schema/inventory/namespace/type.ts b/apps/web/src/api-clients/inventory/namespace/schema/type.ts similarity index 68% rename from apps/web/src/schema/inventory/namespace/type.ts rename to apps/web/src/api-clients/inventory/namespace/schema/type.ts index 535d59eb93..302a9b8200 100644 --- a/apps/web/src/schema/inventory/namespace/type.ts +++ b/apps/web/src/api-clients/inventory/namespace/schema/type.ts @@ -1,4 +1,4 @@ -import type { NAMESPACE_CATEGORY } from '@/schema/inventory/namespace/constant'; +import type { NAMESPACE_CATEGORY } from '@/api-clients/inventory/namespace/schema/constant'; export type NamespaceCategory = typeof NAMESPACE_CATEGORY[keyof typeof NAMESPACE_CATEGORY]; diff --git a/apps/web/src/api-clients/inventory/note/composables/use-inventory-note-api.ts b/apps/web/src/api-clients/inventory/note/composables/use-inventory-note-api.ts new file mode 100644 index 0000000000..b60de4d81d --- /dev/null +++ b/apps/web/src/api-clients/inventory/note/composables/use-inventory-note-api.ts @@ -0,0 +1,21 @@ + +import { SpaceConnector } from '@cloudforet/core-lib/space-connector'; + +import type { ListResponse } from '@/api-clients/_common/schema/api-verbs/list'; +import type { NoteCreateParameters } from '@/api-clients/inventory/note/schema/api-verbs/create'; +import type { NoteDeleteParameters } from '@/api-clients/inventory/note/schema/api-verbs/delete'; +import type { NoteListParameters } from '@/api-clients/inventory/note/schema/api-verbs/list'; +import type { NoteUpdateParameters } from '@/api-clients/inventory/note/schema/api-verbs/update'; +import type { NoteModel } from '@/api-clients/inventory/note/schema/model'; + +export const useInventoryNoteApi = () => { + const actions = { + list: SpaceConnector.clientV2.inventory.note.list>, + create: SpaceConnector.clientV2.inventory.note.create, + delete: SpaceConnector.clientV2.inventory.note.delete, + update: SpaceConnector.clientV2.inventory.note.update, + }; + return { + noteAPI: actions, + }; +}; diff --git a/apps/web/src/schema/inventory/note/api-verbs/create.ts b/apps/web/src/api-clients/inventory/note/schema/api-verbs/create.ts similarity index 100% rename from apps/web/src/schema/inventory/note/api-verbs/create.ts rename to apps/web/src/api-clients/inventory/note/schema/api-verbs/create.ts diff --git a/apps/web/src/schema/inventory/note/api-verbs/delete.ts b/apps/web/src/api-clients/inventory/note/schema/api-verbs/delete.ts similarity index 100% rename from apps/web/src/schema/inventory/note/api-verbs/delete.ts rename to apps/web/src/api-clients/inventory/note/schema/api-verbs/delete.ts diff --git a/apps/web/src/schema/inventory/note/api-verbs/list.ts b/apps/web/src/api-clients/inventory/note/schema/api-verbs/list.ts similarity index 100% rename from apps/web/src/schema/inventory/note/api-verbs/list.ts rename to apps/web/src/api-clients/inventory/note/schema/api-verbs/list.ts diff --git a/apps/web/src/schema/inventory/note/api-verbs/update.ts b/apps/web/src/api-clients/inventory/note/schema/api-verbs/update.ts similarity index 100% rename from apps/web/src/schema/inventory/note/api-verbs/update.ts rename to apps/web/src/api-clients/inventory/note/schema/api-verbs/update.ts diff --git a/apps/web/src/schema/inventory/note/model.ts b/apps/web/src/api-clients/inventory/note/schema/model.ts similarity index 100% rename from apps/web/src/schema/inventory/note/model.ts rename to apps/web/src/api-clients/inventory/note/schema/model.ts diff --git a/apps/web/src/api-clients/inventory/region/composables/use-region-api.ts b/apps/web/src/api-clients/inventory/region/composables/use-region-api.ts new file mode 100644 index 0000000000..8c90161b66 --- /dev/null +++ b/apps/web/src/api-clients/inventory/region/composables/use-region-api.ts @@ -0,0 +1,18 @@ +import { SpaceConnector } from '@cloudforet/core-lib/space-connector'; + +import type { ListResponse } from '@/api-clients/_common/schema/api-verbs/list'; +import type { StatResponse } from '@/api-clients/_common/schema/api-verbs/stat'; +import type { RegionListParameters } from '@/api-clients/inventory/region/schema/api-verbs/list'; +import type { RegionStatParameters } from '@/api-clients/inventory/region/schema/api-verbs/stat'; +import type { RegionModel } from '@/api-clients/inventory/region/schema/model'; + +export const useRegionApi = () => { + const actions = { + list: SpaceConnector.clientV2.inventory.region.list>, + stat: SpaceConnector.clientV2.inventory.region.stat, + }; + + return { + regionAPI: actions, + }; +}; diff --git a/apps/web/src/schema/inventory/region/api-verbs/list.ts b/apps/web/src/api-clients/inventory/region/schema/api-verbs/list.ts similarity index 100% rename from apps/web/src/schema/inventory/region/api-verbs/list.ts rename to apps/web/src/api-clients/inventory/region/schema/api-verbs/list.ts diff --git a/apps/web/src/api-clients/inventory/region/schema/api-verbs/stat.ts b/apps/web/src/api-clients/inventory/region/schema/api-verbs/stat.ts new file mode 100644 index 0000000000..aba8e497c0 --- /dev/null +++ b/apps/web/src/api-clients/inventory/region/schema/api-verbs/stat.ts @@ -0,0 +1,5 @@ +import type { StatQuery } from '@/api-clients/_common/schema/type'; + +export interface RegionStatParameters { + query: StatQuery +} diff --git a/apps/web/src/schema/inventory/region/model.ts b/apps/web/src/api-clients/inventory/region/schema/model.ts similarity index 100% rename from apps/web/src/schema/inventory/region/model.ts rename to apps/web/src/api-clients/inventory/region/schema/model.ts diff --git a/apps/web/src/schema/monitoring/alert/api-verbs/assign-user.ts b/apps/web/src/api-clients/monitoring/alert/schema/api-verbs/assign-user.ts similarity index 100% rename from apps/web/src/schema/monitoring/alert/api-verbs/assign-user.ts rename to apps/web/src/api-clients/monitoring/alert/schema/api-verbs/assign-user.ts diff --git a/apps/web/src/schema/monitoring/alert/api-verbs/create.ts b/apps/web/src/api-clients/monitoring/alert/schema/api-verbs/create.ts similarity index 67% rename from apps/web/src/schema/monitoring/alert/api-verbs/create.ts rename to apps/web/src/api-clients/monitoring/alert/schema/api-verbs/create.ts index d345e5a207..6963faa0f5 100644 --- a/apps/web/src/schema/monitoring/alert/api-verbs/create.ts +++ b/apps/web/src/api-clients/monitoring/alert/schema/api-verbs/create.ts @@ -1,4 +1,4 @@ -import type { AlertUrgency } from '@/schema/monitoring/alert/type'; +import type { AlertUrgency } from '@/api-clients/monitoring/alert/schema/type'; export interface AlertCreateParameters { title: string; diff --git a/apps/web/src/schema/monitoring/alert/api-verbs/delete.ts b/apps/web/src/api-clients/monitoring/alert/schema/api-verbs/delete.ts similarity index 100% rename from apps/web/src/schema/monitoring/alert/api-verbs/delete.ts rename to apps/web/src/api-clients/monitoring/alert/schema/api-verbs/delete.ts diff --git a/apps/web/src/schema/monitoring/alert/api-verbs/get.ts b/apps/web/src/api-clients/monitoring/alert/schema/api-verbs/get.ts similarity index 100% rename from apps/web/src/schema/monitoring/alert/api-verbs/get.ts rename to apps/web/src/api-clients/monitoring/alert/schema/api-verbs/get.ts diff --git a/apps/web/src/schema/monitoring/alert/api-verbs/list.ts b/apps/web/src/api-clients/monitoring/alert/schema/api-verbs/list.ts similarity index 67% rename from apps/web/src/schema/monitoring/alert/api-verbs/list.ts rename to apps/web/src/api-clients/monitoring/alert/schema/api-verbs/list.ts index eee33ababe..b12b957f6c 100644 --- a/apps/web/src/schema/monitoring/alert/api-verbs/list.ts +++ b/apps/web/src/api-clients/monitoring/alert/schema/api-verbs/list.ts @@ -1,19 +1,19 @@ import type { Query } from '@cloudforet/core-lib/space-connector/type'; import type { ListResponse } from '@/api-clients/_common/schema/api-verbs/list'; -import type { AlertModel } from '@/schema/alert-manager/alert/model'; +import type { AlertModel } from '@/api-clients/alert-manager/alert/schema/model'; import type { - AlertSeverity, AlertState, AlertUrgency, -} from '@/schema/monitoring/alert/type'; + AlertSeverityType, AlertUrgencyType, AlertStatusType, +} from '@/api-clients/alert-manager/alert/schema/type'; export interface AlertListParameters { alert_number?: number; alert_id?: string; title?: string; - state?: AlertState; + state?: AlertStatusType; assignee?: string; - urgency?: AlertUrgency; - severity?: AlertSeverity; + urgency?: AlertUrgencyType; + severity?: AlertSeverityType; resource_id?: string; provider?: string; account?: string; diff --git a/apps/web/src/schema/monitoring/alert/api-verbs/update-state.ts b/apps/web/src/api-clients/monitoring/alert/schema/api-verbs/update-state.ts similarity index 60% rename from apps/web/src/schema/monitoring/alert/api-verbs/update-state.ts rename to apps/web/src/api-clients/monitoring/alert/schema/api-verbs/update-state.ts index 55a5291c90..d9ccc8aba4 100644 --- a/apps/web/src/schema/monitoring/alert/api-verbs/update-state.ts +++ b/apps/web/src/api-clients/monitoring/alert/schema/api-verbs/update-state.ts @@ -1,4 +1,4 @@ -import type { AlertState } from '@/schema/monitoring/alert/type'; +import type { AlertState } from '@/api-clients/monitoring/alert/schema/type'; export interface AlertUpdateStateParameters { alert_id: string; diff --git a/apps/web/src/schema/monitoring/alert/api-verbs/update.ts b/apps/web/src/api-clients/monitoring/alert/schema/api-verbs/update.ts similarity index 67% rename from apps/web/src/schema/monitoring/alert/api-verbs/update.ts rename to apps/web/src/api-clients/monitoring/alert/schema/api-verbs/update.ts index b3646360c9..ca22c9cb4a 100644 --- a/apps/web/src/schema/monitoring/alert/api-verbs/update.ts +++ b/apps/web/src/api-clients/monitoring/alert/schema/api-verbs/update.ts @@ -1,4 +1,4 @@ -import type { AlertState, AlertUrgency } from '@/schema/monitoring/alert/type'; +import type { AlertState, AlertUrgency } from '@/api-clients/monitoring/alert/schema/type'; export interface AlertUpdateParameters { alert_id: string; diff --git a/apps/web/src/schema/monitoring/alert/constants.ts b/apps/web/src/api-clients/monitoring/alert/schema/constants.ts similarity index 100% rename from apps/web/src/schema/monitoring/alert/constants.ts rename to apps/web/src/api-clients/monitoring/alert/schema/constants.ts diff --git a/apps/web/src/schema/monitoring/alert/model.ts b/apps/web/src/api-clients/monitoring/alert/schema/model.ts similarity index 94% rename from apps/web/src/schema/monitoring/alert/model.ts rename to apps/web/src/api-clients/monitoring/alert/schema/model.ts index 119fad4a5e..3a27286e61 100644 --- a/apps/web/src/schema/monitoring/alert/model.ts +++ b/apps/web/src/api-clients/monitoring/alert/schema/model.ts @@ -1,6 +1,6 @@ import type { AlertResource, AlertSeverity, AlertState, AlertUrgency, -} from '@/schema/monitoring/alert/type'; +} from '@/api-clients/monitoring/alert/schema/type'; export interface AlertModelV1 { alert_number: number; diff --git a/apps/web/src/schema/monitoring/alert/type.ts b/apps/web/src/api-clients/monitoring/alert/schema/type.ts similarity index 78% rename from apps/web/src/schema/monitoring/alert/type.ts rename to apps/web/src/api-clients/monitoring/alert/schema/type.ts index 9b418dcac5..2221384c81 100644 --- a/apps/web/src/schema/monitoring/alert/type.ts +++ b/apps/web/src/api-clients/monitoring/alert/schema/type.ts @@ -1,4 +1,4 @@ -import type { ALERT_STATE, ALERT_URGENCY } from '@/schema/monitoring/alert/constants'; +import type { ALERT_STATE, ALERT_URGENCY } from '@/api-clients/monitoring/alert/schema/constants'; export interface AlertResource { resource_id?: string; diff --git a/apps/web/src/api-clients/monitoring/data-source/composables/use-monitoring-data-source-api.ts b/apps/web/src/api-clients/monitoring/data-source/composables/use-monitoring-data-source-api.ts new file mode 100644 index 0000000000..babb9c52b1 --- /dev/null +++ b/apps/web/src/api-clients/monitoring/data-source/composables/use-monitoring-data-source-api.ts @@ -0,0 +1,17 @@ +import { SpaceConnector } from '@cloudforet/core-lib/space-connector'; + +import type { ListResponse } from '@/api-clients/_common/schema/api-verbs/list'; +import type { DataSourceGetParameters } from '@/api-clients/monitoring/data-source/schema/api-verbs/get'; +import type { DataSourceListParameters } from '@/api-clients/monitoring/data-source/schema/api-verbs/list'; +import type { DataSourceModel } from '@/api-clients/monitoring/data-source/schema/model'; + + +export const useMonitoringDataSourceApi = () => { + const actions = { + get: SpaceConnector.clientV2.monitoring.dataSource.get, + list: SpaceConnector.clientV2.monitoring.dataSource.list>, + }; + return { + dataSourceAPI: actions, + }; +}; diff --git a/apps/web/src/api-clients/monitoring/data-source/schema/api-verbs/get.ts b/apps/web/src/api-clients/monitoring/data-source/schema/api-verbs/get.ts new file mode 100644 index 0000000000..640818f155 --- /dev/null +++ b/apps/web/src/api-clients/monitoring/data-source/schema/api-verbs/get.ts @@ -0,0 +1,3 @@ +export interface DataSourceGetParameters { + data_source_id: string; +} diff --git a/apps/web/src/schema/monitoring/data-source/api-verbs/list.ts b/apps/web/src/api-clients/monitoring/data-source/schema/api-verbs/list.ts similarity index 77% rename from apps/web/src/schema/monitoring/data-source/api-verbs/list.ts rename to apps/web/src/api-clients/monitoring/data-source/schema/api-verbs/list.ts index 3e8741fd6f..3bc34588be 100644 --- a/apps/web/src/schema/monitoring/data-source/api-verbs/list.ts +++ b/apps/web/src/api-clients/monitoring/data-source/schema/api-verbs/list.ts @@ -1,6 +1,6 @@ import type { Query } from '@cloudforet/core-lib/space-connector/type'; -import type { MonitoringType } from '@/schema/monitoring/data-source/type'; +import type { MonitoringType } from '@/api-clients/monitoring/data-source/schema/type'; export interface DataSourceListParameters { query?: Query; diff --git a/apps/web/src/schema/monitoring/data-source/constant.ts b/apps/web/src/api-clients/monitoring/data-source/schema/constants.ts similarity index 100% rename from apps/web/src/schema/monitoring/data-source/constant.ts rename to apps/web/src/api-clients/monitoring/data-source/schema/constants.ts diff --git a/apps/web/src/schema/monitoring/data-source/model.ts b/apps/web/src/api-clients/monitoring/data-source/schema/model.ts similarity index 92% rename from apps/web/src/schema/monitoring/data-source/model.ts rename to apps/web/src/api-clients/monitoring/data-source/schema/model.ts index 0630522018..3b4f439159 100644 --- a/apps/web/src/schema/monitoring/data-source/model.ts +++ b/apps/web/src/api-clients/monitoring/data-source/schema/model.ts @@ -1,7 +1,7 @@ import type { DynamicLayout } from '@cloudforet/mirinae/types/data-display/dynamic/dynamic-layout/type/layout-schema'; import type { Tags } from '@/api-clients/_common/schema/model'; -import type { MonitoringType } from '@/schema/monitoring/data-source/type'; +import type { MonitoringType } from '@/api-clients/monitoring/data-source/schema/type'; interface DataSourcePluginModel { diff --git a/apps/web/src/api-clients/monitoring/data-source/schema/type.ts b/apps/web/src/api-clients/monitoring/data-source/schema/type.ts new file mode 100644 index 0000000000..aa1b8310ff --- /dev/null +++ b/apps/web/src/api-clients/monitoring/data-source/schema/type.ts @@ -0,0 +1,3 @@ +import type { MONITORING_TYPE } from '@/api-clients/monitoring/data-source/schema/constants'; + +export type MonitoringType = typeof MONITORING_TYPE[keyof typeof MONITORING_TYPE]; diff --git a/apps/web/src/api-clients/monitoring/escalation-policy/composables/use-escalation-policy-api.ts b/apps/web/src/api-clients/monitoring/escalation-policy/composables/use-escalation-policy-api.ts new file mode 100644 index 0000000000..034ef70877 --- /dev/null +++ b/apps/web/src/api-clients/monitoring/escalation-policy/composables/use-escalation-policy-api.ts @@ -0,0 +1,24 @@ +import { SpaceConnector } from '@cloudforet/core-lib/space-connector'; + +import type { ListResponse } from '@/api-clients/_common/schema/api-verbs/list'; +import type { EscalationPolicyCreateParameters } from '@/api-clients/monitoring/escalation-policy/schema/api-verbs/create'; +import type { EscalationPolicyDeleteParameters } from '@/api-clients/monitoring/escalation-policy/schema/api-verbs/delete'; +import type { EscalationPolicyGetParameters } from '@/api-clients/monitoring/escalation-policy/schema/api-verbs/get'; +import type { EscalationPolicyListParameters } from '@/api-clients/monitoring/escalation-policy/schema/api-verbs/list'; +import type { EscalationPolicySetDefaultParameters } from '@/api-clients/monitoring/escalation-policy/schema/api-verbs/set-default'; +import type { EscalationPolicyUpdateParameters } from '@/api-clients/monitoring/escalation-policy/schema/api-verbs/update'; +import type { EscalationPolicyModel } from '@/api-clients/monitoring/escalation-policy/schema/model'; + +export const useEscalationPolicyApi = () => { + const actions = { + create: SpaceConnector.clientV2.monitoring.escalationPolicy.create, + delete: SpaceConnector.clientV2.monitoring.escalationPolicy.delete, + get: SpaceConnector.clientV2.monitoring.escalationPolicy.get, + list: SpaceConnector.clientV2.monitoring.escalationPolicy.list>, + setDefault: SpaceConnector.clientV2.monitoring.escalationPolicy.setDefault, + update: SpaceConnector.clientV2.monitoring.escalationPolicy.update, + }; + return { + escalationPolicyAPI: actions, + }; +}; diff --git a/apps/web/src/schema/monitoring/escalation-policy/api-verbs/create.ts b/apps/web/src/api-clients/monitoring/escalation-policy/schema/api-verbs/create.ts similarity index 66% rename from apps/web/src/schema/monitoring/escalation-policy/api-verbs/create.ts rename to apps/web/src/api-clients/monitoring/escalation-policy/schema/api-verbs/create.ts index e06869f302..c8125fd92b 100644 --- a/apps/web/src/schema/monitoring/escalation-policy/api-verbs/create.ts +++ b/apps/web/src/api-clients/monitoring/escalation-policy/schema/api-verbs/create.ts @@ -1,5 +1,5 @@ -import type { EscalationPolicyModel } from '@/schema/monitoring/escalation-policy/model'; -import type { EscalationPolicyRule, EscalationPolicyFinishCondition } from '@/schema/monitoring/escalation-policy/type'; +import type { EscalationPolicyModel } from '@/api-clients/monitoring/escalation-policy/schema/model'; +import type { EscalationPolicyRule, EscalationPolicyFinishCondition } from '@/api-clients/monitoring/escalation-policy/schema/type'; export interface EscalationPolicyCreateParameters { name: string; diff --git a/apps/web/src/schema/monitoring/escalation-policy/api-verbs/delete.ts b/apps/web/src/api-clients/monitoring/escalation-policy/schema/api-verbs/delete.ts similarity index 100% rename from apps/web/src/schema/monitoring/escalation-policy/api-verbs/delete.ts rename to apps/web/src/api-clients/monitoring/escalation-policy/schema/api-verbs/delete.ts diff --git a/apps/web/src/schema/monitoring/escalation-policy/api-verbs/get.ts b/apps/web/src/api-clients/monitoring/escalation-policy/schema/api-verbs/get.ts similarity index 100% rename from apps/web/src/schema/monitoring/escalation-policy/api-verbs/get.ts rename to apps/web/src/api-clients/monitoring/escalation-policy/schema/api-verbs/get.ts diff --git a/apps/web/src/schema/monitoring/escalation-policy/api-verbs/list.ts b/apps/web/src/api-clients/monitoring/escalation-policy/schema/api-verbs/list.ts similarity index 71% rename from apps/web/src/schema/monitoring/escalation-policy/api-verbs/list.ts rename to apps/web/src/api-clients/monitoring/escalation-policy/schema/api-verbs/list.ts index bb90d61493..8a99216225 100644 --- a/apps/web/src/schema/monitoring/escalation-policy/api-verbs/list.ts +++ b/apps/web/src/api-clients/monitoring/escalation-policy/schema/api-verbs/list.ts @@ -1,8 +1,8 @@ import type { Query } from '@cloudforet/core-lib/space-connector/type'; import type { ListResponse } from '@/api-clients/_common/schema/api-verbs/list'; -import type { EscalationPolicyModel } from '@/schema/monitoring/escalation-policy/model'; -import type { EscalationPolicyFinishCondition } from '@/schema/monitoring/escalation-policy/type'; +import type { EscalationPolicyModel } from '@/api-clients/monitoring/escalation-policy/schema/model'; +import type { EscalationPolicyFinishCondition } from '@/api-clients/monitoring/escalation-policy/schema/type'; export interface EscalationPolicyListParameters { query?: Query; diff --git a/apps/web/src/schema/monitoring/escalation-policy/api-verbs/set-default.ts b/apps/web/src/api-clients/monitoring/escalation-policy/schema/api-verbs/set-default.ts similarity index 100% rename from apps/web/src/schema/monitoring/escalation-policy/api-verbs/set-default.ts rename to apps/web/src/api-clients/monitoring/escalation-policy/schema/api-verbs/set-default.ts diff --git a/apps/web/src/schema/monitoring/escalation-policy/api-verbs/update.ts b/apps/web/src/api-clients/monitoring/escalation-policy/schema/api-verbs/update.ts similarity index 84% rename from apps/web/src/schema/monitoring/escalation-policy/api-verbs/update.ts rename to apps/web/src/api-clients/monitoring/escalation-policy/schema/api-verbs/update.ts index a8a7d0c8a4..aa397f735a 100644 --- a/apps/web/src/schema/monitoring/escalation-policy/api-verbs/update.ts +++ b/apps/web/src/api-clients/monitoring/escalation-policy/schema/api-verbs/update.ts @@ -1,5 +1,5 @@ import type { Tags } from '@/api-clients/_common/schema/model'; -import type { EscalationPolicyRule, EscalationPolicyFinishCondition } from '@/schema/monitoring/escalation-policy/type'; +import type { EscalationPolicyRule, EscalationPolicyFinishCondition } from '@/api-clients/monitoring/escalation-policy/schema/type'; export interface EscalationPolicyUpdateParameters { escalation_policy_id: string; diff --git a/apps/web/src/schema/monitoring/escalation-policy/constant.ts b/apps/web/src/api-clients/monitoring/escalation-policy/schema/constants.ts similarity index 100% rename from apps/web/src/schema/monitoring/escalation-policy/constant.ts rename to apps/web/src/api-clients/monitoring/escalation-policy/schema/constants.ts diff --git a/apps/web/src/schema/monitoring/escalation-policy/model.ts b/apps/web/src/api-clients/monitoring/escalation-policy/schema/model.ts similarity index 90% rename from apps/web/src/schema/monitoring/escalation-policy/model.ts rename to apps/web/src/api-clients/monitoring/escalation-policy/schema/model.ts index 7f19cc1290..8e9b9208bf 100644 --- a/apps/web/src/schema/monitoring/escalation-policy/model.ts +++ b/apps/web/src/api-clients/monitoring/escalation-policy/schema/model.ts @@ -1,6 +1,6 @@ import type { Tags } from '@/api-clients/_common/schema/model'; import type { ResourceGroupType } from '@/api-clients/_common/schema/type'; -import type { EscalationPolicyRule, EscalationPolicyFinishCondition } from '@/schema/monitoring/escalation-policy/type'; +import type { EscalationPolicyRule, EscalationPolicyFinishCondition } from '@/api-clients/monitoring/escalation-policy/schema/type'; export interface EscalationPolicyModel { escalation_policy_id: string; diff --git a/apps/web/src/schema/monitoring/escalation-policy/type.ts b/apps/web/src/api-clients/monitoring/escalation-policy/schema/type.ts similarity index 69% rename from apps/web/src/schema/monitoring/escalation-policy/type.ts rename to apps/web/src/api-clients/monitoring/escalation-policy/schema/type.ts index 1f876abf81..b39c939b14 100644 --- a/apps/web/src/schema/monitoring/escalation-policy/type.ts +++ b/apps/web/src/api-clients/monitoring/escalation-policy/schema/type.ts @@ -1,4 +1,4 @@ -import type { ESCALATION_POLICY_FINISH_CONDITION } from '@/schema/monitoring/escalation-policy/constant'; +import type { ESCALATION_POLICY_FINISH_CONDITION } from '@/api-clients/alert-manager/escalation-policy/schema/constants'; export interface EscalationPolicyRule { notification_level: 'ALL'|'LV1'|'LV2'|'LV3'|'LV4'|'LV5'; diff --git a/apps/web/src/schema/monitoring/event-rule/api-verbs/change-order.ts b/apps/web/src/api-clients/monitoring/event-rule/schema/api-verbs/change-order.ts similarity index 100% rename from apps/web/src/schema/monitoring/event-rule/api-verbs/change-order.ts rename to apps/web/src/api-clients/monitoring/event-rule/schema/api-verbs/change-order.ts diff --git a/apps/web/src/schema/monitoring/event-rule/api-verbs/create.ts b/apps/web/src/api-clients/monitoring/event-rule/schema/api-verbs/create.ts similarity index 76% rename from apps/web/src/schema/monitoring/event-rule/api-verbs/create.ts rename to apps/web/src/api-clients/monitoring/event-rule/schema/api-verbs/create.ts index e977caefd1..4048d0be22 100644 --- a/apps/web/src/schema/monitoring/event-rule/api-verbs/create.ts +++ b/apps/web/src/api-clients/monitoring/event-rule/schema/api-verbs/create.ts @@ -1,9 +1,9 @@ import type { Tags } from '@/api-clients/_common/schema/model'; -import type { EventRuleModel } from '@/schema/monitoring/event-rule/model'; +import type { EventRuleModel } from '@/api-clients/monitoring/event-rule/schema/model'; import type { EventRuleActions, EventRuleCondition, EventRuleConditionsPolicy, EventRuleOptions, -} from '@/schema/monitoring/event-rule/type'; +} from '@/api-clients/monitoring/event-rule/schema/type'; export interface EventRuleCreateParameters { conditions: EventRuleCondition[]; diff --git a/apps/web/src/schema/monitoring/event-rule/api-verbs/delete.ts b/apps/web/src/api-clients/monitoring/event-rule/schema/api-verbs/delete.ts similarity index 100% rename from apps/web/src/schema/monitoring/event-rule/api-verbs/delete.ts rename to apps/web/src/api-clients/monitoring/event-rule/schema/api-verbs/delete.ts diff --git a/apps/web/src/schema/monitoring/event-rule/api-verbs/get.ts b/apps/web/src/api-clients/monitoring/event-rule/schema/api-verbs/get.ts similarity index 100% rename from apps/web/src/schema/monitoring/event-rule/api-verbs/get.ts rename to apps/web/src/api-clients/monitoring/event-rule/schema/api-verbs/get.ts diff --git a/apps/web/src/schema/monitoring/event-rule/api-verbs/list.ts b/apps/web/src/api-clients/monitoring/event-rule/schema/api-verbs/list.ts similarity index 76% rename from apps/web/src/schema/monitoring/event-rule/api-verbs/list.ts rename to apps/web/src/api-clients/monitoring/event-rule/schema/api-verbs/list.ts index 23a091ae08..cfbbba44e0 100644 --- a/apps/web/src/schema/monitoring/event-rule/api-verbs/list.ts +++ b/apps/web/src/api-clients/monitoring/event-rule/schema/api-verbs/list.ts @@ -1,6 +1,6 @@ import type { Query } from '@cloudforet/core-lib/space-connector/type'; -import type { EventRuleModel } from '@/schema/monitoring/event-rule/model'; +import type { EventRuleModel } from '@/api-clients/monitoring/event-rule/schema/model'; export interface EventRuleListParameters { event_rule_id?: string; diff --git a/apps/web/src/schema/monitoring/event-rule/api-verbs/update.ts b/apps/web/src/api-clients/monitoring/event-rule/schema/api-verbs/update.ts similarity index 88% rename from apps/web/src/schema/monitoring/event-rule/api-verbs/update.ts rename to apps/web/src/api-clients/monitoring/event-rule/schema/api-verbs/update.ts index 5a09d6e157..92c72f2b59 100644 --- a/apps/web/src/schema/monitoring/event-rule/api-verbs/update.ts +++ b/apps/web/src/api-clients/monitoring/event-rule/schema/api-verbs/update.ts @@ -2,7 +2,7 @@ import type { Tags } from '@/api-clients/_common/schema/model'; import type { EventRuleActions, EventRuleCondition, EventRuleConditionsPolicy, EventRuleOptions, -} from '@/schema/monitoring/event-rule/type'; +} from '@/api-clients/monitoring/event-rule/schema/type'; export interface EventRuleUpdateParameters { event_rule_id: string; diff --git a/apps/web/src/schema/monitoring/event-rule/model.ts b/apps/web/src/api-clients/monitoring/event-rule/schema/model.ts similarity index 92% rename from apps/web/src/schema/monitoring/event-rule/model.ts rename to apps/web/src/api-clients/monitoring/event-rule/schema/model.ts index 4df071cbc8..bae0ab87cf 100644 --- a/apps/web/src/schema/monitoring/event-rule/model.ts +++ b/apps/web/src/api-clients/monitoring/event-rule/schema/model.ts @@ -2,7 +2,7 @@ import type { Tags } from '@/api-clients/_common/schema/model'; import type { ResourceGroupType } from '@/api-clients/_common/schema/type'; import type { EventRuleCondition, EventRuleActions, EventRuleConditionsPolicy, EventRuleOptions, -} from '@/schema/monitoring/event-rule/type'; +} from '@/api-clients/monitoring/event-rule/schema/type'; export interface EventRuleModel { event_rule_id: string; diff --git a/apps/web/src/schema/monitoring/event-rule/type.ts b/apps/web/src/api-clients/monitoring/event-rule/schema/type.ts similarity index 91% rename from apps/web/src/schema/monitoring/event-rule/type.ts rename to apps/web/src/api-clients/monitoring/event-rule/schema/type.ts index e00f6698f5..6fe178b24c 100644 --- a/apps/web/src/schema/monitoring/event-rule/type.ts +++ b/apps/web/src/api-clients/monitoring/event-rule/schema/type.ts @@ -1,4 +1,4 @@ -import type { AlertUrgency } from '@/schema/monitoring/alert/type'; +import type { AlertUrgency } from '@/api-clients/monitoring/alert/schema/type'; export type EventRuleConditionKey = |'title' diff --git a/apps/web/src/schema/monitoring/event/api-verbs/list.ts b/apps/web/src/api-clients/monitoring/event/schema/api-verbs/list.ts similarity index 83% rename from apps/web/src/schema/monitoring/event/api-verbs/list.ts rename to apps/web/src/api-clients/monitoring/event/schema/api-verbs/list.ts index 38f734d4c8..871c991329 100644 --- a/apps/web/src/schema/monitoring/event/api-verbs/list.ts +++ b/apps/web/src/api-clients/monitoring/event/schema/api-verbs/list.ts @@ -1,6 +1,6 @@ import type { Query } from '@cloudforet/core-lib/space-connector/type'; -import type { AlertSeverity } from '@/schema/monitoring/alert/type'; +import type { AlertSeverity } from '@/api-clients/monitoring/alert/schema/type'; export interface EventListParameters { event_id?: string; diff --git a/apps/web/src/schema/monitoring/event/model.ts b/apps/web/src/api-clients/monitoring/event/schema/model.ts similarity index 75% rename from apps/web/src/schema/monitoring/event/model.ts rename to apps/web/src/api-clients/monitoring/event/schema/model.ts index a864aa9829..2db91c0ef5 100644 --- a/apps/web/src/schema/monitoring/event/model.ts +++ b/apps/web/src/api-clients/monitoring/event/schema/model.ts @@ -1,5 +1,5 @@ -import type { AlertSeverity, AlertResource } from '@/schema/monitoring/alert/type'; -import type { EventType } from '@/schema/monitoring/event/type'; +import type { AlertSeverity, AlertResource } from '@/api-clients/monitoring/alert/schema/type'; +import type { EventType } from '@/api-clients/monitoring/event/schema/type'; export interface EventModel { event_id: string; diff --git a/apps/web/src/schema/monitoring/event/type.ts b/apps/web/src/api-clients/monitoring/event/schema/type.ts similarity index 100% rename from apps/web/src/schema/monitoring/event/type.ts rename to apps/web/src/api-clients/monitoring/event/schema/type.ts diff --git a/apps/web/src/api-clients/monitoring/log/composables/use-log-api.ts b/apps/web/src/api-clients/monitoring/log/composables/use-log-api.ts new file mode 100644 index 0000000000..7b33402cce --- /dev/null +++ b/apps/web/src/api-clients/monitoring/log/composables/use-log-api.ts @@ -0,0 +1,16 @@ +import { SpaceConnector } from '@cloudforet/core-lib/space-connector'; + +import type { ListResponse } from '@/api-clients/_common/schema/api-verbs/list'; +import type { MonitoringLogListParameters } from '@/api-clients/monitoring/log/schema/api-verbs/list'; +import type { LogModel } from '@/api-clients/monitoring/log/schema/model'; + + + +export const useLogApi = () => { + const actions = { + list: SpaceConnector.clientV2.monitoring.log.list>, + }; + return { + logAPI: actions, + }; +}; diff --git a/apps/web/src/schema/monitoring/log/api-verbs/list.ts b/apps/web/src/api-clients/monitoring/log/schema/api-verbs/list.ts similarity index 100% rename from apps/web/src/schema/monitoring/log/api-verbs/list.ts rename to apps/web/src/api-clients/monitoring/log/schema/api-verbs/list.ts diff --git a/apps/web/src/schema/monitoring/log/model.ts b/apps/web/src/api-clients/monitoring/log/schema/model.ts similarity index 65% rename from apps/web/src/schema/monitoring/log/model.ts rename to apps/web/src/api-clients/monitoring/log/schema/model.ts index 9cdccf78ed..ab47a4b700 100644 --- a/apps/web/src/schema/monitoring/log/model.ts +++ b/apps/web/src/api-clients/monitoring/log/schema/model.ts @@ -1,4 +1,4 @@ -export interface LogDataModel { +export interface LogModel { results: Record[]; domain_id: string; } diff --git a/apps/web/src/api-clients/monitoring/metric/composables/use-monitoring-metric-api.ts b/apps/web/src/api-clients/monitoring/metric/composables/use-monitoring-metric-api.ts new file mode 100644 index 0000000000..c99dff3433 --- /dev/null +++ b/apps/web/src/api-clients/monitoring/metric/composables/use-monitoring-metric-api.ts @@ -0,0 +1,16 @@ +import { SpaceConnector } from '@cloudforet/core-lib/space-connector'; + +import type { MonitoringMetricGetDataParameters } from '@/api-clients/monitoring/metric/schema/api-verbs/get-data'; +import type { MonitoringMetricListParameters } from '@/api-clients/monitoring/metric/schema/api-verbs/list'; +import type { MonitoringMetricListModel, MonitoringMetricGetDataModel } from '@/api-clients/monitoring/metric/schema/model'; + +export const useMonitoringMetricApi = () => { + const actions = { + list: SpaceConnector.client.monitoring.metric.list, + getData: SpaceConnector.client.monitoring.metric.getData, + }; + + return { + monitoringMetricAPI: actions, + }; +}; diff --git a/apps/web/src/api-clients/monitoring/metric/schema/api-verbs/get-data.ts b/apps/web/src/api-clients/monitoring/metric/schema/api-verbs/get-data.ts new file mode 100644 index 0000000000..4cd5a9f835 --- /dev/null +++ b/apps/web/src/api-clients/monitoring/metric/schema/api-verbs/get-data.ts @@ -0,0 +1,9 @@ +export interface MonitoringMetricGetDataParameters { + data_source_id: string; + metric_query: Record; + metric: string; // metric key + start: string; + end: string; + period?: number; + stat?: 'AVERAGE' | 'MINIMUM' | 'MAXIMUM'; +} diff --git a/apps/web/src/api-clients/monitoring/metric/schema/api-verbs/list.ts b/apps/web/src/api-clients/monitoring/metric/schema/api-verbs/list.ts new file mode 100644 index 0000000000..7c8dfb138f --- /dev/null +++ b/apps/web/src/api-clients/monitoring/metric/schema/api-verbs/list.ts @@ -0,0 +1,4 @@ +export interface MonitoringMetricListParameters { + data_source_id: string; + resources: string[]; +} diff --git a/apps/web/src/api-clients/monitoring/metric/schema/model.ts b/apps/web/src/api-clients/monitoring/metric/schema/model.ts new file mode 100644 index 0000000000..ca32a34d9d --- /dev/null +++ b/apps/web/src/api-clients/monitoring/metric/schema/model.ts @@ -0,0 +1,17 @@ +export interface MonitoringMetricModel { + key: string; + name: string; + group?: string; + unit?: string; + metric_query?: Record; +} + +export interface MonitoringMetricListModel { + metrics: MonitoringMetricModel[]; + available_resources: Record; +} + +export interface MonitoringMetricGetDataModel { + labels: string[]; + values: Record; +} diff --git a/apps/web/src/schema/monitoring/note/api-verbs/create.ts b/apps/web/src/api-clients/monitoring/note/schema/api-verbs/create.ts similarity index 100% rename from apps/web/src/schema/monitoring/note/api-verbs/create.ts rename to apps/web/src/api-clients/monitoring/note/schema/api-verbs/create.ts diff --git a/apps/web/src/schema/monitoring/note/api-verbs/delete.ts b/apps/web/src/api-clients/monitoring/note/schema/api-verbs/delete.ts similarity index 100% rename from apps/web/src/schema/monitoring/note/api-verbs/delete.ts rename to apps/web/src/api-clients/monitoring/note/schema/api-verbs/delete.ts diff --git a/apps/web/src/schema/monitoring/note/api-verbs/get.ts b/apps/web/src/api-clients/monitoring/note/schema/api-verbs/get.ts similarity index 100% rename from apps/web/src/schema/monitoring/note/api-verbs/get.ts rename to apps/web/src/api-clients/monitoring/note/schema/api-verbs/get.ts diff --git a/apps/web/src/schema/monitoring/note/api-verbs/list.ts b/apps/web/src/api-clients/monitoring/note/schema/api-verbs/list.ts similarity index 100% rename from apps/web/src/schema/monitoring/note/api-verbs/list.ts rename to apps/web/src/api-clients/monitoring/note/schema/api-verbs/list.ts diff --git a/apps/web/src/schema/monitoring/note/api-verbs/update.ts b/apps/web/src/api-clients/monitoring/note/schema/api-verbs/update.ts similarity index 100% rename from apps/web/src/schema/monitoring/note/api-verbs/update.ts rename to apps/web/src/api-clients/monitoring/note/schema/api-verbs/update.ts diff --git a/apps/web/src/schema/monitoring/note/model.ts b/apps/web/src/api-clients/monitoring/note/schema/model.ts similarity index 100% rename from apps/web/src/schema/monitoring/note/model.ts rename to apps/web/src/api-clients/monitoring/note/schema/model.ts diff --git a/apps/web/src/schema/monitoring/project-alert-config/api-verbs/create.ts b/apps/web/src/api-clients/monitoring/project-alert-config/schema/api-verbs/create.ts similarity index 59% rename from apps/web/src/schema/monitoring/project-alert-config/api-verbs/create.ts rename to apps/web/src/api-clients/monitoring/project-alert-config/schema/api-verbs/create.ts index bb653bf9ea..57a2adb6a5 100644 --- a/apps/web/src/schema/monitoring/project-alert-config/api-verbs/create.ts +++ b/apps/web/src/api-clients/monitoring/project-alert-config/schema/api-verbs/create.ts @@ -1,4 +1,4 @@ -import type { ProjectAlertConfigOptions } from '@/schema/monitoring/project-alert-config/type'; +import type { ProjectAlertConfigOptions } from '@/api-clients/monitoring/project-alert-config/schema/type'; export interface ProjectAlertConfigCreateParameters { project_id: string; diff --git a/apps/web/src/schema/monitoring/project-alert-config/api-verbs/delete.ts b/apps/web/src/api-clients/monitoring/project-alert-config/schema/api-verbs/delete.ts similarity index 100% rename from apps/web/src/schema/monitoring/project-alert-config/api-verbs/delete.ts rename to apps/web/src/api-clients/monitoring/project-alert-config/schema/api-verbs/delete.ts diff --git a/apps/web/src/schema/monitoring/project-alert-config/api-verbs/get.ts b/apps/web/src/api-clients/monitoring/project-alert-config/schema/api-verbs/get.ts similarity index 100% rename from apps/web/src/schema/monitoring/project-alert-config/api-verbs/get.ts rename to apps/web/src/api-clients/monitoring/project-alert-config/schema/api-verbs/get.ts diff --git a/apps/web/src/schema/monitoring/project-alert-config/api-verbs/list.ts b/apps/web/src/api-clients/monitoring/project-alert-config/schema/api-verbs/list.ts similarity index 100% rename from apps/web/src/schema/monitoring/project-alert-config/api-verbs/list.ts rename to apps/web/src/api-clients/monitoring/project-alert-config/schema/api-verbs/list.ts diff --git a/apps/web/src/schema/monitoring/project-alert-config/api-verbs/update.ts b/apps/web/src/api-clients/monitoring/project-alert-config/schema/api-verbs/update.ts similarity index 60% rename from apps/web/src/schema/monitoring/project-alert-config/api-verbs/update.ts rename to apps/web/src/api-clients/monitoring/project-alert-config/schema/api-verbs/update.ts index e837f41895..2c491240b0 100644 --- a/apps/web/src/schema/monitoring/project-alert-config/api-verbs/update.ts +++ b/apps/web/src/api-clients/monitoring/project-alert-config/schema/api-verbs/update.ts @@ -1,4 +1,4 @@ -import type { ProjectAlertConfigOptions } from '@/schema/monitoring/project-alert-config/type'; +import type { ProjectAlertConfigOptions } from '@/api-clients/monitoring/project-alert-config/schema/type'; export interface ProjectAlertConfigUpdateParameters { project_id: string; diff --git a/apps/web/src/schema/monitoring/project-alert-config/model.ts b/apps/web/src/api-clients/monitoring/project-alert-config/schema/model.ts similarity index 68% rename from apps/web/src/schema/monitoring/project-alert-config/model.ts rename to apps/web/src/api-clients/monitoring/project-alert-config/schema/model.ts index b27aca1831..7d6a859bbf 100644 --- a/apps/web/src/schema/monitoring/project-alert-config/model.ts +++ b/apps/web/src/api-clients/monitoring/project-alert-config/schema/model.ts @@ -1,4 +1,4 @@ -import type { ProjectAlertConfigOptions } from '@/schema/monitoring/project-alert-config/type'; +import type { ProjectAlertConfigOptions } from '@/api-clients/monitoring/project-alert-config/schema/type'; export interface ProjectAlertConfigModel { project_id: string; diff --git a/apps/web/src/schema/monitoring/project-alert-config/type.ts b/apps/web/src/api-clients/monitoring/project-alert-config/schema/type.ts similarity index 100% rename from apps/web/src/schema/monitoring/project-alert-config/type.ts rename to apps/web/src/api-clients/monitoring/project-alert-config/schema/type.ts diff --git a/apps/web/src/api-clients/monitoring/webhook/composables/use-webhook-api.ts b/apps/web/src/api-clients/monitoring/webhook/composables/use-webhook-api.ts new file mode 100644 index 0000000000..917ef0ee9f --- /dev/null +++ b/apps/web/src/api-clients/monitoring/webhook/composables/use-webhook-api.ts @@ -0,0 +1,30 @@ +import { SpaceConnector } from '@cloudforet/core-lib/space-connector'; + +import type { ListResponse } from '@/api-clients/_common/schema/api-verbs/list'; +import type { WebhookCreateParameters } from '@/api-clients/monitoring/webhook/schema/api-verbs/create'; +import type { WebhookDeleteParameters } from '@/api-clients/monitoring/webhook/schema/api-verbs/delete'; +import type { WebhookDisableParameters } from '@/api-clients/monitoring/webhook/schema/api-verbs/disable'; +import type { WebhookEnableParameters } from '@/api-clients/monitoring/webhook/schema/api-verbs/enable'; +import type { WebhookGetParameters } from '@/api-clients/monitoring/webhook/schema/api-verbs/get'; +import type { WebhookListParameters } from '@/api-clients/monitoring/webhook/schema/api-verbs/list'; +import type { WebhookUpdateParameters } from '@/api-clients/monitoring/webhook/schema/api-verbs/update'; +import type { WebhookUpdatePluginParameters } from '@/api-clients/monitoring/webhook/schema/api-verbs/update-plugin'; +import type { WebhookVerifyPluginParameters } from '@/api-clients/monitoring/webhook/schema/api-verbs/verify-plugin'; +import type { WebhookModel } from '@/api-clients/monitoring/webhook/schema/model'; + +export const useWebhookApi = () => { + const actions = { + create: SpaceConnector.clientV2.monitoring.webhook.create, + delete: SpaceConnector.clientV2.monitoring.webhook.delete, + disable: SpaceConnector.clientV2.monitoring.webhook.disable, + enable: SpaceConnector.clientV2.monitoring.webhook.enable, + get: SpaceConnector.clientV2.monitoring.webhook.get, + list: SpaceConnector.clientV2.monitoring.webhook.list>, + update: SpaceConnector.clientV2.monitoring.webhook.update, + updatePlugin: SpaceConnector.clientV2.monitoring.webhook.updatePlugin, + verifyPlugin: SpaceConnector.clientV2.monitoring.webhook.verifyPlugin, + }; + return { + webhookAPI: actions, + }; +}; diff --git a/apps/web/src/schema/monitoring/webhook/api-verbs/create.ts b/apps/web/src/api-clients/monitoring/webhook/schema/api-verbs/create.ts similarity index 70% rename from apps/web/src/schema/monitoring/webhook/api-verbs/create.ts rename to apps/web/src/api-clients/monitoring/webhook/schema/api-verbs/create.ts index 13f3deaaff..22b50c5670 100644 --- a/apps/web/src/schema/monitoring/webhook/api-verbs/create.ts +++ b/apps/web/src/api-clients/monitoring/webhook/schema/api-verbs/create.ts @@ -1,5 +1,5 @@ import type { Tags } from '@/api-clients/_common/schema/model'; -import type { WebhookPluginInfo } from '@/schema/monitoring/webhook/type'; +import type { WebhookPluginInfo } from '@/api-clients/monitoring/webhook/schema/type'; export interface WebhookCreateParameters { name: string; diff --git a/apps/web/src/schema/monitoring/webhook/api-verbs/delete.ts b/apps/web/src/api-clients/monitoring/webhook/schema/api-verbs/delete.ts similarity index 100% rename from apps/web/src/schema/monitoring/webhook/api-verbs/delete.ts rename to apps/web/src/api-clients/monitoring/webhook/schema/api-verbs/delete.ts diff --git a/apps/web/src/schema/monitoring/webhook/api-verbs/disable.ts b/apps/web/src/api-clients/monitoring/webhook/schema/api-verbs/disable.ts similarity index 100% rename from apps/web/src/schema/monitoring/webhook/api-verbs/disable.ts rename to apps/web/src/api-clients/monitoring/webhook/schema/api-verbs/disable.ts diff --git a/apps/web/src/schema/monitoring/webhook/api-verbs/enable.ts b/apps/web/src/api-clients/monitoring/webhook/schema/api-verbs/enable.ts similarity index 100% rename from apps/web/src/schema/monitoring/webhook/api-verbs/enable.ts rename to apps/web/src/api-clients/monitoring/webhook/schema/api-verbs/enable.ts diff --git a/apps/web/src/schema/monitoring/webhook/api-verbs/get.ts b/apps/web/src/api-clients/monitoring/webhook/schema/api-verbs/get.ts similarity index 100% rename from apps/web/src/schema/monitoring/webhook/api-verbs/get.ts rename to apps/web/src/api-clients/monitoring/webhook/schema/api-verbs/get.ts diff --git a/apps/web/src/schema/monitoring/webhook/api-verbs/list.ts b/apps/web/src/api-clients/monitoring/webhook/schema/api-verbs/list.ts similarity index 77% rename from apps/web/src/schema/monitoring/webhook/api-verbs/list.ts rename to apps/web/src/api-clients/monitoring/webhook/schema/api-verbs/list.ts index 1b9a02878c..e2b5c3b359 100644 --- a/apps/web/src/schema/monitoring/webhook/api-verbs/list.ts +++ b/apps/web/src/api-clients/monitoring/webhook/schema/api-verbs/list.ts @@ -1,6 +1,6 @@ import type { Query } from '@cloudforet/core-lib/space-connector/type'; -import type { WebhookState } from '@/schema/monitoring/webhook/type'; +import type { WebhookState } from '@/api-clients/monitoring/webhook/schema/type'; export interface WebhookListParameters { webhook_id?: string; diff --git a/apps/web/src/schema/monitoring/webhook/api-verbs/update-plugin.ts b/apps/web/src/api-clients/monitoring/webhook/schema/api-verbs/update-plugin.ts similarity index 68% rename from apps/web/src/schema/monitoring/webhook/api-verbs/update-plugin.ts rename to apps/web/src/api-clients/monitoring/webhook/schema/api-verbs/update-plugin.ts index 22eb24630d..22d550d10a 100644 --- a/apps/web/src/schema/monitoring/webhook/api-verbs/update-plugin.ts +++ b/apps/web/src/api-clients/monitoring/webhook/schema/api-verbs/update-plugin.ts @@ -1,4 +1,4 @@ -import type { WebhookPluginInfo } from '@/schema/monitoring/webhook/type'; +import type { WebhookPluginInfo } from '@/api-clients/monitoring/webhook/schema/type'; export interface WebhookUpdatePluginParameters { webhook_id: string; diff --git a/apps/web/src/schema/monitoring/webhook/api-verbs/update.ts b/apps/web/src/api-clients/monitoring/webhook/schema/api-verbs/update.ts similarity index 100% rename from apps/web/src/schema/monitoring/webhook/api-verbs/update.ts rename to apps/web/src/api-clients/monitoring/webhook/schema/api-verbs/update.ts diff --git a/apps/web/src/schema/monitoring/webhook/api-verbs/verify-plugin.ts b/apps/web/src/api-clients/monitoring/webhook/schema/api-verbs/verify-plugin.ts similarity index 100% rename from apps/web/src/schema/monitoring/webhook/api-verbs/verify-plugin.ts rename to apps/web/src/api-clients/monitoring/webhook/schema/api-verbs/verify-plugin.ts diff --git a/apps/web/src/schema/monitoring/webhook/model.ts b/apps/web/src/api-clients/monitoring/webhook/schema/model.ts similarity index 83% rename from apps/web/src/schema/monitoring/webhook/model.ts rename to apps/web/src/api-clients/monitoring/webhook/schema/model.ts index e0b1484a94..af35cfc546 100644 --- a/apps/web/src/schema/monitoring/webhook/model.ts +++ b/apps/web/src/api-clients/monitoring/webhook/schema/model.ts @@ -1,5 +1,5 @@ import type { Tags } from '@/api-clients/_common/schema/model'; -import type { WebhookPluginInfo, WebhookState } from '@/schema/monitoring/webhook/type'; +import type { WebhookPluginInfo, WebhookState } from '@/api-clients/monitoring/webhook/schema/type'; type WebhookRequestsType = { total: number; diff --git a/apps/web/src/schema/monitoring/webhook/type.ts b/apps/web/src/api-clients/monitoring/webhook/schema/type.ts similarity index 100% rename from apps/web/src/schema/monitoring/webhook/type.ts rename to apps/web/src/api-clients/monitoring/webhook/schema/type.ts diff --git a/apps/web/src/api-clients/notification/notification/composables/use-notification-api.ts b/apps/web/src/api-clients/notification/notification/composables/use-notification-api.ts new file mode 100644 index 0000000000..bac29ce30d --- /dev/null +++ b/apps/web/src/api-clients/notification/notification/composables/use-notification-api.ts @@ -0,0 +1,25 @@ +import { SpaceConnector } from '@cloudforet/core-lib/space-connector'; + +import type { ListResponse } from '@/api-clients/_common/schema/api-verbs/list'; +import type { NotificationCreateParameters } from '@/api-clients/notification/notification/schema/api-verbs/create'; +import type { NotificationDeleteParameters } from '@/api-clients/notification/notification/schema/api-verbs/delete'; +import type { NotificationGetParameters } from '@/api-clients/notification/notification/schema/api-verbs/get'; +import type { NotificationListParameters } from '@/api-clients/notification/notification/schema/api-verbs/list'; +import type { NotificationPushParameters } from '@/api-clients/notification/notification/schema/api-verbs/push'; +import type { NotificationSetReadParameters } from '@/api-clients/notification/notification/schema/api-verbs/set-read'; +import type { NotificationModel } from '@/api-clients/notification/notification/schema/model'; + + +export const useNotificationApi = () => { + const actions = { + create: SpaceConnector.clientV2.notification.notification.create, + delete: SpaceConnector.clientV2.notification.notification.delete, + get: SpaceConnector.clientV2.notification.notification.get, + list: SpaceConnector.clientV2.notification.notification.list>, + push: SpaceConnector.clientV2.notification.notification.push, + setRead: SpaceConnector.clientV2.notification.notification.setRead, + }; + return { + notificationAPI: actions, + }; +}; diff --git a/apps/web/src/schema/notification/notification/api-verbs/create.ts b/apps/web/src/api-clients/notification/notification/schema/api-verbs/create.ts similarity index 86% rename from apps/web/src/schema/notification/notification/api-verbs/create.ts rename to apps/web/src/api-clients/notification/notification/schema/api-verbs/create.ts index fd4b453748..e35da71a32 100644 --- a/apps/web/src/schema/notification/notification/api-verbs/create.ts +++ b/apps/web/src/api-clients/notification/notification/schema/api-verbs/create.ts @@ -1,6 +1,6 @@ import type { NotificationLevel, NotificationMessage, NotificationResourceType, NotificationType, -} from '@/schema/notification/notification/type'; +} from '@/api-clients/notification/notification/schema/type'; export interface NotificationCreateParameters { resource_type: NotificationResourceType; diff --git a/apps/web/src/schema/notification/notification/api-verbs/delete.ts b/apps/web/src/api-clients/notification/notification/schema/api-verbs/delete.ts similarity index 100% rename from apps/web/src/schema/notification/notification/api-verbs/delete.ts rename to apps/web/src/api-clients/notification/notification/schema/api-verbs/delete.ts diff --git a/apps/web/src/schema/notification/notification/api-verbs/get.ts b/apps/web/src/api-clients/notification/notification/schema/api-verbs/get.ts similarity index 100% rename from apps/web/src/schema/notification/notification/api-verbs/get.ts rename to apps/web/src/api-clients/notification/notification/schema/api-verbs/get.ts diff --git a/apps/web/src/schema/notification/notification/api-verbs/list.ts b/apps/web/src/api-clients/notification/notification/schema/api-verbs/list.ts similarity index 76% rename from apps/web/src/schema/notification/notification/api-verbs/list.ts rename to apps/web/src/api-clients/notification/notification/schema/api-verbs/list.ts index 754a1f8ec8..c11cef81d3 100644 --- a/apps/web/src/schema/notification/notification/api-verbs/list.ts +++ b/apps/web/src/api-clients/notification/notification/schema/api-verbs/list.ts @@ -1,6 +1,6 @@ import type { Query } from '@cloudforet/core-lib/space-connector/type'; -import type { NotificationLevel, NotificationType } from '@/schema/notification/notification/type'; +import type { NotificationLevel, NotificationType } from '@/api-clients/notification/notification/schema/type'; export interface NotificationListParameters { query?: Query; diff --git a/apps/web/src/schema/notification/notification/api-verbs/push.ts b/apps/web/src/api-clients/notification/notification/schema/api-verbs/push.ts similarity index 82% rename from apps/web/src/schema/notification/notification/api-verbs/push.ts rename to apps/web/src/api-clients/notification/notification/schema/api-verbs/push.ts index ec98b02479..a92acf1a69 100644 --- a/apps/web/src/schema/notification/notification/api-verbs/push.ts +++ b/apps/web/src/api-clients/notification/notification/schema/api-verbs/push.ts @@ -1,4 +1,4 @@ -import type { NotificationLevel, NotificationMessage, NotificationType } from '@/schema/notification/notification/type'; +import type { NotificationLevel, NotificationMessage, NotificationType } from '@/api-clients/notification/notification/schema/type'; export interface NotificationPushParameters { protocol_id: string; diff --git a/apps/web/src/schema/notification/notification/api-verbs/set-read.ts b/apps/web/src/api-clients/notification/notification/schema/api-verbs/set-read.ts similarity index 100% rename from apps/web/src/schema/notification/notification/api-verbs/set-read.ts rename to apps/web/src/api-clients/notification/notification/schema/api-verbs/set-read.ts diff --git a/apps/web/src/schema/notification/notification/model.ts b/apps/web/src/api-clients/notification/notification/schema/model.ts similarity index 85% rename from apps/web/src/schema/notification/notification/model.ts rename to apps/web/src/api-clients/notification/notification/schema/model.ts index db80256688..e8a29d0c19 100644 --- a/apps/web/src/schema/notification/notification/model.ts +++ b/apps/web/src/api-clients/notification/notification/schema/model.ts @@ -1,4 +1,4 @@ -import type { NotificationLevel, NotificationMessage, NotificationType } from '@/schema/notification/notification/type'; +import type { NotificationLevel, NotificationMessage, NotificationType } from '@/api-clients/notification/notification/schema/type'; export interface NotificationModel { notification_id: string; diff --git a/apps/web/src/schema/notification/notification/type.ts b/apps/web/src/api-clients/notification/notification/schema/type.ts similarity index 100% rename from apps/web/src/schema/notification/notification/type.ts rename to apps/web/src/api-clients/notification/notification/schema/type.ts diff --git a/apps/web/src/api-clients/notification/project-channel/composables/use-project-channel-api.ts b/apps/web/src/api-clients/notification/project-channel/composables/use-project-channel-api.ts new file mode 100644 index 0000000000..44dfbbf72b --- /dev/null +++ b/apps/web/src/api-clients/notification/project-channel/composables/use-project-channel-api.ts @@ -0,0 +1,32 @@ +import { SpaceConnector } from '@cloudforet/core-lib/space-connector'; + +import type { ListResponse } from '@/api-clients/_common/schema/api-verbs/list'; +import type { ProjectChannelCreateParameters } from '@/api-clients/notification/project-channel/schema/api-verbs/create'; +import type { ProjectChannelDeleteParameters } from '@/api-clients/notification/project-channel/schema/api-verbs/delete'; +import type { ProjectChannelDisableParameters } from '@/api-clients/notification/project-channel/schema/api-verbs/disable'; +import type { ProjectChannelEnableParameters } from '@/api-clients/notification/project-channel/schema/api-verbs/enable'; +import type { ProjectChannelGetParameters } from '@/api-clients/notification/project-channel/schema/api-verbs/get'; +import type { ProjectChannelListParameters } from '@/api-clients/notification/project-channel/schema/api-verbs/list'; +import type { ProjectChannelSetScheduleParameters } from '@/api-clients/notification/project-channel/schema/api-verbs/set-schedule'; +import type { ProjectChannelSetSubscriptionParameters } from '@/api-clients/notification/project-channel/schema/api-verbs/set-subscription'; +import type { ProjectChannelUpdateParameters } from '@/api-clients/notification/project-channel/schema/api-verbs/update'; +import type { ProjectChannelModel } from '@/api-clients/notification/project-channel/schema/model'; + + + +export const useProjectChannelApi = () => { + const actions = { + create: SpaceConnector.clientV2.notification.projectChannel.create, + delete: SpaceConnector.clientV2.notification.projectChannel.delete, + disable: SpaceConnector.clientV2.notification.projectChannel.disable, + enable: SpaceConnector.clientV2.notification.projectChannel.enable, + get: SpaceConnector.clientV2.notification.projectChannel.get, + list: SpaceConnector.clientV2.notification.projectChannel.list>, + setSchedule: SpaceConnector.clientV2.notification.projectChannel.setSchedule, + setSubscription: SpaceConnector.clientV2.notification.projectChannel.setSubscription, + update: SpaceConnector.clientV2.notification.projectChannel.update, + }; + return { + projectChannelAPI: actions, + }; +}; diff --git a/apps/web/src/schema/notification/project-channel/api-verbs/create.ts b/apps/web/src/api-clients/notification/project-channel/schema/api-verbs/create.ts similarity index 69% rename from apps/web/src/schema/notification/project-channel/api-verbs/create.ts rename to apps/web/src/api-clients/notification/project-channel/schema/api-verbs/create.ts index 34a8f69406..3b79306cd5 100644 --- a/apps/web/src/schema/notification/project-channel/api-verbs/create.ts +++ b/apps/web/src/api-clients/notification/project-channel/schema/api-verbs/create.ts @@ -1,6 +1,6 @@ import type { Tags } from '@/api-clients/_common/schema/model'; -import type { NotificationLevel } from '@/schema/notification/notification/type'; -import type { ChannelSchedule } from '@/schema/notification/type'; +import type { NotificationLevel } from '@/api-clients/notification/notification/schema/type'; +import type { ChannelSchedule } from '@/api-clients/notification/type'; export type ProjectChannelCreateParameters = { protocol_id: string diff --git a/apps/web/src/schema/notification/project-channel/api-verbs/delete.ts b/apps/web/src/api-clients/notification/project-channel/schema/api-verbs/delete.ts similarity index 100% rename from apps/web/src/schema/notification/project-channel/api-verbs/delete.ts rename to apps/web/src/api-clients/notification/project-channel/schema/api-verbs/delete.ts diff --git a/apps/web/src/schema/notification/project-channel/api-verbs/disable.ts b/apps/web/src/api-clients/notification/project-channel/schema/api-verbs/disable.ts similarity index 100% rename from apps/web/src/schema/notification/project-channel/api-verbs/disable.ts rename to apps/web/src/api-clients/notification/project-channel/schema/api-verbs/disable.ts diff --git a/apps/web/src/schema/notification/project-channel/api-verbs/enable.ts b/apps/web/src/api-clients/notification/project-channel/schema/api-verbs/enable.ts similarity index 100% rename from apps/web/src/schema/notification/project-channel/api-verbs/enable.ts rename to apps/web/src/api-clients/notification/project-channel/schema/api-verbs/enable.ts diff --git a/apps/web/src/schema/notification/project-channel/api-verbs/get.ts b/apps/web/src/api-clients/notification/project-channel/schema/api-verbs/get.ts similarity index 100% rename from apps/web/src/schema/notification/project-channel/api-verbs/get.ts rename to apps/web/src/api-clients/notification/project-channel/schema/api-verbs/get.ts diff --git a/apps/web/src/schema/notification/project-channel/api-verbs/list.ts b/apps/web/src/api-clients/notification/project-channel/schema/api-verbs/list.ts similarity index 70% rename from apps/web/src/schema/notification/project-channel/api-verbs/list.ts rename to apps/web/src/api-clients/notification/project-channel/schema/api-verbs/list.ts index 5686d124fe..dba0b67bf2 100644 --- a/apps/web/src/schema/notification/project-channel/api-verbs/list.ts +++ b/apps/web/src/api-clients/notification/project-channel/schema/api-verbs/list.ts @@ -1,7 +1,7 @@ import type { Query } from '@cloudforet/core-lib/space-connector/type'; -import type { NotificationLevel } from '@/schema/notification/notification/type'; -import type { ChannelState } from '@/schema/notification/type'; +import type { NotificationLevel } from '@/api-clients/notification/notification/schema/type'; +import type { ChannelState } from '@/api-clients/notification/type'; export type ProjectChannelListParameters = { query?: Query diff --git a/apps/web/src/schema/notification/project-channel/api-verbs/set-schedule.ts b/apps/web/src/api-clients/notification/project-channel/schema/api-verbs/set-schedule.ts similarity index 67% rename from apps/web/src/schema/notification/project-channel/api-verbs/set-schedule.ts rename to apps/web/src/api-clients/notification/project-channel/schema/api-verbs/set-schedule.ts index 8c276da1ec..8ba690f98b 100644 --- a/apps/web/src/schema/notification/project-channel/api-verbs/set-schedule.ts +++ b/apps/web/src/api-clients/notification/project-channel/schema/api-verbs/set-schedule.ts @@ -1,4 +1,4 @@ -import type { ChannelSchedule } from '@/schema/notification/type'; +import type { ChannelSchedule } from '@/api-clients/notification/type'; export type ProjectChannelSetScheduleParameters = { project_channel_id: string; diff --git a/apps/web/src/schema/notification/project-channel/api-verbs/set-subscriptiokn.ts b/apps/web/src/api-clients/notification/project-channel/schema/api-verbs/set-subscription.ts similarity index 100% rename from apps/web/src/schema/notification/project-channel/api-verbs/set-subscriptiokn.ts rename to apps/web/src/api-clients/notification/project-channel/schema/api-verbs/set-subscription.ts diff --git a/apps/web/src/schema/notification/project-channel/api-verbs/update.ts b/apps/web/src/api-clients/notification/project-channel/schema/api-verbs/update.ts similarity index 71% rename from apps/web/src/schema/notification/project-channel/api-verbs/update.ts rename to apps/web/src/api-clients/notification/project-channel/schema/api-verbs/update.ts index 72bd2aa596..ecb45685d8 100644 --- a/apps/web/src/schema/notification/project-channel/api-verbs/update.ts +++ b/apps/web/src/api-clients/notification/project-channel/schema/api-verbs/update.ts @@ -1,5 +1,5 @@ import type { Tags } from '@/api-clients/_common/schema/model'; -import type { NotificationLevel } from '@/schema/notification/notification/type'; +import type { NotificationLevel } from '@/api-clients/notification/notification/schema/type'; export type ProjectChannelUpdateParameters = { project_channel_id: string diff --git a/apps/web/src/schema/notification/project-channel/model.ts b/apps/web/src/api-clients/notification/project-channel/schema/model.ts similarity index 77% rename from apps/web/src/schema/notification/project-channel/model.ts rename to apps/web/src/api-clients/notification/project-channel/schema/model.ts index b96da9e8d7..8ca0bea8e7 100644 --- a/apps/web/src/schema/notification/project-channel/model.ts +++ b/apps/web/src/api-clients/notification/project-channel/schema/model.ts @@ -1,6 +1,6 @@ import type { Tags } from '@/api-clients/_common/schema/model'; -import type { NotificationLevel } from '@/schema/notification/notification/type'; -import type { ChannelSchedule, ChannelState } from '@/schema/notification/type'; +import type { NotificationLevel } from '@/api-clients/notification/notification/schema/type'; +import type { ChannelSchedule, ChannelState } from '@/api-clients/notification/type'; export interface ProjectChannelModel { project_channel_id: string; diff --git a/apps/web/src/api-clients/notification/protocol/composables/use-protocol-api.ts b/apps/web/src/api-clients/notification/protocol/composables/use-protocol-api.ts new file mode 100644 index 0000000000..4ee4b75663 --- /dev/null +++ b/apps/web/src/api-clients/notification/protocol/composables/use-protocol-api.ts @@ -0,0 +1,29 @@ +import { SpaceConnector } from '@cloudforet/core-lib/space-connector'; + +import type { ListResponse } from '@/api-clients/_common/schema/api-verbs/list'; +import type { ProtocolCreateParameters } from '@/api-clients/notification/protocol/schema/api-verbs/create'; +import type { ProtocolDeleteParameters } from '@/api-clients/notification/protocol/schema/api-verbs/delete'; +import type { ProtocolDisableParameters } from '@/api-clients/notification/protocol/schema/api-verbs/disable'; +import type { ProtocolEnableParameters } from '@/api-clients/notification/protocol/schema/api-verbs/enable'; +import type { ProtocolGetParameters } from '@/api-clients/notification/protocol/schema/api-verbs/get'; +import type { ProtocolListParameters } from '@/api-clients/notification/protocol/schema/api-verbs/list'; +import type { ProtocolUpdateParameters } from '@/api-clients/notification/protocol/schema/api-verbs/update'; +import type { ProtocolUpdatePluginParameters } from '@/api-clients/notification/protocol/schema/api-verbs/update-plugin'; +import type { ProtocolModel } from '@/api-clients/notification/protocol/schema/model'; + + +export const useProtocolApi = () => { + const actions = { + create: SpaceConnector.clientV2.notification.protocol.create, + delete: SpaceConnector.clientV2.notification.protocol.delete, + disable: SpaceConnector.clientV2.notification.protocol.disable, + enable: SpaceConnector.clientV2.notification.protocol.enable, + get: SpaceConnector.clientV2.notification.protocol.get, + list: SpaceConnector.clientV2.notification.protocol.list>, + update: SpaceConnector.clientV2.notification.protocol.update, + updatePlugin: SpaceConnector.clientV2.notification.protocol.updatePlugin, + }; + return { + protocolAPI: actions, + }; +}; diff --git a/apps/web/src/schema/notification/protocol/api-verbs/create.ts b/apps/web/src/api-clients/notification/protocol/schema/api-verbs/create.ts similarity index 66% rename from apps/web/src/schema/notification/protocol/api-verbs/create.ts rename to apps/web/src/api-clients/notification/protocol/schema/api-verbs/create.ts index f3b8ecd5fb..45a9cd983b 100644 --- a/apps/web/src/schema/notification/protocol/api-verbs/create.ts +++ b/apps/web/src/api-clients/notification/protocol/schema/api-verbs/create.ts @@ -1,5 +1,5 @@ import type { Tags } from '@/api-clients/_common/schema/model'; -import type { ProtocolPluginInfo } from '@/schema/notification/protocol/type'; +import type { ProtocolPluginInfo } from '@/api-clients/notification/protocol/schema/type'; export interface ProtocolCreateParameters { name: string; diff --git a/apps/web/src/schema/notification/protocol/api-verbs/delete.ts b/apps/web/src/api-clients/notification/protocol/schema/api-verbs/delete.ts similarity index 100% rename from apps/web/src/schema/notification/protocol/api-verbs/delete.ts rename to apps/web/src/api-clients/notification/protocol/schema/api-verbs/delete.ts diff --git a/apps/web/src/schema/notification/protocol/api-verbs/disable.ts b/apps/web/src/api-clients/notification/protocol/schema/api-verbs/disable.ts similarity index 100% rename from apps/web/src/schema/notification/protocol/api-verbs/disable.ts rename to apps/web/src/api-clients/notification/protocol/schema/api-verbs/disable.ts diff --git a/apps/web/src/schema/notification/protocol/api-verbs/enable.ts b/apps/web/src/api-clients/notification/protocol/schema/api-verbs/enable.ts similarity index 100% rename from apps/web/src/schema/notification/protocol/api-verbs/enable.ts rename to apps/web/src/api-clients/notification/protocol/schema/api-verbs/enable.ts diff --git a/apps/web/src/schema/notification/protocol/api-verbs/get.ts b/apps/web/src/api-clients/notification/protocol/schema/api-verbs/get.ts similarity index 100% rename from apps/web/src/schema/notification/protocol/api-verbs/get.ts rename to apps/web/src/api-clients/notification/protocol/schema/api-verbs/get.ts diff --git a/apps/web/src/schema/notification/protocol/api-verbs/list.ts b/apps/web/src/api-clients/notification/protocol/schema/api-verbs/list.ts similarity index 73% rename from apps/web/src/schema/notification/protocol/api-verbs/list.ts rename to apps/web/src/api-clients/notification/protocol/schema/api-verbs/list.ts index f5fe5e8139..8ac46eeb4f 100644 --- a/apps/web/src/schema/notification/protocol/api-verbs/list.ts +++ b/apps/web/src/api-clients/notification/protocol/schema/api-verbs/list.ts @@ -1,6 +1,6 @@ import type { Query } from '@cloudforet/core-lib/space-connector/type'; -import type { ProtocolState } from '@/schema/notification/protocol/type'; +import type { ProtocolState } from '@/api-clients/notification/protocol/schema/type'; export interface ProtocolListParameters { protocol_id?: string; diff --git a/apps/web/src/schema/notification/protocol/api-verbs/update-plugin.ts b/apps/web/src/api-clients/notification/protocol/schema/api-verbs/update-plugin.ts similarity index 100% rename from apps/web/src/schema/notification/protocol/api-verbs/update-plugin.ts rename to apps/web/src/api-clients/notification/protocol/schema/api-verbs/update-plugin.ts diff --git a/apps/web/src/schema/notification/protocol/api-verbs/update.ts b/apps/web/src/api-clients/notification/protocol/schema/api-verbs/update.ts similarity index 100% rename from apps/web/src/schema/notification/protocol/api-verbs/update.ts rename to apps/web/src/api-clients/notification/protocol/schema/api-verbs/update.ts diff --git a/apps/web/src/schema/notification/protocol/model.ts b/apps/web/src/api-clients/notification/protocol/schema/model.ts similarity index 87% rename from apps/web/src/schema/notification/protocol/model.ts rename to apps/web/src/api-clients/notification/protocol/schema/model.ts index 04ec782de6..3a798dc4b6 100644 --- a/apps/web/src/schema/notification/protocol/model.ts +++ b/apps/web/src/api-clients/notification/protocol/schema/model.ts @@ -1,5 +1,5 @@ import type { Tags } from '@/api-clients/_common/schema/model'; -import type { ProtocolCapability, ProtocolPluginInfo, ProtocolState } from '@/schema/notification/protocol/type'; +import type { ProtocolCapability, ProtocolPluginInfo, ProtocolState } from '@/api-clients/notification/protocol/schema/type'; export interface ProtocolModel { protocol_id: string; diff --git a/apps/web/src/schema/notification/protocol/type.ts b/apps/web/src/api-clients/notification/protocol/schema/type.ts similarity index 100% rename from apps/web/src/schema/notification/protocol/type.ts rename to apps/web/src/api-clients/notification/protocol/schema/type.ts diff --git a/apps/web/src/schema/notification/type.ts b/apps/web/src/api-clients/notification/type.ts similarity index 100% rename from apps/web/src/schema/notification/type.ts rename to apps/web/src/api-clients/notification/type.ts diff --git a/apps/web/src/api-clients/notification/user-channel/composables/use-user-channel-api.ts b/apps/web/src/api-clients/notification/user-channel/composables/use-user-channel-api.ts new file mode 100644 index 0000000000..59a501335e --- /dev/null +++ b/apps/web/src/api-clients/notification/user-channel/composables/use-user-channel-api.ts @@ -0,0 +1,31 @@ +import { SpaceConnector } from '@cloudforet/core-lib/space-connector'; + +import type { ListResponse } from '@/api-clients/_common/schema/api-verbs/list'; +import type { UserChannelCreateParameters } from '@/api-clients/notification/user-channel/schema/api-verbs/create'; +import type { UserChannelDeleteParameters } from '@/api-clients/notification/user-channel/schema/api-verbs/delete'; +import type { UserChannelDisableParameters } from '@/api-clients/notification/user-channel/schema/api-verbs/disable'; +import type { UserChannelEnableParameters } from '@/api-clients/notification/user-channel/schema/api-verbs/enable'; +import type { UserChannelGetParameters } from '@/api-clients/notification/user-channel/schema/api-verbs/get'; +import type { UserChannelListParameters } from '@/api-clients/notification/user-channel/schema/api-verbs/list'; +import type { UserChannelSetScheduleParameters } from '@/api-clients/notification/user-channel/schema/api-verbs/set-schedule'; +import type { UserChannelSetSubscriptionParameters } from '@/api-clients/notification/user-channel/schema/api-verbs/set-subscription'; +import type { UserChannelUpdateParameters } from '@/api-clients/notification/user-channel/schema/api-verbs/update'; +import type { UserChannelModel } from '@/api-clients/notification/user-channel/schema/model'; + + +export const useUserChannelApi = () => { + const actions = { + create: SpaceConnector.clientV2.notification.userChannel.create, + delete: SpaceConnector.clientV2.notification.userChannel.delete, + disable: SpaceConnector.clientV2.notification.userChannel.disable, + enable: SpaceConnector.clientV2.notification.userChannel.enable, + get: SpaceConnector.clientV2.notification.userChannel.get, + list: SpaceConnector.clientV2.notification.userChannel.list>, + setSchedule: SpaceConnector.clientV2.notification.userChannel.setSchedule, + setSubscription: SpaceConnector.clientV2.notification.userChannel.setSubscription, + update: SpaceConnector.clientV2.notification.userChannel.update, + }; + return { + userChannelAPI: actions, + }; +}; diff --git a/apps/web/src/schema/notification/user-channel/api-verbs/create.ts b/apps/web/src/api-clients/notification/user-channel/schema/api-verbs/create.ts similarity index 80% rename from apps/web/src/schema/notification/user-channel/api-verbs/create.ts rename to apps/web/src/api-clients/notification/user-channel/schema/api-verbs/create.ts index ed27bab27c..b6d09ae240 100644 --- a/apps/web/src/schema/notification/user-channel/api-verbs/create.ts +++ b/apps/web/src/api-clients/notification/user-channel/schema/api-verbs/create.ts @@ -1,5 +1,5 @@ import type { Tags } from '@/api-clients/_common/schema/model'; -import type { ChannelSchedule } from '@/schema/notification/type'; +import type { ChannelSchedule } from '@/api-clients/notification/type'; export type UserChannelCreateParameters = { protocol_id: string diff --git a/apps/web/src/schema/notification/user-channel/api-verbs/delete.ts b/apps/web/src/api-clients/notification/user-channel/schema/api-verbs/delete.ts similarity index 100% rename from apps/web/src/schema/notification/user-channel/api-verbs/delete.ts rename to apps/web/src/api-clients/notification/user-channel/schema/api-verbs/delete.ts diff --git a/apps/web/src/schema/notification/user-channel/api-verbs/disable.ts b/apps/web/src/api-clients/notification/user-channel/schema/api-verbs/disable.ts similarity index 100% rename from apps/web/src/schema/notification/user-channel/api-verbs/disable.ts rename to apps/web/src/api-clients/notification/user-channel/schema/api-verbs/disable.ts diff --git a/apps/web/src/schema/notification/user-channel/api-verbs/enable.ts b/apps/web/src/api-clients/notification/user-channel/schema/api-verbs/enable.ts similarity index 100% rename from apps/web/src/schema/notification/user-channel/api-verbs/enable.ts rename to apps/web/src/api-clients/notification/user-channel/schema/api-verbs/enable.ts diff --git a/apps/web/src/schema/notification/user-channel/api-verbs/get.ts b/apps/web/src/api-clients/notification/user-channel/schema/api-verbs/get.ts similarity index 100% rename from apps/web/src/schema/notification/user-channel/api-verbs/get.ts rename to apps/web/src/api-clients/notification/user-channel/schema/api-verbs/get.ts diff --git a/apps/web/src/schema/notification/user-channel/api-verbs/list.ts b/apps/web/src/api-clients/notification/user-channel/schema/api-verbs/list.ts similarity index 81% rename from apps/web/src/schema/notification/user-channel/api-verbs/list.ts rename to apps/web/src/api-clients/notification/user-channel/schema/api-verbs/list.ts index db7fc0ca15..3db05b8e8a 100644 --- a/apps/web/src/schema/notification/user-channel/api-verbs/list.ts +++ b/apps/web/src/api-clients/notification/user-channel/schema/api-verbs/list.ts @@ -1,6 +1,6 @@ import type { Query } from '@cloudforet/core-lib/space-connector/type'; -import type { ChannelState } from '@/schema/notification/type'; +import type { ChannelState } from '@/api-clients/notification/type'; export type UserChannelListParameters = { query?: Query diff --git a/apps/web/src/schema/notification/user-channel/api-verbs/set-schedule.ts b/apps/web/src/api-clients/notification/user-channel/schema/api-verbs/set-schedule.ts similarity index 66% rename from apps/web/src/schema/notification/user-channel/api-verbs/set-schedule.ts rename to apps/web/src/api-clients/notification/user-channel/schema/api-verbs/set-schedule.ts index 7488eac4a3..ea2cf32616 100644 --- a/apps/web/src/schema/notification/user-channel/api-verbs/set-schedule.ts +++ b/apps/web/src/api-clients/notification/user-channel/schema/api-verbs/set-schedule.ts @@ -1,4 +1,4 @@ -import type { ChannelSchedule } from '@/schema/notification/type'; +import type { ChannelSchedule } from '@/api-clients/notification/type'; export type UserChannelSetScheduleParameters = { user_channel_id: string diff --git a/apps/web/src/schema/notification/user-channel/api-verbs/set-subscriptiokn.ts b/apps/web/src/api-clients/notification/user-channel/schema/api-verbs/set-subscription.ts similarity index 100% rename from apps/web/src/schema/notification/user-channel/api-verbs/set-subscriptiokn.ts rename to apps/web/src/api-clients/notification/user-channel/schema/api-verbs/set-subscription.ts diff --git a/apps/web/src/schema/notification/user-channel/api-verbs/update.ts b/apps/web/src/api-clients/notification/user-channel/schema/api-verbs/update.ts similarity index 100% rename from apps/web/src/schema/notification/user-channel/api-verbs/update.ts rename to apps/web/src/api-clients/notification/user-channel/schema/api-verbs/update.ts diff --git a/apps/web/src/schema/notification/user-channel/model.ts b/apps/web/src/api-clients/notification/user-channel/schema/model.ts similarity index 85% rename from apps/web/src/schema/notification/user-channel/model.ts rename to apps/web/src/api-clients/notification/user-channel/schema/model.ts index 93f4338926..f4b9742892 100644 --- a/apps/web/src/schema/notification/user-channel/model.ts +++ b/apps/web/src/api-clients/notification/user-channel/schema/model.ts @@ -1,5 +1,5 @@ import type { Tags } from '@/api-clients/_common/schema/model'; -import type { ChannelSchedule, ChannelState } from '@/schema/notification/type'; +import type { ChannelSchedule, ChannelState } from '@/api-clients/notification/type'; export interface UserChannelModel { user_channel_id: string; diff --git a/apps/web/src/api-clients/opsflow/task/schema/api-verbs/update-description.ts b/apps/web/src/api-clients/opsflow/task/schema/api-verbs/update-description.ts index 19ce725416..a25c2d5574 100644 --- a/apps/web/src/api-clients/opsflow/task/schema/api-verbs/update-description.ts +++ b/apps/web/src/api-clients/opsflow/task/schema/api-verbs/update-description.ts @@ -1,5 +1,5 @@ +import type { FileModel } from '@/api-clients/file-manager/schema/model'; import type { MentionTargets } from '@/api-clients/opsflow/comment/schema/type'; -import type { FileModel } from '@/schema/file-manager/model'; export interface TaskUpdateDescriptionParameters { task_id: string; diff --git a/apps/web/src/api-clients/opsflow/task/schema/model.ts b/apps/web/src/api-clients/opsflow/task/schema/model.ts index 093027663a..bf3c3a0dfe 100644 --- a/apps/web/src/api-clients/opsflow/task/schema/model.ts +++ b/apps/web/src/api-clients/opsflow/task/schema/model.ts @@ -1,5 +1,5 @@ +import type { FileModel } from '@/api-clients/file-manager/schema/model'; import type { TaskPriority, TaskStatusType } from '@/api-clients/opsflow/task/schema/type'; -import type { FileModel } from '@/schema/file-manager/model'; export interface TaskModel { diff --git a/apps/web/src/schema/plugin/plugin/api-verbs/get-plugin-endpoint.ts b/apps/web/src/api-clients/plugin/plugin/api-verbs/get-plugin-endpoint.ts similarity index 81% rename from apps/web/src/schema/plugin/plugin/api-verbs/get-plugin-endpoint.ts rename to apps/web/src/api-clients/plugin/plugin/api-verbs/get-plugin-endpoint.ts index 055501690b..ae9d4562bf 100644 --- a/apps/web/src/schema/plugin/plugin/api-verbs/get-plugin-endpoint.ts +++ b/apps/web/src/api-clients/plugin/plugin/api-verbs/get-plugin-endpoint.ts @@ -1,4 +1,4 @@ -import type { UpgradeMode } from '@/schema/plugin/plugin/type'; +import type { UpgradeMode } from '@/api-clients/plugin/plugin/type'; export interface GetPluginEndpointParameters { plugin_id: string; diff --git a/apps/web/src/schema/plugin/plugin/api-verbs/get-plugin-metadata.ts b/apps/web/src/api-clients/plugin/plugin/api-verbs/get-plugin-metadata.ts similarity index 75% rename from apps/web/src/schema/plugin/plugin/api-verbs/get-plugin-metadata.ts rename to apps/web/src/api-clients/plugin/plugin/api-verbs/get-plugin-metadata.ts index 308f31274c..71beb26fb6 100644 --- a/apps/web/src/schema/plugin/plugin/api-verbs/get-plugin-metadata.ts +++ b/apps/web/src/api-clients/plugin/plugin/api-verbs/get-plugin-metadata.ts @@ -1,4 +1,4 @@ -import type { UpgradeMode } from '@/schema/plugin/plugin/type'; +import type { UpgradeMode } from '@/api-clients/plugin/plugin/type'; export interface GetPluginMetadataParameters { plugin_id: string; diff --git a/apps/web/src/api-clients/plugin/plugin/composables/use-plugin-api.ts b/apps/web/src/api-clients/plugin/plugin/composables/use-plugin-api.ts new file mode 100644 index 0000000000..e12e34e172 --- /dev/null +++ b/apps/web/src/api-clients/plugin/plugin/composables/use-plugin-api.ts @@ -0,0 +1,14 @@ +import { SpaceConnector } from '@cloudforet/core-lib/space-connector'; + +import type { GetPluginEndpointParameters, GetPluginEndpointResponse } from '@/api-clients/plugin/plugin/api-verbs/get-plugin-endpoint'; +import type { GetPluginMetadataParameters, GetPluginMetadataResponse } from '@/api-clients/plugin/plugin/api-verbs/get-plugin-metadata'; + +export const usePluginApi = () => { + const actions = { + getPluginEndpoint: SpaceConnector.clientV2.plugin.plugin.getPluginEndpoint, + getPluginMetadata: SpaceConnector.clientV2.plugin.plugin.getPluginMetadata, + }; + return { + pluginAPI: actions, + }; +}; diff --git a/apps/web/src/schema/plugin/plugin/constant.ts b/apps/web/src/api-clients/plugin/plugin/constant.ts similarity index 100% rename from apps/web/src/schema/plugin/plugin/constant.ts rename to apps/web/src/api-clients/plugin/plugin/constant.ts diff --git a/apps/web/src/schema/plugin/plugin/type.ts b/apps/web/src/api-clients/plugin/plugin/type.ts similarity index 50% rename from apps/web/src/schema/plugin/plugin/type.ts rename to apps/web/src/api-clients/plugin/plugin/type.ts index c2d4ba0a20..a152379a83 100644 --- a/apps/web/src/schema/plugin/plugin/type.ts +++ b/apps/web/src/api-clients/plugin/plugin/type.ts @@ -1,3 +1,3 @@ -import type { UPGRADE_MODE } from '@/schema/plugin/plugin/constant'; +import type { UPGRADE_MODE } from '@/api-clients/plugin/plugin/constant'; export type UpgradeMode = typeof UPGRADE_MODE[keyof typeof UPGRADE_MODE]; diff --git a/apps/web/src/api-clients/repository/plugin/composables/use-plugin-api.ts b/apps/web/src/api-clients/repository/plugin/composables/use-plugin-api.ts new file mode 100644 index 0000000000..55ee351504 --- /dev/null +++ b/apps/web/src/api-clients/repository/plugin/composables/use-plugin-api.ts @@ -0,0 +1,33 @@ +import { SpaceConnector } from '@cloudforet/core-lib/space-connector'; + +import type { ListResponse } from '@/api-clients/_common/schema/api-verbs/list'; +import type { StatResponse } from '@/api-clients/_common/schema/api-verbs/stat'; +import type { GetPluginMetadataParameters, GetPluginMetadataResponse } from '@/api-clients/plugin/plugin/api-verbs/get-plugin-metadata'; +import type { PluginDeregisterParameters } from '@/api-clients/repository/plugin/schema/api-verbs/deregister'; +import type { PluginDisableParameters } from '@/api-clients/repository/plugin/schema/api-verbs/disable'; +import type { PluginEnableParameters } from '@/api-clients/repository/plugin/schema/api-verbs/enable'; +import type { PluginGetParameters } from '@/api-clients/repository/plugin/schema/api-verbs/get'; +import type { PluginGetVersionsParameters } from '@/api-clients/repository/plugin/schema/api-verbs/get-versions'; +import type { PluginListParameters } from '@/api-clients/repository/plugin/schema/api-verbs/list'; +import type { PluginRegisterParameters } from '@/api-clients/repository/plugin/schema/api-verbs/register'; +import type { PluginStatParameters } from '@/api-clients/repository/plugin/schema/api-verbs/stat'; +import type { PluginUpdateParameters } from '@/api-clients/repository/plugin/schema/api-verbs/update'; +import type { PluginModel } from '@/api-clients/repository/plugin/schema/model'; + +export const usePluginApi = () => { + const actions = { + deregister: SpaceConnector.clientV2.repository.plugin.deregister, + disable: SpaceConnector.clientV2.repository.plugin.disable, + enable: SpaceConnector.clientV2.repository.plugin.enable, + get: SpaceConnector.clientV2.repository.plugin.get, + getVersions: SpaceConnector.clientV2.repository.plugin.getVersions>, + list: SpaceConnector.clientV2.repository.plugin.list>, + register: SpaceConnector.clientV2.repository.plugin.register, + stat: SpaceConnector.clientV2.repository.plugin.stat, + update: SpaceConnector.clientV2.repository.plugin.update, + getPluginMetadata: SpaceConnector.clientV2.plugin.plugin.getPluginMetadata, + }; + return { + pluginAPI: actions, + }; +}; diff --git a/apps/web/src/schema/repository/plugin/api-verbs/deregister.ts b/apps/web/src/api-clients/repository/plugin/schema/api-verbs/deregister.ts similarity index 100% rename from apps/web/src/schema/repository/plugin/api-verbs/deregister.ts rename to apps/web/src/api-clients/repository/plugin/schema/api-verbs/deregister.ts diff --git a/apps/web/src/schema/repository/plugin/api-verbs/disable.ts b/apps/web/src/api-clients/repository/plugin/schema/api-verbs/disable.ts similarity index 100% rename from apps/web/src/schema/repository/plugin/api-verbs/disable.ts rename to apps/web/src/api-clients/repository/plugin/schema/api-verbs/disable.ts diff --git a/apps/web/src/schema/repository/plugin/api-verbs/enable.ts b/apps/web/src/api-clients/repository/plugin/schema/api-verbs/enable.ts similarity index 100% rename from apps/web/src/schema/repository/plugin/api-verbs/enable.ts rename to apps/web/src/api-clients/repository/plugin/schema/api-verbs/enable.ts diff --git a/apps/web/src/schema/repository/plugin/api-verbs/get-versions.ts b/apps/web/src/api-clients/repository/plugin/schema/api-verbs/get-versions.ts similarity index 100% rename from apps/web/src/schema/repository/plugin/api-verbs/get-versions.ts rename to apps/web/src/api-clients/repository/plugin/schema/api-verbs/get-versions.ts diff --git a/apps/web/src/schema/repository/plugin/api-verbs/get.ts b/apps/web/src/api-clients/repository/plugin/schema/api-verbs/get.ts similarity index 100% rename from apps/web/src/schema/repository/plugin/api-verbs/get.ts rename to apps/web/src/api-clients/repository/plugin/schema/api-verbs/get.ts diff --git a/apps/web/src/schema/repository/plugin/api-verbs/list.ts b/apps/web/src/api-clients/repository/plugin/schema/api-verbs/list.ts similarity index 79% rename from apps/web/src/schema/repository/plugin/api-verbs/list.ts rename to apps/web/src/api-clients/repository/plugin/schema/api-verbs/list.ts index 026ee6780d..2170b4cc80 100644 --- a/apps/web/src/schema/repository/plugin/api-verbs/list.ts +++ b/apps/web/src/api-clients/repository/plugin/schema/api-verbs/list.ts @@ -1,6 +1,6 @@ import type { Query } from '@cloudforet/core-lib/space-connector/type'; -import type { RegistryType } from '@/schema/repository/plugin/type'; +import type { RegistryType } from '@/api-clients/repository/plugin/schema/type'; export interface PluginListParameters { query?: Query; diff --git a/apps/web/src/schema/repository/plugin/api-verbs/register.ts b/apps/web/src/api-clients/repository/plugin/schema/api-verbs/register.ts similarity index 83% rename from apps/web/src/schema/repository/plugin/api-verbs/register.ts rename to apps/web/src/api-clients/repository/plugin/schema/api-verbs/register.ts index d18559c9d8..f8d9e7daf0 100644 --- a/apps/web/src/schema/repository/plugin/api-verbs/register.ts +++ b/apps/web/src/api-clients/repository/plugin/schema/api-verbs/register.ts @@ -1,5 +1,5 @@ import type { Tags } from '@/api-clients/_common/schema/model'; -import type { Capability, RegistryType } from '@/schema/repository/plugin/type'; +import type { Capability, RegistryType } from '@/api-clients/repository/plugin/schema/type'; export interface PluginRegisterParameters { name: string; diff --git a/apps/web/src/api-clients/repository/plugin/schema/api-verbs/stat.ts b/apps/web/src/api-clients/repository/plugin/schema/api-verbs/stat.ts new file mode 100644 index 0000000000..c0c2be9932 --- /dev/null +++ b/apps/web/src/api-clients/repository/plugin/schema/api-verbs/stat.ts @@ -0,0 +1,6 @@ +import type { StatQuery } from '@/api-clients/_common/schema/type'; + +export interface PluginStatParameters { + query: StatQuery; + repository_id?: string; +} diff --git a/apps/web/src/schema/repository/plugin/api-verbs/update.ts b/apps/web/src/api-clients/repository/plugin/schema/api-verbs/update.ts similarity index 80% rename from apps/web/src/schema/repository/plugin/api-verbs/update.ts rename to apps/web/src/api-clients/repository/plugin/schema/api-verbs/update.ts index ea3540c8b9..b4f787e62a 100644 --- a/apps/web/src/schema/repository/plugin/api-verbs/update.ts +++ b/apps/web/src/api-clients/repository/plugin/schema/api-verbs/update.ts @@ -1,5 +1,5 @@ import type { Tags } from '@/api-clients/_common/schema/model'; -import type { Capability } from '@/schema/repository/plugin/type'; +import type { Capability } from '@/api-clients/repository/plugin/schema/type'; export interface PluginUpdateParameters { plugin_id: string; diff --git a/apps/web/src/schema/repository/plugin/constant.ts b/apps/web/src/api-clients/repository/plugin/schema/constant.ts similarity index 100% rename from apps/web/src/schema/repository/plugin/constant.ts rename to apps/web/src/api-clients/repository/plugin/schema/constant.ts diff --git a/apps/web/src/schema/repository/plugin/model.ts b/apps/web/src/api-clients/repository/plugin/schema/model.ts similarity index 76% rename from apps/web/src/schema/repository/plugin/model.ts rename to apps/web/src/api-clients/repository/plugin/schema/model.ts index ce0fd16f12..a4bbac67b7 100644 --- a/apps/web/src/schema/repository/plugin/model.ts +++ b/apps/web/src/api-clients/repository/plugin/schema/model.ts @@ -1,6 +1,6 @@ import type { Tags } from '@/api-clients/_common/schema/model'; -import type { Capability, PluginState, RegistryType } from '@/schema/repository/plugin/type'; -import type { RepositoryModel } from '@/schema/repository/repository/model'; +import type { Capability, PluginState, RegistryType } from '@/api-clients/repository/plugin/schema/type'; +import type { RepositoryModel } from '@/api-clients/repository/repository/schema/model'; export interface PluginModel { plugin_id: string; diff --git a/apps/web/src/schema/repository/plugin/type.ts b/apps/web/src/api-clients/repository/plugin/schema/type.ts similarity index 65% rename from apps/web/src/schema/repository/plugin/type.ts rename to apps/web/src/api-clients/repository/plugin/schema/type.ts index 535da95d76..b624cd6b99 100644 --- a/apps/web/src/schema/repository/plugin/type.ts +++ b/apps/web/src/api-clients/repository/plugin/schema/type.ts @@ -1,7 +1,5 @@ -import type { MonitoringType } from '@/schema/monitoring/data-source/type'; -import type { PLUGIN_STATE, REGISTRY_TYPE } from '@/schema/repository/plugin/constant'; - - +import type { MonitoringType } from '@/api-clients/monitoring/data-source/schema/type'; +import type { PLUGIN_STATE, REGISTRY_TYPE } from '@/api-clients/repository/plugin/schema/constant'; export type PluginState = typeof PLUGIN_STATE[keyof typeof PLUGIN_STATE]; diff --git a/apps/web/src/api-clients/repository/repository/composables/use-repository-api.ts b/apps/web/src/api-clients/repository/repository/composables/use-repository-api.ts new file mode 100644 index 0000000000..55086335e9 --- /dev/null +++ b/apps/web/src/api-clients/repository/repository/composables/use-repository-api.ts @@ -0,0 +1,14 @@ +import { SpaceConnector } from '@cloudforet/core-lib/space-connector'; + +import type { ListResponse } from '@/api-clients/_common/schema/api-verbs/list'; +import type { RepositoryListParameters } from '@/api-clients/repository/repository/schema/api-verbs/list'; +import type { RepositoryModel } from '@/api-clients/repository/repository/schema/model'; + +export const useRepositoryApi = () => { + const actions = { + list: SpaceConnector.clientV2.repository.repository.list>, + }; + return { + repositoryAPI: actions, + }; +}; diff --git a/apps/web/src/schema/repository/repository/api-verbs/list.ts b/apps/web/src/api-clients/repository/repository/schema/api-verbs/list.ts similarity index 100% rename from apps/web/src/schema/repository/repository/api-verbs/list.ts rename to apps/web/src/api-clients/repository/repository/schema/api-verbs/list.ts diff --git a/apps/web/src/schema/repository/repository/model.ts b/apps/web/src/api-clients/repository/repository/schema/model.ts similarity index 100% rename from apps/web/src/schema/repository/repository/model.ts rename to apps/web/src/api-clients/repository/repository/schema/model.ts diff --git a/apps/web/src/api-clients/search/resource/composables/use-resource-api.ts b/apps/web/src/api-clients/search/resource/composables/use-resource-api.ts new file mode 100644 index 0000000000..c28c6eb65a --- /dev/null +++ b/apps/web/src/api-clients/search/resource/composables/use-resource-api.ts @@ -0,0 +1,14 @@ +import { SpaceConnector } from '@cloudforet/core-lib/space-connector'; + +import type { ResourceSearchParameters, ResourceSearchResponse } from '@/api-clients/search/resource/schema/api-verbs/search'; + + +export const useResourceApi = () => { + const actions = { + search: SpaceConnector.clientV2.search.resource.search, + }; + + return { + resourceAPI: actions, + }; +}; diff --git a/apps/web/src/schema/search/resource/api-verbs/search.ts b/apps/web/src/api-clients/search/resource/schema/api-verbs/search.ts similarity index 65% rename from apps/web/src/schema/search/resource/api-verbs/search.ts rename to apps/web/src/api-clients/search/resource/schema/api-verbs/search.ts index be40f56485..e5a4bab04a 100644 --- a/apps/web/src/schema/search/resource/api-verbs/search.ts +++ b/apps/web/src/api-clients/search/resource/schema/api-verbs/search.ts @@ -1,5 +1,5 @@ -import type { ResourceModel } from '@/schema/search/resource/model'; -import type { ResourceType } from '@/schema/search/resource/type'; +import type { ResourceModel } from '@/api-clients/search/resource/schema/model'; +import type { ResourceType } from '@/api-clients/search/resource/schema/type'; export interface ResourceSearchParameters { resource_type: ResourceType; diff --git a/apps/web/src/schema/search/resource/config.ts b/apps/web/src/api-clients/search/resource/schema/config.ts similarity index 100% rename from apps/web/src/schema/search/resource/config.ts rename to apps/web/src/api-clients/search/resource/schema/config.ts diff --git a/apps/web/src/schema/search/resource/model.ts b/apps/web/src/api-clients/search/resource/schema/model.ts similarity index 66% rename from apps/web/src/schema/search/resource/model.ts rename to apps/web/src/api-clients/search/resource/schema/model.ts index 3a53a0e832..8b04cd8b26 100644 --- a/apps/web/src/schema/search/resource/model.ts +++ b/apps/web/src/api-clients/search/resource/schema/model.ts @@ -1,4 +1,4 @@ -import type { ResourceType } from '@/schema/search/resource/type'; +import type { ResourceType } from '@/api-clients/search/resource/schema/type'; export type ResourceModel = { diff --git a/apps/web/src/api-clients/search/resource/schema/type.ts b/apps/web/src/api-clients/search/resource/schema/type.ts new file mode 100644 index 0000000000..2166fdae9b --- /dev/null +++ b/apps/web/src/api-clients/search/resource/schema/type.ts @@ -0,0 +1,3 @@ +import type { RESOURCE_TYPE } from '@/api-clients/search/resource/schema/config'; + +export type ResourceType = typeof RESOURCE_TYPE[keyof typeof RESOURCE_TYPE]; diff --git a/apps/web/src/api-clients/secret/secret/composables/use-secret-api.ts b/apps/web/src/api-clients/secret/secret/composables/use-secret-api.ts new file mode 100644 index 0000000000..f65fe3393f --- /dev/null +++ b/apps/web/src/api-clients/secret/secret/composables/use-secret-api.ts @@ -0,0 +1,19 @@ +import { SpaceConnector } from '@cloudforet/core-lib/space-connector'; + +import type { ListResponse } from '@/api-clients/_common/schema/api-verbs/list'; +import type { SecretCreateParameters } from '@/api-clients/secret/secret/schema/api-verbs/create'; +import type { SecretGetParameters } from '@/api-clients/secret/secret/schema/api-verbs/get'; +import type { SecretListParameters } from '@/api-clients/secret/secret/schema/api-verbs/list'; +import type { SecretModel } from '@/api-clients/secret/secret/schema/model'; + +export const useSecretApi = () => { + const actions = { + create: SpaceConnector.clientV2.secret.secret.create, + get: SpaceConnector.clientV2.secret.secret.get, + list: SpaceConnector.clientV2.secret.secret.list>, + }; + + return { + secretAPI: actions, + }; +}; diff --git a/apps/web/src/schema/secret/secret/api-verbs/create.ts b/apps/web/src/api-clients/secret/secret/schema/api-verbs/create.ts similarity index 100% rename from apps/web/src/schema/secret/secret/api-verbs/create.ts rename to apps/web/src/api-clients/secret/secret/schema/api-verbs/create.ts diff --git a/apps/web/src/schema/secret/secret/api-verbs/get.ts b/apps/web/src/api-clients/secret/secret/schema/api-verbs/get.ts similarity index 100% rename from apps/web/src/schema/secret/secret/api-verbs/get.ts rename to apps/web/src/api-clients/secret/secret/schema/api-verbs/get.ts diff --git a/apps/web/src/schema/secret/secret/api-verbs/list.ts b/apps/web/src/api-clients/secret/secret/schema/api-verbs/list.ts similarity index 100% rename from apps/web/src/schema/secret/secret/api-verbs/list.ts rename to apps/web/src/api-clients/secret/secret/schema/api-verbs/list.ts diff --git a/apps/web/src/schema/secret/secret/model.ts b/apps/web/src/api-clients/secret/secret/schema/model.ts similarity index 100% rename from apps/web/src/schema/secret/secret/model.ts rename to apps/web/src/api-clients/secret/secret/schema/model.ts diff --git a/apps/web/src/api-clients/secret/trusted-secret/composables/use-trusted-secret-api.ts b/apps/web/src/api-clients/secret/trusted-secret/composables/use-trusted-secret-api.ts new file mode 100644 index 0000000000..2e64002936 --- /dev/null +++ b/apps/web/src/api-clients/secret/trusted-secret/composables/use-trusted-secret-api.ts @@ -0,0 +1,25 @@ +import { SpaceConnector } from '@cloudforet/core-lib/space-connector'; + +import type { ListResponse } from '@/api-clients/_common/schema/api-verbs/list'; +import type { TrustedSecretCreateParameters } from '@/api-clients/secret/trusted-secret/schema/api-verbs/create'; +import type { TrustedSecretDeleteParameters } from '@/api-clients/secret/trusted-secret/schema/api-verbs/delete'; +import type { TrustedSecretGetParameters } from '@/api-clients/secret/trusted-secret/schema/api-verbs/get'; +import type { TrustedSecretListParameters } from '@/api-clients/secret/trusted-secret/schema/api-verbs/list'; +import type { TrustedSecretUpdateParameters } from '@/api-clients/secret/trusted-secret/schema/api-verbs/update'; +import type { TrustedSecretUpdateDataParameters } from '@/api-clients/secret/trusted-secret/schema/api-verbs/update-data'; +import type { TrustedSecretDataModel, TrustedSecretModel } from '@/api-clients/secret/trusted-secret/schema/model'; + +export const useTrustedSecretApi = () => { + const actions = { + get: SpaceConnector.clientV2.secret.trustedSecret.get, + list: SpaceConnector.clientV2.secret.trustedSecret.list>, + create: SpaceConnector.clientV2.secret.trustedSecret.create, + update: SpaceConnector.clientV2.secret.trustedSecret.update, + delete: SpaceConnector.clientV2.secret.trustedSecret.delete, + updateData: SpaceConnector.clientV2.secret.trustedSecret.updateData, + }; + + return { + trustedSecretAPI: actions, + }; +}; diff --git a/apps/web/src/schema/secret/trusted-secret/api-verbs/create.ts b/apps/web/src/api-clients/secret/trusted-secret/schema/api-verbs/create.ts similarity index 100% rename from apps/web/src/schema/secret/trusted-secret/api-verbs/create.ts rename to apps/web/src/api-clients/secret/trusted-secret/schema/api-verbs/create.ts diff --git a/apps/web/src/schema/secret/trusted-secret/api-verbs/delete.ts b/apps/web/src/api-clients/secret/trusted-secret/schema/api-verbs/delete.ts similarity index 100% rename from apps/web/src/schema/secret/trusted-secret/api-verbs/delete.ts rename to apps/web/src/api-clients/secret/trusted-secret/schema/api-verbs/delete.ts diff --git a/apps/web/src/schema/secret/trusted-secret/api-verbs/get.ts b/apps/web/src/api-clients/secret/trusted-secret/schema/api-verbs/get.ts similarity index 100% rename from apps/web/src/schema/secret/trusted-secret/api-verbs/get.ts rename to apps/web/src/api-clients/secret/trusted-secret/schema/api-verbs/get.ts diff --git a/apps/web/src/schema/secret/trusted-secret/api-verbs/list.ts b/apps/web/src/api-clients/secret/trusted-secret/schema/api-verbs/list.ts similarity index 100% rename from apps/web/src/schema/secret/trusted-secret/api-verbs/list.ts rename to apps/web/src/api-clients/secret/trusted-secret/schema/api-verbs/list.ts diff --git a/apps/web/src/schema/secret/trusted-secret/api-verbs/update_data.ts b/apps/web/src/api-clients/secret/trusted-secret/schema/api-verbs/update-data.ts similarity index 100% rename from apps/web/src/schema/secret/trusted-secret/api-verbs/update_data.ts rename to apps/web/src/api-clients/secret/trusted-secret/schema/api-verbs/update-data.ts diff --git a/apps/web/src/schema/secret/trusted-secret/api-verbs/update.ts b/apps/web/src/api-clients/secret/trusted-secret/schema/api-verbs/update.ts similarity index 100% rename from apps/web/src/schema/secret/trusted-secret/api-verbs/update.ts rename to apps/web/src/api-clients/secret/trusted-secret/schema/api-verbs/update.ts diff --git a/apps/web/src/schema/secret/trusted-secret/model.ts b/apps/web/src/api-clients/secret/trusted-secret/schema/model.ts similarity index 51% rename from apps/web/src/schema/secret/trusted-secret/model.ts rename to apps/web/src/api-clients/secret/trusted-secret/schema/model.ts index c85e7dd670..481628a751 100644 --- a/apps/web/src/schema/secret/trusted-secret/model.ts +++ b/apps/web/src/api-clients/secret/trusted-secret/schema/model.ts @@ -13,3 +13,20 @@ export interface TrustedSecretModel { domain_id: string; created_at: string; } + +export type TrustedSecretDataModel = TrustedSecretEncryptedDataModel | TrustedSecretUnncryptedDataModel; + + +export interface TrustedSecretEncryptedDataModel { + encrypted: true; + encrypted_options: Record; + data: { + encrypted_data: string; + trusted_encrypted_data: string; + }; +} + +export interface TrustedSecretUnncryptedDataModel { + encrypted: false; + encrypted_options: Record; +} diff --git a/apps/web/src/common/components/bookmark/BookmarkDeleteModal.vue b/apps/web/src/common/components/bookmark/BookmarkDeleteModal.vue index dedab39e70..a2b5c6e498 100644 --- a/apps/web/src/common/components/bookmark/BookmarkDeleteModal.vue +++ b/apps/web/src/common/components/bookmark/BookmarkDeleteModal.vue @@ -9,25 +9,28 @@ import { i18n } from '@/translations'; import { assetUrlConverter } from '@/lib/helper/asset-helper'; +import { useBookmarkFolderDeleteMutation } from '@/common/components/bookmark/composables/use-bookmark-folder-delete-mutation'; +import { useBookmarkLinkDeleteMutation } from '@/common/components/bookmark/composables/use-bookmark-link-delete-mutation'; import { BOOKMARK_MODAL_TYPE } from '@/common/components/bookmark/constant/constant'; import { useBookmarkStore } from '@/common/components/bookmark/store/bookmark-store'; import type { BookmarkItem, BookmarkModalType } from '@/common/components/bookmark/type/type'; import { gray } from '@/styles/colors'; -interface Props { - bookmarkList: BookmarkItem[] -} - -const props = withDefaults(defineProps(), { - bookmarkList: () => [], -}); +import { BOOKMARK_TYPE } from '@/services/workspace-home/constants/workspace-home-constant'; const bookmarkStore = useBookmarkStore(); const bookmarkState = bookmarkStore.state; const emit = defineEmits<{(e: 'confirm', isFolder?: boolean): void; }>(); +const { mutate: deleteBookmarkFolder } = useBookmarkFolderDeleteMutation({ + type: computed(() => bookmarkState.bookmarkType || BOOKMARK_TYPE.WORKSPACE), +}); +const { mutate: deleteBookmarkLink } = useBookmarkLinkDeleteMutation({ + type: computed(() => bookmarkState.bookmarkType || BOOKMARK_TYPE.WORKSPACE), +}); + const storeState = reactive({ type: computed(() => bookmarkState.modal.type), selectedBookmark: computed(() => bookmarkState.selectedBookmark), @@ -58,13 +61,14 @@ const state = reactive({ }); const deleteFolder = async (id?: string) => { - await bookmarkStore.deleteBookmarkFolder({ - id, - bookmarkList: props.bookmarkList, + await deleteBookmarkFolder({ + name: id || '', }); }; const deleteLink = async (id?: string) => { - await bookmarkStore.deleteBookmarkLink(id); + await deleteBookmarkLink({ + name: id || '', + }); }; const handleConfirm = async () => { state.loading = true; diff --git a/apps/web/src/common/components/bookmark/BookmarkFolderFormModal.vue b/apps/web/src/common/components/bookmark/BookmarkFolderFormModal.vue index 58679a5c34..063a124da0 100644 --- a/apps/web/src/common/components/bookmark/BookmarkFolderFormModal.vue +++ b/apps/web/src/common/components/bookmark/BookmarkFolderFormModal.vue @@ -6,12 +6,16 @@ import { PButtonModal, PFieldGroup, PTextInput, PRadioGroup, PRadio, } from '@cloudforet/mirinae'; +import type { ResourceGroupType } from '@/api-clients/_common/schema/type'; import { ROLE_TYPE } from '@/api-clients/identity/role/constant'; import { i18n } from '@/translations'; import { useAppContextStore } from '@/store/app-context/app-context-store'; +import { useUserWorkspaceStore } from '@/store/app-context/workspace/user-workspace-store'; import { useAuthorizationStore } from '@/store/authorization/authorization-store'; +import { useBookmarkFolderCreateMutation } from '@/common/components/bookmark/composables/use-bookmark-folder-create-mutation'; +import { useBookmarkFolderUpdateMutation } from '@/common/components/bookmark/composables/use-bookmark-folder-update-mutation'; import { BOOKMARK_MODAL_TYPE } from '@/common/components/bookmark/constant/constant'; import { useBookmarkStore } from '@/common/components/bookmark/store/bookmark-store'; import type { BookmarkItem, BookmarkModalStateType, RadioType } from '@/common/components/bookmark/type/type'; @@ -22,14 +26,12 @@ import type { BookmarkType } from '@/services/workspace-home/types/workspace-hom interface Props { bookmarkFolderList?: BookmarkItem[], - bookmarkList: BookmarkItem[], filterByFolder?: TranslateResult, selectedBookmark?: BookmarkItem, } const props = withDefaults(defineProps(), { bookmarkFolderList: undefined, - bookmarkList: () => [], filterByFolder: undefined, selectedBookmark: undefined, }); @@ -39,18 +41,20 @@ const bookmarkState = bookmarkStore.state; const appContextStore = useAppContextStore(); const appContextGetters = appContextStore.getters; const authorizationStore = useAuthorizationStore(); +const userWorkspaceStore = useUserWorkspaceStore(); +const userWorkspaceStoreGetters = userWorkspaceStore.getters; const emit = defineEmits<{(e: 'confirm', isEdit?: boolean, name?: string): void; }>(); const storeState = reactive({ isAdminMode: computed(() => appContextGetters.isAdminMode), isWorkspaceMember: computed(() => authorizationStore.state.currentRoleInfo?.roleType === ROLE_TYPE.WORKSPACE_MEMBER), + currentWorkspaceId: computed(() => userWorkspaceStoreGetters.currentWorkspaceId), modal: computed(() => bookmarkState.modal), bookmarkType: computed(() => bookmarkState.bookmarkType), }); const state = reactive({ - loading: false, bookmark: computed(() => props.selectedBookmark?.name || props.filterByFolder), radioMenuList: computed(() => { const menu: RadioType[] = [{ @@ -93,27 +97,53 @@ const { }, }); +const { mutate: createBookmarkFolder, isPending: isCreatingBookmarkFolder } = useBookmarkFolderCreateMutation({ + type: computed(() => state.scope), + onSuccess: () => { + emit('confirm', storeState.modal.isEdit, name.value); + handleClose(); + }, +}); +const { mutate: updateBookmarkFolder, isPending: isUpdatingBookmarkFolder } = useBookmarkFolderUpdateMutation({ + type: computed(() => state.scope), + onSuccess: () => { + emit('confirm', storeState.modal.isEdit, name.value); + handleClose(); + }, +}); + const handleClose = () => { bookmarkStore.setModalType(undefined, false, false); initForm(); }; -const handleConfirm = async () => { - state.loading = true; - try { - if (storeState.modal.isEdit) { - await bookmarkStore.updateBookmarkFolder({ - id: props.selectedBookmark?.id, +const handleConfirm = () => { + if (storeState.modal.isEdit) { + updateBookmarkFolder({ + name: props.selectedBookmark?.id || '', + data: { + workspaceId: storeState.currentWorkspaceId || '', name: name.value, - bookmarkList: props.bookmarkList, - }); - } else { - await bookmarkStore.createBookmarkFolder(name.value, state.scope); + isGlobal: storeState.isAdminMode, + }, + }); + } else { + let resource_group: ResourceGroupType|undefined; + if (state.scope !== BOOKMARK_TYPE.USER) { + resource_group = storeState.isAdminMode ? 'DOMAIN' : 'WORKSPACE'; } - emit('confirm', storeState.modal.isEdit, name.value); - await handleClose(); - } finally { - state.loading = false; + const params = { + name: `console:bookmark:${name.value}`, + data: { + workspaceId: storeState.currentWorkspaceId || '', + name: name.value, + isGlobal: storeState.isAdminMode, + }, + }; + createBookmarkFolder({ + ...params, + resource_group, + }); } }; @@ -143,7 +173,7 @@ watch(() => storeState.modal.isEdit, (isEditModal) => { :backdrop="true" :visible="storeState.modal.type === BOOKMARK_MODAL_TYPE.FOLDER" :disabled="(name === '' || invalidState.name)" - :loading="state.loading" + :loading="isCreatingBookmarkFolder || isUpdatingBookmarkFolder" @confirm="handleConfirm" @cancel="handleClose" @close="handleClose" diff --git a/apps/web/src/common/components/bookmark/BookmarkLinkFormModal.vue b/apps/web/src/common/components/bookmark/BookmarkLinkFormModal.vue index 99b12f4346..692aaf9a59 100644 --- a/apps/web/src/common/components/bookmark/BookmarkLinkFormModal.vue +++ b/apps/web/src/common/components/bookmark/BookmarkLinkFormModal.vue @@ -1,15 +1,11 @@ @@ -221,7 +238,7 @@ watch(() => storeState.modal.type, (type) => { :backdrop="true" :visible="storeState.modal.type === BOOKMARK_MODAL_TYPE.LINK" :disabled="!isAllValid" - :loading="state.loading" + :loading="isCreatingBookmarkLink || isUpdatingBookmarkLink" @confirm="handleConfirm" @cancel="handleClose" @close="handleClose" diff --git a/apps/web/src/common/components/bookmark/composables/use-bookmark-folder-create-mutation.ts b/apps/web/src/common/components/bookmark/composables/use-bookmark-folder-create-mutation.ts new file mode 100644 index 0000000000..f4239a6d3a --- /dev/null +++ b/apps/web/src/common/components/bookmark/composables/use-bookmark-folder-create-mutation.ts @@ -0,0 +1,59 @@ +import type { ComputedRef } from 'vue'; + +import { useMutation, useQueryClient } from '@tanstack/vue-query'; + +import { useSharedConfigApi } from '@/api-clients/config/shared-config/composables/use-shared-config-api'; +import type { SharedConfigCreateParameters } from '@/api-clients/config/shared-config/schema/api-verbs/create'; +import type { SharedConfigModel } from '@/api-clients/config/shared-config/schema/model'; +import { useUserConfigApi } from '@/api-clients/config/user-config/composables/use-user-config-api'; +import type { UserConfigCreateParameters } from '@/api-clients/config/user-config/schema/api-verbs/create'; +import type { UserConfigModel } from '@/api-clients/config/user-config/schema/model'; +import { useServiceQueryKey } from '@/query/core/query-key/use-service-query-key'; + +import ErrorHandler from '@/common/composables/error/errorHandler'; + +import { BOOKMARK_TYPE } from '@/services/workspace-home/constants/workspace-home-constant'; +import type { BookmarkType } from '@/services/workspace-home/types/workspace-home-type'; + +type BookmarkFolderCreateResult = UserConfigModel> | SharedConfigModel>; +type BookmarkFolderCreateParameters = Partial; + +interface UseBookmarkFolderCreateMutationOptions { + type?: ComputedRef; + onSuccess?: (data: BookmarkFolderCreateResult, variables: BookmarkFolderCreateParameters) => void|Promise; + onError?: (error: Error, variables: BookmarkFolderCreateParameters) => void|Promise; + onSettled?: (data: BookmarkFolderCreateResult | undefined, error: Error|null, variables: BookmarkFolderCreateParameters) => void|Promise; +} + +export const useBookmarkFolderCreateMutation = (options?: UseBookmarkFolderCreateMutationOptions) => { + const queryClient = useQueryClient(); + const { userConfigAPI } = useUserConfigApi(); + const { sharedConfigAPI } = useSharedConfigApi(); + + const { key: userConfigListQueryKey } = useServiceQueryKey('config', 'user-config', 'list'); + const { key: sharedConfigListQueryKey } = useServiceQueryKey('config', 'shared-config', 'list'); + + return useMutation({ + mutationFn: (params: BookmarkFolderCreateParameters) => { + if (options?.type?.value === BOOKMARK_TYPE.USER) { + return userConfigAPI.set(params as UserConfigCreateParameters); + } + return sharedConfigAPI.create(params as SharedConfigCreateParameters); + }, + onSuccess: async (data, variables) => { + if (options?.type?.value === BOOKMARK_TYPE.USER) { + queryClient.invalidateQueries({ queryKey: userConfigListQueryKey.value }); + } else { + queryClient.invalidateQueries({ queryKey: sharedConfigListQueryKey.value }); + } + if (options?.onSuccess) await options.onSuccess(data, variables); + }, + onError: (error, variables) => { + ErrorHandler.handleError(error, true); + if (options?.onError) options.onError(error, variables); + }, + onSettled: (data, error, variables) => { + if (options?.onSettled) options.onSettled(data, error, variables); + }, + }); +}; diff --git a/apps/web/src/common/components/bookmark/composables/use-bookmark-folder-delete-mutation.ts b/apps/web/src/common/components/bookmark/composables/use-bookmark-folder-delete-mutation.ts new file mode 100644 index 0000000000..ae37729481 --- /dev/null +++ b/apps/web/src/common/components/bookmark/composables/use-bookmark-folder-delete-mutation.ts @@ -0,0 +1,59 @@ +import type { ComputedRef } from 'vue'; + +import { useMutation, useQueryClient } from '@tanstack/vue-query'; + +import { useSharedConfigApi } from '@/api-clients/config/shared-config/composables/use-shared-config-api'; +import type { SharedConfigDeleteParameters } from '@/api-clients/config/shared-config/schema/api-verbs/delete'; +import type { SharedConfigModel } from '@/api-clients/config/shared-config/schema/model'; +import { useUserConfigApi } from '@/api-clients/config/user-config/composables/use-user-config-api'; +import type { UserConfigDeleteParameters } from '@/api-clients/config/user-config/schema/api-verbs/delete'; +import type { UserConfigModel } from '@/api-clients/config/user-config/schema/model'; +import { useServiceQueryKey } from '@/query/core/query-key/use-service-query-key'; + +import ErrorHandler from '@/common/composables/error/errorHandler'; + +import { BOOKMARK_TYPE } from '@/services/workspace-home/constants/workspace-home-constant'; +import type { BookmarkType } from '@/services/workspace-home/types/workspace-home-type'; + +type BookmarkFolderDeleteResult = UserConfigModel> | SharedConfigModel>; +type BookmarkFolderDeleteParameters = Partial; + +interface UseBookmarkFolderDeleteMutationOptions { + type?: ComputedRef; + onSuccess?: (data: BookmarkFolderDeleteResult, variables: BookmarkFolderDeleteParameters) => void|Promise; + onError?: (error: Error, variables: BookmarkFolderDeleteParameters) => void|Promise; + onSettled?: (data: BookmarkFolderDeleteResult | undefined, error: Error|null, variables: BookmarkFolderDeleteParameters) => void|Promise; +} + +export const useBookmarkFolderDeleteMutation = (options?: UseBookmarkFolderDeleteMutationOptions) => { + const queryClient = useQueryClient(); + const { userConfigAPI } = useUserConfigApi(); + const { sharedConfigAPI } = useSharedConfigApi(); + + const { key: userConfigListQueryKey } = useServiceQueryKey('config', 'user-config', 'list'); + const { key: sharedConfigListQueryKey } = useServiceQueryKey('config', 'shared-config', 'list'); + + return useMutation({ + mutationFn: (params: BookmarkFolderDeleteParameters) => { + if (options?.type?.value === BOOKMARK_TYPE.USER) { + return userConfigAPI.delete(params as UserConfigDeleteParameters); + } + return sharedConfigAPI.delete(params as SharedConfigDeleteParameters); + }, + onSuccess: async (data, variables) => { + if (options?.type?.value === BOOKMARK_TYPE.USER) { + queryClient.invalidateQueries({ queryKey: userConfigListQueryKey.value }); + } else { + queryClient.invalidateQueries({ queryKey: sharedConfigListQueryKey.value }); + } + if (options?.onSuccess) await options.onSuccess(data, variables); + }, + onError: (error, variables) => { + ErrorHandler.handleError(error, true); + if (options?.onError) options.onError(error, variables); + }, + onSettled: (data, error, variables) => { + if (options?.onSettled) options.onSettled(data, error, variables); + }, + }); +}; diff --git a/apps/web/src/common/components/bookmark/composables/use-bookmark-folder-update-mutation.ts b/apps/web/src/common/components/bookmark/composables/use-bookmark-folder-update-mutation.ts new file mode 100644 index 0000000000..0d55a8d188 --- /dev/null +++ b/apps/web/src/common/components/bookmark/composables/use-bookmark-folder-update-mutation.ts @@ -0,0 +1,59 @@ +import { type ComputedRef } from 'vue'; + +import { useMutation, useQueryClient } from '@tanstack/vue-query'; + +import { useSharedConfigApi } from '@/api-clients/config/shared-config/composables/use-shared-config-api'; +import type { SharedConfigUpdateParameters } from '@/api-clients/config/shared-config/schema/api-verbs/update'; +import type { SharedConfigModel } from '@/api-clients/config/shared-config/schema/model'; +import { useUserConfigApi } from '@/api-clients/config/user-config/composables/use-user-config-api'; +import type { UserConfigUpdateParameters } from '@/api-clients/config/user-config/schema/api-verbs/update'; +import type { UserConfigModel } from '@/api-clients/config/user-config/schema/model'; +import { useServiceQueryKey } from '@/query/core/query-key/use-service-query-key'; + +import ErrorHandler from '@/common/composables/error/errorHandler'; + +import { BOOKMARK_TYPE } from '@/services/workspace-home/constants/workspace-home-constant'; +import type { BookmarkType } from '@/services/workspace-home/types/workspace-home-type'; + +type BookmarkFolderUpdateResult = UserConfigModel> | SharedConfigModel>; +type BookmarkFolderUpdateParameters = Partial; + +interface UseBookmarkFolderUpdateMutationOptions { + type?: ComputedRef; + onSuccess?: (data: BookmarkFolderUpdateResult, variables: BookmarkFolderUpdateParameters) => void|Promise; + onError?: (error: Error, variables: BookmarkFolderUpdateParameters) => void|Promise; + onSettled?: (data: BookmarkFolderUpdateResult | undefined, error: Error|null, variables: BookmarkFolderUpdateParameters) => void|Promise; +} + +export const useBookmarkFolderUpdateMutation = (options?: UseBookmarkFolderUpdateMutationOptions) => { + const queryClient = useQueryClient(); + const { userConfigAPI } = useUserConfigApi(); + const { sharedConfigAPI } = useSharedConfigApi(); + + const { key: userConfigListQueryKey } = useServiceQueryKey('config', 'user-config', 'list'); + const { key: sharedConfigListQueryKey } = useServiceQueryKey('config', 'shared-config', 'list'); + + return useMutation({ + mutationFn: (params: BookmarkFolderUpdateParameters) => { + if (options?.type?.value === BOOKMARK_TYPE.USER) { + return userConfigAPI.update(params as UserConfigUpdateParameters); + } + return sharedConfigAPI.update(params as SharedConfigUpdateParameters); + }, + onSuccess: async (data, variables) => { + if (options?.type?.value === BOOKMARK_TYPE.USER) { + queryClient.invalidateQueries({ queryKey: userConfigListQueryKey.value }); + } else { + queryClient.invalidateQueries({ queryKey: sharedConfigListQueryKey.value }); + } + if (options?.onSuccess) await options.onSuccess(data, variables); + }, + onError: (error, variables) => { + ErrorHandler.handleError(error, true); + if (options?.onError) options.onError(error, variables); + }, + onSettled: (data, error, variables) => { + if (options?.onSettled) options.onSettled(data, error, variables); + }, + }); +}; diff --git a/apps/web/src/common/components/bookmark/composables/use-bookmark-link-create-mutation.ts b/apps/web/src/common/components/bookmark/composables/use-bookmark-link-create-mutation.ts new file mode 100644 index 0000000000..f2e22094fe --- /dev/null +++ b/apps/web/src/common/components/bookmark/composables/use-bookmark-link-create-mutation.ts @@ -0,0 +1,59 @@ +import type { ComputedRef } from 'vue'; + +import { useMutation, useQueryClient } from '@tanstack/vue-query'; + +import { useSharedConfigApi } from '@/api-clients/config/shared-config/composables/use-shared-config-api'; +import type { SharedConfigCreateParameters } from '@/api-clients/config/shared-config/schema/api-verbs/create'; +import type { SharedConfigModel } from '@/api-clients/config/shared-config/schema/model'; +import { useUserConfigApi } from '@/api-clients/config/user-config/composables/use-user-config-api'; +import type { UserConfigCreateParameters } from '@/api-clients/config/user-config/schema/api-verbs/create'; +import type { UserConfigModel } from '@/api-clients/config/user-config/schema/model'; +import { useServiceQueryKey } from '@/query/core/query-key/use-service-query-key'; + +import ErrorHandler from '@/common/composables/error/errorHandler'; + +import { BOOKMARK_TYPE } from '@/services/workspace-home/constants/workspace-home-constant'; +import type { BookmarkType } from '@/services/workspace-home/types/workspace-home-type'; + +type BookmarkLinkCreateResult = UserConfigModel> | SharedConfigModel>; +type BookmarkLinkCreateParameters = Partial; + +interface UseBookmarkLinkCreateMutationOptions { + type?: ComputedRef; + onSuccess?: (data: BookmarkLinkCreateResult, variables: BookmarkLinkCreateParameters) => void|Promise; + onError?: (error: Error, variables: BookmarkLinkCreateParameters) => void|Promise; + onSettled?: (data: BookmarkLinkCreateResult | undefined, error: Error|null, variables: BookmarkLinkCreateParameters) => void|Promise; +} + +export const useBookmarkLinkCreateMutation = (options?: UseBookmarkLinkCreateMutationOptions) => { + const queryClient = useQueryClient(); + const { userConfigAPI } = useUserConfigApi(); + const { sharedConfigAPI } = useSharedConfigApi(); + + const { key: userConfigListQueryKey } = useServiceQueryKey('config', 'user-config', 'list'); + const { key: sharedConfigListQueryKey } = useServiceQueryKey('config', 'shared-config', 'list'); + + return useMutation({ + mutationFn: (params: BookmarkLinkCreateParameters) => { + if (options?.type?.value === BOOKMARK_TYPE.USER) { + return userConfigAPI.set(params as UserConfigCreateParameters); + } + return sharedConfigAPI.create(params as SharedConfigCreateParameters); + }, + onSuccess: async (data, variables) => { + if (options?.type?.value === BOOKMARK_TYPE.USER) { + queryClient.invalidateQueries({ queryKey: userConfigListQueryKey.value }); + } else { + queryClient.invalidateQueries({ queryKey: sharedConfigListQueryKey.value }); + } + if (options?.onSuccess) await options.onSuccess(data, variables); + }, + onError: (error, variables) => { + ErrorHandler.handleError(error, true); + if (options?.onError) options.onError(error, variables); + }, + onSettled: (data, error, variables) => { + if (options?.onSettled) options.onSettled(data, error, variables); + }, + }); +}; diff --git a/apps/web/src/common/components/bookmark/composables/use-bookmark-link-delete-mutation.ts b/apps/web/src/common/components/bookmark/composables/use-bookmark-link-delete-mutation.ts new file mode 100644 index 0000000000..93fc19f5fd --- /dev/null +++ b/apps/web/src/common/components/bookmark/composables/use-bookmark-link-delete-mutation.ts @@ -0,0 +1,59 @@ +import type { ComputedRef } from 'vue'; + +import { useMutation, useQueryClient } from '@tanstack/vue-query'; + +import { useSharedConfigApi } from '@/api-clients/config/shared-config/composables/use-shared-config-api'; +import type { SharedConfigDeleteParameters } from '@/api-clients/config/shared-config/schema/api-verbs/delete'; +import type { SharedConfigModel } from '@/api-clients/config/shared-config/schema/model'; +import { useUserConfigApi } from '@/api-clients/config/user-config/composables/use-user-config-api'; +import type { UserConfigDeleteParameters } from '@/api-clients/config/user-config/schema/api-verbs/delete'; +import type { UserConfigModel } from '@/api-clients/config/user-config/schema/model'; +import { useServiceQueryKey } from '@/query/core/query-key/use-service-query-key'; + +import ErrorHandler from '@/common/composables/error/errorHandler'; + +import { BOOKMARK_TYPE } from '@/services/workspace-home/constants/workspace-home-constant'; +import type { BookmarkType } from '@/services/workspace-home/types/workspace-home-type'; + +type BookmarkLinkDeleteResult = UserConfigModel> | SharedConfigModel>; +type BookmarkLinkDeleteParameters = Partial; + +interface UseBookmarkLinkDeleteMutationOptions { + type?: ComputedRef; + onSuccess?: (data: BookmarkLinkDeleteResult, variables: BookmarkLinkDeleteParameters) => void|Promise; + onError?: (error: Error, variables: BookmarkLinkDeleteParameters) => void|Promise; + onSettled?: (data: BookmarkLinkDeleteResult | undefined, error: Error|null, variables: BookmarkLinkDeleteParameters) => void|Promise; +} + +export const useBookmarkLinkDeleteMutation = (options?: UseBookmarkLinkDeleteMutationOptions) => { + const queryClient = useQueryClient(); + const { userConfigAPI } = useUserConfigApi(); + const { sharedConfigAPI } = useSharedConfigApi(); + + const { key: userConfigListQueryKey } = useServiceQueryKey('config', 'user-config', 'list'); + const { key: sharedConfigListQueryKey } = useServiceQueryKey('config', 'shared-config', 'list'); + + return useMutation({ + mutationFn: (params: BookmarkLinkDeleteParameters) => { + if (options?.type?.value === BOOKMARK_TYPE.USER) { + return userConfigAPI.delete(params as UserConfigDeleteParameters); + } + return sharedConfigAPI.delete(params as SharedConfigDeleteParameters); + }, + onSuccess: async (data, variables) => { + if (options?.type?.value === BOOKMARK_TYPE.USER) { + queryClient.invalidateQueries({ queryKey: userConfigListQueryKey.value }); + } else { + queryClient.invalidateQueries({ queryKey: sharedConfigListQueryKey.value }); + } + if (options?.onSuccess) await options.onSuccess(data, variables); + }, + onError: (error, variables) => { + ErrorHandler.handleError(error, true); + if (options?.onError) options.onError(error, variables); + }, + onSettled: (data, error, variables) => { + if (options?.onSettled) options.onSettled(data, error, variables); + }, + }); +}; diff --git a/apps/web/src/common/components/bookmark/composables/use-bookmark-link-update-mutation.ts b/apps/web/src/common/components/bookmark/composables/use-bookmark-link-update-mutation.ts new file mode 100644 index 0000000000..5652b257ae --- /dev/null +++ b/apps/web/src/common/components/bookmark/composables/use-bookmark-link-update-mutation.ts @@ -0,0 +1,59 @@ +import type { ComputedRef } from 'vue'; + +import { useMutation, useQueryClient } from '@tanstack/vue-query'; + +import { useSharedConfigApi } from '@/api-clients/config/shared-config/composables/use-shared-config-api'; +import type { SharedConfigUpdateParameters } from '@/api-clients/config/shared-config/schema/api-verbs/update'; +import type { SharedConfigModel } from '@/api-clients/config/shared-config/schema/model'; +import { useUserConfigApi } from '@/api-clients/config/user-config/composables/use-user-config-api'; +import type { UserConfigUpdateParameters } from '@/api-clients/config/user-config/schema/api-verbs/update'; +import type { UserConfigModel } from '@/api-clients/config/user-config/schema/model'; +import { useServiceQueryKey } from '@/query/core/query-key/use-service-query-key'; + +import ErrorHandler from '@/common/composables/error/errorHandler'; + +import { BOOKMARK_TYPE } from '@/services/workspace-home/constants/workspace-home-constant'; +import type { BookmarkType } from '@/services/workspace-home/types/workspace-home-type'; + +type BookmarkLinkUpdateResult = UserConfigModel> | SharedConfigModel>; +type BookmarkLinkUpdateParameters = Partial; + +interface UseBookmarkLinkUpdateMutationOptions { + type?: ComputedRef; + onSuccess?: (data: BookmarkLinkUpdateResult, variables: BookmarkLinkUpdateParameters) => void|Promise; + onError?: (error: Error, variables: BookmarkLinkUpdateParameters) => void|Promise; + onSettled?: (data: BookmarkLinkUpdateResult | undefined, error: Error|null, variables: BookmarkLinkUpdateParameters) => void|Promise; +} + +export const useBookmarkLinkUpdateMutation = (options?: UseBookmarkLinkUpdateMutationOptions) => { + const queryClient = useQueryClient(); + const { userConfigAPI } = useUserConfigApi(); + const { sharedConfigAPI } = useSharedConfigApi(); + + const { key: userConfigListQueryKey } = useServiceQueryKey('config', 'user-config', 'list'); + const { key: sharedConfigListQueryKey } = useServiceQueryKey('config', 'shared-config', 'list'); + + return useMutation({ + mutationFn: (params: BookmarkLinkUpdateParameters) => { + if (options?.type?.value === BOOKMARK_TYPE.USER) { + return userConfigAPI.update(params as UserConfigUpdateParameters); + } + return sharedConfigAPI.update(params as SharedConfigUpdateParameters); + }, + onSuccess: async (data, variables) => { + if (options?.type?.value === BOOKMARK_TYPE.USER) { + queryClient.invalidateQueries({ queryKey: userConfigListQueryKey.value }); + } else { + queryClient.invalidateQueries({ queryKey: sharedConfigListQueryKey.value }); + } + if (options?.onSuccess) await options.onSuccess(data, variables); + }, + onError: (error, variables) => { + ErrorHandler.handleError(error, true); + if (options?.onError) options.onError(error, variables); + }, + onSettled: (data, error, variables) => { + if (options?.onSettled) options.onSettled(data, error, variables); + }, + }); +}; diff --git a/apps/web/src/common/components/bookmark/composables/use-bookmark.ts b/apps/web/src/common/components/bookmark/composables/use-bookmark.ts index 34c4380044..7fb2cf40d8 100644 --- a/apps/web/src/common/components/bookmark/composables/use-bookmark.ts +++ b/apps/web/src/common/components/bookmark/composables/use-bookmark.ts @@ -8,7 +8,7 @@ export const fetchFavicon = async (link: string): Promise => { return undefined; } }; -const extractBaseURL = (url: string) => { +export const extractBaseURL = (url: string) => { const parser = document.createElement('a'); parser.href = url; return `${parser.protocol}//${parser.host}`; diff --git a/apps/web/src/common/components/bookmark/composables/use-shared-bookmark-folder-list-query.ts b/apps/web/src/common/components/bookmark/composables/use-shared-bookmark-folder-list-query.ts new file mode 100644 index 0000000000..8e6eca6730 --- /dev/null +++ b/apps/web/src/common/components/bookmark/composables/use-shared-bookmark-folder-list-query.ts @@ -0,0 +1,85 @@ +import { + computed, +} from 'vue'; +import type { ComputedRef } from 'vue'; + +import { useQueryClient } from '@tanstack/vue-query'; + +import type { ConsoleFilter } from '@cloudforet/core-lib/query/type'; +import { ApiQueryHelper } from '@cloudforet/core-lib/space-connector/helper'; + +import { useSharedConfigApi } from '@/api-clients/config/shared-config/composables/use-shared-config-api'; +import { useServiceQueryKey } from '@/query/core/query-key/use-service-query-key'; +import { useScopedQuery } from '@/query/service-query/use-scoped-query'; + +import { useAppContextStore } from '@/store/app-context/app-context-store'; +import { useUserWorkspaceStore } from '@/store/app-context/workspace/user-workspace-store'; + +import type { BookmarkItem } from '@/common/components/bookmark/type/type'; + +import { BOOKMARK_TYPE } from '@/services/workspace-home/constants/workspace-home-constant'; +import type { BookmarkType } from '@/services/workspace-home/types/workspace-home-type'; + +interface UseSharedBookmarkFolderListQueryReturn { + bookmarkFolderList: ComputedRef; + isFetching: ComputedRef; + refresh: () => void; +} +interface UseSharedBookmarkFolderListQueryParams { + scope: ComputedRef; +} + +export const useSharedBookmarkFolderListQuery = ({ scope }: UseSharedBookmarkFolderListQueryParams): UseSharedBookmarkFolderListQueryReturn => { + const queryClient = useQueryClient(); + const appContextStore = useAppContextStore(); + const userWorkspaceStore = useUserWorkspaceStore(); + + const isAdminMode = computed(() => appContextStore.getters.isAdminMode); + const currentWorkspaceId = computed(() => userWorkspaceStore.getters.currentWorkspaceId); + + const { sharedConfigAPI } = useSharedConfigApi(); + const { key: sharedConfigQueryKey, params: sharedConfigParams } = useServiceQueryKey('config', 'shared-config', 'list', { + params: computed(() => { + const defaultFilter: ConsoleFilter[] = [ + { k: 'name', v: 'console:bookmark', o: '' }, + { k: 'data.link', v: null, o: '=' }, + ]; + if (!isAdminMode.value) { + defaultFilter.push({ k: 'data.workspaceId', v: currentWorkspaceId.value || '', o: '=' }); + } + + const bookmarkFolderListApiQuery = new ApiQueryHelper() + .setSort('updated_at', true) + .setFilters(defaultFilter); + return { query: bookmarkFolderListApiQuery.data }; + }), + }); + + const { + data: bookmarkFolderListData, + isFetching, + } = useScopedQuery({ + queryKey: sharedConfigQueryKey, + queryFn: () => sharedConfigAPI.list(sharedConfigParams.value), + enabled: computed(() => scope.value !== BOOKMARK_TYPE.USER), + staleTime: 1000 * 60 * 2, + gcTime: 1000 * 60 * 2, + }, ['DOMAIN', 'WORKSPACE']); + + const refinedBookmarkFolderList = computed(() => (bookmarkFolderListData.value?.results || []).map((i) => ({ + ...i.data, + id: i.name, + } as BookmarkItem))); + + const bookmarkFolderList = computed(() => (isAdminMode.value ? refinedBookmarkFolderList.value?.filter((i) => i.isGlobal) : refinedBookmarkFolderList.value)); + + const refresh = () => { + queryClient.invalidateQueries({ queryKey: sharedConfigQueryKey.value }); + }; + + return { + bookmarkFolderList, + isFetching: computed(() => isFetching.value), + refresh, + }; +}; diff --git a/apps/web/src/common/components/bookmark/composables/use-user-bookmark-folder-list-query.ts b/apps/web/src/common/components/bookmark/composables/use-user-bookmark-folder-list-query.ts new file mode 100644 index 0000000000..35dc6d375d --- /dev/null +++ b/apps/web/src/common/components/bookmark/composables/use-user-bookmark-folder-list-query.ts @@ -0,0 +1,86 @@ +import { + computed, +} from 'vue'; +import type { ComputedRef } from 'vue'; + +import { useQueryClient } from '@tanstack/vue-query'; + +import type { ConsoleFilter } from '@cloudforet/core-lib/query/type'; +import { ApiQueryHelper } from '@cloudforet/core-lib/space-connector/helper'; + +import { useUserConfigApi } from '@/api-clients/config/user-config/composables/use-user-config-api'; +import { useServiceQueryKey } from '@/query/core/query-key/use-service-query-key'; +import { useScopedQuery } from '@/query/service-query/use-scoped-query'; + +import { useAppContextStore } from '@/store/app-context/app-context-store'; +import { useUserWorkspaceStore } from '@/store/app-context/workspace/user-workspace-store'; + +import type { BookmarkItem } from '@/common/components/bookmark/type/type'; + +import { BOOKMARK_TYPE } from '@/services/workspace-home/constants/workspace-home-constant'; +import type { BookmarkType } from '@/services/workspace-home/types/workspace-home-type'; + +interface UseUserBookmarkFolderListQueryReturn { + bookmarkFolderList: ComputedRef; + isFetching: ComputedRef; + refresh: () => void; +} +interface UseUserBookmarkFolderListQueryParams { + scope: ComputedRef; +} + +export const useUserBookmarkFolderListQuery = ({ scope }: UseUserBookmarkFolderListQueryParams): UseUserBookmarkFolderListQueryReturn => { + const queryClient = useQueryClient(); + const appContextStore = useAppContextStore(); + const userWorkspaceStore = useUserWorkspaceStore(); + + const isAdminMode = computed(() => appContextStore.getters.isAdminMode); + const currentWorkspaceId = computed(() => userWorkspaceStore.getters.currentWorkspaceId); + + const { userConfigAPI } = useUserConfigApi(); + const { key: userConfigQueryKey, params: userConfigParams } = useServiceQueryKey('config', 'user-config', 'list', { + params: computed(() => { + const defaultFilter: ConsoleFilter[] = [ + { k: 'name', v: 'console:bookmark', o: '' }, + { k: 'data.link', v: null, o: '=' }, + ]; + if (!isAdminMode.value) { + defaultFilter.push({ k: 'data.workspaceId', v: currentWorkspaceId.value || '', o: '=' }); + } + + const bookmarkFolderListApiQuery = new ApiQueryHelper() + .setSort('updated_at', true) + .setFilters(defaultFilter); + + return { query: bookmarkFolderListApiQuery.data }; + }), + }); + + const { + data: bookmarkFolderListData, + isFetching, + } = useScopedQuery({ + queryKey: userConfigQueryKey, + queryFn: () => userConfigAPI.list(userConfigParams.value), + enabled: computed(() => scope.value === BOOKMARK_TYPE.USER), + staleTime: 1000 * 60 * 2, + gcTime: 1000 * 60 * 2, + }, ['DOMAIN', 'WORKSPACE']); + + const refinedBookmarkFolderList = computed(() => (bookmarkFolderListData.value?.results || []).map((i) => ({ + ...i.data, + id: i.name, + } as BookmarkItem))); + + const bookmarkFolderList = computed(() => (isAdminMode.value ? refinedBookmarkFolderList.value?.filter((i) => i.isGlobal) : refinedBookmarkFolderList.value)); + + const refresh = () => { + queryClient.invalidateQueries({ queryKey: userConfigQueryKey.value }); + }; + + return { + bookmarkFolderList, + isFetching: computed(() => isFetching.value), + refresh, + }; +}; diff --git a/apps/web/src/common/components/bookmark/store/bookmark-store.ts b/apps/web/src/common/components/bookmark/store/bookmark-store.ts index 2c5eef5a49..eb28b6768f 100644 --- a/apps/web/src/common/components/bookmark/store/bookmark-store.ts +++ b/apps/web/src/common/components/bookmark/store/bookmark-store.ts @@ -1,18 +1,9 @@ -import { computed, reactive } from 'vue'; +import { reactive } from 'vue'; import type { TranslateResult } from 'vue-i18n'; import { defineStore } from 'pinia'; -import { SpaceConnector } from '@cloudforet/core-lib/space-connector'; - -import { useAppContextStore } from '@/store/app-context/app-context-store'; -import { useUserWorkspaceStore } from '@/store/app-context/workspace/user-workspace-store'; - -import getRandomId from '@/lib/random-id-generator'; - -import { DEFAULT_BOOKMARK } from '@/common/components/bookmark/constant/constant'; import type { BookmarkItem, BookmarkModalStateType, BookmarkModalType } from '@/common/components/bookmark/type/type'; -import ErrorHandler from '@/common/composables/error/errorHandler'; import { BOOKMARK_TYPE } from '@/services/workspace-home/constants/workspace-home-constant'; import type { BookmarkType } from '@/services/workspace-home/types/workspace-home-type'; @@ -26,21 +17,6 @@ interface BookmarkState { } export const useBookmarkStore = defineStore('bookmark', () => { - const userWorkspaceStore = useUserWorkspaceStore(); - const userWorkspaceStoreGetters = userWorkspaceStore.getters; - const appContextStore = useAppContextStore(); - const appContextGetters = appContextStore.getters; - - const _getters = reactive({ - isAdminMode: computed(() => appContextGetters.isAdminMode), - currentWorkspaceId: computed(() => userWorkspaceStoreGetters.currentWorkspaceId), - }); - - const DefaultBookmarkData = DEFAULT_BOOKMARK.map((i) => ({ - ...i, - workspaceId: _getters.currentWorkspaceId, - })); - const state = reactive({ modal: { isNew: undefined, @@ -87,186 +63,10 @@ export const useBookmarkStore = defineStore('bookmark', () => { type: undefined, }; state.bookmarkType = BOOKMARK_TYPE.WORKSPACE; + state.filterByFolder = undefined; state.selectedBookmark = undefined; state.selectedBookmarks = []; }, - createDefaultBookmark: async ({ - workspaceId, - }: { workspaceId?: string }) => { - try { - DefaultBookmarkData.map(async (item) => { - await actions.createBookmarkLink({ - name: item.name as string || '', - link: item.link || '', - imgIcon: item.imgIcon, - type: BOOKMARK_TYPE.WORKSPACE, - isDefault: true, - workspaceId, - }); - }); - } catch (e) { - ErrorHandler.handleError(e); - } - }, - createBookmarkFolder: async (name: string, type?: string) => { - try { - let fetcher; - let resource_group: undefined|string; - if (type === BOOKMARK_TYPE.USER) { - fetcher = SpaceConnector.clientV2.config.userConfig.set; - resource_group = undefined; - } else if (_getters.isAdminMode || type === BOOKMARK_TYPE.WORKSPACE || state.bookmarkType === BOOKMARK_TYPE.WORKSPACE) { - fetcher = SpaceConnector.clientV2.config.sharedConfig.create; - resource_group = _getters.isAdminMode ? 'DOMAIN' : 'WORKSPACE'; - } - await fetcher({ - name: `console:bookmark:${name}`, - data: { - workspaceId: _getters.currentWorkspaceId, - name, - isGlobal: _getters.isAdminMode, - }, - resource_group, - }); - } catch (e) { - ErrorHandler.handleError(e); - throw e; - } - }, - createBookmarkLink: async ({ - name, link, folder, imgIcon, type, isDefault, workspaceId, - }: { name?: string|TranslateResult, link?: string, folder?: string, imgIcon?: string, type?: BookmarkType, isDefault?: boolean, workspaceId?: string}) => { - try { - let fetcher; - let resource_group: undefined|string; - if (type === BOOKMARK_TYPE.USER) { - fetcher = SpaceConnector.clientV2.config.userConfig.set; - resource_group = undefined; - } else if (_getters.isAdminMode || type === BOOKMARK_TYPE.WORKSPACE || state.bookmarkType === BOOKMARK_TYPE.WORKSPACE) { - fetcher = SpaceConnector.clientV2.config.sharedConfig.create; - if (_getters.isAdminMode) { - if (isDefault) { - resource_group = 'WORKSPACE'; - } else { - resource_group = 'DOMAIN'; - } - } else { - resource_group = 'WORKSPACE'; - } - } - await fetcher({ - name: `console:bookmark:${folder}:${name}-${getRandomId()}`, - data: { - workspaceId: _getters.currentWorkspaceId || workspaceId, - name, - folder, - link, - imgIcon, - isGlobal: resource_group === 'DOMAIN', - }, - resource_group, - workspace_id: workspaceId, - }); - } catch (e) { - ErrorHandler.handleError(e); - throw e; - } - }, - updateBookmarkFolder: async ({ - id, name, bookmarkList, - }: { id?: string, name: string, bookmarkList: BookmarkItem[] }) => { - try { - let fetcher; - if (state.bookmarkType === BOOKMARK_TYPE.USER) { - fetcher = SpaceConnector.clientV2.config.userConfig.update; - } else if (_getters.isAdminMode || state.bookmarkType === BOOKMARK_TYPE.WORKSPACE) { - fetcher = SpaceConnector.clientV2.config.sharedConfig.update; - } - await fetcher({ - name: id || '', - data: { - workspaceId: _getters.currentWorkspaceId, - name, - isGlobal: _getters.isAdminMode, - }, - }); - const foldersLinkItems = bookmarkList.filter((i) => i.folder === id); - await Promise.all(foldersLinkItems.map(async (item) => { - await actions.updateBookmarkLink({ - id: item.id || '', - name: item.name as string || '', - link: item.link || '', - folder: item.folder, - }); - })); - } catch (e) { - ErrorHandler.handleError(e); - throw e; - } - }, - updateBookmarkLink: async ({ - id, name, link, folder, - }: { id: string, name?: string|TranslateResult, link?: string, folder?: string}) => { - try { - let fetcher; - if (state.bookmarkType === BOOKMARK_TYPE.USER) { - fetcher = SpaceConnector.clientV2.config.userConfig.update; - } else if (_getters.isAdminMode || state.bookmarkType === BOOKMARK_TYPE.WORKSPACE) { - fetcher = SpaceConnector.clientV2.config.sharedConfig.update; - } - await fetcher({ - name: id, - data: { - workspaceId: _getters.currentWorkspaceId, - name, - folder, - link, - isGlobal: _getters.isAdminMode, - }, - }); - } catch (e) { - ErrorHandler.handleError(e); - throw e; - } - }, - deleteBookmarkFolder: async ({ - id, bookmarkList, - }: { id?: string, bookmarkList: BookmarkItem[] }) => { - try { - let fetcher; - if (state.bookmarkType === BOOKMARK_TYPE.USER) { - fetcher = SpaceConnector.clientV2.config.userConfig.delete; - } else if (_getters.isAdminMode || state.bookmarkType === BOOKMARK_TYPE.WORKSPACE) { - fetcher = SpaceConnector.clientV2.config.sharedConfig.delete; - } - await fetcher({ - name: id || '', - }); - const foldersLinkItems = bookmarkList.filter((i) => i.folder === id); - await Promise.all(foldersLinkItems.map(async (item) => { - await actions.deleteBookmarkLink(item.id || ''); - })); - } catch (e) { - ErrorHandler.handleError(e); - throw e; - } - }, - deleteBookmarkLink: async (id?: string) => { - try { - let fetcher; - if (state.bookmarkType === BOOKMARK_TYPE.USER) { - fetcher = SpaceConnector.clientV2.config.userConfig.delete; - } else if (_getters.isAdminMode || state.bookmarkType === BOOKMARK_TYPE.WORKSPACE) { - fetcher = SpaceConnector.clientV2.config.sharedConfig.delete; - } - await fetcher({ - name: id || '', - }); - } catch (e) { - ErrorHandler.handleError(e); - throw e; - } - }, }; return { diff --git a/apps/web/src/common/components/mfa/composables/use-user-profile-enable-mfa-query.ts b/apps/web/src/common/components/mfa/composables/use-user-profile-enable-mfa-query.ts index d174ec08bb..a574118903 100644 --- a/apps/web/src/common/components/mfa/composables/use-user-profile-enable-mfa-query.ts +++ b/apps/web/src/common/components/mfa/composables/use-user-profile-enable-mfa-query.ts @@ -4,7 +4,7 @@ import { useQuery } from '@tanstack/vue-query'; import { useUserProfileApi } from '@/api-clients/identity/user-profile/composables/use-user-profile-api'; import type { UserProfileEnableMfaParameters } from '@/api-clients/identity/user-profile/schema/api-verbs/enable-mfa'; -import { useServiceQueryKey } from '@/query/query-key/use-service-query-key'; +import { useServiceQueryKey } from '@/query/core/query-key/use-service-query-key'; interface UserUserProfileEnableMfaQueryOptions { params: ComputedRef; diff --git a/apps/web/src/common/components/modals/UserAPIKeyModal.vue b/apps/web/src/common/components/modals/UserAPIKeyModal.vue index 49556daf86..e217a8dc3b 100644 --- a/apps/web/src/common/components/modals/UserAPIKeyModal.vue +++ b/apps/web/src/common/components/modals/UserAPIKeyModal.vue @@ -28,7 +28,6 @@ const props = defineProps<{ apiKeyItem?: AppModel; }>(); const emit = defineEmits<{(event: 'visible', visible: boolean): void; - (event: 'clickButton'): void; }>(); const endpointStore = useEndpointStore(); const endpointGetters = endpointStore.getters; @@ -62,10 +61,6 @@ const onClickDownloadFile = (fileType: FileType) => { a.remove(); }; -const onClickConfirm = () => { - emit('clickButton'); -}; - const makeJsonItem = () => { state.clientSecretCode = JSON.stringify(props.apiKeyItem, null, 4); }; @@ -100,7 +95,6 @@ watch(() => props.visible, async (visible) => { size="md" :header-title="$t('IDENTITY.USER.API_KEY.MODAL_TITLE')" :button-text="$t('COMPONENT.BUTTON_MODAL.CONFIRM')" - @clickButton="onClickConfirm" >