From f95036a3360bd76d9f4b9e2725f4d344343fe41b Mon Sep 17 00:00:00 2001 From: Arda TANRIKULU Date: Tue, 2 Aug 2022 22:33:53 +0300 Subject: [PATCH] Rewrite JSON Schema Visitor (#4216) * Rewrite JSON Schema Visitor * Better visitor code * Fix tests * YES * Even more --- .changeset/red-squids-train.md | 10 + .../json-machete/src/compareJSONSchemas.ts | 149 +- packages/json-machete/src/healJSONSchema.ts | 471 +- .../json-machete/src/referenceJSONSchema.ts | 89 +- packages/json-machete/src/visitJSONSchema.ts | 260 +- .../tests/compareJSONSchemas.test.ts | 4 +- .../src/getComposerFromJSONSchema.ts | 847 ++-- .../json-schema/src/getUnionTypeComposers.ts | 116 +- .../json-schema/test/execution.test.ts | 3 - .../json-schema/test/fixtures/book.json | 46 + .../test/getComposerFromSchema.test.ts | 3 +- .../json-schema/test/integration.test.ts | 91 + .../tests/__snapshots__/docusign.test.ts.snap | 3969 ++++++----------- packages/types/src/config-schema.json | 6 +- packages/types/src/config.ts | 18 +- .../JsonSchemaHandler.generated.md | 6 +- .../JsonSchemaHandlerBundle.generated.md | 6 +- .../QueryStringOptions.generated.md | 6 +- 18 files changed, 2473 insertions(+), 3627 deletions(-) create mode 100644 .changeset/red-squids-train.md create mode 100644 packages/loaders/json-schema/test/fixtures/book.json create mode 100644 packages/loaders/json-schema/test/integration.test.ts diff --git a/.changeset/red-squids-train.md b/.changeset/red-squids-train.md new file mode 100644 index 0000000000000..5a15faeee88d3 --- /dev/null +++ b/.changeset/red-squids-train.md @@ -0,0 +1,10 @@ +--- +"json-machete": patch +"@omnigraph/json-schema": patch +"@omnigraph/openapi": patch +"@graphql-mesh/types": patch +--- + +Rewrite JSON Schema visitor and support circular dependencies in a better way + +Now `visitJSONSchema` takes two different visitor functions instead of `enter` and `leave`, previously we used to handle only `leave`. diff --git a/packages/json-machete/src/compareJSONSchemas.ts b/packages/json-machete/src/compareJSONSchemas.ts index 77ab325adbf7e..2302e3ddb0f7a 100644 --- a/packages/json-machete/src/compareJSONSchemas.ts +++ b/packages/json-machete/src/compareJSONSchemas.ts @@ -1,109 +1,110 @@ import { JSONSchema } from './types'; -import { OnCircularReference, visitJSONSchema } from './visitJSONSchema'; +import { visitJSONSchema } from './visitJSONSchema'; import { AggregateError } from '@graphql-tools/utils'; import { resolvePath } from './dereferenceObject'; -import { process } from '@graphql-mesh/cross-helpers'; export async function compareJSONSchemas(oldSchema: JSONSchema, newSchema: JSONSchema) { const breakingChanges: string[] = []; await visitJSONSchema( oldSchema, - (oldSubSchema, { path }) => { - if (typeof newSchema === 'object') { - const newSubSchema = resolvePath(path, newSchema); - if (typeof oldSubSchema === 'boolean') { - if (newSubSchema !== oldSubSchema) { - breakingChanges.push(`${path} is changed from ${oldSubSchema} to ${newSubSchema}`); - } - } else { - if (oldSubSchema.$ref) { - if (newSubSchema?.$ref !== oldSubSchema.$ref) { - breakingChanges.push(`${path}/$ref is changed from ${oldSubSchema.$ref} to ${newSubSchema?.$ref}`); + { + enter: (oldSubSchema: JSONSchema, { path }) => { + if (typeof newSchema === 'object') { + const newSubSchema = resolvePath(path, newSchema); + if (typeof oldSubSchema === 'boolean') { + if (newSubSchema !== oldSubSchema) { + breakingChanges.push(`${path} is changed from ${oldSubSchema} to ${newSubSchema}`); } - } - if (oldSubSchema.const) { - if (newSubSchema?.const !== oldSubSchema.const) { - breakingChanges.push(`${path}/const is changed from ${oldSubSchema.const} to ${newSubSchema?.const}`); + } else { + if (oldSubSchema.$ref) { + if (newSubSchema?.$ref !== oldSubSchema.$ref) { + breakingChanges.push(`${path}/$ref is changed from ${oldSubSchema.$ref} to ${newSubSchema?.$ref}`); + } } - } - if (oldSubSchema.enum) { - for (const enumValue of oldSubSchema.enum) { - if (!newSubSchema?.enum?.includes(enumValue)) { - breakingChanges.push(`${path}/enum doesn't have ${enumValue} anymore`); + if (oldSubSchema.const) { + if (newSubSchema?.const !== oldSubSchema.const) { + breakingChanges.push(`${path}/const is changed from ${oldSubSchema.const} to ${newSubSchema?.const}`); } } - } - if (oldSubSchema.format) { - if (newSubSchema?.format !== oldSubSchema.format) { - breakingChanges.push(`${path}/format is changed from ${oldSubSchema.format} to ${newSubSchema?.format}`); + if (oldSubSchema.enum) { + for (const enumValue of oldSubSchema.enum) { + if (!newSubSchema?.enum?.includes(enumValue)) { + breakingChanges.push(`${path}/enum doesn't have ${enumValue} anymore`); + } + } } - } - if (oldSubSchema.maxLength) { - if (oldSubSchema.maxLength > newSubSchema?.maxLength) { - breakingChanges.push( - `${path}/maxLength is changed from ${oldSubSchema.maxLength} to ${newSubSchema?.maxLength}` - ); + if (oldSubSchema.format) { + if (newSubSchema?.format !== oldSubSchema.format) { + breakingChanges.push( + `${path}/format is changed from ${oldSubSchema.format} to ${newSubSchema?.format}` + ); + } } - } - if (oldSubSchema.minLength) { - if (oldSubSchema.minLength < newSubSchema?.minLength) { - breakingChanges.push( - `${path}/minLength is changed from ${oldSubSchema.minLength} to ${newSubSchema?.minLength}` - ); + if (oldSubSchema.maxLength) { + if (oldSubSchema.maxLength > newSubSchema?.maxLength) { + breakingChanges.push( + `${path}/maxLength is changed from ${oldSubSchema.maxLength} to ${newSubSchema?.maxLength}` + ); + } } - } - if (oldSubSchema.pattern) { - if (newSubSchema?.pattern?.toString() !== oldSubSchema.pattern.toString()) { - breakingChanges.push( - `${path}/pattern is changed from ${oldSubSchema.pattern} to ${newSubSchema?.pattern}` - ); + if (oldSubSchema.minLength) { + if (oldSubSchema.minLength < newSubSchema?.minLength) { + breakingChanges.push( + `${path}/minLength is changed from ${oldSubSchema.minLength} to ${newSubSchema?.minLength}` + ); + } + } + if (oldSubSchema.pattern) { + if (newSubSchema?.pattern?.toString() !== oldSubSchema.pattern.toString()) { + breakingChanges.push( + `${path}/pattern is changed from ${oldSubSchema.pattern} to ${newSubSchema?.pattern}` + ); + } } - } - if (oldSubSchema.properties) { - for (const propertyName in oldSubSchema.properties) { - if (newSubSchema?.properties?.[propertyName] == null) { - breakingChanges.push(`${path}/properties doesn't have ${propertyName}`); + if (oldSubSchema.properties) { + for (const propertyName in oldSubSchema.properties) { + if (newSubSchema?.properties?.[propertyName] == null) { + breakingChanges.push(`${path}/properties doesn't have ${propertyName}`); + } } } - } - if (newSubSchema?.required) { - for (const propertyName of newSubSchema.required) { - if (!oldSubSchema.required?.includes(propertyName)) { - breakingChanges.push(`${path}/required has ${propertyName} an extra`); + if (newSubSchema?.required) { + for (const propertyName of newSubSchema.required) { + if (!oldSubSchema.required?.includes(propertyName)) { + breakingChanges.push(`${path}/required has ${propertyName} an extra`); + } } } - } - if (oldSubSchema.title) { - if (newSubSchema?.title !== oldSubSchema.title) { - breakingChanges.push(`${path}/title is changed from ${oldSubSchema.title} to ${newSubSchema?.title}`); + if (oldSubSchema.title) { + if (newSubSchema?.title !== oldSubSchema.title) { + breakingChanges.push(`${path}/title is changed from ${oldSubSchema.title} to ${newSubSchema?.title}`); + } } - } - if (oldSubSchema.type) { - if ( - typeof newSubSchema?.type === 'string' - ? newSubSchema?.type !== oldSubSchema.type - : Array.isArray(newSubSchema?.type) - ? Array.isArray(oldSubSchema.type) - ? oldSubSchema.type.some(typeName => !newSubSchema?.type.includes(typeName)) - : !newSubSchema?.type.includes(oldSubSchema.type) - : true - ) { - breakingChanges.push(`${path}/type is changed from ${oldSubSchema.type} to ${newSubSchema?.type}`); + if (oldSubSchema.type) { + if ( + typeof newSubSchema?.type === 'string' + ? newSubSchema?.type !== oldSubSchema.type + : Array.isArray(newSubSchema?.type) + ? Array.isArray(oldSubSchema.type) + ? oldSubSchema.type.some(typeName => !newSubSchema?.type.includes(typeName)) + : !newSubSchema?.type.includes(oldSubSchema.type) + : true + ) { + breakingChanges.push(`${path}/type is changed from ${oldSubSchema.type} to ${newSubSchema?.type}`); + } } } } - } - return oldSubSchema; + return oldSubSchema; + }, }, { visitedSubschemaResultMap: new WeakMap(), path: '', - keepObjectRef: true, - onCircularReference: process.env.DEBUG ? OnCircularReference.WARN : OnCircularReference.IGNORE, } ); if (breakingChanges.length > 0) { diff --git a/packages/json-machete/src/healJSONSchema.ts b/packages/json-machete/src/healJSONSchema.ts index 3a857dd355c60..398874e14a723 100644 --- a/packages/json-machete/src/healJSONSchema.ts +++ b/packages/json-machete/src/healJSONSchema.ts @@ -1,7 +1,8 @@ -import { util, process } from '@graphql-mesh/cross-helpers'; -import { JSONSchema } from './types'; -import { OnCircularReference, visitJSONSchema } from './visitJSONSchema'; +import { process } from '@graphql-mesh/cross-helpers'; +import { JSONSchema, JSONSchemaObject } from './types'; +import { visitJSONSchema } from './visitJSONSchema'; import toJsonSchema from 'to-json-schema'; +import { inspect } from '@graphql-tools/utils'; const asArray = (value: T | T[]): T[] => (Array.isArray(value) ? value : [value]); @@ -23,49 +24,117 @@ const JSONSchemaStringFormats = [ 'uri', ]; -function deduplicateJSONSchema(schema: JSONSchema, seenMap = new Map()) { - if (typeof schema === 'object' && schema != null) { +const titleResolvedRefReservedMap = new WeakMap< + JSONSchemaObject, + { + title?: string; + $resolvedRef?: string; + } +>(); + +function removeTitlesAndResolvedRefs(schema: JSONSchema) { + if (typeof schema === 'object' && schema != null && !titleResolvedRefReservedMap.has(schema)) { if (!schema.$comment) { const titleReserved = schema.title; if (titleReserved) { schema.title = undefined; } - const stringified = util.inspect(schema, undefined, 3); - if (titleReserved) { - schema.title = titleReserved; + const resolvedRefReserved = schema.$resolvedRef; + if (resolvedRefReserved) { + schema.$resolvedRef = undefined; } + titleResolvedRefReservedMap.set(schema, { + title: titleReserved, + $resolvedRef: resolvedRefReserved, + }); + for (const key in schema) { + if (key === 'properties') { + for (const propertyName in schema.properties) { + schema[key][propertyName] = removeTitlesAndResolvedRefs(schema[key][propertyName]); + } + } else { + schema[key] = removeTitlesAndResolvedRefs(schema[key]); + } + } + } + } + return schema; +} + +function deduplicateJSONSchema(schema: JSONSchema, seenMap = new Map()) { + if (typeof schema === 'object' && schema != null) { + if (!schema.$comment) { + const stringified = inspect(schema.properties || schema) + .split('[Circular]') + .join('[Object]'); const seen = seenMap.get(stringified); if (seen) { return seen; } seenMap.set(stringified, schema); + for (const key in schema) { + if (key === 'properties') { + for (const propertyName in schema.properties) { + schema.properties[propertyName] = deduplicateJSONSchema(schema.properties[propertyName], seenMap); + } + } else { + schema[key] = deduplicateJSONSchema(schema[key], seenMap); + } + } } - for (const key in schema) { - schema[key] = deduplicateJSONSchema(schema[key], seenMap); + } + return schema; +} + +const visited = new WeakSet(); + +function addTitlesAndResolvedRefs(schema: JSONSchema) { + if (typeof schema === 'object' && schema != null && !visited.has(schema)) { + visited.add(schema); + if (!schema.$comment) { + const reservedTitleAndResolveRef = titleResolvedRefReservedMap.get(schema); + if (reservedTitleAndResolveRef) { + if (!schema.title && reservedTitleAndResolveRef.title) { + schema.title = reservedTitleAndResolveRef.title; + } + if (!schema.$resolvedRef && reservedTitleAndResolveRef.$resolvedRef) { + schema.$resolvedRef = reservedTitleAndResolveRef.$resolvedRef; + } + } + for (const key in schema) { + if (key === 'properties') { + for (const propertyName in schema.properties) { + schema.properties[propertyName] = addTitlesAndResolvedRefs(schema.properties[propertyName]); + } + } else { + schema[key] = addTitlesAndResolvedRefs(schema[key]); + } + } } } return schema; } + async function getDeduplicatedTitles(schema: JSONSchema): Promise> { const duplicatedTypeNames = new Set(); const seenTypeNames = new Set(); await visitJSONSchema( schema, - subSchema => { - if (typeof subSchema === 'object' && subSchema.title) { - if (seenTypeNames.has(subSchema.title)) { - duplicatedTypeNames.add(subSchema.title); - } else { - seenTypeNames.add(subSchema.title); + { + leave: subSchema => { + if (typeof subSchema === 'object' && subSchema.title) { + if (seenTypeNames.has(subSchema.title)) { + duplicatedTypeNames.add(subSchema.title); + } else { + seenTypeNames.add(subSchema.title); + } } - } - return subSchema; + return subSchema; + }, }, { visitedSubschemaResultMap: new WeakMap(), path: '', - keepObjectRef: true, - onCircularReference: process.env.DEBUG ? OnCircularReference.WARN : OnCircularReference.IGNORE, } ); return duplicatedTypeNames; @@ -74,201 +143,223 @@ export async function healJSONSchema( schema: JSONSchema, options: { noDeduplication?: boolean } = {} ): Promise { - const deduplicatedSchema = options?.noDeduplication ? schema : deduplicateJSONSchema(schema); - const duplicatedTypeNames = await getDeduplicatedTitles(deduplicatedSchema); - return visitJSONSchema( - deduplicatedSchema, - async function healSubschema(subSchema, { path }) { - if (typeof subSchema === 'object') { - if (process.env.DEBUG) { - console.log(`Healing ${path}`); - } - // We don't support following properties - delete subSchema.readOnly; - delete subSchema.writeOnly; - const keys = Object.keys(subSchema); - if (keys.length === 0) { - subSchema.type = 'object'; - subSchema.additionalProperties = true; - } - if (typeof subSchema.additionalProperties === 'object') { - delete subSchema.additionalProperties.readOnly; - delete subSchema.additionalProperties.writeOnly; - if (Object.keys(subSchema.additionalProperties).length === 0) { - subSchema.additionalProperties = true; + let readySchema = schema; + if (!options?.noDeduplication) { + const schemaWithoutResolvedRefAndTitles = removeTitlesAndResolvedRefs(schema); + const deduplicatedSchemaWithoutResolvedRefAndTitles = options?.noDeduplication + ? schema + : deduplicateJSONSchema(schemaWithoutResolvedRefAndTitles); + const deduplicatedSchema = addTitlesAndResolvedRefs(deduplicatedSchemaWithoutResolvedRefAndTitles); + readySchema = deduplicatedSchema; + } + const duplicatedTypeNames = await getDeduplicatedTitles(readySchema); + return visitJSONSchema( + readySchema, + { + enter: async function healSubschema(subSchema, { path }) { + if (typeof subSchema === 'object') { + if (process.env.DEBUG) { + console.log(`Healing ${path}`); } - } - if (subSchema.allOf != null && subSchema.allOf.length === 1) { - const realSubschema = subSchema.allOf[0]; - delete subSchema.allOf; - return realSubschema; - } - if (subSchema.anyOf != null && subSchema.anyOf.length === 1) { - const realSubschema = subSchema.anyOf[0]; - delete subSchema.anyOf; - return realSubschema; - } - if (subSchema.oneOf != null && subSchema.oneOf.length === 1) { - const realSubschema = subSchema.oneOf[0]; - delete subSchema.oneOf; - return realSubschema; - } - if (subSchema.description != null) { - subSchema.description = subSchema.description.trim(); - if (keys.length === 1) { + // We don't support following properties + delete subSchema.readOnly; + delete subSchema.writeOnly; + const keys = Object.keys(subSchema); + if (keys.length === 0) { subSchema.type = 'object'; subSchema.additionalProperties = true; } - } - // Some JSON Schemas use this broken pattern and refer the type using `items` - if (subSchema.type === 'object' && subSchema.items) { - const realSubschema = subSchema.items; - delete subSchema.items; - return realSubschema; - } - if (subSchema.properties && subSchema.type !== 'object') { - subSchema.type = 'object'; - } - if (duplicatedTypeNames.has(subSchema.title)) { - delete subSchema.title; - } - if (typeof subSchema.example === 'object' && !subSchema.type) { - subSchema.type = 'object'; - } - // Try to find the type - if (!subSchema.type) { - // If required exists without properties - if (subSchema.required && !subSchema.properties) { - // Add properties - subSchema.properties = {}; - for (const missingPropertyName of subSchema.required) { - subSchema.properties[missingPropertyName] = { - oneOf: [ - { type: 'string' }, - { type: 'integer' }, - { type: 'boolean' }, - { type: 'object', additionalProperties: true }, - ], - }; + if (typeof subSchema.additionalProperties === 'object') { + delete subSchema.additionalProperties.readOnly; + delete subSchema.additionalProperties.writeOnly; + if (Object.keys(subSchema.additionalProperties).length === 0) { + subSchema.additionalProperties = true; } } - // Properties only exist in objects - if (subSchema.properties || subSchema.patternProperties || 'additionalProperties' in subSchema) { + if (subSchema.allOf != null && subSchema.allOf.length === 1) { + const realSubschema = subSchema.allOf[0]; + delete subSchema.allOf; + return realSubschema; + } + if (subSchema.anyOf != null && subSchema.anyOf.length === 1) { + const realSubschema = subSchema.anyOf[0]; + delete subSchema.anyOf; + return realSubschema; + } + if (subSchema.oneOf != null && subSchema.oneOf.length === 1) { + const realSubschema = subSchema.oneOf[0]; + delete subSchema.oneOf; + return realSubschema; + } + if (subSchema.description != null) { + subSchema.description = subSchema.description.trim(); + if (keys.length === 1) { + subSchema.type = 'object'; + subSchema.additionalProperties = true; + } + } + // Some JSON Schemas use this broken pattern and refer the type using `items` + if (subSchema.type === 'object' && subSchema.items) { + const realSubschema = subSchema.items; + delete subSchema.items; + return realSubschema; + } + if (subSchema.properties && subSchema.type !== 'object') { subSchema.type = 'object'; } - // Items only exist in arrays - if (subSchema.items) { - subSchema.type = 'array'; + if (duplicatedTypeNames.has(subSchema.title)) { + delete subSchema.title; } - if (subSchema.format === 'int64') { - subSchema.type = 'integer'; + if (typeof subSchema.example === 'object' && !subSchema.type) { + subSchema.type = 'object'; } - if (subSchema.format) { - subSchema.type = 'string'; + // Try to find the type + if (!subSchema.type) { + // If required exists without properties + if (subSchema.required && !subSchema.properties) { + // Add properties + subSchema.properties = {}; + for (const missingPropertyName of subSchema.required) { + subSchema.properties[missingPropertyName] = { + oneOf: [ + { type: 'string' }, + { type: 'integer' }, + { type: 'boolean' }, + { type: 'number' }, + { type: 'object', additionalProperties: true }, + ], + }; + } + } + // Properties only exist in objects + if (subSchema.properties || subSchema.patternProperties || 'additionalProperties' in subSchema) { + subSchema.type = 'object'; + } + // Items only exist in arrays + if (subSchema.items) { + subSchema.type = 'array'; + // Items should be an object + if (Array.isArray(subSchema.items)) { + if (subSchema.items.length === 0) { + subSchema.items = subSchema.items[0]; + } else { + subSchema.items = { + oneOf: subSchema.items, + }; + } + } + } + if (subSchema.format === 'int64') { + subSchema.type = 'integer'; + } + if (subSchema.format) { + subSchema.type = 'string'; + } } - } - if (subSchema.type === 'string' && !subSchema.format && (subSchema.examples || subSchema.example)) { - const examples = asArray(subSchema.examples || subSchema.example || []); - if (examples?.length) { - const { format } = toJsonSchema(examples[0]); - if (format) { - subSchema.format = format; + if (subSchema.type === 'string' && !subSchema.format && (subSchema.examples || subSchema.example)) { + const examples = asArray(subSchema.examples || subSchema.example || []); + if (examples?.length) { + const { format } = toJsonSchema(examples[0]); + if (format) { + subSchema.format = format; + } } } - } - if (subSchema.format === 'dateTime') { - subSchema.format = 'date-time'; - } - if (subSchema.type === 'string' && subSchema.format) { - if (!JSONSchemaStringFormats.includes(subSchema.format)) { - delete subSchema.format; + if (subSchema.format === 'dateTime') { + subSchema.format = 'date-time'; } - } - if (subSchema.required) { - if (!Array.isArray(subSchema.required)) { - delete subSchema.required; + if (subSchema.type === 'string' && subSchema.format) { + if (!JSONSchemaStringFormats.includes(subSchema.format)) { + delete subSchema.format; + } } - } - // If it is an object type but no properties given while example is available - if (((subSchema.type === 'object' && !subSchema.properties) || !subSchema.type) && subSchema.example) { - const generatedSchema = toJsonSchema(subSchema.example, { - required: false, - objects: { - additionalProperties: false, - }, - strings: { - detectFormat: true, - }, - arrays: { - mode: 'first', - }, - }); - const healedGeneratedSchema: any = await healJSONSchema(generatedSchema as any, options); - subSchema.type = asArray(healedGeneratedSchema.type)[0] as any; - subSchema.properties = healedGeneratedSchema.properties; - // If type for properties is already given, use it - if (typeof subSchema.additionalProperties === 'object') { - for (const propertyName in subSchema.properties) { - subSchema.properties[propertyName] = subSchema.additionalProperties; + if (subSchema.required) { + if (!Array.isArray(subSchema.required)) { + delete subSchema.required; } } - } - if (!subSchema.title && !subSchema.$ref && subSchema.type !== 'array' && !subSchema.items) { - const realPath = subSchema.$resolvedRef || path; - // Try to get definition name if missing - const splitByDefinitions = realPath.includes('/components/schemas/') - ? realPath.split('/components/schemas/') - : realPath.split('/definitions/'); - const maybeDefinitionBasedPath = - splitByDefinitions.length > 1 ? splitByDefinitions[splitByDefinitions.length - 1] : realPath; - let pathBasedName = maybeDefinitionBasedPath - .split('~1') - .join('/') - .split('/properties') - .join('') - .split('-') - .join('_') - .split('/') - .filter(Boolean) - .join('_'); - switch (subSchema.type) { - case 'string': - // If it has special pattern, use path based name because it is specific - if (subSchema.pattern || subSchema.maxLength || subSchema.minLength || subSchema.enum) { - subSchema.title = pathBasedName; - // Otherwise use the format name - } else if (subSchema.format) { - subSchema.title = subSchema.format; - } - break; - case 'integer': - // Use format name - if (subSchema.format) { - subSchema.title = subSchema.format; + // If it is an object type but no properties given while example is available + if (((subSchema.type === 'object' && !subSchema.properties) || !subSchema.type) && subSchema.example) { + const generatedSchema = toJsonSchema(subSchema.example, { + required: false, + objects: { + additionalProperties: false, + }, + strings: { + detectFormat: true, + }, + arrays: { + mode: 'first', + }, + }); + const healedGeneratedSchema: any = await healJSONSchema(generatedSchema as any, options); + subSchema.type = asArray(healedGeneratedSchema.type)[0] as any; + subSchema.properties = healedGeneratedSchema.properties; + // If type for properties is already given, use it + if (typeof subSchema.additionalProperties === 'object') { + for (const propertyName in subSchema.properties) { + subSchema.properties[propertyName] = subSchema.additionalProperties; } - break; - case 'array': - break; - default: - subSchema.title = subSchema.title || pathBasedName; + } + } + if (!subSchema.title && !subSchema.$ref && subSchema.type !== 'array' && !subSchema.items) { + const realPath = subSchema.$resolvedRef || path; + // Try to get definition name if missing + const splitByDefinitions = realPath.includes('/components/schemas/') + ? realPath.split('/components/schemas/') + : realPath.split('/definitions/'); + const maybeDefinitionBasedPath = + splitByDefinitions.length > 1 ? splitByDefinitions[splitByDefinitions.length - 1] : realPath; + let pathBasedName = maybeDefinitionBasedPath + .split('~1') + .join('/') + .split('/properties') + .join('') + .split('-') + .join('_') + .split('/') + .filter(Boolean) + .join('_'); + switch (subSchema.type) { + case 'string': + // If it has special pattern, use path based name because it is specific + if (subSchema.pattern || subSchema.maxLength || subSchema.minLength || subSchema.enum) { + subSchema.title = pathBasedName; + // Otherwise use the format name + } else if (subSchema.format) { + subSchema.title = subSchema.format; + } + break; + case 'number': + case 'integer': + if (subSchema.enum) { + subSchema.title = pathBasedName; + // Otherwise use the format name + } else if (subSchema.format) { + subSchema.title = subSchema.format; + } + break; + case 'array': + break; + default: + subSchema.title = subSchema.title || pathBasedName; + } + // If type name is reserved, add a suffix + if (reservedTypeNames.includes(pathBasedName)) { + pathBasedName += '_'; + } } - // If type name is reserved, add a suffix - if (reservedTypeNames.includes(pathBasedName)) { - pathBasedName += '_'; + if (subSchema.type === 'object' && subSchema.properties && Object.keys(subSchema.properties).length === 0) { + delete subSchema.properties; + subSchema.additionalProperties = true; } } - if (subSchema.type === 'object' && subSchema.properties && Object.keys(subSchema.properties).length === 0) { - delete subSchema.properties; - subSchema.additionalProperties = true; - } - } - return subSchema; + return subSchema; + }, }, { visitedSubschemaResultMap: new WeakMap(), path: '', - keepObjectRef: true, - onCircularReference: process.env.DEBUG ? OnCircularReference.WARN : OnCircularReference.IGNORE, } ); } diff --git a/packages/json-machete/src/referenceJSONSchema.ts b/packages/json-machete/src/referenceJSONSchema.ts index 4cd3e135188c2..2efa816fedd33 100644 --- a/packages/json-machete/src/referenceJSONSchema.ts +++ b/packages/json-machete/src/referenceJSONSchema.ts @@ -3,42 +3,63 @@ import { visitJSONSchema } from './visitJSONSchema'; import { process } from '@graphql-mesh/cross-helpers'; export async function referenceJSONSchema(schema: JSONSchemaObject) { - const definitions: Record = {}; - const finalSchema = await visitJSONSchema(schema, (subSchema, { path }) => { - if (typeof subSchema === 'object') { - if (process.env.DEBUG) { - console.log(`Referencing ${path}`); - } - // Remove $id refs - delete subSchema.$id; - if (subSchema.$ref) { - throw new Error('Input schema should be fully resolved! It cannot have $refs in it!'); - } else if (subSchema.title) { - if (subSchema.title in definitions) { - let cnt = 2; - while (`${subSchema.title}${cnt}` in definitions) { - cnt++; + const initialDefinitions: Record = {}; + const { $ref: initialRef } = await visitJSONSchema(schema, { + enter: (subSchema, { path }) => { + if (typeof subSchema === 'object') { + if (process.env.DEBUG) { + console.log(`Referencing ${path}`); + } + // Remove $id refs + delete subSchema.$id; + if (subSchema.$ref) { + return subSchema; + } else if (subSchema.title) { + if (subSchema.title in initialDefinitions) { + let cnt = 2; + while (`${subSchema.title}${cnt}` in initialDefinitions) { + cnt++; + } + const definitionProp = `${subSchema.title}${cnt}`.split(' ').join('_SPACE_'); + initialDefinitions[definitionProp] = subSchema; + return { + $ref: `#/definitions/${definitionProp}`, + ...subSchema, + }; + } else { + const definitionProp = subSchema.title.split(' ').join('_SPACE_'); + initialDefinitions[definitionProp] = subSchema; + return { + $ref: `#/definitions/${definitionProp}`, + ...subSchema, + }; } - const definitionProp = `${subSchema.title}${cnt}`.split(' ').join('_SPACE_'); - definitions[definitionProp] = subSchema; - const $ref = `#/definitions/${definitionProp}`; - return { - $ref, - }; - } else { - const definitionProp = subSchema.title.split(' ').join('_SPACE_'); - definitions[definitionProp] = subSchema; - const $ref = `#/definitions/${definitionProp}`; - return { - $ref, - }; + } else if (subSchema.type === 'object') { + console.warn(`${path} cannot be referenced because it has no title`); } - } else if (subSchema.type === 'object') { - console.warn(`${path} cannot be referenced because it has no title`); } - } - return subSchema; + return subSchema; + }, }); - finalSchema.definitions = definitions; - return finalSchema; + const { definitions: finalDefinitions } = await visitJSONSchema( + { + definitions: initialDefinitions, + }, + { + enter: subSchema => { + if (typeof subSchema === 'object') { + if (subSchema.$ref) { + return { + $ref: subSchema.$ref, + }; + } + } + return subSchema; + }, + } + ); + return { + $ref: initialRef, + definitions: finalDefinitions, + }; } diff --git a/packages/json-machete/src/visitJSONSchema.ts b/packages/json-machete/src/visitJSONSchema.ts index 9ae83a72615fe..bdd1814cf3e6f 100644 --- a/packages/json-machete/src/visitJSONSchema.ts +++ b/packages/json-machete/src/visitJSONSchema.ts @@ -1,222 +1,100 @@ import { JSONSchemaObject, JSONSchema } from './types'; -import { process } from '@graphql-mesh/cross-helpers'; -export enum OnCircularReference { - WARN = 'WARN', - ERROR = 'ERROR', - IGNORE = 'IGNORE', -} - -export interface JSONSchemaVisitorContext { - visitedSubschemaResultMap: WeakMap; +export interface JSONSchemaVisitorContext { + visitedSubschemaResultMap: WeakMap; path: string; - keepObjectRef: boolean; - onCircularReference: OnCircularReference; } -export const FIRST_VISITED_PATH = Symbol('FIRST_VISITED_PATH'); +export type JSONSchemaVisitor = (subSchema: any, context: JSONSchemaVisitorContext) => Promise | any; + +const identicalFn = (a: T) => a; + +const objectFields = [ + 'additionalProperties', + 'additionalItems', + 'contains', + 'else', + 'if', + 'items', + 'not', + 'then', +] as const; + +const dictFields = ['anyOf', 'allOf', 'oneOf', 'definitions', 'properties', 'patternProperties'] as const; -export async function visitJSONSchema( +export async function visitJSONSchema( schema: JSONSchema, - visitorFn: (subSchema: JSONSchema, context: JSONSchemaVisitorContext) => Promise | T, - { visitedSubschemaResultMap, path, keepObjectRef, onCircularReference }: JSONSchemaVisitorContext = { + { + enter = identicalFn, + leave = identicalFn, + }: { + enter?: JSONSchemaVisitor; + leave?: JSONSchemaVisitor; + }, + { visitedSubschemaResultMap, path }: JSONSchemaVisitorContext = { visitedSubschemaResultMap: new WeakMap(), path: '', - keepObjectRef: false, - onCircularReference: process.env.DEBUG ? OnCircularReference.WARN : OnCircularReference.IGNORE, } -) { +): Promise { if (typeof schema === 'object') { if (!visitedSubschemaResultMap.has(schema)) { - const result: any = keepObjectRef ? schema : {}; - const visitedSchema: any = keepObjectRef ? schema : { ...schema }; - result[FIRST_VISITED_PATH] = path; - visitedSubschemaResultMap.set(schema, result); - if (schema.additionalItems) { - visitedSchema.additionalItems = await visitJSONSchema(schema.additionalItems, visitorFn, { - visitedSubschemaResultMap, - path: path + '/additionalItems', - keepObjectRef, - onCircularReference, - }); - } - if (schema.additionalProperties) { - visitedSchema.additionalProperties = await visitJSONSchema(schema.additionalProperties, visitorFn, { - visitedSubschemaResultMap, - path: path + '/additionalProperties', - keepObjectRef, - onCircularReference, - }); - } - if (schema.allOf) { - visitedSchema.allOf = keepObjectRef ? visitedSchema.allOf : []; - for (const subSchemaIndex in schema.allOf) { - visitedSchema.allOf[subSchemaIndex] = await visitJSONSchema(schema.allOf[subSchemaIndex], visitorFn, { - visitedSubschemaResultMap, - path: path + '/allOf/' + subSchemaIndex, - keepObjectRef, - onCircularReference, - }); - } - } - if (schema.anyOf) { - visitedSchema.anyOf = keepObjectRef ? visitedSchema.anyOf : []; - for (const subSchemaIndex in schema.anyOf) { - visitedSchema.anyOf[subSchemaIndex] = await visitJSONSchema(schema.anyOf[subSchemaIndex], visitorFn, { - visitedSubschemaResultMap, - path: path + '/anyOf/' + subSchemaIndex, - keepObjectRef, - onCircularReference, - }); - } - } - if (schema.contains) { - visitedSchema.contains = await visitJSONSchema(schema.contains, visitorFn, { - visitedSubschemaResultMap, - path: path + '/contains', - keepObjectRef, - onCircularReference, - }); - } - if (schema.definitions) { - visitedSchema.definitions = keepObjectRef ? visitedSchema.definitions : {}; - const entries = Object.entries(schema.definitions); - for (const [definitionName, subSchema] of entries) { - visitedSchema.definitions[definitionName] = await visitJSONSchema(subSchema, visitorFn, { - visitedSubschemaResultMap, - path: path + '/definitions/' + definitionName, - keepObjectRef, - onCircularReference, - }); - } - } - if (schema.else) { - visitedSchema.else = await visitJSONSchema(schema.else, visitorFn, { - visitedSubschemaResultMap, - path: path + '/else', - keepObjectRef, - onCircularReference, - }); - } - if (schema.if) { - visitedSchema.if = await visitJSONSchema(schema.if, visitorFn, { - visitedSubschemaResultMap, - path: path + '/if', - keepObjectRef, - onCircularReference, - }); - } - if (schema.items) { - if (Array.isArray(schema.items)) { - visitedSchema.items = keepObjectRef ? visitedSchema.items : []; - for (const subSchemaIndex in schema.items) { - visitedSchema.items[subSchemaIndex] = await visitJSONSchema(schema.items[subSchemaIndex], visitorFn, { + const enterResult: JSONSchemaObject = await enter(schema, { + visitedSubschemaResultMap, + path, + }); + visitedSubschemaResultMap.set(schema, enterResult); + for (const key of objectFields) { + if (enterResult[key]) { + enterResult[key] = await visitJSONSchema( + enterResult[key], + { enter, leave }, + { visitedSubschemaResultMap, - path: path + '/items/' + subSchemaIndex, - keepObjectRef, - onCircularReference, - }); - } - } else { - visitedSchema.items = await visitJSONSchema(schema.items, visitorFn, { - visitedSubschemaResultMap, - path: path + '/items', - keepObjectRef, - onCircularReference, - }); - } - } - if (schema.not) { - visitedSchema.not = await visitJSONSchema(schema.not, visitorFn, { - visitedSubschemaResultMap, - path: path + '/not', - keepObjectRef, - onCircularReference, - }); - } - if (schema.oneOf) { - visitedSchema.oneOf = keepObjectRef ? visitedSchema.oneOf : []; - for (const subSchemaIndex in schema.oneOf) { - visitedSchema.oneOf[subSchemaIndex] = await visitJSONSchema(schema.oneOf[subSchemaIndex], visitorFn, { - visitedSubschemaResultMap, - path: path + '/oneOf/' + subSchemaIndex, - keepObjectRef, - onCircularReference, - }); - } - } - if (schema.patternProperties) { - visitedSchema.patternProperties = keepObjectRef ? visitedSchema.patternProperties : {}; - const entries = Object.entries(schema.patternProperties); - for (const [pattern, subSchema] of entries) { - visitedSchema.patternProperties[pattern] = await visitJSONSchema(subSchema, visitorFn, { - visitedSubschemaResultMap, - path: path + '/patternProperties/' + pattern, - keepObjectRef, - onCircularReference, - }); + path: `${path}/${key}`, + } + ); } } - if (schema.properties) { - visitedSchema.properties = keepObjectRef ? visitedSchema.properties : {}; - const entries = Object.entries(schema.properties); - for (const [propertyName, subSchema] of entries) { - visitedSchema.properties[propertyName] = await visitJSONSchema(subSchema, visitorFn, { - visitedSubschemaResultMap, - path: path + '/properties/' + propertyName, - keepObjectRef, - onCircularReference, - }); + for (const key of dictFields) { + if (enterResult[key]) { + const entries = Object.entries(enterResult[key]); + for (const [itemKey, itemValue] of entries) { + enterResult[key][itemKey] = await visitJSONSchema( + itemValue, + { enter, leave }, + { visitedSubschemaResultMap, path: `${path}/${key}/${itemKey}` } + ); + } } } - if (schema.then) { - visitedSchema.then = await visitJSONSchema(schema.then, visitorFn, { - visitedSubschemaResultMap, - path: path + '/then', - keepObjectRef, - onCircularReference, - }); - } - if (schema.components) { - visitedSchema.components = keepObjectRef ? visitedSchema.components : {}; - visitedSchema.components.schemas = keepObjectRef ? visitedSchema.components.schemas : {}; - const entries = Object.entries(schema.components.schemas); + if (enterResult.components?.schema) { + const entries = Object.entries(enterResult.components.schemas); for (const [schemaName, subSchema] of entries) { - visitedSchema.components.schemas[schemaName] = await visitJSONSchema(subSchema, visitorFn, { - visitedSubschemaResultMap, - path: path + '/components/schemas/' + schemaName, - keepObjectRef, - onCircularReference, - }); + enterResult.components.schemas[schemaName] = await visitJSONSchema( + subSchema, + { enter, leave }, + { visitedSubschemaResultMap, path: `${path}/components/schemas/${schemaName}` } + ); } } - const visitorResult = await visitorFn(visitedSchema, { + const leaveResult = await leave(enterResult, { visitedSubschemaResultMap, path, - keepObjectRef, - onCircularReference, }); - delete result[FIRST_VISITED_PATH]; - Object.assign(result, visitorResult); - return result; - } - const result = visitedSubschemaResultMap.get(schema); - if (onCircularReference !== OnCircularReference.IGNORE && result[FIRST_VISITED_PATH]) { - const message = `Circular reference detected on ${path} to ${result[FIRST_VISITED_PATH]}`; - if (onCircularReference === OnCircularReference.ERROR) { - throw new Error(message); - } else if (onCircularReference === OnCircularReference.WARN) { - console.warn(message); - } + + visitedSubschemaResultMap.set(schema, leaveResult); + return leaveResult; } - return result; + return visitedSubschemaResultMap.get(schema); } - return visitorFn(schema, { + const enterResult = await enter(schema, { + visitedSubschemaResultMap, + path, + }); + return leave(enterResult, { visitedSubschemaResultMap, path, - keepObjectRef, - onCircularReference, }); } diff --git a/packages/json-machete/tests/compareJSONSchemas.test.ts b/packages/json-machete/tests/compareJSONSchemas.test.ts index f04767f750552..b47d4a9282b77 100644 --- a/packages/json-machete/tests/compareJSONSchemas.test.ts +++ b/packages/json-machete/tests/compareJSONSchemas.test.ts @@ -32,8 +32,8 @@ describe('compareJSONSchemas', () => { expect(e.errors).toBeDefined(); const errors = [...e.errors]; expect(errors).toHaveLength(2); - expect(errors[0].message).toBe(`/properties/bar/type is changed from string to undefined`); - expect(errors[1].message).toBe(`/properties doesn't have bar`); + expect(errors[0].message).toBe(`/properties doesn't have bar`); + expect(errors[1].message).toBe(`/properties/bar/type is changed from string to undefined`); } }); }); diff --git a/packages/loaders/json-schema/src/getComposerFromJSONSchema.ts b/packages/loaders/json-schema/src/getComposerFromJSONSchema.ts index 84eea8eef682f..757ab09dbf8c5 100644 --- a/packages/loaders/json-schema/src/getComposerFromJSONSchema.ts +++ b/packages/loaders/json-schema/src/getComposerFromJSONSchema.ts @@ -12,7 +12,6 @@ import { SchemaComposer, ListComposer, UnionTypeComposer, - isSomeInputTypeComposer, } from 'graphql-compose'; import { getNamedType, @@ -39,7 +38,7 @@ import { Logger } from '@graphql-mesh/types'; import Ajv from 'ajv'; import addFormats from 'ajv-formats'; import { memoize1 } from '@graphql-tools/utils'; -import { visitJSONSchema, JSONSchema } from 'json-machete'; +import { visitJSONSchema, JSONSchema, JSONSchemaObject } from 'json-machete'; import { getStringScalarWithMinMaxLength } from './getStringScalarWithMinMaxLength'; import { getJSONSchemaStringFormatScalarMap } from './getJSONSchemaStringFormatScalarMap'; import { getUnionTypeComposers } from './getUnionTypeComposers'; @@ -60,7 +59,7 @@ const GraphQLVoid = new GraphQLScalarType({ }, }); -interface TypeComposers { +export interface TypeComposers { input?: AnyTypeComposer; output: AnyTypeComposer | SchemaComposer; description?: string; @@ -84,10 +83,15 @@ export function getComposerFromJSONSchema( }); addFormats(ajv); const formatScalarMap = getJSONSchemaStringFormatScalarMap(ajv); - const futureTasks = new Set(); - return visitJSONSchema(schema, function mutateFn(subSchema, { path }): any { - logger?.debug(`Processing ${path} for GraphQL Schema`); - const getTypeComposer = (): any => { + const rootInputTypeNameComposerMap = { + QueryInput: () => schemaComposer.Query, + MutationInput: () => schemaComposer.Mutation, + SubscriptionInput: () => schemaComposer.Subscription, + }; + + return visitJSONSchema(schema, { + enter(subSchema: JSONSchema, { path, visitedSubschemaResultMap }) { + logger?.debug(`Entering ${path} for GraphQL Schema`); if (typeof subSchema === 'boolean') { const typeComposer = schemaComposer.getAnyTC(GraphQLJSON); return subSchema @@ -98,11 +102,9 @@ export function getComposerFromJSONSchema( : undefined; } const validateWithJSONSchema = getValidateFnForSchemaPath(ajv, path, schema); - if (!subSchema) { throw new Error(`Something is wrong with ${path}`); } - if (subSchema.pattern) { const scalarType = new RegularExpression( getValidTypeName({ @@ -176,233 +178,24 @@ export function getComposerFromJSONSchema( }; } - if (subSchema.oneOf && !subSchema.properties) { - let statusCodeOneOfIndexMap: Record | undefined; - if (subSchema.$comment?.startsWith('statusCodeOneOfIndexMap:')) { - const statusCodeOneOfIndexMapStr = subSchema.$comment.replace('statusCodeOneOfIndexMap:', ''); - statusCodeOneOfIndexMap = JSON.parse(statusCodeOneOfIndexMapStr); - } - const isPlural = (subSchema.oneOf as TypeComposers[]).some(({ output }) => 'ofType' in output); - if (isPlural) { - const { input, output } = getUnionTypeComposers({ - schemaComposer, - ajv, - typeComposersList: (subSchema.oneOf as any).map(({ input, output }: any) => ({ - input: input.ofType || input, - output: output.ofType || output, - })) as any[], - subSchema, - generateInterfaceFromSharedFields, - statusCodeOneOfIndexMap, - }); + if (Array.isArray(subSchema.type)) { + const validTypes = subSchema.type.filter((typeName: string) => typeName !== 'null'); + if (validTypes.length === 1) { + subSchema.type = validTypes[0]; + // continue with the single type + } else if (validTypes.length === 0) { + const typeComposer = schemaComposer.getAnyTC(GraphQLVoid); return { - input: input.getTypePlural(), - output: output.getTypePlural(), + input: typeComposer, + output: typeComposer, }; - } - return getUnionTypeComposers({ - schemaComposer, - ajv, - typeComposersList: subSchema.oneOf as any[], - subSchema, - generateInterfaceFromSharedFields, - statusCodeOneOfIndexMap, - }); - } - - if (subSchema.allOf && !subSchema.properties) { - const inputFieldMap: InputTypeComposerFieldConfigMap = {}; - const fieldMap: ObjectTypeComposerFieldConfigMap = {}; - let ableToUseGraphQLInputObjectType = true; - for (const maybeTypeComposers of subSchema.allOf as any) { - const { input: inputTypeComposer, output: outputTypeComposer } = maybeTypeComposers; - - if (inputTypeComposer instanceof ScalarTypeComposer) { - ableToUseGraphQLInputObjectType = false; - } else { - const inputTypeElemFieldMap = inputTypeComposer.getFields(); - for (const fieldName in inputTypeElemFieldMap) { - const field = inputTypeElemFieldMap[fieldName]; - inputFieldMap[fieldName] = field; - } - } - - if (outputTypeComposer instanceof ScalarTypeComposer) { - fieldMap[outputTypeComposer.getTypeName()] = { - type: outputTypeComposer, - resolve: root => root, - }; - } else if (outputTypeComposer instanceof UnionTypeComposer) { - const outputTCElems = outputTypeComposer.getTypes() as ObjectTypeComposer[]; - for (const outputTCElem of outputTCElems) { - const outputTypeElemFieldMap = outputTCElem.getFields(); - for (const fieldName in outputTypeElemFieldMap) { - const field = outputTypeElemFieldMap[fieldName]; - fieldMap[fieldName] = field; - } - } - } else { - const typeElemFieldMap = outputTypeComposer.getFields(); - for (const fieldName in typeElemFieldMap) { - const field = typeElemFieldMap[fieldName]; - fieldMap[fieldName] = field; - } - } - } - - let inputTypeComposer; - const outputTypeComposer = schemaComposer.createObjectTC({ - name: getValidTypeName({ - schemaComposer, - isInput: false, - subSchema, - }), - description: subSchema.description, - fields: fieldMap, - extensions: { - validateWithJSONSchema, - examples: subSchema.examples, - default: subSchema.default, - }, - }); - - if (ableToUseGraphQLInputObjectType) { - inputTypeComposer = schemaComposer.createInputTC({ - name: getValidTypeName({ - schemaComposer, - isInput: true, - subSchema, - }), - description: subSchema.description, - fields: inputFieldMap, - extensions: { - examples: subSchema.examples, - default: subSchema.default, - }, - }); } else { - inputTypeComposer = isSomeInputTypeComposer(outputTypeComposer) - ? outputTypeComposer - : getGenericJSONScalar({ - schemaComposer, - isInput: true, - subSchema, - validateWithJSONSchema, - }); - } - - return { - input: inputTypeComposer, - output: outputTypeComposer, - }; - } - - if (subSchema.anyOf && !subSchema.properties) { - if (subSchema.title === 'Any') { - const genericJSONScalar = getGenericJSONScalar({ - schemaComposer, - isInput: false, + const typeComposer = getGenericJSONScalar({ + isInput: true, subSchema, - validateWithJSONSchema, - }); - return { - input: genericJSONScalar, - output: genericJSONScalar, - }; - } - // It should not have `required` because it is `anyOf` not `allOf` - const inputFieldMap: InputTypeComposerFieldConfigMap = {}; - const fieldMap: ObjectTypeComposerFieldConfigMap = {}; - let ableToUseGraphQLInputObjectType = true; - for (const typeComposers of subSchema.anyOf as any) { - const { input: inputTypeComposer, output: outputTypeComposer } = typeComposers; - if (inputTypeComposer instanceof ScalarTypeComposer) { - ableToUseGraphQLInputObjectType = false; - } else { - const inputTypeElemFieldMap = inputTypeComposer.getFields(); - for (const fieldName in inputTypeElemFieldMap) { - const field = inputTypeElemFieldMap[fieldName]; - inputFieldMap[fieldName] = isNonNullType(field.type.getType()) - ? { - ...field, - type: () => field.type.ofType, - } - : field; - } - } - - if (outputTypeComposer instanceof ScalarTypeComposer) { - const typeName = outputTypeComposer.getTypeName(); - fieldMap[typeName] = { - type: outputTypeComposer, - resolve: root => root, - }; - } else { - const typeElemFieldMap = outputTypeComposer.getFields(); - for (const fieldName in typeElemFieldMap) { - const field = typeElemFieldMap[fieldName]; - fieldMap[fieldName] = { - type: () => getNamedType(field.type.getType()), - ...field, - }; - } - } - } - - let inputTypeComposer; - const outputTypeComposer = schemaComposer.createObjectTC({ - name: getValidTypeName({ schemaComposer, - isInput: false, - subSchema, - }), - description: subSchema.description, - fields: fieldMap, - extensions: { validateWithJSONSchema, - examples: subSchema.examples, - default: subSchema.default, - }, - }); - - if (ableToUseGraphQLInputObjectType) { - inputTypeComposer = schemaComposer.createInputTC({ - name: getValidTypeName({ - schemaComposer, - isInput: true, - subSchema, - }), - description: subSchema.description, - fields: inputFieldMap, - extensions: { - examples: subSchema.examples, - default: subSchema.default, - }, }); - } else { - inputTypeComposer = isSomeInputTypeComposer(outputTypeComposer) - ? outputTypeComposer - : getGenericJSONScalar({ - schemaComposer, - isInput: true, - subSchema, - validateWithJSONSchema, - }); - } - - return { - input: inputTypeComposer, - output: outputTypeComposer, - }; - } - - if (Array.isArray(subSchema.type)) { - const validTypes = subSchema.type.filter((typeName: string) => typeName !== 'null'); - if (validTypes.length === 1) { - subSchema.type = validTypes[0]; - // continue with the single type - } else { - const typeComposer = schemaComposer.getAnyTC(GraphQLVoid); return { input: typeComposer, output: typeComposer, @@ -533,16 +326,21 @@ export function getComposerFromJSONSchema( } } case 'array': - if ( - typeof subSchema.items === 'object' && - !Array.isArray(subSchema.items) && - Object.keys(subSchema.items).length > 0 - ) { - const typeComposers = subSchema.items; + if (typeof subSchema.items === 'object' && Object.keys(subSchema.items).length > 0) { return { - input: typeComposers.input.getTypePlural(), - output: typeComposers.output.getTypePlural(), - description: subSchema.description, + // These are filled after enter + get input() { + const typeComposers = visitedSubschemaResultMap.get(subSchema.items as any); + if (!typeComposers.input) { + console.log(typeComposers); + } + return typeComposers.input.getTypePlural(); + }, + get output() { + const typeComposers = visitedSubschemaResultMap.get(subSchema.items as any); + return typeComposers.output.getTypePlural(); + }, + ...subSchema, }; } if (subSchema.contains) { @@ -558,26 +356,6 @@ export function getComposerFromJSONSchema( output: typeComposer, }; } - if (typeof subSchema.items === 'object' && Array.isArray(subSchema.items)) { - const existingItems = [...(subSchema.items as any)]; - /* TODO - if (subSchema.additionalItems) { - existingItems.push(subSchema.additionalItems); - } - */ - const { input: inputTypeComposer, output: outputTypeComposer } = getUnionTypeComposers({ - schemaComposer, - ajv, - typeComposersList: existingItems, - subSchema, - generateInterfaceFromSharedFields, - }); - return { - input: inputTypeComposer.getTypePlural(), - output: outputTypeComposer.getTypePlural(), - description: subSchema.description, - }; - } // If it doesn't have any clue { // const typeComposer = getGenericJSONScalar({ @@ -593,25 +371,351 @@ export function getComposerFromJSONSchema( description: subSchema.description, }; } + case 'object': { + switch (subSchema.title) { + case '_schema': + return { + output: schemaComposer, + ...subSchema, + }; + case 'Query': + return { + output: schemaComposer.Query, + ...subSchema, + }; + case 'Mutation': + return { + output: schemaComposer.Mutation, + ...subSchema, + }; + case 'Subscription': + return { + output: schemaComposer.Subscription, + ...subSchema, + }; + } + if (subSchema.properties || subSchema.allOf || subSchema.additionalProperties) { + return { + input: schemaComposer.createInputTC({ + name: getValidTypeName({ + schemaComposer, + isInput: true, + subSchema, + }), + description: subSchema.description, + fields: {}, + extensions: { + examples: subSchema.examples, + default: subSchema.default, + }, + }), + output: schemaComposer.createObjectTC({ + name: getValidTypeName({ + schemaComposer, + isInput: false, + subSchema, + }), + description: subSchema.description, + fields: {}, + extensions: { + validateWithJSONSchema, + examples: subSchema.examples, + default: subSchema.default, + }, + }), + ...subSchema, + ...(subSchema.properties ? { properties: { ...subSchema.properties } } : {}), + ...(subSchema.allOf ? { allOf: [...subSchema.allOf] } : {}), + ...(subSchema.additionalProperties + ? { + additionalProperties: + subSchema.additionalProperties === true ? true : { ...subSchema.additionalProperties }, + } + : {}), + }; + } + } + } + + if (subSchema.oneOf && !subSchema.properties) { + let statusCodeOneOfIndexMap: Record | undefined; + if (subSchema.$comment?.startsWith('statusCodeOneOfIndexMap:')) { + const statusCodeOneOfIndexMapStr = subSchema.$comment.replace('statusCodeOneOfIndexMap:', ''); + statusCodeOneOfIndexMap = JSON.parse(statusCodeOneOfIndexMapStr); + } + const input = schemaComposer.createInputTC({ + name: getValidTypeName({ + schemaComposer, + isInput: true, + subSchema, + }), + fields: {}, + directives: [ + { + name: 'oneOf', + }, + ], + }); + const output = schemaComposer.createUnionTC({ + name: getValidTypeName({ + schemaComposer, + isInput: false, + subSchema, + }), + description: subSchema.description, + types: [], + extensions: { + statusCodeOneOfIndexMap, + }, + }); + return { + input, + output, + ...subSchema, + }; + } + if (!subSchema.properties && (subSchema.anyOf || subSchema.allOf)) { + if (subSchema.title === 'Any') { + const genericJSONScalar = getGenericJSONScalar({ + schemaComposer, + isInput: false, + subSchema, + validateWithJSONSchema, + }); + return { + input: genericJSONScalar, + output: genericJSONScalar, + }; + } + const input = schemaComposer.createInputTC({ + name: getValidTypeName({ + schemaComposer, + isInput: true, + subSchema, + }), + description: subSchema.description, + fields: {}, + extensions: { + examples: subSchema.examples, + default: subSchema.default, + }, + }); + const output = schemaComposer.createObjectTC({ + name: getValidTypeName({ + schemaComposer, + isInput: false, + subSchema, + }), + description: subSchema.description, + fields: {}, + extensions: { + validateWithJSONSchema, + examples: subSchema.examples, + default: subSchema.default, + }, + }); + return { + input, + output, + ...subSchema, + }; + } + return subSchema; + }, + leave(subSchemaAndTypeComposers: JSONSchemaObject & TypeComposers, { path }) { + logger?.debug(`Leaving ${path} for GraphQL Schema`); + const validateWithJSONSchema = getValidateFnForSchemaPath(ajv, path, schema); + const subSchemaOnly: JSONSchemaObject = { + ...subSchemaAndTypeComposers, + input: undefined, + output: undefined, + }; + if (subSchemaAndTypeComposers.oneOf && !subSchemaAndTypeComposers.properties) { + const isPlural = (subSchemaAndTypeComposers.oneOf as TypeComposers[]).some(({ output }) => 'ofType' in output); + if (isPlural) { + const { input, output } = getUnionTypeComposers({ + schemaComposer, + ajv, + typeComposersList: (subSchemaAndTypeComposers.oneOf as any).map(({ input, output }: any) => ({ + input: input.ofType || input, + output: output.ofType || output, + })) as any[], + subSchemaAndTypeComposers, + }); + return { + input: input.getTypePlural(), + output: output.getTypePlural(), + }; + } + return getUnionTypeComposers({ + schemaComposer, + ajv, + typeComposersList: subSchemaAndTypeComposers.oneOf as any[], + subSchemaAndTypeComposers, + }); + } + + if (subSchemaAndTypeComposers.allOf && !subSchemaAndTypeComposers.properties) { + const inputFieldMap: InputTypeComposerFieldConfigMap = {}; + const fieldMap: ObjectTypeComposerFieldConfigMap = {}; + let ableToUseGraphQLInputObjectType = true; + for (const maybeTypeComposers of subSchemaAndTypeComposers.allOf as any) { + const { input: inputTypeComposer, output: outputTypeComposer } = maybeTypeComposers; + + if (inputTypeComposer instanceof ScalarTypeComposer) { + ableToUseGraphQLInputObjectType = false; + } else { + const inputTypeElemFieldMap = inputTypeComposer.getFields(); + for (const fieldName in inputTypeElemFieldMap) { + const field = inputTypeElemFieldMap[fieldName]; + inputFieldMap[fieldName] = field; + } + } + + if (outputTypeComposer instanceof ScalarTypeComposer) { + fieldMap[outputTypeComposer.getTypeName()] = { + type: outputTypeComposer, + resolve: root => root, + }; + } else if (outputTypeComposer instanceof UnionTypeComposer) { + const outputTCElems = outputTypeComposer.getTypes() as ObjectTypeComposer[]; + for (const outputTCElem of outputTCElems) { + const outputTypeElemFieldMap = outputTCElem.getFields(); + for (const fieldName in outputTypeElemFieldMap) { + const field = outputTypeElemFieldMap[fieldName]; + fieldMap[fieldName] = field; + } + } + } else { + const typeElemFieldMap = outputTypeComposer.getFields(); + for (const fieldName in typeElemFieldMap) { + const field = typeElemFieldMap[fieldName]; + fieldMap[fieldName] = field; + } + } + } + + let inputTypeComposer = subSchemaAndTypeComposers.input; + (subSchemaAndTypeComposers.output as ObjectTypeComposer).addFields(fieldMap); + (subSchemaAndTypeComposers.output as ObjectTypeComposer).setExtensions({ + validateWithJSONSchema, + examples: subSchemaAndTypeComposers.examples, + default: subSchemaAndTypeComposers.default, + }); + + if (ableToUseGraphQLInputObjectType) { + (inputTypeComposer as InputTypeComposer).addFields(inputFieldMap); + (inputTypeComposer as InputTypeComposer).setExtensions({ + examples: subSchemaAndTypeComposers.examples, + default: subSchemaAndTypeComposers.default, + }); + } else { + schemaComposer.delete(inputTypeComposer); + inputTypeComposer = getGenericJSONScalar({ + schemaComposer, + isInput: true, + subSchema: subSchemaOnly, + validateWithJSONSchema, + }); + } + + return { + input: inputTypeComposer, + output: subSchemaAndTypeComposers.output, + }; + } + + if (subSchemaAndTypeComposers.anyOf && !subSchemaAndTypeComposers.properties) { + // It should not have `required` because it is `anyOf` not `allOf` + const inputFieldMap: InputTypeComposerFieldConfigMap = {}; + const fieldMap: ObjectTypeComposerFieldConfigMap = {}; + let ableToUseGraphQLInputObjectType = true; + for (const typeComposers of subSchemaAndTypeComposers.anyOf as any) { + const { input: inputTypeComposer, output: outputTypeComposer } = typeComposers; + if (inputTypeComposer instanceof ScalarTypeComposer) { + ableToUseGraphQLInputObjectType = false; + } else { + const inputTypeElemFieldMap = inputTypeComposer.getFields(); + for (const fieldName in inputTypeElemFieldMap) { + const field = inputTypeElemFieldMap[fieldName]; + inputFieldMap[fieldName] = isNonNullType(field.type.getType()) + ? { + ...field, + type: () => field.type.ofType, + } + : field; + } + } + + if (outputTypeComposer instanceof ScalarTypeComposer) { + const typeName = outputTypeComposer.getTypeName(); + fieldMap[typeName] = { + type: outputTypeComposer, + resolve: root => root, + }; + } else { + const typeElemFieldMap = outputTypeComposer.getFields(); + for (const fieldName in typeElemFieldMap) { + const field = typeElemFieldMap[fieldName]; + fieldMap[fieldName] = { + type: () => getNamedType(field.type.getType()), + ...field, + }; + } + } + } + + let inputTypeComposer = subSchemaAndTypeComposers.input; + (subSchemaAndTypeComposers.output as ObjectTypeComposer).addFields(fieldMap); + (subSchemaAndTypeComposers.output as ObjectTypeComposer).setExtensions({ + validateWithJSONSchema, + examples: subSchemaAndTypeComposers.examples, + default: subSchemaAndTypeComposers.default, + }); + + if (ableToUseGraphQLInputObjectType) { + (inputTypeComposer as InputTypeComposer).addFields(inputFieldMap); + (inputTypeComposer as InputTypeComposer).setExtensions({ + examples: subSchemaAndTypeComposers.examples, + default: subSchemaAndTypeComposers.default, + }); + } else { + schemaComposer.delete(inputTypeComposer); + inputTypeComposer = getGenericJSONScalar({ + schemaComposer, + isInput: true, + subSchema: subSchemaOnly, + validateWithJSONSchema, + }); + } + + return { + input: inputTypeComposer, + output: subSchemaAndTypeComposers.output, + }; + } + + switch (subSchemaAndTypeComposers.type) { case 'object': const fieldMap: ObjectTypeComposerFieldConfigMapDefinition = {}; let inputFieldMap: Record = {}; - if (subSchema.properties) { - subSchema.type = 'object'; - for (const propertyName in subSchema.properties) { + if (subSchemaAndTypeComposers.properties) { + for (const propertyName in subSchemaAndTypeComposers.properties) { // TODO: needs to be fixed if (propertyName === 'additionalProperties') { continue; } - const typeComposers = subSchema.properties[propertyName]; const fieldName = sanitizeNameForGraphQL(propertyName); fieldMap[fieldName] = { - type: () => - subSchema.required?.includes(propertyName) + type: () => { + const typeComposers = subSchemaAndTypeComposers.properties[propertyName]; + return subSchemaAndTypeComposers.required?.includes(propertyName) ? typeComposers.output.getTypeNonNull() - : typeComposers.output, + : typeComposers.output; + }, // Make sure you get the right property resolve: root => { + const typeComposers = subSchemaAndTypeComposers.properties[propertyName]; const actualFieldObj = root[propertyName]; if (actualFieldObj != null) { const isArray = Array.isArray(actualFieldObj); @@ -624,25 +728,33 @@ export function getComposerFromJSONSchema( } return actualFieldObj; }, - description: typeComposers.description || typeComposers.output?.description, + description: + subSchemaAndTypeComposers.properties[propertyName].description || + subSchemaAndTypeComposers.properties[propertyName].output?.description, }; inputFieldMap[fieldName] = { - type: () => - subSchema.required?.includes(propertyName) + type: () => { + const typeComposers = subSchemaAndTypeComposers.properties[propertyName]; + return subSchemaAndTypeComposers.required?.includes(propertyName) ? typeComposers.input?.getTypeNonNull() - : typeComposers.input, + : typeComposers.input; + }, // Let execution logic know what is the expected propertyName extensions: { propertyName, }, - description: typeComposers.description || typeComposers.input?.description, - defaultValue: typeComposers?.extensions?.default || typeComposers.input?.default, + description: + subSchemaAndTypeComposers.properties[propertyName].description || + subSchemaAndTypeComposers.properties[propertyName].input?.description, + defaultValue: + subSchemaAndTypeComposers.properties[propertyName]?.extensions?.default || + subSchemaAndTypeComposers.properties[propertyName].input?.default, }; } } - if (subSchema.allOf) { - for (const typeComposers of subSchema.allOf) { + if (subSchemaAndTypeComposers.allOf) { + for (const typeComposers of subSchemaAndTypeComposers.allOf) { const outputTC: ObjectTypeComposer = (typeComposers as any).output; if (schemaComposer.isObjectType(outputTC)) { for (const outputFieldName of outputTC.getFieldNames()) { @@ -662,20 +774,20 @@ export function getComposerFromJSONSchema( } } - if (subSchema.additionalProperties) { + if (subSchemaAndTypeComposers.additionalProperties) { if ( - typeof subSchema.additionalProperties === 'object' && - subSchema.additionalProperties.output instanceof ObjectTypeComposer + typeof subSchemaAndTypeComposers.additionalProperties === 'object' && + subSchemaAndTypeComposers.additionalProperties.output instanceof ObjectTypeComposer ) { if (Object.keys(fieldMap).length === 0) { - return subSchema.additionalProperties; + return subSchemaAndTypeComposers.additionalProperties; } else { - const outputTC: ObjectTypeComposer = (subSchema.additionalProperties as any).output; + const outputTC: ObjectTypeComposer = (subSchemaAndTypeComposers.additionalProperties as any).output; const outputTCFieldMap = outputTC.getFields(); for (const fieldName in outputTCFieldMap) { fieldMap[fieldName] = outputTCFieldMap[fieldName]; } - const inputTC: InputTypeComposer = (subSchema.additionalProperties as any).input; + const inputTC: InputTypeComposer = (subSchemaAndTypeComposers.additionalProperties as any).input; const inputTCFieldMap = inputTC.getFields(); for (const fieldName in inputTCFieldMap) { inputFieldMap[fieldName] = inputTCFieldMap[fieldName]; @@ -690,37 +802,6 @@ export function getComposerFromJSONSchema( } } - if (subSchema.title === '_schema') { - futureTasks.forEach(futureTask => futureTask()); - return { - output: schemaComposer, - }; - } - - if (subSchema.title === 'Query') { - const typeComposer = schemaComposer.Query; - typeComposer.addFields(fieldMap); - return { - output: typeComposer, - }; - } - - if (subSchema.title === 'Mutation') { - const typeComposer = schemaComposer.Mutation; - typeComposer.addFields(fieldMap); - return { - output: typeComposer, - }; - } - - if (subSchema.title === 'Subscription') { - const typeComposer = schemaComposer.Subscription; - typeComposer.addFields(fieldMap); - return { - output: typeComposer, - }; - } - const getCorrectInputFieldType = (fieldName: string) => { const inputType: InputTypeComposer | ListComposer = inputFieldMap[fieldName].type(); const actualInputType = isListTC(inputType) ? inputType.ofType : inputType; @@ -737,118 +818,66 @@ export function getComposerFromJSONSchema( return inputType; }; - if (subSchema.title === 'QueryInput') { - const typeComposer = schemaComposer.Query; + if (subSchemaAndTypeComposers.title in rootInputTypeNameComposerMap) { + const typeComposer = rootInputTypeNameComposerMap[subSchemaAndTypeComposers.title](); for (const fieldName in inputFieldMap) { - futureTasks.add(() => - typeComposer.addFieldArgs(fieldName, { - input: { - type: () => getCorrectInputFieldType(fieldName), - description: inputFieldMap[fieldName].description, - }, - }) - ); + typeComposer.addFieldArgs(fieldName, { + input: { + type: () => getCorrectInputFieldType(fieldName), + description: inputFieldMap[fieldName].description, + }, + }); } return { output: typeComposer, }; } - if (subSchema.title === 'MutationInput') { - const typeComposer = schemaComposer.Mutation; - for (const fieldName in inputFieldMap) { - futureTasks.add(() => - typeComposer.addFieldArgs(fieldName, { - input: { - type: () => getCorrectInputFieldType(fieldName), - description: inputFieldMap[fieldName].description, - }, - }) - ); - } - return { - output: typeComposer, - }; + let output = subSchemaAndTypeComposers.output; + if (Object.keys(fieldMap).length === 0) { + output = getGenericJSONScalar({ + schemaComposer, + isInput: false, + subSchema: subSchemaOnly, + validateWithJSONSchema, + }); + } else if ('addFields' in output) { + (output as ObjectTypeComposer).addFields(fieldMap); } - - if (subSchema.title === 'SubscriptionInput') { - const typeComposer = schemaComposer.Subscription; - for (const fieldName in inputFieldMap) { - futureTasks.add(() => - typeComposer.addFieldArgs(fieldName, { - input: { - type: () => getCorrectInputFieldType(fieldName), - description: inputFieldMap[fieldName].description, - }, - }) - ); - } - return { - output: typeComposer, - }; + let input = subSchemaAndTypeComposers.input; + if (Object.keys(inputFieldMap).length === 0) { + input = getGenericJSONScalar({ + schemaComposer, + isInput: true, + subSchema: subSchemaOnly, + validateWithJSONSchema, + }); + } else if (input != null && 'addFields' in input) { + (input as InputTypeComposer).addFields(inputFieldMap); } - - const output = - Object.keys(fieldMap).length === 0 - ? getGenericJSONScalar({ - schemaComposer, - isInput: false, - subSchema, - validateWithJSONSchema, - }) - : schemaComposer.createObjectTC({ - name: getValidTypeName({ - schemaComposer, - isInput: false, - subSchema, - }), - description: subSchema.description, - fields: fieldMap, - extensions: { - validateWithJSONSchema, - examples: subSchema.examples, - default: subSchema.default, - }, - }); - - const input = - Object.keys(inputFieldMap).length === 0 - ? getGenericJSONScalar({ - schemaComposer, - isInput: true, - subSchema, - validateWithJSONSchema, - }) - : schemaComposer.createInputTC({ - name: getValidTypeName({ - schemaComposer, - isInput: true, - subSchema, - }), - description: subSchema.description, - fields: inputFieldMap, - extensions: { - examples: subSchema.examples, - default: subSchema.default, - }, - }); - return { input, output, }; } - logger.warn(`GraphQL Type cannot be created for this JSON Schema definition;`, { - subSchema, - path, - }); - const typeComposer = schemaComposer.getAnyTC(GraphQLJSON); - return { - input: typeComposer, - output: typeComposer, - }; - }; - const result = getTypeComposer(); - return result; + + if (subSchemaAndTypeComposers.input || subSchemaAndTypeComposers.output) { + return { + input: subSchemaAndTypeComposers.input, + output: subSchemaAndTypeComposers.output, + description: subSchemaAndTypeComposers.description, + }; + } else { + logger.warn(`GraphQL Type cannot be created for this JSON Schema definition;`, { + subSchema: subSchemaOnly, + path, + }); + const typeComposer = schemaComposer.getAnyTC(GraphQLJSON); + return { + input: typeComposer, + output: typeComposer, + }; + } + }, }); } diff --git a/packages/loaders/json-schema/src/getUnionTypeComposers.ts b/packages/loaders/json-schema/src/getUnionTypeComposers.ts index 4d54ba88c51d8..661fc3f9c9d15 100644 --- a/packages/loaders/json-schema/src/getUnionTypeComposers.ts +++ b/packages/loaders/json-schema/src/getUnionTypeComposers.ts @@ -2,15 +2,14 @@ import { JSONSchemaObject } from '@json-schema-tools/meta-schema'; import Ajv from 'ajv'; import { AnyTypeComposer, + InputTypeComposer, isSomeInputTypeComposer, ObjectTypeComposer, - ObjectTypeComposerFieldConfig, - ObjectTypeComposerThunked, SchemaComposer, UnionTypeComposer, } from 'graphql-compose'; +import { TypeComposers } from './getComposerFromJSONSchema'; import { getTypeResolverFromOutputTCs } from './getTypeResolverFromOutputTCs'; -import { getValidTypeName } from './getValidTypeName'; const ONE_OF_DEFINITION = /* GraphQL */ ` directive @oneOf on INPUT_OBJECT | FIELD_DEFINITION @@ -20,18 +19,14 @@ export interface GetUnionTypeComposersOpts { schemaComposer: SchemaComposer; ajv: Ajv; typeComposersList: { input?: AnyTypeComposer; output?: ObjectTypeComposer | UnionTypeComposer }[]; - subSchema: JSONSchemaObject; - generateInterfaceFromSharedFields: boolean; - statusCodeOneOfIndexMap?: Record; + subSchemaAndTypeComposers: JSONSchemaObject & TypeComposers; } export function getUnionTypeComposers({ schemaComposer, ajv, typeComposersList, - subSchema, - generateInterfaceFromSharedFields, - statusCodeOneOfIndexMap, + subSchemaAndTypeComposers, }: GetUnionTypeComposersOpts) { if (typeComposersList.length === 1) { return typeComposersList[0]; @@ -59,100 +54,31 @@ export function getUnionTypeComposers({ type: input, }; }); - const input = schemaComposer.createInputTC({ - name: getValidTypeName({ - schemaComposer, - isInput: true, - subSchema, - }), - description: subSchema.description, - fields: unionInputFields, - }); + (subSchemaAndTypeComposers.input as InputTypeComposer).addFields(unionInputFields); if (!schemaComposer.hasDirective('oneOf')) { schemaComposer.addTypeDefs(ONE_OF_DEFINITION); } - input.setDirectives([ - { - name: 'oneOf', - args: {}, - }, - ]); - let output: AnyTypeComposer; - let sharedFields: Record>; - if (generateInterfaceFromSharedFields) { - for (const typeComposer of outputTypeComposers) { - const fieldMap = (typeComposer as any).getFields(); - if (!sharedFields) { - sharedFields = { ...fieldMap }; - } else { - for (const potentialSharedFieldName in sharedFields) { - if ( - !( - potentialSharedFieldName in fieldMap && - fieldMap[potentialSharedFieldName].type.getTypeName() === - sharedFields[potentialSharedFieldName].type.getTypeName() - ) - ) { - sharedFields[potentialSharedFieldName] = undefined; - delete sharedFields[potentialSharedFieldName]; - } - } - } - } - } + const resolveType = getTypeResolverFromOutputTCs( + ajv, + outputTypeComposers, + (subSchemaAndTypeComposers.output as UnionTypeComposer).getExtension('statusCodeOneOfIndexMap') as any + ); - const resolveType = getTypeResolverFromOutputTCs(ajv, outputTypeComposers, statusCodeOneOfIndexMap); - if (sharedFields && Object.keys(sharedFields).length > 0) { - output = schemaComposer.createInterfaceTC({ - name: getValidTypeName({ - schemaComposer, - isInput: false, - subSchema, - }), - description: subSchema.description, - fields: sharedFields, - resolveType, - extensions: { - statusCodeOneOfIndexMap, - }, - }); - for (const typeComposer of outputTypeComposers) { - (typeComposer as any).addInterface(output); - // GraphQL removes implementations - schemaComposer.addSchemaMustHaveType(typeComposer); + (subSchemaAndTypeComposers.output as UnionTypeComposer).setResolveType(resolveType); + + for (const outputTypeComposer of outputTypeComposers) { + if ('getFields' in outputTypeComposer) { + (subSchemaAndTypeComposers.output as UnionTypeComposer).addType(outputTypeComposer); + } else { + for (const possibleType of outputTypeComposer.getTypes()) { + (subSchemaAndTypeComposers.output as UnionTypeComposer).addType(possibleType); + } } - } else { - // If no shared fields found - output = schemaComposer.createUnionTC({ - name: getValidTypeName({ - schemaComposer, - isInput: false, - subSchema, - }), - description: subSchema.description, - types: () => { - const possibleTypes: ObjectTypeComposerThunked[] = []; - for (const outputTypeComposer of outputTypeComposers) { - if ('getFields' in outputTypeComposer) { - possibleTypes.push(outputTypeComposer); - } else { - for (const possibleType of outputTypeComposer.getTypes()) { - possibleTypes.push(possibleType); - } - } - } - return possibleTypes; - }, - resolveType, - extensions: { - statusCodeOneOfIndexMap, - }, - }); } return { - input, - output, + input: subSchemaAndTypeComposers.input as InputTypeComposer, + output: subSchemaAndTypeComposers.output as UnionTypeComposer, }; } diff --git a/packages/loaders/json-schema/test/execution.test.ts b/packages/loaders/json-schema/test/execution.test.ts index 1a51f0807a399..0bca9c304f359 100644 --- a/packages/loaders/json-schema/test/execution.test.ts +++ b/packages/loaders/json-schema/test/execution.test.ts @@ -127,7 +127,6 @@ describe('Execution', () => { schema, document: parse(query), }); - console.log(result.errors); expect(result).toEqual({ data: { test: { @@ -244,7 +243,6 @@ describe('Execution', () => { schema, document: parse(query), }); - console.log(result.errors); expect(result).toEqual({ data: { test: { @@ -303,7 +301,6 @@ describe('Execution', () => { schema, document: parse(query), }); - console.log(result.errors); expect(result).toEqual({ data: { test: { diff --git a/packages/loaders/json-schema/test/fixtures/book.json b/packages/loaders/json-schema/test/fixtures/book.json new file mode 100644 index 0000000000000..2199333c47312 --- /dev/null +++ b/packages/loaders/json-schema/test/fixtures/book.json @@ -0,0 +1,46 @@ +{ + "definitions": { + "Book": { + "type": "object", + "title": "Book", + "properties": { + "title": { + "type": "string" + }, + "author": { + "type": "string" + }, + "price": { + "type": "number" + }, + "similarBooks": { + "type": "array", + "items": { + "$ref": "#/definitions/SimilarBook" + } + } + } + }, + "SimilarBook": { + "type": "object", + "title": "Book", + "properties": { + "title": { + "type": "string" + }, + "author": { + "type": "string" + }, + "price": { + "type": "number" + }, + "similarBooks": { + "type": "array", + "items": { + "$ref": "#/definitions/SimilarBook" + } + } + } + } + } +} diff --git a/packages/loaders/json-schema/test/getComposerFromSchema.test.ts b/packages/loaders/json-schema/test/getComposerFromSchema.test.ts index 0742fb3e0964f..b57f4ee5afdc7 100644 --- a/packages/loaders/json-schema/test/getComposerFromSchema.test.ts +++ b/packages/loaders/json-schema/test/getComposerFromSchema.test.ts @@ -592,7 +592,8 @@ type ExampleAnyOf { expect(isScalarType(outputComposer.ofType.getType())).toBeTruthy(); expect(outputComposer.ofType.getTypeName()).toBe(title); }); - it('should return union type inside a list type if array definition has items as an array', async () => { + // This is not valid and should be healed first + it.skip('should return union type inside a list type if array definition has items as an array', async () => { const title = 'FooOrBar'; const inputSchema: JSONSchema = { title: 'ExampleObject', diff --git a/packages/loaders/json-schema/test/integration.test.ts b/packages/loaders/json-schema/test/integration.test.ts new file mode 100644 index 0000000000000..4f92013510e1e --- /dev/null +++ b/packages/loaders/json-schema/test/integration.test.ts @@ -0,0 +1,91 @@ +import { printSchemaWithDirectives } from '@graphql-tools/utils'; +import { OperationTypeNode } from 'graphql'; +import loadGraphQLSchemaFromJSONSchemas, { createBundle } from '../src'; + +describe('Integration', () => { + describe('Circular Deps', () => { + it('should handle circular dependencies while creating a GraphQLSchema', async () => { + const schema = await loadGraphQLSchemaFromJSONSchemas('test', { + operations: [ + { + type: OperationTypeNode.QUERY, + field: 'book', + path: '/book', + responseSchema: './fixtures/book.json#/definitions/Book', + }, + ], + cwd: __dirname, + }); + expect(printSchemaWithDirectives(schema)).toMatchInlineSnapshot(` + "schema { + query: Query + } + + type Query { + book: Book + } + + type Book { + title: String + author: String + price: Float + similarBooks: [Book] + }" + `); + }); + it('should handle circular dependencies while generating a bundle', async () => { + const bundle = await createBundle('test', { + operations: [ + { + type: OperationTypeNode.QUERY, + field: 'book', + path: '/book', + responseSchema: './fixtures/book.json#/definitions/Book', + }, + ], + cwd: __dirname, + }); + // Make sure it doesn't have circular dependencies so it can be serialized with JSON.stringify + expect(JSON.stringify(bundle)).toMatchInlineSnapshot( + `"{\\"name\\":\\"test\\",\\"operations\\":[{\\"type\\":\\"query\\",\\"field\\":\\"book\\",\\"path\\":\\"/book\\",\\"responseSchema\\":\\"./fixtures/book.json#/definitions/Book\\"}],\\"referencedSchema\\":{\\"$ref\\":\\"#/definitions/_schema\\",\\"definitions\\":{\\"_schema\\":{\\"type\\":\\"object\\",\\"title\\":\\"_schema\\",\\"properties\\":{\\"query\\":{\\"$ref\\":\\"#/definitions/Query\\"},\\"queryInput\\":{\\"$ref\\":\\"#/definitions/QueryInput\\"}},\\"required\\":[\\"query\\"]},\\"Query\\":{\\"type\\":\\"object\\",\\"title\\":\\"Query\\",\\"properties\\":{\\"book\\":{\\"$ref\\":\\"#/definitions/Book\\"}}},\\"Book\\":{\\"type\\":\\"object\\",\\"title\\":\\"Book\\",\\"properties\\":{\\"title\\":{\\"type\\":\\"string\\"},\\"author\\":{\\"type\\":\\"string\\"},\\"price\\":{\\"type\\":\\"number\\"},\\"similarBooks\\":{\\"type\\":\\"array\\",\\"items\\":{\\"$ref\\":\\"#/definitions/Book\\"}}},\\"$resolvedRef\\":\\"/definitions/Book\\"},\\"QueryInput\\":{\\"type\\":\\"object\\",\\"title\\":\\"QueryInput\\",\\"additionalProperties\\":true}}}}"` + ); + }); + it('should keep duplicates with circular deps if noDeduplication is true', async () => { + const schema = await loadGraphQLSchemaFromJSONSchemas('test', { + noDeduplication: true, + operations: [ + { + type: OperationTypeNode.QUERY, + field: 'book', + path: '/book', + responseSchema: './fixtures/book.json#/definitions/Book', + }, + ], + cwd: __dirname, + }); + expect(printSchemaWithDirectives(schema)).toMatchInlineSnapshot(` + "schema { + query: Query + } + + type Query { + book: Book + } + + type Book { + title: String + author: String + price: Float + similarBooks: [SimilarBook] + } + + type SimilarBook { + title: String + author: String + price: Float + similarBooks: [SimilarBook] + }" + `); + }); + }); +}); diff --git a/packages/loaders/openapi/tests/__snapshots__/docusign.test.ts.snap b/packages/loaders/openapi/tests/__snapshots__/docusign.test.ts.snap index 9786f65bfc18d..3af9c51889a32 100644 --- a/packages/loaders/openapi/tests/__snapshots__/docusign.test.ts.snap +++ b/packages/loaders/openapi/tests/__snapshots__/docusign.test.ts.snap @@ -80,7 +80,7 @@ type Query { \\"Gets the envelope audit events for the specified envelope.\\" AuditEvents_GetAuditEvents(accountId: String!, envelopeId: String!): envelopeAuditEventResponse \\"Retrieves the custom field information for the specified envelope. You can use these fields in the envelopes for your account to record information about the envelope, help search for envelopes, and track information. The envelope custom fields are shown in the Envelope Settings section when a user is creating an envelope in the DocuSign member console. The envelope custom fields are not seen by the envelope recipients.\\\\n\\\\nThere are two types of envelope custom fields, text, and list. A text custom field lets the sender enter the value for the field. With a list custom field, the sender selects the value of the field from a pre-made list.\\" - CustomFields_GetCustomFields(accountId: String!, envelopeId: String!): customFieldsEnvelope + CustomFields_GetCustomFields(accountId: String!, envelopeId: String!): AccountCustomFields \\"Retrieves a list of documents associated with the specified envelope.\\" Documents_GetDocuments(input: Documents_GetDocuments_request_Input, accountId: String!, envelopeId: String!): EnvelopeDocuments \\"Retrieves the specified document from the envelope. If the account has the Highlight Data Changes feature enabled, there is an option to request that any changes in the envelope be highlighted.\\\\n\\\\nThe \`{documentID}\` parameter takes two special values:\\\\n\\\\n| Value | Description |\\\\n| :--- | :--- |\\\\n| \`combined\` | Retrieve a PDF that contains the combined content of all documents and the certificate. |\\\\n| \`archive\` | Retrieve a ZIP archive that contains all of the PDF documents, the certificate, and any .WAV files used for voice authentication. |\\\\n\\" @@ -92,9 +92,9 @@ type Query { \\"Retrieves a page image for display from the specified envelope.\\" Pages_GetPageImage(input: Pages_GetPageImage_request_Input, accountId: String!, envelopeId: String!, documentId: String!, pageNumber: String!): File \\"Returns tabs on the specified page.\\" - Tabs_GetPageTabs(accountId: String!, envelopeId: String!, documentId: String!, pageNumber: String!): EnvelopeDocumentTabs + Tabs_GetPageTabs(accountId: String!, envelopeId: String!, documentId: String!, pageNumber: String!): EnvelopeRecipientTabs \\"Returns tabs on the document.\\" - Tabs_GetDocumentTabs(input: Tabs_GetDocumentTabs_request_Input, accountId: String!, envelopeId: String!, documentId: String!): EnvelopeDocumentTabs + Tabs_GetDocumentTabs(input: Tabs_GetDocumentTabs_request_Input, accountId: String!, envelopeId: String!, documentId: String!): EnvelopeRecipientTabs \\"Retrieves the templates associated with a document in the specified envelope.\\" Templates_GetDocumentTemplates(input: Templates_GetDocumentTemplates_request_Input, accountId: String!, envelopeId: String!, documentId: String!): EnvelopeTemplates \\"Retrieves the email override settings for the specified envelope.\\" @@ -110,9 +110,9 @@ type Query { \\"Retrieves the bulk recipient file information from an envelope that has a bulk recipient.\\" Recipients_GetBulkRecipients(input: Recipients_GetBulkRecipients_request_Input, accountId: String!, envelopeId: String!, recipientId: String!): EnvelopeBulkRecipients \\"Retrieves the Electronic Record and Signature Disclosure, with html formatting, associated with the account. You can use an optional query string to set the language for the disclosure.\\" - ConsumerDisclosure_GetConsumerDisclosureEnvelopeIdRecipientId(input: ConsumerDisclosure_GetConsumerDisclosureEnvelopeIdRecipientId_request_Input, accountId: String!, envelopeId: String!, recipientId: String!): EnvelopeConsumerDisclosures + ConsumerDisclosure_GetConsumerDisclosureEnvelopeIdRecipientId(input: ConsumerDisclosure_GetConsumerDisclosureEnvelopeIdRecipientId_request_Input, accountId: String!, envelopeId: String!, recipientId: String!): AccountConsumerDisclosures \\"Reserved: Retrieves the Electronic Record and Signature Disclosure, with HTML formatting, associated with the account.\\" - ConsumerDisclosure_GetConsumerDisclosureEnvelopeIdRecipientIdLangCode(input: ConsumerDisclosure_GetConsumerDisclosureEnvelopeIdRecipientId_request_Input, accountId: String!, envelopeId: String!, recipientId: String!, langCode: String): EnvelopeConsumerDisclosures + ConsumerDisclosure_GetConsumerDisclosureEnvelopeIdRecipientIdLangCode(input: ConsumerDisclosure_GetConsumerDisclosureEnvelopeIdRecipientId_request_Input, accountId: String!, envelopeId: String!, recipientId: String!, langCode: String): AccountConsumerDisclosures \\"Returns document visibility for the recipients\\" Recipients_GetRecipientDocumentVisibility(accountId: String!, envelopeId: String!, recipientId: String!): EnvelopeDocumentVisibility \\"Retrieves the initials image for the specified user. The image is returned in the same format as it was uploaded. In the request you can specify if the chrome (the added line and identifier around the initial image) is returned with the image.\\\\n\\\\nThe userId specified in the endpoint must match the authenticated user's user id and the user must be a member of the account.\\\\n\\\\nThe \`signatureIdOrName\` paramter accepts signature ID or signature name. DocuSign recommends you use signature ID (\`signatureId\`), since some names contain characters that do not properly URL encode. If you use the user name, it is likely that the name includes spaces and you might need to URL encode the name before using it in the endpoint. \\\\n\\\\nFor example: \\\\\\"Bob Smith\\\\\\" to \\\\\\"Bob%20Smith\\\\\\"\\\\n\\\\nOlder envelopes might only contain chromed images. If getting the non-chromed image fails, try getting the chromed image.\\" @@ -132,7 +132,7 @@ type Query { \\"Retrieves information about groups associated with the account.\\" Groups_GetGroups(input: Groups_GetGroups_request_Input, accountId: String!): Groups \\"Retrieves information about the brands associated with the requested group.\\" - Brands_GetGroupBrands(accountId: String!, groupId: String!): GroupBrands + Brands_GetGroupBrands(accountId: String!, groupId: String!): AccountBrands \\"Retrieves a list of users in a group.\\" Groups_GetGroupUsers(input: Groups_GetGroupUsers_request_Input, accountId: String!, groupId: String!): GroupUsers \\"List payment gateway account information\\" @@ -182,33 +182,33 @@ type Query { \\"Retrieves the definition of the specified template.\\" Templates_GetTemplate(input: ChunkedUploads_GetChunkedUpload_request_Input, accountId: String!, templateId: String!): Templates \\"Retrieves the custom document field information from an existing template.\\" - CustomFields_GetTemplateCustomFields(accountId: String!, templateId: String!): TemplateCustomFields + CustomFields_GetTemplateCustomFields(accountId: String!, templateId: String!): AccountCustomFields \\"Retrieves a list of documents associated with the specified template.\\" Documents_GetTemplateDocuments(accountId: String!, templateId: String!): TemplateDocuments \\"Retrieves one or more PDF documents from the specified template.\\\\n\\\\nYou can specify the ID of the document to retrieve or can specify \`combined\` to retrieve all documents in the template as one pdf.\\" Documents_GetTemplateDocument(input: Documents_GetTemplateDocument_request_Input, accountId: String!, templateId: String!, documentId: String!): File \\"Retrieves the custom document fields for an existing template document.\\" - DocumentFields_GetTemplateDocumentFields(accountId: String!, templateId: String!, documentId: String!): TemplateDocumentFields + DocumentFields_GetTemplateDocumentFields(accountId: String!, templateId: String!, documentId: String!): EnvelopeDocumentFields \\"Returns document page image(s) based on input.\\" Pages_GetTemplatePageImages(input: Pages_GetPageImages_request_Input, accountId: String!, templateId: String!, documentId: String!): pageImages \\"Retrieves a page image for display from the specified template.\\" Pages_GetTemplatePageImage(input: Pages_GetTemplatePageImage_request_Input, accountId: String!, templateId: String!, documentId: String!, pageNumber: String!): File \\"Returns tabs on the specified page.\\" - Tabs_GetTemplatePageTabs(accountId: String!, templateId: String!, documentId: String!, pageNumber: String!): TemplateDocumentTabs + Tabs_GetTemplatePageTabs(accountId: String!, templateId: String!, documentId: String!, pageNumber: String!): EnvelopeRecipientTabs \\"Returns tabs on the document.\\" - Tabs_GetTemplateDocumentTabs(input: Tabs_GetDocumentTabs_request_Input, accountId: String!, templateId: String!, documentId: String!): TemplateDocumentTabs + Tabs_GetTemplateDocumentTabs(input: Tabs_GetDocumentTabs_request_Input, accountId: String!, templateId: String!, documentId: String!): EnvelopeRecipientTabs \\"Retrieves general information about the template lock.\\\\n\\\\nIf the call is made by the user who has the lock and the request has the same integrator key as original, then the \`X-DocuSign-Edit\` header field and additional lock information is included in the response. This allows users to recover a lost editing session token and the \`X-DocuSign-Edit\` header.\\" - Lock_GetTemplateLock(accountId: String!, templateId: String!): TemplateLocks + Lock_GetTemplateLock(accountId: String!, templateId: String!): EnvelopeLocks \\"Retrieves the envelope notification, reminders and expirations, information for an existing template.\\" Notification_GetTemplatesTemplateIdNotification(accountId: String!, templateId: String!): notification \\"Retrieves the information for all recipients in the specified template.\\" - Recipients_GetTemplateRecipients(input: Recipients_GetTemplateRecipients_request_Input, accountId: String!, templateId: String!): TemplateRecipients + Recipients_GetTemplateRecipients(input: Recipients_GetTemplateRecipients_request_Input, accountId: String!, templateId: String!): EnvelopeRecipients \\"Retrieves the bulk recipient file information from a template that has a bulk recipient.\\" - Recipients_GetTemplateBulkRecipients(input: Recipients_GetTemplateBulkRecipients_request_Input, accountId: String!, templateId: String!, recipientId: String!): TemplateBulkRecipients + Recipients_GetTemplateBulkRecipients(input: Recipients_GetTemplateBulkRecipients_request_Input, accountId: String!, templateId: String!, recipientId: String!): EnvelopeBulkRecipients \\"Returns document visibility for the recipients\\" Recipients_GetTemplateRecipientDocumentVisibility(accountId: String!, templateId: String!, recipientId: String!): EnvelopeDocumentVisibility \\"Gets the tabs information for a signer or sign-in-person recipient in a template.\\" - Recipients_GetTemplateRecipientTabs(input: Recipients_GetRecipientTabs_request_Input, accountId: String!, templateId: String!, recipientId: String!): TemplateRecipientTabs + Recipients_GetTemplateRecipientTabs(input: Recipients_GetRecipientTabs_request_Input, accountId: String!, templateId: String!, recipientId: String!): EnvelopeRecipientTabs \\"Retrieves a list of file types (mime-types and file-extensions) that are not supported for upload through the DocuSign system.\\" UnsupportedFileTypes_GetUnsupportedFileTypes(accountId: String!): fileTypeList \\"Retrieves the list of users for the specified account.\\\\n\\\\nThe response returns the list of users for the account along with the information about the result set. If the \`additional_info\` query was added to the endpoint and set to **true**, the full user information is returned for each user\\" @@ -1499,7 +1499,7 @@ type EnvelopeRecipients { \\"Specifies a signer that is in the same physical location as a DocuSign user who will act as a Signing Host for the transaction. The recipient added is the Signing Host and new separate Signer Name field appears after Sign in person is selected.\\" inPersonSigners: [inPersonSigner] \\"Identifies a recipient that can, but is not required to, add name and email information for recipients at the same or subsequent level in the routing order (until subsequent Agents, Editors or Intermediaries recipient types are added).\\" - intermediaries: [intermediary] + intermediaries: [agent] \\"The list of recipient event statuses that will trigger Connect to send updates to the url. It can be a two-part list with:\\\\n\\\\n* recipientEventStatusCode - The recipient status, this can be Sent, Delivered, Completed, Declined, AuthenticationFailed, and AutoResponded.\\\\n* includeDocuments - When set to **true**, the envelope time zone information is included in the message.\\" recipientCount: String \\"A complex type containing information about the Signer recipient.\\" @@ -2165,21 +2165,21 @@ type EnvelopeRecipientTabs { \\"Specifies a tag on the document where you want to give the recipient the option of declining an envelope. If the recipient clicks the Decline tag during the signing process, the envelope is voided.\\" declineTabs: [decline] \\"Specifies a location on the document where you want where you want the recipient's email, as entered in the recipient information, to display.\\" - emailAddressTabs: [emailAddress] + emailAddressTabs: [dateSigned] \\"Specifies a tag on the document where you want the recipient to enter an email. Email tags are single-line fields that accept any characters. The system checks that a valid email format (i.e. xxx@yyy.zzz) is entered in the tag. It uses the same parameters as a Text tab, with the validation message and pattern set for email information.\\\\n\\\\nWhen getting information that includes this tab type, the original value of the tab when the associated envelope was sent is included in the response.\\" - emailTabs: [email] + emailTabs: [date] \\"Specifies a tag on the document where you want the envelope ID for to appear. Recipients cannot enter or change the information in this tab, it is for informational purposes only.\\" envelopeIdTabs: [envelopeId] \\"Specifies tag on a document where you want the recipient's first name to appear. This tag takes the recipient's name, as entered in the recipient information, splits it into sections based on spaces and uses the first section as the first name.\\" - firstNameTabs: [firstName] + firstNameTabs: [dateSigned] \\"A list of formula tabs.\\\\n\\\\nThe value of a formula tab is calculated\\\\nfrom the values of other\\\\nnumber or date tabs in the document.\\\\nWhen the recipient completes the underlying fields,\\\\nthe formula tab calculates and displays the result.\\\\n\\\\nThe \`formula\` property of the tab\\\\ncontains the references\\\\nto the underlying tabs.\\\\nSee [Calculated Fields][calculatedfields]\\\\nin the DocuSign Support Center\\\\nto learn more about formulas.\\\\n\\\\nIf a formula tab contains\\\\na \`paymentDetails\` property,\\\\nthe tab is considered a payment item.\\\\nSee [Requesting Payments Along with Signatures][paymentguide]\\\\nin the DocuSign Support Center\\\\nto learn more about payments.\\\\n\\\\n[calculatedfields]: https://support.docusign.com/en/guides/ndse-user-guide-calculated-fields\\\\n[paymentguide]: https://support.docusign.com/en/guides/requesting-payments-along-with-signatures\\" formulaTabs: [formulaTab] \\"Specifies a tag on the document where you want the recipient's name to appear.\\" - fullNameTabs: [fullName] + fullNameTabs: [dateSigned] \\"Specifies a tag location in the document at which a recipient will place their initials. The \`optional\` parameter specifies whether the initials are required or optional.\\" initialHereTabs: [initialHere] \\"Specifies a tag on a document where you want the recipient's last name to appear. This tag takes the recipient's name, as entered in the recipient information, splits it into sections based on spaces and uses the last section as the last name.\\" - lastNameTabs: [lastName] + lastNameTabs: [dateSigned] \\"Specify this tag to give your recipient a list of options, presented as a drop-down list, from which they can select.\\" listTabs: [list] \\"Specifies a location on the document where you want to place additional information, in the form of a note, for a recipient.\\" @@ -2642,7 +2642,7 @@ type decline { yPosition: String } -type emailAddress { +type envelopeId { \\"Reserved for DocuSign.\\\\n\\" anchorCaseSensitive: String \\"Reserved for DocuSign.\\\\n\\" @@ -2697,15 +2697,14 @@ type emailAddress { templateRequired: String \\"When set to **true**, the information in the tab is underlined.\\" underline: String - \\"Specifies the value of the tab.\\" - value: String \\"This indicates the horizontal offset of the object on the page.\\\\nDocuSign uses 72 DPI when determining position.\\\\nRequired. May be zero.\\" xPosition: String \\"This indicates the vertical offset of the object on the page. DocuSign uses 72 DPI when determining position.\\" yPosition: String } -type email { +\\"The value of a formula tab is calculated\\\\nfrom the values of other\\\\nnumber or date tabs in the document.\\\\nWhen the recipient completes the underlying fields,\\\\nthe formula tab calculates and displays the result.\\\\n\\\\nThe \`formula\` property of the tab\\\\ncontains the references\\\\nto the underlying tabs.\\\\nSee [Calculated Fields][calculatedfields]\\\\nin the DocuSign Support Center\\\\nto learn more about formulas.\\\\n\\\\nIf a formula tab contains\\\\na \`paymentDetails\` property,\\\\nthe tab is considered a payment item.\\\\nSee [Requesting Payments Along with Signatures][paymentguide]\\\\nin the DocuSign Support Center\\\\nto learn more about payments.\\\\n\\\\n[calculatedfields]: https://support.docusign.com/en/guides/ndse-user-guide-calculated-fields\\\\n[paymentguide]: https://support.docusign.com/en/guides/requesting-payments-along-with-signatures\\" +type formulaTab { \\"Reserved for DocuSign.\\\\n\\" anchorCaseSensitive: String \\"Reserved for DocuSign.\\\\n\\" @@ -2743,6 +2742,11 @@ type email { fontColor: String \\"The font size used for the information in the tab.\\\\n\\\\nPossible values are: Size7, Size8, Size9, Size10, Size11, Size12, Size14, Size16, Size18, Size20, Size22, Size24, Size26, Size28, Size36, Size48, or Size72.\\" fontSize: String + \\"Contains the formula\\\\nfor calculating the value of\\\\nthis tab.\\\\n\\\\nUse a tab's \`tabLabel\`,\\\\nenclosed in brackets,\\\\nto refer to it.\\\\n\\\\nFor example,\\\\nyou want to present the total cost\\\\nof two items, tax included.\\\\n\\\\nThe cost of each item is stored\\\\nin number tabs labeled Item1 and Item2.\\\\nThe tax rate is in a number tab\\\\nlabeled TaxRate.\\\\n\\\\nThe formula string for this property\\\\nwould be:\\\\n\`([Item1] + [Item2]) * (1 + [TaxRate])\`\\\\n\\\\nSee [Calculated Fields][calculatedfields]\\\\nin the DocuSign Support Center\\\\nto learn more about formulas.\\\\n\\\\nMaximum Length: 2000 characters\\\\n\\\\n[calculatedfields]: https://support.docusign.com/en/guides/ndse-user-guide-calculated-fields\\" + formula: String + hidden: String + \\"When set to **true**, sets this as a payment tab. Can only be used with Text, Number, Formula, or List tabs. The value of the tab must be a number.\\" + isPaymentAmount: String \\"When set to **true**, the information in the tab is italic.\\" italic: String \\"When set to **true**, the signer cannot change the data of the custom tab.\\" @@ -2755,6 +2759,7 @@ type email { originalValue: String \\"Specifies the page number on which the tab is located.\\\\nMust be 1 for [supplemental documents][supdocs].\\\\n\\\\n[supdocs]: /esign/guide/appendix/glossary.html#supplemental-documents\\" pageNumber: String + paymentDetails: paymentDetails \\"Unique for the recipient. It is used by the tab element to indicate which recipient is to sign the Document.\\" recipientId: String \\"When set to **true** and shared is true, information must be entered in this field to complete the envelope.\\" @@ -2763,6 +2768,7 @@ type email { requireInitialOnSharedChange: String \\"When set to **true**, the signer is required to fill out this tab\\" required: String + roundDecimalPlaces: String \\"When set to **true**, the sender must populate the tab before an envelope can be sent using the template. \\\\n\\\\nThis value tab can only be changed by modifying (PUT) the template. \\\\n\\\\nTabs with a \`senderRequired\` value of true cannot be deleted from an envelope.\\" senderRequired: String \\"When set to **true**, this custom tab is shared.\\" @@ -2794,7 +2800,97 @@ type email { yPosition: String } -type envelopeId { +\\"When a formula tab\\\\nhas a \`paymentDetails\` property,\\\\nthe formula tab\\\\nis a payment item.\\\\nSee [Requesting Payments Along with Signatures][paymentguide]\\\\nin the DocuSign Support Center\\\\nto learn more about payments.\\\\n\\\\n[paymentguide]: https://support.docusign.com/en/guides/requesting-payments-along-with-signatures\\" +type paymentDetails { + chargeId: String + \\"Specifies the three-letter\\\\n[ISO 4217][ISO4217] currency code for the payment.\\\\n\\\\nSupported currencies are:\\\\n\\\\n* AUD Australian dollar\\\\n* CAD Canadian dollar\\\\n* EUR Euro\\\\n* GBP Great Britain pund\\\\n* USD United States dollar\\\\n\\\\nSpecifying any other ISO 4217 code for payments is an error.\\\\n\\\\n[ISO4217]: https://en.wikipedia.org/wiki/ISO_4217\\" + currencyCode: String + \\"A GUID that identifies the payment gateway\\\\nconnected to the sender's DocuSign account.\\\\n\\\\nThere is no public API\\\\nfor connecting payment gateway accounts\\\\nYou must connect and manage payment gateway accounts\\\\nthrough the DocuSign Admin console\\\\nand through your chosen payment gateway.\\\\n\\\\nYou can get the gateway account ID\\\\nin the Payments section\\\\nof the DocuSign Admin console.\\\\n\\\\n\\\\n[paymentgateways]: https://support.docusign.com/en/guides/managing-payment-gateways\\" + gatewayAccountId: String + gatewayName: String + \\"A payment formula can have\\\\none or more line items\\\\nthat provide detail about\\\\nindividual items in a payment request.\\\\n\\\\nThe list of line items\\\\nare returned as metadata\\\\nto the payment gateway.\\" + lineItems: [paymentLineItem] + \\"This read-only property describes the status of a payment.\\\\n\\\\n* \`new\`
\\\\n This is a new payment request.\\\\n The envelope has been created,\\\\n but no payment authorizations have been made.\\\\n\\\\n* \`auth_complete\`
\\\\n A recipient has entered their credit card information,\\\\n but the envelope has not been completed.\\\\n The card has not been charged.\\\\n\\\\n* \`payment_complete\`
\\\\n The recipient's card has been charged.\\\\n\\\\n* \`payment_capture_failed\`
\\\\n Final charge failed.\\\\n This can happen when too much time\\\\n passes between authorizing the payment\\\\n and completing the document.\\" + status: String + total: money +} + +\\"A line item describes details\\\\nabout an individual line item\\\\nin a payment request.\\" +type paymentLineItem { + \\"This is a the \`tabLabel\`\\\\nthat specifies the amount paid\\\\nfor the line items.\\" + amountReference: String + \\"A sender-defined description of the line item.\\" + description: String + \\"This is the sender-defined\\\\nSKU, inventory number, or other item code\\\\nfor the line item.\\" + itemCode: String + \\"This is a sender-defined\\\\nproduct name, service name,\\\\nor other designation for the line item.\\" + name: String +} + +\\"Describes information\\\\nabout the \`total\` of a payment.\\" +type money { + \\"The total payment amount\\\\nin the currency's base unit.\\\\nFor example, for USD\\\\nthe base currency is one cent.\\" + amountInBaseUnit: String + \\"The three-letter\\\\n[ISO 4217][ISO4217] currency code for the payment.\\\\n\\\\nFor example:\\\\n\\\\n* AUD Australian dollar\\\\n* CAD Canadian dollar\\\\n* EUR Euro\\\\n* GBP Great Britain pund\\\\n* USD United States dollar\\\\n\\\\nThis is a read-only property.\\\\n\\\\n[ISO4217]: https://en.wikipedia.org/wiki/ISO_4217\\" + currency: String + \\"The payment amount as displayed\\\\nin the \`currency\`.\\\\n\\\\nFor example, if the payment amount\\\\nis USD 12.59,\\\\nthe \`amountInBaseUnit\` is 1259 (cents),\\\\nand the displayed amount is \`$12.59 USD\`.\\\\n\\\\nThis is a read-only property.\\" + displayAmount: String +} + +type initialHere { + \\"Reserved for DocuSign.\\\\n\\" + anchorCaseSensitive: String + \\"Reserved for DocuSign.\\\\n\\" + anchorHorizontalAlignment: String + \\"When set to **true**, this tab is ignored if anchorString is not found in the document.\\" + anchorIgnoreIfNotPresent: String + \\"Reserved for DocuSign.\\\\n\\" + anchorMatchWholeWord: String + \\"Anchor text information for a radio button.\\" + anchorString: String + \\"Specifies units of the X and Y offset. Units could be pixels, millimeters, centimeters, or inches.\\" + anchorUnits: String + \\"Specifies the X axis location of the tab, in achorUnits, relative to the anchorString.\\" + anchorXOffset: String + \\"Specifies the Y axis location of the tab, in achorUnits, relative to the anchorString.\\" + anchorYOffset: String + \\"For conditional fields this is the TabLabel of the parent tab that controls this tab's visibility.\\" + conditionalParentLabel: String + \\"For conditional fields, this is the value of the parent tab that controls the tab's visibility.\\\\n\\\\nIf the parent tab is a Checkbox, Radio button, Optional Signature, or Optional Initial use \\\\\\"on\\\\\\" as the value to show that the parent tab is active.\\" + conditionalParentValue: String + \\"The DocuSign generated custom tab ID for the custom tab to be applied. This can only be used when adding new tabs for a recipient. When used, the new tab inherits all the custom tab properties.\\" + customTabId: String + \\"Specifies the document ID number that the tab is placed on. This must refer to an existing Document's ID attribute.\\" + documentId: String + errorDetails: errorDetails + mergeField: mergeField + \\"Specifies the tool tip text for the tab.\\" + name: String + optional: String + \\"Specifies the page number on which the tab is located.\\\\nMust be 1 for [supplemental documents][supdocs].\\\\n\\\\n[supdocs]: /esign/guide/appendix/glossary.html#supplemental-documents\\" + pageNumber: String + \\"Unique for the recipient. It is used by the tab element to indicate which recipient is to sign the Document.\\" + recipientId: String + \\"Sets the size for the InitialHere tab. It can be value from 0.5 to 1.0, where 1.0 represents full size and 0.5 is 50% size.\\" + scaleValue: Float + \\"Indicates the envelope status. Valid values are:\\\\n\\\\n* sent - The envelope is sent to the recipients. \\\\n* created - The envelope is saved as a draft and can be modified and sent later.\\" + status: String + \\"The unique identifier for the tab. The tabid can be retrieved with the [ML:GET call].\\" + tabId: String + \\"The label string associated with the tab.\\\\nThe string may be the empty string.\\\\nIf no value is provided, the tab type is used as the value.\\\\n\\\\nMaximum of 500 characters.\\" + tabLabel: String + tabOrder: String + \\"When set to **true**, the sender cannot change any attributes of the recipient. Used only when working with template recipients.\\" + templateLocked: String + \\"When set to **true**, the sender may not remove the recipient. Used only when working with template recipients.\\" + templateRequired: String + \\"This indicates the horizontal offset of the object on the page.\\\\nDocuSign uses 72 DPI when determining position.\\\\nRequired. May be zero.\\" + xPosition: String + \\"This indicates the vertical offset of the object on the page. DocuSign uses 72 DPI when determining position.\\" + yPosition: String +} + +type list { \\"Reserved for DocuSign.\\\\n\\" anchorCaseSensitive: String \\"Reserved for DocuSign.\\\\n\\" @@ -2830,12 +2926,25 @@ type envelopeId { fontSize: String \\"When set to **true**, the information in the tab is italic.\\" italic: String + \\"The list of values that can be selected by senders. The list values are separated by semi-colons. Example: [one;two;three;four]\\\\n\\\\nMaximum Length of listItems: 2048 characters.\\\\nMaximum Length of items in the list: 100 characters.\\" + listItems: [listItem] + \\"When set to **true**, the signer cannot change the data of the custom tab.\\" + locked: String mergeField: mergeField - name: String \\"Specifies the page number on which the tab is located.\\\\nMust be 1 for [supplemental documents][supdocs].\\\\n\\\\n[supdocs]: /esign/guide/appendix/glossary.html#supplemental-documents\\" pageNumber: String \\"Unique for the recipient. It is used by the tab element to indicate which recipient is to sign the Document.\\" recipientId: String + \\"When set to **true** and shared is true, information must be entered in this field to complete the envelope.\\" + requireAll: String + \\"Optional element for field markup. When set to **true**, the signer is required to initial when they modify a shared field.\\" + requireInitialOnSharedChange: String + \\"When set to **true**, the signer is required to fill out this tab\\" + required: String + \\"When set to **true**, the sender must populate the tab before an envelope can be sent using the template. \\\\n\\\\nThis value tab can only be changed by modifying (PUT) the template. \\\\n\\\\nTabs with a \`senderRequired\` value of true cannot be deleted from an envelope.\\" + senderRequired: String + \\"When set to **true**, this custom tab is shared.\\" + shared: String \\"Indicates the envelope status. Valid values are:\\\\n\\\\n* sent - The envelope is sent to the recipients. \\\\n* created - The envelope is saved as a draft and can be modified and sent later.\\" status: String \\"The unique identifier for the tab. The tabid can be retrieved with the [ML:GET call].\\" @@ -2849,13 +2958,26 @@ type envelopeId { templateRequired: String \\"When set to **true**, the information in the tab is underlined.\\" underline: String + \\"The value to use when the item is selected.\\" + value: String + \\"Width of the tab in pixels.\\" + width: Int \\"This indicates the horizontal offset of the object on the page.\\\\nDocuSign uses 72 DPI when determining position.\\\\nRequired. May be zero.\\" xPosition: String \\"This indicates the vertical offset of the object on the page. DocuSign uses 72 DPI when determining position.\\" yPosition: String } -type firstName { +type listItem { + \\"When set to **true**, indicates that this item is the default selection shown to a signer. \\\\n\\\\nOnly one selection can be set as the default.\\" + selected: String + \\"Specifies the text that is shown in the dropdown list.\\" + text: String + \\"Specifies the value that is used when the list item is selected.\\" + value: String +} + +type note { \\"Reserved for DocuSign.\\\\n\\" anchorCaseSensitive: String \\"Reserved for DocuSign.\\\\n\\" @@ -2889,14 +3011,19 @@ type firstName { fontColor: String \\"The font size used for the information in the tab.\\\\n\\\\nPossible values are: Size7, Size8, Size9, Size10, Size11, Size12, Size14, Size16, Size18, Size20, Size22, Size24, Size26, Size28, Size36, Size48, or Size72.\\" fontSize: String + \\"Height of the tab in pixels.\\" + height: Int \\"When set to **true**, the information in the tab is italic.\\" italic: String mergeField: mergeField + \\"Specifies the tool tip text for the tab.\\" name: String \\"Specifies the page number on which the tab is located.\\\\nMust be 1 for [supplemental documents][supdocs].\\\\n\\\\n[supdocs]: /esign/guide/appendix/glossary.html#supplemental-documents\\" pageNumber: String \\"Unique for the recipient. It is used by the tab element to indicate which recipient is to sign the Document.\\" recipientId: String + \\"When set to **true**, this custom tab is shared.\\" + shared: String \\"Indicates the envelope status. Valid values are:\\\\n\\\\n* sent - The envelope is sent to the recipients. \\\\n* created - The envelope is saved as a draft and can be modified and sent later.\\" status: String \\"The unique identifier for the tab. The tabid can be retrieved with the [ML:GET call].\\" @@ -2912,14 +3039,15 @@ type firstName { underline: String \\"Specifies the value of the tab.\\" value: String + \\"Width of the tab in pixels.\\" + width: Int \\"This indicates the horizontal offset of the object on the page.\\\\nDocuSign uses 72 DPI when determining position.\\\\nRequired. May be zero.\\" xPosition: String \\"This indicates the vertical offset of the object on the page. DocuSign uses 72 DPI when determining position.\\" yPosition: String } -\\"The value of a formula tab is calculated\\\\nfrom the values of other\\\\nnumber or date tabs in the document.\\\\nWhen the recipient completes the underlying fields,\\\\nthe formula tab calculates and displays the result.\\\\n\\\\nThe \`formula\` property of the tab\\\\ncontains the references\\\\nto the underlying tabs.\\\\nSee [Calculated Fields][calculatedfields]\\\\nin the DocuSign Support Center\\\\nto learn more about formulas.\\\\n\\\\nIf a formula tab contains\\\\na \`paymentDetails\` property,\\\\nthe tab is considered a payment item.\\\\nSee [Requesting Payments Along with Signatures][paymentguide]\\\\nin the DocuSign Support Center\\\\nto learn more about payments.\\\\n\\\\n[calculatedfields]: https://support.docusign.com/en/guides/ndse-user-guide-calculated-fields\\\\n[paymentguide]: https://support.docusign.com/en/guides/requesting-payments-along-with-signatures\\" -type formulaTab { +type number { \\"Reserved for DocuSign.\\\\n\\" anchorCaseSensitive: String \\"Reserved for DocuSign.\\\\n\\" @@ -2959,7 +3087,6 @@ type formulaTab { fontSize: String \\"Contains the formula\\\\nfor calculating the value of\\\\nthis tab.\\\\n\\\\nUse a tab's \`tabLabel\`,\\\\nenclosed in brackets,\\\\nto refer to it.\\\\n\\\\nFor example,\\\\nyou want to present the total cost\\\\nof two items, tax included.\\\\n\\\\nThe cost of each item is stored\\\\nin number tabs labeled Item1 and Item2.\\\\nThe tax rate is in a number tab\\\\nlabeled TaxRate.\\\\n\\\\nThe formula string for this property\\\\nwould be:\\\\n\`([Item1] + [Item2]) * (1 + [TaxRate])\`\\\\n\\\\nSee [Calculated Fields][calculatedfields]\\\\nin the DocuSign Support Center\\\\nto learn more about formulas.\\\\n\\\\nMaximum Length: 2000 characters\\\\n\\\\n[calculatedfields]: https://support.docusign.com/en/guides/ndse-user-guide-calculated-fields\\" formula: String - hidden: String \\"When set to **true**, sets this as a payment tab. Can only be used with Text, Number, Formula, or List tabs. The value of the tab must be a number.\\" isPaymentAmount: String \\"When set to **true**, the information in the tab is italic.\\" @@ -2969,12 +3096,12 @@ type formulaTab { \\"An optional value that describes the maximum length of the property when the property is a string.\\" maxLength: Int mergeField: mergeField + \\"Specifies the tool tip text for the tab.\\" name: String \\"The initial value of the tab when it was sent to the recipient.\\" originalValue: String \\"Specifies the page number on which the tab is located.\\\\nMust be 1 for [supplemental documents][supdocs].\\\\n\\\\n[supdocs]: /esign/guide/appendix/glossary.html#supplemental-documents\\" pageNumber: String - paymentDetails: paymentDetails \\"Unique for the recipient. It is used by the tab element to indicate which recipient is to sign the Document.\\" recipientId: String \\"When set to **true** and shared is true, information must be entered in this field to complete the envelope.\\" @@ -2983,7 +3110,6 @@ type formulaTab { requireInitialOnSharedChange: String \\"When set to **true**, the signer is required to fill out this tab\\" required: String - roundDecimalPlaces: String \\"When set to **true**, the sender must populate the tab before an envelope can be sent using the template. \\\\n\\\\nThis value tab can only be changed by modifying (PUT) the template. \\\\n\\\\nTabs with a \`senderRequired\` value of true cannot be deleted from an envelope.\\" senderRequired: String \\"When set to **true**, this custom tab is shared.\\" @@ -3015,44 +3141,28 @@ type formulaTab { yPosition: String } -\\"When a formula tab\\\\nhas a \`paymentDetails\` property,\\\\nthe formula tab\\\\nis a payment item.\\\\nSee [Requesting Payments Along with Signatures][paymentguide]\\\\nin the DocuSign Support Center\\\\nto learn more about payments.\\\\n\\\\n[paymentguide]: https://support.docusign.com/en/guides/requesting-payments-along-with-signatures\\" -type paymentDetails { - chargeId: String - \\"Specifies the three-letter\\\\n[ISO 4217][ISO4217] currency code for the payment.\\\\n\\\\nSupported currencies are:\\\\n\\\\n* AUD Australian dollar\\\\n* CAD Canadian dollar\\\\n* EUR Euro\\\\n* GBP Great Britain pund\\\\n* USD United States dollar\\\\n\\\\nSpecifying any other ISO 4217 code for payments is an error.\\\\n\\\\n[ISO4217]: https://en.wikipedia.org/wiki/ISO_4217\\" - currencyCode: String - \\"A GUID that identifies the payment gateway\\\\nconnected to the sender's DocuSign account.\\\\n\\\\nThere is no public API\\\\nfor connecting payment gateway accounts\\\\nYou must connect and manage payment gateway accounts\\\\nthrough the DocuSign Admin console\\\\nand through your chosen payment gateway.\\\\n\\\\nYou can get the gateway account ID\\\\nin the Payments section\\\\nof the DocuSign Admin console.\\\\n\\\\n\\\\n[paymentgateways]: https://support.docusign.com/en/guides/managing-payment-gateways\\" - gatewayAccountId: String - gatewayName: String - \\"A payment formula can have\\\\none or more line items\\\\nthat provide detail about\\\\nindividual items in a payment request.\\\\n\\\\nThe list of line items\\\\nare returned as metadata\\\\nto the payment gateway.\\" - lineItems: [paymentLineItem] - \\"This read-only property describes the status of a payment.\\\\n\\\\n* \`new\`
\\\\n This is a new payment request.\\\\n The envelope has been created,\\\\n but no payment authorizations have been made.\\\\n\\\\n* \`auth_complete\`
\\\\n A recipient has entered their credit card information,\\\\n but the envelope has not been completed.\\\\n The card has not been charged.\\\\n\\\\n* \`payment_complete\`
\\\\n The recipient's card has been charged.\\\\n\\\\n* \`payment_capture_failed\`
\\\\n Final charge failed.\\\\n This can happen when too much time\\\\n passes between authorizing the payment\\\\n and completing the document.\\" - status: String - total: money -} - -\\"A line item describes details\\\\nabout an individual line item\\\\nin a payment request.\\" -type paymentLineItem { - \\"This is a the \`tabLabel\`\\\\nthat specifies the amount paid\\\\nfor the line items.\\" - amountReference: String - \\"A sender-defined description of the line item.\\" - description: String - \\"This is the sender-defined\\\\nSKU, inventory number, or other item code\\\\nfor the line item.\\" - itemCode: String - \\"This is a sender-defined\\\\nproduct name, service name,\\\\nor other designation for the line item.\\" - name: String -} - -\\"Describes information\\\\nabout the \`total\` of a payment.\\" -type money { - \\"The total payment amount\\\\nin the currency's base unit.\\\\nFor example, for USD\\\\nthe base currency is one cent.\\" - amountInBaseUnit: String - \\"The three-letter\\\\n[ISO 4217][ISO4217] currency code for the payment.\\\\n\\\\nFor example:\\\\n\\\\n* AUD Australian dollar\\\\n* CAD Canadian dollar\\\\n* EUR Euro\\\\n* GBP Great Britain pund\\\\n* USD United States dollar\\\\n\\\\nThis is a read-only property.\\\\n\\\\n[ISO4217]: https://en.wikipedia.org/wiki/ISO_4217\\" - currency: String - \\"The payment amount as displayed\\\\nin the \`currency\`.\\\\n\\\\nFor example, if the payment amount\\\\nis USD 12.59,\\\\nthe \`amountInBaseUnit\` is 1259 (cents),\\\\nand the displayed amount is \`$12.59 USD\`.\\\\n\\\\nThis is a read-only property.\\" - displayAmount: String +type radioGroup { + \\"For conditional fields this is the TabLabel of the parent tab that controls this tab's visibility.\\" + conditionalParentLabel: String + \\"For conditional fields, this is the value of the parent tab that controls the tab's visibility.\\\\n\\\\nIf the parent tab is a Checkbox, Radio button, Optional Signature, or Optional Initial use \\\\\\"on\\\\\\" as the value to show that the parent tab is active.\\" + conditionalParentValue: String + \\"Specifies the document ID number that the tab is placed on. This must refer to an existing Document's ID attribute.\\" + documentId: String + \\"The name of the group.\\" + groupName: String + \\"Specifies the locations and status for radio buttons that are grouped together.\\" + radios: [radio] + \\"Unique for the recipient. It is used by the tab element to indicate which recipient is to sign the Document.\\" + recipientId: String + \\"When set to **true** and shared is true, information must be entered in this field to complete the envelope.\\" + requireAll: String + \\"Optional element for field markup. When set to **true**, the signer is required to initial when they modify a shared field.\\" + requireInitialOnSharedChange: String + \\"When set to **true**, this custom tab is shared.\\" + shared: String } -type fullName { +type radio { \\"Reserved for DocuSign.\\\\n\\" anchorCaseSensitive: String \\"Reserved for DocuSign.\\\\n\\" @@ -3069,44 +3179,18 @@ type fullName { anchorXOffset: String \\"Specifies the Y axis location of the tab, in achorUnits, relative to the anchorString.\\" anchorYOffset: String - \\"When set to **true**, the information in the tab is bold.\\" - bold: String - \\"For conditional fields this is the TabLabel of the parent tab that controls this tab's visibility.\\" - conditionalParentLabel: String - \\"For conditional fields, this is the value of the parent tab that controls the tab's visibility.\\\\n\\\\nIf the parent tab is a Checkbox, Radio button, Optional Signature, or Optional Initial use \\\\\\"on\\\\\\" as the value to show that the parent tab is active.\\" - conditionalParentValue: String - \\"The DocuSign generated custom tab ID for the custom tab to be applied. This can only be used when adding new tabs for a recipient. When used, the new tab inherits all the custom tab properties.\\" - customTabId: String - \\"Specifies the document ID number that the tab is placed on. This must refer to an existing Document's ID attribute.\\" - documentId: String errorDetails: errorDetails - \\"The font to be used for the tab value. Supported Fonts: Arial, Arial, ArialNarrow, Calibri, CourierNew, Garamond, Georgia, Helvetica, LucidaConsole, Tahoma, TimesNewRoman, Trebuchet, Verdana, MSGothic, MSMincho, Default.\\" - font: String - \\"The font color used for the information in the tab.\\\\n\\\\nPossible values are: Black, BrightBlue, BrightRed, DarkGreen, DarkRed, Gold, Green, NavyBlue, Purple, or White.\\" - fontColor: String - \\"The font size used for the information in the tab.\\\\n\\\\nPossible values are: Size7, Size8, Size9, Size10, Size11, Size12, Size14, Size16, Size18, Size20, Size22, Size24, Size26, Size28, Size36, Size48, or Size72.\\" - fontSize: String - \\"When set to **true**, the information in the tab is italic.\\" - italic: String - mergeField: mergeField - name: String + \\"When set to **true**, the signer cannot change the data of the custom tab.\\" + locked: String \\"Specifies the page number on which the tab is located.\\\\nMust be 1 for [supplemental documents][supdocs].\\\\n\\\\n[supdocs]: /esign/guide/appendix/glossary.html#supplemental-documents\\" pageNumber: String - \\"Unique for the recipient. It is used by the tab element to indicate which recipient is to sign the Document.\\" - recipientId: String - \\"Indicates the envelope status. Valid values are:\\\\n\\\\n* sent - The envelope is sent to the recipients. \\\\n* created - The envelope is saved as a draft and can be modified and sent later.\\" - status: String + \\"When set to **true**, the signer is required to fill out this tab\\" + required: String + \\"When set to **true**, the radio button is selected.\\" + selected: String \\"The unique identifier for the tab. The tabid can be retrieved with the [ML:GET call].\\" tabId: String - \\"The label string associated with the tab.\\\\nThe string may be the empty string.\\\\nIf no value is provided, the tab type is used as the value.\\\\n\\\\nMaximum of 500 characters.\\" - tabLabel: String tabOrder: String - \\"When set to **true**, the sender cannot change any attributes of the recipient. Used only when working with template recipients.\\" - templateLocked: String - \\"When set to **true**, the sender may not remove the recipient. Used only when working with template recipients.\\" - templateRequired: String - \\"When set to **true**, the information in the tab is underlined.\\" - underline: String \\"Specifies the value of the tab.\\" value: String \\"This indicates the horizontal offset of the object on the page.\\\\nDocuSign uses 72 DPI when determining position.\\\\nRequired. May be zero.\\" @@ -3115,7 +3199,7 @@ type fullName { yPosition: String } -type initialHere { +type signHere { \\"Reserved for DocuSign.\\\\n\\" anchorCaseSensitive: String \\"Reserved for DocuSign.\\\\n\\" @@ -3149,8 +3233,9 @@ type initialHere { pageNumber: String \\"Unique for the recipient. It is used by the tab element to indicate which recipient is to sign the Document.\\" recipientId: String - \\"Sets the size for the InitialHere tab. It can be value from 0.5 to 1.0, where 1.0 represents full size and 0.5 is 50% size.\\" scaleValue: Float + stampType: String + stampTypeMetadata: propertyMetadata \\"Indicates the envelope status. Valid values are:\\\\n\\\\n* sent - The envelope is sent to the recipients. \\\\n* created - The envelope is saved as a draft and can be modified and sent later.\\" status: String \\"The unique identifier for the tab. The tabid can be retrieved with the [ML:GET call].\\" @@ -3168,7 +3253,7 @@ type initialHere { yPosition: String } -type lastName { +type signerAttachment { \\"Reserved for DocuSign.\\\\n\\" anchorCaseSensitive: String \\"Reserved for DocuSign.\\\\n\\" @@ -3185,8 +3270,6 @@ type lastName { anchorXOffset: String \\"Specifies the Y axis location of the tab, in achorUnits, relative to the anchorString.\\" anchorYOffset: String - \\"When set to **true**, the information in the tab is bold.\\" - bold: String \\"For conditional fields this is the TabLabel of the parent tab that controls this tab's visibility.\\" conditionalParentLabel: String \\"For conditional fields, this is the value of the parent tab that controls the tab's visibility.\\\\n\\\\nIf the parent tab is a Checkbox, Radio button, Optional Signature, or Optional Initial use \\\\\\"on\\\\\\" as the value to show that the parent tab is active.\\" @@ -3196,20 +3279,14 @@ type lastName { \\"Specifies the document ID number that the tab is placed on. This must refer to an existing Document's ID attribute.\\" documentId: String errorDetails: errorDetails - \\"The font to be used for the tab value. Supported Fonts: Arial, Arial, ArialNarrow, Calibri, CourierNew, Garamond, Georgia, Helvetica, LucidaConsole, Tahoma, TimesNewRoman, Trebuchet, Verdana, MSGothic, MSMincho, Default.\\" - font: String - \\"The font color used for the information in the tab.\\\\n\\\\nPossible values are: Black, BrightBlue, BrightRed, DarkGreen, DarkRed, Gold, Green, NavyBlue, Purple, or White.\\" - fontColor: String - \\"The font size used for the information in the tab.\\\\n\\\\nPossible values are: Size7, Size8, Size9, Size10, Size11, Size12, Size14, Size16, Size18, Size20, Size22, Size24, Size26, Size28, Size36, Size48, or Size72.\\" - fontSize: String - \\"When set to **true**, the information in the tab is italic.\\" - italic: String mergeField: mergeField name: String + optional: String \\"Specifies the page number on which the tab is located.\\\\nMust be 1 for [supplemental documents][supdocs].\\\\n\\\\n[supdocs]: /esign/guide/appendix/glossary.html#supplemental-documents\\" pageNumber: String \\"Unique for the recipient. It is used by the tab element to indicate which recipient is to sign the Document.\\" recipientId: String + scaleValue: Float \\"Indicates the envelope status. Valid values are:\\\\n\\\\n* sent - The envelope is sent to the recipients. \\\\n* created - The envelope is saved as a draft and can be modified and sent later.\\" status: String \\"The unique identifier for the tab. The tabid can be retrieved with the [ML:GET call].\\" @@ -3221,17 +3298,13 @@ type lastName { templateLocked: String \\"When set to **true**, the sender may not remove the recipient. Used only when working with template recipients.\\" templateRequired: String - \\"When set to **true**, the information in the tab is underlined.\\" - underline: String - \\"Specifies the value of the tab.\\" - value: String \\"This indicates the horizontal offset of the object on the page.\\\\nDocuSign uses 72 DPI when determining position.\\\\nRequired. May be zero.\\" xPosition: String \\"This indicates the vertical offset of the object on the page. DocuSign uses 72 DPI when determining position.\\" yPosition: String } -type list { +type ssn { \\"Reserved for DocuSign.\\\\n\\" anchorCaseSensitive: String \\"Reserved for DocuSign.\\\\n\\" @@ -3250,12 +3323,16 @@ type list { anchorYOffset: String \\"When set to **true**, the information in the tab is bold.\\" bold: String + \\"When set to **true**, the field appears normally while the recipient is adding or modifying the information in the field, but the data is not visible (the characters are hidden by asterisks) to any other signer or the sender.\\\\n\\\\nWhen an envelope is completed the information is available to the sender through the Form Data link in the DocuSign Console.\\\\n\\\\nThis setting applies only to text boxes and does not affect list boxes, radio buttons, or check boxes.\\" + concealValueOnDocument: String \\"For conditional fields this is the TabLabel of the parent tab that controls this tab's visibility.\\" conditionalParentLabel: String \\"For conditional fields, this is the value of the parent tab that controls the tab's visibility.\\\\n\\\\nIf the parent tab is a Checkbox, Radio button, Optional Signature, or Optional Initial use \\\\\\"on\\\\\\" as the value to show that the parent tab is active.\\" conditionalParentValue: String \\"The DocuSign generated custom tab ID for the custom tab to be applied. This can only be used when adding new tabs for a recipient. When used, the new tab inherits all the custom tab properties.\\" customTabId: String + \\"When set to **true**, disables the auto sizing of single line text boxes in the signing screen when the signer enters data. If disabled users will only be able enter as much data as the text box can hold. By default this is false. This property only affects single line text boxes.\\" + disableAutoSize: String \\"Specifies the document ID number that the tab is placed on. This must refer to an existing Document's ID attribute.\\" documentId: String errorDetails: errorDetails @@ -3267,11 +3344,15 @@ type list { fontSize: String \\"When set to **true**, the information in the tab is italic.\\" italic: String - \\"The list of values that can be selected by senders. The list values are separated by semi-colons. Example: [one;two;three;four]\\\\n\\\\nMaximum Length of listItems: 2048 characters.\\\\nMaximum Length of items in the list: 100 characters.\\" - listItems: [listItem] \\"When set to **true**, the signer cannot change the data of the custom tab.\\" locked: String + \\"An optional value that describes the maximum length of the property when the property is a string.\\" + maxLength: Int mergeField: mergeField + \\"Specifies the tool tip text for the tab.\\" + name: String + \\"The initial value of the tab when it was sent to the recipient.\\" + originalValue: String \\"Specifies the page number on which the tab is located.\\\\nMust be 1 for [supplemental documents][supdocs].\\\\n\\\\n[supdocs]: /esign/guide/appendix/glossary.html#supplemental-documents\\" pageNumber: String \\"Unique for the recipient. It is used by the tab element to indicate which recipient is to sign the Document.\\" @@ -3299,7 +3380,11 @@ type list { templateRequired: String \\"When set to **true**, the information in the tab is underlined.\\" underline: String - \\"The value to use when the item is selected.\\" + \\"The message displayed if the custom tab fails input validation (either custom of embedded).\\" + validationMessage: String + \\"A regular expressionn used to validate input for the tab.\\" + validationPattern: String + \\"Specifies the value of the tab.\\" value: String \\"Width of the tab in pixels.\\" width: Int @@ -3309,16 +3394,7 @@ type list { yPosition: String } -type listItem { - \\"When set to **true**, indicates that this item is the default selection shown to a signer. \\\\n\\\\nOnly one selection can be set as the default.\\" - selected: String - \\"Specifies the text that is shown in the dropdown list.\\" - text: String - \\"Specifies the value that is used when the list item is selected.\\" - value: String -} - -type note { +type text { \\"Reserved for DocuSign.\\\\n\\" anchorCaseSensitive: String \\"Reserved for DocuSign.\\\\n\\" @@ -3337,12 +3413,16 @@ type note { anchorYOffset: String \\"When set to **true**, the information in the tab is bold.\\" bold: String + \\"When set to **true**, the field appears normally while the recipient is adding or modifying the information in the field, but the data is not visible (the characters are hidden by asterisks) to any other signer or the sender.\\\\n\\\\nWhen an envelope is completed the information is available to the sender through the Form Data link in the DocuSign Console.\\\\n\\\\nThis setting applies only to text boxes and does not affect list boxes, radio buttons, or check boxes.\\" + concealValueOnDocument: String \\"For conditional fields this is the TabLabel of the parent tab that controls this tab's visibility.\\" conditionalParentLabel: String \\"For conditional fields, this is the value of the parent tab that controls the tab's visibility.\\\\n\\\\nIf the parent tab is a Checkbox, Radio button, Optional Signature, or Optional Initial use \\\\\\"on\\\\\\" as the value to show that the parent tab is active.\\" conditionalParentValue: String \\"The DocuSign generated custom tab ID for the custom tab to be applied. This can only be used when adding new tabs for a recipient. When used, the new tab inherits all the custom tab properties.\\" customTabId: String + \\"When set to **true**, disables the auto sizing of single line text boxes in the signing screen when the signer enters data. If disabled users will only be able enter as much data as the text box can hold. By default this is false. This property only affects single line text boxes.\\" + disableAutoSize: String \\"Specifies the document ID number that the tab is placed on. This must refer to an existing Document's ID attribute.\\" documentId: String errorDetails: errorDetails @@ -3352,17 +3432,35 @@ type note { fontColor: String \\"The font size used for the information in the tab.\\\\n\\\\nPossible values are: Size7, Size8, Size9, Size10, Size11, Size12, Size14, Size16, Size18, Size20, Size22, Size24, Size26, Size28, Size36, Size48, or Size72.\\" fontSize: String + \\"Contains the formula\\\\nfor calculating the value of\\\\nthis tab.\\\\n\\\\nUse a tab's \`tabLabel\`,\\\\nenclosed in brackets,\\\\nto refer to it.\\\\n\\\\nFor example,\\\\nyou want to present the total cost\\\\nof two items, tax included.\\\\n\\\\nThe cost of each item is stored\\\\nin number tabs labeled Item1 and Item2.\\\\nThe tax rate is in a number tab\\\\nlabeled TaxRate.\\\\n\\\\nThe formula string for this property\\\\nwould be:\\\\n\`([Item1] + [Item2]) * (1 + [TaxRate])\`\\\\n\\\\nSee [Calculated Fields][calculatedfields]\\\\nin the DocuSign Support Center\\\\nto learn more about formulas.\\\\n\\\\nMaximum Length: 2000 characters\\\\n\\\\n[calculatedfields]: https://support.docusign.com/en/guides/ndse-user-guide-calculated-fields\\" + formula: String \\"Height of the tab in pixels.\\" height: Int + \\"When set to **true**, sets this as a payment tab. Can only be used with Text, Number, Formula, or List tabs. The value of the tab must be a number.\\" + isPaymentAmount: String \\"When set to **true**, the information in the tab is italic.\\" italic: String + \\"When set to **true**, the signer cannot change the data of the custom tab.\\" + locked: String + \\"An optional value that describes the maximum length of the property when the property is a string.\\" + maxLength: Int mergeField: mergeField \\"Specifies the tool tip text for the tab.\\" name: String + \\"The initial value of the tab when it was sent to the recipient.\\" + originalValue: String \\"Specifies the page number on which the tab is located.\\\\nMust be 1 for [supplemental documents][supdocs].\\\\n\\\\n[supdocs]: /esign/guide/appendix/glossary.html#supplemental-documents\\" pageNumber: String \\"Unique for the recipient. It is used by the tab element to indicate which recipient is to sign the Document.\\" recipientId: String + \\"When set to **true** and shared is true, information must be entered in this field to complete the envelope.\\" + requireAll: String + \\"Optional element for field markup. When set to **true**, the signer is required to initial when they modify a shared field.\\" + requireInitialOnSharedChange: String + \\"When set to **true**, the signer is required to fill out this tab\\" + required: String + \\"When set to **true**, the sender must populate the tab before an envelope can be sent using the template. \\\\n\\\\nThis value tab can only be changed by modifying (PUT) the template. \\\\n\\\\nTabs with a \`senderRequired\` value of true cannot be deleted from an envelope.\\" + senderRequired: String \\"When set to **true**, this custom tab is shared.\\" shared: String \\"Indicates the envelope status. Valid values are:\\\\n\\\\n* sent - The envelope is sent to the recipients. \\\\n* created - The envelope is saved as a draft and can be modified and sent later.\\" @@ -3378,6 +3476,10 @@ type note { templateRequired: String \\"When set to **true**, the information in the tab is underlined.\\" underline: String + \\"The message displayed if the custom tab fails input validation (either custom of embedded).\\" + validationMessage: String + \\"A regular expressionn used to validate input for the tab.\\" + validationPattern: String \\"Specifies the value of the tab.\\" value: String \\"Width of the tab in pixels.\\" @@ -3388,7 +3490,7 @@ type note { yPosition: String } -type number { +type title { \\"Reserved for DocuSign.\\\\n\\" anchorCaseSensitive: String \\"Reserved for DocuSign.\\\\n\\" @@ -3426,10 +3528,6 @@ type number { fontColor: String \\"The font size used for the information in the tab.\\\\n\\\\nPossible values are: Size7, Size8, Size9, Size10, Size11, Size12, Size14, Size16, Size18, Size20, Size22, Size24, Size26, Size28, Size36, Size48, or Size72.\\" fontSize: String - \\"Contains the formula\\\\nfor calculating the value of\\\\nthis tab.\\\\n\\\\nUse a tab's \`tabLabel\`,\\\\nenclosed in brackets,\\\\nto refer to it.\\\\n\\\\nFor example,\\\\nyou want to present the total cost\\\\nof two items, tax included.\\\\n\\\\nThe cost of each item is stored\\\\nin number tabs labeled Item1 and Item2.\\\\nThe tax rate is in a number tab\\\\nlabeled TaxRate.\\\\n\\\\nThe formula string for this property\\\\nwould be:\\\\n\`([Item1] + [Item2]) * (1 + [TaxRate])\`\\\\n\\\\nSee [Calculated Fields][calculatedfields]\\\\nin the DocuSign Support Center\\\\nto learn more about formulas.\\\\n\\\\nMaximum Length: 2000 characters\\\\n\\\\n[calculatedfields]: https://support.docusign.com/en/guides/ndse-user-guide-calculated-fields\\" - formula: String - \\"When set to **true**, sets this as a payment tab. Can only be used with Text, Number, Formula, or List tabs. The value of the tab must be a number.\\" - isPaymentAmount: String \\"When set to **true**, the information in the tab is italic.\\" italic: String \\"When set to **true**, the signer cannot change the data of the custom tab.\\" @@ -3437,7 +3535,6 @@ type number { \\"An optional value that describes the maximum length of the property when the property is a string.\\" maxLength: Int mergeField: mergeField - \\"Specifies the tool tip text for the tab.\\" name: String \\"The initial value of the tab when it was sent to the recipient.\\" originalValue: String @@ -3445,16 +3542,8 @@ type number { pageNumber: String \\"Unique for the recipient. It is used by the tab element to indicate which recipient is to sign the Document.\\" recipientId: String - \\"When set to **true** and shared is true, information must be entered in this field to complete the envelope.\\" - requireAll: String - \\"Optional element for field markup. When set to **true**, the signer is required to initial when they modify a shared field.\\" - requireInitialOnSharedChange: String \\"When set to **true**, the signer is required to fill out this tab\\" required: String - \\"When set to **true**, the sender must populate the tab before an envelope can be sent using the template. \\\\n\\\\nThis value tab can only be changed by modifying (PUT) the template. \\\\n\\\\nTabs with a \`senderRequired\` value of true cannot be deleted from an envelope.\\" - senderRequired: String - \\"When set to **true**, this custom tab is shared.\\" - shared: String \\"Indicates the envelope status. Valid values are:\\\\n\\\\n* sent - The envelope is sent to the recipients. \\\\n* created - The envelope is saved as a draft and can be modified and sent later.\\" status: String \\"The unique identifier for the tab. The tabid can be retrieved with the [ML:GET call].\\" @@ -3468,10 +3557,6 @@ type number { templateRequired: String \\"When set to **true**, the information in the tab is underlined.\\" underline: String - \\"The message displayed if the custom tab fails input validation (either custom of embedded).\\" - validationMessage: String - \\"A regular expressionn used to validate input for the tab.\\" - validationPattern: String \\"Specifies the value of the tab.\\" value: String \\"Width of the tab in pixels.\\" @@ -3482,119 +3567,7 @@ type number { yPosition: String } -type radioGroup { - \\"For conditional fields this is the TabLabel of the parent tab that controls this tab's visibility.\\" - conditionalParentLabel: String - \\"For conditional fields, this is the value of the parent tab that controls the tab's visibility.\\\\n\\\\nIf the parent tab is a Checkbox, Radio button, Optional Signature, or Optional Initial use \\\\\\"on\\\\\\" as the value to show that the parent tab is active.\\" - conditionalParentValue: String - \\"Specifies the document ID number that the tab is placed on. This must refer to an existing Document's ID attribute.\\" - documentId: String - \\"The name of the group.\\" - groupName: String - \\"Specifies the locations and status for radio buttons that are grouped together.\\" - radios: [radio] - \\"Unique for the recipient. It is used by the tab element to indicate which recipient is to sign the Document.\\" - recipientId: String - \\"When set to **true** and shared is true, information must be entered in this field to complete the envelope.\\" - requireAll: String - \\"Optional element for field markup. When set to **true**, the signer is required to initial when they modify a shared field.\\" - requireInitialOnSharedChange: String - \\"When set to **true**, this custom tab is shared.\\" - shared: String -} - -type radio { - \\"Reserved for DocuSign.\\\\n\\" - anchorCaseSensitive: String - \\"Reserved for DocuSign.\\\\n\\" - anchorHorizontalAlignment: String - \\"When set to **true**, this tab is ignored if anchorString is not found in the document.\\" - anchorIgnoreIfNotPresent: String - \\"Reserved for DocuSign.\\\\n\\" - anchorMatchWholeWord: String - \\"Anchor text information for a radio button.\\" - anchorString: String - \\"Specifies units of the X and Y offset. Units could be pixels, millimeters, centimeters, or inches.\\" - anchorUnits: String - \\"Specifies the X axis location of the tab, in achorUnits, relative to the anchorString.\\" - anchorXOffset: String - \\"Specifies the Y axis location of the tab, in achorUnits, relative to the anchorString.\\" - anchorYOffset: String - errorDetails: errorDetails - \\"When set to **true**, the signer cannot change the data of the custom tab.\\" - locked: String - \\"Specifies the page number on which the tab is located.\\\\nMust be 1 for [supplemental documents][supdocs].\\\\n\\\\n[supdocs]: /esign/guide/appendix/glossary.html#supplemental-documents\\" - pageNumber: String - \\"When set to **true**, the signer is required to fill out this tab\\" - required: String - \\"When set to **true**, the radio button is selected.\\" - selected: String - \\"The unique identifier for the tab. The tabid can be retrieved with the [ML:GET call].\\" - tabId: String - tabOrder: String - \\"Specifies the value of the tab.\\" - value: String - \\"This indicates the horizontal offset of the object on the page.\\\\nDocuSign uses 72 DPI when determining position.\\\\nRequired. May be zero.\\" - xPosition: String - \\"This indicates the vertical offset of the object on the page. DocuSign uses 72 DPI when determining position.\\" - yPosition: String -} - -type signHere { - \\"Reserved for DocuSign.\\\\n\\" - anchorCaseSensitive: String - \\"Reserved for DocuSign.\\\\n\\" - anchorHorizontalAlignment: String - \\"When set to **true**, this tab is ignored if anchorString is not found in the document.\\" - anchorIgnoreIfNotPresent: String - \\"Reserved for DocuSign.\\\\n\\" - anchorMatchWholeWord: String - \\"Anchor text information for a radio button.\\" - anchorString: String - \\"Specifies units of the X and Y offset. Units could be pixels, millimeters, centimeters, or inches.\\" - anchorUnits: String - \\"Specifies the X axis location of the tab, in achorUnits, relative to the anchorString.\\" - anchorXOffset: String - \\"Specifies the Y axis location of the tab, in achorUnits, relative to the anchorString.\\" - anchorYOffset: String - \\"For conditional fields this is the TabLabel of the parent tab that controls this tab's visibility.\\" - conditionalParentLabel: String - \\"For conditional fields, this is the value of the parent tab that controls the tab's visibility.\\\\n\\\\nIf the parent tab is a Checkbox, Radio button, Optional Signature, or Optional Initial use \\\\\\"on\\\\\\" as the value to show that the parent tab is active.\\" - conditionalParentValue: String - \\"The DocuSign generated custom tab ID for the custom tab to be applied. This can only be used when adding new tabs for a recipient. When used, the new tab inherits all the custom tab properties.\\" - customTabId: String - \\"Specifies the document ID number that the tab is placed on. This must refer to an existing Document's ID attribute.\\" - documentId: String - errorDetails: errorDetails - mergeField: mergeField - \\"Specifies the tool tip text for the tab.\\" - name: String - optional: String - \\"Specifies the page number on which the tab is located.\\\\nMust be 1 for [supplemental documents][supdocs].\\\\n\\\\n[supdocs]: /esign/guide/appendix/glossary.html#supplemental-documents\\" - pageNumber: String - \\"Unique for the recipient. It is used by the tab element to indicate which recipient is to sign the Document.\\" - recipientId: String - scaleValue: Float - stampType: String - stampTypeMetadata: propertyMetadata - \\"Indicates the envelope status. Valid values are:\\\\n\\\\n* sent - The envelope is sent to the recipients. \\\\n* created - The envelope is saved as a draft and can be modified and sent later.\\" - status: String - \\"The unique identifier for the tab. The tabid can be retrieved with the [ML:GET call].\\" - tabId: String - \\"The label string associated with the tab.\\\\nThe string may be the empty string.\\\\nIf no value is provided, the tab type is used as the value.\\\\n\\\\nMaximum of 500 characters.\\" - tabLabel: String - tabOrder: String - \\"When set to **true**, the sender cannot change any attributes of the recipient. Used only when working with template recipients.\\" - templateLocked: String - \\"When set to **true**, the sender may not remove the recipient. Used only when working with template recipients.\\" - templateRequired: String - \\"This indicates the horizontal offset of the object on the page.\\\\nDocuSign uses 72 DPI when determining position.\\\\nRequired. May be zero.\\" - xPosition: String - \\"This indicates the vertical offset of the object on the page. DocuSign uses 72 DPI when determining position.\\" - yPosition: String -} - -type signerAttachment { +type view { \\"Reserved for DocuSign.\\\\n\\" anchorCaseSensitive: String \\"Reserved for DocuSign.\\\\n\\" @@ -3611,6 +3584,9 @@ type signerAttachment { anchorXOffset: String \\"Specifies the Y axis location of the tab, in achorUnits, relative to the anchorString.\\" anchorYOffset: String + \\"When set to **true**, the information in the tab is bold.\\" + bold: String + buttonText: String \\"For conditional fields this is the TabLabel of the parent tab that controls this tab's visibility.\\" conditionalParentLabel: String \\"For conditional fields, this is the value of the parent tab that controls the tab's visibility.\\\\n\\\\nIf the parent tab is a Checkbox, Radio button, Optional Signature, or Optional Initial use \\\\\\"on\\\\\\" as the value to show that the parent tab is active.\\" @@ -3620,14 +3596,24 @@ type signerAttachment { \\"Specifies the document ID number that the tab is placed on. This must refer to an existing Document's ID attribute.\\" documentId: String errorDetails: errorDetails + \\"The font to be used for the tab value. Supported Fonts: Arial, Arial, ArialNarrow, Calibri, CourierNew, Garamond, Georgia, Helvetica, LucidaConsole, Tahoma, TimesNewRoman, Trebuchet, Verdana, MSGothic, MSMincho, Default.\\" + font: String + \\"The font color used for the information in the tab.\\\\n\\\\nPossible values are: Black, BrightBlue, BrightRed, DarkGreen, DarkRed, Gold, Green, NavyBlue, Purple, or White.\\" + fontColor: String + \\"The font size used for the information in the tab.\\\\n\\\\nPossible values are: Size7, Size8, Size9, Size10, Size11, Size12, Size14, Size16, Size18, Size20, Size22, Size24, Size26, Size28, Size36, Size48, or Size72.\\" + fontSize: String + \\"Height of the tab in pixels.\\" + height: Int + \\"When set to **true**, the information in the tab is italic.\\" + italic: String mergeField: mergeField - name: String - optional: String \\"Specifies the page number on which the tab is located.\\\\nMust be 1 for [supplemental documents][supdocs].\\\\n\\\\n[supdocs]: /esign/guide/appendix/glossary.html#supplemental-documents\\" pageNumber: String \\"Unique for the recipient. It is used by the tab element to indicate which recipient is to sign the Document.\\" recipientId: String - scaleValue: Float + \\"When set to **true**, the signer is required to fill out this tab\\" + required: String + requiredRead: String \\"Indicates the envelope status. Valid values are:\\\\n\\\\n* sent - The envelope is sent to the recipients. \\\\n* created - The envelope is saved as a draft and can be modified and sent later.\\" status: String \\"The unique identifier for the tab. The tabid can be retrieved with the [ML:GET call].\\" @@ -3639,13 +3625,17 @@ type signerAttachment { templateLocked: String \\"When set to **true**, the sender may not remove the recipient. Used only when working with template recipients.\\" templateRequired: String + \\"When set to **true**, the information in the tab is underlined.\\" + underline: String + \\"Width of the tab in pixels.\\" + width: Int \\"This indicates the horizontal offset of the object on the page.\\\\nDocuSign uses 72 DPI when determining position.\\\\nRequired. May be zero.\\" xPosition: String \\"This indicates the vertical offset of the object on the page. DocuSign uses 72 DPI when determining position.\\" yPosition: String } -type ssn { +type zip { \\"Reserved for DocuSign.\\\\n\\" anchorCaseSensitive: String \\"Reserved for DocuSign.\\\\n\\" @@ -3690,7 +3680,6 @@ type ssn { \\"An optional value that describes the maximum length of the property when the property is a string.\\" maxLength: Int mergeField: mergeField - \\"Specifies the tool tip text for the tab.\\" name: String \\"The initial value of the tab when it was sent to the recipient.\\" originalValue: String @@ -3721,6 +3710,7 @@ type ssn { templateRequired: String \\"When set to **true**, the information in the tab is underlined.\\" underline: String + useDash4: String \\"The message displayed if the custom tab fails input validation (either custom of embedded).\\" validationMessage: String \\"A regular expressionn used to validate input for the tab.\\" @@ -3735,412 +3725,6 @@ type ssn { yPosition: String } -type text { - \\"Reserved for DocuSign.\\\\n\\" - anchorCaseSensitive: String - \\"Reserved for DocuSign.\\\\n\\" - anchorHorizontalAlignment: String - \\"When set to **true**, this tab is ignored if anchorString is not found in the document.\\" - anchorIgnoreIfNotPresent: String - \\"Reserved for DocuSign.\\\\n\\" - anchorMatchWholeWord: String - \\"Anchor text information for a radio button.\\" - anchorString: String - \\"Specifies units of the X and Y offset. Units could be pixels, millimeters, centimeters, or inches.\\" - anchorUnits: String - \\"Specifies the X axis location of the tab, in achorUnits, relative to the anchorString.\\" - anchorXOffset: String - \\"Specifies the Y axis location of the tab, in achorUnits, relative to the anchorString.\\" - anchorYOffset: String - \\"When set to **true**, the information in the tab is bold.\\" - bold: String - \\"When set to **true**, the field appears normally while the recipient is adding or modifying the information in the field, but the data is not visible (the characters are hidden by asterisks) to any other signer or the sender.\\\\n\\\\nWhen an envelope is completed the information is available to the sender through the Form Data link in the DocuSign Console.\\\\n\\\\nThis setting applies only to text boxes and does not affect list boxes, radio buttons, or check boxes.\\" - concealValueOnDocument: String - \\"For conditional fields this is the TabLabel of the parent tab that controls this tab's visibility.\\" - conditionalParentLabel: String - \\"For conditional fields, this is the value of the parent tab that controls the tab's visibility.\\\\n\\\\nIf the parent tab is a Checkbox, Radio button, Optional Signature, or Optional Initial use \\\\\\"on\\\\\\" as the value to show that the parent tab is active.\\" - conditionalParentValue: String - \\"The DocuSign generated custom tab ID for the custom tab to be applied. This can only be used when adding new tabs for a recipient. When used, the new tab inherits all the custom tab properties.\\" - customTabId: String - \\"When set to **true**, disables the auto sizing of single line text boxes in the signing screen when the signer enters data. If disabled users will only be able enter as much data as the text box can hold. By default this is false. This property only affects single line text boxes.\\" - disableAutoSize: String - \\"Specifies the document ID number that the tab is placed on. This must refer to an existing Document's ID attribute.\\" - documentId: String - errorDetails: errorDetails - \\"The font to be used for the tab value. Supported Fonts: Arial, Arial, ArialNarrow, Calibri, CourierNew, Garamond, Georgia, Helvetica, LucidaConsole, Tahoma, TimesNewRoman, Trebuchet, Verdana, MSGothic, MSMincho, Default.\\" - font: String - \\"The font color used for the information in the tab.\\\\n\\\\nPossible values are: Black, BrightBlue, BrightRed, DarkGreen, DarkRed, Gold, Green, NavyBlue, Purple, or White.\\" - fontColor: String - \\"The font size used for the information in the tab.\\\\n\\\\nPossible values are: Size7, Size8, Size9, Size10, Size11, Size12, Size14, Size16, Size18, Size20, Size22, Size24, Size26, Size28, Size36, Size48, or Size72.\\" - fontSize: String - \\"Contains the formula\\\\nfor calculating the value of\\\\nthis tab.\\\\n\\\\nUse a tab's \`tabLabel\`,\\\\nenclosed in brackets,\\\\nto refer to it.\\\\n\\\\nFor example,\\\\nyou want to present the total cost\\\\nof two items, tax included.\\\\n\\\\nThe cost of each item is stored\\\\nin number tabs labeled Item1 and Item2.\\\\nThe tax rate is in a number tab\\\\nlabeled TaxRate.\\\\n\\\\nThe formula string for this property\\\\nwould be:\\\\n\`([Item1] + [Item2]) * (1 + [TaxRate])\`\\\\n\\\\nSee [Calculated Fields][calculatedfields]\\\\nin the DocuSign Support Center\\\\nto learn more about formulas.\\\\n\\\\nMaximum Length: 2000 characters\\\\n\\\\n[calculatedfields]: https://support.docusign.com/en/guides/ndse-user-guide-calculated-fields\\" - formula: String - \\"Height of the tab in pixels.\\" - height: Int - \\"When set to **true**, sets this as a payment tab. Can only be used with Text, Number, Formula, or List tabs. The value of the tab must be a number.\\" - isPaymentAmount: String - \\"When set to **true**, the information in the tab is italic.\\" - italic: String - \\"When set to **true**, the signer cannot change the data of the custom tab.\\" - locked: String - \\"An optional value that describes the maximum length of the property when the property is a string.\\" - maxLength: Int - mergeField: mergeField - \\"Specifies the tool tip text for the tab.\\" - name: String - \\"The initial value of the tab when it was sent to the recipient.\\" - originalValue: String - \\"Specifies the page number on which the tab is located.\\\\nMust be 1 for [supplemental documents][supdocs].\\\\n\\\\n[supdocs]: /esign/guide/appendix/glossary.html#supplemental-documents\\" - pageNumber: String - \\"Unique for the recipient. It is used by the tab element to indicate which recipient is to sign the Document.\\" - recipientId: String - \\"When set to **true** and shared is true, information must be entered in this field to complete the envelope.\\" - requireAll: String - \\"Optional element for field markup. When set to **true**, the signer is required to initial when they modify a shared field.\\" - requireInitialOnSharedChange: String - \\"When set to **true**, the signer is required to fill out this tab\\" - required: String - \\"When set to **true**, the sender must populate the tab before an envelope can be sent using the template. \\\\n\\\\nThis value tab can only be changed by modifying (PUT) the template. \\\\n\\\\nTabs with a \`senderRequired\` value of true cannot be deleted from an envelope.\\" - senderRequired: String - \\"When set to **true**, this custom tab is shared.\\" - shared: String - \\"Indicates the envelope status. Valid values are:\\\\n\\\\n* sent - The envelope is sent to the recipients. \\\\n* created - The envelope is saved as a draft and can be modified and sent later.\\" - status: String - \\"The unique identifier for the tab. The tabid can be retrieved with the [ML:GET call].\\" - tabId: String - \\"The label string associated with the tab.\\\\nThe string may be the empty string.\\\\nIf no value is provided, the tab type is used as the value.\\\\n\\\\nMaximum of 500 characters.\\" - tabLabel: String - tabOrder: String - \\"When set to **true**, the sender cannot change any attributes of the recipient. Used only when working with template recipients.\\" - templateLocked: String - \\"When set to **true**, the sender may not remove the recipient. Used only when working with template recipients.\\" - templateRequired: String - \\"When set to **true**, the information in the tab is underlined.\\" - underline: String - \\"The message displayed if the custom tab fails input validation (either custom of embedded).\\" - validationMessage: String - \\"A regular expressionn used to validate input for the tab.\\" - validationPattern: String - \\"Specifies the value of the tab.\\" - value: String - \\"Width of the tab in pixels.\\" - width: Int - \\"This indicates the horizontal offset of the object on the page.\\\\nDocuSign uses 72 DPI when determining position.\\\\nRequired. May be zero.\\" - xPosition: String - \\"This indicates the vertical offset of the object on the page. DocuSign uses 72 DPI when determining position.\\" - yPosition: String -} - -type title { - \\"Reserved for DocuSign.\\\\n\\" - anchorCaseSensitive: String - \\"Reserved for DocuSign.\\\\n\\" - anchorHorizontalAlignment: String - \\"When set to **true**, this tab is ignored if anchorString is not found in the document.\\" - anchorIgnoreIfNotPresent: String - \\"Reserved for DocuSign.\\\\n\\" - anchorMatchWholeWord: String - \\"Anchor text information for a radio button.\\" - anchorString: String - \\"Specifies units of the X and Y offset. Units could be pixels, millimeters, centimeters, or inches.\\" - anchorUnits: String - \\"Specifies the X axis location of the tab, in achorUnits, relative to the anchorString.\\" - anchorXOffset: String - \\"Specifies the Y axis location of the tab, in achorUnits, relative to the anchorString.\\" - anchorYOffset: String - \\"When set to **true**, the information in the tab is bold.\\" - bold: String - \\"When set to **true**, the field appears normally while the recipient is adding or modifying the information in the field, but the data is not visible (the characters are hidden by asterisks) to any other signer or the sender.\\\\n\\\\nWhen an envelope is completed the information is available to the sender through the Form Data link in the DocuSign Console.\\\\n\\\\nThis setting applies only to text boxes and does not affect list boxes, radio buttons, or check boxes.\\" - concealValueOnDocument: String - \\"For conditional fields this is the TabLabel of the parent tab that controls this tab's visibility.\\" - conditionalParentLabel: String - \\"For conditional fields, this is the value of the parent tab that controls the tab's visibility.\\\\n\\\\nIf the parent tab is a Checkbox, Radio button, Optional Signature, or Optional Initial use \\\\\\"on\\\\\\" as the value to show that the parent tab is active.\\" - conditionalParentValue: String - \\"The DocuSign generated custom tab ID for the custom tab to be applied. This can only be used when adding new tabs for a recipient. When used, the new tab inherits all the custom tab properties.\\" - customTabId: String - \\"When set to **true**, disables the auto sizing of single line text boxes in the signing screen when the signer enters data. If disabled users will only be able enter as much data as the text box can hold. By default this is false. This property only affects single line text boxes.\\" - disableAutoSize: String - \\"Specifies the document ID number that the tab is placed on. This must refer to an existing Document's ID attribute.\\" - documentId: String - errorDetails: errorDetails - \\"The font to be used for the tab value. Supported Fonts: Arial, Arial, ArialNarrow, Calibri, CourierNew, Garamond, Georgia, Helvetica, LucidaConsole, Tahoma, TimesNewRoman, Trebuchet, Verdana, MSGothic, MSMincho, Default.\\" - font: String - \\"The font color used for the information in the tab.\\\\n\\\\nPossible values are: Black, BrightBlue, BrightRed, DarkGreen, DarkRed, Gold, Green, NavyBlue, Purple, or White.\\" - fontColor: String - \\"The font size used for the information in the tab.\\\\n\\\\nPossible values are: Size7, Size8, Size9, Size10, Size11, Size12, Size14, Size16, Size18, Size20, Size22, Size24, Size26, Size28, Size36, Size48, or Size72.\\" - fontSize: String - \\"When set to **true**, the information in the tab is italic.\\" - italic: String - \\"When set to **true**, the signer cannot change the data of the custom tab.\\" - locked: String - \\"An optional value that describes the maximum length of the property when the property is a string.\\" - maxLength: Int - mergeField: mergeField - name: String - \\"The initial value of the tab when it was sent to the recipient.\\" - originalValue: String - \\"Specifies the page number on which the tab is located.\\\\nMust be 1 for [supplemental documents][supdocs].\\\\n\\\\n[supdocs]: /esign/guide/appendix/glossary.html#supplemental-documents\\" - pageNumber: String - \\"Unique for the recipient. It is used by the tab element to indicate which recipient is to sign the Document.\\" - recipientId: String - \\"When set to **true**, the signer is required to fill out this tab\\" - required: String - \\"Indicates the envelope status. Valid values are:\\\\n\\\\n* sent - The envelope is sent to the recipients. \\\\n* created - The envelope is saved as a draft and can be modified and sent later.\\" - status: String - \\"The unique identifier for the tab. The tabid can be retrieved with the [ML:GET call].\\" - tabId: String - \\"The label string associated with the tab.\\\\nThe string may be the empty string.\\\\nIf no value is provided, the tab type is used as the value.\\\\n\\\\nMaximum of 500 characters.\\" - tabLabel: String - tabOrder: String - \\"When set to **true**, the sender cannot change any attributes of the recipient. Used only when working with template recipients.\\" - templateLocked: String - \\"When set to **true**, the sender may not remove the recipient. Used only when working with template recipients.\\" - templateRequired: String - \\"When set to **true**, the information in the tab is underlined.\\" - underline: String - \\"Specifies the value of the tab.\\" - value: String - \\"Width of the tab in pixels.\\" - width: Int - \\"This indicates the horizontal offset of the object on the page.\\\\nDocuSign uses 72 DPI when determining position.\\\\nRequired. May be zero.\\" - xPosition: String - \\"This indicates the vertical offset of the object on the page. DocuSign uses 72 DPI when determining position.\\" - yPosition: String -} - -type view { - \\"Reserved for DocuSign.\\\\n\\" - anchorCaseSensitive: String - \\"Reserved for DocuSign.\\\\n\\" - anchorHorizontalAlignment: String - \\"When set to **true**, this tab is ignored if anchorString is not found in the document.\\" - anchorIgnoreIfNotPresent: String - \\"Reserved for DocuSign.\\\\n\\" - anchorMatchWholeWord: String - \\"Anchor text information for a radio button.\\" - anchorString: String - \\"Specifies units of the X and Y offset. Units could be pixels, millimeters, centimeters, or inches.\\" - anchorUnits: String - \\"Specifies the X axis location of the tab, in achorUnits, relative to the anchorString.\\" - anchorXOffset: String - \\"Specifies the Y axis location of the tab, in achorUnits, relative to the anchorString.\\" - anchorYOffset: String - \\"When set to **true**, the information in the tab is bold.\\" - bold: String - buttonText: String - \\"For conditional fields this is the TabLabel of the parent tab that controls this tab's visibility.\\" - conditionalParentLabel: String - \\"For conditional fields, this is the value of the parent tab that controls the tab's visibility.\\\\n\\\\nIf the parent tab is a Checkbox, Radio button, Optional Signature, or Optional Initial use \\\\\\"on\\\\\\" as the value to show that the parent tab is active.\\" - conditionalParentValue: String - \\"The DocuSign generated custom tab ID for the custom tab to be applied. This can only be used when adding new tabs for a recipient. When used, the new tab inherits all the custom tab properties.\\" - customTabId: String - \\"Specifies the document ID number that the tab is placed on. This must refer to an existing Document's ID attribute.\\" - documentId: String - errorDetails: errorDetails - \\"The font to be used for the tab value. Supported Fonts: Arial, Arial, ArialNarrow, Calibri, CourierNew, Garamond, Georgia, Helvetica, LucidaConsole, Tahoma, TimesNewRoman, Trebuchet, Verdana, MSGothic, MSMincho, Default.\\" - font: String - \\"The font color used for the information in the tab.\\\\n\\\\nPossible values are: Black, BrightBlue, BrightRed, DarkGreen, DarkRed, Gold, Green, NavyBlue, Purple, or White.\\" - fontColor: String - \\"The font size used for the information in the tab.\\\\n\\\\nPossible values are: Size7, Size8, Size9, Size10, Size11, Size12, Size14, Size16, Size18, Size20, Size22, Size24, Size26, Size28, Size36, Size48, or Size72.\\" - fontSize: String - \\"Height of the tab in pixels.\\" - height: Int - \\"When set to **true**, the information in the tab is italic.\\" - italic: String - mergeField: mergeField - \\"Specifies the page number on which the tab is located.\\\\nMust be 1 for [supplemental documents][supdocs].\\\\n\\\\n[supdocs]: /esign/guide/appendix/glossary.html#supplemental-documents\\" - pageNumber: String - \\"Unique for the recipient. It is used by the tab element to indicate which recipient is to sign the Document.\\" - recipientId: String - \\"When set to **true**, the signer is required to fill out this tab\\" - required: String - requiredRead: String - \\"Indicates the envelope status. Valid values are:\\\\n\\\\n* sent - The envelope is sent to the recipients. \\\\n* created - The envelope is saved as a draft and can be modified and sent later.\\" - status: String - \\"The unique identifier for the tab. The tabid can be retrieved with the [ML:GET call].\\" - tabId: String - \\"The label string associated with the tab.\\\\nThe string may be the empty string.\\\\nIf no value is provided, the tab type is used as the value.\\\\n\\\\nMaximum of 500 characters.\\" - tabLabel: String - tabOrder: String - \\"When set to **true**, the sender cannot change any attributes of the recipient. Used only when working with template recipients.\\" - templateLocked: String - \\"When set to **true**, the sender may not remove the recipient. Used only when working with template recipients.\\" - templateRequired: String - \\"When set to **true**, the information in the tab is underlined.\\" - underline: String - \\"Width of the tab in pixels.\\" - width: Int - \\"This indicates the horizontal offset of the object on the page.\\\\nDocuSign uses 72 DPI when determining position.\\\\nRequired. May be zero.\\" - xPosition: String - \\"This indicates the vertical offset of the object on the page. DocuSign uses 72 DPI when determining position.\\" - yPosition: String -} - -type zip { - \\"Reserved for DocuSign.\\\\n\\" - anchorCaseSensitive: String - \\"Reserved for DocuSign.\\\\n\\" - anchorHorizontalAlignment: String - \\"When set to **true**, this tab is ignored if anchorString is not found in the document.\\" - anchorIgnoreIfNotPresent: String - \\"Reserved for DocuSign.\\\\n\\" - anchorMatchWholeWord: String - \\"Anchor text information for a radio button.\\" - anchorString: String - \\"Specifies units of the X and Y offset. Units could be pixels, millimeters, centimeters, or inches.\\" - anchorUnits: String - \\"Specifies the X axis location of the tab, in achorUnits, relative to the anchorString.\\" - anchorXOffset: String - \\"Specifies the Y axis location of the tab, in achorUnits, relative to the anchorString.\\" - anchorYOffset: String - \\"When set to **true**, the information in the tab is bold.\\" - bold: String - \\"When set to **true**, the field appears normally while the recipient is adding or modifying the information in the field, but the data is not visible (the characters are hidden by asterisks) to any other signer or the sender.\\\\n\\\\nWhen an envelope is completed the information is available to the sender through the Form Data link in the DocuSign Console.\\\\n\\\\nThis setting applies only to text boxes and does not affect list boxes, radio buttons, or check boxes.\\" - concealValueOnDocument: String - \\"For conditional fields this is the TabLabel of the parent tab that controls this tab's visibility.\\" - conditionalParentLabel: String - \\"For conditional fields, this is the value of the parent tab that controls the tab's visibility.\\\\n\\\\nIf the parent tab is a Checkbox, Radio button, Optional Signature, or Optional Initial use \\\\\\"on\\\\\\" as the value to show that the parent tab is active.\\" - conditionalParentValue: String - \\"The DocuSign generated custom tab ID for the custom tab to be applied. This can only be used when adding new tabs for a recipient. When used, the new tab inherits all the custom tab properties.\\" - customTabId: String - \\"When set to **true**, disables the auto sizing of single line text boxes in the signing screen when the signer enters data. If disabled users will only be able enter as much data as the text box can hold. By default this is false. This property only affects single line text boxes.\\" - disableAutoSize: String - \\"Specifies the document ID number that the tab is placed on. This must refer to an existing Document's ID attribute.\\" - documentId: String - errorDetails: errorDetails - \\"The font to be used for the tab value. Supported Fonts: Arial, Arial, ArialNarrow, Calibri, CourierNew, Garamond, Georgia, Helvetica, LucidaConsole, Tahoma, TimesNewRoman, Trebuchet, Verdana, MSGothic, MSMincho, Default.\\" - font: String - \\"The font color used for the information in the tab.\\\\n\\\\nPossible values are: Black, BrightBlue, BrightRed, DarkGreen, DarkRed, Gold, Green, NavyBlue, Purple, or White.\\" - fontColor: String - \\"The font size used for the information in the tab.\\\\n\\\\nPossible values are: Size7, Size8, Size9, Size10, Size11, Size12, Size14, Size16, Size18, Size20, Size22, Size24, Size26, Size28, Size36, Size48, or Size72.\\" - fontSize: String - \\"When set to **true**, the information in the tab is italic.\\" - italic: String - \\"When set to **true**, the signer cannot change the data of the custom tab.\\" - locked: String - \\"An optional value that describes the maximum length of the property when the property is a string.\\" - maxLength: Int - mergeField: mergeField - name: String - \\"The initial value of the tab when it was sent to the recipient.\\" - originalValue: String - \\"Specifies the page number on which the tab is located.\\\\nMust be 1 for [supplemental documents][supdocs].\\\\n\\\\n[supdocs]: /esign/guide/appendix/glossary.html#supplemental-documents\\" - pageNumber: String - \\"Unique for the recipient. It is used by the tab element to indicate which recipient is to sign the Document.\\" - recipientId: String - \\"When set to **true** and shared is true, information must be entered in this field to complete the envelope.\\" - requireAll: String - \\"Optional element for field markup. When set to **true**, the signer is required to initial when they modify a shared field.\\" - requireInitialOnSharedChange: String - \\"When set to **true**, the signer is required to fill out this tab\\" - required: String - \\"When set to **true**, the sender must populate the tab before an envelope can be sent using the template. \\\\n\\\\nThis value tab can only be changed by modifying (PUT) the template. \\\\n\\\\nTabs with a \`senderRequired\` value of true cannot be deleted from an envelope.\\" - senderRequired: String - \\"When set to **true**, this custom tab is shared.\\" - shared: String - \\"Indicates the envelope status. Valid values are:\\\\n\\\\n* sent - The envelope is sent to the recipients. \\\\n* created - The envelope is saved as a draft and can be modified and sent later.\\" - status: String - \\"The unique identifier for the tab. The tabid can be retrieved with the [ML:GET call].\\" - tabId: String - \\"The label string associated with the tab.\\\\nThe string may be the empty string.\\\\nIf no value is provided, the tab type is used as the value.\\\\n\\\\nMaximum of 500 characters.\\" - tabLabel: String - tabOrder: String - \\"When set to **true**, the sender cannot change any attributes of the recipient. Used only when working with template recipients.\\" - templateLocked: String - \\"When set to **true**, the sender may not remove the recipient. Used only when working with template recipients.\\" - templateRequired: String - \\"When set to **true**, the information in the tab is underlined.\\" - underline: String - useDash4: String - \\"The message displayed if the custom tab fails input validation (either custom of embedded).\\" - validationMessage: String - \\"A regular expressionn used to validate input for the tab.\\" - validationPattern: String - \\"Specifies the value of the tab.\\" - value: String - \\"Width of the tab in pixels.\\" - width: Int - \\"This indicates the horizontal offset of the object on the page.\\\\nDocuSign uses 72 DPI when determining position.\\\\nRequired. May be zero.\\" - xPosition: String - \\"This indicates the vertical offset of the object on the page. DocuSign uses 72 DPI when determining position.\\" - yPosition: String -} - -type intermediary { - \\"If a value is provided, the recipient must enter the value as the access code to view and sign the envelope. \\\\n\\\\nMaximum Length: 50 characters and it must conform to the account's access code format setting.\\\\n\\\\nIf blank, but the signer \`accessCode\` property is set in the envelope, then that value is used.\\\\n\\\\nIf blank and the signer \`accessCode\` property is not set, then the access code is not required.\\" - accessCode: String - \\"This Optional attribute indicates that the access code will be added to the email sent to the recipient; this nullifies the Security measure of Access Code on the recipient.\\" - addAccessCodeToEmail: String - \\"Specifies whether the recipient is embedded or remote. \\\\n\\\\nIf the \`clientUserId\` property is not null then the recipient is embedded. Use this field to associate the signer with their userId in your app. Authenticating the user is the responsibility of your app when you use embedded signing.\\\\n\\\\nNote: if the \`clientUserId\` property is set and either \`SignerMustHaveAccount\` or \`SignerMustLoginToSign\` property of the account settings is set to **true**, an error is generated on sending. \\\\n\\\\nMaximum length: 100 characters.\\" - clientUserId: String - \\"An optional array of strings that allows the sender to provide custom data about the recipient. This information is returned in the envelope status but otherwise not used by DocuSign. Each customField string can be a maximum of 100 characters.\\" - customFields: [String] - \\"The date and time the recipient declined the document.\\" - declinedDateTime: String - \\"The reason the recipient declined the document.\\" - declinedReason: String - \\"Reserved: For DocuSign use only.\\" - deliveredDateTime: String - \\"Reserved: For DocuSign use only.\\" - deliveryMethod: String - documentVisibility: [documentVisibility] - \\"Email id of the recipient. Notification of the document to sign is sent to this email id. \\\\n\\\\nMaximum length: 100 characters.\\" - email: String - emailNotification: recipientEmailNotification - emailRecipientPostSigningURL: String - \\"Specifies a sender provided valid URL string for redirecting an embedded recipient. When using this option, the embedded recipient still receives an email from DocuSign, just as a remote recipient would. When the document link in the email is clicked the recipient is redirected, through DocuSign, to the supplied URL to complete their actions. When routing to the URL, the sender's system (the server responding to the URL) must request a recipient token to launch a signing session. \\\\n\\\\nIf set to \`SIGN_AT_DOCUSIGN\`, the recipient is directed to an embedded signing or viewing process directly at DocuSign. The signing or viewing action is initiated by the DocuSign system and the transaction activity and Certificate of Completion records will reflect this. In all other ways the process is identical to an embedded signing or viewing operation that is launched by any partner.\\\\n\\\\nIt is important to remember that in a typical embedded workflow the authentication of an embedded recipient is the responsibility of the sending application, DocuSign expects that senders will follow their own process for establishing the recipient's identity. In this workflow the recipient goes through the sending application before the embedded signing or viewing process in initiated. However, when the sending application sets \`EmbeddedRecipientStartURL=SIGN_AT_DOCUSIGN\`, the recipient goes directly to the embedded signing or viewing process bypassing the sending application and any authentication steps the sending application would use. In this case, DocuSign recommends that you use one of the normal DocuSign authentication features (Access Code, Phone Authentication, SMS Authentication, etc.) to verify the identity of the recipient.\\\\n\\\\nIf the \`clientUserId\` property is NOT set, and the \`embeddedRecipientStartURL\` is set, DocuSign will ignore the redirect URL and launch the standard signing process for the email recipient. Information can be appended to the embedded recipient start URL using merge fields. The available merge fields items are: envelopeId, recipientId, recipientName, recipientEmail, and customFields. The \`customFields\` property must be set fort the recipient or envelope. The merge fields are enclosed in double brackets. \\\\n\\\\n*Example*: \\\\n\\\\n\`http://senderHost/[[mergeField1]]/ beginSigningSession? [[mergeField2]]&[[mergeField3]]\`\\" - embeddedRecipientStartURL: String - errorDetails: errorDetails - \\"Specifies the documents that are not visible to this recipient. Document Visibility must be enabled for the account and the \`enforceSignerVisibility\` property must be set to **true** for the envelope to use this.\\\\n\\\\nWhen enforce signer visibility is enabled, documents with tabs can only be viewed by signers that have a tab on that document. Recipients that have an administrative role (Agent, Editor, or Intermediaries) or informational role (Certified Deliveries or Carbon Copies) can always see all the documents in an envelope, unless they are specifically excluded using this setting when an envelope is sent. Documents that do not have tabs are always visible to all recipients, unless they are specifically excluded using this setting when an envelope is sent.\\" - excludedDocuments: [String] - \\"Reserved:\\" - faxNumber: String - \\"Specifies authentication check by name. The names used here must be the same as the authentication type names used by the account (these name can also be found in the web console sending interface in the Identify list for a recipient,) This overrides any default authentication setting.\\\\n\\\\n*Example*: Your account has ID Check and SMS Authentication available and in the web console Identify list these appear as 'ID Check $' and 'SMS Auth $'. To use ID check in an envelope, the idCheckConfigurationName should be 'ID Check '. If you wanted to use SMS, it would be 'SMS Auth $' and you would need to add you would need to add phone number information to the \`smsAuthentication\` node.\\" - idCheckConfigurationName: String - idCheckInformationInput: idCheckInformationInput - \\"When set to **true** and the envelope recipient creates a DocuSign account after signing, the Manage Account Email Notification settings are used as the default settings for the recipient's account.\\" - inheritEmailNotificationConfiguration: String - name: String - \\"A note sent to the recipient in the signing email.\\\\nThis note is unique to this recipient.\\\\nIn the user interface,\\\\nit appears near the upper left corner\\\\nof the document\\\\non the signing screen.\\\\n\\\\nMaximum Length: 1000 characters.\\" - note: String - phoneAuthentication: recipientPhoneAuthentication - \\"Reserved:\\" - recipientAttachments: [recipientAttachment] - recipientAuthenticationStatus: authenticationStatus - \\"Unique for the recipient. It is used by the tab element to indicate which recipient is to sign the Document.\\" - recipientId: String - recipientIdGuid: String - \\"When set to **true**, the recipient is required to use the specified ID check method (including Phone and SMS authentication) to validate their identity.\\" - requireIdLookup: String - \\"Optional element. Specifies the role name associated with the recipient.

This is required when working with template recipients.\\" - roleName: String - \\"Specifies the routing order of the recipient in the envelope.\\" - routingOrder: String - samlAuthentication: recipientSAMLAuthentication - \\"The date and time the envelope was sent.\\" - sentDateTime: String - \\"Reserved: For DocuSign use only.\\" - signedDateTime: String - \\"When set to **true** and the feature is enabled in the sender's account, the signing recipient is required to draw signatures and initials at each signature/initial tab ( instead of adopting a signature/initial style or only drawing a signature/initial once).\\" - signingGroupId: String - \\"The display name for the signing group. \\\\n\\\\nMaximum Length: 100 characters.\\" - signingGroupName: String - \\"A complex type that contains information about users in the signing group.\\" - signingGroupUsers: [userInfo] - smsAuthentication: recipientSMSAuthentication - \\"Lists the social ID type that can be used for recipient authentication.\\" - socialAuthentications: [socialAuthentication] - \\"Indicates the envelope status. Valid values are:\\\\n\\\\n* sent - The envelope is sent to the recipients. \\\\n* created - The envelope is saved as a draft and can be modified and sent later.\\" - status: String - \\"When set to **true**, the sender cannot change any attributes of the recipient. Used only when working with template recipients.\\" - templateLocked: String - \\"When set to **true**, the sender may not remove the recipient. Used only when working with template recipients.\\" - templateRequired: String - totalTabCount: String - \\"The user ID of the user being accessed. Generally this is the user ID of the authenticated user, but if the authenticated user is an Admin on the account, this may be another user the Admin user is accessing.\\" - userId: String -} - type signer { \\"If a value is provided, the recipient must enter the value as the access code to view and sign the envelope. \\\\n\\\\nMaximum Length: 50 characters and it must conform to the account's access code format setting.\\\\n\\\\nIf blank, but the signer \`accessCode\` property is set in the envelope, then that value is used.\\\\n\\\\nIf blank and the signer \`accessCode\` property is not set, then the access code is not required.\\" accessCode: String @@ -4319,13 +3903,6 @@ type envelopeAuditEvent { eventFields: [nameValue] } -type customFieldsEnvelope { - \\"An array of list custom fields.\\" - listCustomFields: [listCustomField] - \\"An array of text custom fields.\\" - textCustomFields: [textCustomField] -} - \\"Envelope documents\\" type EnvelopeDocuments { envelopeDocuments: [envelopeDocument] @@ -4426,77 +4003,25 @@ input Pages_GetPageImages_request_Input { \\"The maximum number of results to be returned by this request.\\" count: String \\"Number of dots per inch for the resulting image. The default if not used is 94. The range is 1-310.\\" - dpi: String - \\"Sets the maximum height (in pixels) of the returned image.\\" - max_height: String - \\"Sets the maximum width (in pixels) of the returned image.\\" - max_width: String - nocache: String - show_changes: String - \\"The position within the total result set from which to start returning values. The value **thumbnail** may be used to return the page image.\\" - start_position: String -} - -input Pages_GetPageImage_request_Input { - \\"Sets the dpi for the image.\\" - dpi: String - \\"Sets the maximum height for the page image in pixels. The dpi is recalculated based on this setting.\\" - max_height: String - \\"Sets the maximum width for the page image in pixels. The dpi is recalculated based on this setting.\\" - max_width: String - show_changes: String -} - -type EnvelopeDocumentTabs { - \\"A tab that allows the recipient to approve documents\\\\nwithout placing a signature or initials on the\\\\ndocument. If the recipient clicks the Approve tab during the signing\\\\nprocess, the recipient is considered to have signed the document. No\\\\ninformation is shown on the document for the approval, but it is\\\\nrecorded as a signature in the envelope history.\\" - approveTabs: [approve] - \\"Specifies a tag on the document in a location where the recipient can select an option.\\" - checkboxTabs: [checkbox] - \\"Specifies a tag on the document where you want the recipient's company name to appear.\\\\n\\\\nWhen getting information that includes this tab type, the original value of the tab when the associated envelope was sent is included in the response.\\" - companyTabs: [company] - \\"Specifies a tab on the document where the date the document was signed will automatically appear.\\" - dateSignedTabs: [dateSigned] - \\"Specifies a tab on the document where you want the recipient to enter a date. Date tabs are single-line fields that allow date information to be entered in any format. The tooltip for this tab recommends entering the date as MM/DD/YYYY, but this is not enforced. The format entered by the signer is retained. \\\\n\\\\nIf you need a particular date format enforced, DocuSign recommends using a Text tab with a Validation Pattern and Validation Message to enforce the format.\\" - dateTabs: [date] - \\"Specifies a tag on the document where you want to give the recipient the option of declining an envelope. If the recipient clicks the Decline tag during the signing process, the envelope is voided.\\" - declineTabs: [decline] - \\"Specifies a location on the document where you want where you want the recipient's email, as entered in the recipient information, to display.\\" - emailAddressTabs: [emailAddress] - \\"Specifies a tag on the document where you want the recipient to enter an email. Email tags are single-line fields that accept any characters. The system checks that a valid email format (i.e. xxx@yyy.zzz) is entered in the tag. It uses the same parameters as a Text tab, with the validation message and pattern set for email information.\\\\n\\\\nWhen getting information that includes this tab type, the original value of the tab when the associated envelope was sent is included in the response.\\" - emailTabs: [email] - \\"Specifies a tag on the document where you want the envelope ID for to appear. Recipients cannot enter or change the information in this tab, it is for informational purposes only.\\" - envelopeIdTabs: [envelopeId] - \\"Specifies tag on a document where you want the recipient's first name to appear. This tag takes the recipient's name, as entered in the recipient information, splits it into sections based on spaces and uses the first section as the first name.\\" - firstNameTabs: [firstName] - \\"A list of formula tabs.\\\\n\\\\nThe value of a formula tab is calculated\\\\nfrom the values of other\\\\nnumber or date tabs in the document.\\\\nWhen the recipient completes the underlying fields,\\\\nthe formula tab calculates and displays the result.\\\\n\\\\nThe \`formula\` property of the tab\\\\ncontains the references\\\\nto the underlying tabs.\\\\nSee [Calculated Fields][calculatedfields]\\\\nin the DocuSign Support Center\\\\nto learn more about formulas.\\\\n\\\\nIf a formula tab contains\\\\na \`paymentDetails\` property,\\\\nthe tab is considered a payment item.\\\\nSee [Requesting Payments Along with Signatures][paymentguide]\\\\nin the DocuSign Support Center\\\\nto learn more about payments.\\\\n\\\\n[calculatedfields]: https://support.docusign.com/en/guides/ndse-user-guide-calculated-fields\\\\n[paymentguide]: https://support.docusign.com/en/guides/requesting-payments-along-with-signatures\\" - formulaTabs: [formulaTab] - \\"Specifies a tag on the document where you want the recipient's name to appear.\\" - fullNameTabs: [fullName] - \\"Specifies a tag location in the document at which a recipient will place their initials. The \`optional\` parameter specifies whether the initials are required or optional.\\" - initialHereTabs: [initialHere] - \\"Specifies a tag on a document where you want the recipient's last name to appear. This tag takes the recipient's name, as entered in the recipient information, splits it into sections based on spaces and uses the last section as the last name.\\" - lastNameTabs: [lastName] - \\"Specify this tag to give your recipient a list of options, presented as a drop-down list, from which they can select.\\" - listTabs: [list] - \\"Specifies a location on the document where you want to place additional information, in the form of a note, for a recipient.\\" - noteTabs: [note] - \\"Specifies a tag on the document where you want the recipient to enter a number. It uses the same parameters as a Text tab, with the validation message and pattern set for number information.\\\\n\\\\nWhen getting information that includes this tab type, the original value of the tab when the associated envelope was sent is included in the response.\\" - numberTabs: [number] - \\"Specifies a tag on the document in a location where the recipient can select one option from a group of options using a radio button. The radio buttons do not have to be on the same page in a document.\\" - radioGroupTabs: [radioGroup] - \\"A complex type the contains information about the tag that specifies where the recipient places their signature in the document. The \\\\\\"optional\\\\\\" parameter sets if the signature is required or optional.\\" - signHereTabs: [signHere] - \\"Specifies a tag on the document when you want the recipient to add supporting documents to an envelope.\\" - signerAttachmentTabs: [signerAttachment] - \\"Specifies a tag on the document where you want the recipient to enter a Social Security Number (SSN). A SSN can be typed with or without dashes. It uses the same parameters as a Text tab, with the validation message and pattern set for SSN information.\\\\n\\\\nWhen getting information that includes this tab type, the original value of the tab when the associated envelope was sent is included in the response.\\" - ssnTabs: [ssn] - \\"Specifies a that that is an adaptable field that allows the recipient to enter different text information.\\\\n\\\\nWhen getting information that includes this tab type, the original value of the tab when the associated envelope was sent is included in the response.\\" - textTabs: [text] - \\"Specifies a tag on the document where you want the recipient's title to appear.\\\\n\\\\nWhen getting information that includes this tab type, the original value of the tab when the associated envelope was sent is included in the response.\\" - titleTabs: [title] - viewTabs: [view] - \\"Specifies a tag on the document where you want the recipient to enter a ZIP code. The ZIP code can be a five numbers or the ZIP+4 format with nine numbers. The zip code can be typed with or without dashes. It uses the same parameters as a Text tab, with the validation message and pattern set for ZIP code information.\\\\n\\\\nWhen getting information that includes this tab type, the original value of the tab when the associated envelope was sent is included in the response.\\" - zipTabs: [zip] + dpi: String + \\"Sets the maximum height (in pixels) of the returned image.\\" + max_height: String + \\"Sets the maximum width (in pixels) of the returned image.\\" + max_width: String + nocache: String + show_changes: String + \\"The position within the total result set from which to start returning values. The value **thumbnail** may be used to return the page image.\\" + start_position: String +} + +input Pages_GetPageImage_request_Input { + \\"Sets the dpi for the image.\\" + dpi: String + \\"Sets the maximum height for the page image in pixels. The dpi is recalculated based on this setting.\\" + max_height: String + \\"Sets the maximum width for the page image in pixels. The dpi is recalculated based on this setting.\\" + max_width: String + show_changes: String } input Tabs_GetDocumentTabs_request_Input { @@ -4604,7 +4129,7 @@ type bulkRecipient { recipientSignatureProviderInfo: [bulkRecipientSignatureProvider] rowNumber: String \\"Specifies values used to populate recipient tabs with information. This allows each bulk recipient signer to have different values for their associated tabs. Any number of \`tabLabel\` columns can be added to the bulk recipient file.\\\\n\\\\nThe information used in the bulk recipient file header must be the same as the \`tabLabel\` for the tab.\\\\n\\\\nThe values entered in this column are automatically inserted into the corresponding tab for the recipient in the same row.\\\\n\\\\nNote that this option cannot be used for tabs that do not have data or that are automatically populated data such as Signature, Full Name, Email Address, Company, Title, and Date Signed tabs.\\" - tabLabels: [bulkRecipientTabLabel] + tabLabels: [bulkRecipientSignatureProvider] } type bulkRecipientSignatureProvider { @@ -4613,12 +4138,6 @@ type bulkRecipientSignatureProvider { value: String } -type bulkRecipientTabLabel { - name: String - \\"Specifies the value of the tab.\\" - value: String -} - input Recipients_GetBulkRecipients_request_Input { \\"If **true**\\\\ninclude the tabs in the the result.\\" include_tabs: String @@ -4626,60 +4145,6 @@ input Recipients_GetBulkRecipients_request_Input { start_position: String } -\\"Envelope consumer disclosures\\" -type EnvelopeConsumerDisclosures { - \\"A GUID identifying the account associated with the consumer disclosure\\" - accountEsignId: String - \\"Indicates whether the customer can withdraw their acceptance of the consumer disclosure.\\" - allowCDWithdraw: String - allowCDWithdrawMetadata: settingsMetadata - changeEmail: String - changeEmailOther: String - \\"The name of the company associated with the consumer disclosure.\\" - companyName: String - \\"The phone number of the company associated with the consumer disclosure.\\" - companyPhone: String - copyCostPerPage: String - \\"Specifies the fee collection method for cases in which the customer requires paper copies of the document.\\\\n\\\\nMaximum Length: 255 characters\\" - copyFeeCollectionMethod: String - copyRequestEmail: String - custom: String - enableEsign: String - \\"The Electronic Record and Signature Disclosure text. The disclosure text includes the html formatting.\\" - esignAgreement: String - esignText: String - languageCode: String - mustAgreeToEsign: String - pdfId: String - useBrand: String - useConsumerDisclosureWithinAccount: String - useConsumerDisclosureWithinAccountMetadata: settingsMetadata - \\"Contains the first address line of the postal address to which a customer can send a consent withdrawal notification.\\\\n\\\\nMaximum length: 100 characters.\\" - withdrawAddressLine1: String - \\"Contains the second address line of the postal address to which a customer can send a consent withdrawal notification.\\\\n\\\\nMaximum length: 100 characters.\\" - withdrawAddressLine2: String - \\"Indicates whether the customer can withdraw consent by email.\\" - withdrawByEmail: String - \\"Indicates whether the customer can withdraw consent by postal mail.\\" - withdrawByMail: String - \\"Indicates whether the customer can withdraw consent by phone.\\" - withdrawByPhone: String - \\"Contains the city of the postal address to which a customer can send a consent withdrawal notification.\\\\n\\\\nMaximum length: 50 characters.\\" - withdrawCity: String - \\"Indicates the consequences of withdrawing consent.\\" - withdrawConsequences: String - \\"Contains the email address to which a customer can send a consent withdrawal notification.\\\\n\\\\nMaximum length: 100 characters.\\" - withdrawEmail: String - \\"Indicates other information need to withdraw consent.\\\\n\\\\nMaximum length: 255 characters.\\" - withdrawOther: String - \\"Contains the phone number which a customer can call to register consent withdrawal notification.\\\\n\\\\nMaximum length: 20 characters.\\" - withdrawPhone: String - \\"Contains the postal code of the postal address to which a customer can send a consent withdrawal notification.\\\\n\\\\nMaximum length: 20 characters.\\" - withdrawPostalCode: String - \\"Contains the state of the postal address to which a customer can send a consent withdrawal notification.\\" - withdrawState: String -} - input ConsumerDisclosure_GetConsumerDisclosureEnvelopeIdRecipientId_request_Input { langCode: String } @@ -4763,7 +4228,7 @@ type folder { \\"The ID of the folder being accessed.\\" folderId: String \\"A collection of folder objects returned in a response.\\" - folders: [JSON] + folders: [folder] name: String ownerEmail: String ownerUserId: String @@ -4793,9 +4258,6 @@ type filter { toDateTime: String } -\\"The \`JSON\` scalar type represents JSON values as specified by [ECMA-404](http://www.ecma-international.org/publications/files/ECMA-ST/ECMA-404.pdf).\\" -scalar JSON @specifiedBy(url: \\"http://www.ecma-international.org/publications/files/ECMA-ST/ECMA-404.pdf\\") - input Folders_GetFolders_request_Input { \\"Reserved for DocuSign.\\" include: String @@ -4938,16 +4400,6 @@ input Groups_GetGroups_request_Input { start_position: String } -\\"Brand management for groups\\" -type GroupBrands { - \\"The list of brands.\\" - brands: [brand] - \\"The brand seen by envelope recipients when a brand is not explicitly set.\\" - recipientBrandIdDefault: String - \\"The brand seen by envelope senders when a brand is not explicitly set.\\" - senderBrandIdDefault: String -} - \\"Groups' users\\" type GroupUsers { \\"The last position in the result set.\\" @@ -5533,7 +4985,7 @@ type templateSharedItem { \\"When set to **true**, this custom tab is shared.\\" shared: String sharedGroups: [memberGroupSharedItem] - sharedUsers: [userSharedItem] + sharedUsers: [sharedItem] \\"The unique identifier of the template. If this is not provided, DocuSign will generate a value.\\" templateId: String templateName: String @@ -5546,13 +4998,6 @@ type memberGroupSharedItem { shared: String } -type userSharedItem { - errorDetails: errorDetails - \\"When set to **true**, this custom tab is shared.\\" - shared: String - user: userInfo -} - input SharedAccess_GetSharedAccess_request_Input { \\"Specifies maximum number of results included in the response. If no value is specified, this defaults to 1000.\\" count: String @@ -6059,14 +5504,6 @@ type envelopeTemplateDefinition { uri: String } -\\"Template custom fields\\" -type TemplateCustomFields { - \\"An array of list custom fields.\\" - listCustomFields: [listCustomField] - \\"An array of text custom fields.\\" - textCustomFields: [textCustomField] -} - \\"Template documents\\" type TemplateDocuments { templateDocuments: [envelopeDocument] @@ -6079,12 +5516,6 @@ input Documents_GetTemplateDocument_request_Input { show_changes: String } -\\"Template document fields\\" -type TemplateDocumentFields { - \\"The array of name/value custom data strings to be added to a document. Custom document field information is returned in the status, but otherwise is not used by DocuSign. The array contains the elements: \\\\n\\\\n* name - A string that can be a maximum of 50 characters. \\\\n* value - A string that can be a maximum of 200 characters.\\\\n\\\\n*IMPORTANT*: If you are using xml, the name/value pair is contained in a nameValue element.\\" - documentFields: [nameValue] -} - input Pages_GetTemplatePageImage_request_Input { \\"Number of dots per inch for the resulting image. The default if not used is 94. The range is 1-310.\\" dpi: String @@ -6095,183 +5526,20 @@ input Pages_GetTemplatePageImage_request_Input { show_changes: String } -type TemplateDocumentTabs { - \\"A tab that allows the recipient to approve documents\\\\nwithout placing a signature or initials on the\\\\ndocument. If the recipient clicks the Approve tab during the signing\\\\nprocess, the recipient is considered to have signed the document. No\\\\ninformation is shown on the document for the approval, but it is\\\\nrecorded as a signature in the envelope history.\\" - approveTabs: [approve] - \\"Specifies a tag on the document in a location where the recipient can select an option.\\" - checkboxTabs: [checkbox] - \\"Specifies a tag on the document where you want the recipient's company name to appear.\\\\n\\\\nWhen getting information that includes this tab type, the original value of the tab when the associated envelope was sent is included in the response.\\" - companyTabs: [company] - \\"Specifies a tab on the document where the date the document was signed will automatically appear.\\" - dateSignedTabs: [dateSigned] - \\"Specifies a tab on the document where you want the recipient to enter a date. Date tabs are single-line fields that allow date information to be entered in any format. The tooltip for this tab recommends entering the date as MM/DD/YYYY, but this is not enforced. The format entered by the signer is retained. \\\\n\\\\nIf you need a particular date format enforced, DocuSign recommends using a Text tab with a Validation Pattern and Validation Message to enforce the format.\\" - dateTabs: [date] - \\"Specifies a tag on the document where you want to give the recipient the option of declining an envelope. If the recipient clicks the Decline tag during the signing process, the envelope is voided.\\" - declineTabs: [decline] - \\"Specifies a location on the document where you want where you want the recipient's email, as entered in the recipient information, to display.\\" - emailAddressTabs: [emailAddress] - \\"Specifies a tag on the document where you want the recipient to enter an email. Email tags are single-line fields that accept any characters. The system checks that a valid email format (i.e. xxx@yyy.zzz) is entered in the tag. It uses the same parameters as a Text tab, with the validation message and pattern set for email information.\\\\n\\\\nWhen getting information that includes this tab type, the original value of the tab when the associated envelope was sent is included in the response.\\" - emailTabs: [email] - \\"Specifies a tag on the document where you want the envelope ID for to appear. Recipients cannot enter or change the information in this tab, it is for informational purposes only.\\" - envelopeIdTabs: [envelopeId] - \\"Specifies tag on a document where you want the recipient's first name to appear. This tag takes the recipient's name, as entered in the recipient information, splits it into sections based on spaces and uses the first section as the first name.\\" - firstNameTabs: [firstName] - \\"A list of formula tabs.\\\\n\\\\nThe value of a formula tab is calculated\\\\nfrom the values of other\\\\nnumber or date tabs in the document.\\\\nWhen the recipient completes the underlying fields,\\\\nthe formula tab calculates and displays the result.\\\\n\\\\nThe \`formula\` property of the tab\\\\ncontains the references\\\\nto the underlying tabs.\\\\nSee [Calculated Fields][calculatedfields]\\\\nin the DocuSign Support Center\\\\nto learn more about formulas.\\\\n\\\\nIf a formula tab contains\\\\na \`paymentDetails\` property,\\\\nthe tab is considered a payment item.\\\\nSee [Requesting Payments Along with Signatures][paymentguide]\\\\nin the DocuSign Support Center\\\\nto learn more about payments.\\\\n\\\\n[calculatedfields]: https://support.docusign.com/en/guides/ndse-user-guide-calculated-fields\\\\n[paymentguide]: https://support.docusign.com/en/guides/requesting-payments-along-with-signatures\\" - formulaTabs: [formulaTab] - \\"Specifies a tag on the document where you want the recipient's name to appear.\\" - fullNameTabs: [fullName] - \\"Specifies a tag location in the document at which a recipient will place their initials. The \`optional\` parameter specifies whether the initials are required or optional.\\" - initialHereTabs: [initialHere] - \\"Specifies a tag on a document where you want the recipient's last name to appear. This tag takes the recipient's name, as entered in the recipient information, splits it into sections based on spaces and uses the last section as the last name.\\" - lastNameTabs: [lastName] - \\"Specify this tag to give your recipient a list of options, presented as a drop-down list, from which they can select.\\" - listTabs: [list] - \\"Specifies a location on the document where you want to place additional information, in the form of a note, for a recipient.\\" - noteTabs: [note] - \\"Specifies a tag on the document where you want the recipient to enter a number. It uses the same parameters as a Text tab, with the validation message and pattern set for number information.\\\\n\\\\nWhen getting information that includes this tab type, the original value of the tab when the associated envelope was sent is included in the response.\\" - numberTabs: [number] - \\"Specifies a tag on the document in a location where the recipient can select one option from a group of options using a radio button. The radio buttons do not have to be on the same page in a document.\\" - radioGroupTabs: [radioGroup] - \\"A complex type the contains information about the tag that specifies where the recipient places their signature in the document. The \\\\\\"optional\\\\\\" parameter sets if the signature is required or optional.\\" - signHereTabs: [signHere] - \\"Specifies a tag on the document when you want the recipient to add supporting documents to an envelope.\\" - signerAttachmentTabs: [signerAttachment] - \\"Specifies a tag on the document where you want the recipient to enter a Social Security Number (SSN). A SSN can be typed with or without dashes. It uses the same parameters as a Text tab, with the validation message and pattern set for SSN information.\\\\n\\\\nWhen getting information that includes this tab type, the original value of the tab when the associated envelope was sent is included in the response.\\" - ssnTabs: [ssn] - \\"Specifies a that that is an adaptable field that allows the recipient to enter different text information.\\\\n\\\\nWhen getting information that includes this tab type, the original value of the tab when the associated envelope was sent is included in the response.\\" - textTabs: [text] - \\"Specifies a tag on the document where you want the recipient's title to appear.\\\\n\\\\nWhen getting information that includes this tab type, the original value of the tab when the associated envelope was sent is included in the response.\\" - titleTabs: [title] - viewTabs: [view] - \\"Specifies a tag on the document where you want the recipient to enter a ZIP code. The ZIP code can be a five numbers or the ZIP+4 format with nine numbers. The zip code can be typed with or without dashes. It uses the same parameters as a Text tab, with the validation message and pattern set for ZIP code information.\\\\n\\\\nWhen getting information that includes this tab type, the original value of the tab when the associated envelope was sent is included in the response.\\" - zipTabs: [zip] -} - -\\"Template locks\\" -type TemplateLocks { - errorDetails: errorDetails - \\"Sets the time, in seconds, until the lock expires when there is no activity on the envelope.\\\\n\\\\nIf no value is entered, then the default value of 300 seconds is used. The maximum value is 1,800 seconds.\\\\n\\\\nThe lock duration can be extended.\\" - lockDurationInSeconds: String - \\"A unique identifier provided to the owner of the envelope lock. Used to prove ownership of the lock.\\" - lockToken: String - \\"The type of envelope lock. Currently \\\\\\"edit\\\\\\" is the only supported type.\\" - lockType: String - \\"Specifies the friendly name of the application that is locking the envelope.\\" - lockedByApp: String - lockedByUser: userInfo - \\"The datetime until the envelope lock expires.\\" - lockedUntilDateTime: String - \\"Reserved for future use.\\\\n\\\\nIndicates whether a scratchpad is used for editing information.\\" - useScratchPad: String -} - -\\"Template recipients\\" -type TemplateRecipients { - \\"A complex type defining the management and access rights of a recipient assigned assigned as an agent on the document.\\" - agents: [agent] - \\"A complex type containing information about recipients who should receive a copy of the envelope, but does not need to sign it.\\" - carbonCopies: [carbonCopy] - \\"A complex type containing information on a recipient the must receive the completed documents for the envelope to be completed, but the recipient does not need to sign, initial, date, or add information to any of the documents.\\" - certifiedDeliveries: [certifiedDelivery] - currentRoutingOrder: String - \\"A complex type defining the management and access rights of a recipient assigned assigned as an editor on the document.\\" - editors: [editor] - errorDetails: errorDetails - \\"Specifies a signer that is in the same physical location as a DocuSign user who will act as a Signing Host for the transaction. The recipient added is the Signing Host and new separate Signer Name field appears after Sign in person is selected.\\" - inPersonSigners: [inPersonSigner] - \\"Identifies a recipient that can, but is not required to, add name and email information for recipients at the same or subsequent level in the routing order (until subsequent Agents, Editors or Intermediaries recipient types are added).\\" - intermediaries: [intermediary] - \\"The list of recipient event statuses that will trigger Connect to send updates to the url. It can be a two-part list with:\\\\n\\\\n* recipientEventStatusCode - The recipient status, this can be Sent, Delivered, Completed, Declined, AuthenticationFailed, and AutoResponded.\\\\n* includeDocuments - When set to **true**, the envelope time zone information is included in the message.\\" - recipientCount: String - \\"A complex type containing information about the Signer recipient.\\" - signers: [signer] -} - input Recipients_GetTemplateRecipients_request_Input { \\"When set to **true** and \`include_tabs\` is set to **true**, all tabs with anchor tab properties are included in the response.\\" include_anchor_tab_locations: String - \\"When set to **true**, the extended properties are included in the response.\\" - include_extended: String - \\"When set to **true**, the tab information associated with the recipient is included in the response.\\" - include_tabs: String -} - -\\"Template bulk recipients\\" -type TemplateBulkRecipients { - \\"A complex type containing information about the bulk recipients in the response.\\" - bulkRecipients: [bulkRecipient] - \\"The last position in the result set.\\" - endPosition: String - \\"The URI for the next chunk of records based on the search request. It is \`null\` if this is the last set of results for the search.\\" - nextUri: String - \\"The URI for the prior chunk of records based on the search request. It is \`null\` if this is the first set of results for the search.\\" - previousUri: String - \\"The number of results returned in this response.\\" - resultSetSize: String - \\"Starting position of the current result set.\\" - startPosition: String - \\"The total number of items in the search's result set. It will always be greater than or equal to the value of the \`resultSetSize\` field.\\" - totalSetSize: String -} - -input Recipients_GetTemplateBulkRecipients_request_Input { - \\"When set to **true**, the tab information associated with the recipient is included in the response.\\" - include_tabs: String - \\"Reserved for DocuSign.\\" - start_position: String -} - -\\"Template tabs\\" -type TemplateRecipientTabs { - \\"A tab that allows the recipient to approve documents\\\\nwithout placing a signature or initials on the\\\\ndocument. If the recipient clicks the Approve tab during the signing\\\\nprocess, the recipient is considered to have signed the document. No\\\\ninformation is shown on the document for the approval, but it is\\\\nrecorded as a signature in the envelope history.\\" - approveTabs: [approve] - \\"Specifies a tag on the document in a location where the recipient can select an option.\\" - checkboxTabs: [checkbox] - \\"Specifies a tag on the document where you want the recipient's company name to appear.\\\\n\\\\nWhen getting information that includes this tab type, the original value of the tab when the associated envelope was sent is included in the response.\\" - companyTabs: [company] - \\"Specifies a tab on the document where the date the document was signed will automatically appear.\\" - dateSignedTabs: [dateSigned] - \\"Specifies a tab on the document where you want the recipient to enter a date. Date tabs are single-line fields that allow date information to be entered in any format. The tooltip for this tab recommends entering the date as MM/DD/YYYY, but this is not enforced. The format entered by the signer is retained. \\\\n\\\\nIf you need a particular date format enforced, DocuSign recommends using a Text tab with a Validation Pattern and Validation Message to enforce the format.\\" - dateTabs: [date] - \\"Specifies a tag on the document where you want to give the recipient the option of declining an envelope. If the recipient clicks the Decline tag during the signing process, the envelope is voided.\\" - declineTabs: [decline] - \\"Specifies a location on the document where you want where you want the recipient's email, as entered in the recipient information, to display.\\" - emailAddressTabs: [emailAddress] - \\"Specifies a tag on the document where you want the recipient to enter an email. Email tags are single-line fields that accept any characters. The system checks that a valid email format (i.e. xxx@yyy.zzz) is entered in the tag. It uses the same parameters as a Text tab, with the validation message and pattern set for email information.\\\\n\\\\nWhen getting information that includes this tab type, the original value of the tab when the associated envelope was sent is included in the response.\\" - emailTabs: [email] - \\"Specifies a tag on the document where you want the envelope ID for to appear. Recipients cannot enter or change the information in this tab, it is for informational purposes only.\\" - envelopeIdTabs: [envelopeId] - \\"Specifies tag on a document where you want the recipient's first name to appear. This tag takes the recipient's name, as entered in the recipient information, splits it into sections based on spaces and uses the first section as the first name.\\" - firstNameTabs: [firstName] - \\"A list of formula tabs.\\\\n\\\\nThe value of a formula tab is calculated\\\\nfrom the values of other\\\\nnumber or date tabs in the document.\\\\nWhen the recipient completes the underlying fields,\\\\nthe formula tab calculates and displays the result.\\\\n\\\\nThe \`formula\` property of the tab\\\\ncontains the references\\\\nto the underlying tabs.\\\\nSee [Calculated Fields][calculatedfields]\\\\nin the DocuSign Support Center\\\\nto learn more about formulas.\\\\n\\\\nIf a formula tab contains\\\\na \`paymentDetails\` property,\\\\nthe tab is considered a payment item.\\\\nSee [Requesting Payments Along with Signatures][paymentguide]\\\\nin the DocuSign Support Center\\\\nto learn more about payments.\\\\n\\\\n[calculatedfields]: https://support.docusign.com/en/guides/ndse-user-guide-calculated-fields\\\\n[paymentguide]: https://support.docusign.com/en/guides/requesting-payments-along-with-signatures\\" - formulaTabs: [formulaTab] - \\"Specifies a tag on the document where you want the recipient's name to appear.\\" - fullNameTabs: [fullName] - \\"Specifies a tag location in the document at which a recipient will place their initials. The \`optional\` parameter specifies whether the initials are required or optional.\\" - initialHereTabs: [initialHere] - \\"Specifies a tag on a document where you want the recipient's last name to appear. This tag takes the recipient's name, as entered in the recipient information, splits it into sections based on spaces and uses the last section as the last name.\\" - lastNameTabs: [lastName] - \\"Specify this tag to give your recipient a list of options, presented as a drop-down list, from which they can select.\\" - listTabs: [list] - \\"Specifies a location on the document where you want to place additional information, in the form of a note, for a recipient.\\" - noteTabs: [note] - \\"Specifies a tag on the document where you want the recipient to enter a number. It uses the same parameters as a Text tab, with the validation message and pattern set for number information.\\\\n\\\\nWhen getting information that includes this tab type, the original value of the tab when the associated envelope was sent is included in the response.\\" - numberTabs: [number] - \\"Specifies a tag on the document in a location where the recipient can select one option from a group of options using a radio button. The radio buttons do not have to be on the same page in a document.\\" - radioGroupTabs: [radioGroup] - \\"A complex type the contains information about the tag that specifies where the recipient places their signature in the document. The \\\\\\"optional\\\\\\" parameter sets if the signature is required or optional.\\" - signHereTabs: [signHere] - \\"Specifies a tag on the document when you want the recipient to add supporting documents to an envelope.\\" - signerAttachmentTabs: [signerAttachment] - \\"Specifies a tag on the document where you want the recipient to enter a Social Security Number (SSN). A SSN can be typed with or without dashes. It uses the same parameters as a Text tab, with the validation message and pattern set for SSN information.\\\\n\\\\nWhen getting information that includes this tab type, the original value of the tab when the associated envelope was sent is included in the response.\\" - ssnTabs: [ssn] - \\"Specifies a that that is an adaptable field that allows the recipient to enter different text information.\\\\n\\\\nWhen getting information that includes this tab type, the original value of the tab when the associated envelope was sent is included in the response.\\" - textTabs: [text] - \\"Specifies a tag on the document where you want the recipient's title to appear.\\\\n\\\\nWhen getting information that includes this tab type, the original value of the tab when the associated envelope was sent is included in the response.\\" - titleTabs: [title] - viewTabs: [view] - \\"Specifies a tag on the document where you want the recipient to enter a ZIP code. The ZIP code can be a five numbers or the ZIP+4 format with nine numbers. The zip code can be typed with or without dashes. It uses the same parameters as a Text tab, with the validation message and pattern set for ZIP code information.\\\\n\\\\nWhen getting information that includes this tab type, the original value of the tab when the associated envelope was sent is included in the response.\\" - zipTabs: [zip] + \\"When set to **true**, the extended properties are included in the response.\\" + include_extended: String + \\"When set to **true**, the tab information associated with the recipient is included in the response.\\" + include_tabs: String +} + +input Recipients_GetTemplateBulkRecipients_request_Input { + \\"When set to **true**, the tab information associated with the recipient is included in the response.\\" + include_tabs: String + \\"Reserved for DocuSign.\\" + start_position: String } type fileTypeList { @@ -6881,13 +6149,13 @@ type Mutation { \\"Deletes the specified DocuSign Connect configuration.\\\\n\\\\n\\\\n \\\\n\\" Connect_DeleteConnectConfig(accountId: String!, connectId: String!): Any \\"Update Consumer Disclosure.\\" - ConsumerDisclosure_PutConsumerDisclosure(input: EnvelopeConsumerDisclosures_Input, accountId: String!, langCode: String!, include_metadata: String): EnvelopeConsumerDisclosures + ConsumerDisclosure_PutConsumerDisclosure(input: AccountConsumerDisclosures_Input, accountId: String!, langCode: String!, include_metadata: String): AccountConsumerDisclosures \\"Delete contacts associated with an account for the DocuSign service.\\" - Contacts_DeleteContacts(input: contactModRequest_Input, accountId: String!): contactUpdateResponse + Contacts_DeleteContacts(input: contactUpdateResponse_Input, accountId: String!): contactUpdateResponse \\"Imports multiple new contacts into the contacts collection from CSV, JSON, or XML (based on content type).\\" - Contacts_PostContacts(input: contactModRequest_Input, accountId: String!): contactUpdateResponse + Contacts_PostContacts(input: contactUpdateResponse_Input, accountId: String!): contactUpdateResponse \\"Replaces contacts associated with an account for the DocuSign service.\\" - Contacts_PutContacts(input: contactModRequest_Input, accountId: String!): contactUpdateResponse + Contacts_PutContacts(input: contactUpdateResponse_Input, accountId: String!): contactUpdateResponse \\"Replaces a particular contact associated with an account for the DocuSign service.\\" Contacts_DeleteContactWithId(accountId: String!, contactId: String!): contactUpdateResponse \\"Creates an acount custom field.\\" @@ -6911,11 +6179,11 @@ type Mutation { \\"Add an attachment to a DRAFT or IN-PROCESS envelope.\\" Attachments_PutAttachment(input: attachment_Input, accountId: String!, envelopeId: String!, attachmentId: String!): envelopeAttachmentsResult \\"Deletes envelope custom fields for draft and in-process envelopes.\\" - CustomFields_DeleteCustomFields(input: EnvelopeCustomFields_Input, accountId: String!, envelopeId: String!): EnvelopeCustomFields + CustomFields_DeleteCustomFields(input: AccountCustomFields_Input, accountId: String!, envelopeId: String!): AccountCustomFields \\"Updates the envelope custom fields for draft and in-process envelopes.\\\\n\\\\nEach custom field used in an envelope must have a unique name.\\" - CustomFields_PostCustomFields(input: EnvelopeCustomFields_Input, accountId: String!, envelopeId: String!): EnvelopeCustomFields + CustomFields_PostCustomFields(input: AccountCustomFields_Input, accountId: String!, envelopeId: String!): AccountCustomFields \\"Updates the envelope custom fields in draft and in-process envelopes.\\\\n\\\\nEach custom field used in an envelope must have a unique name.\\\\n\\" - CustomFields_PutCustomFields(input: EnvelopeCustomFields_Input, accountId: String!, envelopeId: String!): EnvelopeCustomFields + CustomFields_PutCustomFields(input: AccountCustomFields_Input, accountId: String!, envelopeId: String!): AccountCustomFields \\"Deletes one or more documents from an existing draft envelope.\\" Documents_DeleteDocuments(input: envelopeDefinition_Input, accountId: String!, envelopeId: String!): EnvelopeDocuments \\"Adds one or more documents to an existing envelope document.\\" @@ -6949,7 +6217,7 @@ type Mutation { \\"Updates the lock duration time or update the \`lockedByApp\` property information for the specified envelope. The user and integrator key must match the user specified by the \`lockByUser\` property and integrator key information and the \`X-DocuSign-Edit\` header must be included or an error will be generated.\\" Lock_PutEnvelopeLock(input: lockRequest_Input, accountId: String!, envelopeId: String!): EnvelopeLocks \\"Sets envelope notification (Reminders/Expirations) structure for an existing envelope.\\" - Notification_PutEnvelopesEnvelopeIdNotification(input: envelopeNotificationRequest_Input, accountId: String!, envelopeId: String!): notification + Notification_PutEnvelopesEnvelopeIdNotification(input: notification_Input, accountId: String!, envelopeId: String!): notification \\"Deletes one or more recipients from a draft or sent envelope. Recipients to be deleted are listed in the request, with the \`recipientId\` being used as the key for deleting recipients.\\\\n\\\\nIf the envelope is \`In Process\`, meaning that it has been sent and has not been completed or voided, recipients that have completed their actions cannot be deleted.\\" Recipients_DeleteRecipients(input: EnvelopeRecipients_Input, accountId: String!, envelopeId: String!): EnvelopeRecipients \\"Adds one or more recipients to an envelope.\\\\n\\\\nFor an in process envelope, one that has been sent and has not been completed or voided, an email is sent to a new recipient when they are reached in the routing order. If the new recipient's routing order is before or the same as the envelope's next recipient, an email is only sent if the optional \`resend_envelope\` query string is set to **true**.\\" @@ -6995,9 +6263,9 @@ type Mutation { \\"Updates the group name and modifies, or sets, the permission profile for the group.\\" Groups_PutGroups(input: Groups_Input, accountId: String!): Groups \\"Deletes brand information from the requested group.\\" - Brands_DeleteGroupBrands(input: brandsRequest_Input, accountId: String!, groupId: String!): GroupBrands + Brands_DeleteGroupBrands(input: brandsRequest_Input, accountId: String!, groupId: String!): AccountBrands \\"Adds group brand ID information to a group.\\" - Brands_PutGroupBrands(input: brandsRequest_Input, accountId: String!, groupId: String!): GroupBrands + Brands_PutGroupBrands(input: brandsRequest_Input, accountId: String!, groupId: String!): AccountBrands \\"Deletes one or more users from a group.\\\\n\\" Groups_DeleteGroupUsers(input: userInfoList_Input, accountId: String!, groupId: String!): GroupUsers \\"Adds one or more users to an existing group.\\" @@ -7049,13 +6317,13 @@ type Mutation { \\"Creates a template definition using a multipart request.\\\\n\\\\n\\\\nCall this endpoint to insert a recipient name and email address merge fields into the email subject line when creating or sending from a template.\\\\n\\\\nThe merge fields, based on the recipient's role name, are added to the \`emailSubject\` property when the template is created or when the template is used to create an envelope. After a template sender adds the name and email information for the recipient and sends the envelope, the recipient information is automatically merged into the appropriate fields in the email subject line.\\\\n\\\\nBoth the sender and the recipients will see the information in the email subject line for any emails associated with the template. This provides an easy way for senders to organize their envelope emails without having to open an envelope to check the recipient.\\\\n\\\\nTo add a recipient's name in the subject line add the following text in the \`emailSubject\` property when creating the template or when sending an envelope from a template:\\\\n\\\\n\`[[_UserName]]\`\\\\n\\\\nExample:\\\\n\\\\n\`\\\\\\"emailSubject\\\\\\":\\\\\\"[[Signer 1_UserName]], Please sign this NDA\\\\\\",\`\\\\n\\\\nTo add a recipient's email address in the subject line add the following text in the \`emailSubject\` property when creating the template or when sending an envelope from a template:\\\\n\\\\n\`[[_Email]]\`\\\\n\\\\nExample:\\\\n\\\\n\`\\\\\\"emailSubject\\\\\\":\\\\\\"[[Signer 1_Email]], Please sign this NDA\\\\\\",\`\\\\n\\\\n\\\\nIn both cases the is the recipient's contents of the \`roleName\` property in the template.\\\\n\\\\nFor cases where another recipient (such as an Agent, Editor, or Intermediary recipient) is entering the name and email information for the recipient included in the email subject, then \`[[_UserName]]\` or \`[[_Email]]\` is shown in the email subject.\\" Templates_PostTemplates(input: Templates_Input, accountId: String!): templateSummary \\"Updates an existing template.\\" - Templates_PutTemplate(input: Templates_Input, accountId: String!, templateId: String!): templateUpdateSummary + Templates_PutTemplate(input: Templates_Input, accountId: String!, templateId: String!): envelopeUpdateSummary \\"Deletes envelope custom fields in a template.\\" - CustomFields_DeleteTemplateCustomFields(input: templateCustomFields_Input, accountId: String!, templateId: String!): TemplateCustomFields + CustomFields_DeleteTemplateCustomFields(input: AccountCustomFields_Input, accountId: String!, templateId: String!): AccountCustomFields \\"Creates custom document fields in an existing template document.\\" - CustomFields_PostTemplateCustomFields(input: templateCustomFields_Input, accountId: String!, templateId: String!): TemplateCustomFields + CustomFields_PostTemplateCustomFields(input: AccountCustomFields_Input, accountId: String!, templateId: String!): AccountCustomFields \\"Updates the custom fields in a template.\\\\n\\\\nEach custom field used in a template must have a unique name.\\" - CustomFields_PutTemplateCustomFields(input: templateCustomFields_Input, accountId: String!, templateId: String!): TemplateCustomFields + CustomFields_PutTemplateCustomFields(input: AccountCustomFields_Input, accountId: String!, templateId: String!): AccountCustomFields \\"Deletes one or more documents from an existing template.\\" Documents_DeleteTemplateDocuments(input: envelopeDefinition_Input, accountId: String!, templateId: String!): TemplateDocuments \\"Adds one or more documents to an existing template document.\\" @@ -7063,47 +6331,47 @@ type Mutation { \\"Adds the specified document to an existing template document.\\" Documents_PutTemplateDocument(input: envelopeDefinition_Input, accountId: String!, templateId: String!, documentId: String!, apply_document_fields: String, is_envelope_definition: String): envelopeDocument \\"Deletes custom document fields from an existing template document.\\" - DocumentFields_DeleteTemplateDocumentFields(input: TemplateDocumentFields_Input, accountId: String!, templateId: String!, documentId: String!): TemplateDocumentFields + DocumentFields_DeleteTemplateDocumentFields(input: EnvelopeDocumentFields_Input, accountId: String!, templateId: String!, documentId: String!): EnvelopeDocumentFields \\"Creates custom document fields in an existing template document.\\" - DocumentFields_PostTemplateDocumentFields(input: TemplateDocumentFields_Input, accountId: String!, templateId: String!, documentId: String!): TemplateDocumentFields + DocumentFields_PostTemplateDocumentFields(input: EnvelopeDocumentFields_Input, accountId: String!, templateId: String!, documentId: String!): EnvelopeDocumentFields \\"Updates existing custom document fields in an existing template document.\\" - DocumentFields_PutTemplateDocumentFields(input: TemplateDocumentFields_Input, accountId: String!, templateId: String!, documentId: String!): TemplateDocumentFields + DocumentFields_PutTemplateDocumentFields(input: EnvelopeDocumentFields_Input, accountId: String!, templateId: String!, documentId: String!): EnvelopeDocumentFields \\"Deletes a page from a document in a template based on the page number.\\" Pages_DeleteTemplatePage(input: pageRequest_Input, accountId: String!, templateId: String!, documentId: String!, pageNumber: String!): Any \\"Rotates page image from a template for display. The page image can be rotated to the left or right.\\" Pages_PutTemplatePageImage(input: pageRequest_Input, accountId: String!, templateId: String!, documentId: String!, pageNumber: String!): Any \\"Deletes the lock from the specified template. The \`X-DocuSign-Edit\` header must be included in the request.\\" - Lock_DeleteTemplateLock(input: lockRequest_Input, accountId: String!, templateId: String!): TemplateLocks + Lock_DeleteTemplateLock(input: lockRequest_Input, accountId: String!, templateId: String!): EnvelopeLocks \\"Locks the specified template, and sets the time until the lock expires, to prevent other users or recipients from accessing and changing the template.\\" - Lock_PostTemplateLock(input: lockRequest_Input, accountId: String!, templateId: String!): TemplateLocks + Lock_PostTemplateLock(input: lockRequest_Input, accountId: String!, templateId: String!): EnvelopeLocks \\"Updates the lock duration time or update the \`lockedByApp\` property information for the specified template. The user and integrator key must match the user specified by the \`lockByUser\` property and integrator key information and the \`X-DocuSign-Edit\` header must be included or an error will be generated.\\" - Lock_PutTemplateLock(input: lockRequest_Input, accountId: String!, templateId: String!): TemplateLocks + Lock_PutTemplateLock(input: lockRequest_Input, accountId: String!, templateId: String!): EnvelopeLocks \\"Updates the notification structure for an existing template. Use this endpoint to set reminder and expiration notifications.\\" Notification_PutTemplatesTemplateIdNotification(input: templateNotificationRequest_Input, accountId: String!, templateId: String!): notification \\"Deletes one or more recipients from a template. Recipients to be deleted are listed in the request, with the \`recipientId\` being used as the key for deleting recipients.\\" - Recipients_DeleteTemplateRecipients(input: templateRecipients_Input, accountId: String!, templateId: String!): TemplateRecipients + Recipients_DeleteTemplateRecipients(input: templateRecipients_Input, accountId: String!, templateId: String!): EnvelopeRecipients \\"Adds one or more recipients to a template.\\" - Recipients_PostTemplateRecipients(input: templateRecipients_Input, accountId: String!, templateId: String!, resend_envelope: String): TemplateRecipients + Recipients_PostTemplateRecipients(input: templateRecipients_Input, accountId: String!, templateId: String!, resend_envelope: String): EnvelopeRecipients \\"Updates recipients in a template. \\\\n\\\\nYou can edit the following properties: \`email\`, \`userName\`, \`routingOrder\`, \`faxNumber\`, \`deliveryMethod\`, \`accessCode\`, and \`requireIdLookup\`.\\" Recipients_PutTemplateRecipients(input: templateRecipients_Input, accountId: String!, templateId: String!, resend_envelope: String): recipientsUpdateSummary \\"Updates document visibility for the recipients\\" - Recipients_PutTemplateRecipientsDocumentVisibility(input: TemplateDocumentVisibility_Input, accountId: String!, templateId: String!): TemplateDocumentVisibility + Recipients_PutTemplateRecipientsDocumentVisibility(input: EnvelopeDocumentVisibility_Input, accountId: String!, templateId: String!): EnvelopeDocumentVisibility \\"Deletes the specified recipient file from the specified template.\\" - Recipients_DeleteTemplateRecipient(input: templateRecipients_Input, accountId: String!, templateId: String!, recipientId: String!): TemplateRecipients + Recipients_DeleteTemplateRecipient(input: templateRecipients_Input, accountId: String!, templateId: String!, recipientId: String!): EnvelopeRecipients \\"Deletes the bulk recipient list on a template.\\" Recipients_DeleteTemplateBulkRecipientsFile(accountId: String!, templateId: String!, recipientId: String!): bulkRecipientsUpdateResponse \\"Updates the bulk recipients in a template using a file upload. The Content-Type supported for uploading a bulk recipient file is CSV (text/csv).\\\\n\\\\nThe REST API does not support modifying individual rows or values in the bulk recipients file. It only allows the entire file to be added or replaced with a new file.\\" Recipients_PutTemplateBulkRecipients(input: bulkRecipientsRequest_Input, accountId: String!, templateId: String!, recipientId: String!): bulkRecipientsSummaryResponse \\"Updates document visibility for the recipients\\" - Recipients_PutTemplateRecipientDocumentVisibility(input: TemplateDocumentVisibility_Input, accountId: String!, templateId: String!, recipientId: String!): TemplateDocumentVisibility + Recipients_PutTemplateRecipientDocumentVisibility(input: EnvelopeDocumentVisibility_Input, accountId: String!, templateId: String!, recipientId: String!): EnvelopeDocumentVisibility \\"Deletes one or more tabs associated with a recipient in a template.\\" - Recipients_DeleteTemplateRecipientTabs(input: templateTabs_Input, accountId: String!, templateId: String!, recipientId: String!): TemplateRecipientTabs + Recipients_DeleteTemplateRecipientTabs(input: EnvelopeRecipientTabs_Input, accountId: String!, templateId: String!, recipientId: String!): EnvelopeRecipientTabs \\"Adds one or more tabs for a recipient.\\" - Recipients_PostTemplateRecipientTabs(input: templateTabs_Input, accountId: String!, templateId: String!, recipientId: String!): TemplateRecipientTabs + Recipients_PostTemplateRecipientTabs(input: EnvelopeRecipientTabs_Input, accountId: String!, templateId: String!, recipientId: String!): EnvelopeRecipientTabs \\"Updates one or more tabs for a recipient in a template.\\" - Recipients_PutTemplateRecipientTabs(input: templateTabs_Input, accountId: String!, templateId: String!, recipientId: String!): TemplateRecipientTabs + Recipients_PutTemplateRecipientTabs(input: EnvelopeRecipientTabs_Input, accountId: String!, templateId: String!, recipientId: String!): EnvelopeRecipientTabs \\"Provides a URL to start an edit view of the Template UI\\" - Views_PostTemplateEditView(input: returnUrlRequest_Input, accountId: String!, templateId: String!): TemplateViews + Views_PostTemplateEditView(input: returnUrlRequest_Input, accountId: String!, templateId: String!): EnvelopeViews \\"Removes a member group's sharing permissions for a specified template.\\" Templates_DeleteTemplatePart(input: Groups_Input, accountId: String!, templateId: String!, templatePart: String!): Groups \\"Shares a template with the specified members group.\\" @@ -7811,8 +7079,8 @@ input connectFailureFilter_Input { synchronous: String } -\\"Envelope consumer disclosures\\" -input EnvelopeConsumerDisclosures_Input { +\\"Account consumer disclosures\\" +input AccountConsumerDisclosures_Input { \\"A GUID identifying the account associated with the consumer disclosure\\" accountEsignId: String \\"Indicates whether the customer can withdraw their acceptance of the consumer disclosure.\\" @@ -7869,315 +7137,94 @@ type contactUpdateResponse { contacts: [Contacts] } -input contactModRequest_Input { +input contactUpdateResponse_Input { contacts: [Contacts_Input] } -input Contacts_Input { - \\"The unique identifier of a person in the contacts address book.\\" - contactId: String - contactPhoneNumbers: [contactPhoneNumber_Input] - contactUri: String - emails: [String] - errorDetails: errorDetails_Input - name: String - organization: String - \\"When set to **true**, this custom tab is shared.\\" - shared: String - signingGroup: String - \\"The display name for the signing group. \\\\n\\\\nMaximum Length: 100 characters.\\" - signingGroupName: String -} - -input contactPhoneNumber_Input { - phoneNumber: String - phoneType: String -} - -input customField_Input { - customFieldType: String - errorDetails: errorDetails_Input - \\"An ID used to specify a custom field.\\" - fieldId: String - listItems: [String] - name: String - \\"When set to **true**, the signer is required to fill out this tab\\" - required: String - \\"A boolean indicating if the value should be displayed.\\" - show: String - \\"Specifies the value of the tab.\\" - value: String -} - -type postTransactionsResponse { - documentData: String - transactionSid: String -} - -input EMortgageTransactions_Input { - documentData: String - dptName: String - transactionName: String - transactionTypeName: String -} - -type envelopeSummary { - \\"The envelope ID of the envelope status that failed to post.\\" - envelopeId: String - \\"Indicates the envelope status. Valid values are:\\\\n\\\\n* sent - The envelope is sent to the recipients. \\\\n* created - The envelope is saved as a draft and can be modified and sent later.\\" - status: String - \\"The DateTime that the envelope changed status (i.e. was created or sent.)\\" - statusDateTime: String - uri: String -} - -input envelopeDefinition_Input { - \\"Sets the document reading zones for screen reader applications. This element can only be used if Document Accessibility is enabled for the account.\\" - accessibility: String - \\"When set to **true**, Document Markup is enabled for envelope. Account must have Document Markup enabled to use this\\" - allowMarkup: String - \\"When set to **true**, the recipient can redirect an envelope to a more appropriate recipient.\\" - allowReassign: String - \\"When set to **true**, this enables the Recursive Recipients feature and allows a recipient to appear more than once in the routing order.\\" - allowRecipientRecursion: String - \\"When set to **true**, the envelope is queued for processing and the value of the \`status\` property is set to 'Processing'. Additionally, get status calls return 'Processing' until completed.\\" - asynchronous: String - attachments: [attachment_Input] - attachmentsUri: String - \\"Specifies the Authoritative copy feature. If set to true the Authoritative copy feature is enabled.\\" - authoritativeCopy: String - \\"Specifies whether auto navigation is set for the recipient.\\" - autoNavigation: String - \\"This sets the brand profile format used for the envelope. The value in the string is the brandId associated with the profile. Account branding must be enabled for the account to use this option.\\" - brandId: String - brandLock: String - \\"Retrieves a URI for an endpoint that allows you to easily retrieve certificate information.\\" - certificateUri: String - \\"Specifies the date and time this item was completed.\\" - completedDateTime: String - \\"A complex type that can be added to create envelopes from a combination of DocuSign templates and PDF forms. The basic envelope remains the same, while the Composite Template adds new document and template overlays into the envelope. There can be any number of Composite Template structures in the envelope.\\" - compositeTemplates: [compositeTemplate_Input] - \\"Indicates the date and time the item was created.\\" - createdDateTime: String - customFields: AccountCustomFields_Input - \\"Contains a URI for an endpoint that you can use to retrieve the custom fields.\\" - customFieldsUri: String - \\"The date and time the recipient declined the document.\\" - declinedDateTime: String - \\"Specifies the data and time the item was deleted.\\" - deletedDateTime: String - \\"Reserved: For DocuSign use only.\\" - deliveredDateTime: String - \\"Complex element contains the details on the documents in the envelope.\\" - documents: [document_Input] - documentsCombinedUri: String - \\"Contains a URI for an endpoint that you can use to retrieve the documents.\\" - documentsUri: String - \\"Optional element. This is the same as the email body. If specified it is included in email body for all envelope recipients. This can be a maximum of 10000 characters\\" - emailBlurb: String - emailSettings: EnvelopeEmailSettings_Input - \\"Specifies the subject of the email that is sent to all recipients.\\\\n\\\\nSee [ML:Template Email Subject Merge Fields] for information about adding merge field information to the email subject.\\" - emailSubject: String - \\"When set to **true**, the signer is allowed to print the document and sign it on paper.\\" - enableWetSign: String - \\"When set to **true**, documents with tabs can only be viewed by signers that have a tab on that document. Recipients that have an administrative role (Agent, Editor, or Intermediaries) or informational role (Certified Deliveries or Carbon Copies) can always see all the documents in an envelope, unless they are specifically excluded using this setting when an envelope is sent. Documents that do not have tabs are always visible to all recipients, unless they are specifically excluded using this setting when an envelope is sent.\\\\n\\\\nYour account must have Document Visibility enabled to use this.\\" - enforceSignerVisibility: String - \\"The envelope ID of the envelope status that failed to post.\\" - envelopeId: String - \\"When set to **true**, Envelope ID Stamping is enabled.\\" - envelopeIdStamping: String - \\"Contains a URI for an endpoint that you can use to retrieve the envelope or envelopes.\\" - envelopeUri: String - eventNotification: eventNotification_Input - initialSentDateTime: String - \\"When set to **true**, indicates that this module is enabled on the account.\\" - is21CFRPart11: String - isSignatureProviderEnvelope: String - \\"The date and time the item was last modified.\\" - lastModifiedDateTime: String - lockInformation: EnvelopeLocks_Input - \\"When set to **true**, prevents senders from changing the contents of \`emailBlurb\` and \`emailSubject\` properties for the envelope. \\\\n\\\\nAdditionally, this prevents users from making changes to the contents of \`emailBlurb\` and \`emailSubject\` properties when correcting envelopes. \\\\n\\\\nHowever, if the \`messageLock\` node is set to true**** and the \`emailSubject\` property is empty, senders and correctors are able to add a subject to the envelope.\\" - messageLock: String - notification: notification_Input - \\"Contains a URI for an endpoint that you can use to retrieve the notifications.\\" - notificationUri: String - password: String - \\"Initiates a purge request. Valid values are:\\\\n* documents_queued: Places envelope documents in the purge queue.\\\\n* documents_and_metadata_queued: Places envelope documents and metadata in the purge queue.\\" - purgeState: String - recipients: EnvelopeRecipients_Input - \\"When set to **true**, prevents senders from changing, correcting, or deleting the recipient information for the envelope.\\" - recipientsLock: String - \\"Contains a URI for an endpoint that you can use to retrieve the recipients.\\" - recipientsUri: String - \\"The date and time the envelope was sent.\\" - sentDateTime: String - \\"Specifies the physical location where the signing takes place. It can have two enumeration values; InPerson and Online. The default value is Online.\\" - signingLocation: String - \\"Indicates the envelope status. Valid values are:\\\\n\\\\n* sent - The envelope is sent to the recipients. \\\\n* created - The envelope is saved as a draft and can be modified and sent later.\\" - status: String - \\"The data and time the status changed.\\" - statusChangedDateTime: String - \\"The unique identifier of the template. If this is not provided, DocuSign will generate a value.\\" - templateId: String - \\"Specifies the template recipients. Each roleName in the template must have a recipient assigned to it. This is made up elements:\\\\n\\\\n* email - The recipient's email address.\\\\n* name - The recipient's name.\\\\n* roleName - The template roleName associated with the recipient.\\\\n* clientUserId - Optional, this sets if the signer is This specifies if the recipient is embedded or remote. If the clientUserId is not null then the recipient is embedded. Note that if a ClientUserId is used and the account settings SignerMustHaveAccount or SignerMustLoginToSign are true, an error is generated on sending.\\\\n* defaultRecipient - Optional, When set to **true**, this recipient is the default recipient and any tabs generated by the transformPdfFields option are mapped to this recipient.\\\\n* routingOrder - This specifies the routing order of the recipient in the envelope.\\\\n* accessCode - This optional element specifies the access code a recipient has to enter to validate the identity. This can be a maximum of 50 characters.\\\\n* inPersonSignerName - Optional, if the template role is an in person signer, this is the full legal name of the signer. This can be a maximum of 100 characters.\\\\n* emailNotification - This is an optional complex element that has a role specific emailSubject, emailBody, and language. It follows the same format as the emailNotification node for Recipients.\\\\n* tabs - This allows the tab values to be specified for matching to tabs in the template.\\" - templateRoles: [templateRole_Input] - \\"Contains a URI for an endpoint which you can use to retrieve the templates.\\" - templatesUri: String - \\"Used to identify an envelope. The id is a sender-generated value and is valid in the DocuSign system for 7 days. It is recommended that a transaction ID is used for offline signing to ensure that an envelope is not sent multiple times. The \`transactionId\` property can be used determine an envelope's status (i.e. was it created or not) in cases where the internet connection was lost before the envelope status was returned.\\" - transactionId: String - \\"When set to **true**, the disclosure is shown to recipients in accordance with the account's Electronic Record and Signature Disclosure frequency setting. When set to **false**, the Electronic Record and Signature Disclosure is not shown to any envelope recipients. \\\\n\\\\nIf the \`useDisclosure\` property is not set, then the account's normal disclosure setting is used and the value of the \`useDisclosure\` property is not returned in responses when getting envelope information.\\" - useDisclosure: String - \\"The date and time the envelope or template was voided.\\" - voidedDateTime: String - \\"The reason the envelope or template was voided.\\" - voidedReason: String -} - -\\"Contains information about an attachment.\\" -input attachment_Input { - accessControl: String - attachmentId: String - \\"Specifies the type of the attachment for the recipient.\\" - attachmentType: String - data: String - label: String - name: String - remoteUrl: String -} - -input compositeTemplate_Input { - \\"The identify of this composite template. It is used as a reference when adding document object information. If used, the document's \`content-disposition\` must include the composite template ID to which the document should be added. If a composite template ID is not specified in the content-disposition, the document is applied based on the value of the \`documentId\` property only. If no document object is specified, the composite template inherits the first document.\\" - compositeTemplateId: String - document: document_Input - \\"Zero or more inline templates and their position in the overlay. If supplied, they are overlaid into the envelope in the order of their Sequence value.\\" - inlineTemplates: [inlineTemplate_Input] - pdfMetaDataTemplateSequence: String - \\"0 or more server-side templates and their position in the overlay. If supplied, they are overlaid into the envelope in the order of their Sequence value\\" - serverTemplates: [serverTemplate_Input] -} - -input document_Input { - \\"Reserved: TBD\\" - applyAnchorTabs: String - \\"This string sets the display and behavior properties of\\\\nthe document during signing. The possible values are:\\\\n\\\\n* \`modal\`
\\\\n The document is shown as a supplement action strip\\\\n and can be viewed, downloaded, or printed in a modal window.\\\\n This is the recommended value for supplemental documents. \\\\n\\\\n* \`download\`
\\\\n The document is shown as a supplement action strip\\\\n and can be viewed, downloaded, or printed in a new browser window. \\\\n\\\\n* \`inline\`
\\\\n The document is shown in the normal signing window.\\\\n This value is not used with supplemental documents,\\\\n but is the default value for all other documents.\\" - display: String - \\"The document's bytes. This field can be used to include a base64 version of the document bytes within an envelope definition instead of sending the document using a multi-part HTTP request. The maximum document size is smaller if this field is used due to the overhead of the base64 encoding.\\" - documentBase64: String - documentFields: [nameValue_Input] - documentGroup: String - \\"Specifies the document ID number that the tab is placed on. This must refer to an existing Document's ID attribute.\\" - documentId: String - \\"When set to **true**, the document is been already encrypted by the sender for use with the DocuSign Key Manager Security Appliance.\\" - encryptedWithKeyManager: String - \\"The file extension type of the document. If the document is not a PDF it is converted to a PDF.\\" - fileExtension: String - fileFormatHint: String - \\"When set to **true**,\\\\nthe document is included in the combined document download. \\\\nThe default value is **true**.\\" - includeInDownload: String - \\"Matchboxes define areas in a document for document matching when you are creating envelopes. They are only used when you upload and edit a template. \\\\n\\\\nA matchbox consists of 5 elements:\\\\n\\\\n* pageNumber - The document page number on which the matchbox will appear. \\\\n* xPosition - The x position of the matchbox on a page. \\\\n* yPosition - The y position of the matchbox on a page.\\\\n* width - The width of the matchbox. \\\\n* height - The height of the matchbox.\\" - matchBoxes: [matchBox_Input] - name: String - \\"An optional value that sets the direction order used to sort the item list. \\\\n\\\\nValid values are: \\\\n\\\\n* asc = ascending sort order\\\\n* desc = descending sort order\\" - order: String - pages: String - password: String - \\"The file id from the cloud storage service where the document is located. This information is returned using [ML:GET /folders] or [ML:/folders/{folderid}].\\" - remoteUrl: String - \\"Sets how the signer interacts with the supplemental document.\\\\nThe possible values are: \\\\n\\\\n*\\\\t\`no_interaction\`
\\\\n No recipient action is required. \\\\n\\\\n*\\\\t\`view\`
\\\\n The recipient is required to view the document. \\\\n\\\\n*\\\\t\`accept\`
\\\\n The recipient is required to accept the document by selecting accept during signing, but is not required to view the document. \\\\n\\\\n*\\\\t\`view_accept\`
\\\\n The recipient is required to view and accept the document.\\" - signerMustAcknowledge: String - \\"When set to **true**, the sender cannot change any attributes of the recipient. Used only when working with template recipients.\\" - templateLocked: String - \\"When set to **true**, the sender may not remove the recipient. Used only when working with template recipients.\\" - templateRequired: String - \\"When set to **true**, PDF form field data is transformed into document tab values when the PDF form field name matches the DocuSign custom tab tabLabel. The resulting PDF form data is also returned in the PDF meta data when requesting the document PDF. See the [ML:Transform PDF Fields] section for more information about how fields are transformed into DocuSign tabs.\\" - transformPdfFields: String - uri: String -} - -input matchBox_Input { - \\"Height of the tab in pixels.\\" - height: Int - \\"Specifies the page number on which the tab is located.\\\\nMust be 1 for [supplemental documents][supdocs].\\\\n\\\\n[supdocs]: /esign/guide/appendix/glossary.html#supplemental-documents\\" - pageNumber: Int - \\"Width of the tab in pixels.\\" - width: Int - \\"This indicates the horizontal offset of the object on the page.\\\\nDocuSign uses 72 DPI when determining position.\\\\nRequired. May be zero.\\" - xPosition: Int - \\"This indicates the vertical offset of the object on the page. DocuSign uses 72 DPI when determining position.\\" - yPosition: Int -} - -input inlineTemplate_Input { - customFields: AccountCustomFields_Input - \\"Complex element contains the details on the documents in the envelope.\\" - documents: [document_Input] - envelope: Envelopes_Input - recipients: EnvelopeRecipients_Input - \\"Specifies the order in which templates are overlaid.\\" - sequence: String -} - -\\"Custom Fields\\" -input AccountCustomFields_Input { - \\"An array of list custom fields.\\" - listCustomFields: [listCustomField_Input] - \\"An array of text custom fields.\\" - textCustomFields: [textCustomField_Input] +input Contacts_Input { + \\"The unique identifier of a person in the contacts address book.\\" + contactId: String + contactPhoneNumbers: [contactPhoneNumber_Input] + contactUri: String + emails: [String] + errorDetails: errorDetails_Input + name: String + organization: String + \\"When set to **true**, this custom tab is shared.\\" + shared: String + signingGroup: String + \\"The display name for the signing group. \\\\n\\\\nMaximum Length: 100 characters.\\" + signingGroupName: String } -input listCustomField_Input { - \\"If merge field's are being used, specifies the type of the merge field. The only supported value is **salesforce**.\\" - configurationType: String +input contactPhoneNumber_Input { + phoneNumber: String + phoneType: String +} + +input customField_Input { + customFieldType: String errorDetails: errorDetails_Input \\"An ID used to specify a custom field.\\" fieldId: String listItems: [String] - \\"The name of the custom field.\\" name: String \\"When set to **true**, the signer is required to fill out this tab\\" required: String \\"A boolean indicating if the value should be displayed.\\" show: String - \\"The value of the custom field.\\\\n\\\\nMaximum Length: 100 characters.\\" + \\"Specifies the value of the tab.\\" value: String } -input textCustomField_Input { - \\"If merge field's are being used, specifies the type of the merge field. The only supported value is **salesforce**.\\" - configurationType: String - errorDetails: errorDetails_Input - \\"An ID used to specify a custom field.\\" - fieldId: String - \\"The name of the custom field.\\" - name: String - \\"When set to **true**, the signer is required to fill out this tab\\" - required: String - \\"A boolean indicating if the value should be displayed.\\" - show: String - \\"The value of the custom field.\\" - value: String +type postTransactionsResponse { + documentData: String + transactionSid: String } -\\"Envelope creation, management\\" -input Envelopes_Input { +input EMortgageTransactions_Input { + documentData: String + dptName: String + transactionName: String + transactionTypeName: String +} + +type envelopeSummary { + \\"The envelope ID of the envelope status that failed to post.\\" + envelopeId: String + \\"Indicates the envelope status. Valid values are:\\\\n\\\\n* sent - The envelope is sent to the recipients. \\\\n* created - The envelope is saved as a draft and can be modified and sent later.\\" + status: String + \\"The DateTime that the envelope changed status (i.e. was created or sent.)\\" + statusDateTime: String + uri: String +} + +input envelopeDefinition_Input { + \\"Sets the document reading zones for screen reader applications. This element can only be used if Document Accessibility is enabled for the account.\\" + accessibility: String \\"When set to **true**, Document Markup is enabled for envelope. Account must have Document Markup enabled to use this\\" allowMarkup: String \\"When set to **true**, the recipient can redirect an envelope to a more appropriate recipient.\\" allowReassign: String + \\"When set to **true**, this enables the Recursive Recipients feature and allows a recipient to appear more than once in the routing order.\\" + allowRecipientRecursion: String \\"When set to **true**, the envelope is queued for processing and the value of the \`status\` property is set to 'Processing'. Additionally, get status calls return 'Processing' until completed.\\" asynchronous: String + attachments: [attachment_Input] attachmentsUri: String \\"Specifies the Authoritative copy feature. If set to true the Authoritative copy feature is enabled.\\" authoritativeCopy: String \\"Specifies whether auto navigation is set for the recipient.\\" autoNavigation: String - \\"The unique identifier of a brand.\\" + \\"This sets the brand profile format used for the envelope. The value in the string is the brandId associated with the profile. Account branding must be enabled for the account to use this option.\\" brandId: String brandLock: String \\"Retrieves a URI for an endpoint that allows you to easily retrieve certificate information.\\" certificateUri: String \\"Specifies the date and time this item was completed.\\" completedDateTime: String + \\"A complex type that can be added to create envelopes from a combination of DocuSign templates and PDF forms. The basic envelope remains the same, while the Composite Template adds new document and template overlays into the envelope. There can be any number of Composite Template structures in the envelope.\\" + compositeTemplates: [compositeTemplate_Input] \\"Indicates the date and time the item was created.\\" createdDateTime: String customFields: AccountCustomFields_Input @@ -8189,10 +7236,12 @@ input Envelopes_Input { deletedDateTime: String \\"Reserved: For DocuSign use only.\\" deliveredDateTime: String + \\"Complex element contains the details on the documents in the envelope.\\" + documents: [document_Input] documentsCombinedUri: String \\"Contains a URI for an endpoint that you can use to retrieve the documents.\\" documentsUri: String - \\"This is the same as the email body. If specified it is included in email body for all envelope recipients.\\" + \\"Optional element. This is the same as the email body. If specified it is included in email body for all envelope recipients. This can be a maximum of 10000 characters\\" emailBlurb: String emailSettings: EnvelopeEmailSettings_Input \\"Specifies the subject of the email that is sent to all recipients.\\\\n\\\\nSee [ML:Template Email Subject Merge Fields] for information about adding merge field information to the email subject.\\" @@ -8207,493 +7256,349 @@ input Envelopes_Input { envelopeIdStamping: String \\"Contains a URI for an endpoint that you can use to retrieve the envelope or envelopes.\\" envelopeUri: String - initialSentDateTime: String - \\"When set to **true**, indicates that this module is enabled on the account.\\" - is21CFRPart11: String - isSignatureProviderEnvelope: String - \\"The date and time the item was last modified.\\" - lastModifiedDateTime: String - lockInformation: EnvelopeLocks_Input - \\"When set to **true**, prevents senders from changing the contents of \`emailBlurb\` and \`emailSubject\` properties for the envelope. \\\\n\\\\nAdditionally, this prevents users from making changes to the contents of \`emailBlurb\` and \`emailSubject\` properties when correcting envelopes. \\\\n\\\\nHowever, if the \`messageLock\` node is set to true**** and the \`emailSubject\` property is empty, senders and correctors are able to add a subject to the envelope.\\" - messageLock: String - notification: notification_Input - \\"Contains a URI for an endpoint that you can use to retrieve the notifications.\\" - notificationUri: String - purgeState: String - recipients: EnvelopeRecipients_Input - \\"When set to **true**, prevents senders from changing, correcting, or deleting the recipient information for the envelope.\\" - recipientsLock: String - \\"Contains a URI for an endpoint that you can use to retrieve the recipients.\\" - recipientsUri: String - \\"The date and time the envelope was sent.\\" - sentDateTime: String - \\"Specifies the physical location where the signing takes place. It can have two enumeration values; InPerson and Online. The default value is Online.\\" - signingLocation: String - \\"Indicates the envelope status. Valid values are:\\\\n\\\\n* created - The envelope is created as a draft. It can be modified and sent later.\\\\n* sent - The envelope is sent to the recipients.\\" - status: String - \\"The data and time the status changed.\\" - statusChangedDateTime: String - \\"Contains a URI for an endpoint which you can use to retrieve the templates.\\" - templatesUri: String - \\"Used to identify an envelope. The id is a sender-generated value and is valid in the DocuSign system for 7 days. It is recommended that a transaction ID is used for offline signing to ensure that an envelope is not sent multiple times. The \`transactionId\` property can be used determine an envelope's status (i.e. was it created or not) in cases where the internet connection was lost before the envelope status was returned.\\" - transactionId: String - \\"When set to **true**, the disclosure is shown to recipients in accordance with the account's Electronic Record and Signature Disclosure frequency setting. When set to **false**, the Electronic Record and Signature Disclosure is not shown to any envelope recipients. \\\\n\\\\nIf the \`useDisclosure\` property is not set, then the account's normal disclosure setting is used and the value of the \`useDisclosure\` property is not returned in responses when getting envelope information.\\" - useDisclosure: String - \\"The date and time the envelope or template was voided.\\" - voidedDateTime: String - \\"The reason the envelope or template was voided.\\" - voidedReason: String -} - -\\"Envelope email settings\\" -input EnvelopeEmailSettings_Input { - \\"A list of email addresses that receive a copy of all email communications for an envelope. You can use this for archiving purposes.\\" - bccEmailAddresses: [bccEmailAddress_Input] - replyEmailAddressOverride: String - replyEmailNameOverride: String -} - -\\"Contains information about the BCC email address.\\" -input bccEmailAddress_Input { - \\"Only users with canManageAccount setting can use this option. An array of up to 5 email addresses the envelope is sent to as a BCC email. \\\\n \\\\nExample: If your account has BCC for Email Archive set up for the email address 'archive@mycompany.com' and you send an envelope using the BCC Email Override to send a BCC email to 'salesarchive@mycompany.com', then a copy of the envelope is only sent to the 'salesarchive@mycompany.com' email address.\\" - bccEmailAddressId: String - \\"Specifies the BCC email address. DocuSign verifies that the email format is correct, but does not verify that the email is active.Using this overrides the BCC for Email Archive information setting for this envelope.\\\\n\\\\nMaximum of length: 100 characters.\\" - email: String -} - -\\"Envelope locks\\" -input EnvelopeLocks_Input { - errorDetails: errorDetails_Input - \\"Sets the time, in seconds, until the lock expires when there is no activity on the envelope.\\\\n\\\\nIf no value is entered, then the default value of 300 seconds is used. The maximum value is 1,800 seconds.\\\\n\\\\nThe lock duration can be extended.\\" - lockDurationInSeconds: String - \\"A unique identifier provided to the owner of the envelope lock. Used to prove ownership of the lock.\\" - lockToken: String - \\"The type of envelope lock. Currently \\\\\\"edit\\\\\\" is the only supported type.\\" - lockType: String - \\"Specifies the friendly name of the application that is locking the envelope.\\" - lockedByApp: String - lockedByUser: userInfo_Input - \\"The datetime until the envelope lock expires.\\" - lockedUntilDateTime: String - \\"Reserved for future use.\\\\n\\\\nIndicates whether a scratchpad is used for editing information.\\" - useScratchPad: String -} - -\\"A complex element that specifies the notification options for the envelope. It consists of:\\\\n\\\\n* useAccountDefaults - When set to **true**, the account default notification settings are used for the envelope. \\\\n* reminders - A complex element that specifies reminder settings for the envelope. It consists of: \\\\n\\\\n * reminderEnabled - When set to **true**, a reminder message is sent to the recipient.\\\\n * reminderDelay - An interger that sets the number of days after the recipient receives the envelope that reminder emails are sent to the recipient. \\\\n * reminderFrequency - An interger that sets the interval, in days, between reminder emails. \\\\n\\\\n* expirations - A complex element that specifies the expiration settings for the envelope. It consists of:\\\\n\\\\n * expireEnabled - When set to **true**, the envelope expires (is no longer available for signing) in the set number of days. If false, the account default setting is used. If the account does not have an expiration setting, the DocuSign default value of 120 days is used. \\\\n * expireAfter - An integer that sets the number of days the envelope is active.\\\\n * expireWarn - An integer that sets the number of days before envelope expiration that an expiration warning email is sent to the recipient. If set to 0 (zero), no warning email is sent.\\" -input notification_Input { - expirations: expirations_Input - reminders: reminders_Input - \\"When set to **true**, the account default notification settings are used for the envelope.\\" - useAccountDefaults: String -} - -\\"A complex element that specifies the expiration settings for the envelope.\\" -input expirations_Input { - \\"An integer that sets the number of days the envelope is active.\\" - expireAfter: String - \\"When set to **true**, the envelope expires (is no longer available for signing) in the set number of days. If false, the account default setting is used. If the account does not have an expiration setting, the DocuSign default value of 120 days is used.\\" - expireEnabled: String - \\"An integer that sets the number of days before envelope expiration that an expiration warning email is sent to the recipient. If set to 0 (zero), no warning email is sent.\\" - expireWarn: String -} - -\\"A complex element that specifies reminder settings for the envelope\\" -input reminders_Input { - \\"An interger that sets the number of days after the recipient receives the envelope that reminder emails are sent to the recipient.\\" - reminderDelay: String - \\"When set to **true**, the envelope expires (is no longer available for signing) in the set number of days. If false, the account default setting is used. If the account does not have an expiration setting, the DocuSign default value of 120 days is used.\\" - reminderEnabled: String - \\"An interger that sets the interval, in days, between reminder emails.\\" - reminderFrequency: String -} - -\\"Envelope recipients\\" -input EnvelopeRecipients_Input { - \\"A complex type defining the management and access rights of a recipient assigned assigned as an agent on the document.\\" - agents: [agent_Input] - \\"A complex type containing information about recipients who should receive a copy of the envelope, but does not need to sign it.\\" - carbonCopies: [carbonCopy_Input] - \\"A complex type containing information on a recipient the must receive the completed documents for the envelope to be completed, but the recipient does not need to sign, initial, date, or add information to any of the documents.\\" - certifiedDeliveries: [certifiedDelivery_Input] - currentRoutingOrder: String - \\"A complex type defining the management and access rights of a recipient assigned assigned as an editor on the document.\\" - editors: [editor_Input] - errorDetails: errorDetails_Input - \\"Specifies a signer that is in the same physical location as a DocuSign user who will act as a Signing Host for the transaction. The recipient added is the Signing Host and new separate Signer Name field appears after Sign in person is selected.\\" - inPersonSigners: [inPersonSigner_Input] - \\"Identifies a recipient that can, but is not required to, add name and email information for recipients at the same or subsequent level in the routing order (until subsequent Agents, Editors or Intermediaries recipient types are added).\\" - intermediaries: [intermediary_Input] - \\"The list of recipient event statuses that will trigger Connect to send updates to the url. It can be a two-part list with:\\\\n\\\\n* recipientEventStatusCode - The recipient status, this can be Sent, Delivered, Completed, Declined, AuthenticationFailed, and AutoResponded.\\\\n* includeDocuments - When set to **true**, the envelope time zone information is included in the message.\\" - recipientCount: String - \\"A complex type containing information about the Signer recipient.\\" - signers: [signer_Input] -} - -\\"Contains information about agent recipients.\\" -input agent_Input { - \\"If a value is provided, the recipient must enter the value as the access code to view and sign the envelope. \\\\n\\\\nMaximum Length: 50 characters and it must conform to the account's access code format setting.\\\\n\\\\nIf blank, but the signer \`accessCode\` property is set in the envelope, then that value is used.\\\\n\\\\nIf blank and the signer \`accessCode\` property is not set, then the access code is not required.\\" - accessCode: String - \\"This Optional attribute indicates that the access code will be added to the email sent to the recipient; this nullifies the Security measure of Access Code on the recipient.\\" - addAccessCodeToEmail: String - \\"Specifies whether the recipient is embedded or remote. \\\\n\\\\nIf the \`clientUserId\` property is not null then the recipient is embedded. Use this field to associate the signer with their userId in your app. Authenticating the user is the responsibility of your app when you use embedded signing.\\\\n\\\\nNote: if the \`clientUserId\` property is set and either \`SignerMustHaveAccount\` or \`SignerMustLoginToSign\` property of the account settings is set to **true**, an error is generated on sending. \\\\n\\\\nMaximum length: 100 characters.\\" - clientUserId: String - \\"An optional array of strings that allows the sender to provide custom data about the recipient. This information is returned in the envelope status but otherwise not used by DocuSign. Each customField string can be a maximum of 100 characters.\\" - customFields: [String] - \\"The date and time the recipient declined the document.\\" - declinedDateTime: String - \\"The reason the recipient declined the document.\\" - declinedReason: String - \\"Reserved: For DocuSign use only.\\" - deliveredDateTime: String - \\"Reserved: For DocuSign use only.\\" - deliveryMethod: String - documentVisibility: [documentVisibility_Input] - \\"Email id of the recipient. Notification of the document to sign is sent to this email id. \\\\n\\\\nMaximum length: 100 characters.\\" - email: String - emailNotification: recipientEmailNotification_Input - emailRecipientPostSigningURL: String - \\"Specifies a sender provided valid URL string for redirecting an embedded recipient. When using this option, the embedded recipient still receives an email from DocuSign, just as a remote recipient would. When the document link in the email is clicked the recipient is redirected, through DocuSign, to the supplied URL to complete their actions. When routing to the URL, the sender's system (the server responding to the URL) must request a recipient token to launch a signing session. \\\\n\\\\nIf set to \`SIGN_AT_DOCUSIGN\`, the recipient is directed to an embedded signing or viewing process directly at DocuSign. The signing or viewing action is initiated by the DocuSign system and the transaction activity and Certificate of Completion records will reflect this. In all other ways the process is identical to an embedded signing or viewing operation that is launched by any partner.\\\\n\\\\nIt is important to remember that in a typical embedded workflow the authentication of an embedded recipient is the responsibility of the sending application, DocuSign expects that senders will follow their own process for establishing the recipient's identity. In this workflow the recipient goes through the sending application before the embedded signing or viewing process in initiated. However, when the sending application sets \`EmbeddedRecipientStartURL=SIGN_AT_DOCUSIGN\`, the recipient goes directly to the embedded signing or viewing process bypassing the sending application and any authentication steps the sending application would use. In this case, DocuSign recommends that you use one of the normal DocuSign authentication features (Access Code, Phone Authentication, SMS Authentication, etc.) to verify the identity of the recipient.\\\\n\\\\nIf the \`clientUserId\` property is NOT set, and the \`embeddedRecipientStartURL\` is set, DocuSign will ignore the redirect URL and launch the standard signing process for the email recipient. Information can be appended to the embedded recipient start URL using merge fields. The available merge fields items are: envelopeId, recipientId, recipientName, recipientEmail, and customFields. The \`customFields\` property must be set fort the recipient or envelope. The merge fields are enclosed in double brackets. \\\\n\\\\n*Example*: \\\\n\\\\n\`http://senderHost/[[mergeField1]]/ beginSigningSession? [[mergeField2]]&[[mergeField3]]\`\\" - embeddedRecipientStartURL: String - errorDetails: errorDetails_Input - \\"Specifies the documents that are not visible to this recipient. Document Visibility must be enabled for the account and the \`enforceSignerVisibility\` property must be set to **true** for the envelope to use this.\\\\n\\\\nWhen enforce signer visibility is enabled, documents with tabs can only be viewed by signers that have a tab on that document. Recipients that have an administrative role (Agent, Editor, or Intermediaries) or informational role (Certified Deliveries or Carbon Copies) can always see all the documents in an envelope, unless they are specifically excluded using this setting when an envelope is sent. Documents that do not have tabs are always visible to all recipients, unless they are specifically excluded using this setting when an envelope is sent.\\" - excludedDocuments: [String] - \\"Reserved:\\" - faxNumber: String - \\"Specifies authentication check by name. The names used here must be the same as the authentication type names used by the account (these name can also be found in the web console sending interface in the Identify list for a recipient,) This overrides any default authentication setting.\\\\n\\\\n*Example*: Your account has ID Check and SMS Authentication available and in the web console Identify list these appear as 'ID Check $' and 'SMS Auth $'. To use ID check in an envelope, the idCheckConfigurationName should be 'ID Check '. If you wanted to use SMS, it would be 'SMS Auth $' and you would need to add you would need to add phone number information to the \`smsAuthentication\` node.\\" - idCheckConfigurationName: String - idCheckInformationInput: idCheckInformationInput_Input - \\"When set to **true** and the envelope recipient creates a DocuSign account after signing, the Manage Account Email Notification settings are used as the default settings for the recipient's account.\\" - inheritEmailNotificationConfiguration: String - name: String - \\"A note sent to the recipient in the signing email.\\\\nThis note is unique to this recipient.\\\\nIn the user interface,\\\\nit appears near the upper left corner\\\\nof the document\\\\non the signing screen.\\\\n\\\\nMaximum Length: 1000 characters.\\" - note: String - phoneAuthentication: recipientPhoneAuthentication_Input - \\"Reserved:\\" - recipientAttachments: [recipientAttachment_Input] - recipientAuthenticationStatus: authenticationStatus_Input - \\"Unique for the recipient. It is used by the tab element to indicate which recipient is to sign the Document.\\" - recipientId: String - recipientIdGuid: String - \\"When set to **true**, the recipient is required to use the specified ID check method (including Phone and SMS authentication) to validate their identity.\\" - requireIdLookup: String - \\"Optional element. Specifies the role name associated with the recipient.

This is required when working with template recipients.\\" - roleName: String - \\"Specifies the routing order of the recipient in the envelope.\\" - routingOrder: String - samlAuthentication: recipientSAMLAuthentication_Input + eventNotification: eventNotification_Input + initialSentDateTime: String + \\"When set to **true**, indicates that this module is enabled on the account.\\" + is21CFRPart11: String + isSignatureProviderEnvelope: String + \\"The date and time the item was last modified.\\" + lastModifiedDateTime: String + lockInformation: EnvelopeLocks_Input + \\"When set to **true**, prevents senders from changing the contents of \`emailBlurb\` and \`emailSubject\` properties for the envelope. \\\\n\\\\nAdditionally, this prevents users from making changes to the contents of \`emailBlurb\` and \`emailSubject\` properties when correcting envelopes. \\\\n\\\\nHowever, if the \`messageLock\` node is set to true**** and the \`emailSubject\` property is empty, senders and correctors are able to add a subject to the envelope.\\" + messageLock: String + notification: notification_Input + \\"Contains a URI for an endpoint that you can use to retrieve the notifications.\\" + notificationUri: String + password: String + \\"Initiates a purge request. Valid values are:\\\\n* documents_queued: Places envelope documents in the purge queue.\\\\n* documents_and_metadata_queued: Places envelope documents and metadata in the purge queue.\\" + purgeState: String + recipients: EnvelopeRecipients_Input + \\"When set to **true**, prevents senders from changing, correcting, or deleting the recipient information for the envelope.\\" + recipientsLock: String + \\"Contains a URI for an endpoint that you can use to retrieve the recipients.\\" + recipientsUri: String \\"The date and time the envelope was sent.\\" sentDateTime: String - \\"Reserved: For DocuSign use only.\\" - signedDateTime: String - \\"When set to **true** and the feature is enabled in the sender's account, the signing recipient is required to draw signatures and initials at each signature/initial tab ( instead of adopting a signature/initial style or only drawing a signature/initial once).\\" - signingGroupId: String - \\"The display name for the signing group. \\\\n\\\\nMaximum Length: 100 characters.\\" - signingGroupName: String - \\"A complex type that contains information about users in the signing group.\\" - signingGroupUsers: [userInfo_Input] - smsAuthentication: recipientSMSAuthentication_Input - \\"Lists the social ID type that can be used for recipient authentication.\\" - socialAuthentications: [socialAuthentication_Input] + \\"Specifies the physical location where the signing takes place. It can have two enumeration values; InPerson and Online. The default value is Online.\\" + signingLocation: String \\"Indicates the envelope status. Valid values are:\\\\n\\\\n* sent - The envelope is sent to the recipients. \\\\n* created - The envelope is saved as a draft and can be modified and sent later.\\" status: String - \\"When set to **true**, the sender cannot change any attributes of the recipient. Used only when working with template recipients.\\" - templateLocked: String - \\"When set to **true**, the sender may not remove the recipient. Used only when working with template recipients.\\" - templateRequired: String - totalTabCount: String - \\"The user ID of the user being accessed. Generally this is the user ID of the authenticated user, but if the authenticated user is an Admin on the account, this may be another user the Admin user is accessing.\\" - userId: String -} - -input documentVisibility_Input { - \\"Specifies the document ID number that the tab is placed on. This must refer to an existing Document's ID attribute.\\" - documentId: String - errorDetails: errorDetails_Input - \\"Unique for the recipient. It is used by the tab element to indicate which recipient is to sign the Document.\\" - recipientId: String - rights: String - visible: String + \\"The data and time the status changed.\\" + statusChangedDateTime: String + \\"The unique identifier of the template. If this is not provided, DocuSign will generate a value.\\" + templateId: String + \\"Specifies the template recipients. Each roleName in the template must have a recipient assigned to it. This is made up elements:\\\\n\\\\n* email - The recipient's email address.\\\\n* name - The recipient's name.\\\\n* roleName - The template roleName associated with the recipient.\\\\n* clientUserId - Optional, this sets if the signer is This specifies if the recipient is embedded or remote. If the clientUserId is not null then the recipient is embedded. Note that if a ClientUserId is used and the account settings SignerMustHaveAccount or SignerMustLoginToSign are true, an error is generated on sending.\\\\n* defaultRecipient - Optional, When set to **true**, this recipient is the default recipient and any tabs generated by the transformPdfFields option are mapped to this recipient.\\\\n* routingOrder - This specifies the routing order of the recipient in the envelope.\\\\n* accessCode - This optional element specifies the access code a recipient has to enter to validate the identity. This can be a maximum of 50 characters.\\\\n* inPersonSignerName - Optional, if the template role is an in person signer, this is the full legal name of the signer. This can be a maximum of 100 characters.\\\\n* emailNotification - This is an optional complex element that has a role specific emailSubject, emailBody, and language. It follows the same format as the emailNotification node for Recipients.\\\\n* tabs - This allows the tab values to be specified for matching to tabs in the template.\\" + templateRoles: [templateRole_Input] + \\"Contains a URI for an endpoint which you can use to retrieve the templates.\\" + templatesUri: String + \\"Used to identify an envelope. The id is a sender-generated value and is valid in the DocuSign system for 7 days. It is recommended that a transaction ID is used for offline signing to ensure that an envelope is not sent multiple times. The \`transactionId\` property can be used determine an envelope's status (i.e. was it created or not) in cases where the internet connection was lost before the envelope status was returned.\\" + transactionId: String + \\"When set to **true**, the disclosure is shown to recipients in accordance with the account's Electronic Record and Signature Disclosure frequency setting. When set to **false**, the Electronic Record and Signature Disclosure is not shown to any envelope recipients. \\\\n\\\\nIf the \`useDisclosure\` property is not set, then the account's normal disclosure setting is used and the value of the \`useDisclosure\` property is not returned in responses when getting envelope information.\\" + useDisclosure: String + \\"The date and time the envelope or template was voided.\\" + voidedDateTime: String + \\"The reason the envelope or template was voided.\\" + voidedReason: String } -input recipientEmailNotification_Input { - \\"Specifies the email body of the message sent to the recipient. \\\\n\\\\nMaximum length: 10000 characters.\\" - emailBody: String - \\"Specifies the subject of the email that is sent to all recipients.\\\\n\\\\nSee [ML:Template Email Subject Merge Fields] for information about adding merge field information to the email subject.\\" - emailSubject: String - \\"The language to be used with your custom notification email. The supported languages, with the language value shown in parenthesis, are: Arabic (ar), Bahasa Indonesia (id), Bahasa Melayu (ms) Bulgarian (bg), Czech (cs), Chinese Simplified (zh_CN), Chinese Traditional (zh_TW), Croatian (hr), Danish (da), Dutch (nl), English US (en), English UK (en_GB), Estonian (et), Farsi (fa), Finnish (fi), French (fr), French Canada (fr_CA), German (de), Greek (el), Hebrew (he), Hindi (hi), Hungarian (hu), Italian (it), Japanese (ja), Korean (ko), Latvian (lv), Lithuanian (lt), Norwegian (no), Polish (pl), Portuguese (pt), Portuguese Brazil (pt_BR), Romanian (ro),Russian (ru), Serbian (sr), Slovak (sk), Slovenian (sl), Spanish (es),Spanish Latin America (es_MX), Swedish (sv), Thai (th), Turkish (tr), Ukrainian (uk), and Vietnamese (vi).\\" - supportedLanguage: String +\\"Contains information about an attachment.\\" +input attachment_Input { + accessControl: String + attachmentId: String + \\"Specifies the type of the attachment for the recipient.\\" + attachmentType: String + data: String + label: String + name: String + remoteUrl: String } -\\"A complex element that contains input information related to a recipient ID check. It can include the following information.\\\\n\\\\naddressInformationInput: Used to set recipient address information and consists of:\\\\n\\\\n* addressInformation: consists of six elements, with stree2 and zipPlus4 being optional. The elements are: street1, street2, city, state, zip, zipPlus4. The maximum length of each element is: street1/street2 = 150 characters, city = 50 characters, state = 2 characters, and zip/zipPlus4 = 20 characters.\\\\n* displayLevelCode: Specifies the display level for the recipient. Values are: ReadOnly, Editable, or DoNotDisplay.\\\\n* receiveInResponse: A Boolean element that specifies if the information needs to be returned in the response.\\\\n\\\\ndobInformationInput: Used to set recipient date of birth information and consists of:\\\\n\\\\n* dateOfBirth: Specifies the recipient's date, month and year of birth.\\\\n* displayLevelCode: Specifies the display level for the recipient. Values are: ReadOnly, Editable, or DoNotDisplay.\\\\n* receiveInResponse: A Boolean element that specifies if the information needs to be returned in the response.\\\\n\\\\nssn4InformationInput: Used to set the last four digits of the recipient's SSN information and consists of:\\\\n\\\\n* ssn4: Specifies the last four digits of the recipient's SSN.\\\\n* displayLevelCode: Specifies the display level for the recipient. Values are: ReadOnly, Editable, or DoNotDisplay.\\\\n* receiveInResponse: A Boolean element that specifies if the information needs to be returned in the response.\\\\n\\\\nssn9InformationInput: Used to set the recipient's SSN information. Note that the ssn9 information can never be returned in the response. The ssn9 input consists of: \\\\n* ssn9: Specifies the recipient's SSN.\\\\n* displayLevelCode: Specifies the display level for the recipient. Values are: ReadOnly, Editable, or DoNotDisplay.\\" -input idCheckInformationInput_Input { - addressInformationInput: addressInformationInput_Input - dobInformationInput: dobInformationInput_Input - ssn4InformationInput: ssn4InformationInput_Input - ssn9InformationInput: ssn9InformationInput_Input +input compositeTemplate_Input { + \\"The identify of this composite template. It is used as a reference when adding document object information. If used, the document's \`content-disposition\` must include the composite template ID to which the document should be added. If a composite template ID is not specified in the content-disposition, the document is applied based on the value of the \`documentId\` property only. If no document object is specified, the composite template inherits the first document.\\" + compositeTemplateId: String + document: document_Input + \\"Zero or more inline templates and their position in the overlay. If supplied, they are overlaid into the envelope in the order of their Sequence value.\\" + inlineTemplates: [inlineTemplate_Input] + pdfMetaDataTemplateSequence: String + \\"0 or more server-side templates and their position in the overlay. If supplied, they are overlaid into the envelope in the order of their Sequence value\\" + serverTemplates: [serverTemplate_Input] } -\\"Contains address input information.\\" -input addressInformationInput_Input { - addressInformation: addressInformation_Input - \\"Specifies the display level for the recipient. \\\\nValid values are: \\\\n\\\\n* ReadOnly\\\\n* Editable\\\\n* DoNotDisplay\\" - displayLevelCode: String - \\"When set to **true**, the information needs to be returned in the response.\\" - receiveInResponse: String +input document_Input { + \\"Reserved: TBD\\" + applyAnchorTabs: String + \\"This string sets the display and behavior properties of\\\\nthe document during signing. The possible values are:\\\\n\\\\n* \`modal\`
\\\\n The document is shown as a supplement action strip\\\\n and can be viewed, downloaded, or printed in a modal window.\\\\n This is the recommended value for supplemental documents. \\\\n\\\\n* \`download\`
\\\\n The document is shown as a supplement action strip\\\\n and can be viewed, downloaded, or printed in a new browser window. \\\\n\\\\n* \`inline\`
\\\\n The document is shown in the normal signing window.\\\\n This value is not used with supplemental documents,\\\\n but is the default value for all other documents.\\" + display: String + \\"The document's bytes. This field can be used to include a base64 version of the document bytes within an envelope definition instead of sending the document using a multi-part HTTP request. The maximum document size is smaller if this field is used due to the overhead of the base64 encoding.\\" + documentBase64: String + documentFields: [nameValue_Input] + documentGroup: String + \\"Specifies the document ID number that the tab is placed on. This must refer to an existing Document's ID attribute.\\" + documentId: String + \\"When set to **true**, the document is been already encrypted by the sender for use with the DocuSign Key Manager Security Appliance.\\" + encryptedWithKeyManager: String + \\"The file extension type of the document. If the document is not a PDF it is converted to a PDF.\\" + fileExtension: String + fileFormatHint: String + \\"When set to **true**,\\\\nthe document is included in the combined document download. \\\\nThe default value is **true**.\\" + includeInDownload: String + \\"Matchboxes define areas in a document for document matching when you are creating envelopes. They are only used when you upload and edit a template. \\\\n\\\\nA matchbox consists of 5 elements:\\\\n\\\\n* pageNumber - The document page number on which the matchbox will appear. \\\\n* xPosition - The x position of the matchbox on a page. \\\\n* yPosition - The y position of the matchbox on a page.\\\\n* width - The width of the matchbox. \\\\n* height - The height of the matchbox.\\" + matchBoxes: [matchBox_Input] + name: String + \\"An optional value that sets the direction order used to sort the item list. \\\\n\\\\nValid values are: \\\\n\\\\n* asc = ascending sort order\\\\n* desc = descending sort order\\" + order: String + pages: String + password: String + \\"The file id from the cloud storage service where the document is located. This information is returned using [ML:GET /folders] or [ML:/folders/{folderid}].\\" + remoteUrl: String + \\"Sets how the signer interacts with the supplemental document.\\\\nThe possible values are: \\\\n\\\\n*\\\\t\`no_interaction\`
\\\\n No recipient action is required. \\\\n\\\\n*\\\\t\`view\`
\\\\n The recipient is required to view the document. \\\\n\\\\n*\\\\t\`accept\`
\\\\n The recipient is required to accept the document by selecting accept during signing, but is not required to view the document. \\\\n\\\\n*\\\\t\`view_accept\`
\\\\n The recipient is required to view and accept the document.\\" + signerMustAcknowledge: String + \\"When set to **true**, the sender cannot change any attributes of the recipient. Used only when working with template recipients.\\" + templateLocked: String + \\"When set to **true**, the sender may not remove the recipient. Used only when working with template recipients.\\" + templateRequired: String + \\"When set to **true**, PDF form field data is transformed into document tab values when the PDF form field name matches the DocuSign custom tab tabLabel. The resulting PDF form data is also returned in the PDF meta data when requesting the document PDF. See the [ML:Transform PDF Fields] section for more information about how fields are transformed into DocuSign tabs.\\" + transformPdfFields: String + uri: String } -\\"Complex type containing:\\\\n\\\\n* dateOfBirth\\\\n* displayLevelCode\\\\n* receiveInResponse\\" -input dobInformationInput_Input { - \\"Specifies the recipient's date, month, and year of birth.\\" - dateOfBirth: String - \\"Specifies the display level for the recipient. \\\\nValid values are: \\\\n\\\\n* ReadOnly\\\\n* Editable\\\\n* DoNotDisplay\\" - displayLevelCode: String - \\"When set to **true**, the information needs to be returned in the response.\\" - receiveInResponse: String +input matchBox_Input { + \\"Height of the tab in pixels.\\" + height: Int + \\"Specifies the page number on which the tab is located.\\\\nMust be 1 for [supplemental documents][supdocs].\\\\n\\\\n[supdocs]: /esign/guide/appendix/glossary.html#supplemental-documents\\" + pageNumber: Int + \\"Width of the tab in pixels.\\" + width: Int + \\"This indicates the horizontal offset of the object on the page.\\\\nDocuSign uses 72 DPI when determining position.\\\\nRequired. May be zero.\\" + xPosition: Int + \\"This indicates the vertical offset of the object on the page. DocuSign uses 72 DPI when determining position.\\" + yPosition: Int } -input ssn4InformationInput_Input { - \\"Specifies the display level for the recipient. \\\\nValid values are: \\\\n\\\\n* ReadOnly\\\\n* Editable\\\\n* DoNotDisplay\\" - displayLevelCode: String - \\"When set to **true**, the information needs to be returned in the response.\\" - receiveInResponse: String - \\"The last four digits of the recipient's Social Security Number (SSN).\\" - ssn4: String +input inlineTemplate_Input { + customFields: AccountCustomFields_Input + \\"Complex element contains the details on the documents in the envelope.\\" + documents: [document_Input] + envelope: Envelopes_Input + recipients: EnvelopeRecipients_Input + \\"Specifies the order in which templates are overlaid.\\" + sequence: String } -input ssn9InformationInput_Input { - \\"Specifies the display level for the recipient. \\\\nValid values are: \\\\n\\\\n* ReadOnly\\\\n* Editable\\\\n* DoNotDisplay\\" - displayLevelCode: String - \\"The recipient's Social Security Number(SSN).\\" - ssn9: String +\\"Custom Fields\\" +input AccountCustomFields_Input { + \\"An array of list custom fields.\\" + listCustomFields: [listCustomField_Input] + \\"An array of text custom fields.\\" + textCustomFields: [textCustomField_Input] } -\\"A complex type that Contains the elements:\\\\n\\\\n* recipMayProvideNumber - Boolean. When set to **true**, the recipient can use whatever phone number they choose.\\\\n* senderProvidedNumbers - ArrayOfString. A list of phone numbers the recipient can use.\\\\n* recordVoicePrint - Reserved.\\\\n* validateRecipProvidedNumber - Reserved.\\" -input recipientPhoneAuthentication_Input { - \\"Boolean. When set to **true**, the recipient can supply a phone number their choice.\\" - recipMayProvideNumber: String - \\"Reserved.\\" - recordVoicePrint: String - \\"An Array containing a list of phone numbers the recipient may use for SMS text authentication.\\" - senderProvidedNumbers: [String] - \\"Reserved.\\" - validateRecipProvidedNumber: String +input listCustomField_Input { + \\"If merge field's are being used, specifies the type of the merge field. The only supported value is **salesforce**.\\" + configurationType: String + errorDetails: errorDetails_Input + \\"An ID used to specify a custom field.\\" + fieldId: String + listItems: [String] + \\"The name of the custom field.\\" + name: String + \\"When set to **true**, the signer is required to fill out this tab\\" + required: String + \\"A boolean indicating if the value should be displayed.\\" + show: String + \\"The value of the custom field.\\\\n\\\\nMaximum Length: 100 characters.\\" + value: String } -input recipientAttachment_Input { - attachmentId: String - attachmentType: String - data: String - label: String +input textCustomField_Input { + \\"If merge field's are being used, specifies the type of the merge field. The only supported value is **salesforce**.\\" + configurationType: String + errorDetails: errorDetails_Input + \\"An ID used to specify a custom field.\\" + fieldId: String + \\"The name of the custom field.\\" name: String - remoteUrl: String + \\"When set to **true**, the signer is required to fill out this tab\\" + required: String + \\"A boolean indicating if the value should be displayed.\\" + show: String + \\"The value of the custom field.\\" + value: String } -\\"Contains information about the authentication status.\\" -input authenticationStatus_Input { - accessCodeResult: eventResult_Input - ageVerifyResult: eventResult_Input - anySocialIDResult: eventResult_Input - facebookResult: eventResult_Input - googleResult: eventResult_Input - idLookupResult: eventResult_Input - idQuestionsResult: eventResult_Input - linkedinResult: eventResult_Input - liveIDResult: eventResult_Input - ofacResult: eventResult_Input - openIDResult: eventResult_Input - phoneAuthResult: eventResult_Input - sTANPinResult: eventResult_Input - salesforceResult: eventResult_Input - signatureProviderResult: eventResult_Input - smsAuthResult: eventResult_Input - twitterResult: eventResult_Input - yahooResult: eventResult_Input +\\"Envelope creation, management\\" +input Envelopes_Input { + \\"When set to **true**, Document Markup is enabled for envelope. Account must have Document Markup enabled to use this\\" + allowMarkup: String + \\"When set to **true**, the recipient can redirect an envelope to a more appropriate recipient.\\" + allowReassign: String + \\"When set to **true**, the envelope is queued for processing and the value of the \`status\` property is set to 'Processing'. Additionally, get status calls return 'Processing' until completed.\\" + asynchronous: String + attachmentsUri: String + \\"Specifies the Authoritative copy feature. If set to true the Authoritative copy feature is enabled.\\" + authoritativeCopy: String + \\"Specifies whether auto navigation is set for the recipient.\\" + autoNavigation: String + \\"The unique identifier of a brand.\\" + brandId: String + brandLock: String + \\"Retrieves a URI for an endpoint that allows you to easily retrieve certificate information.\\" + certificateUri: String + \\"Specifies the date and time this item was completed.\\" + completedDateTime: String + \\"Indicates the date and time the item was created.\\" + createdDateTime: String + customFields: AccountCustomFields_Input + \\"Contains a URI for an endpoint that you can use to retrieve the custom fields.\\" + customFieldsUri: String + \\"The date and time the recipient declined the document.\\" + declinedDateTime: String + \\"Specifies the data and time the item was deleted.\\" + deletedDateTime: String + \\"Reserved: For DocuSign use only.\\" + deliveredDateTime: String + documentsCombinedUri: String + \\"Contains a URI for an endpoint that you can use to retrieve the documents.\\" + documentsUri: String + \\"This is the same as the email body. If specified it is included in email body for all envelope recipients.\\" + emailBlurb: String + emailSettings: EnvelopeEmailSettings_Input + \\"Specifies the subject of the email that is sent to all recipients.\\\\n\\\\nSee [ML:Template Email Subject Merge Fields] for information about adding merge field information to the email subject.\\" + emailSubject: String + \\"When set to **true**, the signer is allowed to print the document and sign it on paper.\\" + enableWetSign: String + \\"When set to **true**, documents with tabs can only be viewed by signers that have a tab on that document. Recipients that have an administrative role (Agent, Editor, or Intermediaries) or informational role (Certified Deliveries or Carbon Copies) can always see all the documents in an envelope, unless they are specifically excluded using this setting when an envelope is sent. Documents that do not have tabs are always visible to all recipients, unless they are specifically excluded using this setting when an envelope is sent.\\\\n\\\\nYour account must have Document Visibility enabled to use this.\\" + enforceSignerVisibility: String + \\"The envelope ID of the envelope status that failed to post.\\" + envelopeId: String + \\"When set to **true**, Envelope ID Stamping is enabled.\\" + envelopeIdStamping: String + \\"Contains a URI for an endpoint that you can use to retrieve the envelope or envelopes.\\" + envelopeUri: String + initialSentDateTime: String + \\"When set to **true**, indicates that this module is enabled on the account.\\" + is21CFRPart11: String + isSignatureProviderEnvelope: String + \\"The date and time the item was last modified.\\" + lastModifiedDateTime: String + lockInformation: EnvelopeLocks_Input + \\"When set to **true**, prevents senders from changing the contents of \`emailBlurb\` and \`emailSubject\` properties for the envelope. \\\\n\\\\nAdditionally, this prevents users from making changes to the contents of \`emailBlurb\` and \`emailSubject\` properties when correcting envelopes. \\\\n\\\\nHowever, if the \`messageLock\` node is set to true**** and the \`emailSubject\` property is empty, senders and correctors are able to add a subject to the envelope.\\" + messageLock: String + notification: notification_Input + \\"Contains a URI for an endpoint that you can use to retrieve the notifications.\\" + notificationUri: String + purgeState: String + recipients: EnvelopeRecipients_Input + \\"When set to **true**, prevents senders from changing, correcting, or deleting the recipient information for the envelope.\\" + recipientsLock: String + \\"Contains a URI for an endpoint that you can use to retrieve the recipients.\\" + recipientsUri: String + \\"The date and time the envelope was sent.\\" + sentDateTime: String + \\"Specifies the physical location where the signing takes place. It can have two enumeration values; InPerson and Online. The default value is Online.\\" + signingLocation: String + \\"Indicates the envelope status. Valid values are:\\\\n\\\\n* created - The envelope is created as a draft. It can be modified and sent later.\\\\n* sent - The envelope is sent to the recipients.\\" + status: String + \\"The data and time the status changed.\\" + statusChangedDateTime: String + \\"Contains a URI for an endpoint which you can use to retrieve the templates.\\" + templatesUri: String + \\"Used to identify an envelope. The id is a sender-generated value and is valid in the DocuSign system for 7 days. It is recommended that a transaction ID is used for offline signing to ensure that an envelope is not sent multiple times. The \`transactionId\` property can be used determine an envelope's status (i.e. was it created or not) in cases where the internet connection was lost before the envelope status was returned.\\" + transactionId: String + \\"When set to **true**, the disclosure is shown to recipients in accordance with the account's Electronic Record and Signature Disclosure frequency setting. When set to **false**, the Electronic Record and Signature Disclosure is not shown to any envelope recipients. \\\\n\\\\nIf the \`useDisclosure\` property is not set, then the account's normal disclosure setting is used and the value of the \`useDisclosure\` property is not returned in responses when getting envelope information.\\" + useDisclosure: String + \\"The date and time the envelope or template was voided.\\" + voidedDateTime: String + \\"The reason the envelope or template was voided.\\" + voidedReason: String } -input eventResult_Input { - eventTimestamp: String - failureDescription: String - \\"Indicates the envelope status. Valid values are:\\\\n\\\\n* sent - The envelope is sent to the recipients. \\\\n* created - The envelope is saved as a draft and can be modified and sent later.\\" - status: String - vendorFailureStatusCode: String +\\"Envelope email settings\\" +input EnvelopeEmailSettings_Input { + \\"A list of email addresses that receive a copy of all email communications for an envelope. You can use this for archiving purposes.\\" + bccEmailAddresses: [bccEmailAddress_Input] + replyEmailAddressOverride: String + replyEmailNameOverride: String } -\\"Contains the name/value pair information for the SAML assertion attributes:\\\\n\\\\n* name - The name of the SAML assertion attribute.\\\\n* value - The value associated with the named SAML assertion attribute. \\\\n\\\\nYour account must be set up to use SSO to use this.\\" -input recipientSAMLAuthentication_Input { - samlAssertionAttributes: [samlAssertionAttribute_Input] +\\"Contains information about the BCC email address.\\" +input bccEmailAddress_Input { + \\"Only users with canManageAccount setting can use this option. An array of up to 5 email addresses the envelope is sent to as a BCC email. \\\\n \\\\nExample: If your account has BCC for Email Archive set up for the email address 'archive@mycompany.com' and you send an envelope using the BCC Email Override to send a BCC email to 'salesarchive@mycompany.com', then a copy of the envelope is only sent to the 'salesarchive@mycompany.com' email address.\\" + bccEmailAddressId: String + \\"Specifies the BCC email address. DocuSign verifies that the email format is correct, but does not verify that the email is active.Using this overrides the BCC for Email Archive information setting for this envelope.\\\\n\\\\nMaximum of length: 100 characters.\\" + email: String } -input samlAssertionAttribute_Input { +\\"Envelope locks\\" +input EnvelopeLocks_Input { errorDetails: errorDetails_Input - name: String - \\"The initial value of the tab when it was sent to the recipient.\\" - originalValue: String - \\"The value associated with the named SAML assertion attribute\\" - value: String + \\"Sets the time, in seconds, until the lock expires when there is no activity on the envelope.\\\\n\\\\nIf no value is entered, then the default value of 300 seconds is used. The maximum value is 1,800 seconds.\\\\n\\\\nThe lock duration can be extended.\\" + lockDurationInSeconds: String + \\"A unique identifier provided to the owner of the envelope lock. Used to prove ownership of the lock.\\" + lockToken: String + \\"The type of envelope lock. Currently \\\\\\"edit\\\\\\" is the only supported type.\\" + lockType: String + \\"Specifies the friendly name of the application that is locking the envelope.\\" + lockedByApp: String + lockedByUser: userInfo_Input + \\"The datetime until the envelope lock expires.\\" + lockedUntilDateTime: String + \\"Reserved for future use.\\\\n\\\\nIndicates whether a scratchpad is used for editing information.\\" + useScratchPad: String } -\\"Contains the element senderProvidedNumbers which is an Array of phone numbers the recipient can use for SMS text authentication.\\" -input recipientSMSAuthentication_Input { - \\"An Array containing a list of phone numbers the recipient may use for SMS text authentication.\\" - senderProvidedNumbers: [String] +\\"A complex element that specifies the notification options for the envelope. It consists of:\\\\n\\\\n* useAccountDefaults - When set to **true**, the account default notification settings are used for the envelope. \\\\n* reminders - A complex element that specifies reminder settings for the envelope. It consists of: \\\\n\\\\n * reminderEnabled - When set to **true**, a reminder message is sent to the recipient.\\\\n * reminderDelay - An interger that sets the number of days after the recipient receives the envelope that reminder emails are sent to the recipient. \\\\n * reminderFrequency - An interger that sets the interval, in days, between reminder emails. \\\\n\\\\n* expirations - A complex element that specifies the expiration settings for the envelope. It consists of:\\\\n\\\\n * expireEnabled - When set to **true**, the envelope expires (is no longer available for signing) in the set number of days. If false, the account default setting is used. If the account does not have an expiration setting, the DocuSign default value of 120 days is used. \\\\n * expireAfter - An integer that sets the number of days the envelope is active.\\\\n * expireWarn - An integer that sets the number of days before envelope expiration that an expiration warning email is sent to the recipient. If set to 0 (zero), no warning email is sent.\\" +input notification_Input { + expirations: expirations_Input + reminders: reminders_Input + \\"When set to **true**, the account default notification settings are used for the envelope.\\" + useAccountDefaults: String } -input socialAuthentication_Input { - \\"Reserved: TBD\\" - authentication: String +\\"A complex element that specifies the expiration settings for the envelope.\\" +input expirations_Input { + \\"An integer that sets the number of days the envelope is active.\\" + expireAfter: String + \\"When set to **true**, the envelope expires (is no longer available for signing) in the set number of days. If false, the account default setting is used. If the account does not have an expiration setting, the DocuSign default value of 120 days is used.\\" + expireEnabled: String + \\"An integer that sets the number of days before envelope expiration that an expiration warning email is sent to the recipient. If set to 0 (zero), no warning email is sent.\\" + expireWarn: String } -input carbonCopy_Input { - \\"If a value is provided, the recipient must enter the value as the access code to view and sign the envelope. \\\\n\\\\nMaximum Length: 50 characters and it must conform to the account's access code format setting.\\\\n\\\\nIf blank, but the signer \`accessCode\` property is set in the envelope, then that value is used.\\\\n\\\\nIf blank and the signer \`accessCode\` property is not set, then the access code is not required.\\" - accessCode: String - \\"This Optional attribute indicates that the access code will be added to the email sent to the recipient; this nullifies the Security measure of Access Code on the recipient.\\" - addAccessCodeToEmail: String - \\"Specifies whether the recipient is embedded or remote. \\\\n\\\\nIf the \`clientUserId\` property is not null then the recipient is embedded. Use this field to associate the signer with their userId in your app. Authenticating the user is the responsibility of your app when you use embedded signing.\\\\n\\\\nNote: if the \`clientUserId\` property is set and either \`SignerMustHaveAccount\` or \`SignerMustLoginToSign\` property of the account settings is set to **true**, an error is generated on sending. \\\\n\\\\nMaximum length: 100 characters.\\" - clientUserId: String - \\"An optional array of strings that allows the sender to provide custom data about the recipient. This information is returned in the envelope status but otherwise not used by DocuSign. Each customField string can be a maximum of 100 characters.\\" - customFields: [String] - \\"The date and time the recipient declined the document.\\" - declinedDateTime: String - \\"The reason the recipient declined the document.\\" - declinedReason: String - \\"Reserved: For DocuSign use only.\\" - deliveredDateTime: String - \\"Reserved: For DocuSign use only.\\" - deliveryMethod: String - documentVisibility: [documentVisibility_Input] - \\"Email id of the recipient. Notification of the document to sign is sent to this email id. \\\\n\\\\nMaximum length: 100 characters.\\" - email: String - emailNotification: recipientEmailNotification_Input - emailRecipientPostSigningURL: String - \\"Specifies a sender provided valid URL string for redirecting an embedded recipient. When using this option, the embedded recipient still receives an email from DocuSign, just as a remote recipient would. When the document link in the email is clicked the recipient is redirected, through DocuSign, to the supplied URL to complete their actions. When routing to the URL, the sender's system (the server responding to the URL) must request a recipient token to launch a signing session. \\\\n\\\\nIf set to \`SIGN_AT_DOCUSIGN\`, the recipient is directed to an embedded signing or viewing process directly at DocuSign. The signing or viewing action is initiated by the DocuSign system and the transaction activity and Certificate of Completion records will reflect this. In all other ways the process is identical to an embedded signing or viewing operation that is launched by any partner.\\\\n\\\\nIt is important to remember that in a typical embedded workflow the authentication of an embedded recipient is the responsibility of the sending application, DocuSign expects that senders will follow their own process for establishing the recipient's identity. In this workflow the recipient goes through the sending application before the embedded signing or viewing process in initiated. However, when the sending application sets \`EmbeddedRecipientStartURL=SIGN_AT_DOCUSIGN\`, the recipient goes directly to the embedded signing or viewing process bypassing the sending application and any authentication steps the sending application would use. In this case, DocuSign recommends that you use one of the normal DocuSign authentication features (Access Code, Phone Authentication, SMS Authentication, etc.) to verify the identity of the recipient.\\\\n\\\\nIf the \`clientUserId\` property is NOT set, and the \`embeddedRecipientStartURL\` is set, DocuSign will ignore the redirect URL and launch the standard signing process for the email recipient. Information can be appended to the embedded recipient start URL using merge fields. The available merge fields items are: envelopeId, recipientId, recipientName, recipientEmail, and customFields. The \`customFields\` property must be set fort the recipient or envelope. The merge fields are enclosed in double brackets. \\\\n\\\\n*Example*: \\\\n\\\\n\`http://senderHost/[[mergeField1]]/ beginSigningSession? [[mergeField2]]&[[mergeField3]]\`\\" - embeddedRecipientStartURL: String - errorDetails: errorDetails_Input - \\"Specifies the documents that are not visible to this recipient. Document Visibility must be enabled for the account and the \`enforceSignerVisibility\` property must be set to **true** for the envelope to use this.\\\\n\\\\nWhen enforce signer visibility is enabled, documents with tabs can only be viewed by signers that have a tab on that document. Recipients that have an administrative role (Agent, Editor, or Intermediaries) or informational role (Certified Deliveries or Carbon Copies) can always see all the documents in an envelope, unless they are specifically excluded using this setting when an envelope is sent. Documents that do not have tabs are always visible to all recipients, unless they are specifically excluded using this setting when an envelope is sent.\\" - excludedDocuments: [String] - \\"Reserved:\\" - faxNumber: String - \\"Specifies authentication check by name. The names used here must be the same as the authentication type names used by the account (these name can also be found in the web console sending interface in the Identify list for a recipient,) This overrides any default authentication setting.\\\\n\\\\n*Example*: Your account has ID Check and SMS Authentication available and in the web console Identify list these appear as 'ID Check $' and 'SMS Auth $'. To use ID check in an envelope, the idCheckConfigurationName should be 'ID Check '. If you wanted to use SMS, it would be 'SMS Auth $' and you would need to add you would need to add phone number information to the \`smsAuthentication\` node.\\" - idCheckConfigurationName: String - idCheckInformationInput: idCheckInformationInput_Input - \\"When set to **true** and the envelope recipient creates a DocuSign account after signing, the Manage Account Email Notification settings are used as the default settings for the recipient's account.\\" - inheritEmailNotificationConfiguration: String - \\"legal name of the recipient.\\\\n\\\\nMaximum Length: 100 characters.\\" - name: String - \\"A note sent to the recipient in the signing email.\\\\nThis note is unique to this recipient.\\\\nIn the user interface,\\\\nit appears near the upper left corner\\\\nof the document\\\\non the signing screen.\\\\n\\\\nMaximum Length: 1000 characters.\\" - note: String - phoneAuthentication: recipientPhoneAuthentication_Input - \\"Reserved:\\" - recipientAttachments: [recipientAttachment_Input] - recipientAuthenticationStatus: authenticationStatus_Input - \\"Unique for the recipient. It is used by the tab element to indicate which recipient is to sign the Document.\\" - recipientId: String - recipientIdGuid: String - \\"When set to **true**, the recipient is required to use the specified ID check method (including Phone and SMS authentication) to validate their identity.\\" - requireIdLookup: String - \\"Optional element. Specifies the role name associated with the recipient.

This is required when working with template recipients.\\" - roleName: String - \\"Specifies the routing order of the recipient in the envelope.\\" - routingOrder: String - samlAuthentication: recipientSAMLAuthentication_Input - \\"The date and time the envelope was sent.\\" - sentDateTime: String - \\"Reserved: For DocuSign use only.\\" - signedDateTime: String - \\"When set to **true** and the feature is enabled in the sender's account, the signing recipient is required to draw signatures and initials at each signature/initial tab ( instead of adopting a signature/initial style or only drawing a signature/initial once).\\" - signingGroupId: String - \\"The display name for the signing group. \\\\n\\\\nMaximum Length: 100 characters.\\" - signingGroupName: String - \\"A complex type that contains information about users in the signing group.\\" - signingGroupUsers: [userInfo_Input] - smsAuthentication: recipientSMSAuthentication_Input - \\"Lists the social ID type that can be used for recipient authentication.\\" - socialAuthentications: [socialAuthentication_Input] - \\"Indicates the envelope status. Valid values are:\\\\n\\\\n* sent - The envelope is sent to the recipients. \\\\n* created - The envelope is saved as a draft and can be modified and sent later.\\" - status: String - \\"When set to **true**, the sender cannot change any attributes of the recipient. Used only when working with template recipients.\\" - templateLocked: String - \\"When set to **true**, the sender may not remove the recipient. Used only when working with template recipients.\\" - templateRequired: String - totalTabCount: String - \\"The user ID of the user being accessed. Generally this is the user ID of the authenticated user, but if the authenticated user is an Admin on the account, this may be another user the Admin user is accessing.\\" - userId: String +\\"A complex element that specifies reminder settings for the envelope\\" +input reminders_Input { + \\"An interger that sets the number of days after the recipient receives the envelope that reminder emails are sent to the recipient.\\" + reminderDelay: String + \\"When set to **true**, the envelope expires (is no longer available for signing) in the set number of days. If false, the account default setting is used. If the account does not have an expiration setting, the DocuSign default value of 120 days is used.\\" + reminderEnabled: String + \\"An interger that sets the interval, in days, between reminder emails.\\" + reminderFrequency: String } -input certifiedDelivery_Input { - \\"If a value is provided, the recipient must enter the value as the access code to view and sign the envelope. \\\\n\\\\nMaximum Length: 50 characters and it must conform to the account's access code format setting.\\\\n\\\\nIf blank, but the signer \`accessCode\` property is set in the envelope, then that value is used.\\\\n\\\\nIf blank and the signer \`accessCode\` property is not set, then the access code is not required.\\" - accessCode: String - \\"This Optional attribute indicates that the access code will be added to the email sent to the recipient; this nullifies the Security measure of Access Code on the recipient.\\" - addAccessCodeToEmail: String - \\"Specifies whether the recipient is embedded or remote. \\\\n\\\\nIf the \`clientUserId\` property is not null then the recipient is embedded. Use this field to associate the signer with their userId in your app. Authenticating the user is the responsibility of your app when you use embedded signing.\\\\n\\\\nNote: if the \`clientUserId\` property is set and either \`SignerMustHaveAccount\` or \`SignerMustLoginToSign\` property of the account settings is set to **true**, an error is generated on sending. \\\\n\\\\nMaximum length: 100 characters.\\" - clientUserId: String - \\"An optional array of strings that allows the sender to provide custom data about the recipient. This information is returned in the envelope status but otherwise not used by DocuSign. Each customField string can be a maximum of 100 characters.\\" - customFields: [String] - \\"The date and time the recipient declined the document.\\" - declinedDateTime: String - \\"The reason the recipient declined the document.\\" - declinedReason: String - \\"Reserved: For DocuSign use only.\\" - deliveredDateTime: String - \\"Reserved: For DocuSign use only.\\" - deliveryMethod: String - documentVisibility: [documentVisibility_Input] - email: String - emailNotification: recipientEmailNotification_Input - emailRecipientPostSigningURL: String - \\"Specifies a sender provided valid URL string for redirecting an embedded recipient. When using this option, the embedded recipient still receives an email from DocuSign, just as a remote recipient would. When the document link in the email is clicked the recipient is redirected, through DocuSign, to the supplied URL to complete their actions. When routing to the URL, the sender's system (the server responding to the URL) must request a recipient token to launch a signing session. \\\\n\\\\nIf set to \`SIGN_AT_DOCUSIGN\`, the recipient is directed to an embedded signing or viewing process directly at DocuSign. The signing or viewing action is initiated by the DocuSign system and the transaction activity and Certificate of Completion records will reflect this. In all other ways the process is identical to an embedded signing or viewing operation that is launched by any partner.\\\\n\\\\nIt is important to remember that in a typical embedded workflow the authentication of an embedded recipient is the responsibility of the sending application, DocuSign expects that senders will follow their own process for establishing the recipient's identity. In this workflow the recipient goes through the sending application before the embedded signing or viewing process in initiated. However, when the sending application sets \`EmbeddedRecipientStartURL=SIGN_AT_DOCUSIGN\`, the recipient goes directly to the embedded signing or viewing process bypassing the sending application and any authentication steps the sending application would use. In this case, DocuSign recommends that you use one of the normal DocuSign authentication features (Access Code, Phone Authentication, SMS Authentication, etc.) to verify the identity of the recipient.\\\\n\\\\nIf the \`clientUserId\` property is NOT set, and the \`embeddedRecipientStartURL\` is set, DocuSign will ignore the redirect URL and launch the standard signing process for the email recipient. Information can be appended to the embedded recipient start URL using merge fields. The available merge fields items are: envelopeId, recipientId, recipientName, recipientEmail, and customFields. The \`customFields\` property must be set fort the recipient or envelope. The merge fields are enclosed in double brackets. \\\\n\\\\n*Example*: \\\\n\\\\n\`http://senderHost/[[mergeField1]]/ beginSigningSession? [[mergeField2]]&[[mergeField3]]\`\\" - embeddedRecipientStartURL: String +\\"Envelope recipients\\" +input EnvelopeRecipients_Input { + \\"A complex type defining the management and access rights of a recipient assigned assigned as an agent on the document.\\" + agents: [agent_Input] + \\"A complex type containing information about recipients who should receive a copy of the envelope, but does not need to sign it.\\" + carbonCopies: [carbonCopy_Input] + \\"A complex type containing information on a recipient the must receive the completed documents for the envelope to be completed, but the recipient does not need to sign, initial, date, or add information to any of the documents.\\" + certifiedDeliveries: [certifiedDelivery_Input] + currentRoutingOrder: String + \\"A complex type defining the management and access rights of a recipient assigned assigned as an editor on the document.\\" + editors: [editor_Input] errorDetails: errorDetails_Input - \\"Specifies the documents that are not visible to this recipient. Document Visibility must be enabled for the account and the \`enforceSignerVisibility\` property must be set to **true** for the envelope to use this.\\\\n\\\\nWhen enforce signer visibility is enabled, documents with tabs can only be viewed by signers that have a tab on that document. Recipients that have an administrative role (Agent, Editor, or Intermediaries) or informational role (Certified Deliveries or Carbon Copies) can always see all the documents in an envelope, unless they are specifically excluded using this setting when an envelope is sent. Documents that do not have tabs are always visible to all recipients, unless they are specifically excluded using this setting when an envelope is sent.\\" - excludedDocuments: [String] - \\"Reserved:\\" - faxNumber: String - \\"Specifies authentication check by name. The names used here must be the same as the authentication type names used by the account (these name can also be found in the web console sending interface in the Identify list for a recipient,) This overrides any default authentication setting.\\\\n\\\\n*Example*: Your account has ID Check and SMS Authentication available and in the web console Identify list these appear as 'ID Check $' and 'SMS Auth $'. To use ID check in an envelope, the idCheckConfigurationName should be 'ID Check '. If you wanted to use SMS, it would be 'SMS Auth $' and you would need to add you would need to add phone number information to the \`smsAuthentication\` node.\\" - idCheckConfigurationName: String - idCheckInformationInput: idCheckInformationInput_Input - \\"When set to **true** and the envelope recipient creates a DocuSign account after signing, the Manage Account Email Notification settings are used as the default settings for the recipient's account.\\" - inheritEmailNotificationConfiguration: String - name: String - \\"A note sent to the recipient in the signing email.\\\\nThis note is unique to this recipient.\\\\nIn the user interface,\\\\nit appears near the upper left corner\\\\nof the document\\\\non the signing screen.\\\\n\\\\nMaximum Length: 1000 characters.\\" - note: String - phoneAuthentication: recipientPhoneAuthentication_Input - \\"Reserved:\\" - recipientAttachments: [recipientAttachment_Input] - recipientAuthenticationStatus: authenticationStatus_Input - \\"Unique for the recipient. It is used by the tab element to indicate which recipient is to sign the Document.\\" - recipientId: String - recipientIdGuid: String - \\"When set to **true**, the recipient is required to use the specified ID check method (including Phone and SMS authentication) to validate their identity.\\" - requireIdLookup: String - \\"Optional element. Specifies the role name associated with the recipient.

This is required when working with template recipients.\\" - roleName: String - \\"Specifies the routing order of the recipient in the envelope.\\" - routingOrder: String - samlAuthentication: recipientSAMLAuthentication_Input - \\"The date and time the envelope was sent.\\" - sentDateTime: String - \\"Reserved: For DocuSign use only.\\" - signedDateTime: String - \\"When set to **true** and the feature is enabled in the sender's account, the signing recipient is required to draw signatures and initials at each signature/initial tab ( instead of adopting a signature/initial style or only drawing a signature/initial once).\\" - signingGroupId: String - \\"The display name for the signing group. \\\\n\\\\nMaximum Length: 100 characters.\\" - signingGroupName: String - \\"A complex type that contains information about users in the signing group.\\" - signingGroupUsers: [userInfo_Input] - smsAuthentication: recipientSMSAuthentication_Input - \\"Lists the social ID type that can be used for recipient authentication.\\" - socialAuthentications: [socialAuthentication_Input] - \\"Indicates the envelope status. Valid values are:\\\\n\\\\n* sent - The envelope is sent to the recipients. \\\\n* created - The envelope is saved as a draft and can be modified and sent later.\\" - status: String - \\"When set to **true**, the sender cannot change any attributes of the recipient. Used only when working with template recipients.\\" - templateLocked: String - \\"When set to **true**, the sender may not remove the recipient. Used only when working with template recipients.\\" - templateRequired: String - totalTabCount: String - \\"The user ID of the user being accessed. Generally this is the user ID of the authenticated user, but if the authenticated user is an Admin on the account, this may be another user the Admin user is accessing.\\" - userId: String + \\"Specifies a signer that is in the same physical location as a DocuSign user who will act as a Signing Host for the transaction. The recipient added is the Signing Host and new separate Signer Name field appears after Sign in person is selected.\\" + inPersonSigners: [inPersonSigner_Input] + \\"Identifies a recipient that can, but is not required to, add name and email information for recipients at the same or subsequent level in the routing order (until subsequent Agents, Editors or Intermediaries recipient types are added).\\" + intermediaries: [agent_Input] + \\"The list of recipient event statuses that will trigger Connect to send updates to the url. It can be a two-part list with:\\\\n\\\\n* recipientEventStatusCode - The recipient status, this can be Sent, Delivered, Completed, Declined, AuthenticationFailed, and AutoResponded.\\\\n* includeDocuments - When set to **true**, the envelope time zone information is included in the message.\\" + recipientCount: String + \\"A complex type containing information about the Signer recipient.\\" + signers: [signer_Input] } -input editor_Input { +\\"Contains information about agent recipients.\\" +input agent_Input { \\"If a value is provided, the recipient must enter the value as the access code to view and sign the envelope. \\\\n\\\\nMaximum Length: 50 characters and it must conform to the account's access code format setting.\\\\n\\\\nIf blank, but the signer \`accessCode\` property is set in the envelope, then that value is used.\\\\n\\\\nIf blank and the signer \`accessCode\` property is not set, then the access code is not required.\\" accessCode: String \\"This Optional attribute indicates that the access code will be added to the email sent to the recipient; this nullifies the Security measure of Access Code on the recipient.\\" @@ -8718,6 +7623,8 @@ input editor_Input { \\"Specifies a sender provided valid URL string for redirecting an embedded recipient. When using this option, the embedded recipient still receives an email from DocuSign, just as a remote recipient would. When the document link in the email is clicked the recipient is redirected, through DocuSign, to the supplied URL to complete their actions. When routing to the URL, the sender's system (the server responding to the URL) must request a recipient token to launch a signing session. \\\\n\\\\nIf set to \`SIGN_AT_DOCUSIGN\`, the recipient is directed to an embedded signing or viewing process directly at DocuSign. The signing or viewing action is initiated by the DocuSign system and the transaction activity and Certificate of Completion records will reflect this. In all other ways the process is identical to an embedded signing or viewing operation that is launched by any partner.\\\\n\\\\nIt is important to remember that in a typical embedded workflow the authentication of an embedded recipient is the responsibility of the sending application, DocuSign expects that senders will follow their own process for establishing the recipient's identity. In this workflow the recipient goes through the sending application before the embedded signing or viewing process in initiated. However, when the sending application sets \`EmbeddedRecipientStartURL=SIGN_AT_DOCUSIGN\`, the recipient goes directly to the embedded signing or viewing process bypassing the sending application and any authentication steps the sending application would use. In this case, DocuSign recommends that you use one of the normal DocuSign authentication features (Access Code, Phone Authentication, SMS Authentication, etc.) to verify the identity of the recipient.\\\\n\\\\nIf the \`clientUserId\` property is NOT set, and the \`embeddedRecipientStartURL\` is set, DocuSign will ignore the redirect URL and launch the standard signing process for the email recipient. Information can be appended to the embedded recipient start URL using merge fields. The available merge fields items are: envelopeId, recipientId, recipientName, recipientEmail, and customFields. The \`customFields\` property must be set fort the recipient or envelope. The merge fields are enclosed in double brackets. \\\\n\\\\n*Example*: \\\\n\\\\n\`http://senderHost/[[mergeField1]]/ beginSigningSession? [[mergeField2]]&[[mergeField3]]\`\\" embeddedRecipientStartURL: String errorDetails: errorDetails_Input + \\"Specifies the documents that are not visible to this recipient. Document Visibility must be enabled for the account and the \`enforceSignerVisibility\` property must be set to **true** for the envelope to use this.\\\\n\\\\nWhen enforce signer visibility is enabled, documents with tabs can only be viewed by signers that have a tab on that document. Recipients that have an administrative role (Agent, Editor, or Intermediaries) or informational role (Certified Deliveries or Carbon Copies) can always see all the documents in an envelope, unless they are specifically excluded using this setting when an envelope is sent. Documents that do not have tabs are always visible to all recipients, unless they are specifically excluded using this setting when an envelope is sent.\\" + excludedDocuments: [String] \\"Reserved:\\" faxNumber: String \\"Specifies authentication check by name. The names used here must be the same as the authentication type names used by the account (these name can also be found in the web console sending interface in the Identify list for a recipient,) This overrides any default authentication setting.\\\\n\\\\n*Example*: Your account has ID Check and SMS Authentication available and in the web console Identify list these appear as 'ID Check $' and 'SMS Auth $'. To use ID check in an envelope, the idCheckConfigurationName should be 'ID Check '. If you wanted to use SMS, it would be 'SMS Auth $' and you would need to add you would need to add phone number information to the \`smsAuthentication\` node.\\" @@ -8725,7 +7632,6 @@ input editor_Input { idCheckInformationInput: idCheckInformationInput_Input \\"When set to **true** and the envelope recipient creates a DocuSign account after signing, the Manage Account Email Notification settings are used as the default settings for the recipient's account.\\" inheritEmailNotificationConfiguration: String - \\"legal name of the recipient.\\\\n\\\\nMaximum Length: 100 characters.\\" name: String \\"A note sent to the recipient in the signing email.\\\\nThis note is unique to this recipient.\\\\nIn the user interface,\\\\nit appears near the upper left corner\\\\nof the document\\\\non the signing screen.\\\\n\\\\nMaximum Length: 1000 characters.\\" note: String @@ -8767,111 +7673,145 @@ input editor_Input { userId: String } -\\"An in-person recipient is a DocuSign user,\\\\nacting as a Signing Host,\\\\nwho is in the same physical location as the signer.\\\\nTo learn about fields used\\\\nfor eNotary feature,\\\\nsee the [EnvelopeRecipients resource][enveloperecipientsInPerson].\\\\n\\\\n[enveloperecipientsInPerson]: /esign/restapi/Envelopes/EnvelopeRecipients/#in-person-signers-recipient\\" -input inPersonSigner_Input { - \\"If a value is provided, the recipient must enter the value as the access code to view and sign the envelope. \\\\n\\\\nMaximum Length: 50 characters and it must conform to the account's access code format setting.\\\\n\\\\nIf blank, but the signer \`accessCode\` property is set in the envelope, then that value is used.\\\\n\\\\nIf blank and the signer \`accessCode\` property is not set, then the access code is not required.\\" - accessCode: String - \\"This Optional attribute indicates that the access code will be added to the email sent to the recipient; this nullifies the Security measure of Access Code on the recipient.\\" - addAccessCodeToEmail: String - \\"Specifies whether auto navigation is set for the recipient.\\" - autoNavigation: String - \\"When set to **true**, specifies that the signer can perform the signing ceremony offline.\\" - canSignOffline: String - \\"Specifies whether the recipient is embedded or remote. \\\\n\\\\nIf the \`clientUserId\` property is not null then the recipient is embedded. Use this field to associate the signer with their userId in your app. Authenticating the user is the responsibility of your app when you use embedded signing.\\\\n\\\\nNote: if the \`clientUserId\` property is set and either \`SignerMustHaveAccount\` or \`SignerMustLoginToSign\` property of the account settings is set to **true**, an error is generated on sending. \\\\n\\\\nMaximum length: 100 characters.\\" - clientUserId: String - creationReason: String - \\"An optional array of strings that allows the sender to provide custom data about the recipient. This information is returned in the envelope status but otherwise not used by DocuSign. Each customField string can be a maximum of 100 characters.\\" - customFields: [String] - \\"The date and time the recipient declined the document.\\" - declinedDateTime: String - \\"The reason the recipient declined the document.\\" - declinedReason: String - \\"When set to **true**,\\\\nthis is the default recipient for the envelope.\\\\nThis option is used when creating an envelope from a template.\\" - defaultRecipient: String - \\"Reserved: For DocuSign use only.\\" - deliveredDateTime: String - \\"Reserved: For DocuSign use only.\\" - deliveryMethod: String - documentVisibility: [documentVisibility_Input] - \\"The signer's email address in an eNotary flow.\\\\n\\\\nUse only when \`inPersonSigningType\` is \`notary\`.\\\\nFor regular in-person-signer flow, use \`signerEmail\` instead.\\" - email: String - emailNotification: recipientEmailNotification_Input - \\"Specifies a sender provided valid URL string for redirecting an embedded recipient. When using this option, the embedded recipient still receives an email from DocuSign, just as a remote recipient would. When the document link in the email is clicked the recipient is redirected, through DocuSign, to the supplied URL to complete their actions. When routing to the URL, the sender's system (the server responding to the URL) must request a recipient token to launch a signing session. \\\\n\\\\nIf set to \`SIGN_AT_DOCUSIGN\`, the recipient is directed to an embedded signing or viewing process directly at DocuSign. The signing or viewing action is initiated by the DocuSign system and the transaction activity and Certificate of Completion records will reflect this. In all other ways the process is identical to an embedded signing or viewing operation that is launched by any partner.\\\\n\\\\nIt is important to remember that in a typical embedded workflow the authentication of an embedded recipient is the responsibility of the sending application, DocuSign expects that senders will follow their own process for establishing the recipient's identity. In this workflow the recipient goes through the sending application before the embedded signing or viewing process in initiated. However, when the sending application sets \`EmbeddedRecipientStartURL=SIGN_AT_DOCUSIGN\`, the recipient goes directly to the embedded signing or viewing process bypassing the sending application and any authentication steps the sending application would use. In this case, DocuSign recommends that you use one of the normal DocuSign authentication features (Access Code, Phone Authentication, SMS Authentication, etc.) to verify the identity of the recipient.\\\\n\\\\nIf the \`clientUserId\` property is NOT set, and the \`embeddedRecipientStartURL\` is set, DocuSign will ignore the redirect URL and launch the standard signing process for the email recipient. Information can be appended to the embedded recipient start URL using merge fields. The available merge fields items are: envelopeId, recipientId, recipientName, recipientEmail, and customFields. The \`customFields\` property must be set fort the recipient or envelope. The merge fields are enclosed in double brackets. \\\\n\\\\n*Example*: \\\\n\\\\n\`http://senderHost/[[mergeField1]]/ beginSigningSession? [[mergeField2]]&[[mergeField3]]\`\\" - embeddedRecipientStartURL: String +input documentVisibility_Input { + \\"Specifies the document ID number that the tab is placed on. This must refer to an existing Document's ID attribute.\\" + documentId: String errorDetails: errorDetails_Input - \\"Reserved:\\" - faxNumber: String - \\"The email address of the signing host.\\\\nThis is the DocuSign user that is hosting the in-person signing session.\\\\n\\\\nRequired when \`inPersonSigningType\` is \`inPersonSigner\`.\\\\nFor eNotary flow, use \`email\` instead.\\\\n\\\\nMaximum Length: 100 characters.\\" - hostEmail: String - \\"The name of the signing host.\\\\nThis is the DocuSign user that is hosting the in-person signing session.\\\\n\\\\nRequired when \`inPersonSigningType\` is \`inPersonSigner\`.\\\\nFor eNotary flow, use \`name\` instead.\\\\n\\\\nMaximum Length: 100 characters.\\" - hostName: String - \\"Specifies authentication check by name. The names used here must be the same as the authentication type names used by the account (these name can also be found in the web console sending interface in the Identify list for a recipient,) This overrides any default authentication setting.\\\\n\\\\n*Example*: Your account has ID Check and SMS Authentication available and in the web console Identify list these appear as 'ID Check $' and 'SMS Auth $'. To use ID check in an envelope, the idCheckConfigurationName should be 'ID Check '. If you wanted to use SMS, it would be 'SMS Auth $' and you would need to add you would need to add phone number information to the \`smsAuthentication\` node.\\" - idCheckConfigurationName: String - idCheckInformationInput: idCheckInformationInput_Input - \\"Specifies whether the envelope uses the eNotary feature.\\\\nValid values:\\\\n\\\\n* \`inPersonSigner\` The envelope uses the normal in-person signing flow.\\\\n* \`notary\`: The envelope uses the eNotary in-person signing flow.\\" - inPersonSigningType: String - \\"When set to **true** and the envelope recipient creates a DocuSign account after signing, the Manage Account Email Notification settings are used as the default settings for the recipient's account.\\" - inheritEmailNotificationConfiguration: String - \\"The signer's full legal name in an eNotary flow.\\\\n\\\\nRequired when \`inPersonSigningType\` is \`notary\`.\\\\nFor regular in-person-signer flow, use \`signerName\` instead.\\\\n\\\\nMaximum Length: 100 characters.\\" - name: String - notaryHost: notaryHost_Input - \\"A note sent to the in-person signer in the signing email.\\\\nThis note is visible only to this recipient.\\\\n\\\\nMaximum Length: 1000 characters.\\" - note: String - phoneAuthentication: recipientPhoneAuthentication_Input - \\"Reserved:\\" - recipientAttachments: [recipientAttachment_Input] - recipientAuthenticationStatus: authenticationStatus_Input \\"Unique for the recipient. It is used by the tab element to indicate which recipient is to sign the Document.\\" recipientId: String - recipientIdGuid: String - \\"The default signature provider is the DocuSign Electronic signature system. This parameter is used to specify one or more Standards Based Signature (digital signature) providers for the signer to use. [More information](../../../../guide/appendix/standards_based_signatures.html)\\" - recipientSignatureProviders: [recipientSignatureProvider_Input] - recipientSuppliesTabs: String - \\"When set to **true**, the recipient is required to use the specified ID check method (including Phone and SMS authentication) to validate their identity.\\" - requireIdLookup: String - \\"When set to **true**, the signer must print, sign, and upload or fax the signed documents to DocuSign.\\" - requireSignOnPaper: String - \\"By default, DocuSign signers create electronic signatures. This field can be used to require the signer to use a SAFE-BioPharma digital certificate for signing.\\\\n\\\\nThis parameter should only be used to select a SAFE-BioPharma certificate. New integrations should use the \`recipientSignatureProviders\` parameter for other types of digital certificates. \\\\n\\\\nSet this parameter to \`safe\` to use a SAFE-BioPharma certificate.\\\\n\\\\nThe signer must be enrolled in the SAFE program to sign with a SAFE certificate.\\" - requireSignerCertificate: String - \\"Optional element. Specifies the role name associated with the recipient.

This is required when working with template recipients.\\" - roleName: String - \\"Specifies the routing order of the recipient in the envelope.\\" - routingOrder: String - samlAuthentication: recipientSAMLAuthentication_Input - \\"The date and time the envelope was sent.\\" - sentDateTime: String - \\"When set to **true**, specifies that the signer must sign in all locations.\\" - signInEachLocation: String - signatureInfo: recipientSignatureInformation_Input - \\"Reserved: For DocuSign use only.\\" - signedDateTime: String - \\"The in-person signer's email address.\\\\n\\\\nRequired when \`inPersonSigningType\` is \`inPersonSigner\`.\\\\nFor eNotary flow, use \`email\` instead.\\\\n\\\\nMaximum Length: 100 characters.\\" - signerEmail: String - \\"The in-person signer's full legal name.\\\\n\\\\nRequired when \`inPersonSigningType\` is \`inPersonSigner\`.\\\\nFor eNotary flow, use \`name\` instead.\\\\n\\\\nMaximum Length: 100 characters.\\" - signerName: String - \\"When set to **true** and the feature is enabled in the sender's account, the signing recipient is required to draw signatures and initials at each signature/initial tab ( instead of adopting a signature/initial style or only drawing a signature/initial once).\\" - signingGroupId: String - \\"The display name for the signing group. \\\\n\\\\nMaximum Length: 100 characters.\\" - signingGroupName: String - \\"A complex type that contains information about users in the signing group.\\" - signingGroupUsers: [userInfo_Input] - smsAuthentication: recipientSMSAuthentication_Input - \\"Lists the social ID type that can be used for recipient authentication.\\" - socialAuthentications: [socialAuthentication_Input] + rights: String + visible: String +} + +input recipientEmailNotification_Input { + \\"Specifies the email body of the message sent to the recipient. \\\\n\\\\nMaximum length: 10000 characters.\\" + emailBody: String + \\"Specifies the subject of the email that is sent to all recipients.\\\\n\\\\nSee [ML:Template Email Subject Merge Fields] for information about adding merge field information to the email subject.\\" + emailSubject: String + \\"The language to be used with your custom notification email. The supported languages, with the language value shown in parenthesis, are: Arabic (ar), Bahasa Indonesia (id), Bahasa Melayu (ms) Bulgarian (bg), Czech (cs), Chinese Simplified (zh_CN), Chinese Traditional (zh_TW), Croatian (hr), Danish (da), Dutch (nl), English US (en), English UK (en_GB), Estonian (et), Farsi (fa), Finnish (fi), French (fr), French Canada (fr_CA), German (de), Greek (el), Hebrew (he), Hindi (hi), Hungarian (hu), Italian (it), Japanese (ja), Korean (ko), Latvian (lv), Lithuanian (lt), Norwegian (no), Polish (pl), Portuguese (pt), Portuguese Brazil (pt_BR), Romanian (ro),Russian (ru), Serbian (sr), Slovak (sk), Slovenian (sl), Spanish (es),Spanish Latin America (es_MX), Swedish (sv), Thai (th), Turkish (tr), Ukrainian (uk), and Vietnamese (vi).\\" + supportedLanguage: String +} + +\\"A complex element that contains input information related to a recipient ID check. It can include the following information.\\\\n\\\\naddressInformationInput: Used to set recipient address information and consists of:\\\\n\\\\n* addressInformation: consists of six elements, with stree2 and zipPlus4 being optional. The elements are: street1, street2, city, state, zip, zipPlus4. The maximum length of each element is: street1/street2 = 150 characters, city = 50 characters, state = 2 characters, and zip/zipPlus4 = 20 characters.\\\\n* displayLevelCode: Specifies the display level for the recipient. Values are: ReadOnly, Editable, or DoNotDisplay.\\\\n* receiveInResponse: A Boolean element that specifies if the information needs to be returned in the response.\\\\n\\\\ndobInformationInput: Used to set recipient date of birth information and consists of:\\\\n\\\\n* dateOfBirth: Specifies the recipient's date, month and year of birth.\\\\n* displayLevelCode: Specifies the display level for the recipient. Values are: ReadOnly, Editable, or DoNotDisplay.\\\\n* receiveInResponse: A Boolean element that specifies if the information needs to be returned in the response.\\\\n\\\\nssn4InformationInput: Used to set the last four digits of the recipient's SSN information and consists of:\\\\n\\\\n* ssn4: Specifies the last four digits of the recipient's SSN.\\\\n* displayLevelCode: Specifies the display level for the recipient. Values are: ReadOnly, Editable, or DoNotDisplay.\\\\n* receiveInResponse: A Boolean element that specifies if the information needs to be returned in the response.\\\\n\\\\nssn9InformationInput: Used to set the recipient's SSN information. Note that the ssn9 information can never be returned in the response. The ssn9 input consists of: \\\\n* ssn9: Specifies the recipient's SSN.\\\\n* displayLevelCode: Specifies the display level for the recipient. Values are: ReadOnly, Editable, or DoNotDisplay.\\" +input idCheckInformationInput_Input { + addressInformationInput: addressInformationInput_Input + dobInformationInput: dobInformationInput_Input + ssn4InformationInput: ssn4InformationInput_Input + ssn9InformationInput: ssn9InformationInput_Input +} + +\\"Contains address input information.\\" +input addressInformationInput_Input { + addressInformation: addressInformation_Input + \\"Specifies the display level for the recipient. \\\\nValid values are: \\\\n\\\\n* ReadOnly\\\\n* Editable\\\\n* DoNotDisplay\\" + displayLevelCode: String + \\"When set to **true**, the information needs to be returned in the response.\\" + receiveInResponse: String +} + +\\"Complex type containing:\\\\n\\\\n* dateOfBirth\\\\n* displayLevelCode\\\\n* receiveInResponse\\" +input dobInformationInput_Input { + \\"Specifies the recipient's date, month, and year of birth.\\" + dateOfBirth: String + \\"Specifies the display level for the recipient. \\\\nValid values are: \\\\n\\\\n* ReadOnly\\\\n* Editable\\\\n* DoNotDisplay\\" + displayLevelCode: String + \\"When set to **true**, the information needs to be returned in the response.\\" + receiveInResponse: String +} + +input ssn4InformationInput_Input { + \\"Specifies the display level for the recipient. \\\\nValid values are: \\\\n\\\\n* ReadOnly\\\\n* Editable\\\\n* DoNotDisplay\\" + displayLevelCode: String + \\"When set to **true**, the information needs to be returned in the response.\\" + receiveInResponse: String + \\"The last four digits of the recipient's Social Security Number (SSN).\\" + ssn4: String +} + +input ssn9InformationInput_Input { + \\"Specifies the display level for the recipient. \\\\nValid values are: \\\\n\\\\n* ReadOnly\\\\n* Editable\\\\n* DoNotDisplay\\" + displayLevelCode: String + \\"The recipient's Social Security Number(SSN).\\" + ssn9: String +} + +\\"A complex type that Contains the elements:\\\\n\\\\n* recipMayProvideNumber - Boolean. When set to **true**, the recipient can use whatever phone number they choose.\\\\n* senderProvidedNumbers - ArrayOfString. A list of phone numbers the recipient can use.\\\\n* recordVoicePrint - Reserved.\\\\n* validateRecipProvidedNumber - Reserved.\\" +input recipientPhoneAuthentication_Input { + \\"Boolean. When set to **true**, the recipient can supply a phone number their choice.\\" + recipMayProvideNumber: String + \\"Reserved.\\" + recordVoicePrint: String + \\"An Array containing a list of phone numbers the recipient may use for SMS text authentication.\\" + senderProvidedNumbers: [String] + \\"Reserved.\\" + validateRecipProvidedNumber: String +} + +input recipientAttachment_Input { + attachmentId: String + attachmentType: String + data: String + label: String + name: String + remoteUrl: String +} + +\\"Contains information about the authentication status.\\" +input authenticationStatus_Input { + accessCodeResult: eventResult_Input + ageVerifyResult: eventResult_Input + anySocialIDResult: eventResult_Input + facebookResult: eventResult_Input + googleResult: eventResult_Input + idLookupResult: eventResult_Input + idQuestionsResult: eventResult_Input + linkedinResult: eventResult_Input + liveIDResult: eventResult_Input + ofacResult: eventResult_Input + openIDResult: eventResult_Input + phoneAuthResult: eventResult_Input + sTANPinResult: eventResult_Input + salesforceResult: eventResult_Input + signatureProviderResult: eventResult_Input + smsAuthResult: eventResult_Input + twitterResult: eventResult_Input + yahooResult: eventResult_Input +} + +input eventResult_Input { + eventTimestamp: String + failureDescription: String \\"Indicates the envelope status. Valid values are:\\\\n\\\\n* sent - The envelope is sent to the recipients. \\\\n* created - The envelope is saved as a draft and can be modified and sent later.\\" status: String - tabs: EnvelopeRecipientTabs_Input - \\"When set to **true**, the sender cannot change any attributes of the recipient. Used only when working with template recipients.\\" - templateLocked: String - \\"When set to **true**, the sender may not remove the recipient. Used only when working with template recipients.\\" - templateRequired: String - totalTabCount: String - \\"The user ID of the user being accessed. Generally this is the user ID of the authenticated user, but if the authenticated user is an Admin on the account, this may be another user the Admin user is accessing.\\" - userId: String + vendorFailureStatusCode: String } -\\"This object is used only when \`inPersonSigningType\` in the \`inPersonSigner\` object is \`notary\`.\\\\n\\\\nIt describes information about the notary host.\\\\nThe following information is required\\\\nwhen using the eNotary in-person signing flow:\\\\n\\\\n* \`name\`: Specifies the notary's full legal name.\\\\n* \`email\`: Specifies the notary's email address.\\\\n* \`recipientId\`: A unique ID number for the notary signing host.\\" -input notaryHost_Input { +\\"Contains the name/value pair information for the SAML assertion attributes:\\\\n\\\\n* name - The name of the SAML assertion attribute.\\\\n* value - The value associated with the named SAML assertion attribute. \\\\n\\\\nYour account must be set up to use SSO to use this.\\" +input recipientSAMLAuthentication_Input { + samlAssertionAttributes: [samlAssertionAttribute_Input] +} + +input samlAssertionAttribute_Input { + errorDetails: errorDetails_Input + name: String + \\"The initial value of the tab when it was sent to the recipient.\\" + originalValue: String + \\"The value associated with the named SAML assertion attribute\\" + value: String +} + +\\"Contains the element senderProvidedNumbers which is an Array of phone numbers the recipient can use for SMS text authentication.\\" +input recipientSMSAuthentication_Input { + \\"An Array containing a list of phone numbers the recipient may use for SMS text authentication.\\" + senderProvidedNumbers: [String] +} + +input socialAuthentication_Input { + \\"Reserved: TBD\\" + authentication: String +} + +input carbonCopy_Input { \\"If a value is provided, the recipient must enter the value as the access code to view and sign the envelope. \\\\n\\\\nMaximum Length: 50 characters and it must conform to the account's access code format setting.\\\\n\\\\nIf blank, but the signer \`accessCode\` property is set in the envelope, then that value is used.\\\\n\\\\nIf blank and the signer \`accessCode\` property is not set, then the access code is not required.\\" accessCode: String \\"This Optional attribute indicates that the access code will be added to the email sent to the recipient; this nullifies the Security measure of Access Code on the recipient.\\" @@ -8889,25 +7829,25 @@ input notaryHost_Input { \\"Reserved: For DocuSign use only.\\" deliveryMethod: String documentVisibility: [documentVisibility_Input] - \\"The notary's email address.\\\\n\\\\nMaximum Length: 100 characters.\\" + \\"Email id of the recipient. Notification of the document to sign is sent to this email id. \\\\n\\\\nMaximum length: 100 characters.\\" email: String emailNotification: recipientEmailNotification_Input + emailRecipientPostSigningURL: String \\"Specifies a sender provided valid URL string for redirecting an embedded recipient. When using this option, the embedded recipient still receives an email from DocuSign, just as a remote recipient would. When the document link in the email is clicked the recipient is redirected, through DocuSign, to the supplied URL to complete their actions. When routing to the URL, the sender's system (the server responding to the URL) must request a recipient token to launch a signing session. \\\\n\\\\nIf set to \`SIGN_AT_DOCUSIGN\`, the recipient is directed to an embedded signing or viewing process directly at DocuSign. The signing or viewing action is initiated by the DocuSign system and the transaction activity and Certificate of Completion records will reflect this. In all other ways the process is identical to an embedded signing or viewing operation that is launched by any partner.\\\\n\\\\nIt is important to remember that in a typical embedded workflow the authentication of an embedded recipient is the responsibility of the sending application, DocuSign expects that senders will follow their own process for establishing the recipient's identity. In this workflow the recipient goes through the sending application before the embedded signing or viewing process in initiated. However, when the sending application sets \`EmbeddedRecipientStartURL=SIGN_AT_DOCUSIGN\`, the recipient goes directly to the embedded signing or viewing process bypassing the sending application and any authentication steps the sending application would use. In this case, DocuSign recommends that you use one of the normal DocuSign authentication features (Access Code, Phone Authentication, SMS Authentication, etc.) to verify the identity of the recipient.\\\\n\\\\nIf the \`clientUserId\` property is NOT set, and the \`embeddedRecipientStartURL\` is set, DocuSign will ignore the redirect URL and launch the standard signing process for the email recipient. Information can be appended to the embedded recipient start URL using merge fields. The available merge fields items are: envelopeId, recipientId, recipientName, recipientEmail, and customFields. The \`customFields\` property must be set fort the recipient or envelope. The merge fields are enclosed in double brackets. \\\\n\\\\n*Example*: \\\\n\\\\n\`http://senderHost/[[mergeField1]]/ beginSigningSession? [[mergeField2]]&[[mergeField3]]\`\\" embeddedRecipientStartURL: String errorDetails: errorDetails_Input + \\"Specifies the documents that are not visible to this recipient. Document Visibility must be enabled for the account and the \`enforceSignerVisibility\` property must be set to **true** for the envelope to use this.\\\\n\\\\nWhen enforce signer visibility is enabled, documents with tabs can only be viewed by signers that have a tab on that document. Recipients that have an administrative role (Agent, Editor, or Intermediaries) or informational role (Certified Deliveries or Carbon Copies) can always see all the documents in an envelope, unless they are specifically excluded using this setting when an envelope is sent. Documents that do not have tabs are always visible to all recipients, unless they are specifically excluded using this setting when an envelope is sent.\\" + excludedDocuments: [String] \\"Reserved:\\" faxNumber: String - hostRecipientId: String \\"Specifies authentication check by name. The names used here must be the same as the authentication type names used by the account (these name can also be found in the web console sending interface in the Identify list for a recipient,) This overrides any default authentication setting.\\\\n\\\\n*Example*: Your account has ID Check and SMS Authentication available and in the web console Identify list these appear as 'ID Check $' and 'SMS Auth $'. To use ID check in an envelope, the idCheckConfigurationName should be 'ID Check '. If you wanted to use SMS, it would be 'SMS Auth $' and you would need to add you would need to add phone number information to the \`smsAuthentication\` node.\\" idCheckConfigurationName: String idCheckInformationInput: idCheckInformationInput_Input \\"When set to **true** and the envelope recipient creates a DocuSign account after signing, the Manage Account Email Notification settings are used as the default settings for the recipient's account.\\" inheritEmailNotificationConfiguration: String - \\"The notary's full legal name.\\\\n\\\\nMaximum Length: 100 characters.\\" + \\"legal name of the recipient.\\\\n\\\\nMaximum Length: 100 characters.\\" name: String - notaryEmailMetadata: propertyMetadata_Input - notaryNameMetadata: propertyMetadata_Input - \\"A note sent to the notary in the signing email.\\\\nThis note is visible only to this notary.\\\\n\\\\nMaximum Length: 1000 characters.\\" + \\"A note sent to the recipient in the signing email.\\\\nThis note is unique to this recipient.\\\\nIn the user interface,\\\\nit appears near the upper left corner\\\\nof the document\\\\non the signing screen.\\\\n\\\\nMaximum Length: 1000 characters.\\" note: String phoneAuthentication: recipientPhoneAuthentication_Input \\"Reserved:\\" @@ -8927,6 +7867,12 @@ input notaryHost_Input { sentDateTime: String \\"Reserved: For DocuSign use only.\\" signedDateTime: String + \\"When set to **true** and the feature is enabled in the sender's account, the signing recipient is required to draw signatures and initials at each signature/initial tab ( instead of adopting a signature/initial style or only drawing a signature/initial once).\\" + signingGroupId: String + \\"The display name for the signing group. \\\\n\\\\nMaximum Length: 100 characters.\\" + signingGroupName: String + \\"A complex type that contains information about users in the signing group.\\" + signingGroupUsers: [userInfo_Input] smsAuthentication: recipientSMSAuthentication_Input \\"Lists the social ID type that can be used for recipient authentication.\\" socialAuthentications: [socialAuthentication_Input] @@ -8941,463 +7887,415 @@ input notaryHost_Input { userId: String } -input propertyMetadata_Input { - options: [String] - rights: String -} - -\\"An Electronic or Standards Based Signature (digital signature) provider for the signer to use. [More information.](../../../../guide/appendix/standards_based_signatures.html)\\" -input recipientSignatureProvider_Input { - \\"The name of an Electronic or Standards Based Signature (digital signature) provider for the signer to use. [The current provider list.](../../../../guide/appendix/standards_based_signatures.html#signature-provider-options)\\" - signatureProviderName: String - signatureProviderOptions: recipientSignatureProviderOptions_Input -} - -\\"Option settings for the signature provider. Different providers require or use different options. [The current provider list and the options they require.](../../../../guide/appendix/standards_based_signatures.html#signature-provider-options)\\" -input recipientSignatureProviderOptions_Input { - \\"Reserved for DocuSign\\" - cpfNumber: String - \\"A pre-shared secret that the signer must enter to complete the signing process. Eg last six digits of the signer's government ID or Social Security number. Or a newly created pre-shared secret for the transaction. Note: some signature providers may require an exact (case-sensitive) match if alphabetic characters are included in the field.\\" - oneTimePassword: String - \\"The role or capacity of the signing recipient. Examples: Manager, Approver, etc.\\" - signerRole: String - \\"The mobile phone number used to send the recipient an access code for the signing ceremony. Format: a string starting with +, then the country code followed by the full mobile phone number without any spaces or special characters. Omit leading zeroes before a city code. Examples: +14155551234, +97235551234, +33505551234.\\" - sms: String -} - -\\"Allows the sender to pre-specify the signature name, signature initials and signature font used in the signature stamp for the recipient.\\\\n\\\\nUsed only with recipient types In Person Signers and Signers.\\" -input recipientSignatureInformation_Input { - fontStyle: String - signatureInitials: String - \\"Specifies the user signature name.\\" - signatureName: String -} - -\\"Envelope tabs\\" -input EnvelopeRecipientTabs_Input { - \\"A tab that allows the recipient to approve documents\\\\nwithout placing a signature or initials on the\\\\ndocument. If the recipient clicks the Approve tab during the signing\\\\nprocess, the recipient is considered to have signed the document. No\\\\ninformation is shown on the document for the approval, but it is\\\\nrecorded as a signature in the envelope history.\\" - approveTabs: [approve_Input] - \\"Specifies a tag on the document in a location where the recipient can select an option.\\" - checkboxTabs: [checkbox_Input] - \\"Specifies a tag on the document where you want the recipient's company name to appear.\\\\n\\\\nWhen getting information that includes this tab type, the original value of the tab when the associated envelope was sent is included in the response.\\" - companyTabs: [company_Input] - \\"Specifies a tab on the document where the date the document was signed will automatically appear.\\" - dateSignedTabs: [dateSigned_Input] - \\"Specifies a tab on the document where you want the recipient to enter a date. Date tabs are single-line fields that allow date information to be entered in any format. The tooltip for this tab recommends entering the date as MM/DD/YYYY, but this is not enforced. The format entered by the signer is retained. \\\\n\\\\nIf you need a particular date format enforced, DocuSign recommends using a Text tab with a Validation Pattern and Validation Message to enforce the format.\\" - dateTabs: [date_Input] - \\"Specifies a tag on the document where you want to give the recipient the option of declining an envelope. If the recipient clicks the Decline tag during the signing process, the envelope is voided.\\" - declineTabs: [decline_Input] - \\"Specifies a location on the document where you want where you want the recipient's email, as entered in the recipient information, to display.\\" - emailAddressTabs: [emailAddress_Input] - \\"Specifies a tag on the document where you want the recipient to enter an email. Email tags are single-line fields that accept any characters. The system checks that a valid email format (i.e. xxx@yyy.zzz) is entered in the tag. It uses the same parameters as a Text tab, with the validation message and pattern set for email information.\\\\n\\\\nWhen getting information that includes this tab type, the original value of the tab when the associated envelope was sent is included in the response.\\" - emailTabs: [email_Input] - \\"Specifies a tag on the document where you want the envelope ID for to appear. Recipients cannot enter or change the information in this tab, it is for informational purposes only.\\" - envelopeIdTabs: [envelopeId_Input] - \\"Specifies tag on a document where you want the recipient's first name to appear. This tag takes the recipient's name, as entered in the recipient information, splits it into sections based on spaces and uses the first section as the first name.\\" - firstNameTabs: [firstName_Input] - \\"A list of formula tabs.\\\\n\\\\nThe value of a formula tab is calculated\\\\nfrom the values of other\\\\nnumber or date tabs in the document.\\\\nWhen the recipient completes the underlying fields,\\\\nthe formula tab calculates and displays the result.\\\\n\\\\nThe \`formula\` property of the tab\\\\ncontains the references\\\\nto the underlying tabs.\\\\nSee [Calculated Fields][calculatedfields]\\\\nin the DocuSign Support Center\\\\nto learn more about formulas.\\\\n\\\\nIf a formula tab contains\\\\na \`paymentDetails\` property,\\\\nthe tab is considered a payment item.\\\\nSee [Requesting Payments Along with Signatures][paymentguide]\\\\nin the DocuSign Support Center\\\\nto learn more about payments.\\\\n\\\\n[calculatedfields]: https://support.docusign.com/en/guides/ndse-user-guide-calculated-fields\\\\n[paymentguide]: https://support.docusign.com/en/guides/requesting-payments-along-with-signatures\\" - formulaTabs: [formulaTab_Input] - \\"Specifies a tag on the document where you want the recipient's name to appear.\\" - fullNameTabs: [fullName_Input] - \\"Specifies a tag location in the document at which a recipient will place their initials. The \`optional\` parameter specifies whether the initials are required or optional.\\" - initialHereTabs: [initialHere_Input] - \\"Specifies a tag on a document where you want the recipient's last name to appear. This tag takes the recipient's name, as entered in the recipient information, splits it into sections based on spaces and uses the last section as the last name.\\" - lastNameTabs: [lastName_Input] - \\"Specify this tag to give your recipient a list of options, presented as a drop-down list, from which they can select.\\" - listTabs: [list_Input] - \\"Specifies a location on the document where you want to place additional information, in the form of a note, for a recipient.\\" - noteTabs: [note_Input] - \\"Specifies a tag on the document where you want the recipient to enter a number. It uses the same parameters as a Text tab, with the validation message and pattern set for number information.\\\\n\\\\nWhen getting information that includes this tab type, the original value of the tab when the associated envelope was sent is included in the response.\\" - numberTabs: [number_Input] - \\"Specifies a tag on the document in a location where the recipient can select one option from a group of options using a radio button. The radio buttons do not have to be on the same page in a document.\\" - radioGroupTabs: [radioGroup_Input] - \\"A complex type the contains information about the tag that specifies where the recipient places their signature in the document. The \\\\\\"optional\\\\\\" parameter sets if the signature is required or optional.\\" - signHereTabs: [signHere_Input] - \\"Specifies a tag on the document when you want the recipient to add supporting documents to an envelope.\\" - signerAttachmentTabs: [signerAttachment_Input] - \\"Specifies a tag on the document where you want the recipient to enter a Social Security Number (SSN). A SSN can be typed with or without dashes. It uses the same parameters as a Text tab, with the validation message and pattern set for SSN information.\\\\n\\\\nWhen getting information that includes this tab type, the original value of the tab when the associated envelope was sent is included in the response.\\" - ssnTabs: [ssn_Input] - \\"Specifies a that that is an adaptable field that allows the recipient to enter different text information.\\\\n\\\\nWhen getting information that includes this tab type, the original value of the tab when the associated envelope was sent is included in the response.\\" - textTabs: [text_Input] - \\"Specifies a tag on the document where you want the recipient's title to appear.\\\\n\\\\nWhen getting information that includes this tab type, the original value of the tab when the associated envelope was sent is included in the response.\\" - titleTabs: [title_Input] - viewTabs: [view_Input] - \\"Specifies a tag on the document where you want the recipient to enter a ZIP code. The ZIP code can be a five numbers or the ZIP+4 format with nine numbers. The zip code can be typed with or without dashes. It uses the same parameters as a Text tab, with the validation message and pattern set for ZIP code information.\\\\n\\\\nWhen getting information that includes this tab type, the original value of the tab when the associated envelope was sent is included in the response.\\" - zipTabs: [zip_Input] -} - -\\"A tab that allows the recipient to approve documents\\\\nwithout placing a signature or initials on the\\\\ndocument.\\" -input approve_Input { - \\"Reserved for DocuSign.\\\\n\\" - anchorCaseSensitive: String - \\"Reserved for DocuSign.\\\\n\\" - anchorHorizontalAlignment: String - \\"When set to **true**, this tab is ignored if anchorString is not found in the document.\\" - anchorIgnoreIfNotPresent: String - \\"Reserved for DocuSign.\\\\n\\" - anchorMatchWholeWord: String - \\"Anchor text information for a radio button.\\" - anchorString: String - \\"Specifies units of the X and Y offset. Units could be pixels, millimeters, centimeters, or inches.\\" - anchorUnits: String - \\"Specifies the X axis location of the tab, in achorUnits, relative to the anchorString.\\" - anchorXOffset: String - \\"Specifies the Y axis location of the tab, in achorUnits, relative to the anchorString.\\" - anchorYOffset: String - \\"When set to **true**, the information in the tab is bold.\\" - bold: String - \\"Specifies the approval text displayed in the tab.\\" - buttonText: String - \\"For conditional fields this is the TabLabel of the parent tab that controls this tab's visibility.\\" - conditionalParentLabel: String - \\"For conditional fields, this is the value of the parent tab that controls the tab's visibility.\\\\n\\\\nIf the parent tab is a Checkbox, Radio button, Optional Signature, or Optional Initial use \\\\\\"on\\\\\\" as the value to show that the parent tab is active.\\" - conditionalParentValue: String - \\"The DocuSign generated custom tab ID for the custom tab to be applied. This can only be used when adding new tabs for a recipient. When used, the new tab inherits all the custom tab properties.\\" - customTabId: String - \\"Specifies the document ID number that the tab is placed on. This must refer to an existing Document's ID attribute.\\" - documentId: String - errorDetails: errorDetails_Input - \\"The font to be used for the tab value. Supported Fonts: Arial, Arial, ArialNarrow, Calibri, CourierNew, Garamond, Georgia, Helvetica, LucidaConsole, Tahoma, TimesNewRoman, Trebuchet, Verdana, MSGothic, MSMincho, Default.\\" - font: String - \\"The font color used for the information in the tab.\\\\n\\\\nPossible values are: Black, BrightBlue, BrightRed, DarkGreen, DarkRed, Gold, Green, NavyBlue, Purple, or White.\\" - fontColor: String - \\"The font size used for the information in the tab.\\\\n\\\\nPossible values are: Size7, Size8, Size9, Size10, Size11, Size12, Size14, Size16, Size18, Size20, Size22, Size24, Size26, Size28, Size36, Size48, or Size72.\\" - fontSize: String - \\"Height of the tab in pixels.\\" - height: Int - \\"When set to **true**, the information in the tab is italic.\\" - italic: String - mergeField: mergeField_Input - \\"Specifies the page number on which the tab is located.\\\\nMust be 1 for [supplemental documents][supdocs].\\\\n\\\\n[supdocs]: /esign/guide/appendix/glossary.html#supplemental-documents\\" - pageNumber: String - \\"Unique for the recipient. It is used by the tab element to indicate which recipient is to sign the Document.\\" - recipientId: String - \\"Indicates the envelope status. Valid values are:\\\\n\\\\n* sent - The envelope is sent to the recipients. \\\\n* created - The envelope is saved as a draft and can be modified and sent later.\\" - status: String - \\"The unique identifier for the tab. The tabid can be retrieved with the [ML:GET call].\\" - tabId: String - \\"The label string associated with the tab.\\\\nThe string may be the empty string.\\\\nIf no value is provided, the tab type is used as the value.\\\\n\\\\nMaximum of 500 characters.\\" - tabLabel: String - tabOrder: String - \\"When set to **true**, the sender cannot change any attributes of the recipient. Used only when working with template recipients.\\" - templateLocked: String - \\"When set to **true**, the sender may not remove the recipient. Used only when working with template recipients.\\" - templateRequired: String - \\"When set to **true**, the information in the tab is underlined.\\" - underline: String - \\"Width of the tab in pixels.\\" - width: Int - \\"This indicates the horizontal offset of the object on the page.\\\\nDocuSign uses 72 DPI when determining position.\\\\nRequired. May be zero.\\" - xPosition: String - \\"This indicates the vertical offset of the object on the page.\\\\nDocuSign uses 72 DPI when determining position.\\\\nRequired. May be zero.\\" - yPosition: String -} - -\\"Contains information for transfering values between Salesforce data fields and DocuSign Tabs.\\" -input mergeField_Input { - \\"When set to **true**, the sender can modify the value of the custom tab during the sending process.\\" - allowSenderToEdit: String - \\"If merge field's are being used, specifies the type of the merge field. The only supported value is **salesforce**.\\" - configurationType: String - \\"Sets the object associated with the custom tab. Currently this is the Salesforce Object.\\" - path: String - \\"Specifies the row number in a Salesforce table that the merge field value corresponds to.\\" - row: String - \\"When wet to true, the information entered in the tab automatically updates the related Salesforce data when an envelope is completed.\\" - writeBack: String -} - -input checkbox_Input { - \\"Reserved for DocuSign.\\\\n\\" - anchorCaseSensitive: String - \\"Reserved for DocuSign.\\\\n\\" - anchorHorizontalAlignment: String - \\"When set to **true**, this tab is ignored if anchorString is not found in the document.\\" - anchorIgnoreIfNotPresent: String - \\"Reserved for DocuSign.\\\\n\\" - anchorMatchWholeWord: String - \\"Anchor text information for a radio button.\\" - anchorString: String - \\"Specifies units of the X and Y offset. Units could be pixels, millimeters, centimeters, or inches.\\" - anchorUnits: String - \\"Specifies the X axis location of the tab, in achorUnits, relative to the anchorString.\\" - anchorXOffset: String - \\"Specifies the Y axis location of the tab, in achorUnits, relative to the anchorString.\\" - anchorYOffset: String - \\"For conditional fields this is the TabLabel of the parent tab that controls this tab's visibility.\\" - conditionalParentLabel: String - \\"For conditional fields, this is the value of the parent tab that controls the tab's visibility.\\\\n\\\\nIf the parent tab is a Checkbox, Radio button, Optional Signature, or Optional Initial use \\\\\\"on\\\\\\" as the value to show that the parent tab is active.\\" - conditionalParentValue: String - \\"The DocuSign generated custom tab ID for the custom tab to be applied. This can only be used when adding new tabs for a recipient. When used, the new tab inherits all the custom tab properties.\\" - customTabId: String - \\"Specifies the document ID number that the tab is placed on. This must refer to an existing Document's ID attribute.\\" - documentId: String +input certifiedDelivery_Input { + \\"If a value is provided, the recipient must enter the value as the access code to view and sign the envelope. \\\\n\\\\nMaximum Length: 50 characters and it must conform to the account's access code format setting.\\\\n\\\\nIf blank, but the signer \`accessCode\` property is set in the envelope, then that value is used.\\\\n\\\\nIf blank and the signer \`accessCode\` property is not set, then the access code is not required.\\" + accessCode: String + \\"This Optional attribute indicates that the access code will be added to the email sent to the recipient; this nullifies the Security measure of Access Code on the recipient.\\" + addAccessCodeToEmail: String + \\"Specifies whether the recipient is embedded or remote. \\\\n\\\\nIf the \`clientUserId\` property is not null then the recipient is embedded. Use this field to associate the signer with their userId in your app. Authenticating the user is the responsibility of your app when you use embedded signing.\\\\n\\\\nNote: if the \`clientUserId\` property is set and either \`SignerMustHaveAccount\` or \`SignerMustLoginToSign\` property of the account settings is set to **true**, an error is generated on sending. \\\\n\\\\nMaximum length: 100 characters.\\" + clientUserId: String + \\"An optional array of strings that allows the sender to provide custom data about the recipient. This information is returned in the envelope status but otherwise not used by DocuSign. Each customField string can be a maximum of 100 characters.\\" + customFields: [String] + \\"The date and time the recipient declined the document.\\" + declinedDateTime: String + \\"The reason the recipient declined the document.\\" + declinedReason: String + \\"Reserved: For DocuSign use only.\\" + deliveredDateTime: String + \\"Reserved: For DocuSign use only.\\" + deliveryMethod: String + documentVisibility: [documentVisibility_Input] + email: String + emailNotification: recipientEmailNotification_Input + emailRecipientPostSigningURL: String + \\"Specifies a sender provided valid URL string for redirecting an embedded recipient. When using this option, the embedded recipient still receives an email from DocuSign, just as a remote recipient would. When the document link in the email is clicked the recipient is redirected, through DocuSign, to the supplied URL to complete their actions. When routing to the URL, the sender's system (the server responding to the URL) must request a recipient token to launch a signing session. \\\\n\\\\nIf set to \`SIGN_AT_DOCUSIGN\`, the recipient is directed to an embedded signing or viewing process directly at DocuSign. The signing or viewing action is initiated by the DocuSign system and the transaction activity and Certificate of Completion records will reflect this. In all other ways the process is identical to an embedded signing or viewing operation that is launched by any partner.\\\\n\\\\nIt is important to remember that in a typical embedded workflow the authentication of an embedded recipient is the responsibility of the sending application, DocuSign expects that senders will follow their own process for establishing the recipient's identity. In this workflow the recipient goes through the sending application before the embedded signing or viewing process in initiated. However, when the sending application sets \`EmbeddedRecipientStartURL=SIGN_AT_DOCUSIGN\`, the recipient goes directly to the embedded signing or viewing process bypassing the sending application and any authentication steps the sending application would use. In this case, DocuSign recommends that you use one of the normal DocuSign authentication features (Access Code, Phone Authentication, SMS Authentication, etc.) to verify the identity of the recipient.\\\\n\\\\nIf the \`clientUserId\` property is NOT set, and the \`embeddedRecipientStartURL\` is set, DocuSign will ignore the redirect URL and launch the standard signing process for the email recipient. Information can be appended to the embedded recipient start URL using merge fields. The available merge fields items are: envelopeId, recipientId, recipientName, recipientEmail, and customFields. The \`customFields\` property must be set fort the recipient or envelope. The merge fields are enclosed in double brackets. \\\\n\\\\n*Example*: \\\\n\\\\n\`http://senderHost/[[mergeField1]]/ beginSigningSession? [[mergeField2]]&[[mergeField3]]\`\\" + embeddedRecipientStartURL: String errorDetails: errorDetails_Input - \\"When set to **true**, the signer cannot change the data of the custom tab.\\" - locked: String - mergeField: mergeField_Input - \\"Specifies the tool tip text for the tab.\\" + \\"Specifies the documents that are not visible to this recipient. Document Visibility must be enabled for the account and the \`enforceSignerVisibility\` property must be set to **true** for the envelope to use this.\\\\n\\\\nWhen enforce signer visibility is enabled, documents with tabs can only be viewed by signers that have a tab on that document. Recipients that have an administrative role (Agent, Editor, or Intermediaries) or informational role (Certified Deliveries or Carbon Copies) can always see all the documents in an envelope, unless they are specifically excluded using this setting when an envelope is sent. Documents that do not have tabs are always visible to all recipients, unless they are specifically excluded using this setting when an envelope is sent.\\" + excludedDocuments: [String] + \\"Reserved:\\" + faxNumber: String + \\"Specifies authentication check by name. The names used here must be the same as the authentication type names used by the account (these name can also be found in the web console sending interface in the Identify list for a recipient,) This overrides any default authentication setting.\\\\n\\\\n*Example*: Your account has ID Check and SMS Authentication available and in the web console Identify list these appear as 'ID Check $' and 'SMS Auth $'. To use ID check in an envelope, the idCheckConfigurationName should be 'ID Check '. If you wanted to use SMS, it would be 'SMS Auth $' and you would need to add you would need to add phone number information to the \`smsAuthentication\` node.\\" + idCheckConfigurationName: String + idCheckInformationInput: idCheckInformationInput_Input + \\"When set to **true** and the envelope recipient creates a DocuSign account after signing, the Manage Account Email Notification settings are used as the default settings for the recipient's account.\\" + inheritEmailNotificationConfiguration: String name: String - \\"Specifies the page number on which the tab is located.\\\\nMust be 1 for [supplemental documents][supdocs].\\\\n\\\\n[supdocs]: /esign/guide/appendix/glossary.html#supplemental-documents\\" - pageNumber: String + \\"A note sent to the recipient in the signing email.\\\\nThis note is unique to this recipient.\\\\nIn the user interface,\\\\nit appears near the upper left corner\\\\nof the document\\\\non the signing screen.\\\\n\\\\nMaximum Length: 1000 characters.\\" + note: String + phoneAuthentication: recipientPhoneAuthentication_Input + \\"Reserved:\\" + recipientAttachments: [recipientAttachment_Input] + recipientAuthenticationStatus: authenticationStatus_Input \\"Unique for the recipient. It is used by the tab element to indicate which recipient is to sign the Document.\\" recipientId: String - \\"Optional element for field markup. When set to **true**, the signer is required to initial when they modify a shared field.\\" - requireInitialOnSharedChange: String - \\"When set to **true**, the signer is required to fill out this tab\\" - required: String - \\"When set to **true**, the checkbox is selected.\\" - selected: String - \\"When set to **true**, this custom tab is shared.\\" - shared: String + recipientIdGuid: String + \\"When set to **true**, the recipient is required to use the specified ID check method (including Phone and SMS authentication) to validate their identity.\\" + requireIdLookup: String + \\"Optional element. Specifies the role name associated with the recipient.

This is required when working with template recipients.\\" + roleName: String + \\"Specifies the routing order of the recipient in the envelope.\\" + routingOrder: String + samlAuthentication: recipientSAMLAuthentication_Input + \\"The date and time the envelope was sent.\\" + sentDateTime: String + \\"Reserved: For DocuSign use only.\\" + signedDateTime: String + \\"When set to **true** and the feature is enabled in the sender's account, the signing recipient is required to draw signatures and initials at each signature/initial tab ( instead of adopting a signature/initial style or only drawing a signature/initial once).\\" + signingGroupId: String + \\"The display name for the signing group. \\\\n\\\\nMaximum Length: 100 characters.\\" + signingGroupName: String + \\"A complex type that contains information about users in the signing group.\\" + signingGroupUsers: [userInfo_Input] + smsAuthentication: recipientSMSAuthentication_Input + \\"Lists the social ID type that can be used for recipient authentication.\\" + socialAuthentications: [socialAuthentication_Input] \\"Indicates the envelope status. Valid values are:\\\\n\\\\n* sent - The envelope is sent to the recipients. \\\\n* created - The envelope is saved as a draft and can be modified and sent later.\\" status: String - \\"The unique identifier for the tab. The tabid can be retrieved with the [ML:GET call].\\" - tabId: String - \\"The label string associated with the tab.\\\\nThe string may be the empty string.\\\\nIf no value is provided, the tab type is used as the value.\\\\n\\\\nMaximum of 500 characters.\\" - tabLabel: String - tabOrder: String \\"When set to **true**, the sender cannot change any attributes of the recipient. Used only when working with template recipients.\\" templateLocked: String \\"When set to **true**, the sender may not remove the recipient. Used only when working with template recipients.\\" templateRequired: String - \\"This indicates the horizontal offset of the object on the page.\\\\nDocuSign uses 72 DPI when determining position.\\\\nRequired. May be zero.\\" - xPosition: String - \\"This indicates the vertical offset of the object on the page. DocuSign uses 72 DPI when determining position.\\" - yPosition: String + totalTabCount: String + \\"The user ID of the user being accessed. Generally this is the user ID of the authenticated user, but if the authenticated user is an Admin on the account, this may be another user the Admin user is accessing.\\" + userId: String } -input company_Input { - \\"Reserved for DocuSign.\\\\n\\" - anchorCaseSensitive: String - \\"Reserved for DocuSign.\\\\n\\" - anchorHorizontalAlignment: String - \\"When set to **true**, this tab is ignored if anchorString is not found in the document.\\" - anchorIgnoreIfNotPresent: String - \\"Reserved for DocuSign.\\\\n\\" - anchorMatchWholeWord: String - \\"Anchor text information for a radio button.\\" - anchorString: String - \\"Specifies units of the X and Y offset. Units could be pixels, millimeters, centimeters, or inches.\\" - anchorUnits: String - \\"Specifies the X axis location of the tab, in achorUnits, relative to the anchorString.\\" - anchorXOffset: String - \\"Specifies the Y axis location of the tab, in achorUnits, relative to the anchorString.\\" - anchorYOffset: String - \\"When set to **true**, the information in the tab is bold.\\" - bold: String - \\"When set to **true**, the field appears normally while the recipient is adding or modifying the information in the field, but the data is not visible (the characters are hidden by asterisks) to any other signer or the sender.\\\\n\\\\nWhen an envelope is completed the information is available to the sender through the Form Data link in the DocuSign Console.\\\\n\\\\nThis setting applies only to text boxes and does not affect list boxes, radio buttons, or check boxes.\\" - concealValueOnDocument: String - \\"For conditional fields this is the TabLabel of the parent tab that controls this tab's visibility.\\" - conditionalParentLabel: String - \\"For conditional fields, this is the value of the parent tab that controls the tab's visibility.\\\\n\\\\nIf the parent tab is a Checkbox, Radio button, Optional Signature, or Optional Initial use \\\\\\"on\\\\\\" as the value to show that the parent tab is active.\\" - conditionalParentValue: String - \\"The DocuSign generated custom tab ID for the custom tab to be applied. This can only be used when adding new tabs for a recipient. When used, the new tab inherits all the custom tab properties.\\" - customTabId: String - \\"When set to **true**, disables the auto sizing of single line text boxes in the signing screen when the signer enters data. If disabled users will only be able enter as much data as the text box can hold. By default this is false. This property only affects single line text boxes.\\" - disableAutoSize: String - \\"Specifies the document ID number that the tab is placed on. This must refer to an existing Document's ID attribute.\\" - documentId: String +input editor_Input { + \\"If a value is provided, the recipient must enter the value as the access code to view and sign the envelope. \\\\n\\\\nMaximum Length: 50 characters and it must conform to the account's access code format setting.\\\\n\\\\nIf blank, but the signer \`accessCode\` property is set in the envelope, then that value is used.\\\\n\\\\nIf blank and the signer \`accessCode\` property is not set, then the access code is not required.\\" + accessCode: String + \\"This Optional attribute indicates that the access code will be added to the email sent to the recipient; this nullifies the Security measure of Access Code on the recipient.\\" + addAccessCodeToEmail: String + \\"Specifies whether the recipient is embedded or remote. \\\\n\\\\nIf the \`clientUserId\` property is not null then the recipient is embedded. Use this field to associate the signer with their userId in your app. Authenticating the user is the responsibility of your app when you use embedded signing.\\\\n\\\\nNote: if the \`clientUserId\` property is set and either \`SignerMustHaveAccount\` or \`SignerMustLoginToSign\` property of the account settings is set to **true**, an error is generated on sending. \\\\n\\\\nMaximum length: 100 characters.\\" + clientUserId: String + \\"An optional array of strings that allows the sender to provide custom data about the recipient. This information is returned in the envelope status but otherwise not used by DocuSign. Each customField string can be a maximum of 100 characters.\\" + customFields: [String] + \\"The date and time the recipient declined the document.\\" + declinedDateTime: String + \\"The reason the recipient declined the document.\\" + declinedReason: String + \\"Reserved: For DocuSign use only.\\" + deliveredDateTime: String + \\"Reserved: For DocuSign use only.\\" + deliveryMethod: String + documentVisibility: [documentVisibility_Input] + \\"Email id of the recipient. Notification of the document to sign is sent to this email id. \\\\n\\\\nMaximum length: 100 characters.\\" + email: String + emailNotification: recipientEmailNotification_Input + emailRecipientPostSigningURL: String + \\"Specifies a sender provided valid URL string for redirecting an embedded recipient. When using this option, the embedded recipient still receives an email from DocuSign, just as a remote recipient would. When the document link in the email is clicked the recipient is redirected, through DocuSign, to the supplied URL to complete their actions. When routing to the URL, the sender's system (the server responding to the URL) must request a recipient token to launch a signing session. \\\\n\\\\nIf set to \`SIGN_AT_DOCUSIGN\`, the recipient is directed to an embedded signing or viewing process directly at DocuSign. The signing or viewing action is initiated by the DocuSign system and the transaction activity and Certificate of Completion records will reflect this. In all other ways the process is identical to an embedded signing or viewing operation that is launched by any partner.\\\\n\\\\nIt is important to remember that in a typical embedded workflow the authentication of an embedded recipient is the responsibility of the sending application, DocuSign expects that senders will follow their own process for establishing the recipient's identity. In this workflow the recipient goes through the sending application before the embedded signing or viewing process in initiated. However, when the sending application sets \`EmbeddedRecipientStartURL=SIGN_AT_DOCUSIGN\`, the recipient goes directly to the embedded signing or viewing process bypassing the sending application and any authentication steps the sending application would use. In this case, DocuSign recommends that you use one of the normal DocuSign authentication features (Access Code, Phone Authentication, SMS Authentication, etc.) to verify the identity of the recipient.\\\\n\\\\nIf the \`clientUserId\` property is NOT set, and the \`embeddedRecipientStartURL\` is set, DocuSign will ignore the redirect URL and launch the standard signing process for the email recipient. Information can be appended to the embedded recipient start URL using merge fields. The available merge fields items are: envelopeId, recipientId, recipientName, recipientEmail, and customFields. The \`customFields\` property must be set fort the recipient or envelope. The merge fields are enclosed in double brackets. \\\\n\\\\n*Example*: \\\\n\\\\n\`http://senderHost/[[mergeField1]]/ beginSigningSession? [[mergeField2]]&[[mergeField3]]\`\\" + embeddedRecipientStartURL: String errorDetails: errorDetails_Input - \\"The font to be used for the tab value. Supported Fonts: Arial, Arial, ArialNarrow, Calibri, CourierNew, Garamond, Georgia, Helvetica, LucidaConsole, Tahoma, TimesNewRoman, Trebuchet, Verdana, MSGothic, MSMincho, Default.\\" - font: String - \\"The font color used for the information in the tab.\\\\n\\\\nPossible values are: Black, BrightBlue, BrightRed, DarkGreen, DarkRed, Gold, Green, NavyBlue, Purple, or White.\\" - fontColor: String - \\"The font size used for the information in the tab.\\\\n\\\\nPossible values are: Size7, Size8, Size9, Size10, Size11, Size12, Size14, Size16, Size18, Size20, Size22, Size24, Size26, Size28, Size36, Size48, or Size72.\\" - fontSize: String - \\"When set to **true**, the information in the tab is italic.\\" - italic: String - \\"When set to **true**, the signer cannot change the data of the custom tab.\\" - locked: String - \\"An optional value that describes the maximum length of the property when the property is a string.\\" - maxLength: Int - mergeField: mergeField_Input - \\"Specifies the tool tip text for the tab.\\" + \\"Reserved:\\" + faxNumber: String + \\"Specifies authentication check by name. The names used here must be the same as the authentication type names used by the account (these name can also be found in the web console sending interface in the Identify list for a recipient,) This overrides any default authentication setting.\\\\n\\\\n*Example*: Your account has ID Check and SMS Authentication available and in the web console Identify list these appear as 'ID Check $' and 'SMS Auth $'. To use ID check in an envelope, the idCheckConfigurationName should be 'ID Check '. If you wanted to use SMS, it would be 'SMS Auth $' and you would need to add you would need to add phone number information to the \`smsAuthentication\` node.\\" + idCheckConfigurationName: String + idCheckInformationInput: idCheckInformationInput_Input + \\"When set to **true** and the envelope recipient creates a DocuSign account after signing, the Manage Account Email Notification settings are used as the default settings for the recipient's account.\\" + inheritEmailNotificationConfiguration: String + \\"legal name of the recipient.\\\\n\\\\nMaximum Length: 100 characters.\\" name: String - \\"The initial value of the tab when it was sent to the recipient.\\" - originalValue: String - \\"Specifies the page number on which the tab is located.\\\\nMust be 1 for [supplemental documents][supdocs].\\\\n\\\\n[supdocs]: /esign/guide/appendix/glossary.html#supplemental-documents\\" - pageNumber: String + \\"A note sent to the recipient in the signing email.\\\\nThis note is unique to this recipient.\\\\nIn the user interface,\\\\nit appears near the upper left corner\\\\nof the document\\\\non the signing screen.\\\\n\\\\nMaximum Length: 1000 characters.\\" + note: String + phoneAuthentication: recipientPhoneAuthentication_Input + \\"Reserved:\\" + recipientAttachments: [recipientAttachment_Input] + recipientAuthenticationStatus: authenticationStatus_Input \\"Unique for the recipient. It is used by the tab element to indicate which recipient is to sign the Document.\\" recipientId: String - \\"When set to **true**, the signer is required to fill out this tab\\" - required: String + recipientIdGuid: String + \\"When set to **true**, the recipient is required to use the specified ID check method (including Phone and SMS authentication) to validate their identity.\\" + requireIdLookup: String + \\"Optional element. Specifies the role name associated with the recipient.

This is required when working with template recipients.\\" + roleName: String + \\"Specifies the routing order of the recipient in the envelope.\\" + routingOrder: String + samlAuthentication: recipientSAMLAuthentication_Input + \\"The date and time the envelope was sent.\\" + sentDateTime: String + \\"Reserved: For DocuSign use only.\\" + signedDateTime: String + \\"When set to **true** and the feature is enabled in the sender's account, the signing recipient is required to draw signatures and initials at each signature/initial tab ( instead of adopting a signature/initial style or only drawing a signature/initial once).\\" + signingGroupId: String + \\"The display name for the signing group. \\\\n\\\\nMaximum Length: 100 characters.\\" + signingGroupName: String + \\"A complex type that contains information about users in the signing group.\\" + signingGroupUsers: [userInfo_Input] + smsAuthentication: recipientSMSAuthentication_Input + \\"Lists the social ID type that can be used for recipient authentication.\\" + socialAuthentications: [socialAuthentication_Input] \\"Indicates the envelope status. Valid values are:\\\\n\\\\n* sent - The envelope is sent to the recipients. \\\\n* created - The envelope is saved as a draft and can be modified and sent later.\\" status: String - \\"The unique identifier for the tab. The tabid can be retrieved with the [ML:GET call].\\" - tabId: String - \\"The label string associated with the tab.\\\\nThe string may be the empty string.\\\\nIf no value is provided, the tab type is used as the value.\\\\n\\\\nMaximum of 500 characters.\\" - tabLabel: String - tabOrder: String \\"When set to **true**, the sender cannot change any attributes of the recipient. Used only when working with template recipients.\\" templateLocked: String \\"When set to **true**, the sender may not remove the recipient. Used only when working with template recipients.\\" templateRequired: String - \\"When set to **true**, the information in the tab is underlined.\\" - underline: String - \\"Specifies the value of the tab.\\" - value: String - \\"Width of the tab in pixels.\\" - width: Int - \\"This indicates the horizontal offset of the object on the page.\\\\nDocuSign uses 72 DPI when determining position.\\\\nRequired. May be zero.\\" - xPosition: String - \\"This indicates the vertical offset of the object on the page. DocuSign uses 72 DPI when determining position.\\" - yPosition: String + totalTabCount: String + \\"The user ID of the user being accessed. Generally this is the user ID of the authenticated user, but if the authenticated user is an Admin on the account, this may be another user the Admin user is accessing.\\" + userId: String } -input dateSigned_Input { - \\"Reserved for DocuSign.\\\\n\\" - anchorCaseSensitive: String - \\"Reserved for DocuSign.\\\\n\\" - anchorHorizontalAlignment: String - \\"When set to **true**, this tab is ignored if anchorString is not found in the document.\\" - anchorIgnoreIfNotPresent: String - \\"Reserved for DocuSign.\\\\n\\" - anchorMatchWholeWord: String - \\"Anchor text information for a radio button.\\" - anchorString: String - \\"Specifies units of the X and Y offset. Units could be pixels, millimeters, centimeters, or inches.\\" - anchorUnits: String - \\"Specifies the X axis location of the tab, in achorUnits, relative to the anchorString.\\" - anchorXOffset: String - \\"Specifies the Y axis location of the tab, in achorUnits, relative to the anchorString.\\" - anchorYOffset: String - \\"When set to **true**, the information in the tab is bold.\\" - bold: String - \\"For conditional fields this is the TabLabel of the parent tab that controls this tab's visibility.\\" - conditionalParentLabel: String - \\"For conditional fields, this is the value of the parent tab that controls the tab's visibility.\\\\n\\\\nIf the parent tab is a Checkbox, Radio button, Optional Signature, or Optional Initial use \\\\\\"on\\\\\\" as the value to show that the parent tab is active.\\" - conditionalParentValue: String - \\"The DocuSign generated custom tab ID for the custom tab to be applied. This can only be used when adding new tabs for a recipient. When used, the new tab inherits all the custom tab properties.\\" - customTabId: String - \\"Specifies the document ID number that the tab is placed on. This must refer to an existing Document's ID attribute.\\" - documentId: String +\\"An in-person recipient is a DocuSign user,\\\\nacting as a Signing Host,\\\\nwho is in the same physical location as the signer.\\\\nTo learn about fields used\\\\nfor eNotary feature,\\\\nsee the [EnvelopeRecipients resource][enveloperecipientsInPerson].\\\\n\\\\n[enveloperecipientsInPerson]: /esign/restapi/Envelopes/EnvelopeRecipients/#in-person-signers-recipient\\" +input inPersonSigner_Input { + \\"If a value is provided, the recipient must enter the value as the access code to view and sign the envelope. \\\\n\\\\nMaximum Length: 50 characters and it must conform to the account's access code format setting.\\\\n\\\\nIf blank, but the signer \`accessCode\` property is set in the envelope, then that value is used.\\\\n\\\\nIf blank and the signer \`accessCode\` property is not set, then the access code is not required.\\" + accessCode: String + \\"This Optional attribute indicates that the access code will be added to the email sent to the recipient; this nullifies the Security measure of Access Code on the recipient.\\" + addAccessCodeToEmail: String + \\"Specifies whether auto navigation is set for the recipient.\\" + autoNavigation: String + \\"When set to **true**, specifies that the signer can perform the signing ceremony offline.\\" + canSignOffline: String + \\"Specifies whether the recipient is embedded or remote. \\\\n\\\\nIf the \`clientUserId\` property is not null then the recipient is embedded. Use this field to associate the signer with their userId in your app. Authenticating the user is the responsibility of your app when you use embedded signing.\\\\n\\\\nNote: if the \`clientUserId\` property is set and either \`SignerMustHaveAccount\` or \`SignerMustLoginToSign\` property of the account settings is set to **true**, an error is generated on sending. \\\\n\\\\nMaximum length: 100 characters.\\" + clientUserId: String + creationReason: String + \\"An optional array of strings that allows the sender to provide custom data about the recipient. This information is returned in the envelope status but otherwise not used by DocuSign. Each customField string can be a maximum of 100 characters.\\" + customFields: [String] + \\"The date and time the recipient declined the document.\\" + declinedDateTime: String + \\"The reason the recipient declined the document.\\" + declinedReason: String + \\"When set to **true**,\\\\nthis is the default recipient for the envelope.\\\\nThis option is used when creating an envelope from a template.\\" + defaultRecipient: String + \\"Reserved: For DocuSign use only.\\" + deliveredDateTime: String + \\"Reserved: For DocuSign use only.\\" + deliveryMethod: String + documentVisibility: [documentVisibility_Input] + \\"The signer's email address in an eNotary flow.\\\\n\\\\nUse only when \`inPersonSigningType\` is \`notary\`.\\\\nFor regular in-person-signer flow, use \`signerEmail\` instead.\\" + email: String + emailNotification: recipientEmailNotification_Input + \\"Specifies a sender provided valid URL string for redirecting an embedded recipient. When using this option, the embedded recipient still receives an email from DocuSign, just as a remote recipient would. When the document link in the email is clicked the recipient is redirected, through DocuSign, to the supplied URL to complete their actions. When routing to the URL, the sender's system (the server responding to the URL) must request a recipient token to launch a signing session. \\\\n\\\\nIf set to \`SIGN_AT_DOCUSIGN\`, the recipient is directed to an embedded signing or viewing process directly at DocuSign. The signing or viewing action is initiated by the DocuSign system and the transaction activity and Certificate of Completion records will reflect this. In all other ways the process is identical to an embedded signing or viewing operation that is launched by any partner.\\\\n\\\\nIt is important to remember that in a typical embedded workflow the authentication of an embedded recipient is the responsibility of the sending application, DocuSign expects that senders will follow their own process for establishing the recipient's identity. In this workflow the recipient goes through the sending application before the embedded signing or viewing process in initiated. However, when the sending application sets \`EmbeddedRecipientStartURL=SIGN_AT_DOCUSIGN\`, the recipient goes directly to the embedded signing or viewing process bypassing the sending application and any authentication steps the sending application would use. In this case, DocuSign recommends that you use one of the normal DocuSign authentication features (Access Code, Phone Authentication, SMS Authentication, etc.) to verify the identity of the recipient.\\\\n\\\\nIf the \`clientUserId\` property is NOT set, and the \`embeddedRecipientStartURL\` is set, DocuSign will ignore the redirect URL and launch the standard signing process for the email recipient. Information can be appended to the embedded recipient start URL using merge fields. The available merge fields items are: envelopeId, recipientId, recipientName, recipientEmail, and customFields. The \`customFields\` property must be set fort the recipient or envelope. The merge fields are enclosed in double brackets. \\\\n\\\\n*Example*: \\\\n\\\\n\`http://senderHost/[[mergeField1]]/ beginSigningSession? [[mergeField2]]&[[mergeField3]]\`\\" + embeddedRecipientStartURL: String errorDetails: errorDetails_Input - \\"The font to be used for the tab value. Supported Fonts: Arial, Arial, ArialNarrow, Calibri, CourierNew, Garamond, Georgia, Helvetica, LucidaConsole, Tahoma, TimesNewRoman, Trebuchet, Verdana, MSGothic, MSMincho, Default.\\" - font: String - \\"The font color used for the information in the tab.\\\\n\\\\nPossible values are: Black, BrightBlue, BrightRed, DarkGreen, DarkRed, Gold, Green, NavyBlue, Purple, or White.\\" - fontColor: String - \\"The font size used for the information in the tab.\\\\n\\\\nPossible values are: Size7, Size8, Size9, Size10, Size11, Size12, Size14, Size16, Size18, Size20, Size22, Size24, Size26, Size28, Size36, Size48, or Size72.\\" - fontSize: String - \\"When set to **true**, the information in the tab is italic.\\" - italic: String - mergeField: mergeField_Input + \\"Reserved:\\" + faxNumber: String + \\"The email address of the signing host.\\\\nThis is the DocuSign user that is hosting the in-person signing session.\\\\n\\\\nRequired when \`inPersonSigningType\` is \`inPersonSigner\`.\\\\nFor eNotary flow, use \`email\` instead.\\\\n\\\\nMaximum Length: 100 characters.\\" + hostEmail: String + \\"The name of the signing host.\\\\nThis is the DocuSign user that is hosting the in-person signing session.\\\\n\\\\nRequired when \`inPersonSigningType\` is \`inPersonSigner\`.\\\\nFor eNotary flow, use \`name\` instead.\\\\n\\\\nMaximum Length: 100 characters.\\" + hostName: String + \\"Specifies authentication check by name. The names used here must be the same as the authentication type names used by the account (these name can also be found in the web console sending interface in the Identify list for a recipient,) This overrides any default authentication setting.\\\\n\\\\n*Example*: Your account has ID Check and SMS Authentication available and in the web console Identify list these appear as 'ID Check $' and 'SMS Auth $'. To use ID check in an envelope, the idCheckConfigurationName should be 'ID Check '. If you wanted to use SMS, it would be 'SMS Auth $' and you would need to add you would need to add phone number information to the \`smsAuthentication\` node.\\" + idCheckConfigurationName: String + idCheckInformationInput: idCheckInformationInput_Input + \\"Specifies whether the envelope uses the eNotary feature.\\\\nValid values:\\\\n\\\\n* \`inPersonSigner\` The envelope uses the normal in-person signing flow.\\\\n* \`notary\`: The envelope uses the eNotary in-person signing flow.\\" + inPersonSigningType: String + \\"When set to **true** and the envelope recipient creates a DocuSign account after signing, the Manage Account Email Notification settings are used as the default settings for the recipient's account.\\" + inheritEmailNotificationConfiguration: String + \\"The signer's full legal name in an eNotary flow.\\\\n\\\\nRequired when \`inPersonSigningType\` is \`notary\`.\\\\nFor regular in-person-signer flow, use \`signerName\` instead.\\\\n\\\\nMaximum Length: 100 characters.\\" name: String - \\"Specifies the page number on which the tab is located.\\\\nMust be 1 for [supplemental documents][supdocs].\\\\n\\\\n[supdocs]: /esign/guide/appendix/glossary.html#supplemental-documents\\" - pageNumber: String + notaryHost: notaryHost_Input + \\"A note sent to the in-person signer in the signing email.\\\\nThis note is visible only to this recipient.\\\\n\\\\nMaximum Length: 1000 characters.\\" + note: String + phoneAuthentication: recipientPhoneAuthentication_Input + \\"Reserved:\\" + recipientAttachments: [recipientAttachment_Input] + recipientAuthenticationStatus: authenticationStatus_Input \\"Unique for the recipient. It is used by the tab element to indicate which recipient is to sign the Document.\\" recipientId: String + recipientIdGuid: String + \\"The default signature provider is the DocuSign Electronic signature system. This parameter is used to specify one or more Standards Based Signature (digital signature) providers for the signer to use. [More information](../../../../guide/appendix/standards_based_signatures.html)\\" + recipientSignatureProviders: [recipientSignatureProvider_Input] + recipientSuppliesTabs: String + \\"When set to **true**, the recipient is required to use the specified ID check method (including Phone and SMS authentication) to validate their identity.\\" + requireIdLookup: String + \\"When set to **true**, the signer must print, sign, and upload or fax the signed documents to DocuSign.\\" + requireSignOnPaper: String + \\"By default, DocuSign signers create electronic signatures. This field can be used to require the signer to use a SAFE-BioPharma digital certificate for signing.\\\\n\\\\nThis parameter should only be used to select a SAFE-BioPharma certificate. New integrations should use the \`recipientSignatureProviders\` parameter for other types of digital certificates. \\\\n\\\\nSet this parameter to \`safe\` to use a SAFE-BioPharma certificate.\\\\n\\\\nThe signer must be enrolled in the SAFE program to sign with a SAFE certificate.\\" + requireSignerCertificate: String + \\"Optional element. Specifies the role name associated with the recipient.

This is required when working with template recipients.\\" + roleName: String + \\"Specifies the routing order of the recipient in the envelope.\\" + routingOrder: String + samlAuthentication: recipientSAMLAuthentication_Input + \\"The date and time the envelope was sent.\\" + sentDateTime: String + \\"When set to **true**, specifies that the signer must sign in all locations.\\" + signInEachLocation: String + signatureInfo: recipientSignatureInformation_Input + \\"Reserved: For DocuSign use only.\\" + signedDateTime: String + \\"The in-person signer's email address.\\\\n\\\\nRequired when \`inPersonSigningType\` is \`inPersonSigner\`.\\\\nFor eNotary flow, use \`email\` instead.\\\\n\\\\nMaximum Length: 100 characters.\\" + signerEmail: String + \\"The in-person signer's full legal name.\\\\n\\\\nRequired when \`inPersonSigningType\` is \`inPersonSigner\`.\\\\nFor eNotary flow, use \`name\` instead.\\\\n\\\\nMaximum Length: 100 characters.\\" + signerName: String + \\"When set to **true** and the feature is enabled in the sender's account, the signing recipient is required to draw signatures and initials at each signature/initial tab ( instead of adopting a signature/initial style or only drawing a signature/initial once).\\" + signingGroupId: String + \\"The display name for the signing group. \\\\n\\\\nMaximum Length: 100 characters.\\" + signingGroupName: String + \\"A complex type that contains information about users in the signing group.\\" + signingGroupUsers: [userInfo_Input] + smsAuthentication: recipientSMSAuthentication_Input + \\"Lists the social ID type that can be used for recipient authentication.\\" + socialAuthentications: [socialAuthentication_Input] \\"Indicates the envelope status. Valid values are:\\\\n\\\\n* sent - The envelope is sent to the recipients. \\\\n* created - The envelope is saved as a draft and can be modified and sent later.\\" status: String - \\"The unique identifier for the tab. The tabid can be retrieved with the [ML:GET call].\\" - tabId: String - \\"The label string associated with the tab.\\\\nThe string may be the empty string.\\\\nIf no value is provided, the tab type is used as the value.\\\\n\\\\nMaximum of 500 characters.\\" - tabLabel: String - tabOrder: String + tabs: EnvelopeRecipientTabs_Input \\"When set to **true**, the sender cannot change any attributes of the recipient. Used only when working with template recipients.\\" templateLocked: String \\"When set to **true**, the sender may not remove the recipient. Used only when working with template recipients.\\" templateRequired: String - \\"When set to **true**, the information in the tab is underlined.\\" - underline: String - \\"Specifies the value of the tab.\\" - value: String - \\"This indicates the horizontal offset of the object on the page.\\\\nDocuSign uses 72 DPI when determining position.\\\\nRequired. May be zero.\\" - xPosition: String - \\"This indicates the vertical offset of the object on the page. DocuSign uses 72 DPI when determining position.\\" - yPosition: String + totalTabCount: String + \\"The user ID of the user being accessed. Generally this is the user ID of the authenticated user, but if the authenticated user is an Admin on the account, this may be another user the Admin user is accessing.\\" + userId: String } -input date_Input { - \\"Reserved for DocuSign.\\\\n\\" - anchorCaseSensitive: String - \\"Reserved for DocuSign.\\\\n\\" - anchorHorizontalAlignment: String - \\"When set to **true**, this tab is ignored if anchorString is not found in the document.\\" - anchorIgnoreIfNotPresent: String - \\"Reserved for DocuSign.\\\\n\\" - anchorMatchWholeWord: String - \\"Anchor text information for a radio button.\\" - anchorString: String - \\"Specifies units of the X and Y offset. Units could be pixels, millimeters, centimeters, or inches.\\" - anchorUnits: String - \\"Specifies the X axis location of the tab, in achorUnits, relative to the anchorString.\\" - anchorXOffset: String - \\"Specifies the Y axis location of the tab, in achorUnits, relative to the anchorString.\\" - anchorYOffset: String - \\"When set to **true**, the information in the tab is bold.\\" - bold: String - \\"When set to **true**, the field appears normally while the recipient is adding or modifying the information in the field, but the data is not visible (the characters are hidden by asterisks) to any other signer or the sender.\\\\n\\\\nWhen an envelope is completed the information is available to the sender through the Form Data link in the DocuSign Console.\\\\n\\\\nThis setting applies only to text boxes and does not affect list boxes, radio buttons, or check boxes.\\" - concealValueOnDocument: String - \\"For conditional fields this is the TabLabel of the parent tab that controls this tab's visibility.\\" - conditionalParentLabel: String - \\"For conditional fields, this is the value of the parent tab that controls the tab's visibility.\\\\n\\\\nIf the parent tab is a Checkbox, Radio button, Optional Signature, or Optional Initial use \\\\\\"on\\\\\\" as the value to show that the parent tab is active.\\" - conditionalParentValue: String - \\"The DocuSign generated custom tab ID for the custom tab to be applied. This can only be used when adding new tabs for a recipient. When used, the new tab inherits all the custom tab properties.\\" - customTabId: String - \\"When set to **true**, disables the auto sizing of single line text boxes in the signing screen when the signer enters data. If disabled users will only be able enter as much data as the text box can hold. By default this is false. This property only affects single line text boxes.\\" - disableAutoSize: String - \\"Specifies the document ID number that the tab is placed on. This must refer to an existing Document's ID attribute.\\" - documentId: String +\\"This object is used only when \`inPersonSigningType\` in the \`inPersonSigner\` object is \`notary\`.\\\\n\\\\nIt describes information about the notary host.\\\\nThe following information is required\\\\nwhen using the eNotary in-person signing flow:\\\\n\\\\n* \`name\`: Specifies the notary's full legal name.\\\\n* \`email\`: Specifies the notary's email address.\\\\n* \`recipientId\`: A unique ID number for the notary signing host.\\" +input notaryHost_Input { + \\"If a value is provided, the recipient must enter the value as the access code to view and sign the envelope. \\\\n\\\\nMaximum Length: 50 characters and it must conform to the account's access code format setting.\\\\n\\\\nIf blank, but the signer \`accessCode\` property is set in the envelope, then that value is used.\\\\n\\\\nIf blank and the signer \`accessCode\` property is not set, then the access code is not required.\\" + accessCode: String + \\"This Optional attribute indicates that the access code will be added to the email sent to the recipient; this nullifies the Security measure of Access Code on the recipient.\\" + addAccessCodeToEmail: String + \\"Specifies whether the recipient is embedded or remote. \\\\n\\\\nIf the \`clientUserId\` property is not null then the recipient is embedded. Use this field to associate the signer with their userId in your app. Authenticating the user is the responsibility of your app when you use embedded signing.\\\\n\\\\nNote: if the \`clientUserId\` property is set and either \`SignerMustHaveAccount\` or \`SignerMustLoginToSign\` property of the account settings is set to **true**, an error is generated on sending. \\\\n\\\\nMaximum length: 100 characters.\\" + clientUserId: String + \\"An optional array of strings that allows the sender to provide custom data about the recipient. This information is returned in the envelope status but otherwise not used by DocuSign. Each customField string can be a maximum of 100 characters.\\" + customFields: [String] + \\"The date and time the recipient declined the document.\\" + declinedDateTime: String + \\"The reason the recipient declined the document.\\" + declinedReason: String + \\"Reserved: For DocuSign use only.\\" + deliveredDateTime: String + \\"Reserved: For DocuSign use only.\\" + deliveryMethod: String + documentVisibility: [documentVisibility_Input] + \\"The notary's email address.\\\\n\\\\nMaximum Length: 100 characters.\\" + email: String + emailNotification: recipientEmailNotification_Input + \\"Specifies a sender provided valid URL string for redirecting an embedded recipient. When using this option, the embedded recipient still receives an email from DocuSign, just as a remote recipient would. When the document link in the email is clicked the recipient is redirected, through DocuSign, to the supplied URL to complete their actions. When routing to the URL, the sender's system (the server responding to the URL) must request a recipient token to launch a signing session. \\\\n\\\\nIf set to \`SIGN_AT_DOCUSIGN\`, the recipient is directed to an embedded signing or viewing process directly at DocuSign. The signing or viewing action is initiated by the DocuSign system and the transaction activity and Certificate of Completion records will reflect this. In all other ways the process is identical to an embedded signing or viewing operation that is launched by any partner.\\\\n\\\\nIt is important to remember that in a typical embedded workflow the authentication of an embedded recipient is the responsibility of the sending application, DocuSign expects that senders will follow their own process for establishing the recipient's identity. In this workflow the recipient goes through the sending application before the embedded signing or viewing process in initiated. However, when the sending application sets \`EmbeddedRecipientStartURL=SIGN_AT_DOCUSIGN\`, the recipient goes directly to the embedded signing or viewing process bypassing the sending application and any authentication steps the sending application would use. In this case, DocuSign recommends that you use one of the normal DocuSign authentication features (Access Code, Phone Authentication, SMS Authentication, etc.) to verify the identity of the recipient.\\\\n\\\\nIf the \`clientUserId\` property is NOT set, and the \`embeddedRecipientStartURL\` is set, DocuSign will ignore the redirect URL and launch the standard signing process for the email recipient. Information can be appended to the embedded recipient start URL using merge fields. The available merge fields items are: envelopeId, recipientId, recipientName, recipientEmail, and customFields. The \`customFields\` property must be set fort the recipient or envelope. The merge fields are enclosed in double brackets. \\\\n\\\\n*Example*: \\\\n\\\\n\`http://senderHost/[[mergeField1]]/ beginSigningSession? [[mergeField2]]&[[mergeField3]]\`\\" + embeddedRecipientStartURL: String errorDetails: errorDetails_Input - \\"The font to be used for the tab value. Supported Fonts: Arial, Arial, ArialNarrow, Calibri, CourierNew, Garamond, Georgia, Helvetica, LucidaConsole, Tahoma, TimesNewRoman, Trebuchet, Verdana, MSGothic, MSMincho, Default.\\" - font: String - \\"The font color used for the information in the tab.\\\\n\\\\nPossible values are: Black, BrightBlue, BrightRed, DarkGreen, DarkRed, Gold, Green, NavyBlue, Purple, or White.\\" - fontColor: String - \\"The font size used for the information in the tab.\\\\n\\\\nPossible values are: Size7, Size8, Size9, Size10, Size11, Size12, Size14, Size16, Size18, Size20, Size22, Size24, Size26, Size28, Size36, Size48, or Size72.\\" - fontSize: String - \\"When set to **true**, the information in the tab is italic.\\" - italic: String - \\"When set to **true**, the signer cannot change the data of the custom tab.\\" - locked: String - \\"An optional value that describes the maximum length of the property when the property is a string.\\" - maxLength: Int - mergeField: mergeField_Input + \\"Reserved:\\" + faxNumber: String + hostRecipientId: String + \\"Specifies authentication check by name. The names used here must be the same as the authentication type names used by the account (these name can also be found in the web console sending interface in the Identify list for a recipient,) This overrides any default authentication setting.\\\\n\\\\n*Example*: Your account has ID Check and SMS Authentication available and in the web console Identify list these appear as 'ID Check $' and 'SMS Auth $'. To use ID check in an envelope, the idCheckConfigurationName should be 'ID Check '. If you wanted to use SMS, it would be 'SMS Auth $' and you would need to add you would need to add phone number information to the \`smsAuthentication\` node.\\" + idCheckConfigurationName: String + idCheckInformationInput: idCheckInformationInput_Input + \\"When set to **true** and the envelope recipient creates a DocuSign account after signing, the Manage Account Email Notification settings are used as the default settings for the recipient's account.\\" + inheritEmailNotificationConfiguration: String + \\"The notary's full legal name.\\\\n\\\\nMaximum Length: 100 characters.\\" name: String - \\"The initial value of the tab when it was sent to the recipient.\\" - originalValue: String - \\"Specifies the page number on which the tab is located.\\\\nMust be 1 for [supplemental documents][supdocs].\\\\n\\\\n[supdocs]: /esign/guide/appendix/glossary.html#supplemental-documents\\" - pageNumber: String + notaryEmailMetadata: propertyMetadata_Input + notaryNameMetadata: propertyMetadata_Input + \\"A note sent to the notary in the signing email.\\\\nThis note is visible only to this notary.\\\\n\\\\nMaximum Length: 1000 characters.\\" + note: String + phoneAuthentication: recipientPhoneAuthentication_Input + \\"Reserved:\\" + recipientAttachments: [recipientAttachment_Input] + recipientAuthenticationStatus: authenticationStatus_Input \\"Unique for the recipient. It is used by the tab element to indicate which recipient is to sign the Document.\\" recipientId: String - \\"When set to **true** and shared is true, information must be entered in this field to complete the envelope.\\" - requireAll: String - \\"Optional element for field markup. When set to **true**, the signer is required to initial when they modify a shared field.\\" - requireInitialOnSharedChange: String - \\"When set to **true**, the signer is required to fill out this tab\\" - required: String - \\"When set to **true**, the sender must populate the tab before an envelope can be sent using the template. \\\\n\\\\nThis value tab can only be changed by modifying (PUT) the template. \\\\n\\\\nTabs with a \`senderRequired\` value of true cannot be deleted from an envelope.\\" - senderRequired: String - \\"When set to **true**, this custom tab is shared.\\" - shared: String + recipientIdGuid: String + \\"When set to **true**, the recipient is required to use the specified ID check method (including Phone and SMS authentication) to validate their identity.\\" + requireIdLookup: String + \\"Optional element. Specifies the role name associated with the recipient.

This is required when working with template recipients.\\" + roleName: String + \\"Specifies the routing order of the recipient in the envelope.\\" + routingOrder: String + samlAuthentication: recipientSAMLAuthentication_Input + \\"The date and time the envelope was sent.\\" + sentDateTime: String + \\"Reserved: For DocuSign use only.\\" + signedDateTime: String + smsAuthentication: recipientSMSAuthentication_Input + \\"Lists the social ID type that can be used for recipient authentication.\\" + socialAuthentications: [socialAuthentication_Input] \\"Indicates the envelope status. Valid values are:\\\\n\\\\n* sent - The envelope is sent to the recipients. \\\\n* created - The envelope is saved as a draft and can be modified and sent later.\\" status: String - \\"The unique identifier for the tab. The tabid can be retrieved with the [ML:GET call].\\" - tabId: String - \\"The label string associated with the tab.\\\\nThe string may be the empty string.\\\\nIf no value is provided, the tab type is used as the value.\\\\n\\\\nMaximum of 500 characters.\\" - tabLabel: String - tabOrder: String \\"When set to **true**, the sender cannot change any attributes of the recipient. Used only when working with template recipients.\\" templateLocked: String \\"When set to **true**, the sender may not remove the recipient. Used only when working with template recipients.\\" templateRequired: String - \\"When set to **true**, the information in the tab is underlined.\\" - underline: String - \\"The message displayed if the custom tab fails input validation (either custom of embedded).\\" - validationMessage: String - \\"A regular expressionn used to validate input for the tab.\\" - validationPattern: String - \\"Specifies the value of the tab.\\" - value: String - \\"Width of the tab in pixels.\\" - width: Int - \\"This indicates the horizontal offset of the object on the page.\\\\nDocuSign uses 72 DPI when determining position.\\\\nRequired. May be zero.\\" - xPosition: String - \\"This indicates the vertical offset of the object on the page. DocuSign uses 72 DPI when determining position.\\" - yPosition: String + totalTabCount: String + \\"The user ID of the user being accessed. Generally this is the user ID of the authenticated user, but if the authenticated user is an Admin on the account, this may be another user the Admin user is accessing.\\" + userId: String +} + +input propertyMetadata_Input { + options: [String] + rights: String +} + +\\"An Electronic or Standards Based Signature (digital signature) provider for the signer to use. [More information.](../../../../guide/appendix/standards_based_signatures.html)\\" +input recipientSignatureProvider_Input { + \\"The name of an Electronic or Standards Based Signature (digital signature) provider for the signer to use. [The current provider list.](../../../../guide/appendix/standards_based_signatures.html#signature-provider-options)\\" + signatureProviderName: String + signatureProviderOptions: recipientSignatureProviderOptions_Input +} + +\\"Option settings for the signature provider. Different providers require or use different options. [The current provider list and the options they require.](../../../../guide/appendix/standards_based_signatures.html#signature-provider-options)\\" +input recipientSignatureProviderOptions_Input { + \\"Reserved for DocuSign\\" + cpfNumber: String + \\"A pre-shared secret that the signer must enter to complete the signing process. Eg last six digits of the signer's government ID or Social Security number. Or a newly created pre-shared secret for the transaction. Note: some signature providers may require an exact (case-sensitive) match if alphabetic characters are included in the field.\\" + oneTimePassword: String + \\"The role or capacity of the signing recipient. Examples: Manager, Approver, etc.\\" + signerRole: String + \\"The mobile phone number used to send the recipient an access code for the signing ceremony. Format: a string starting with +, then the country code followed by the full mobile phone number without any spaces or special characters. Omit leading zeroes before a city code. Examples: +14155551234, +97235551234, +33505551234.\\" + sms: String +} + +\\"Allows the sender to pre-specify the signature name, signature initials and signature font used in the signature stamp for the recipient.\\\\n\\\\nUsed only with recipient types In Person Signers and Signers.\\" +input recipientSignatureInformation_Input { + fontStyle: String + signatureInitials: String + \\"Specifies the user signature name.\\" + signatureName: String +} + +\\"Envelope tabs\\" +input EnvelopeRecipientTabs_Input { + \\"A tab that allows the recipient to approve documents\\\\nwithout placing a signature or initials on the\\\\ndocument. If the recipient clicks the Approve tab during the signing\\\\nprocess, the recipient is considered to have signed the document. No\\\\ninformation is shown on the document for the approval, but it is\\\\nrecorded as a signature in the envelope history.\\" + approveTabs: [approve_Input] + \\"Specifies a tag on the document in a location where the recipient can select an option.\\" + checkboxTabs: [checkbox_Input] + \\"Specifies a tag on the document where you want the recipient's company name to appear.\\\\n\\\\nWhen getting information that includes this tab type, the original value of the tab when the associated envelope was sent is included in the response.\\" + companyTabs: [company_Input] + \\"Specifies a tab on the document where the date the document was signed will automatically appear.\\" + dateSignedTabs: [dateSigned_Input] + \\"Specifies a tab on the document where you want the recipient to enter a date. Date tabs are single-line fields that allow date information to be entered in any format. The tooltip for this tab recommends entering the date as MM/DD/YYYY, but this is not enforced. The format entered by the signer is retained. \\\\n\\\\nIf you need a particular date format enforced, DocuSign recommends using a Text tab with a Validation Pattern and Validation Message to enforce the format.\\" + dateTabs: [date_Input] + \\"Specifies a tag on the document where you want to give the recipient the option of declining an envelope. If the recipient clicks the Decline tag during the signing process, the envelope is voided.\\" + declineTabs: [decline_Input] + \\"Specifies a location on the document where you want where you want the recipient's email, as entered in the recipient information, to display.\\" + emailAddressTabs: [dateSigned_Input] + \\"Specifies a tag on the document where you want the recipient to enter an email. Email tags are single-line fields that accept any characters. The system checks that a valid email format (i.e. xxx@yyy.zzz) is entered in the tag. It uses the same parameters as a Text tab, with the validation message and pattern set for email information.\\\\n\\\\nWhen getting information that includes this tab type, the original value of the tab when the associated envelope was sent is included in the response.\\" + emailTabs: [date_Input] + \\"Specifies a tag on the document where you want the envelope ID for to appear. Recipients cannot enter or change the information in this tab, it is for informational purposes only.\\" + envelopeIdTabs: [envelopeId_Input] + \\"Specifies tag on a document where you want the recipient's first name to appear. This tag takes the recipient's name, as entered in the recipient information, splits it into sections based on spaces and uses the first section as the first name.\\" + firstNameTabs: [dateSigned_Input] + \\"A list of formula tabs.\\\\n\\\\nThe value of a formula tab is calculated\\\\nfrom the values of other\\\\nnumber or date tabs in the document.\\\\nWhen the recipient completes the underlying fields,\\\\nthe formula tab calculates and displays the result.\\\\n\\\\nThe \`formula\` property of the tab\\\\ncontains the references\\\\nto the underlying tabs.\\\\nSee [Calculated Fields][calculatedfields]\\\\nin the DocuSign Support Center\\\\nto learn more about formulas.\\\\n\\\\nIf a formula tab contains\\\\na \`paymentDetails\` property,\\\\nthe tab is considered a payment item.\\\\nSee [Requesting Payments Along with Signatures][paymentguide]\\\\nin the DocuSign Support Center\\\\nto learn more about payments.\\\\n\\\\n[calculatedfields]: https://support.docusign.com/en/guides/ndse-user-guide-calculated-fields\\\\n[paymentguide]: https://support.docusign.com/en/guides/requesting-payments-along-with-signatures\\" + formulaTabs: [formulaTab_Input] + \\"Specifies a tag on the document where you want the recipient's name to appear.\\" + fullNameTabs: [dateSigned_Input] + \\"Specifies a tag location in the document at which a recipient will place their initials. The \`optional\` parameter specifies whether the initials are required or optional.\\" + initialHereTabs: [initialHere_Input] + \\"Specifies a tag on a document where you want the recipient's last name to appear. This tag takes the recipient's name, as entered in the recipient information, splits it into sections based on spaces and uses the last section as the last name.\\" + lastNameTabs: [dateSigned_Input] + \\"Specify this tag to give your recipient a list of options, presented as a drop-down list, from which they can select.\\" + listTabs: [list_Input] + \\"Specifies a location on the document where you want to place additional information, in the form of a note, for a recipient.\\" + noteTabs: [note_Input] + \\"Specifies a tag on the document where you want the recipient to enter a number. It uses the same parameters as a Text tab, with the validation message and pattern set for number information.\\\\n\\\\nWhen getting information that includes this tab type, the original value of the tab when the associated envelope was sent is included in the response.\\" + numberTabs: [number_Input] + \\"Specifies a tag on the document in a location where the recipient can select one option from a group of options using a radio button. The radio buttons do not have to be on the same page in a document.\\" + radioGroupTabs: [radioGroup_Input] + \\"A complex type the contains information about the tag that specifies where the recipient places their signature in the document. The \\\\\\"optional\\\\\\" parameter sets if the signature is required or optional.\\" + signHereTabs: [signHere_Input] + \\"Specifies a tag on the document when you want the recipient to add supporting documents to an envelope.\\" + signerAttachmentTabs: [signerAttachment_Input] + \\"Specifies a tag on the document where you want the recipient to enter a Social Security Number (SSN). A SSN can be typed with or without dashes. It uses the same parameters as a Text tab, with the validation message and pattern set for SSN information.\\\\n\\\\nWhen getting information that includes this tab type, the original value of the tab when the associated envelope was sent is included in the response.\\" + ssnTabs: [ssn_Input] + \\"Specifies a that that is an adaptable field that allows the recipient to enter different text information.\\\\n\\\\nWhen getting information that includes this tab type, the original value of the tab when the associated envelope was sent is included in the response.\\" + textTabs: [text_Input] + \\"Specifies a tag on the document where you want the recipient's title to appear.\\\\n\\\\nWhen getting information that includes this tab type, the original value of the tab when the associated envelope was sent is included in the response.\\" + titleTabs: [title_Input] + viewTabs: [view_Input] + \\"Specifies a tag on the document where you want the recipient to enter a ZIP code. The ZIP code can be a five numbers or the ZIP+4 format with nine numbers. The zip code can be typed with or without dashes. It uses the same parameters as a Text tab, with the validation message and pattern set for ZIP code information.\\\\n\\\\nWhen getting information that includes this tab type, the original value of the tab when the associated envelope was sent is included in the response.\\" + zipTabs: [zip_Input] } -input decline_Input { +\\"A tab that allows the recipient to approve documents\\\\nwithout placing a signature or initials on the\\\\ndocument.\\" +input approve_Input { \\"Reserved for DocuSign.\\\\n\\" anchorCaseSensitive: String \\"Reserved for DocuSign.\\\\n\\" @@ -9416,7 +8314,7 @@ input decline_Input { anchorYOffset: String \\"When set to **true**, the information in the tab is bold.\\" bold: String - \\"Specifies the decline text displayed in the tab.\\" + \\"Specifies the approval text displayed in the tab.\\" buttonText: String \\"For conditional fields this is the TabLabel of the parent tab that controls this tab's visibility.\\" conditionalParentLabel: String @@ -9424,8 +8322,6 @@ input decline_Input { conditionalParentValue: String \\"The DocuSign generated custom tab ID for the custom tab to be applied. This can only be used when adding new tabs for a recipient. When used, the new tab inherits all the custom tab properties.\\" customTabId: String - \\"The reason the recipient declined the document.\\" - declineReason: String \\"Specifies the document ID number that the tab is placed on. This must refer to an existing Document's ID attribute.\\" documentId: String errorDetails: errorDetails_Input @@ -9461,11 +8357,25 @@ input decline_Input { width: Int \\"This indicates the horizontal offset of the object on the page.\\\\nDocuSign uses 72 DPI when determining position.\\\\nRequired. May be zero.\\" xPosition: String - \\"This indicates the vertical offset of the object on the page. DocuSign uses 72 DPI when determining position.\\" + \\"This indicates the vertical offset of the object on the page.\\\\nDocuSign uses 72 DPI when determining position.\\\\nRequired. May be zero.\\" yPosition: String } -input emailAddress_Input { +\\"Contains information for transfering values between Salesforce data fields and DocuSign Tabs.\\" +input mergeField_Input { + \\"When set to **true**, the sender can modify the value of the custom tab during the sending process.\\" + allowSenderToEdit: String + \\"If merge field's are being used, specifies the type of the merge field. The only supported value is **salesforce**.\\" + configurationType: String + \\"Sets the object associated with the custom tab. Currently this is the Salesforce Object.\\" + path: String + \\"Specifies the row number in a Salesforce table that the merge field value corresponds to.\\" + row: String + \\"When wet to true, the information entered in the tab automatically updates the related Salesforce data when an envelope is completed.\\" + writeBack: String +} + +input checkbox_Input { \\"Reserved for DocuSign.\\\\n\\" anchorCaseSensitive: String \\"Reserved for DocuSign.\\\\n\\" @@ -9482,8 +8392,6 @@ input emailAddress_Input { anchorXOffset: String \\"Specifies the Y axis location of the tab, in achorUnits, relative to the anchorString.\\" anchorYOffset: String - \\"When set to **true**, the information in the tab is bold.\\" - bold: String \\"For conditional fields this is the TabLabel of the parent tab that controls this tab's visibility.\\" conditionalParentLabel: String \\"For conditional fields, this is the value of the parent tab that controls the tab's visibility.\\\\n\\\\nIf the parent tab is a Checkbox, Radio button, Optional Signature, or Optional Initial use \\\\\\"on\\\\\\" as the value to show that the parent tab is active.\\" @@ -9493,20 +8401,23 @@ input emailAddress_Input { \\"Specifies the document ID number that the tab is placed on. This must refer to an existing Document's ID attribute.\\" documentId: String errorDetails: errorDetails_Input - \\"The font to be used for the tab value. Supported Fonts: Arial, Arial, ArialNarrow, Calibri, CourierNew, Garamond, Georgia, Helvetica, LucidaConsole, Tahoma, TimesNewRoman, Trebuchet, Verdana, MSGothic, MSMincho, Default.\\" - font: String - \\"The font color used for the information in the tab.\\\\n\\\\nPossible values are: Black, BrightBlue, BrightRed, DarkGreen, DarkRed, Gold, Green, NavyBlue, Purple, or White.\\" - fontColor: String - \\"The font size used for the information in the tab.\\\\n\\\\nPossible values are: Size7, Size8, Size9, Size10, Size11, Size12, Size14, Size16, Size18, Size20, Size22, Size24, Size26, Size28, Size36, Size48, or Size72.\\" - fontSize: String - \\"When set to **true**, the information in the tab is italic.\\" - italic: String + \\"When set to **true**, the signer cannot change the data of the custom tab.\\" + locked: String mergeField: mergeField_Input + \\"Specifies the tool tip text for the tab.\\" name: String \\"Specifies the page number on which the tab is located.\\\\nMust be 1 for [supplemental documents][supdocs].\\\\n\\\\n[supdocs]: /esign/guide/appendix/glossary.html#supplemental-documents\\" pageNumber: String \\"Unique for the recipient. It is used by the tab element to indicate which recipient is to sign the Document.\\" recipientId: String + \\"Optional element for field markup. When set to **true**, the signer is required to initial when they modify a shared field.\\" + requireInitialOnSharedChange: String + \\"When set to **true**, the signer is required to fill out this tab\\" + required: String + \\"When set to **true**, the checkbox is selected.\\" + selected: String + \\"When set to **true**, this custom tab is shared.\\" + shared: String \\"Indicates the envelope status. Valid values are:\\\\n\\\\n* sent - The envelope is sent to the recipients. \\\\n* created - The envelope is saved as a draft and can be modified and sent later.\\" status: String \\"The unique identifier for the tab. The tabid can be retrieved with the [ML:GET call].\\" @@ -9518,17 +8429,13 @@ input emailAddress_Input { templateLocked: String \\"When set to **true**, the sender may not remove the recipient. Used only when working with template recipients.\\" templateRequired: String - \\"When set to **true**, the information in the tab is underlined.\\" - underline: String - \\"Specifies the value of the tab.\\" - value: String \\"This indicates the horizontal offset of the object on the page.\\\\nDocuSign uses 72 DPI when determining position.\\\\nRequired. May be zero.\\" xPosition: String \\"This indicates the vertical offset of the object on the page. DocuSign uses 72 DPI when determining position.\\" yPosition: String } -input email_Input { +input company_Input { \\"Reserved for DocuSign.\\\\n\\" anchorCaseSensitive: String \\"Reserved for DocuSign.\\\\n\\" @@ -9573,6 +8480,7 @@ input email_Input { \\"An optional value that describes the maximum length of the property when the property is a string.\\" maxLength: Int mergeField: mergeField_Input + \\"Specifies the tool tip text for the tab.\\" name: String \\"The initial value of the tab when it was sent to the recipient.\\" originalValue: String @@ -9580,16 +8488,8 @@ input email_Input { pageNumber: String \\"Unique for the recipient. It is used by the tab element to indicate which recipient is to sign the Document.\\" recipientId: String - \\"When set to **true** and shared is true, information must be entered in this field to complete the envelope.\\" - requireAll: String - \\"Optional element for field markup. When set to **true**, the signer is required to initial when they modify a shared field.\\" - requireInitialOnSharedChange: String \\"When set to **true**, the signer is required to fill out this tab\\" required: String - \\"When set to **true**, the sender must populate the tab before an envelope can be sent using the template. \\\\n\\\\nThis value tab can only be changed by modifying (PUT) the template. \\\\n\\\\nTabs with a \`senderRequired\` value of true cannot be deleted from an envelope.\\" - senderRequired: String - \\"When set to **true**, this custom tab is shared.\\" - shared: String \\"Indicates the envelope status. Valid values are:\\\\n\\\\n* sent - The envelope is sent to the recipients. \\\\n* created - The envelope is saved as a draft and can be modified and sent later.\\" status: String \\"The unique identifier for the tab. The tabid can be retrieved with the [ML:GET call].\\" @@ -9603,10 +8503,6 @@ input email_Input { templateRequired: String \\"When set to **true**, the information in the tab is underlined.\\" underline: String - \\"The message displayed if the custom tab fails input validation (either custom of embedded).\\" - validationMessage: String - \\"A regular expressionn used to validate input for the tab.\\" - validationPattern: String \\"Specifies the value of the tab.\\" value: String \\"Width of the tab in pixels.\\" @@ -9617,7 +8513,7 @@ input email_Input { yPosition: String } -input envelopeId_Input { +input dateSigned_Input { \\"Reserved for DocuSign.\\\\n\\" anchorCaseSensitive: String \\"Reserved for DocuSign.\\\\n\\" @@ -9672,13 +8568,15 @@ input envelopeId_Input { templateRequired: String \\"When set to **true**, the information in the tab is underlined.\\" underline: String + \\"Specifies the value of the tab.\\" + value: String \\"This indicates the horizontal offset of the object on the page.\\\\nDocuSign uses 72 DPI when determining position.\\\\nRequired. May be zero.\\" xPosition: String \\"This indicates the vertical offset of the object on the page. DocuSign uses 72 DPI when determining position.\\" yPosition: String } -input firstName_Input { +input date_Input { \\"Reserved for DocuSign.\\\\n\\" anchorCaseSensitive: String \\"Reserved for DocuSign.\\\\n\\" @@ -9697,12 +8595,16 @@ input firstName_Input { anchorYOffset: String \\"When set to **true**, the information in the tab is bold.\\" bold: String + \\"When set to **true**, the field appears normally while the recipient is adding or modifying the information in the field, but the data is not visible (the characters are hidden by asterisks) to any other signer or the sender.\\\\n\\\\nWhen an envelope is completed the information is available to the sender through the Form Data link in the DocuSign Console.\\\\n\\\\nThis setting applies only to text boxes and does not affect list boxes, radio buttons, or check boxes.\\" + concealValueOnDocument: String \\"For conditional fields this is the TabLabel of the parent tab that controls this tab's visibility.\\" conditionalParentLabel: String \\"For conditional fields, this is the value of the parent tab that controls the tab's visibility.\\\\n\\\\nIf the parent tab is a Checkbox, Radio button, Optional Signature, or Optional Initial use \\\\\\"on\\\\\\" as the value to show that the parent tab is active.\\" conditionalParentValue: String \\"The DocuSign generated custom tab ID for the custom tab to be applied. This can only be used when adding new tabs for a recipient. When used, the new tab inherits all the custom tab properties.\\" customTabId: String + \\"When set to **true**, disables the auto sizing of single line text boxes in the signing screen when the signer enters data. If disabled users will only be able enter as much data as the text box can hold. By default this is false. This property only affects single line text boxes.\\" + disableAutoSize: String \\"Specifies the document ID number that the tab is placed on. This must refer to an existing Document's ID attribute.\\" documentId: String errorDetails: errorDetails_Input @@ -9714,12 +8616,28 @@ input firstName_Input { fontSize: String \\"When set to **true**, the information in the tab is italic.\\" italic: String + \\"When set to **true**, the signer cannot change the data of the custom tab.\\" + locked: String + \\"An optional value that describes the maximum length of the property when the property is a string.\\" + maxLength: Int mergeField: mergeField_Input name: String + \\"The initial value of the tab when it was sent to the recipient.\\" + originalValue: String \\"Specifies the page number on which the tab is located.\\\\nMust be 1 for [supplemental documents][supdocs].\\\\n\\\\n[supdocs]: /esign/guide/appendix/glossary.html#supplemental-documents\\" pageNumber: String \\"Unique for the recipient. It is used by the tab element to indicate which recipient is to sign the Document.\\" recipientId: String + \\"When set to **true** and shared is true, information must be entered in this field to complete the envelope.\\" + requireAll: String + \\"Optional element for field markup. When set to **true**, the signer is required to initial when they modify a shared field.\\" + requireInitialOnSharedChange: String + \\"When set to **true**, the signer is required to fill out this tab\\" + required: String + \\"When set to **true**, the sender must populate the tab before an envelope can be sent using the template. \\\\n\\\\nThis value tab can only be changed by modifying (PUT) the template. \\\\n\\\\nTabs with a \`senderRequired\` value of true cannot be deleted from an envelope.\\" + senderRequired: String + \\"When set to **true**, this custom tab is shared.\\" + shared: String \\"Indicates the envelope status. Valid values are:\\\\n\\\\n* sent - The envelope is sent to the recipients. \\\\n* created - The envelope is saved as a draft and can be modified and sent later.\\" status: String \\"The unique identifier for the tab. The tabid can be retrieved with the [ML:GET call].\\" @@ -9733,16 +8651,21 @@ input firstName_Input { templateRequired: String \\"When set to **true**, the information in the tab is underlined.\\" underline: String + \\"The message displayed if the custom tab fails input validation (either custom of embedded).\\" + validationMessage: String + \\"A regular expressionn used to validate input for the tab.\\" + validationPattern: String \\"Specifies the value of the tab.\\" value: String + \\"Width of the tab in pixels.\\" + width: Int \\"This indicates the horizontal offset of the object on the page.\\\\nDocuSign uses 72 DPI when determining position.\\\\nRequired. May be zero.\\" xPosition: String \\"This indicates the vertical offset of the object on the page. DocuSign uses 72 DPI when determining position.\\" yPosition: String } -\\"The value of a formula tab is calculated\\\\nfrom the values of other\\\\nnumber or date tabs in the document.\\\\nWhen the recipient completes the underlying fields,\\\\nthe formula tab calculates and displays the result.\\\\n\\\\nThe \`formula\` property of the tab\\\\ncontains the references\\\\nto the underlying tabs.\\\\nSee [Calculated Fields][calculatedfields]\\\\nin the DocuSign Support Center\\\\nto learn more about formulas.\\\\n\\\\nIf a formula tab contains\\\\na \`paymentDetails\` property,\\\\nthe tab is considered a payment item.\\\\nSee [Requesting Payments Along with Signatures][paymentguide]\\\\nin the DocuSign Support Center\\\\nto learn more about payments.\\\\n\\\\n[calculatedfields]: https://support.docusign.com/en/guides/ndse-user-guide-calculated-fields\\\\n[paymentguide]: https://support.docusign.com/en/guides/requesting-payments-along-with-signatures\\" -input formulaTab_Input { +input decline_Input { \\"Reserved for DocuSign.\\\\n\\" anchorCaseSensitive: String \\"Reserved for DocuSign.\\\\n\\" @@ -9761,16 +8684,16 @@ input formulaTab_Input { anchorYOffset: String \\"When set to **true**, the information in the tab is bold.\\" bold: String - \\"When set to **true**, the field appears normally while the recipient is adding or modifying the information in the field, but the data is not visible (the characters are hidden by asterisks) to any other signer or the sender.\\\\n\\\\nWhen an envelope is completed the information is available to the sender through the Form Data link in the DocuSign Console.\\\\n\\\\nThis setting applies only to text boxes and does not affect list boxes, radio buttons, or check boxes.\\" - concealValueOnDocument: String + \\"Specifies the decline text displayed in the tab.\\" + buttonText: String \\"For conditional fields this is the TabLabel of the parent tab that controls this tab's visibility.\\" conditionalParentLabel: String \\"For conditional fields, this is the value of the parent tab that controls the tab's visibility.\\\\n\\\\nIf the parent tab is a Checkbox, Radio button, Optional Signature, or Optional Initial use \\\\\\"on\\\\\\" as the value to show that the parent tab is active.\\" conditionalParentValue: String \\"The DocuSign generated custom tab ID for the custom tab to be applied. This can only be used when adding new tabs for a recipient. When used, the new tab inherits all the custom tab properties.\\" customTabId: String - \\"When set to **true**, disables the auto sizing of single line text boxes in the signing screen when the signer enters data. If disabled users will only be able enter as much data as the text box can hold. By default this is false. This property only affects single line text boxes.\\" - disableAutoSize: String + \\"The reason the recipient declined the document.\\" + declineReason: String \\"Specifies the document ID number that the tab is placed on. This must refer to an existing Document's ID attribute.\\" documentId: String errorDetails: errorDetails_Input @@ -9780,37 +8703,15 @@ input formulaTab_Input { fontColor: String \\"The font size used for the information in the tab.\\\\n\\\\nPossible values are: Size7, Size8, Size9, Size10, Size11, Size12, Size14, Size16, Size18, Size20, Size22, Size24, Size26, Size28, Size36, Size48, or Size72.\\" fontSize: String - \\"Contains the formula\\\\nfor calculating the value of\\\\nthis tab.\\\\n\\\\nUse a tab's \`tabLabel\`,\\\\nenclosed in brackets,\\\\nto refer to it.\\\\n\\\\nFor example,\\\\nyou want to present the total cost\\\\nof two items, tax included.\\\\n\\\\nThe cost of each item is stored\\\\nin number tabs labeled Item1 and Item2.\\\\nThe tax rate is in a number tab\\\\nlabeled TaxRate.\\\\n\\\\nThe formula string for this property\\\\nwould be:\\\\n\`([Item1] + [Item2]) * (1 + [TaxRate])\`\\\\n\\\\nSee [Calculated Fields][calculatedfields]\\\\nin the DocuSign Support Center\\\\nto learn more about formulas.\\\\n\\\\nMaximum Length: 2000 characters\\\\n\\\\n[calculatedfields]: https://support.docusign.com/en/guides/ndse-user-guide-calculated-fields\\" - formula: String - hidden: String - \\"When set to **true**, sets this as a payment tab. Can only be used with Text, Number, Formula, or List tabs. The value of the tab must be a number.\\" - isPaymentAmount: String + \\"Height of the tab in pixels.\\" + height: Int \\"When set to **true**, the information in the tab is italic.\\" italic: String - \\"When set to **true**, the signer cannot change the data of the custom tab.\\" - locked: String - \\"An optional value that describes the maximum length of the property when the property is a string.\\" - maxLength: Int mergeField: mergeField_Input - name: String - \\"The initial value of the tab when it was sent to the recipient.\\" - originalValue: String \\"Specifies the page number on which the tab is located.\\\\nMust be 1 for [supplemental documents][supdocs].\\\\n\\\\n[supdocs]: /esign/guide/appendix/glossary.html#supplemental-documents\\" pageNumber: String - paymentDetails: paymentDetails_Input \\"Unique for the recipient. It is used by the tab element to indicate which recipient is to sign the Document.\\" recipientId: String - \\"When set to **true** and shared is true, information must be entered in this field to complete the envelope.\\" - requireAll: String - \\"Optional element for field markup. When set to **true**, the signer is required to initial when they modify a shared field.\\" - requireInitialOnSharedChange: String - \\"When set to **true**, the signer is required to fill out this tab\\" - required: String - roundDecimalPlaces: String - \\"When set to **true**, the sender must populate the tab before an envelope can be sent using the template. \\\\n\\\\nThis value tab can only be changed by modifying (PUT) the template. \\\\n\\\\nTabs with a \`senderRequired\` value of true cannot be deleted from an envelope.\\" - senderRequired: String - \\"When set to **true**, this custom tab is shared.\\" - shared: String \\"Indicates the envelope status. Valid values are:\\\\n\\\\n* sent - The envelope is sent to the recipients. \\\\n* created - The envelope is saved as a draft and can be modified and sent later.\\" status: String \\"The unique identifier for the tab. The tabid can be retrieved with the [ML:GET call].\\" @@ -9824,12 +8725,6 @@ input formulaTab_Input { templateRequired: String \\"When set to **true**, the information in the tab is underlined.\\" underline: String - \\"The message displayed if the custom tab fails input validation (either custom of embedded).\\" - validationMessage: String - \\"A regular expressionn used to validate input for the tab.\\" - validationPattern: String - \\"Specifies the value of the tab.\\" - value: String \\"Width of the tab in pixels.\\" width: Int \\"This indicates the horizontal offset of the object on the page.\\\\nDocuSign uses 72 DPI when determining position.\\\\nRequired. May be zero.\\" @@ -9838,44 +8733,7 @@ input formulaTab_Input { yPosition: String } -\\"When a formula tab\\\\nhas a \`paymentDetails\` property,\\\\nthe formula tab\\\\nis a payment item.\\\\nSee [Requesting Payments Along with Signatures][paymentguide]\\\\nin the DocuSign Support Center\\\\nto learn more about payments.\\\\n\\\\n[paymentguide]: https://support.docusign.com/en/guides/requesting-payments-along-with-signatures\\" -input paymentDetails_Input { - chargeId: String - \\"Specifies the three-letter\\\\n[ISO 4217][ISO4217] currency code for the payment.\\\\n\\\\nSupported currencies are:\\\\n\\\\n* AUD Australian dollar\\\\n* CAD Canadian dollar\\\\n* EUR Euro\\\\n* GBP Great Britain pund\\\\n* USD United States dollar\\\\n\\\\nSpecifying any other ISO 4217 code for payments is an error.\\\\n\\\\n[ISO4217]: https://en.wikipedia.org/wiki/ISO_4217\\" - currencyCode: String - \\"A GUID that identifies the payment gateway\\\\nconnected to the sender's DocuSign account.\\\\n\\\\nThere is no public API\\\\nfor connecting payment gateway accounts\\\\nYou must connect and manage payment gateway accounts\\\\nthrough the DocuSign Admin console\\\\nand through your chosen payment gateway.\\\\n\\\\nYou can get the gateway account ID\\\\nin the Payments section\\\\nof the DocuSign Admin console.\\\\n\\\\n\\\\n[paymentgateways]: https://support.docusign.com/en/guides/managing-payment-gateways\\" - gatewayAccountId: String - gatewayName: String - \\"A payment formula can have\\\\none or more line items\\\\nthat provide detail about\\\\nindividual items in a payment request.\\\\n\\\\nThe list of line items\\\\nare returned as metadata\\\\nto the payment gateway.\\" - lineItems: [paymentLineItem_Input] - \\"This read-only property describes the status of a payment.\\\\n\\\\n* \`new\`
\\\\n This is a new payment request.\\\\n The envelope has been created,\\\\n but no payment authorizations have been made.\\\\n\\\\n* \`auth_complete\`
\\\\n A recipient has entered their credit card information,\\\\n but the envelope has not been completed.\\\\n The card has not been charged.\\\\n\\\\n* \`payment_complete\`
\\\\n The recipient's card has been charged.\\\\n\\\\n* \`payment_capture_failed\`
\\\\n Final charge failed.\\\\n This can happen when too much time\\\\n passes between authorizing the payment\\\\n and completing the document.\\" - status: String - total: money_Input -} - -\\"A line item describes details\\\\nabout an individual line item\\\\nin a payment request.\\" -input paymentLineItem_Input { - \\"This is a the \`tabLabel\`\\\\nthat specifies the amount paid\\\\nfor the line items.\\" - amountReference: String - \\"A sender-defined description of the line item.\\" - description: String - \\"This is the sender-defined\\\\nSKU, inventory number, or other item code\\\\nfor the line item.\\" - itemCode: String - \\"This is a sender-defined\\\\nproduct name, service name,\\\\nor other designation for the line item.\\" - name: String -} - -\\"Describes information\\\\nabout the \`total\` of a payment.\\" -input money_Input { - \\"The total payment amount\\\\nin the currency's base unit.\\\\nFor example, for USD\\\\nthe base currency is one cent.\\" - amountInBaseUnit: String - \\"The three-letter\\\\n[ISO 4217][ISO4217] currency code for the payment.\\\\n\\\\nFor example:\\\\n\\\\n* AUD Australian dollar\\\\n* CAD Canadian dollar\\\\n* EUR Euro\\\\n* GBP Great Britain pund\\\\n* USD United States dollar\\\\n\\\\nThis is a read-only property.\\\\n\\\\n[ISO4217]: https://en.wikipedia.org/wiki/ISO_4217\\" - currency: String - \\"The payment amount as displayed\\\\nin the \`currency\`.\\\\n\\\\nFor example, if the payment amount\\\\nis USD 12.59,\\\\nthe \`amountInBaseUnit\` is 1259 (cents),\\\\nand the displayed amount is \`$12.59 USD\`.\\\\n\\\\nThis is a read-only property.\\" - displayAmount: String -} - -input fullName_Input { +input envelopeId_Input { \\"Reserved for DocuSign.\\\\n\\" anchorCaseSensitive: String \\"Reserved for DocuSign.\\\\n\\" @@ -9930,15 +8788,14 @@ input fullName_Input { templateRequired: String \\"When set to **true**, the information in the tab is underlined.\\" underline: String - \\"Specifies the value of the tab.\\" - value: String \\"This indicates the horizontal offset of the object on the page.\\\\nDocuSign uses 72 DPI when determining position.\\\\nRequired. May be zero.\\" xPosition: String \\"This indicates the vertical offset of the object on the page. DocuSign uses 72 DPI when determining position.\\" yPosition: String } -input initialHere_Input { +\\"The value of a formula tab is calculated\\\\nfrom the values of other\\\\nnumber or date tabs in the document.\\\\nWhen the recipient completes the underlying fields,\\\\nthe formula tab calculates and displays the result.\\\\n\\\\nThe \`formula\` property of the tab\\\\ncontains the references\\\\nto the underlying tabs.\\\\nSee [Calculated Fields][calculatedfields]\\\\nin the DocuSign Support Center\\\\nto learn more about formulas.\\\\n\\\\nIf a formula tab contains\\\\na \`paymentDetails\` property,\\\\nthe tab is considered a payment item.\\\\nSee [Requesting Payments Along with Signatures][paymentguide]\\\\nin the DocuSign Support Center\\\\nto learn more about payments.\\\\n\\\\n[calculatedfields]: https://support.docusign.com/en/guides/ndse-user-guide-calculated-fields\\\\n[paymentguide]: https://support.docusign.com/en/guides/requesting-payments-along-with-signatures\\" +input formulaTab_Input { \\"Reserved for DocuSign.\\\\n\\" anchorCaseSensitive: String \\"Reserved for DocuSign.\\\\n\\" @@ -9955,25 +8812,58 @@ input initialHere_Input { anchorXOffset: String \\"Specifies the Y axis location of the tab, in achorUnits, relative to the anchorString.\\" anchorYOffset: String + \\"When set to **true**, the information in the tab is bold.\\" + bold: String + \\"When set to **true**, the field appears normally while the recipient is adding or modifying the information in the field, but the data is not visible (the characters are hidden by asterisks) to any other signer or the sender.\\\\n\\\\nWhen an envelope is completed the information is available to the sender through the Form Data link in the DocuSign Console.\\\\n\\\\nThis setting applies only to text boxes and does not affect list boxes, radio buttons, or check boxes.\\" + concealValueOnDocument: String \\"For conditional fields this is the TabLabel of the parent tab that controls this tab's visibility.\\" conditionalParentLabel: String \\"For conditional fields, this is the value of the parent tab that controls the tab's visibility.\\\\n\\\\nIf the parent tab is a Checkbox, Radio button, Optional Signature, or Optional Initial use \\\\\\"on\\\\\\" as the value to show that the parent tab is active.\\" conditionalParentValue: String \\"The DocuSign generated custom tab ID for the custom tab to be applied. This can only be used when adding new tabs for a recipient. When used, the new tab inherits all the custom tab properties.\\" customTabId: String + \\"When set to **true**, disables the auto sizing of single line text boxes in the signing screen when the signer enters data. If disabled users will only be able enter as much data as the text box can hold. By default this is false. This property only affects single line text boxes.\\" + disableAutoSize: String \\"Specifies the document ID number that the tab is placed on. This must refer to an existing Document's ID attribute.\\" documentId: String errorDetails: errorDetails_Input + \\"The font to be used for the tab value. Supported Fonts: Arial, Arial, ArialNarrow, Calibri, CourierNew, Garamond, Georgia, Helvetica, LucidaConsole, Tahoma, TimesNewRoman, Trebuchet, Verdana, MSGothic, MSMincho, Default.\\" + font: String + \\"The font color used for the information in the tab.\\\\n\\\\nPossible values are: Black, BrightBlue, BrightRed, DarkGreen, DarkRed, Gold, Green, NavyBlue, Purple, or White.\\" + fontColor: String + \\"The font size used for the information in the tab.\\\\n\\\\nPossible values are: Size7, Size8, Size9, Size10, Size11, Size12, Size14, Size16, Size18, Size20, Size22, Size24, Size26, Size28, Size36, Size48, or Size72.\\" + fontSize: String + \\"Contains the formula\\\\nfor calculating the value of\\\\nthis tab.\\\\n\\\\nUse a tab's \`tabLabel\`,\\\\nenclosed in brackets,\\\\nto refer to it.\\\\n\\\\nFor example,\\\\nyou want to present the total cost\\\\nof two items, tax included.\\\\n\\\\nThe cost of each item is stored\\\\nin number tabs labeled Item1 and Item2.\\\\nThe tax rate is in a number tab\\\\nlabeled TaxRate.\\\\n\\\\nThe formula string for this property\\\\nwould be:\\\\n\`([Item1] + [Item2]) * (1 + [TaxRate])\`\\\\n\\\\nSee [Calculated Fields][calculatedfields]\\\\nin the DocuSign Support Center\\\\nto learn more about formulas.\\\\n\\\\nMaximum Length: 2000 characters\\\\n\\\\n[calculatedfields]: https://support.docusign.com/en/guides/ndse-user-guide-calculated-fields\\" + formula: String + hidden: String + \\"When set to **true**, sets this as a payment tab. Can only be used with Text, Number, Formula, or List tabs. The value of the tab must be a number.\\" + isPaymentAmount: String + \\"When set to **true**, the information in the tab is italic.\\" + italic: String + \\"When set to **true**, the signer cannot change the data of the custom tab.\\" + locked: String + \\"An optional value that describes the maximum length of the property when the property is a string.\\" + maxLength: Int mergeField: mergeField_Input - \\"Specifies the tool tip text for the tab.\\" name: String - optional: String + \\"The initial value of the tab when it was sent to the recipient.\\" + originalValue: String \\"Specifies the page number on which the tab is located.\\\\nMust be 1 for [supplemental documents][supdocs].\\\\n\\\\n[supdocs]: /esign/guide/appendix/glossary.html#supplemental-documents\\" pageNumber: String + paymentDetails: paymentDetails_Input \\"Unique for the recipient. It is used by the tab element to indicate which recipient is to sign the Document.\\" recipientId: String - \\"Sets the size for the InitialHere tab. It can be value from 0.5 to 1.0, where 1.0 represents full size and 0.5 is 50% size.\\" - scaleValue: Float + \\"When set to **true** and shared is true, information must be entered in this field to complete the envelope.\\" + requireAll: String + \\"Optional element for field markup. When set to **true**, the signer is required to initial when they modify a shared field.\\" + requireInitialOnSharedChange: String + \\"When set to **true**, the signer is required to fill out this tab\\" + required: String + roundDecimalPlaces: String + \\"When set to **true**, the sender must populate the tab before an envelope can be sent using the template. \\\\n\\\\nThis value tab can only be changed by modifying (PUT) the template. \\\\n\\\\nTabs with a \`senderRequired\` value of true cannot be deleted from an envelope.\\" + senderRequired: String + \\"When set to **true**, this custom tab is shared.\\" + shared: String \\"Indicates the envelope status. Valid values are:\\\\n\\\\n* sent - The envelope is sent to the recipients. \\\\n* created - The envelope is saved as a draft and can be modified and sent later.\\" status: String \\"The unique identifier for the tab. The tabid can be retrieved with the [ML:GET call].\\" @@ -9985,13 +8875,60 @@ input initialHere_Input { templateLocked: String \\"When set to **true**, the sender may not remove the recipient. Used only when working with template recipients.\\" templateRequired: String + \\"When set to **true**, the information in the tab is underlined.\\" + underline: String + \\"The message displayed if the custom tab fails input validation (either custom of embedded).\\" + validationMessage: String + \\"A regular expressionn used to validate input for the tab.\\" + validationPattern: String + \\"Specifies the value of the tab.\\" + value: String + \\"Width of the tab in pixels.\\" + width: Int \\"This indicates the horizontal offset of the object on the page.\\\\nDocuSign uses 72 DPI when determining position.\\\\nRequired. May be zero.\\" xPosition: String \\"This indicates the vertical offset of the object on the page. DocuSign uses 72 DPI when determining position.\\" yPosition: String } -input lastName_Input { +\\"When a formula tab\\\\nhas a \`paymentDetails\` property,\\\\nthe formula tab\\\\nis a payment item.\\\\nSee [Requesting Payments Along with Signatures][paymentguide]\\\\nin the DocuSign Support Center\\\\nto learn more about payments.\\\\n\\\\n[paymentguide]: https://support.docusign.com/en/guides/requesting-payments-along-with-signatures\\" +input paymentDetails_Input { + chargeId: String + \\"Specifies the three-letter\\\\n[ISO 4217][ISO4217] currency code for the payment.\\\\n\\\\nSupported currencies are:\\\\n\\\\n* AUD Australian dollar\\\\n* CAD Canadian dollar\\\\n* EUR Euro\\\\n* GBP Great Britain pund\\\\n* USD United States dollar\\\\n\\\\nSpecifying any other ISO 4217 code for payments is an error.\\\\n\\\\n[ISO4217]: https://en.wikipedia.org/wiki/ISO_4217\\" + currencyCode: String + \\"A GUID that identifies the payment gateway\\\\nconnected to the sender's DocuSign account.\\\\n\\\\nThere is no public API\\\\nfor connecting payment gateway accounts\\\\nYou must connect and manage payment gateway accounts\\\\nthrough the DocuSign Admin console\\\\nand through your chosen payment gateway.\\\\n\\\\nYou can get the gateway account ID\\\\nin the Payments section\\\\nof the DocuSign Admin console.\\\\n\\\\n\\\\n[paymentgateways]: https://support.docusign.com/en/guides/managing-payment-gateways\\" + gatewayAccountId: String + gatewayName: String + \\"A payment formula can have\\\\none or more line items\\\\nthat provide detail about\\\\nindividual items in a payment request.\\\\n\\\\nThe list of line items\\\\nare returned as metadata\\\\nto the payment gateway.\\" + lineItems: [paymentLineItem_Input] + \\"This read-only property describes the status of a payment.\\\\n\\\\n* \`new\`
\\\\n This is a new payment request.\\\\n The envelope has been created,\\\\n but no payment authorizations have been made.\\\\n\\\\n* \`auth_complete\`
\\\\n A recipient has entered their credit card information,\\\\n but the envelope has not been completed.\\\\n The card has not been charged.\\\\n\\\\n* \`payment_complete\`
\\\\n The recipient's card has been charged.\\\\n\\\\n* \`payment_capture_failed\`
\\\\n Final charge failed.\\\\n This can happen when too much time\\\\n passes between authorizing the payment\\\\n and completing the document.\\" + status: String + total: money_Input +} + +\\"A line item describes details\\\\nabout an individual line item\\\\nin a payment request.\\" +input paymentLineItem_Input { + \\"This is a the \`tabLabel\`\\\\nthat specifies the amount paid\\\\nfor the line items.\\" + amountReference: String + \\"A sender-defined description of the line item.\\" + description: String + \\"This is the sender-defined\\\\nSKU, inventory number, or other item code\\\\nfor the line item.\\" + itemCode: String + \\"This is a sender-defined\\\\nproduct name, service name,\\\\nor other designation for the line item.\\" + name: String +} + +\\"Describes information\\\\nabout the \`total\` of a payment.\\" +input money_Input { + \\"The total payment amount\\\\nin the currency's base unit.\\\\nFor example, for USD\\\\nthe base currency is one cent.\\" + amountInBaseUnit: String + \\"The three-letter\\\\n[ISO 4217][ISO4217] currency code for the payment.\\\\n\\\\nFor example:\\\\n\\\\n* AUD Australian dollar\\\\n* CAD Canadian dollar\\\\n* EUR Euro\\\\n* GBP Great Britain pund\\\\n* USD United States dollar\\\\n\\\\nThis is a read-only property.\\\\n\\\\n[ISO4217]: https://en.wikipedia.org/wiki/ISO_4217\\" + currency: String + \\"The payment amount as displayed\\\\nin the \`currency\`.\\\\n\\\\nFor example, if the payment amount\\\\nis USD 12.59,\\\\nthe \`amountInBaseUnit\` is 1259 (cents),\\\\nand the displayed amount is \`$12.59 USD\`.\\\\n\\\\nThis is a read-only property.\\" + displayAmount: String +} + +input initialHere_Input { \\"Reserved for DocuSign.\\\\n\\" anchorCaseSensitive: String \\"Reserved for DocuSign.\\\\n\\" @@ -10008,8 +8945,6 @@ input lastName_Input { anchorXOffset: String \\"Specifies the Y axis location of the tab, in achorUnits, relative to the anchorString.\\" anchorYOffset: String - \\"When set to **true**, the information in the tab is bold.\\" - bold: String \\"For conditional fields this is the TabLabel of the parent tab that controls this tab's visibility.\\" conditionalParentLabel: String \\"For conditional fields, this is the value of the parent tab that controls the tab's visibility.\\\\n\\\\nIf the parent tab is a Checkbox, Radio button, Optional Signature, or Optional Initial use \\\\\\"on\\\\\\" as the value to show that the parent tab is active.\\" @@ -10019,20 +8954,16 @@ input lastName_Input { \\"Specifies the document ID number that the tab is placed on. This must refer to an existing Document's ID attribute.\\" documentId: String errorDetails: errorDetails_Input - \\"The font to be used for the tab value. Supported Fonts: Arial, Arial, ArialNarrow, Calibri, CourierNew, Garamond, Georgia, Helvetica, LucidaConsole, Tahoma, TimesNewRoman, Trebuchet, Verdana, MSGothic, MSMincho, Default.\\" - font: String - \\"The font color used for the information in the tab.\\\\n\\\\nPossible values are: Black, BrightBlue, BrightRed, DarkGreen, DarkRed, Gold, Green, NavyBlue, Purple, or White.\\" - fontColor: String - \\"The font size used for the information in the tab.\\\\n\\\\nPossible values are: Size7, Size8, Size9, Size10, Size11, Size12, Size14, Size16, Size18, Size20, Size22, Size24, Size26, Size28, Size36, Size48, or Size72.\\" - fontSize: String - \\"When set to **true**, the information in the tab is italic.\\" - italic: String mergeField: mergeField_Input + \\"Specifies the tool tip text for the tab.\\" name: String + optional: String \\"Specifies the page number on which the tab is located.\\\\nMust be 1 for [supplemental documents][supdocs].\\\\n\\\\n[supdocs]: /esign/guide/appendix/glossary.html#supplemental-documents\\" pageNumber: String \\"Unique for the recipient. It is used by the tab element to indicate which recipient is to sign the Document.\\" recipientId: String + \\"Sets the size for the InitialHere tab. It can be value from 0.5 to 1.0, where 1.0 represents full size and 0.5 is 50% size.\\" + scaleValue: Float \\"Indicates the envelope status. Valid values are:\\\\n\\\\n* sent - The envelope is sent to the recipients. \\\\n* created - The envelope is saved as a draft and can be modified and sent later.\\" status: String \\"The unique identifier for the tab. The tabid can be retrieved with the [ML:GET call].\\" @@ -10044,10 +8975,6 @@ input lastName_Input { templateLocked: String \\"When set to **true**, the sender may not remove the recipient. Used only when working with template recipients.\\" templateRequired: String - \\"When set to **true**, the information in the tab is underlined.\\" - underline: String - \\"Specifies the value of the tab.\\" - value: String \\"This indicates the horizontal offset of the object on the page.\\\\nDocuSign uses 72 DPI when determining position.\\\\nRequired. May be zero.\\" xPosition: String \\"This indicates the vertical offset of the object on the page. DocuSign uses 72 DPI when determining position.\\" @@ -10889,81 +9816,6 @@ input zip_Input { yPosition: String } -input intermediary_Input { - \\"If a value is provided, the recipient must enter the value as the access code to view and sign the envelope. \\\\n\\\\nMaximum Length: 50 characters and it must conform to the account's access code format setting.\\\\n\\\\nIf blank, but the signer \`accessCode\` property is set in the envelope, then that value is used.\\\\n\\\\nIf blank and the signer \`accessCode\` property is not set, then the access code is not required.\\" - accessCode: String - \\"This Optional attribute indicates that the access code will be added to the email sent to the recipient; this nullifies the Security measure of Access Code on the recipient.\\" - addAccessCodeToEmail: String - \\"Specifies whether the recipient is embedded or remote. \\\\n\\\\nIf the \`clientUserId\` property is not null then the recipient is embedded. Use this field to associate the signer with their userId in your app. Authenticating the user is the responsibility of your app when you use embedded signing.\\\\n\\\\nNote: if the \`clientUserId\` property is set and either \`SignerMustHaveAccount\` or \`SignerMustLoginToSign\` property of the account settings is set to **true**, an error is generated on sending. \\\\n\\\\nMaximum length: 100 characters.\\" - clientUserId: String - \\"An optional array of strings that allows the sender to provide custom data about the recipient. This information is returned in the envelope status but otherwise not used by DocuSign. Each customField string can be a maximum of 100 characters.\\" - customFields: [String] - \\"The date and time the recipient declined the document.\\" - declinedDateTime: String - \\"The reason the recipient declined the document.\\" - declinedReason: String - \\"Reserved: For DocuSign use only.\\" - deliveredDateTime: String - \\"Reserved: For DocuSign use only.\\" - deliveryMethod: String - documentVisibility: [documentVisibility_Input] - \\"Email id of the recipient. Notification of the document to sign is sent to this email id. \\\\n\\\\nMaximum length: 100 characters.\\" - email: String - emailNotification: recipientEmailNotification_Input - emailRecipientPostSigningURL: String - \\"Specifies a sender provided valid URL string for redirecting an embedded recipient. When using this option, the embedded recipient still receives an email from DocuSign, just as a remote recipient would. When the document link in the email is clicked the recipient is redirected, through DocuSign, to the supplied URL to complete their actions. When routing to the URL, the sender's system (the server responding to the URL) must request a recipient token to launch a signing session. \\\\n\\\\nIf set to \`SIGN_AT_DOCUSIGN\`, the recipient is directed to an embedded signing or viewing process directly at DocuSign. The signing or viewing action is initiated by the DocuSign system and the transaction activity and Certificate of Completion records will reflect this. In all other ways the process is identical to an embedded signing or viewing operation that is launched by any partner.\\\\n\\\\nIt is important to remember that in a typical embedded workflow the authentication of an embedded recipient is the responsibility of the sending application, DocuSign expects that senders will follow their own process for establishing the recipient's identity. In this workflow the recipient goes through the sending application before the embedded signing or viewing process in initiated. However, when the sending application sets \`EmbeddedRecipientStartURL=SIGN_AT_DOCUSIGN\`, the recipient goes directly to the embedded signing or viewing process bypassing the sending application and any authentication steps the sending application would use. In this case, DocuSign recommends that you use one of the normal DocuSign authentication features (Access Code, Phone Authentication, SMS Authentication, etc.) to verify the identity of the recipient.\\\\n\\\\nIf the \`clientUserId\` property is NOT set, and the \`embeddedRecipientStartURL\` is set, DocuSign will ignore the redirect URL and launch the standard signing process for the email recipient. Information can be appended to the embedded recipient start URL using merge fields. The available merge fields items are: envelopeId, recipientId, recipientName, recipientEmail, and customFields. The \`customFields\` property must be set fort the recipient or envelope. The merge fields are enclosed in double brackets. \\\\n\\\\n*Example*: \\\\n\\\\n\`http://senderHost/[[mergeField1]]/ beginSigningSession? [[mergeField2]]&[[mergeField3]]\`\\" - embeddedRecipientStartURL: String - errorDetails: errorDetails_Input - \\"Specifies the documents that are not visible to this recipient. Document Visibility must be enabled for the account and the \`enforceSignerVisibility\` property must be set to **true** for the envelope to use this.\\\\n\\\\nWhen enforce signer visibility is enabled, documents with tabs can only be viewed by signers that have a tab on that document. Recipients that have an administrative role (Agent, Editor, or Intermediaries) or informational role (Certified Deliveries or Carbon Copies) can always see all the documents in an envelope, unless they are specifically excluded using this setting when an envelope is sent. Documents that do not have tabs are always visible to all recipients, unless they are specifically excluded using this setting when an envelope is sent.\\" - excludedDocuments: [String] - \\"Reserved:\\" - faxNumber: String - \\"Specifies authentication check by name. The names used here must be the same as the authentication type names used by the account (these name can also be found in the web console sending interface in the Identify list for a recipient,) This overrides any default authentication setting.\\\\n\\\\n*Example*: Your account has ID Check and SMS Authentication available and in the web console Identify list these appear as 'ID Check $' and 'SMS Auth $'. To use ID check in an envelope, the idCheckConfigurationName should be 'ID Check '. If you wanted to use SMS, it would be 'SMS Auth $' and you would need to add you would need to add phone number information to the \`smsAuthentication\` node.\\" - idCheckConfigurationName: String - idCheckInformationInput: idCheckInformationInput_Input - \\"When set to **true** and the envelope recipient creates a DocuSign account after signing, the Manage Account Email Notification settings are used as the default settings for the recipient's account.\\" - inheritEmailNotificationConfiguration: String - name: String - \\"A note sent to the recipient in the signing email.\\\\nThis note is unique to this recipient.\\\\nIn the user interface,\\\\nit appears near the upper left corner\\\\nof the document\\\\non the signing screen.\\\\n\\\\nMaximum Length: 1000 characters.\\" - note: String - phoneAuthentication: recipientPhoneAuthentication_Input - \\"Reserved:\\" - recipientAttachments: [recipientAttachment_Input] - recipientAuthenticationStatus: authenticationStatus_Input - \\"Unique for the recipient. It is used by the tab element to indicate which recipient is to sign the Document.\\" - recipientId: String - recipientIdGuid: String - \\"When set to **true**, the recipient is required to use the specified ID check method (including Phone and SMS authentication) to validate their identity.\\" - requireIdLookup: String - \\"Optional element. Specifies the role name associated with the recipient.

This is required when working with template recipients.\\" - roleName: String - \\"Specifies the routing order of the recipient in the envelope.\\" - routingOrder: String - samlAuthentication: recipientSAMLAuthentication_Input - \\"The date and time the envelope was sent.\\" - sentDateTime: String - \\"Reserved: For DocuSign use only.\\" - signedDateTime: String - \\"When set to **true** and the feature is enabled in the sender's account, the signing recipient is required to draw signatures and initials at each signature/initial tab ( instead of adopting a signature/initial style or only drawing a signature/initial once).\\" - signingGroupId: String - \\"The display name for the signing group. \\\\n\\\\nMaximum Length: 100 characters.\\" - signingGroupName: String - \\"A complex type that contains information about users in the signing group.\\" - signingGroupUsers: [userInfo_Input] - smsAuthentication: recipientSMSAuthentication_Input - \\"Lists the social ID type that can be used for recipient authentication.\\" - socialAuthentications: [socialAuthentication_Input] - \\"Indicates the envelope status. Valid values are:\\\\n\\\\n* sent - The envelope is sent to the recipients. \\\\n* created - The envelope is saved as a draft and can be modified and sent later.\\" - status: String - \\"When set to **true**, the sender cannot change any attributes of the recipient. Used only when working with template recipients.\\" - templateLocked: String - \\"When set to **true**, the sender may not remove the recipient. Used only when working with template recipients.\\" - templateRequired: String - totalTabCount: String - \\"The user ID of the user being accessed. Generally this is the user ID of the authenticated user, but if the authenticated user is an Admin on the account, this may be another user the Admin user is accessing.\\" - userId: String -} - input signer_Input { \\"If a value is provided, the recipient must enter the value as the access code to view and sign the envelope. \\\\n\\\\nMaximum Length: 50 characters and it must conform to the account's access code format setting.\\\\n\\\\nIf blank, but the signer \`accessCode\` property is set in the envelope, then that value is used.\\\\n\\\\nIf blank and the signer \`accessCode\` property is not set, then the access code is not required.\\" accessCode: String @@ -11172,22 +10024,6 @@ input envelopeAttachmentsRequest_Input { attachments: [attachment_Input] } -\\"Envelope custom fields\\" -type EnvelopeCustomFields { - \\"An array of list custom fields.\\" - listCustomFields: [listCustomField] - \\"An array of text custom fields.\\" - textCustomFields: [textCustomField] -} - -\\"Envelope custom fields\\" -input EnvelopeCustomFields_Input { - \\"An array of list custom fields.\\" - listCustomFields: [listCustomField_Input] - \\"An array of text custom fields.\\" - textCustomFields: [textCustomField_Input] -} - \\"Envelope document fields\\" input EnvelopeDocumentFields_Input { \\"The array of name/value custom data strings to be added to a document. Custom document field information is returned in the status, but otherwise is not used by DocuSign. The array contains the elements: \\\\n\\\\n* name - A string that can be a maximum of 50 characters. \\\\n* value - A string that can be a maximum of 200 characters.\\\\n\\\\n*IMPORTANT*: If you are using xml, the name/value pair is contained in a nameValue element.\\" @@ -11240,13 +10076,6 @@ input lockRequest_Input { useScratchPad: String } -input envelopeNotificationRequest_Input { - expirations: expirations_Input - reminders: reminders_Input - \\"When set to **true**, the account default notification settings are used for the envelope.\\" - useAccountDefaults: String -} - type recipientsUpdateSummary { recipientUpdateResults: [recipientUpdateResponse] } @@ -11293,7 +10122,7 @@ input bulkRecipient_Input { recipientSignatureProviderInfo: [bulkRecipientSignatureProvider_Input] rowNumber: String \\"Specifies values used to populate recipient tabs with information. This allows each bulk recipient signer to have different values for their associated tabs. Any number of \`tabLabel\` columns can be added to the bulk recipient file.\\\\n\\\\nThe information used in the bulk recipient file header must be the same as the \`tabLabel\` for the tab.\\\\n\\\\nThe values entered in this column are automatically inserted into the corresponding tab for the recipient in the same row.\\\\n\\\\nNote that this option cannot be used for tabs that do not have data or that are automatically populated data such as Signature, Full Name, Email Address, Company, Title, and Date Signed tabs.\\" - tabLabels: [bulkRecipientTabLabel_Input] + tabLabels: [bulkRecipientSignatureProvider_Input] } input bulkRecipientSignatureProvider_Input { @@ -11302,12 +10131,6 @@ input bulkRecipientSignatureProvider_Input { value: String } -input bulkRecipientTabLabel_Input { - name: String - \\"Specifies the value of the tab.\\" - value: String -} - \\"Embedding Envelope views\\" type EnvelopeViews { \\"The view URL to be navigated to.\\" @@ -11679,7 +10502,7 @@ input templateSharedItem_Input { \\"When set to **true**, this custom tab is shared.\\" shared: String sharedGroups: [memberGroupSharedItem_Input] - sharedUsers: [userSharedItem_Input] + sharedUsers: [sharedItem_Input] \\"The unique identifier of the template. If this is not provided, DocuSign will generate a value.\\" templateId: String templateName: String @@ -11692,13 +10515,6 @@ input memberGroupSharedItem_Input { shared: String } -input userSharedItem_Input { - errorDetails: errorDetails_Input - \\"When set to **true**, this custom tab is shared.\\" - shared: String - user: userInfo_Input -} - input signingGroupInformation_Input { \\"A collection group objects containing information about the groups returned.\\" groups: [SigningGroups_Input] @@ -11932,31 +10748,6 @@ input envelopeTemplateDefinition_Input { uri: String } -type templateUpdateSummary { - bulkEnvelopeStatus: bulkEnvelopeStatus - \\"The envelope ID of the envelope status that failed to post.\\" - envelopeId: String - errorDetails: errorDetails - listCustomFieldUpdateResults: [listCustomField] - lockInformation: EnvelopeLocks - recipientUpdateResults: [recipientUpdateResponse] - tabUpdateResults: EnvelopeRecipientTabs - textCustomFieldUpdateResults: [textCustomField] -} - -input templateCustomFields_Input { - \\"An array of list custom fields.\\" - listCustomFields: [listCustomField_Input] - \\"An array of text custom fields.\\" - textCustomFields: [textCustomField_Input] -} - -\\"Template document fields\\" -input TemplateDocumentFields_Input { - \\"The array of name/value custom data strings to be added to a document. Custom document field information is returned in the status, but otherwise is not used by DocuSign. The array contains the elements: \\\\n\\\\n* name - A string that can be a maximum of 50 characters. \\\\n* value - A string that can be a maximum of 200 characters.\\\\n\\\\n*IMPORTANT*: If you are using xml, the name/value pair is contained in a nameValue element.\\" - documentFields: [nameValue_Input] -} - input templateNotificationRequest_Input { expirations: expirations_Input password: String @@ -11978,79 +10769,13 @@ input templateRecipients_Input { \\"Specifies a signer that is in the same physical location as a DocuSign user who will act as a Signing Host for the transaction. The recipient added is the Signing Host and new separate Signer Name field appears after Sign in person is selected.\\" inPersonSigners: [inPersonSigner_Input] \\"Identifies a recipient that can, but is not required to, add name and email information for recipients at the same or subsequent level in the routing order (until subsequent Agents, Editors or Intermediaries recipient types are added).\\" - intermediaries: [intermediary_Input] + intermediaries: [agent_Input] \\"The list of recipient event statuses that will trigger Connect to send updates to the url. It can be a two-part list with:\\\\n\\\\n* recipientEventStatusCode - The recipient status, this can be Sent, Delivered, Completed, Declined, AuthenticationFailed, and AutoResponded.\\\\n* includeDocuments - When set to **true**, the envelope time zone information is included in the message.\\" recipientCount: String \\"A complex type containing information about the Signer recipient.\\" signers: [signer_Input] } -type TemplateDocumentVisibility { - documentVisibility: [documentVisibility] -} - -input TemplateDocumentVisibility_Input { - documentVisibility: [documentVisibility_Input] -} - -input templateTabs_Input { - \\"A tab that allows the recipient to approve documents\\\\nwithout placing a signature or initials on the\\\\ndocument. If the recipient clicks the Approve tab during the signing\\\\nprocess, the recipient is considered to have signed the document. No\\\\ninformation is shown on the document for the approval, but it is\\\\nrecorded as a signature in the envelope history.\\" - approveTabs: [approve_Input] - \\"Specifies a tag on the document in a location where the recipient can select an option.\\" - checkboxTabs: [checkbox_Input] - \\"Specifies a tag on the document where you want the recipient's company name to appear.\\\\n\\\\nWhen getting information that includes this tab type, the original value of the tab when the associated envelope was sent is included in the response.\\" - companyTabs: [company_Input] - \\"Specifies a tab on the document where the date the document was signed will automatically appear.\\" - dateSignedTabs: [dateSigned_Input] - \\"Specifies a tab on the document where you want the recipient to enter a date. Date tabs are single-line fields that allow date information to be entered in any format. The tooltip for this tab recommends entering the date as MM/DD/YYYY, but this is not enforced. The format entered by the signer is retained. \\\\n\\\\nIf you need a particular date format enforced, DocuSign recommends using a Text tab with a Validation Pattern and Validation Message to enforce the format.\\" - dateTabs: [date_Input] - \\"Specifies a tag on the document where you want to give the recipient the option of declining an envelope. If the recipient clicks the Decline tag during the signing process, the envelope is voided.\\" - declineTabs: [decline_Input] - \\"Specifies a location on the document where you want where you want the recipient's email, as entered in the recipient information, to display.\\" - emailAddressTabs: [emailAddress_Input] - \\"Specifies a tag on the document where you want the recipient to enter an email. Email tags are single-line fields that accept any characters. The system checks that a valid email format (i.e. xxx@yyy.zzz) is entered in the tag. It uses the same parameters as a Text tab, with the validation message and pattern set for email information.\\\\n\\\\nWhen getting information that includes this tab type, the original value of the tab when the associated envelope was sent is included in the response.\\" - emailTabs: [email_Input] - \\"Specifies a tag on the document where you want the envelope ID for to appear. Recipients cannot enter or change the information in this tab, it is for informational purposes only.\\" - envelopeIdTabs: [envelopeId_Input] - \\"Specifies tag on a document where you want the recipient's first name to appear. This tag takes the recipient's name, as entered in the recipient information, splits it into sections based on spaces and uses the first section as the first name.\\" - firstNameTabs: [firstName_Input] - \\"A list of formula tabs.\\\\n\\\\nThe value of a formula tab is calculated\\\\nfrom the values of other\\\\nnumber or date tabs in the document.\\\\nWhen the recipient completes the underlying fields,\\\\nthe formula tab calculates and displays the result.\\\\n\\\\nThe \`formula\` property of the tab\\\\ncontains the references\\\\nto the underlying tabs.\\\\nSee [Calculated Fields][calculatedfields]\\\\nin the DocuSign Support Center\\\\nto learn more about formulas.\\\\n\\\\nIf a formula tab contains\\\\na \`paymentDetails\` property,\\\\nthe tab is considered a payment item.\\\\nSee [Requesting Payments Along with Signatures][paymentguide]\\\\nin the DocuSign Support Center\\\\nto learn more about payments.\\\\n\\\\n[calculatedfields]: https://support.docusign.com/en/guides/ndse-user-guide-calculated-fields\\\\n[paymentguide]: https://support.docusign.com/en/guides/requesting-payments-along-with-signatures\\" - formulaTabs: [formulaTab_Input] - \\"Specifies a tag on the document where you want the recipient's name to appear.\\" - fullNameTabs: [fullName_Input] - \\"Specifies a tag location in the document at which a recipient will place their initials. The \`optional\` parameter specifies whether the initials are required or optional.\\" - initialHereTabs: [initialHere_Input] - \\"Specifies a tag on a document where you want the recipient's last name to appear. This tag takes the recipient's name, as entered in the recipient information, splits it into sections based on spaces and uses the last section as the last name.\\" - lastNameTabs: [lastName_Input] - \\"Specify this tag to give your recipient a list of options, presented as a drop-down list, from which they can select.\\" - listTabs: [list_Input] - \\"Specifies a location on the document where you want to place additional information, in the form of a note, for a recipient.\\" - noteTabs: [note_Input] - \\"Specifies a tag on the document where you want the recipient to enter a number. It uses the same parameters as a Text tab, with the validation message and pattern set for number information.\\\\n\\\\nWhen getting information that includes this tab type, the original value of the tab when the associated envelope was sent is included in the response.\\" - numberTabs: [number_Input] - \\"Specifies a tag on the document in a location where the recipient can select one option from a group of options using a radio button. The radio buttons do not have to be on the same page in a document.\\" - radioGroupTabs: [radioGroup_Input] - \\"A complex type the contains information about the tag that specifies where the recipient places their signature in the document. The \\\\\\"optional\\\\\\" parameter sets if the signature is required or optional.\\" - signHereTabs: [signHere_Input] - \\"Specifies a tag on the document when you want the recipient to add supporting documents to an envelope.\\" - signerAttachmentTabs: [signerAttachment_Input] - \\"Specifies a tag on the document where you want the recipient to enter a Social Security Number (SSN). A SSN can be typed with or without dashes. It uses the same parameters as a Text tab, with the validation message and pattern set for SSN information.\\\\n\\\\nWhen getting information that includes this tab type, the original value of the tab when the associated envelope was sent is included in the response.\\" - ssnTabs: [ssn_Input] - \\"Specifies a that that is an adaptable field that allows the recipient to enter different text information.\\\\n\\\\nWhen getting information that includes this tab type, the original value of the tab when the associated envelope was sent is included in the response.\\" - textTabs: [text_Input] - \\"Specifies a tag on the document where you want the recipient's title to appear.\\\\n\\\\nWhen getting information that includes this tab type, the original value of the tab when the associated envelope was sent is included in the response.\\" - titleTabs: [title_Input] - viewTabs: [view_Input] - \\"Specifies a tag on the document where you want the recipient to enter a ZIP code. The ZIP code can be a five numbers or the ZIP+4 format with nine numbers. The zip code can be typed with or without dashes. It uses the same parameters as a Text tab, with the validation message and pattern set for ZIP code information.\\\\n\\\\nWhen getting information that includes this tab type, the original value of the tab when the associated envelope was sent is included in the response.\\" - zipTabs: [zip_Input] -} - -\\"Embedding template views\\" -type TemplateViews { - \\"The view URL to be navigated to.\\" - url: String -} - type newUsersSummary { newUsers: [newUser] } diff --git a/packages/types/src/config-schema.json b/packages/types/src/config-schema.json index ace7abd8e8200..c69c9fbdf1ef0 100644 --- a/packages/types/src/config-schema.json +++ b/packages/types/src/config-schema.json @@ -982,7 +982,11 @@ "arrayFormat": { "type": "string", "enum": ["indices", "brackets", "repeat", "comma"], - "description": "You can configure how to format arrays in the query strings. (Allowed values: indices, brackets, repeat, comma)" + "description": "You can configure how to format arrays in the query strings.\n\nNote: when using arrayFormat set to 'comma', you can also pass the commaRoundTrip option set to true or false, to append [] on single-item arrays, so that they can round trip through a parse. (Allowed values: indices, brackets, repeat, comma)" + }, + "commaRoundTrip": { + "type": "boolean", + "description": "Even if there is a single item in an array, this option treats them as arrays\n(default: false)" } } }, diff --git a/packages/types/src/config.ts b/packages/types/src/config.ts index 77ca11effd5e3..52ed6a2cd9485 100644 --- a/packages/types/src/config.ts +++ b/packages/types/src/config.ts @@ -493,9 +493,16 @@ export interface QueryStringOptions { */ indices?: boolean; /** - * You can configure how to format arrays in the query strings. (Allowed values: indices, brackets, repeat, comma) + * You can configure how to format arrays in the query strings. + * + * Note: when using arrayFormat set to 'comma', you can also pass the commaRoundTrip option set to true or false, to append [] on single-item arrays, so that they can round trip through a parse. (Allowed values: indices, brackets, repeat, comma) */ arrayFormat?: 'indices' | 'brackets' | 'repeat' | 'comma'; + /** + * Even if there is a single item in an array, this option treats them as arrays + * (default: false) + */ + commaRoundTrip?: boolean; } export interface JsonSchemaHandlerBundle { /** @@ -523,9 +530,16 @@ export interface QueryStringOptions1 { */ indices?: boolean; /** - * You can configure how to format arrays in the query strings. (Allowed values: indices, brackets, repeat, comma) + * You can configure how to format arrays in the query strings. + * + * Note: when using arrayFormat set to 'comma', you can also pass the commaRoundTrip option set to true or false, to append [] on single-item arrays, so that they can round trip through a parse. (Allowed values: indices, brackets, repeat, comma) */ arrayFormat?: 'indices' | 'brackets' | 'repeat' | 'comma'; + /** + * Even if there is a single item in an array, this option treats them as arrays + * (default: false) + */ + commaRoundTrip?: boolean; } export interface MongooseHandler { connectionString?: string; diff --git a/website/src/generated-markdown/JsonSchemaHandler.generated.md b/website/src/generated-markdown/JsonSchemaHandler.generated.md index f0575d94d4bf3..cc6386b4c3da0 100644 --- a/website/src/generated-markdown/JsonSchemaHandler.generated.md +++ b/website/src/generated-markdown/JsonSchemaHandler.generated.md @@ -76,4 +76,8 @@ You can disable this behavior by setting this to true. `a=b&a=c&a=d` You may override this by setting the indices option to true: `a[0]=b&a[1]=c&a[2]=d` - * `arrayFormat` (type: `String (indices | brackets | repeat | comma)`) - You can configure how to format arrays in the query strings. \ No newline at end of file + * `arrayFormat` (type: `String (indices | brackets | repeat | comma)`) - You can configure how to format arrays in the query strings. + +Note: when using arrayFormat set to 'comma', you can also pass the commaRoundTrip option set to true or false, to append [] on single-item arrays, so that they can round trip through a parse. + * `commaRoundTrip` (type: `Boolean`) - Even if there is a single item in an array, this option treats them as arrays +(default: false) \ No newline at end of file diff --git a/website/src/generated-markdown/JsonSchemaHandlerBundle.generated.md b/website/src/generated-markdown/JsonSchemaHandlerBundle.generated.md index 6c456d3e1ef35..5c93e0feffcb9 100644 --- a/website/src/generated-markdown/JsonSchemaHandlerBundle.generated.md +++ b/website/src/generated-markdown/JsonSchemaHandlerBundle.generated.md @@ -8,4 +8,8 @@ `a=b&a=c&a=d` You may override this by setting the indices option to true: `a[0]=b&a[1]=c&a[2]=d` - * `arrayFormat` (type: `String (indices | brackets | repeat | comma)`) - You can configure how to format arrays in the query strings. \ No newline at end of file + * `arrayFormat` (type: `String (indices | brackets | repeat | comma)`) - You can configure how to format arrays in the query strings. + +Note: when using arrayFormat set to 'comma', you can also pass the commaRoundTrip option set to true or false, to append [] on single-item arrays, so that they can round trip through a parse. + * `commaRoundTrip` (type: `Boolean`) - Even if there is a single item in an array, this option treats them as arrays +(default: false) \ No newline at end of file diff --git a/website/src/generated-markdown/QueryStringOptions.generated.md b/website/src/generated-markdown/QueryStringOptions.generated.md index aaf13aa401f6e..4de4215b56225 100644 --- a/website/src/generated-markdown/QueryStringOptions.generated.md +++ b/website/src/generated-markdown/QueryStringOptions.generated.md @@ -3,4 +3,8 @@ `a=b&a=c&a=d` You may override this by setting the indices option to true: `a[0]=b&a[1]=c&a[2]=d` -* `arrayFormat` (type: `String (indices | brackets | repeat | comma)`) - You can configure how to format arrays in the query strings. \ No newline at end of file +* `arrayFormat` (type: `String (indices | brackets | repeat | comma)`) - You can configure how to format arrays in the query strings. + +Note: when using arrayFormat set to 'comma', you can also pass the commaRoundTrip option set to true or false, to append [] on single-item arrays, so that they can round trip through a parse. +* `commaRoundTrip` (type: `Boolean`) - Even if there is a single item in an array, this option treats them as arrays +(default: false) \ No newline at end of file