From e3dfa2997acbcfad40a1fc302795c07d2ff1c3fa Mon Sep 17 00:00:00 2001 From: Moritz Kirstein Date: Fri, 12 May 2023 10:24:05 +0200 Subject: [PATCH] Add consumer parameter types (#1730) * feat: add ConsumerParameter type * feat: add export for ConsumerParameter type * fix: ConsumerParameter.required type --------- Co-authored-by: Luca Milanese --- src/@types/DDO/ConsumerParameter.ts | 43 +++++++++++++++++++++++++++++ src/@types/DDO/Metadata.ts | 8 ++++++ src/@types/DDO/Service.ts | 8 ++++++ src/@types/index.ts | 1 + 4 files changed, 60 insertions(+) create mode 100644 src/@types/DDO/ConsumerParameter.ts diff --git a/src/@types/DDO/ConsumerParameter.ts b/src/@types/DDO/ConsumerParameter.ts new file mode 100644 index 00000000..e46c95cd --- /dev/null +++ b/src/@types/DDO/ConsumerParameter.ts @@ -0,0 +1,43 @@ +export interface ConsumerParameter { + /** + * Parameter name. + * @type {string} + */ + name: string + + /** + * Field type. + * @type {'text' | 'number' | 'boolean' | 'select'} + */ + type: 'text' | 'number' | 'boolean' | 'select' + + /** + * Displayed field label. + * @type {string} + */ + label: string + + /** + * Defines if customer input for this field is mandatory. + * @type {boolean} + */ + required: boolean + + /** + * Field description. + * @type {string} + */ + description: string + + /** + * Field default value. For select types, string key of default option. + * @type {string} + */ + default: string + + /** + * For select types, a list of options. + * @type {string} + */ + options?: string +} diff --git a/src/@types/DDO/Metadata.ts b/src/@types/DDO/Metadata.ts index d9da6618..bdb8a8b8 100644 --- a/src/@types/DDO/Metadata.ts +++ b/src/@types/DDO/Metadata.ts @@ -1,3 +1,5 @@ +import { ConsumerParameter } from './ConsumerParameter' + export interface MetadataAlgorithm { /** * Language used to implement the software. @@ -46,6 +48,12 @@ export interface MetadataAlgorithm { */ checksum: string } + + /** + * Array of objects describing the consumer parameters + * @type {ConsumerParameter[]} + */ + consumerParameters?: ConsumerParameter[] } export interface Metadata { diff --git a/src/@types/DDO/Service.ts b/src/@types/DDO/Service.ts index 5cf7ee78..256e164a 100644 --- a/src/@types/DDO/Service.ts +++ b/src/@types/DDO/Service.ts @@ -1,3 +1,5 @@ +import { ConsumerParameter } from './ConsumerParameter' + export interface PublisherTrustedAlgorithm { /** * The DID of the algorithm which is trusted by the publisher. @@ -102,6 +104,12 @@ export interface Service { */ compute?: ServiceComputeOptions + /** + * Array of objects describing the consumer parameters + * @type {ConsumerParameter[]} + */ + consumerParameters?: ConsumerParameter[] + /** * Stores service specific additional information, this is customizable by publisher * @type {any} diff --git a/src/@types/index.ts b/src/@types/index.ts index f3dcebd3..37fa12dc 100644 --- a/src/@types/index.ts +++ b/src/@types/index.ts @@ -2,6 +2,7 @@ export * from './DDO/Credentials' export * from './DDO/DDO' export * from './DDO/Event' export * from './DDO/Metadata' +export * from './DDO/ConsumerParameter' export * from './DDO/Service' export * from './Asset' export * from './File'