model

package
v1.1.2 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Oct 17, 2021 License: BSD-3-Clause Imports: 3 Imported by: 0

Documentation

Overview

Package model provides definitions for all input and output parameters types found in DocuSign's OpenAPI (swagger) file.

Api documentation may be found at: https://developers.docusign.com/esign-rest-api/reference

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type APIRequestLog

type APIRequestLog struct {
	// The date and time the item was created.
	CreatedDateTime *time.Time `json:"createdDateTime,omitempty"`
	// A sender-defined description of the line item.
	//
	Description string `json:"description,omitempty"`
	//
	RequestLogID string `json:"requestLogId,omitempty"`
	// The status of the item.
	Status string `json:"status,omitempty"`
}

APIRequestLog contains API request log information.

type APIRequestLogsResult

type APIRequestLogsResult struct {
	// Reserved: TBD
	APIRequestLogs []APIRequestLog `json:"apiRequestLogs,omitempty"`
}

APIRequestLogsResult contains information about mutiple API request logs.

type AccessCodeFormat

type AccessCodeFormat struct {
	// Boolean specifying whether this format configuration is required.
	FormatRequired string `json:"formatRequired,omitempty"`
	// Metadata indicating whether the `formatRequired` property is editable.
	FormatRequiredMetadata *SettingsMetadata `json:"formatRequiredMetadata,omitempty"`
	// Boolean specifying whether alphabetical characters are required in the access code string.
	LetterRequired string `json:"letterRequired,omitempty"`
	// Metadata indicating whether the `letterRequired` property is editable.
	LetterRequiredMetadata *SettingsMetadata `json:"letterRequiredMetadata,omitempty"`
	// Minimum length of the access code string.
	MinimumLength string `json:"minimumLength,omitempty"`
	// Metadata indicating whether the `minimumLength` property is editable.
	MinimumLengthMetadata *SettingsMetadata `json:"minimumLengthMetadata,omitempty"`
	// Boolean specifying whether numerical characters (0-9) are required in the access code string.
	NumberRequired string `json:"numberRequired,omitempty"`
	// Metadata indicating whether the `numberRequired` property is editable.
	NumberRequiredMetadata *SettingsMetadata `json:"numberRequiredMetadata,omitempty"`
	// Boolean specifying whether special characters are required in the access code string. The string cannot contain the special characters '<', '>', '&', or '#'.
	SpecialCharacterRequired string `json:"specialCharacterRequired,omitempty"`
	// Metadata indicating whether the `specialCharacterRequired` property is editable.
	SpecialCharacterRequiredMetadata *SettingsMetadata `json:"specialCharacterRequiredMetadata,omitempty"`
}

AccessCodeFormat object specifying the format of the string provided to a recipient in order to access an envelope.

type AccountAddress

type AccountAddress struct {
	// The first line of the user's address.
	// Maximum length: 100 characters.
	Address1 string `json:"address1,omitempty"`
	// The second line of the user's address.
	// Maximum length: 100 characters.
	Address2 string `json:"address2,omitempty"`
	// The city value of the address.
	City string `json:"city,omitempty"`
	// Specifies the country associated with the address.
	Country string `json:"country,omitempty"`
	// Filters returned user records by the specified email address.
	Email string `json:"email,omitempty"`
	//
	Fax string `json:"fax,omitempty"`
	// The user's first name.
	// Maximum Length: 50 characters.
	FirstName string `json:"firstName,omitempty"`
	//
	LastName string `json:"lastName,omitempty"`
	//
	Phone string `json:"phone,omitempty"`
	// The postal code associated with the address.
	PostalCode string `json:"postalCode,omitempty"`
	// The state or province associated with the address.
	State string `json:"state,omitempty"`
	// Contains an array of countries supported by the billing plan.
	SupportedCountries []Country `json:"supportedCountries,omitempty"`
}

AccountAddress contains information about an account address.

type AccountBillingPlan

type AccountBillingPlan struct {
	// Reserved for DocuSign.
	AddOns []AddOn `json:"addOns,omitempty"`
	// Reserved for DocuSign.
	CanCancelRenewal string `json:"canCancelRenewal,omitempty"`
	// When set to **true**, specifies that you can upgrade the account through the API. For GET methods, you must set the `include_metadata` query parameter to **true** for this property to appear in the response.
	CanUpgrade DSBool `json:"canUpgrade,omitempty"`
	// Specifies the ISO currency code for the account.
	CurrencyCode string `json:"currencyCode,omitempty"`
	// When set to **true**, then customer support is provided as part of the account plan.
	EnableSupport DSBool `json:"enableSupport,omitempty"`
	// The number of seats (users) included.
	IncludedSeats string `json:"includedSeats,omitempty"`
	// Reserved for DocuSign.
	IncrementalSeats string `json:"incrementalSeats,omitempty"`
	// When **true**, the account has been downgraded from a premium account type. Otherwise **false**.
	IsDowngrade DSBool `json:"isDowngrade,omitempty"`
	//  Any other percentage discount for the plan.
	OtherDiscountPercent string `json:"otherDiscountPercent,omitempty"`
	//
	PaymentCycle string `json:"paymentCycle,omitempty"`
	//  The payment method used with the plan. The possible values are: CreditCard, PurchaseOrder, Premium, or Freemium.
	PaymentMethod string `json:"paymentMethod,omitempty"`
	//
	PerSeatPrice string `json:"perSeatPrice,omitempty"`
	// Identifies the type of plan. Examples include:
	//
	// - `business`
	// - `corporate`
	// - `enterprise`
	// - `free`
	PlanClassification string `json:"planClassification,omitempty"`
	// Reserved for DocuSign.
	PlanFeatureSets []FeatureSet `json:"planFeatureSets,omitempty"`
	// The DocuSign plan id for the account.
	PlanID string `json:"planId,omitempty"`
	// The name of the billing plan.
	PlanName string `json:"planName,omitempty"`
	// The renewal status for the account. Valid values are:
	//
	// * auto - The account automatically renews.
	// * queued_for_close - The account will be closed at the `billingPeriodEndDate`.
	// * queued_for_downgrade - The account will be downgraded at the `billingPeriodEndDate`.
	//
	// **Note**: For GET methods, you must set the `include_metadata` query parameter to **true** for this property to appear in the response.
	RenewalStatus string `json:"renewalStatus,omitempty"`
	//  A complex type that contains any seat discount information. Valid values are:
	//
	// - `BeginSeatCount`
	// - `EndSeatCount`
	// - `SeatDiscountPercent`
	//
	SeatDiscounts []SeatDiscount `json:"seatDiscounts,omitempty"`
	// The support incident fee charged for each support incident.
	SupportIncidentFee string `json:"supportIncidentFee,omitempty"`
	// The support plan fee charged for this plan.
	SupportPlanFee string `json:"supportPlanFee,omitempty"`
}

AccountBillingPlan contains information about an account billing plan.

type AccountBillingPlanResponse

type AccountBillingPlanResponse struct {
	// The billing address for the account.
	BillingAddress *AccountAddress `json:"billingAddress,omitempty"`
	// When set to **true**, the credit card address information is the same as that returned as the billing address. If false, then the billing address is considered a billing contact address, and the credit card address can be different.
	BillingAddressIsCreditCardAddress DSBool `json:"billingAddressIsCreditCardAddress,omitempty"`
	// An object that contains details about the billing plan.
	BillingPlan *AccountBillingPlan `json:"billingPlan,omitempty"`
	// A complex type that has information about the credit card used to pay for this account.
	CreditCardInformation *CreditCardInformation `json:"creditCardInformation,omitempty"`
	// Information about the bank that processes direct debits for the payment plan.
	DirectDebitProcessorInformation *DirectDebitProcessorInformation `json:"directDebitProcessorInformation,omitempty"`
	// The payment method used for the billing plan. Valid values are:
	//
	// - `NotSupported`
	// - `CreditCard`
	// - `PurchaseOrder`
	// - `Premium`
	// - `Freemium`
	// - `FreeTrial`
	// - `AppStore`
	// - `DigitalExternal`
	// - `DirectDebit`
	PaymentMethod string `json:"paymentMethod,omitempty"`
	// Information about the entity that processes payments for the billing plan.
	PaymentProcessorInformation *PaymentProcessorInformation `json:"paymentProcessorInformation,omitempty"`
	// Contains information describing discounts and promotions.
	ReferralInformation *ReferralInformation `json:"referralInformation,omitempty"`
	//
	SuccessorPlans []BillingPlan `json:"successorPlans,omitempty"`
}

AccountBillingPlanResponse billing plans

type AccountIdentityVerificationResponse

type AccountIdentityVerificationResponse struct {
	//
	IdentityVerification []AccountIdentityVerificationWorkflow `json:"identityVerification,omitempty"`
}

AccountIdentityVerificationResponse identity verification workflows available to an account

type AccountIdentityVerificationStep

type AccountIdentityVerificationStep struct {
	// Name of the identity verification step
	Name string `json:"name,omitempty"`
	// Type of user:
	// - `type_owner`
	// - `type_participant`
	Type string `json:"type,omitempty"`
}

AccountIdentityVerificationStep identity verification step

type AccountIdentityVerificationWorkflow

type AccountIdentityVerificationWorkflow struct {
	// Text describing the purpose of the ID Verification workflow
	DefaultDescription string `json:"defaultDescription,omitempty"`
	// Name of the ID Verification workflow
	DefaultName string `json:"defaultName,omitempty"`
	// Signature provider associated with the identity verification workflow
	SignatureProvider *AccountSignatureProvider `json:"signatureProvider,omitempty"`
	// Workflow unique ID</br>This is the ID you must specify when [setting ID Verification in an envelope](https://developers.docusign.com/esign-rest-api/reference/Envelopes/EnvelopeRecipients)
	WorkflowID string `json:"workflowId,omitempty"`
	// Key for translated resources
	WorkflowResourceKey string `json:"workflowResourceKey,omitempty"`
}

AccountIdentityVerificationWorkflow specifies an identity verification workflow

type AccountInformation

type AccountInformation struct {
	// The GUID associated with the account ID.
	AccountIDGUID string `json:"accountIdGuid,omitempty"`
	// The name of the account associated with the current workspace user.
	AccountName string `json:"accountName,omitempty"`
	// The list of
	// [account settings][accountsettings]
	// that determine
	// the features available for the account.
	// Note that some features are determined
	// by the plan used to create the account and cannot be overridden.
	//
	// [accountsettings]: https://developers.docusign.com/esign-rest-api/reference/Accounts/Accounts/create/#account-settings
	//
	AccountSettings *AccountSettingsInformation `json:"accountSettings,omitempty"`
	// When set to **true**, the transaction rooms feature exposed through the Workspaces API is enabled.
	AllowTransactionRooms DSBool `json:"allowTransactionRooms,omitempty"`
	// Number of days remaining in the current billing period.
	BillingPeriodDaysRemaining string `json:"billingPeriodDaysRemaining,omitempty"`
	// The billing period end date in UTC timedate format.
	BillingPeriodEndDate string `json:"billingPeriodEndDate,omitempty"`
	// The number of envelopes that can be sent in the current billing period (can be unlimited).
	BillingPeriodEnvelopesAllowed string `json:"billingPeriodEnvelopesAllowed,omitempty"`
	// The number of envelopes that have been sent in the current billing period.
	BillingPeriodEnvelopesSent string `json:"billingPeriodEnvelopesSent,omitempty"`
	// The billing period start date in UTC timedate format.
	BillingPeriodStartDate string `json:"billingPeriodStartDate,omitempty"`
	// The type of billing method on the account; for example `direct` or `web`.
	BillingProfile string `json:"billingProfile,omitempty"`
	// When set to **true**, specifies that you can upgrade the account through the API. For GET methods, you must set the `include_metadata` query parameter to **true** for this property to appear in the response.
	CanUpgrade DSBool `json:"canUpgrade,omitempty"`
	//
	ConnectPermission string `json:"connectPermission,omitempty"`
	// The creation date of the account in UTC timedate format.
	CreatedDate string `json:"createdDate,omitempty"`
	// The currency code for the account, based on the [ISO 4217 currency code](https://www.iso.org/iso-4217-currency-codes.html).
	CurrencyCode string `json:"currencyCode,omitempty"`
	// ID of the plan used to create this account.
	CurrentPlanID string `json:"currentPlanId,omitempty"`
	// The code that identifies the billing plan groups and plans for the new account.
	DistributorCode string `json:"distributorCode,omitempty"`
	// URL of the landing page used to create the account.
	DocuSignLandingURL string `json:"docuSignLandingUrl,omitempty"`
	// When **true**, the ability to send envelopes is blocked. When **false**, envelopes can be sent.
	EnvelopeSendingBlocked string `json:"envelopeSendingBlocked,omitempty"`
	// The price of sending an envelope, represented in the account's local currency.
	EnvelopeUnitPrice string `json:"envelopeUnitPrice,omitempty"`
	// The Account ID displayed on the user's Account page.
	ExternalAccountID string `json:"externalAccountId,omitempty"`
	//  A complex element that contains up to four Question/Answer pairs for forgotten password information for a user.
	ForgottenPasswordQuestionsCount string `json:"forgottenPasswordQuestionsCount,omitempty"`
	// When **true**, the account has been downgraded from a premium account type. Otherwise **false**.
	IsDowngrade DSBool `json:"isDowngrade,omitempty"`
	// The payment method used for the billing plan. Valid values are:
	//
	// - `NotSupported`
	// - `CreditCard`
	// - `PurchaseOrder`
	// - `Premium`
	// - `Freemium`
	// - `FreeTrial`
	// - `AppStore`
	// - `DigitalExternal`
	// - `DirectDebit`
	PaymentMethod string `json:"paymentMethod,omitempty"`
	// Identifies the type of plan. Examples include:
	//
	// - `business`
	// - `corporate`
	// - `enterprise`
	// - `free`
	PlanClassification string `json:"planClassification,omitempty"`
	// The date that the current plan will end.
	PlanEndDate string `json:"planEndDate,omitempty"`
	// The name of the billing plan used for the account.
	PlanName string `json:"planName,omitempty"`
	// The date that the Account started using the current plan.
	PlanStartDate string `json:"planStartDate,omitempty"`
	//
	RecipientDomains []RecipientDomain `json:"recipientDomains,omitempty"`
	// The number of active users the account can have at one time.
	SeatsAllowed string `json:"seatsAllowed,omitempty"`
	// The number of users currently active on the account.
	SeatsInUse string `json:"seatsInUse,omitempty"`
	// The status of the account content per (Title 21 CFR Part 11)[https://www.fda.gov/regulatory-information/search-fda-guidance-documents/part-11-electronic-records-electronic-signatures-scope-and-application]. This regulation defines the criteria under which electronic records and electronic signatures are considered trustworthy.
	Status21CFRPart11 string `json:"status21CFRPart11,omitempty"`
	// The date on which the account was suspended.
	SuspensionDate string `json:"suspensionDate,omitempty"`
	// Indicates whether the account is currently suspended.
	SuspensionStatus string `json:"suspensionStatus,omitempty"`
}

type AccountMinimumPasswordLength

type AccountMinimumPasswordLength struct {
	//
	MaximumLength string `json:"maximumLength,omitempty"`
	// Minimum length of the access code string.
	MinimumLength string `json:"minimumLength,omitempty"`
}

type AccountNotification

type AccountNotification struct {
	// A complex element that specifies the expiration settings for the envelope.
	Expirations *Expirations `json:"expirations,omitempty"`
	// A complex element that specifies reminder settings for the envelope
	Reminders *Reminders `json:"reminders,omitempty"`
	// When **true**, the user can override envelope expirations.
	UserOverrideEnabled string `json:"userOverrideEnabled,omitempty"`
}

AccountNotification is a complex element that specifies notifications (expirations and reminders) for the envelope.

type AccountPasswordExpirePasswordDays

type AccountPasswordExpirePasswordDays struct {
	//
	MaximumDays string `json:"maximumDays,omitempty"`
	//
	MinimumDays string `json:"minimumDays,omitempty"`
}

type AccountPasswordLockoutDurationMinutes

type AccountPasswordLockoutDurationMinutes struct {
	//
	MaximumMinutes string `json:"maximumMinutes,omitempty"`
	//
	MinimumMinutes string `json:"minimumMinutes,omitempty"`
}

type AccountPasswordLockoutDurationType

type AccountPasswordLockoutDurationType struct {
	// An array of option strings supported by this setting.
	Options []string `json:"options,omitempty"`
}

type AccountPasswordMinimumPasswordAgeDays

type AccountPasswordMinimumPasswordAgeDays struct {
	//
	MaximumAge string `json:"maximumAge,omitempty"`
	//
	MinimumAge string `json:"minimumAge,omitempty"`
}

type AccountPasswordQuestionsRequired

type AccountPasswordQuestionsRequired struct {
	//
	MaximumQuestions string `json:"maximumQuestions,omitempty"`
	//
	MinimumQuestions string `json:"minimumQuestions,omitempty"`
}

type AccountPasswordRules

type AccountPasswordRules struct {
	//
	ExpirePassword string `json:"expirePassword,omitempty"`
	//
	ExpirePasswordDays string `json:"expirePasswordDays,omitempty"`
	// Metadata that indicates whether the `expirePasswordDays` property is editable.
	//
	ExpirePasswordDaysMetadata *AccountPasswordExpirePasswordDays `json:"expirePasswordDaysMetadata,omitempty"`
	//
	LockoutDurationMinutes string `json:"lockoutDurationMinutes,omitempty"`
	// Metadata that indicates whether the `lockoutDurationMinutes` property is editable.
	//
	LockoutDurationMinutesMetadata *AccountPasswordLockoutDurationMinutes `json:"lockoutDurationMinutesMetadata,omitempty"`
	//
	LockoutDurationType string `json:"lockoutDurationType,omitempty"`
	// Metadata that indicates whether the `lockoutDurationType` property is editable.
	//
	LockoutDurationTypeMetadata *AccountPasswordLockoutDurationType `json:"lockoutDurationTypeMetadata,omitempty"`
	//
	MinimumPasswordAgeDays string `json:"minimumPasswordAgeDays,omitempty"`
	// Metadata that indicates whether the `minimumPasswordAgeDays` property is editable.
	//
	MinimumPasswordAgeDaysMetadata *AccountPasswordMinimumPasswordAgeDays `json:"minimumPasswordAgeDaysMetadata,omitempty"`
	//
	MinimumPasswordLength string `json:"minimumPasswordLength,omitempty"`
	// Metadata that indicates whether the `minimumPasswordLength` property is editable.
	//
	MinimumPasswordLengthMetadata *AccountMinimumPasswordLength `json:"minimumPasswordLengthMetadata,omitempty"`
	//
	PasswordIncludeDigit string `json:"passwordIncludeDigit,omitempty"`
	//
	PasswordIncludeDigitOrSpecialCharacter string `json:"passwordIncludeDigitOrSpecialCharacter,omitempty"`
	//
	PasswordIncludeLowerCase string `json:"passwordIncludeLowerCase,omitempty"`
	//
	PasswordIncludeSpecialCharacter string `json:"passwordIncludeSpecialCharacter,omitempty"`
	//
	PasswordIncludeUpperCase string `json:"passwordIncludeUpperCase,omitempty"`
	//
	PasswordStrengthType string `json:"passwordStrengthType,omitempty"`
	// Metadata that indicates whether the `passwordStrengthType` property is editable.
	//
	PasswordStrengthTypeMetadata *AccountPasswordStrengthType `json:"passwordStrengthTypeMetadata,omitempty"`
	//
	QuestionsRequired string `json:"questionsRequired,omitempty"`
	// Metadata that indicates whether the `questionsRequired` property is editable.
	//
	QuestionsRequiredMetadata *AccountPasswordQuestionsRequired `json:"questionsRequiredMetadata,omitempty"`
}

type AccountPasswordStrengthType

type AccountPasswordStrengthType struct {
	// An array of option strings supported by this setting.
	Options []AccountPasswordStrengthTypeOption `json:"options,omitempty"`
}

type AccountPasswordStrengthTypeOption

type AccountPasswordStrengthTypeOption struct {
	// Minimum length of the access code string.
	MinimumLength string `json:"minimumLength,omitempty"`
	//
	Name string `json:"name,omitempty"`
	//
	PasswordIncludeDigit string `json:"passwordIncludeDigit,omitempty"`
	//
	PasswordIncludeDigitOrSpecialCharacter string `json:"passwordIncludeDigitOrSpecialCharacter,omitempty"`
	//
	PasswordIncludeLowerCase string `json:"passwordIncludeLowerCase,omitempty"`
	//
	PasswordIncludeSpecialCharacter string `json:"passwordIncludeSpecialCharacter,omitempty"`
	//
	PasswordIncludeUpperCase string `json:"passwordIncludeUpperCase,omitempty"`
}

type AccountRoleSettings

type AccountRoleSettings struct {
	// When **true**, users have full administrative access to the account.
	AllowAccountManagement DSBool `json:"allowAccountManagement,omitempty"`
	// Metadata that indicates whether the `allowAccountManagement` property is editable.
	//
	AllowAccountManagementMetadata *SettingsMetadata `json:"allowAccountManagementMetadata,omitempty"`
	// When **true**, users can manage documents by using the API.
	AllowAPIAccess DSBool `json:"allowApiAccess,omitempty"`
	// Metadata that indicates whether the `allowApiAccess` property is editable.
	//
	AllowAPIAccessMetadata *SettingsMetadata `json:"allowApiAccessMetadata,omitempty"`
	// When **true**, users can access the account by using the eSignature API.
	AllowAPIAccessToAccount DSBool `json:"allowApiAccessToAccount,omitempty"`
	// Metadata that indicates whether the `allowApiAccessToAccount` property is editable.
	//
	AllowAPIAccessToAccountMetadata *SettingsMetadata `json:"allowApiAccessToAccountMetadata,omitempty"`
	// When **true**, users can send envelopes on behalf of others.
	AllowAPISendingOnBehalfOfOthers DSBool `json:"allowApiSendingOnBehalfOfOthers,omitempty"`
	// Metadata that indicates whether the `allowApiSendingOnBehalfOfOthers` property is editable.
	//
	AllowAPISendingOnBehalfOfOthersMetadata *SettingsMetadata `json:"allowApiSendingOnBehalfOfOthersMetadata,omitempty"`
	// When **true**, users may specify sequential signing recipients when they send documents by using the API.
	AllowAPISequentialSigning DSBool `json:"allowApiSequentialSigning,omitempty"`
	// Metadata that indicates whether the `allowApiSequentialSigning` property is editable.
	//
	AllowAPISequentialSigningMetadata *SettingsMetadata `json:"allowApiSequentialSigningMetadata,omitempty"`
	// When **true**, bulk sending is enabled for users.
	AllowBulkSending DSBool `json:"allowBulkSending,omitempty"`
	// Metadata that indicates whether the `allowBulkSending` property is editable.
	//
	AllowBulkSendingMetadata *SettingsMetadata `json:"allowBulkSendingMetadata,omitempty"`
	// When **true**, the DocuSign Desktop Client is enabled for users.
	//
	AllowDocuSignDesktopClient DSBool `json:"allowDocuSignDesktopClient,omitempty"`
	// Metadata that indicates whether the `allowDocuSignDesktopClient` property is editable.
	//
	AllowDocuSignDesktopClientMetadata *SettingsMetadata `json:"allowDocuSignDesktopClientMetadata,omitempty"`
	// When **true**, users can add electronic seal ([eSeal](https://support.docusign.com/en/guides/ndse-user-guide-apply-electronic-seals)) recipients.
	AllowESealRecipients DSBool `json:"allowESealRecipients,omitempty"`
	// Metadata that indicates whether the `allowESealRecipients` property is editable.
	AllowESealRecipientsMetadata *SettingsMetadata `json:"allowESealRecipientsMetadata,omitempty"`
	// When **true**, users can send envelopes.
	AllowEnvelopeSending DSBool `json:"allowEnvelopeSending,omitempty"`
	// Metadata that indicates whether the `allowEnvelopeSending` property is editable.
	//
	AllowEnvelopeSendingMetadata *SettingsMetadata `json:"allowEnvelopeSendingMetadata,omitempty"`
	// When **true**, PowerForm Administrators can access all of the PowerForm envelopes associated with the account.
	AllowPowerFormsAdminToAccessAllPowerFormEnvelopes DSBool `json:"allowPowerFormsAdminToAccessAllPowerFormEnvelopes,omitempty"`
	// Metadata that indicates whether the `allowPowerFormsAdminToAccessAllPowerFormEnvelopes` property is editable.
	AllowPowerFormsAdminToAccessAllPowerFormEnvelopesMetadata *SettingsMetadata `json:"allowPowerFormsAdminToAccessAllPowerFormEnvelopesMetadata,omitempty"`
	// When **true**, senders can set the language of the email that is sent to recipients.
	AllowSendersToSetRecipientEmailLanguage DSBool `json:"allowSendersToSetRecipientEmailLanguage,omitempty"`
	// Metadata that indicates whether the `allowSendersToSetRecipientEmailLanguage` property is editable.
	//
	AllowSendersToSetRecipientEmailLanguageMetadata *SettingsMetadata `json:"allowSendersToSetRecipientEmailLanguageMetadata,omitempty"`
	// When **true**, users can add requests for attachments from signers.
	AllowSignerAttachments DSBool `json:"allowSignerAttachments,omitempty"`
	// Metadata that indicates whether the `allowSignerAttachments` property is editable.
	//
	AllowSignerAttachmentsMetadata *SettingsMetadata `json:"allowSignerAttachmentsMetadata,omitempty"`
	// When **true**, senders can include supplemental documents.
	AllowSupplementalDocuments DSBool `json:"allowSupplementalDocuments,omitempty"`
	// Metadata that indicates whether the `allowSupplementalDocuments` property is editable.
	AllowSupplementalDocumentsMetadata *SettingsMetadata `json:"allowSupplementalDocumentsMetadata,omitempty"`
	// When **true**, the tagger palette is visible during the sending and correct flows and users can add tabs to documents.
	AllowTaggingInSendAndCorrect DSBool `json:"allowTaggingInSendAndCorrect,omitempty"`
	// Metadata that indicates whether the `allowTaggingInSendAndCorrect` property is editable.
	//
	AllowTaggingInSendAndCorrectMetadata *SettingsMetadata `json:"allowTaggingInSendAndCorrectMetadata,omitempty"`
	// Reserved for DocuSign.
	AllowVaulting DSBool `json:"allowVaulting,omitempty"`
	// Reserved for DocuSign.
	AllowVaultingMetadata *SettingsMetadata `json:"allowVaultingMetadata,omitempty"`
	// When **true**, users can override the default account setting that controls whether recipients can sign documents on paper. The option to overrride this setting occurs during the sending process on a per-envelope basis.
	AllowWetSigningOverride DSBool `json:"allowWetSigningOverride,omitempty"`
	// Metadata that indicates whether the `allowWetSigningOverride` property is editable.
	//
	AllowWetSigningOverrideMetadata *SettingsMetadata `json:"allowWetSigningOverrideMetadata,omitempty"`
	// Specifies the level of access that users have to the account's address book. Valid values are:
	//
	// - `personal`
	// - `useShared`
	// - `usePersonalAndShared`
	// - `personalAndShared`
	//
	AllowedAddressBookAccess DSBool `json:"allowedAddressBookAccess,omitempty"`
	// Metadata that indicates whether the `allowedAddressBookAccess` property is editable.
	//
	AllowedAddressBookAccessMetadata *SettingsMetadata `json:"allowedAddressBookAccessMetadata,omitempty"`
	// Specifies the level of access that users have to account templates. Valid values are:
	//
	// - `none`
	// - `use`
	// - `create`
	// - `share`
	AllowedTemplateAccess DSBool `json:"allowedTemplateAccess,omitempty"`
	// Metadata that indicates whether the `allowedTemplateAccess` property is editable.
	//
	AllowedTemplateAccessMetadata *SettingsMetadata `json:"allowedTemplateAccessMetadata,omitempty"`
	// When **true**, users can be recipients of envelopes transferred to them by administrators of other accounts.
	AllowedToBeEnvelopeTransferRecipient DSBool `json:"allowedToBeEnvelopeTransferRecipient,omitempty"`
	// Metadata that indicates whether the `allowedToBeEnvelopeTransferRecipient` property is editable.
	//
	AllowedToBeEnvelopeTransferRecipientMetadata *SettingsMetadata `json:"allowedToBeEnvelopeTransferRecipientMetadata,omitempty"`
	// Reserved for DocuSign.
	CanCreateWorkspaces DSBool `json:"canCreateWorkspaces,omitempty"`
	// Reserved for DocuSign.
	CanCreateWorkspacesMetadata *SettingsMetadata `json:"canCreateWorkspacesMetadata,omitempty"`
	// When **true**, users cannot upload documents.
	DisableDocumentUpload DSBool `json:"disableDocumentUpload,omitempty"`
	// Metadata that indicates whether the `disableDocumentUpload` property is editable.
	//
	DisableDocumentUploadMetadata *SettingsMetadata `json:"disableDocumentUploadMetadata,omitempty"`
	// When **true**, users can access the **Other Actions** menu.
	DisableOtherActions DSBool `json:"disableOtherActions,omitempty"`
	// Metadata that indicates whether the `disableOtherActions` property is editable.
	//
	DisableOtherActionsMetadata *SettingsMetadata `json:"disableOtherActionsMetadata,omitempty"`
	// When **true**, API request logging is enabled.
	//
	// **Note**: Logging limits apply.
	EnableAPIRequestLogging DSBool `json:"enableApiRequestLogging,omitempty"`
	// Metadata that indicates whether the `enableApiRequestLogging` property is editable.
	//
	EnableAPIRequestLoggingMetadata *SettingsMetadata `json:"enableApiRequestLoggingMetadata,omitempty"`
	// When **true**, senders are notified when recipients view the documents that they send.
	EnableRecipientViewingNotifications DSBool `json:"enableRecipientViewingNotifications,omitempty"`
	// Metadata that indicates whether the `enableRecipientViewingNotifications` property is editable.
	//
	EnableRecipientViewingNotificationsMetadata *SettingsMetadata `json:"enableRecipientViewingNotificationsMetadata,omitempty"`
	// When **true**, the sequential signing user interface is enabled.
	EnableSequentialSigningInterface DSBool `json:"enableSequentialSigningInterface,omitempty"`
	// Metadata that indicates whether the `enableSequentialSigningInterface` property is editable.
	//
	EnableSequentialSigningInterfaceMetadata *SettingsMetadata `json:"enableSequentialSigningInterfaceMetadata,omitempty"`
	// Reserved for DocuSign.
	EnableTransactionPointIntegration DSBool `json:"enableTransactionPointIntegration,omitempty"`
	// Reserved for DocuSign.
	EnableTransactionPointIntegrationMetadata *SettingsMetadata `json:"enableTransactionPointIntegrationMetadata,omitempty"`
	// The PowerForms rights associated with the account permission profile. Valid values are:
	//
	// - `none`
	// - `user`
	// - `admin`
	//
	PowerFormRole string `json:"powerFormRole,omitempty"`
	// Metadata that indicates whether the `powerFormRole` property is editable.
	//
	PowerFormRoleMetadata *SettingsMetadata `json:"powerFormRoleMetadata,omitempty"`
	// When **true**, senders receive emails about completed, self-signed documents that contain links to the completed documents instead of PDF attachments.
	ReceiveCompletedSelfSignedDocumentsAsEmailLinks DSBool `json:"receiveCompletedSelfSignedDocumentsAsEmailLinks,omitempty"`
	// Metadata that indicates whether the `receiveCompletedSelfSignedDocumentsAsEmailLinks` property is editable.
	//
	ReceiveCompletedSelfSignedDocumentsAsEmailLinksMetadata *SettingsMetadata `json:"receiveCompletedSelfSignedDocumentsAsEmailLinksMetadata,omitempty"`
	// Reserved for DocuSign.
	SigningUIVersionMetadata *SettingsMetadata `json:"signingUiVersionMetadata,omitempty"`
	// When **true**, senders can require recipients to accept supplemental documents.
	SupplementalDocumentsMustAccept DSBool `json:"supplementalDocumentsMustAccept,omitempty"`
	// Metadata that indicates whether the `supplementalDocumentsMustAccept` property is editable.
	//
	SupplementalDocumentsMustAcceptMetadata *SettingsMetadata `json:"supplementalDocumentsMustAcceptMetadata,omitempty"`
	// When **true**, senders can require recipients to read supplemental documents.
	SupplementalDocumentsMustRead DSBool `json:"supplementalDocumentsMustRead,omitempty"`
	// Metadata that indicates whether the `supplementalDocumentsMustRead` property is editable.
	//
	SupplementalDocumentsMustReadMetadata *SettingsMetadata `json:"supplementalDocumentsMustReadMetadata,omitempty"`
	// When **true**, users can require recipients to view supplemental documents.
	SupplementalDocumentsMustView DSBool `json:"supplementalDocumentsMustView,omitempty"`
	// Metadata that indicates whether the `supplementalDocumentsMustView` property is editable.
	//
	SupplementalDocumentsMustViewMetadata *SettingsMetadata `json:"supplementalDocumentsMustViewMetadata,omitempty"`
	// Reserved for DocuSign.
	UseNewDocuSignExperienceInterface DSBool `json:"useNewDocuSignExperienceInterface,omitempty"`
	// Reserved for DocuSign.
	UseNewDocuSignExperienceInterfaceMetadata *SettingsMetadata `json:"useNewDocuSignExperienceInterfaceMetadata,omitempty"`
	// Reserved for DocuSign.
	UseNewSendingInterface DSBool `json:"useNewSendingInterface,omitempty"`
	// Reserved for DocuSign.
	UseNewSendingInterfaceMetadata *SettingsMetadata `json:"useNewSendingInterfaceMetadata,omitempty"`
	// Reserved for DocuSign.
	VaultingMode string `json:"vaultingMode,omitempty"`
	// Reserved for DocuSign.
	VaultingModeMetadata *SettingsMetadata `json:"vaultingModeMetadata,omitempty"`
}

AccountRoleSettings this object defines account permissions for users who are associated with the account permission profile.

type AccountSeals

type AccountSeals struct {
	// A list of electronic seals to apply to documents.
	Seals []SealIdentifier `json:"seals,omitempty"`
}

type AccountSettingsInformation

type AccountSettingsInformation struct {
	// Format of the string provided to a recipient in order to access an envelope.
	AccessCodeFormat *AccessCodeFormat `json:"accessCodeFormat,omitempty"`
	// UTC date/time format for the account.
	AccountDateTimeFormat string `json:"accountDateTimeFormat,omitempty"`
	// Metadata that indicates whether the `accountDateTimeFormat` property is editable.
	AccountDateTimeFormatMetadata *SettingsMetadata `json:"accountDateTimeFormatMetadata,omitempty"`
	// The name of the account associated with the current workspace user.
	AccountName string `json:"accountName,omitempty"`
	// Metadata that indicates whether the `accountName` property is editable.
	AccountNameMetadata *SettingsMetadata `json:"accountNameMetadata,omitempty"`
	// An object that specifies notifications (expirations and reminders) for the envelope.
	AccountNotification *AccountNotification `json:"accountNotification,omitempty"`
	// If **true**, [Signature Adoption Configuration](https://support.docusign.com/en/guides/ndse-admin-guide-signature-adopt-config) is enabled.
	AdoptSigConfig string `json:"adoptSigConfig,omitempty"`
	// Metadata that indicates whether the `adoptSigConfig` property is editable.
	//
	AdoptSigConfigMetadata *SettingsMetadata `json:"adoptSigConfigMetadata,omitempty"`
	// If **true**, the Advanced Correction feature is enabled for this account.
	AdvancedCorrect string `json:"advancedCorrect,omitempty"`
	// Metadata that indicates whether the `advancedCorrect` property is editable.
	//
	AdvancedCorrectMetadata *SettingsMetadata `json:"advancedCorrectMetadata,omitempty"`
	// Boolean that specifies whether the configured [access code format](https://developers.docusign.com/esign-rest-api/reference/Accounts/Accounts/get#accessCodeFormat) is enabled for the account.
	AllowAccessCodeFormat string `json:"allowAccessCodeFormat,omitempty"`
	// Metadata that indicates whether the `allowAccessCodeFormat` property is editable.
	//
	AllowAccessCodeFormatMetadata *SettingsMetadata `json:"allowAccessCodeFormatMetadata,omitempty"`
	// Boolean that specifies whether the account can be managed on a per-user basis.
	AllowAccountManagementGranular string `json:"allowAccountManagementGranular,omitempty"`
	// Metadata that indicates whether the `allowAccountManagementGranular` property is editable.
	//
	AllowAccountManagementGranularMetadata *SettingsMetadata `json:"allowAccountManagementGranularMetadata,omitempty"`
	// Boolean that specifies whether member names can be changed in the account.
	AllowAccountMemberNameChange string `json:"allowAccountMemberNameChange,omitempty"`
	// Metadata that indicates whether the `allowAccountMemberNameChange` property is editable.
	//
	AllowAccountMemberNameChangeMetadata *SettingsMetadata `json:"allowAccountMemberNameChangeMetadata,omitempty"`
	//   If **true**, an agent recipient can change the email addresses of recipients later in the signing order.
	//
	AllowAgentNameEmailEdit string `json:"allowAgentNameEmailEdit,omitempty"`
	// Metadata that indicates whether the `allowAgentNameEmailEdit` property is editable.
	//
	AllowAgentNameEmailEditMetadata *SettingsMetadata `json:"allowAgentNameEmailEditMetadata,omitempty"`
	//   If **true**, auto-navigation can be enabled for this account.
	//
	AllowAutoNavSettings string `json:"allowAutoNavSettings,omitempty"`
	// Metadata that indicates whether the `allowAutoNavSettings` property is editable.
	//
	AllowAutoNavSettingsMetadata *SettingsMetadata `json:"allowAutoNavSettingsMetadata,omitempty"`
	// If **true**, the account is able to bulk send.
	AllowBulkSend string `json:"allowBulkSend,omitempty"`
	// Metadata that indicates whether the `allowBulkSend` property is editable.
	//
	AllowBulkSendMetadata *SettingsMetadata `json:"allowBulkSendMetadata,omitempty"`
	// Indicates whether the customer can withdraw their acceptance of the consumer disclosure.
	AllowCDWithdraw string `json:"allowCDWithdraw,omitempty"`
	// Metadata that indicates whether the `allowCDWithdraw` property is editable.
	//
	AllowCDWithdrawMetadata *SettingsMetadata `json:"allowCDWithdrawMetadata,omitempty"`
	// Boolean that specifies whether a Connect configuration can use HTTP listeners.
	AllowConnectHTTPListenerConfigs string `json:"allowConnectHttpListenerConfigs,omitempty"`
	// If **true**, Connect will send FinishLater messages
	//
	AllowConnectSendFinishLater string `json:"allowConnectSendFinishLater,omitempty"`
	// Metadata that indicates whether the `allowConnectSendFinishLater` property is editable.
	//
	AllowConnectSendFinishLaterMetadata *SettingsMetadata `json:"allowConnectSendFinishLaterMetadata,omitempty"`
	// If **true**,
	// the account has the ability to change the
	// [Consumer Disclosure](https://support.docusign.com/en/guides/ndse-admin-guide-legal-disclosure)
	// settin.
	//
	AllowConsumerDisclosureOverride string `json:"allowConsumerDisclosureOverride,omitempty"`
	// Metadata that indicates whether the `allowConsumerDisclosureOverride` property is editable.
	//
	AllowConsumerDisclosureOverrideMetadata *SettingsMetadata `json:"allowConsumerDisclosureOverrideMetadata,omitempty"`
	// If **true**,
	// senders can download form data from an envelope.
	//
	AllowDataDownload string `json:"allowDataDownload,omitempty"`
	// Metadata that indicates whether the `allowDataDownload` property is editable.
	//
	AllowDataDownloadMetadata *SettingsMetadata `json:"allowDataDownloadMetadata,omitempty"`
	// Boolean that specifies whether disclosure documents can be included in envelopes.
	AllowDocumentDisclosures string `json:"allowDocumentDisclosures,omitempty"`
	// Metadata that indicates whether the `allowDocumentDisclosures` property is editable.
	//
	AllowDocumentDisclosuresMetadata *SettingsMetadata `json:"allowDocumentDisclosuresMetadata,omitempty"`
	// When **true**, the [Document Visibility](https://support.docusign.com/guides/ndse-user-guide-document-visibility) feature is enabled for the account.
	//
	AllowDocumentVisibility string `json:"allowDocumentVisibility,omitempty"`
	// Metadata that indicates whether the `allowDocumentVisibility` property is editable.
	//
	AllowDocumentVisibilityMetadata *SettingsMetadata `json:"allowDocumentVisibilityMetadata,omitempty"`
	// Boolean that specifies whether notifications can include the envelope's signed document.
	AllowDocumentsOnSignedEnvelopes string `json:"allowDocumentsOnSignedEnvelopes,omitempty"`
	// Metadata that indicates whether the `allowDocumentsOnSignedEnvelopes` property is editable.
	//
	AllowDocumentsOnSignedEnvelopesMetadata *SettingsMetadata `json:"allowDocumentsOnSignedEnvelopesMetadata,omitempty"`
	// If **true**,
	// [eHanko stamps](https://support.docusign.com/en/guides/ndse-user-guide-manage-your-stamps)
	// are enabled.
	//
	AllowEHankoStamps string `json:"allowEHankoStamps,omitempty"`
	// Metadata that indicates whether the `allowEHankoStamps` property is editable.
	//
	AllowEHankoStampsMetadata *SettingsMetadata `json:"allowEHankoStampsMetadata,omitempty"`
	// Specifies whether eNote eOriginal integration is enabled.
	//
	AllowENoteEOriginal string `json:"allowENoteEOriginal,omitempty"`
	// Metadata that indicates whether the `allowENoteEOriginal` property is editable.
	//
	AllowENoteEOriginalMetadata *SettingsMetadata `json:"allowENoteEOriginalMetadata,omitempty"`
	// Specifies whether  the correction feature is enabled.
	//
	AllowEnvelopeCorrect string `json:"allowEnvelopeCorrect,omitempty"`
	// Metadata that indicates whether the `allowEnvelopeCorrect` property is editable.
	//
	AllowEnvelopeCorrectMetadata *SettingsMetadata `json:"allowEnvelopeCorrectMetadata,omitempty"`
	// Specifies whether the account is able to
	// manage rules that [transfer ownership](https://support.docusign.com/en/guides/ndse-admin-guide-custody-transfer)
	// of envelopes wthin the same account.
	//
	//
	//
	//
	AllowEnvelopeCustodyTransfer string `json:"allowEnvelopeCustodyTransfer,omitempty"`
	// Metadata that indicates whether the `allowEnvelopeCustodyTransfer` property is editable.
	//
	AllowEnvelopeCustodyTransferMetadata *SettingsMetadata `json:"allowEnvelopeCustodyTransferMetadata,omitempty"`
	// Specifies whether
	// [envelope custom fields](https://support.docusign.com/en/guides/ndse-user-guide-manage-custom-fields)
	// are enabled.
	//
	AllowEnvelopeCustomFields string `json:"allowEnvelopeCustomFields,omitempty"`
	// Metadata that indicates whether the `allowEnvelopeCustomFields` property is editable.
	//
	AllowEnvelopeCustomFieldsMetadata *SettingsMetadata `json:"allowEnvelopeCustomFieldsMetadata,omitempty"`
	// Specifies whether envelope publishing reporting is enabled.
	//
	AllowEnvelopePublishReporting string `json:"allowEnvelopePublishReporting,omitempty"`
	// Metadata that indicates whether the `allowEnvelopePublishReporting` property is editable.
	//
	AllowEnvelopePublishReportingMetadata *SettingsMetadata `json:"allowEnvelopePublishReportingMetadata,omitempty"`
	// Specifies whether the account has access to reports.
	//
	AllowEnvelopeReporting string `json:"allowEnvelopeReporting,omitempty"`
	// Metadata that indicates whether the `allowEnvelopeReporting` property is editable.
	//
	AllowEnvelopeReportingMetadata *SettingsMetadata `json:"allowEnvelopeReportingMetadata,omitempty"`
	// Specifies whether signers
	// are required to use Express Digital Signatures.
	//
	AllowExpressSignerCertificate string `json:"allowExpressSignerCertificate,omitempty"`
	// Metadata that indicates whether the `allowExpressSignerCertificate` property is editable.
	//
	AllowExpressSignerCertificateMetadata *SettingsMetadata `json:"allowExpressSignerCertificateMetadata,omitempty"`
	// If the account plan does not include calculated fields, this setting allows an account to use them.
	//
	//
	AllowExpression string `json:"allowExpression,omitempty"`
	// Metadata that indicates whether the `allowExpression` property is editable.
	//
	AllowExpressionMetadata *SettingsMetadata `json:"allowExpressionMetadata,omitempty"`
	// Boolean that specifies whether resource files can be used for extended sending.
	AllowExtendedSendingResourceFile string `json:"allowExtendedSendingResourceFile,omitempty"`
	// Metadata that indicates whether the `allowExtendedSendingResourceFile` property is editable.
	//
	AllowExtendedSendingResourceFileMetadata *SettingsMetadata `json:"allowExtendedSendingResourceFileMetadata,omitempty"`
	// Specifies whether the account can
	// configure and use signature pads for their recipients.
	//
	AllowExternalSignaturePad string `json:"allowExternalSignaturePad,omitempty"`
	// Metadata that indicates whether the `allowExternalSignaturePad` property is editable.
	//
	AllowExternalSignaturePadMetadata *SettingsMetadata `json:"allowExternalSignaturePadMetadata,omitempty"`
	// Specifies whether the account administrator can
	// enable
	// in person signing.
	//
	//
	AllowInPerson string `json:"allowInPerson,omitempty"`
	// Metadata that indicates whether the `allowInPerson` property is editable.
	//
	AllowInPersonMetadata *SettingsMetadata `json:"allowInPersonMetadata,omitempty"`
	// Boolean that specifies whether managed stamps can be used in the account.
	AllowManagedStamps string `json:"allowManagedStamps,omitempty"`
	// Metadata that indicates whether the `allowManagedStamps` property is editable.
	//
	AllowManagedStampsMetadata *SettingsMetadata `json:"allowManagedStampsMetadata,omitempty"`
	// When **true**, Document Markup is enabled for envelope. The account must have Document Markup enabled to use this.
	AllowMarkup string `json:"allowMarkup,omitempty"`
	// Metadata that indicates whether the `allowMarkup` property is editable.
	//
	AllowMarkupMetadata *SettingsMetadata `json:"allowMarkupMetadata,omitempty"`
	// Specifies whether users can set their own
	// [time zone settings](https://support.docusign.com/en/articles/How-do-I-modify-time-zone-settings-for-my-account).
	//
	AllowMemberTimeZone string `json:"allowMemberTimeZone,omitempty"`
	// Metadata that indicates whether the `allowMemberTimeZone` property is editable.
	//
	AllowMemberTimeZoneMetadata *SettingsMetadata `json:"allowMemberTimeZoneMetadata,omitempty"`
	// Specified whether
	// [merge fields](https://support.docusign.com/en/guides/dfs-user-guide-merge-fields-user)
	// are enabled for the account.
	//
	AllowMergeFields string `json:"allowMergeFields,omitempty"`
	// Metadata that indicates whether the `allowMergeFields` property is editable.
	//
	AllowMergeFieldsMetadata *SettingsMetadata `json:"allowMergeFieldsMetadata,omitempty"`
	// Specifies whether the account supports multiple brands.
	//
	AllowMultipleBrandProfiles string `json:"allowMultipleBrandProfiles,omitempty"`
	// Metadata that indicates whether the `allowMultipleBrandProfiles` property is editable.
	//
	AllowMultipleBrandProfilesMetadata *SettingsMetadata `json:"allowMultipleBrandProfilesMetadata,omitempty"`
	// Specifies whether recipients are able to
	// upload multiple signer attachments with a single attachment.
	//
	AllowMultipleSignerAttachments string `json:"allowMultipleSignerAttachments,omitempty"`
	// Metadata that indicates whether the `allowMultipleSignerAttachments` property is editable.
	//
	AllowMultipleSignerAttachmentsMetadata *SettingsMetadata `json:"allowMultipleSignerAttachmentsMetadata,omitempty"`
	// Specifies whether users can use
	// international numbers
	// for phone authentication.
	//
	AllowNonUSPhoneAuth string `json:"allowNonUSPhoneAuth,omitempty"`
	// Metadata that indicates whether the `allowNonUSPhoneAuth` property is editable.
	//
	AllowNonUSPhoneAuthMetadata *SettingsMetadata `json:"allowNonUSPhoneAuthMetadata,omitempty"`
	// Specifies whether
	// [offline signing](https://support.docusign.com/articles/Offline-access-with-the-DocuSign-Mobile-App-for-iOS-iPad-iPhone-iPod-Touch)
	// is enabled for the account.
	//
	AllowOfflineSigning string `json:"allowOfflineSigning,omitempty"`
	// Metadata that indicates whether the `allowOfflineSigning` property is editable.
	//
	AllowOfflineSigningMetadata *SettingsMetadata `json:"allowOfflineSigningMetadata,omitempty"`
	// Boolean that specifies whether OpenTrust signer certificates can be used in the account.
	AllowOpenTrustSignerCertificate string `json:"allowOpenTrustSignerCertificate,omitempty"`
	// Metadata that indicates whether the `allowOpenTrustSignerCertificate` property is editable.
	//
	AllowOpenTrustSignerCertificateMetadata *SettingsMetadata `json:"allowOpenTrustSignerCertificateMetadata,omitempty"`
	// Boolean that specifies whether [Organization Administration](https://developers.docusign.com/orgadmin-api) is enabled for the account.
	AllowOrganizations string `json:"allowOrganizations,omitempty"`
	// Metadata that indicates whether the `allowOrganizations` property is editable.
	//
	AllowOrganizationsMetadata *SettingsMetadata `json:"allowOrganizationsMetadata,omitempty"`
	// Boolean that specifies whether payment processing is enabled for the account.
	AllowPaymentProcessing string `json:"allowPaymentProcessing,omitempty"`
	// Metadata that indicates whether the `allowPaymentProcessing` property is editable.
	//
	AllowPaymentProcessingMetadata *SettingsMetadata `json:"allowPaymentProcessingMetadata,omitempty"`
	// Boolean that specifies whether a signer certificate is allowed to be used for signing on the account.
	AllowPersonalSignerCertificate string `json:"allowPersonalSignerCertificate,omitempty"`
	// Metadata that indicates whether the `allowPersonalSignerCertificate` property is editable.
	//
	AllowPersonalSignerCertificateMetadata *SettingsMetadata `json:"allowPersonalSignerCertificateMetadata,omitempty"`
	// Boolean that specifies whether users can override phone authentication.
	AllowPhoneAuthOverride string `json:"allowPhoneAuthOverride,omitempty"`
	// Metadata that indicates whether the `allowPhoneAuthOverride` property is editable.
	//
	AllowPhoneAuthOverrideMetadata *SettingsMetadata `json:"allowPhoneAuthOverrideMetadata,omitempty"`
	// Boolean that specifies whether phone authentication is enabled for the account.
	AllowPhoneAuthentication string `json:"allowPhoneAuthentication,omitempty"`
	// Metadata that indicates whether the `allowPhoneAuthentication` property is editable.
	//
	AllowPhoneAuthenticationMetadata *SettingsMetadata `json:"allowPhoneAuthenticationMetadata,omitempty"`
	// Boolean that specifies whether the account allows private signing groups.
	AllowPrivateSigningGroups string `json:"allowPrivateSigningGroups,omitempty"`
	// Metadata that indicates whether the `allowPrivateSigningGroups` property is editable.
	//
	AllowPrivateSigningGroupsMetadata *SettingsMetadata `json:"allowPrivateSigningGroupsMetadata,omitempty"`
	// If **true**,
	// allows an account administrator to turn on reminders
	// and expiration defaults for the account.
	//
	AllowReminders string `json:"allowReminders,omitempty"`
	// Metadata that indicates whether the `allowReminders` property is editable.
	//
	AllowRemindersMetadata *SettingsMetadata `json:"allowRemindersMetadata,omitempty"`
	// If **true**,
	// resource files can be uploaded in branding.
	//
	AllowResourceFileBranding string `json:"allowResourceFileBranding,omitempty"`
	// Metadata that indicates whether the `allowResourceFileBranding` property is editable.
	//
	AllowResourceFileBrandingMetadata *SettingsMetadata `json:"allowResourceFileBrandingMetadata,omitempty"`
	// If **true**,
	// allows the account administrator
	// to specify that signers are
	// required to use SAFE digital signatures.
	//
	AllowSafeBioPharmaSignerCertificate string `json:"allowSafeBioPharmaSignerCertificate,omitempty"`
	// Metadata that indicates whether the `allowSafeBioPharmaSignerCertificate` property is editable.
	//
	AllowSafeBioPharmaSignerCertificateMetadata *SettingsMetadata `json:"allowSafeBioPharmaSignerCertificateMetadata,omitempty"`
	// Boolean that specifies whether a DocuSign Signature Appliance can be used with the account.
	AllowSecurityAppliance string `json:"allowSecurityAppliance,omitempty"`
	// Metadata that indicates whether the `allowSecurityAppliance` property is editable.
	//
	AllowSecurityApplianceMetadata *SettingsMetadata `json:"allowSecurityApplianceMetadata,omitempty"`
	// If **true**,
	// the account admin can enable the
	// Send to Certified Delivery
	// feature on the account.
	//
	AllowSendToCertifiedDelivery string `json:"allowSendToCertifiedDelivery,omitempty"`
	// Metadata that indicates whether the `allowSendToCertifiedDelivery` property is editable.
	//
	AllowSendToCertifiedDeliveryMetadata *SettingsMetadata `json:"allowSendToCertifiedDeliveryMetadata,omitempty"`
	// If **true**,
	// the account admin can enable the Send to Intermediary
	// feature on the account.
	//
	AllowSendToIntermediary string `json:"allowSendToIntermediary,omitempty"`
	// Metadata that indicates whether the `allowSendToIntermediary` property is editable.
	//
	AllowSendToIntermediaryMetadata *SettingsMetadata `json:"allowSendToIntermediaryMetadata,omitempty"`
	// If **true**,
	// the account can use templates.
	//
	AllowServerTemplates string `json:"allowServerTemplates,omitempty"`
	// Metadata that indicates whether the `allowServerTemplates` property is editable.
	//
	AllowServerTemplatesMetadata *SettingsMetadata `json:"allowServerTemplatesMetadata,omitempty"`
	// If **true**,
	// the account can use shared tabs.
	//
	AllowSharedTabs string `json:"allowSharedTabs,omitempty"`
	// Metadata that indicates whether the `allowSharedTabs` property is editable.
	//
	AllowSharedTabsMetadata *SettingsMetadata `json:"allowSharedTabsMetadata,omitempty"`
	// Boolean that specifies whether recipients can sign documents from the homepage.
	AllowSignDocumentFromHomePage string `json:"allowSignDocumentFromHomePage,omitempty"`
	// Metadata that indicates whether the `allowSignDocumentFromHomePage` property is editable.
	//
	AllowSignDocumentFromHomePageMetadata *SettingsMetadata `json:"allowSignDocumentFromHomePageMetadata,omitempty"`
	// If **true**,
	// the account administrator can enable
	// the Sign Now feature.
	//
	AllowSignNow string `json:"allowSignNow,omitempty"`
	// Metadata that indicates whether the `allowSignNow` property is editable.
	//
	AllowSignNowMetadata string `json:"allowSignNowMetadata,omitempty"`
	// Boolean that specifies whether signature stamps can be used with the account.
	AllowSignatureStamps string `json:"allowSignatureStamps,omitempty"`
	// Metadata that indicates whether the `allowSignatureStamps` property is editable.
	//
	AllowSignatureStampsMetadata *SettingsMetadata `json:"allowSignatureStampsMetadata,omitempty"`
	// Account setting that determines whether the recipient of an envelope sent from this account can reassign it to another person.
	//
	AllowSignerReassign string `json:"allowSignerReassign,omitempty"`
	// Metadata that indicates whether the `allowSignerReassign` property is editable.
	//
	AllowSignerReassignMetadata *SettingsMetadata `json:"allowSignerReassignMetadata,omitempty"`
	// Account setting that determines whether an account administrator can override the ability of an envelope recipient to reassign it to another person.
	AllowSignerReassignOverride string `json:"allowSignerReassignOverride,omitempty"`
	// Metadata that indicates whether the `allowSignerReassignOverride` property is editable.
	//
	AllowSignerReassignOverrideMetadata *SettingsMetadata `json:"allowSignerReassignOverrideMetadata,omitempty"`
	// Boolean that specifies whether Signing and App Extensions are allowed.
	AllowSigningExtensions string `json:"allowSigningExtensions,omitempty"`
	// Metadata that indicates whether the `allowSigningExtensions` property is editable.
	//
	AllowSigningExtensionsMetadata *SettingsMetadata `json:"allowSigningExtensionsMetadata,omitempty"`
	// Boolean that specifies whether the account allows signing groups.
	AllowSigningGroups string `json:"allowSigningGroups,omitempty"`
	// Metadata that indicates whether the `allowSigningGroups` property is editable.
	//
	AllowSigningGroupsMetadata *SettingsMetadata `json:"allowSigningGroupsMetadata,omitempty"`
	// Boolean that specifies whether the account supports radio buttons on tabs [Radio CustomTabType](https://developers.docusign.com/esign-soap-api/reference/Sending-Group/Tab).
	AllowSigningRadioDeselect string `json:"allowSigningRadioDeselect,omitempty"`
	// Metadata that indicates whether the `allowSigningRadioDeselect` property is editable.
	//
	AllowSigningRadioDeselectMetadata *SettingsMetadata `json:"allowSigningRadioDeselectMetadata,omitempty"`
	// If **true**,
	// the account administrator can enable [social id login](https://support.docusign.com/guides/signer-authentication) for the account.
	//
	AllowSocialIDLogin string `json:"allowSocialIdLogin,omitempty"`
	// Metadata that indicates whether the `allowSocialIdLogin` property is editable.
	//
	AllowSocialIDLoginMetadata *SettingsMetadata `json:"allowSocialIdLoginMetadata,omitempty"`
	// When **true**, this user can include supplemental documents.
	AllowSupplementalDocuments string `json:"allowSupplementalDocuments,omitempty"`
	// Metadata that indicates whether the `allowSupplementalDocuments` property is editable.
	AllowSupplementalDocumentsMetadata *SettingsMetadata `json:"allowSupplementalDocumentsMetadata,omitempty"`
	// Valid values are:
	//
	// - `document`
	// - `envelope`
	//
	//
	AnchorPopulationScope string `json:"anchorPopulationScope,omitempty"`
	// Metadata that indicates whether the `anchorPopulationScope` property is editable.
	//
	AnchorPopulationScopeMetadata *SettingsMetadata `json:"anchorPopulationScopeMetadata,omitempty"`
	// Valid values are:
	//
	// - `system_default`
	// - `off`
	// - `on`
	//
	AnchorTagVersionedPlacementEnabled string `json:"anchorTagVersionedPlacementEnabled,omitempty"`
	//
	AnchorTagVersionedPlacementMetadataEnabled *SettingsMetadata `json:"anchorTagVersionedPlacementMetadataEnabled,omitempty"`
	// Boolean that specifies whether envelope documents are included as a PDF file attachment for signing completed emails.
	AttachCompletedEnvelope string `json:"attachCompletedEnvelope,omitempty"`
	// Metadata that indicates whether the `attachCompletedEnvelope` property is editable.
	AttachCompletedEnvelopeMetadata *SettingsMetadata `json:"attachCompletedEnvelopeMetadata,omitempty"`
	// Specifies how often
	// to check authentication.
	// Valid values are:
	//
	// - `initial_access`
	// - `each_access`
	//
	AuthenticationCheck string `json:"authenticationCheck,omitempty"`
	// Metadata that indicates whether the `authenticationCheck` property is editable.
	//
	AuthenticationCheckMetadata *SettingsMetadata `json:"authenticationCheckMetadata,omitempty"`
	// Specifies how auto-navigation works.
	// Valid values are:
	//
	// - `off`
	// - `required_fields`
	// - `required_and_blank_fields`
	// - `all_fields`
	// - `page_then_required_fields`
	// - `page_then_required_and_blank_fields`
	// - `page_then_all_fields`
	//
	AutoNavRule string `json:"autoNavRule,omitempty"`
	// Metadata that indicates whether the `autoNavRule` property is editable.
	//
	AutoNavRuleMetadata *SettingsMetadata `json:"autoNavRuleMetadata,omitempty"`
	// Boolean that specifies whether to automatically provision a user membership in the account for accountless recipients. (Also known as Just-in-Time provisioning.)
	AutoProvisionSignerAccount string `json:"autoProvisionSignerAccount,omitempty"`
	// Metadata that indicates whether the `autoProvisionSignerAccount` property is editable.
	//
	AutoProvisionSignerAccountMetadata *SettingsMetadata `json:"autoProvisionSignerAccountMetadata,omitempty"`
	// Boolean that specifies whether BCC for Email Archive is enabled for the account. BCC for Email Archive allows you to set up an archive email address so that a BCC copy of an envelope is sent only to that address.
	BccEmailArchive string `json:"bccEmailArchive,omitempty"`
	// Metadata that indicates whether the `bccEmailArchive` property is editable.
	//
	BccEmailArchiveMetadata *SettingsMetadata `json:"bccEmailArchiveMetadata,omitempty"`
	// Reserved for DocuSign.
	//
	BetaSwitchConfiguration string `json:"betaSwitchConfiguration,omitempty"`
	// Metadata that indicates whether the `betaSwitchConfiguration` property is editable.
	//
	BetaSwitchConfigurationMetadata *SettingsMetadata `json:"betaSwitchConfigurationMetadata,omitempty"`
	// The billing address for the account.
	BillingAddress *AddressInformation `json:"billingAddress,omitempty"`
	// Metadata that indicates whether the `billingAddress` property is editable.
	//
	BillingAddressMetadata *SettingsMetadata `json:"billingAddressMetadata,omitempty"`
	// When **true**, this user can use the bulk send feature for the account.
	BulkSend string `json:"bulkSend,omitempty"`
	// Metadata that indicates whether the `bulkSend` property is editable.
	//
	BulkSendMetadata *SettingsMetadata `json:"bulkSendMetadata,omitempty"`
	// Boolean that specifies whether account administrators can self-brand their sending console through the DocuSign Console.
	CanSelfBrandSend string `json:"canSelfBrandSend,omitempty"`
	// Metadata that indicates whether the `canSelfBrandSend` property is editable.
	//
	CanSelfBrandSendMetadata *SettingsMetadata `json:"canSelfBrandSendMetadata,omitempty"`
	// Boolean that specifies whether account administrators can self-brand their signing console through the DocuSign Console.
	CanSelfBrandSign string `json:"canSelfBrandSign,omitempty"`
	// Metadata that indicates whether the `canSelfBrandSign` property is editable.
	//
	CanSelfBrandSignMetadata *SettingsMetadata `json:"canSelfBrandSignMetadata,omitempty"`
	// Boolean that specifies whether voice recording is supported for the account.
	CaptureVoiceRecording string `json:"captureVoiceRecording,omitempty"`
	// Metadata that indicates whether the `captureVoiceRecording` property is editable.
	//
	CaptureVoiceRecordingMetadata *SettingsMetadata `json:"captureVoiceRecordingMetadata,omitempty"`
	// Boolean that specifies whether to use a shorter/wider format when generating the CFR Part 11 signature image.
	CfrUseWideImage string `json:"cfrUseWideImage,omitempty"`
	// Metadata that indicates whether the `cfrUseWideImage` property is editable.
	//
	CfrUseWideImageMetadata *SettingsMetadata `json:"cfrUseWideImageMetadata,omitempty"`
	// Boolean that specifies whether the signers of the envelopes from this account use a signature with a DocuSign chrome around it or not.
	ChromeSignatureEnabled string `json:"chromeSignatureEnabled,omitempty"`
	// Metadata that indicates whether the `chromeSignatureEnabled` property is editable.
	//
	ChromeSignatureEnabledMetadata *SettingsMetadata `json:"chromeSignatureEnabledMetadata,omitempty"`
	//
	CommentEmailShowMessageText string `json:"commentEmailShowMessageText,omitempty"`
	// Metadata that indicates whether the `commentEmailShowMessageText` property is editable.
	//
	CommentEmailShowMessageTextMetadata *SettingsMetadata `json:"commentEmailShowMessageTextMetadata,omitempty"`
	// Boolean that specifies whether recipients can make and respond to comments in documents belonging to the envelopes that they are sent.
	CommentsAllowEnvelopeOverride string `json:"commentsAllowEnvelopeOverride,omitempty"`
	// Metadata that indicates whether the `commentsAllowEnvelopeOverride` property is editable.
	//
	CommentsAllowEnvelopeOverrideMetadata *SettingsMetadata `json:"commentsAllowEnvelopeOverrideMetadata,omitempty"`
	// Boolean that specifies whether conditional fields can be used in documents.
	ConditionalFieldsEnabled string `json:"conditionalFieldsEnabled,omitempty"`
	// Metadata that indicates whether the `conditionalFieldsEnabled` property is editable.
	//
	ConditionalFieldsEnabledMetadata *SettingsMetadata `json:"conditionalFieldsEnabledMetadata,omitempty"`
	// Speficies how often to display
	// the consumer disclosure.
	// Valid values are:
	//
	// - `once`
	// - `always`
	// - `each_access`
	//
	ConsumerDisclosureFrequency string `json:"consumerDisclosureFrequency,omitempty"`
	// Metadata that indicates whether the `consumerDisclosureFrequency` property is editable.
	//
	ConsumerDisclosureFrequencyMetadata *SettingsMetadata `json:"consumerDisclosureFrequencyMetadata,omitempty"`
	// Boolean that specifies whether to enable PDF form fields to get converted to DocuSign secure fields when the document is added or uploaded to an envelope.
	ConvertPdfFields string `json:"convertPdfFields,omitempty"`
	// Metadata that indicates whether the `convertPdfFields` property is editable.
	//
	ConvertPdfFieldsMetadata *SettingsMetadata `json:"convertPdfFieldsMetadata,omitempty"`
	// Valid values are:
	//
	// - `document`
	// - `envelope`
	//
	DataPopulationScope string `json:"dataPopulationScope,omitempty"`
	// Metadata that indicates whether the `dataPopulationScope` property is editable.
	//
	DataPopulationScopeMetadata *SettingsMetadata `json:"dataPopulationScopeMetadata,omitempty"`
	// When **true**, the mobile app distributor key is prevented from connecting for account users.
	DisableMobileApp string `json:"disableMobileApp,omitempty"`
	// Metadata that indicates whether the `disableMobileApp` property is editable.
	//
	DisableMobileAppMetadata *SettingsMetadata `json:"disableMobileAppMetadata,omitempty"`
	// When **true**, push notifications are disabled for the account.
	DisableMobilePushNotifications string `json:"disableMobilePushNotifications,omitempty"`
	// Metadata that indicates whether the `disableMobilePushNotifications` property is editable.
	//
	DisableMobilePushNotificationsMetadata *SettingsMetadata `json:"disableMobilePushNotificationsMetadata,omitempty"`
	// When **true**, sending from a mobile application is disabled.
	DisableMobileSending string `json:"disableMobileSending,omitempty"`
	// Metadata that indicates whether the `disableMobileSending` property is editable.
	//
	DisableMobileSendingMetadata *SettingsMetadata `json:"disableMobileSendingMetadata,omitempty"`
	// When **true**, account users cannot be logged into multiple sessions at the same time.
	DisableMultipleSessions string `json:"disableMultipleSessions,omitempty"`
	// Metadata that indicates whether the `disableMultipleSessions` property is editable.
	//
	DisableMultipleSessionsMetadata *SettingsMetadata `json:"disableMultipleSessionsMetadata,omitempty"`
	// Metadata that indicates whether the `disablePurgeNotificationsForSender` property is editable.
	//
	DisablePurgeNotificationsForSenderMetadata *SettingsMetadata `json:"disablePurgeNotificationsForSenderMetadata,omitempty"`
	// When **true**, signers cannot view certificates of completion.
	DisableSignerCertView string `json:"disableSignerCertView,omitempty"`
	// Metadata that indicates whether the `disableSignerCertView` property is editable.
	//
	DisableSignerCertViewMetadata *SettingsMetadata `json:"disableSignerCertViewMetadata,omitempty"`
	// When **true**, signers cannot view envelope history.
	DisableSignerHistoryView string `json:"disableSignerHistoryView,omitempty"`
	// Metadata that indicates whether the `disableSignerHistoryView` property is editable.
	//
	DisableSignerHistoryViewMetadata *SettingsMetadata `json:"disableSignerHistoryViewMetadata,omitempty"`
	// When **true**, the **Select Style** option is hidden from signers and they must draw their signature instead.
	DisableStyleSignature string `json:"disableStyleSignature,omitempty"`
	// Metadata that indicates whether the `disableStyleSignature` property is editable.
	//
	DisableStyleSignatureMetadata *SettingsMetadata `json:"disableStyleSignatureMetadata,omitempty"`
	// When **true**, signers cannot upload custom image files of their signature and initials.
	DisableUploadSignature string `json:"disableUploadSignature,omitempty"`
	// Metadata that indicates whether the `disableUploadSignature` property is editable.
	//
	DisableUploadSignatureMetadata *SettingsMetadata `json:"disableUploadSignatureMetadata,omitempty"`
	// When **true**, the User Sharing feature is disabled for the account.
	DisableUserSharing string `json:"disableUserSharing,omitempty"`
	// Metadata that indicates whether the `disableUserSharing` property is editable.
	//
	DisableUserSharingMetadata *SettingsMetadata `json:"disableUserSharingMetadata,omitempty"`
	// Boolean that specifies whether to display a Beta switch for your app.
	DisplayBetaSwitch string `json:"displayBetaSwitch,omitempty"`
	// Metadata that indicates whether the `displayBetaSwitch` property is editable.
	//
	DisplayBetaSwitchMetadata *SettingsMetadata `json:"displayBetaSwitchMetadata,omitempty"`
	// Valid values are:
	//
	// - `no_restrictions`
	// - `allow_pdf_only`
	// - `no_upload`
	//
	DocumentConversionRestrictions string `json:"documentConversionRestrictions,omitempty"`
	// Metadata that indicates whether the `documentConversionRestrictions` property is editable.
	//
	DocumentConversionRestrictionsMetadata *SettingsMetadata `json:"documentConversionRestrictionsMetadata,omitempty"`
	//
	DocumentRetention string `json:"documentRetention,omitempty"`
	// Metadata that indicates whether the `documentRetention` property is editable.
	//
	DocumentRetentionMetadata *SettingsMetadata `json:"documentRetentionMetadata,omitempty"`
	// Specifies when to purge tabs according to the Document Retention policy for the account.
	DocumentRetentionPurgeTabs string `json:"documentRetentionPurgeTabs,omitempty"`
	// Configures the Document Visibility feature for the account. Valid values are:
	//
	// - `Off`: Document Visibility is not active for the account.
	// - `MustSignToViewUnlessSenderAccount`: Document Visibility is enabled for all envelopes sent from the account. Any member of the sending account can view all of the documents in an envelope.
	// - `MustSignToViewUnlessSender`: Document Visibility is enabled for all envelopes sent from the account. Only the sender can view all of the documents in an envelope.
	// - `SenderCanSetMustSignToViewUnlessSenderAccount`: The sender has the option to enable Document Visibility for an envelope. When enabled for an envelope, all of the documents within it are still visible to any member of the sending account.
	// Vd- `SenderCanSetMustSignToViewUnlessSender`: The sender has the option to enable Document Visibility for an envelope. When enabled for an envelope, all of the documents in the envelope are visible only to the sender.
	//
	// **Note**: For this configuration to take effect, `allowDocumentVisibility` must be set to **true**.
	DocumentVisibility string `json:"documentVisibility,omitempty"`
	// Metadata that indicates whether the `documentVisibility` property is editable.
	//
	DocumentVisibilityMetadata *SettingsMetadata `json:"documentVisibilityMetadata,omitempty"`
	// Specifies the version of the email templates used in an account. If new signing is selected in a member's Admin page, the user is updated to the newest version (1.1), the minumum version of email supported for the account.
	EmailTemplateVersion string `json:"emailTemplateVersion,omitempty"`
	// Metadata that indicates whether the `emailTemplateVersion` property is editable.
	//
	EmailTemplateVersionMetadata *SettingsMetadata `json:"emailTemplateVersionMetadata,omitempty"`
	// When **true**, enables Access Code Generator on the account.
	EnableAccessCodeGenerator string `json:"enableAccessCodeGenerator,omitempty"`
	// Metadata that indicates whether the `enableAccessCodeGenerator` property is editable.
	//
	EnableAccessCodeGeneratorMetadata *SettingsMetadata `json:"enableAccessCodeGeneratorMetadata,omitempty"`
	// When **true**, enables Advanced Payments for the account.
	EnableAdvancedPayments string `json:"enableAdvancedPayments,omitempty"`
	// Metadata that indicates whether the `enableAdvancedPayments` property is editable.
	//
	EnableAdvancedPaymentsMetadata *SettingsMetadata `json:"enableAdvancedPaymentsMetadata,omitempty"`
	// When **true**, enables advanced PowerForms for the account.
	EnableAdvancedPowerForms string `json:"enableAdvancedPowerForms,omitempty"`
	// Metadata that indicates whether the `enableAdvancedPowerForms` property is editable.
	//
	EnableAdvancedPowerFormsMetadata *SettingsMetadata `json:"enableAdvancedPowerFormsMetadata,omitempty"`
	// When **true**, enables the account to set the AutoNav rule setting, which allows a sender to override the auto navigation setting per envelope.
	EnableAutoNav string `json:"enableAutoNav,omitempty"`
	// Metadata that indicates whether the `enableAutoNav` property is editable.
	//
	EnableAutoNavMetadata *SettingsMetadata `json:"enableAutoNavMetadata,omitempty"`
	// When **true**, the account is enabled to use calculated fields (must be allowed at the account level for this setting to be changeable).
	EnableCalculatedFields string `json:"enableCalculatedFields,omitempty"`
	// Metadata that indicates whether the `enableCalculatedFields` property is editable.
	//
	EnableCalculatedFieldsMetadata *SettingsMetadata `json:"enableCalculatedFieldsMetadata,omitempty"`
	// Boolean that specifies whether clickwraps are enabled in your app. A [clickwrap])(https://developers.docusign.com/click-api/guides/) is an iframe that you embed in your own website or app.
	EnableClickwraps string `json:"enableClickwraps,omitempty"`
	// Metadata that indicates whether the `enableClickwraps` property is editable.
	//
	EnableClickwrapsMetadata *SettingsMetadata `json:"enableClickwrapsMetadata,omitempty"`
	// When **true**, enables customer satisfaction metric tracking for the account.
	EnableCustomerSatisfactionMetricTracking string `json:"enableCustomerSatisfactionMetricTracking,omitempty"`
	// Metadata that indicates whether the `enableCustomerSatisfactionMetricTracking` property is editable.
	//
	EnableCustomerSatisfactionMetricTrackingMetadata *SettingsMetadata `json:"enableCustomerSatisfactionMetricTrackingMetadata,omitempty"`
	// Reserved for DocuSign.
	EnableDSPro string `json:"enableDSPro,omitempty"`
	// Metadata that indicates whether the `enableDSPro` property is editable.
	//
	EnableDSProMetadata *SettingsMetadata `json:"enableDSProMetadata,omitempty"`
	// When **true**, enables the account administrator to control envelope stamping for an account (placement of the EnvelopeID).
	EnableEnvelopeStampingByAccountAdmin string `json:"enableEnvelopeStampingByAccountAdmin,omitempty"`
	// Metadata that indicates whether the `enableEnvelopeStampingByAccountAdmin` property is editable.
	//
	EnableEnvelopeStampingByAccountAdminMetadata *SettingsMetadata `json:"enableEnvelopeStampingByAccountAdminMetadata,omitempty"`
	// When **true**, enables the DocuSign administrator to control envelope stamping for an account (placement of the EnvelopeID).
	EnableEnvelopeStampingByDSAdmin string `json:"enableEnvelopeStampingByDSAdmin,omitempty"`
	// Metadata that indicates whether the `enableEnvelopeStampingByDSAdmin` property is editable.
	//
	EnableEnvelopeStampingByDSAdminMetadata *SettingsMetadata `json:"enableEnvelopeStampingByDSAdminMetadata,omitempty"`
	// When **true**, enables payment processing for this account.
	EnablePaymentProcessing string `json:"enablePaymentProcessing,omitempty"`
	// Metadata that indicates whether the `enablePaymentProcessing` property is editable.
	//
	EnablePaymentProcessingMetadata *SettingsMetadata `json:"enablePaymentProcessingMetadata,omitempty"`
	// When **true**, enables PowerForms for an account.
	EnablePowerForm string `json:"enablePowerForm,omitempty"`
	// When **true**, enables direct PowerForms for an account. Direct PowerForms are in-session PowerForms.
	EnablePowerFormDirect string `json:"enablePowerFormDirect,omitempty"`
	// Metadata that indicates whether the `enablePowerFormDirect` property is editable.
	//
	EnablePowerFormDirectMetadata *SettingsMetadata `json:"enablePowerFormDirectMetadata,omitempty"`
	// Metadata that indicates whether the `enablePowerForm` property is editable.
	//
	EnablePowerFormMetadata *SettingsMetadata `json:"enablePowerFormMetadata,omitempty"`
	// Reserved for DocuSign.
	EnableRecipientDomainValidation string `json:"enableRecipientDomainValidation,omitempty"`
	// Metadata that indicates whether the `enableRecipientDomainValidation` property is editable.
	//
	EnableRecipientDomainValidationMetadata *SettingsMetadata `json:"enableRecipientDomainValidationMetadata,omitempty"`
	// Enables direct links to envelopes in reports for administrators in the following scopes:
	// - `NoEnvelopes`
	// - `AllEnvelopes`
	// - `OnlyOwnEnvelopes`
	EnableReportLinks string `json:"enableReportLinks,omitempty"`
	// Metadata that indicates whether the `enableReportLinks` property is editable.
	//
	EnableReportLinksMetadata *SettingsMetadata `json:"enableReportLinksMetadata,omitempty"`
	// When true, the account can use the `requireSignOnPaper` option.
	//
	EnableRequireSignOnPaper string `json:"enableRequireSignOnPaper,omitempty"`
	// Metadata that indicates whether the `enableRequireSignOnPaper` property is editable.
	//
	EnableRequireSignOnPaperMetadata *SettingsMetadata `json:"enableRequireSignOnPaperMetadata,omitempty"`
	// When **true**, enables reserved domains for an account. This is configured by the account administrators on a page which they can specify reserved domain and reserved users in their domain. This allows them to lock down email address domains to exist only in their account and in no other location in DocuSign.
	EnableReservedDomain string `json:"enableReservedDomain,omitempty"`
	// Metadata that indicates whether the `enableReservedDomain` property is editable.
	//
	EnableReservedDomainMetadata *SettingsMetadata `json:"enableReservedDomainMetadata,omitempty"`
	// When **true**, enables responsive signing.
	EnableResponsiveSigning string `json:"enableResponsiveSigning,omitempty"`
	// Metadata that indicates whether the `enableResponsiveSigning` property is editable.
	//
	EnableResponsiveSigningMetadata *SettingsMetadata `json:"enableResponsiveSigningMetadata,omitempty"`
	// When **true**, the account can use SMS authentication.
	//
	EnableSMSAuthentication string `json:"enableSMSAuthentication,omitempty"`
	// Metadata that indicates whether the `enableSMSAuthentication` property is editable.
	//
	EnableSMSAuthenticationMetadata *SettingsMetadata `json:"enableSMSAuthenticationMetadata,omitempty"`
	//
	EnableScheduledRelease string `json:"enableScheduledRelease,omitempty"`
	// Metadata that indicates whether the `enableScheduledRelease` property is editable.
	//
	EnableScheduledReleaseMetadata *SettingsMetadata `json:"enableScheduledReleaseMetadata,omitempty"`
	// When **true**, this account can use the agent recipient type.
	//
	EnableSendToAgent string `json:"enableSendToAgent,omitempty"`
	// Metadata that indicates whether the `enableSendToAgent` property is editable.
	//
	EnableSendToAgentMetadata *SettingsMetadata `json:"enableSendToAgentMetadata,omitempty"`
	// When true, this account can use the intermediary recipient type.
	//
	EnableSendToIntermediary string `json:"enableSendToIntermediary,omitempty"`
	// Metadata that indicates whether the `enableSendToIntermediary` property is editable.
	//
	EnableSendToIntermediaryMetadata *SettingsMetadata `json:"enableSendToIntermediaryMetadata,omitempty"`
	// When true, this account can use the editor recipient type.
	//
	EnableSendToManage string `json:"enableSendToManage,omitempty"`
	// Metadata that indicates whether the `enableSendToManage` property is editable.
	//
	EnableSendToManageMetadata *SettingsMetadata `json:"enableSendToManageMetadata,omitempty"`
	// When **true**, enables fonts to be set on tags for the account.
	EnableSendingTagsFontSettings string `json:"enableSendingTagsFontSettings,omitempty"`
	// Metadata that indicates whether the `enableSendingTagsFontSettings` property is editable.
	//
	EnableSendingTagsFontSettingsMetadata *SettingsMetadata `json:"enableSendingTagsFontSettingsMetadata,omitempty"`
	// When **true**, the account can define the routing
	// order of recipients for envelopes sent using the DocuSign API.
	//
	EnableSequentialSigningAPI string `json:"enableSequentialSigningAPI,omitempty"`
	// Metadata that indicates whether the `enableSequentialSigningAPI` property is editable.
	//
	EnableSequentialSigningAPIMetadata *SettingsMetadata `json:"enableSequentialSigningAPIMetadata,omitempty"`
	// When **true**, the account can define the routing order
	// of recipients for envelopes sent using the DocuSign application.
	//
	EnableSequentialSigningUI string `json:"enableSequentialSigningUI,omitempty"`
	// Metadata that indicates whether the `enableSequentialSigningUI` property is editable.
	//
	EnableSequentialSigningUIMetadata *SettingsMetadata `json:"enableSequentialSigningUIMetadata,omitempty"`
	// When **true**, a sender can allow signers to use the sign on paper option.
	//
	EnableSignOnPaper string `json:"enableSignOnPaper,omitempty"`
	// Metadata that indicates whether the `enableSignOnPaper` property is editable.
	//
	EnableSignOnPaperMetadata *SettingsMetadata `json:"enableSignOnPaperMetadata,omitempty"`
	// When **true**, this user can override the Sign on Paper account setting, which specifies whether signers can sign documents on paper as an option to signing electronically.
	EnableSignOnPaperOverride string `json:"enableSignOnPaperOverride,omitempty"`
	// Metadata that indicates whether the `enableSignOnPaperOverride` property is editable.
	//
	EnableSignOnPaperOverrideMetadata *SettingsMetadata `json:"enableSignOnPaperOverrideMetadata,omitempty"`
	// When set to **true**, Sign with Notary functionality is enabled on the envelope.
	EnableSignWithNotary string `json:"enableSignWithNotary,omitempty"`
	// Metadata that indicates whether the `enableSignWithNotary` property is editable.
	//
	EnableSignWithNotaryMetadata *SettingsMetadata `json:"enableSignWithNotaryMetadata,omitempty"`
	// When **true**, this user can use the signing attachments feature.
	EnableSignerAttachments string `json:"enableSignerAttachments,omitempty"`
	// Metadata that indicates whether the `enableSignerAttachments` property is editable.
	//
	EnableSignerAttachmentsMetadata *SettingsMetadata `json:"enableSignerAttachmentsMetadata,omitempty"`
	// When **true**, enables commenting functionality.
	EnableSigningExtensionComments string `json:"enableSigningExtensionComments,omitempty"`
	// Metadata that indicates whether the `enableSigningExtensionComments` property is editable.
	//
	EnableSigningExtensionCommentsMetadata *SettingsMetadata `json:"enableSigningExtensionCommentsMetadata,omitempty"`
	// When **true**, enables conversation functionality.
	EnableSigningExtensionConversations string `json:"enableSigningExtensionConversations,omitempty"`
	// Metadata that indicates whether the `enableSigningExtensionConversations` property is editable.
	//
	EnableSigningExtensionConversationsMetadata *SettingsMetadata `json:"enableSigningExtensionConversationsMetadata,omitempty"`
	// When **true**, switches Signing Order to On by default for new envelopes.
	EnableSigningOrderSettingsForAccount string `json:"enableSigningOrderSettingsForAccount,omitempty"`
	// Metadata that indicates whether the `enableSigningOrderSettingsForAccount` property is editable.
	//
	EnableSigningOrderSettingsForAccountMetadata *SettingsMetadata `json:"enableSigningOrderSettingsForAccountMetadata,omitempty"`
	// When **true**, enables the ability to use social IDs to login to an account.
	EnableSocialIDLogin string `json:"enableSocialIdLogin,omitempty"`
	// Metadata that indicates whether the `enableSocialIdLogin` property is editable.
	//
	EnableSocialIDLoginMetadata *SettingsMetadata `json:"enableSocialIdLoginMetadata,omitempty"`
	// When **true**, enables strikethrough formatting in documents.
	EnableStrikeThrough string `json:"enableStrikeThrough,omitempty"`
	// Metadata that indicates whether the `enableStrikeThrough` property is editable.
	//
	EnableStrikeThroughMetadata *SettingsMetadata `json:"enableStrikeThroughMetadata,omitempty"`
	// Reserved for DocuSign.
	EnableTransactionPoint string `json:"enableTransactionPoint,omitempty"`
	// Metadata that indicates whether the `enableTransactionPoint` property is editable.
	//
	EnableTransactionPointMetadata *SettingsMetadata `json:"enableTransactionPointMetadata,omitempty"`
	// When true, Vaulting is enabled for the account.
	EnableVaulting string `json:"enableVaulting,omitempty"`
	// Metadata that indicates whether the `enableVaulting` property is editable.
	//
	EnableVaultingMetadata *SettingsMetadata `json:"enableVaultingMetadata,omitempty"`
	// When **true**, enables documents to be signed by a witness.
	EnableWitnessing string `json:"enableWitnessing,omitempty"`
	// Metadata that indicates whether the `enableWitnessing` property is editable.
	//
	EnableWitnessingMetadata *SettingsMetadata `json:"enableWitnessingMetadata,omitempty"`
	// When **true**, the template name must be unique.
	EnforceTemplateNameUniqueness string `json:"enforceTemplateNameUniqueness,omitempty"`
	// Metadata that indicates whether the `enforceTemplateNameUniqueness` property is editable.
	//
	EnforceTemplateNameUniquenessMetadata *SettingsMetadata `json:"enforceTemplateNameUniquenessMetadata,omitempty"`
	// When **true**, allows custom admins to enable Connect for their accounts.
	EnvelopeIntegrationAllowed string `json:"envelopeIntegrationAllowed,omitempty"`
	// Metadata that indicates whether the `envelopeIntegrationAllowed` property is editable.
	//
	EnvelopeIntegrationAllowedMetadata *SettingsMetadata `json:"envelopeIntegrationAllowedMetadata,omitempty"`
	// When **true**, enables Connect for an account. Note that Connect integration requires additional configuration that must be set up for it to take effect; this switch is only the on/off control for the account.
	EnvelopeIntegrationEnabled string `json:"envelopeIntegrationEnabled,omitempty"`
	// Metadata that indicates whether the `envelopeIntegrationEnabled` property is editable.
	//
	EnvelopeIntegrationEnabledMetadata *SettingsMetadata `json:"envelopeIntegrationEnabledMetadata,omitempty"`
	// Specifies the default value for Envelope ID stamping.
	EnvelopeStampingDefaultValue string `json:"envelopeStampingDefaultValue,omitempty"`
	// Metadata that indicates whether the `envelopeStampingDefaultValue` property is editable.
	//
	EnvelopeStampingDefaultValueMetadata *SettingsMetadata `json:"envelopeStampingDefaultValueMetadata,omitempty"`
	// Boolean that specifies whether a member of an account can express send (without tags) or must send with tags on documents.
	ExpressSend string `json:"expressSend,omitempty"`
	// Boolean that specifies whether a member of an account can send templates without the tags being stripped out, even when the account is configured to let its users express send only (they cannot use the tagger).
	ExpressSendAllowTabs string `json:"expressSendAllowTabs,omitempty"`
	// Metadata that indicates whether the `expressSendAllowTabs` property is editable.
	//
	ExpressSendAllowTabsMetadata *SettingsMetadata `json:"expressSendAllowTabsMetadata,omitempty"`
	// Metadata that indicates whether the `expressSend` property is editable.
	//
	ExpressSendMetadata *SettingsMetadata `json:"expressSendMetadata,omitempty"`
	// A list of external document sources such as DropBox and OneDrive.
	ExternalDocumentSources *ExternalDocumentSources `json:"externalDocumentSources,omitempty"`
	// Specifies the signature pad type.
	// Valid values are:
	//
	// - `none`
	// - `topaz`
	// - `e_padv9`
	// - `e_pad_integrisign`
	// - `topaz_sigplusextlite`
	//
	ExternalSignaturePadType string `json:"externalSignaturePadType,omitempty"`
	// Metadata that indicates whether the `externalSignaturePadType` property is editable.
	//
	ExternalSignaturePadTypeMetadata *SettingsMetadata `json:"externalSignaturePadTypeMetadata,omitempty"`
	// Boolean that specifies whether fax delivery to recipients is allowed for the account.
	FaxOutEnabled string `json:"faxOutEnabled,omitempty"`
	// Metadata that indicates whether the `faxOutEnabled` property is editable.
	//
	FaxOutEnabledMetadata *SettingsMetadata `json:"faxOutEnabledMetadata,omitempty"`
	// Boolean that specifies whether to hide the account address in the Certificate of Completion.
	HideAccountAddressInCoC string `json:"hideAccountAddressInCoC,omitempty"`
	// Metadata that indicates whether the `hideAccountAddressInCoC` property is editable.
	//
	HideAccountAddressInCoCMetadata *SettingsMetadata `json:"hideAccountAddressInCoCMetadata,omitempty"`
	// Boolean that specifies whether to hide the pricing functionality for an account.
	HidePricing string `json:"hidePricing,omitempty"`
	// Metadata that indicates whether the `hidePricing` property is editable.
	//
	HidePricingMetadata *SettingsMetadata `json:"hidePricingMetadata,omitempty"`
	// A list of ID check configuration objects.
	IDCheckConfigurations []IDCheckConfiguration `json:"idCheckConfigurations,omitempty"`
	// Determines when a user's authentication with the account expires. Valid values are:
	//
	// - `always`: Users are required to authenticate each time.
	// - `variable`: If the authentication for a user is valid and falls within the value for the `idCheckExpireDays` property, the user is not required to authenticate again.
	IDCheckExpire string `json:"idCheckExpire,omitempty"`
	// The number of days before user authentication credentials expire. A value of `0` specifies that users must re-authenticate for each new session.
	IDCheckExpireDays string `json:"idCheckExpireDays,omitempty"`
	// Metadata that indicates whether the `idCheckExpireDays` property is editable.
	//
	IDCheckExpireDaysMetadata *SettingsMetadata `json:"idCheckExpireDaysMetadata,omitempty"`
	// Metadata that indicates whether the `idCheckExpire` property is editable.
	//
	IDCheckExpireMetadata *SettingsMetadata `json:"idCheckExpireMetadata,omitempty"`
	// The number of minutes before user authentication credentials expire.
	IDCheckExpireMinutes string `json:"idCheckExpireMinutes,omitempty"`
	// Metadata that indicates whether the `idCheckExpireMinutes` property is editable.
	//
	IDCheckExpireMinutesMetadata *SettingsMetadata `json:"idCheckExpireMinutesMetadata,omitempty"`
	// Determines how authentication is configured for the account. Valid values are:
	//
	// - `always`: Authentication checks are performed on every envelope.
	// - `never`: Authentication checks are not performed on any envelopes.
	// - `optional:` Authentication is configurable per envelope.
	IDCheckRequired string `json:"idCheckRequired,omitempty"`
	// Metadata that indicates whether the `idCheckRequired` property is editable.
	//
	IDCheckRequiredMetadata *SettingsMetadata `json:"idCheckRequiredMetadata,omitempty"`
	//
	IdentityVerification []AccountIdentityVerificationWorkflow `json:"identityVerification,omitempty"`
	// Metadata that indicates whether the `identityVerification` property is editable.
	//
	IdentityVerificationMetadata *SettingsMetadata `json:"identityVerificationMetadata,omitempty"`
	// Reserved for DocuSign.
	IgnoreErrorIfAnchorTabNotFound string `json:"ignoreErrorIfAnchorTabNotFound,omitempty"`
	// Reserved for DocuSign.
	IgnoreErrorIfAnchorTabNotFoundMetadataEnabled *SettingsMetadata `json:"ignoreErrorIfAnchorTabNotFoundMetadataEnabled,omitempty"`
	// A text field containing the question that an in-person signing host uses to collect personal information from the recipient. The recipient's response to this question is saved and can be viewed in the certificate associated with the envelope.
	InPersonIDCheckQuestion string `json:"inPersonIDCheckQuestion,omitempty"`
	// Metadata that indicates whether the `inPersonIDCheckQuestion` property is editable.
	//
	InPersonIDCheckQuestionMetadata *SettingsMetadata `json:"inPersonIDCheckQuestionMetadata,omitempty"`
	// When **true**, in-person signing is enabled for the account.
	InPersonSigningEnabled string `json:"inPersonSigningEnabled,omitempty"`
	// Metadata that indicates whether the `inPersonSigningEnabled` property is editable.
	//
	InPersonSigningEnabledMetadata *SettingsMetadata `json:"inPersonSigningEnabledMetadata,omitempty"`
	// When **true**, the account can send in-session (embedded) envelopes.
	InSessionEnabled string `json:"inSessionEnabled,omitempty"`
	// Metadata that indicates whether the `inSessionEnabled` property is editable.
	//
	InSessionEnabledMetadata *SettingsMetadata `json:"inSessionEnabledMetadata,omitempty"`
	// When **true**, emails cannot be sent to the in-session (embedded) recipients on an envelope.
	InSessionSuppressEmails string `json:"inSessionSuppressEmails,omitempty"`
	// Metadata that indicates whether the `inSessionSuppressEmails` property is editable.
	//
	InSessionSuppressEmailsMetadata *SettingsMetadata `json:"inSessionSuppressEmailsMetadata,omitempty"`
	// The maximum number of custom stamps.
	MaxNumberOfCustomStamps string `json:"maxNumberOfCustomStamps,omitempty"`
	// The maximum number of signing groups allowed for the account.
	MaximumSigningGroups string `json:"maximumSigningGroups,omitempty"`
	// Metadata that indicates whether the `maximumSigningGroups` property is editable.
	//
	MaximumSigningGroupsMetadata *SettingsMetadata `json:"maximumSigningGroupsMetadata,omitempty"`
	// The maximum number of users per signing group.
	MaximumUsersPerSigningGroup string `json:"maximumUsersPerSigningGroup,omitempty"`
	// Metadata that indicates whether the `maximumUsersPerSigningGroup` property is editable.
	//
	MaximumUsersPerSigningGroupMetadata *SettingsMetadata `json:"maximumUsersPerSigningGroupMetadata,omitempty"`
	// The number of minutes of inactivity before a mobile user is automatically logged out of the system. Valid values are `1` to `120` minutes. The default value is `20` minutes.
	MobileSessionTimeout string `json:"mobileSessionTimeout,omitempty"`
	// Metadata that indicates whether the `mobileSessionTimeout` property is editable.
	//
	MobileSessionTimeoutMetadata *SettingsMetadata `json:"mobileSessionTimeoutMetadata,omitempty"`
	// The number of custom stamps currently active.
	NumberOfActiveCustomStamps string `json:"numberOfActiveCustomStamps,omitempty"`
	// Boolean that specifies whether to opt in for Signing v02 on Mobile Devices functionality.
	OptInMobileSigningV02 string `json:"optInMobileSigningV02,omitempty"`
	// Metadata that indicates whether the `optInMobileSigningV02` property is editable.
	//
	OptInMobileSigningV02Metadata *SettingsMetadata `json:"optInMobileSigningV02Metadata,omitempty"`
	// Boolean that allows envelope senders to opt out of the recipient signing auto-navigation feature and opt out of updating tab font color.
	OptOutAutoNavTextAndTabColorUpdates string `json:"optOutAutoNavTextAndTabColorUpdates,omitempty"`
	// Metadata that indicates whether the `optOutAutoNavTextAndTabColorUpdates` property is editable.
	//
	OptOutAutoNavTextAndTabColorUpdatesMetadata *SettingsMetadata `json:"optOutAutoNavTextAndTabColorUpdatesMetadata,omitempty"`
	// Boolean that specifies whether to allow envelope senders to opt out of using the new platform seal.
	OptOutNewPlatformSeal string `json:"optOutNewPlatformSeal,omitempty"`
	// Metadata that indicates whether the `optOutNewPlatformSealPlatform` property is editable.
	//
	OptOutNewPlatformSealPlatformMetadata *SettingsMetadata `json:"optOutNewPlatformSealPlatformMetadata,omitempty"`
	// Boolean that specifies whether to allow a recipient to provide a phone number, for an account that uses Phone Authentication.
	PhoneAuthRecipientMayProvidePhoneNumber string `json:"phoneAuthRecipientMayProvidePhoneNumber,omitempty"`
	// Metadata that indicates whether the `phoneAuthRecipientMayProvidePhoneNumber` property is editable.
	//
	PhoneAuthRecipientMayProvidePhoneNumberMetadata *SettingsMetadata `json:"phoneAuthRecipientMayProvidePhoneNumberMetadata,omitempty"`
	// Always **true**.
	// Specifies that PDF files
	// downloaded from the platform
	// are signed.
	//
	PkiSignDownloadedPDFDocs string `json:"pkiSignDownloadedPDFDocs,omitempty"`
	// Metadata that indicates whether the `pkiSignDownloadedPDFDocs` property is editable.
	//
	PkiSignDownloadedPDFDocsMetadata *SettingsMetadata `json:"pkiSignDownloadedPDFDocsMetadata,omitempty"`
	// Boolean that specifies whether recipients recieving envelopes from this account can override autonav functionality.
	RecipientSigningAutoNavigationControl string `json:"recipientSigningAutoNavigationControl,omitempty"`
	// Metadata that indicates whether the `recipientSigningAutoNavigationControl` property is editable.
	//
	RecipientSigningAutoNavigationControlMetadata *SettingsMetadata `json:"recipientSigningAutoNavigationControlMetadata,omitempty"`
	// If **true**,
	// recipients recieving envelopes from this account
	// can sign offline.
	//
	RecipientsCanSignOffline string `json:"recipientsCanSignOffline,omitempty"`
	// Metadata that indicates whether the `recipientsCanSignOffline` property is editable.
	//
	RecipientsCanSignOfflineMetadata *SettingsMetadata `json:"recipientsCanSignOfflineMetadata,omitempty"`
	// If **true**,
	// recipients are required
	// to use a 21 CFR part 11-compliant signing experience.
	//
	Require21CFRpt11Compliance string `json:"require21CFRpt11Compliance,omitempty"`
	// Metadata that indicates whether the `require21CFRpt11Compliance` property is editable.
	//
	Require21CFRpt11ComplianceMetadata *SettingsMetadata `json:"require21CFRpt11ComplianceMetadata,omitempty"`
	// If **true**,
	// requires signers who decline to sign an envelope sent from this account
	// to provide a reason for declining.
	//
	RequireDeclineReason string `json:"requireDeclineReason,omitempty"`
	// Metadata that indicates whether the `requireDeclineReason` property is editable.
	//
	RequireDeclineReasonMetadata *SettingsMetadata `json:"requireDeclineReasonMetadata,omitempty"`
	// Boolean that specifies whether to require external managing of users in an account.
	RequireExternalUserManagement string `json:"requireExternalUserManagement,omitempty"`
	// Metadata that indicates whether the `requireExternalUserManagement` property is editable.
	//
	RequireExternalUserManagementMetadata *SettingsMetadata `json:"requireExternalUserManagementMetadata,omitempty"`
	// Valid values are:
	//
	// - `none`
	// - `docusign_express`
	// - `docusign_personal`
	// - `safe`
	// - `open_trust`
	//
	RequireSignerCertificateType string `json:"requireSignerCertificateType,omitempty"`
	// Metadata that indicates whether the `requireSignerCertificateType` property is editable.
	//
	RequireSignerCertificateTypeMetadata *SettingsMetadata `json:"requireSignerCertificateTypeMetadata,omitempty"`
	// The RSA account name.
	//
	// **Note:**
	// Modifying this value may disrupt your ID Check capability.
	// Ensure you have the correct value before changing it.
	//
	RsaVeridAccountName string `json:"rsaVeridAccountName,omitempty"`
	// The password used with the RSA account.
	//
	//
	// **Note:**
	// Modifying this value may disrupt your ID Check capability.
	// Ensure you have the correct value before changing it.
	//
	//
	//
	RsaVeridPassword string `json:"rsaVeridPassword,omitempty"`
	// The RSA rule set used with the account.
	//
	// **Note:**
	// Modifying this value may disrupt your ID Check capability.
	// Ensure you have the correct value before changing it.
	//
	//
	//
	RsaVeridRuleset string `json:"rsaVeridRuleset,omitempty"`
	// The user ID for the RSA account.
	//
	// **Note:**
	// Modifying this value may disrupt your ID Check capability.
	// Ensure you have the correct value before changing it.
	//
	//
	RsaVeridUserID string `json:"rsaVeridUserId,omitempty"`
	// Valid values are:
	//
	// - `include_pdf`
	// - `include_link`
	//
	SelfSignedRecipientEmailDocument string `json:"selfSignedRecipientEmailDocument,omitempty"`
	// Metadata that indicates whether the `selfSignedRecipientEmailDocument` property is editable.
	//
	SelfSignedRecipientEmailDocumentMetadata *SettingsMetadata `json:"selfSignedRecipientEmailDocumentMetadata,omitempty"`
	// When **true** the `selfSignedRecipientEmailDocument` user setting can be set for an individual user.
	// The user setting  overrides the account setting.
	//
	//
	SelfSignedRecipientEmailDocumentUserOverride string `json:"selfSignedRecipientEmailDocumentUserOverride,omitempty"`
	// Metadata that indicates whether the `selfSignedRecipientEmailDocumentUserOverride` property is editable.
	//
	SelfSignedRecipientEmailDocumentUserOverrideMetadata *SettingsMetadata `json:"selfSignedRecipientEmailDocumentUserOverrideMetadata,omitempty"`
	// When true,
	// the account can use the
	// certified deliveries recipient type.
	//
	SendToCertifiedDeliveryEnabled string `json:"sendToCertifiedDeliveryEnabled,omitempty"`
	// Metadata that indicates whether the `sendToCertifiedDeliveryEnabled` property is editable.
	//
	SendToCertifiedDeliveryEnabledMetadata *SettingsMetadata `json:"sendToCertifiedDeliveryEnabledMetadata,omitempty"`
	// Boolean that specifies whether a signer can draw their signature in each location where a sign or initial tab exsts. This is typically used for mobile signing.
	SenderCanSignInEachLocation string `json:"senderCanSignInEachLocation,omitempty"`
	// Metadata that indicates whether the `senderCanSignInEachLocation` property is editable.
	//
	SenderCanSignInEachLocationMetadata *SettingsMetadata `json:"senderCanSignInEachLocationMetadata,omitempty"`
	// When *true*, a sender who is also a recipient of an envelope
	// must follow the authentication requirements for the envelope.
	//
	SenderMustAuthenticateSigning string `json:"senderMustAuthenticateSigning,omitempty"`
	// Metadata that indicates whether the `senderMustAuthenticateSigning` property is editable.
	//
	SenderMustAuthenticateSigningMetadata *SettingsMetadata `json:"senderMustAuthenticateSigningMetadata,omitempty"`
	// The account-wide default font color to use for the content of the tab:
	//
	// - `Black`
	// - `BrightBlue`
	// - `BrightRed`
	// - `DarkGreen`
	// - `DarkRed`
	// - `Gold`
	// - `Green`
	// - `NavyBlue`
	// - `Purple`
	// - `White`
	SendingTagsFontColor string `json:"sendingTagsFontColor,omitempty"`
	// Metadata that indicates whether the `sendingTagsFontColor` property is editable.
	//
	SendingTagsFontColorMetadata *SettingsMetadata `json:"sendingTagsFontColorMetadata,omitempty"`
	// The account-wide default font to be used for the tab value. Supported fonts include:
	//
	// - `Default`
	// - `Arial`
	// - `ArialNarrow`
	// - `Calibri`
	// - `CourierNew`
	// - `Garamond`
	// - `Georgia`
	// - `Helvetica`
	// - `LucidaConsole`
	// - `MSGothic`
	// - `MSMincho`
	// - `OCR-A`
	// - `Tahoma`
	// - `TimesNewRoman`
	// - `Trebuchet`
	// - `Verdana`
	SendingTagsFontName string `json:"sendingTagsFontName,omitempty"`
	// Metadata that indicates whether the `sendingTagsFontName` property is editable.
	//
	SendingTagsFontNameMetadata *SettingsMetadata `json:"sendingTagsFontNameMetadata,omitempty"`
	// The account-wide default font size used for the information in the tab:
	//
	// - `Size7`
	// - `Size8`
	// - `Size9`
	// - `Size10`
	// - `Size11`
	// - `Size12`
	// - `Size14`
	// - `Size16`
	// - `Size18`
	// - `Size20`
	// - `Size22`
	// - `Size24`
	// - `Size26`
	// - `Size28`
	// - `Size36`
	// - `Size48`
	// - `Size72`
	SendingTagsFontSize string `json:"sendingTagsFontSize,omitempty"`
	// Metadata that indicates whether the `sendingTagsFontSize` property is editable.
	//
	SendingTagsFontSizeMetadata *SettingsMetadata `json:"sendingTagsFontSizeMetadata,omitempty"`
	// The amount of idle activity time, in minutes, before a user is automatically logged out of the system. The minimum setting is 20 minutes and the maximum setting is 120 minutes.
	//
	SessionTimeout string `json:"sessionTimeout,omitempty"`
	// Metadata that indicates whether the `sessionTimeout` property is editable.
	//
	SessionTimeoutMetadata *SettingsMetadata `json:"sessionTimeoutMetadata,omitempty"`
	// The language to be used for email to a recipient. If set for one recipient, this overrides the Envelope Subject and EmailBlurb. 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)
	// - Vietnamese (vi)
	SetRecipEmailLang string `json:"setRecipEmailLang,omitempty"`
	// Metadata that indicates whether the `setRecipEmailLang` property is editable.
	//
	SetRecipEmailLangMetadata *SettingsMetadata `json:"setRecipEmailLangMetadata,omitempty"`
	// If **true**,
	// setting a unique language for a recipient
	// not only affects the email language, but also the signing
	// language they are presented with. If **false**, only the email will
	// be affected by the sender specifying a unique language for a
	// recipient
	//
	SetRecipSignLang string `json:"setRecipSignLang,omitempty"`
	// Metadata that indicates whether the `setRecipSignLang` property is editable.
	//
	SetRecipSignLangMetadata *SettingsMetadata `json:"setRecipSignLangMetadata,omitempty"`
	// Boolean that specifies whether an account can use Shared Template Folders.
	SharedTemplateFolders string `json:"sharedTemplateFolders,omitempty"`
	// Metadata that indicates whether the `sharedTemplateFolders` property is editable.
	//
	SharedTemplateFoldersMetadata *SettingsMetadata `json:"sharedTemplateFoldersMetadata,omitempty"`
	// Boolean that specifies whether complete dialogs are displayed directly within an application in embedded signing sessions.
	ShowCompleteDialogInEmbeddedSession string `json:"showCompleteDialogInEmbeddedSession,omitempty"`
	// Metadata that indicates whether the `showCompleteDialogInEmbeddedSession` property is editable.
	//
	ShowCompleteDialogInEmbeddedSessionMetadata *SettingsMetadata `json:"showCompleteDialogInEmbeddedSessionMetadata,omitempty"`
	// Boolean that specifies whether conditional field options are initially displayed (before a user makes entries).
	ShowInitialConditionalFields string `json:"showInitialConditionalFields,omitempty"`
	// Metadata that indicates whether the `showInitialConditionalFields` property is editable.
	//
	ShowInitialConditionalFieldsMetadata *SettingsMetadata `json:"showInitialConditionalFieldsMetadata,omitempty"`
	// Boolean that specifies whether localized watermarks are displayed.
	ShowLocalizedWatermarks string `json:"showLocalizedWatermarks,omitempty"`
	// Metadata that indicates whether the `showLocalizedWatermarks` property is editable.
	//
	ShowLocalizedWatermarksMetadata *SettingsMetadata `json:"showLocalizedWatermarksMetadata,omitempty"`
	// If **true**,
	// show tutorials.
	//
	ShowTutorials string `json:"showTutorials,omitempty"`
	// Metadata that indicates whether the `showTutorials` property is editable.
	//
	ShowTutorialsMetadata *SettingsMetadata `json:"showTutorialsMetadata,omitempty"`
	// The format for the signature date. Valid values are:
	//
	//
	// - `d/M/yyyy`
	// - `dd-MM-yy`
	// - `dd-MMM-yy`
	// - `dd-MM-yyyy`
	// - `dd.MM.yyyy`
	// - `dd-MMM-yyyy`
	// - `dd MMMM yyyy`
	// - `M/d/yyyy`
	// - `MM-dd-yyyy`
	// - `MM/dd/yyyy`
	// - `MM/dd/yy`
	// - `MMM-dd-yyyy`
	// - `MMM d, yyyy`
	// - `MMMM d, yyyy`
	// - `yyyy-MM-dd`
	// - `yyyy-MMM-dd`
	// - `yyyy/MM/dd`
	// - `yyyy MMMM d`
	//
	//
	//
	SignDateFormat string `json:"signDateFormat,omitempty"`
	// Metadata that indicates whether the `signDateFormat` property is editable.
	//
	SignDateFormatMetadata *SettingsMetadata `json:"signDateFormatMetadata,omitempty"`
	// The format for the signature time. Valid values are:
	//
	// - `none`
	// - `HH:mm`
	// - `h:mm`
	// - `HH:mm:ss`
	// - `h:mm:ss`
	//
	SignTimeFormat string `json:"signTimeFormat,omitempty"`
	// Metadata that indicates whether the `signTimeFormat` property is editable.
	//
	SignTimeFormatMetadata *SettingsMetadata `json:"signTimeFormatMetadata,omitempty"`
	// If **true**,
	// the time shows the AM or PM indicator.
	//
	SignTimeShowAmPm string `json:"signTimeShowAmPm,omitempty"`
	// Metadata that indicates whether the `signTimeShowAmPm` property is editable.
	//
	SignTimeShowAmPmMetadata *SettingsMetadata `json:"signTimeShowAmPmMetadata,omitempty"`
	// Names of electronic or digital signature providers that can be used.
	SignatureProviders []string `json:"signatureProviders,omitempty"`
	// Metadata that indicates whether the `signatureProviders` property is editable.
	//
	SignatureProvidersMetadata *SettingsMetadata `json:"signatureProvidersMetadata,omitempty"`
	// If **true**,
	// the certificate of completion is included in the envelope documents PDF when it is downloaded.
	//
	SignerAttachCertificateToEnvelopePDF string `json:"signerAttachCertificateToEnvelopePDF,omitempty"`
	// Metadata that indicates whether the `signerAttachCertificateToEnvelopePDF` property is editable.
	//
	SignerAttachCertificateToEnvelopePDFMetadata *SettingsMetadata `json:"signerAttachCertificateToEnvelopePDFMetadata,omitempty"`
	// If **true**, signer attachments are added to the parent document
	// that contains the attachment.
	// The default behavior creates
	// a new document in the envelope for every signer attachment.
	//
	SignerAttachConcat string `json:"signerAttachConcat,omitempty"`
	// Metadata that indicates whether the `signerAttachConcat` property is editable.
	//
	SignerAttachConcatMetadata *SettingsMetadata `json:"signerAttachConcatMetadata,omitempty"`
	// If **true**,
	// the signer can create a DocuSign account
	// after signing.
	//
	SignerCanCreateAccount string `json:"signerCanCreateAccount,omitempty"`
	// Metadata that indicates whether the `signerCanCreateAccount` property is editable.
	//
	SignerCanCreateAccountMetadata *SettingsMetadata `json:"signerCanCreateAccountMetadata,omitempty"`
	// When set to **true**, the recipient can sign on a mobile device.
	SignerCanSignOnMobile string `json:"signerCanSignOnMobile,omitempty"`
	// Metadata that indicates whether the `signerCanSignOnMobile` property is editable.
	//
	SignerCanSignOnMobileMetadata *SettingsMetadata `json:"signerCanSignOnMobileMetadata,omitempty"`
	// If **true**,
	// send only a completed email to an in-session signer
	// and only if in-session emails are not supressed.
	//
	SignerInSessionUseEnvelopeCompleteEmail string `json:"signerInSessionUseEnvelopeCompleteEmail,omitempty"`
	// Metadata that indicates whether the `signerInSessionUseEnvelopeCompleteEmail` property is editable.
	//
	SignerInSessionUseEnvelopeCompleteEmailMetadata *SettingsMetadata `json:"signerInSessionUseEnvelopeCompleteEmailMetadata,omitempty"`
	// Speficies whether a signer has
	// to log in. Valid values are:
	//
	// - `login_not_required`
	// - `login_required_if_account_holder`
	// - `login_required_per_session`
	// - `login_required_per_envelope`
	//
	SignerLoginRequirements string `json:"signerLoginRequirements,omitempty"`
	// Metadata that indicates whether the `signerLoginRequirements` property is editable.
	//
	SignerLoginRequirementsMetadata *SettingsMetadata `json:"signerLoginRequirementsMetadata,omitempty"`
	// When **true**, senders can only send an envelope to a recipient that has a DocuSign account.
	//
	SignerMustHaveAccount string `json:"signerMustHaveAccount,omitempty"`
	// Metadata that indicates whether the `signerMustHaveAccount` property is editable.
	//
	SignerMustHaveAccountMetadata *SettingsMetadata `json:"signerMustHaveAccountMetadata,omitempty"`
	// When **true**,
	// signers must log in to the DocuSign platform to sign an envelope.
	//
	SignerMustLoginToSign string `json:"signerMustLoginToSign,omitempty"`
	// Metadata that indicates whether the `signerMustLoginToSign` property is editable.
	//
	SignerMustLoginToSignMetadata *SettingsMetadata `json:"signerMustLoginToSignMetadata,omitempty"`
	// When **true**, the initial value of all SecureFields is written to the document when sent.
	//
	SignerShowSecureFieldInitialValues string `json:"signerShowSecureFieldInitialValues,omitempty"`
	// Metadata that indicates whether the `signerShowSecureFieldInitialValues` property is editable.
	//
	SignerShowSecureFieldInitialValuesMetadata *SettingsMetadata `json:"signerShowSecureFieldInitialValuesMetadata,omitempty"`
	// The number of minutes
	// that a signing session stays
	// alive without any activity.
	//
	SigningSessionTimeout string `json:"signingSessionTimeout,omitempty"`
	// Metadata that indicates whether the `signingSessionTimeout` property is editable.
	//
	SigningSessionTimeoutMetadata *SettingsMetadata `json:"signingSessionTimeoutMetadata,omitempty"`
	// Reserved for DocuSign.
	//
	SigningUIVersion string `json:"signingUiVersion,omitempty"`
	// Reserved for DocuSign.
	SigningUIVersionMetadata *SettingsMetadata `json:"signingUiVersionMetadata,omitempty"`
	//
	SimplifiedSendingEnabled string `json:"simplifiedSendingEnabled,omitempty"`
	// Metadata that indicates whether the `simplifiedSendingEnabled` property is editable.
	//
	SimplifiedSendingEnabledMetadata *SettingsMetadata `json:"simplifiedSendingEnabledMetadata,omitempty"`
	// If **true**,
	// single sign-on (SSO) is enabled.
	//
	SingleSignOnEnabled string `json:"singleSignOnEnabled,omitempty"`
	// Metadata that indicates whether the `singleSignOnEnabled` property is editable.
	//
	SingleSignOnEnabledMetadata *SettingsMetadata `json:"singleSignOnEnabledMetadata,omitempty"`
	// If **true**,
	// do not require authentication prompt for viewing completed envelopes
	//
	SkipAuthCompletedEnvelopes string `json:"skipAuthCompletedEnvelopes,omitempty"`
	// Metadata that indicates whether the `skipAuthCompletedEnvelopes` property is editable.
	//
	SkipAuthCompletedEnvelopesMetadata *SettingsMetadata `json:"skipAuthCompletedEnvelopesMetadata,omitempty"`
	// If **true**,
	// recipients can use
	// [social ids](https://support.docusign.com/guides/signer-authentication)
	// when signing
	//
	SocialIDRecipAuth string `json:"socialIdRecipAuth,omitempty"`
	// Metadata that indicates whether the `socialIdRecipAuth` property is editable.
	//
	SocialIDRecipAuthMetadata *SettingsMetadata `json:"socialIdRecipAuthMetadata,omitempty"`
	// When **true**, senders can specify the visibility of the documents in an envelope at the recipient level.
	//
	SpecifyDocumentVisibility string `json:"specifyDocumentVisibility,omitempty"`
	// Metadata that indicates whether the `specifyDocumentVisibility` property is editable.
	//
	SpecifyDocumentVisibilityMetadata *SettingsMetadata `json:"specifyDocumentVisibilityMetadata,omitempty"`
	// If **true**,
	// when initiating correction of an in-flight envelope
	// the sender starts in advanced correct mode.
	//
	StartInAdvancedCorrect string `json:"startInAdvancedCorrect,omitempty"`
	// Metadata that indicates whether the `startInAdvancedCorrect` property is editable.
	//
	StartInAdvancedCorrectMetadata *SettingsMetadata `json:"startInAdvancedCorrectMetadata,omitempty"`
	// When **true**, this user must accept supplemental documents.
	SupplementalDocumentsMustAccept string `json:"supplementalDocumentsMustAccept,omitempty"`
	// Metadata that indicates whether the `supplementalDocumentsMustAccept` property is editable.
	//
	SupplementalDocumentsMustAcceptMetadata *SettingsMetadata `json:"supplementalDocumentsMustAcceptMetadata,omitempty"`
	// When **true**, this user must read supplemental documents.
	SupplementalDocumentsMustRead string `json:"supplementalDocumentsMustRead,omitempty"`
	// Metadata that indicates whether the `supplementalDocumentsMustRead` property is editable.
	//
	SupplementalDocumentsMustReadMetadata *SettingsMetadata `json:"supplementalDocumentsMustReadMetadata,omitempty"`
	// When **true**, this user must view supplemental documents.
	SupplementalDocumentsMustView string `json:"supplementalDocumentsMustView,omitempty"`
	// Metadata that indicates whether the `supplementalDocumentsMustView` property is editable.
	//
	SupplementalDocumentsMustViewMetadata *SettingsMetadata `json:"supplementalDocumentsMustViewMetadata,omitempty"`
	// Boolean that specifies whether or not API calls require a x509 cert in the header of the call.
	SuppressCertificateEnforcement string `json:"suppressCertificateEnforcement,omitempty"`
	// Metadata that indicates whether the `suppressCertificateEnforcement` property is editable.
	//
	SuppressCertificateEnforcementMetadata *SettingsMetadata `json:"suppressCertificateEnforcementMetadata,omitempty"`
	// Account-wide tab settings.
	TabAccountSettings *TabAccountSettings `json:"tabAccountSettings,omitempty"`
	// Specifies the time zone
	// to use with the API.
	//
	// Valid values are:
	//
	// - `TZ_01_AfghanistanStandardTime`
	// - `TZ_02_AlaskanStandardTime`
	// - `TZ_03_ArabStandardTime`
	// - `TZ_04_ArabianStandardTime`
	// - `TZ_05_ArabicStandardTime`
	// - `TZ_06_ArgentinaStandardTime`
	// - `TZ_07_AtlanticStandardTime`
	// - `TZ_08_AUS_CentralStandardTime`
	// - `TZ_09_AUS_EasternStandardTime`
	// - `TZ_10_AzerbaijanStandardTime`
	// - `TZ_11_AzoresStandardTime`
	// - `TZ_12_BangladeshStandardTime`
	// - `TZ_13_CanadaCentralStandardTime`
	// - `TZ_14_CapeVerdeStandardTime`
	// - `TZ_15_CaucasusStandardTime`
	// - `TZ_16_CentralAustraliaStandardTime`
	// - `TZ_17_CentralAmericaStandardTime`
	// - `TZ_18_CentralAsiaStandardTime`
	// - `TZ_19_CentralBrazilianStandardTime`
	// - `TZ_20_CentralEuropeStandardTime`
	// - `TZ_21_CentralEuropeanStandardTime`
	// - `TZ_22_CentralPacificStandardTime`
	// - `TZ_23_CentralStandardTime`
	// - `TZ_24_CentralStandardTimeMexico`
	// - `TZ_25_ChinaStandardTime`
	// - `TZ_26_DatelineStandardTime`
	// - `TZ_27_E_AfricaStandardTime`
	// - `TZ_28_E_AustraliaStandardTime`
	// - `TZ_29_E_EuropeStandardTime`
	// - `TZ_30_E_SouthAmericaStandardTime`
	// - `TZ_31_EasternStandardTime`
	// - `TZ_32_EgyptStandardTime`
	// - `TZ_33_EkaterinburgStandardTime`
	// - `TZ_34_FijiStandardTime`
	// - `TZ_35_FLE_StandardTime`
	// - `TZ_36_GeorgianStandardTime`
	// - `TZ_37_GMT_StandardTime`
	// - `TZ_38_GreenlandStandardTime`
	// - `TZ_39_GreenwichStandardTime`
	// - `TZ_40_GTB_StandardTime`
	// - `TZ_41_HawaiianStandardTime`
	// - `TZ_42_IndiaStandardTime`
	// - `TZ_43_IranStandardTime`
	// - `TZ_44_IsraelStandardTime`
	// - `TZ_45_JordanStandardTime`
	// - `TZ_46_KaliningradStandardTime`
	// - `TZ_47_KamchatkaStandardTime`
	// - `TZ_48_KoreaStandardTime`
	// - `TZ_49_MagadanStandardTime`
	// - `TZ_50_MauritiusStandardTime`
	// - `TZ_51_MidAtlanticStandardTime`
	// - `TZ_52_MiddleEastStandardTime`
	// - `TZ_53_MontevideoStandardTime`
	// - `TZ_54_MoroccoStandardTime`
	// - `TZ_55_MountainStandardTime`
	// - `TZ_56_MountainStandardTimeMMexico`
	// - `TZ_57_MyanmarStandardTime`
	// - `TZ_58_N_CentralAsiaStandardTime`
	// - `TZ_59_NamibiaStandardTime`
	// - `TZ_60_NepalStandardTime`
	// - `TZ_61_NewZealandStandardTime`
	// - `TZ_62_NewfoundlandStandardTime`
	// - `TZ_63_NorthAsiaEastStandardTime`
	// - `TZ_64_NorthAsiaStandardTime`
	// - `TZ_65_PacificSAStandardTime`
	// - `TZ_66_PacificStandardTime`
	// - `TZ_67_PacificStandardTimeMexico`
	// - `TZ_68_PakistanStandardTime`
	// - `TZ_69_ParaguayStandardTime`
	// - `TZ_70_RomanceStandardTime`
	// - `TZ_71_RussianStandardTime`
	// - `TZ_72_SAEasternStandardTime`
	// - `TZ_73_SAPacificStandardTime`
	// - `TZ_74_SAWesternStandardTime`
	// - `TZ_75_SamoaStandardTime`
	// - `TZ_76_SE_AsiaStandardTime`
	// - `TZ_77_SingaporeStandardTime`
	// - `TZ_78_SouthAfricaStandardTime`
	// - `TZ_79_SriLankaStandardTime`
	// - `TZ_80_SyriaStandardTime`
	// - `TZ_81_TaipeiStandardTime`
	// - `TZ_82_TasmaniaStandardTime`
	// - `TZ_83_TokyoStandardTime`
	// - `TZ_84_TongaStandardTime`
	// - `TZ_85_TurkeyStandardTime`
	// - `TZ_86_UlaanbaatarStandardTime`
	// - `TZ_87_US_EasternStandardTime`
	// - `TZ_88_USMountainStandardTime`
	// - `TZ_89_VenezuelaStandardTime`
	// - `TZ_90_VladivostokStandardTime`
	// - `TZ_91_W_AustraliaStandardTime`
	// - `TZ_92_W_CentralAfricaStandardTime`
	// - `TZ_93_W_EuropeStandardTime`
	// - `TZ_94_WestAsiaStandardTime`
	// - `TZ_95_WestPacificStandardTime`
	// - `TZ_96_YakutskStandardTime`
	//
	TimezoneOffsetAPI string `json:"timezoneOffsetAPI,omitempty"`
	// Metadata that indicates whether the `timezoneOffsetAPI` property is editable.
	//
	TimezoneOffsetAPIMetadata *SettingsMetadata `json:"timezoneOffsetAPIMetadata,omitempty"`
	// Specifies the time zone
	// to use in the UI.
	//
	// Valid values are:
	//
	// - `TZ_01_AfghanistanStandardTime`
	// - `TZ_02_AlaskanStandardTime`
	// - `TZ_03_ArabStandardTime`
	// - `TZ_04_ArabianStandardTime`
	// - `TZ_05_ArabicStandardTime`
	// - `TZ_06_ArgentinaStandardTime`
	// - `TZ_07_AtlanticStandardTime`
	// - `TZ_08_AUS_CentralStandardTime`
	// - `TZ_09_AUS_EasternStandardTime`
	// - `TZ_10_AzerbaijanStandardTime`
	// - `TZ_11_AzoresStandardTime`
	// - `TZ_12_BangladeshStandardTime`
	// - `TZ_13_CanadaCentralStandardTime`
	// - `TZ_14_CapeVerdeStandardTime`
	// - `TZ_15_CaucasusStandardTime`
	// - `TZ_16_CentralAustraliaStandardTime`
	// - `TZ_17_CentralAmericaStandardTime`
	// - `TZ_18_CentralAsiaStandardTime`
	// - `TZ_19_CentralBrazilianStandardTime`
	// - `TZ_20_CentralEuropeStandardTime`
	// - `TZ_21_CentralEuropeanStandardTime`
	// - `TZ_22_CentralPacificStandardTime`
	// - `TZ_23_CentralStandardTime`
	// - `TZ_24_CentralStandardTimeMexico`
	// - `TZ_25_ChinaStandardTime`
	// - `TZ_26_DatelineStandardTime`
	// - `TZ_27_E_AfricaStandardTime`
	// - `TZ_28_E_AustraliaStandardTime`
	// - `TZ_29_E_EuropeStandardTime`
	// - `TZ_30_E_SouthAmericaStandardTime`
	// - `TZ_31_EasternStandardTime`
	// - `TZ_32_EgyptStandardTime`
	// - `TZ_33_EkaterinburgStandardTime`
	// - `TZ_34_FijiStandardTime`
	// - `TZ_35_FLE_StandardTime`
	// - `TZ_36_GeorgianStandardTime`
	// - `TZ_37_GMT_StandardTime`
	// - `TZ_38_GreenlandStandardTime`
	// - `TZ_39_GreenwichStandardTime`
	// - `TZ_40_GTB_StandardTime`
	// - `TZ_41_HawaiianStandardTime`
	// - `TZ_42_IndiaStandardTime`
	// - `TZ_43_IranStandardTime`
	// - `TZ_44_IsraelStandardTime`
	// - `TZ_45_JordanStandardTime`
	// - `TZ_46_KaliningradStandardTime`
	// - `TZ_47_KamchatkaStandardTime`
	// - `TZ_48_KoreaStandardTime`
	// - `TZ_49_MagadanStandardTime`
	// - `TZ_50_MauritiusStandardTime`
	// - `TZ_51_MidAtlanticStandardTime`
	// - `TZ_52_MiddleEastStandardTime`
	// - `TZ_53_MontevideoStandardTime`
	// - `TZ_54_MoroccoStandardTime`
	// - `TZ_55_MountainStandardTime`
	// - `TZ_56_MountainStandardTimeMMexico`
	// - `TZ_57_MyanmarStandardTime`
	// - `TZ_58_N_CentralAsiaStandardTime`
	// - `TZ_59_NamibiaStandardTime`
	// - `TZ_60_NepalStandardTime`
	// - `TZ_61_NewZealandStandardTime`
	// - `TZ_62_NewfoundlandStandardTime`
	// - `TZ_63_NorthAsiaEastStandardTime`
	// - `TZ_64_NorthAsiaStandardTime`
	// - `TZ_65_PacificSAStandardTime`
	// - `TZ_66_PacificStandardTime`
	// - `TZ_67_PacificStandardTimeMexico`
	// - `TZ_68_PakistanStandardTime`
	// - `TZ_69_ParaguayStandardTime`
	// - `TZ_70_RomanceStandardTime`
	// - `TZ_71_RussianStandardTime`
	// - `TZ_72_SAEasternStandardTime`
	// - `TZ_73_SAPacificStandardTime`
	// - `TZ_74_SAWesternStandardTime`
	// - `TZ_75_SamoaStandardTime`
	// - `TZ_76_SE_AsiaStandardTime`
	// - `TZ_77_SingaporeStandardTime`
	// - `TZ_78_SouthAfricaStandardTime`
	// - `TZ_79_SriLankaStandardTime`
	// - `TZ_80_SyriaStandardTime`
	// - `TZ_81_TaipeiStandardTime`
	// - `TZ_82_TasmaniaStandardTime`
	// - `TZ_83_TokyoStandardTime`
	// - `TZ_84_TongaStandardTime`
	// - `TZ_85_TurkeyStandardTime`
	// - `TZ_86_UlaanbaatarStandardTime`
	// - `TZ_87_US_EasternStandardTime`
	// - `TZ_88_USMountainStandardTime`
	// - `TZ_89_VenezuelaStandardTime`
	// - `TZ_90_VladivostokStandardTime`
	// - `TZ_91_W_AustraliaStandardTime`
	// - `TZ_92_W_CentralAfricaStandardTime`
	// - `TZ_93_W_EuropeStandardTime`
	// - `TZ_94_WestAsiaStandardTime`
	// - `TZ_95_WestPacificStandardTime`
	// - `TZ_96_YakutskStandardTime`
	//
	TimezoneOffsetUI string `json:"timezoneOffsetUI,omitempty"`
	// Metadata that indicates whether the `timezoneOffsetUI` property is editable.
	//
	TimezoneOffsetUIMetadata *SettingsMetadata `json:"timezoneOffsetUIMetadata,omitempty"`
	// Reserved for DocuSign.
	//
	UniversalSignatureOptIn string `json:"universalSignatureOptIn,omitempty"`
	// Reserved for DocuSign.
	//
	UseAccountLevelEmail string `json:"useAccountLevelEmail,omitempty"`
	// Metadata that indicates whether the `useAccountLevelEmail` property is editable.
	//
	UseAccountLevelEmailMetadata *SettingsMetadata `json:"useAccountLevelEmailMetadata,omitempty"`
	// Boolean that specifies whether the account uses an Electronic Record and Signature Disclosure Statement.
	UseConsumerDisclosure string `json:"useConsumerDisclosure,omitempty"`
	// Metadata that indicates whether the `useConsumerDisclosure` property is editable.
	//
	UseConsumerDisclosureMetadata *SettingsMetadata `json:"useConsumerDisclosureMetadata,omitempty"`
	// Boolean that specifies whether recipients in the same account as the sender must agree to eSign an Electronic Record and Signature Disclosure Statement.
	UseConsumerDisclosureWithinAccount string `json:"useConsumerDisclosureWithinAccount,omitempty"`
	// Metadata that indicates whether the `useConsumerDisclosureWithinAccount` property is editable.
	//
	UseConsumerDisclosureWithinAccountMetadata *SettingsMetadata `json:"useConsumerDisclosureWithinAccountMetadata,omitempty"`
	// Reserved for DocuSign.
	//
	UseDerivedKeys string `json:"useDerivedKeys,omitempty"`
	// Metadata that indicates whether the `useDerivedKeys` property is editable.
	//
	UseDerivedKeysMetadata *SettingsMetadata `json:"useDerivedKeysMetadata,omitempty"`
	// If **true**,
	// signers
	// are required to use Express Digital Signatures.
	//
	UseDocuSignExpressSignerCertificate string `json:"useDocuSignExpressSignerCertificate,omitempty"`
	// Metadata that indicates whether the `useDocuSignExpressSignerCertificate` property is editable.
	//
	UseDocuSignExpressSignerCertificateMetadata *SettingsMetadata `json:"useDocuSignExpressSignerCertificateMetadata,omitempty"`
	// Reserved for DocuSign.
	//
	UseNewBlobForPdf string `json:"useNewBlobForPdf,omitempty"`
	// Metadata that indicates whether the `useNewBlobForPdf` property is editable.
	//
	UseNewBlobForPdfMetadata *SettingsMetadata `json:"useNewBlobForPdfMetadata,omitempty"`
	// If **true**,
	// signers are
	// required to use SAFE digital signatures.
	//
	UseSAFESignerCertificates string `json:"useSAFESignerCertificates,omitempty"`
	// Metadata that indicates whether the `useSAFESignerCertificates` property is editable.
	//
	UseSAFESignerCertificatesMetadata *SettingsMetadata `json:"useSAFESignerCertificatesMetadata,omitempty"`
	// Boolean that specifies whether the account uses the digital signature provider platform to eSign.
	UseSignatureProviderPlatform string `json:"useSignatureProviderPlatform,omitempty"`
	// Metadata that indicates whether the `useSignatureProviderPlatform` property is editable.
	//
	UseSignatureProviderPlatformMetadata *SettingsMetadata `json:"useSignatureProviderPlatformMetadata,omitempty"`
	// If **true**,
	// the account can use the API.
	//
	UsesAPI string `json:"usesAPI,omitempty"`
	// Metadata that indicates whether the `usesAPI` property is editable.
	//
	UsesAPIMetadata *SettingsMetadata `json:"usesAPIMetadata,omitempty"`
	// Boolean that specifies whether validations on recipient email domains are allowed.
	ValidationsAllowed string `json:"validationsAllowed,omitempty"`
	// Metadata that indicates whether the `validationsAllowed` property is editable.
	//
	ValidationsAllowedMetadata *SettingsMetadata `json:"validationsAllowedMetadata,omitempty"`
	// Valid values are:
	//
	// - `docusign`
	// - `account`
	//
	ValidationsBrand string `json:"validationsBrand,omitempty"`
	// Metadata that indicates whether the `validationsBrand` property is editable.
	//
	ValidationsBrandMetadata *SettingsMetadata `json:"validationsBrandMetadata,omitempty"`
	// Valid values are:
	//
	// - `none`
	// - `monthly`
	//
	ValidationsCadence string `json:"validationsCadence,omitempty"`
	// Metadata that indicates whether the `validationsCadence` property is editable.
	//
	ValidationsCadenceMetadata *SettingsMetadata `json:"validationsCadenceMetadata,omitempty"`
	// If **true**,
	// enables validations.
	//
	ValidationsEnabled string `json:"validationsEnabled,omitempty"`
	// Metadata that indicates whether the `validationsEnabled` property is editable.
	//
	ValidationsEnabledMetadata *SettingsMetadata `json:"validationsEnabledMetadata,omitempty"`
	// Valid values are:
	//
	// - `none`
	// - `life_sciences_part11`
	//
	ValidationsReport string `json:"validationsReport,omitempty"`
	// Metadata that indicates whether the `validationsReport` property is editable.
	//
	ValidationsReportMetadata *SettingsMetadata `json:"validationsReportMetadata,omitempty"`
	// If **true**,
	// the
	// [watermark feature](https://support.docusign.com/en/articles/How-do-I-manage-the-watermark-for-In-Process-envelopes-sent-from-my-account)
	// is enabled for the account.
	//
	WaterMarkEnabled string `json:"waterMarkEnabled,omitempty"`
	// Metadata that indicates whether the `waterMarkEnabled` property is editable.
	//
	WaterMarkEnabledMetadata *SettingsMetadata `json:"waterMarkEnabledMetadata,omitempty"`
	// If **true**,
	// sent reminders are included in the envelope history.
	WriteReminderToEnvelopeHistory string `json:"writeReminderToEnvelopeHistory,omitempty"`
	// Metadata that indicates whether the `writeReminderToEnvelopeHistory` property is editable.
	//
	WriteReminderToEnvelopeHistoryMetadata *SettingsMetadata `json:"writeReminderToEnvelopeHistoryMetadata,omitempty"`
	// The smallest screen allowed.
	WurflMinAllowableScreenSize string `json:"wurflMinAllowableScreenSize,omitempty"`
	// Metadata that indicates whether the `wurflMinAllowableScreenSize` property is editable.
	//
	WurflMinAllowableScreenSizeMetadata *SettingsMetadata `json:"wurflMinAllowableScreenSizeMetadata,omitempty"`
}

AccountSettingsInformation contains account settings information. Used in requests to set property values. Used in responses to report property values.

type AccountSharedAccess

type AccountSharedAccess struct {
	// The account ID associated with the envelope.
	AccountID string `json:"accountId,omitempty"`
	// The last position in the result set.
	EndPosition string `json:"endPosition,omitempty"`
	// A complex type containing an errorCode and message identifying the error that occurred.
	ErrorDetails *ErrorDetails `json:"errorDetails,omitempty"`
	// 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 `json:"nextUri,omitempty"`
	// 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 `json:"previousUri,omitempty"`
	// The number of results returned in this response. Because you can filter which entries are included in the response, this value is always less than or equal to `totalSetSize`.
	ResultSetSize string `json:"resultSetSize,omitempty"`
	// A list of shared access information of envelope and templates for the users specified in the request.
	SharedAccess []MemberSharedItems `json:"sharedAccess,omitempty"`
	// The starting position of the current result set.
	StartPosition string `json:"startPosition,omitempty"`
	// The total number of items in the search's result set. This value is always greater than or equal to the value of `resultSetSize`.
	TotalSetSize string `json:"totalSetSize,omitempty"`
}

AccountSharedAccess contains shared access information.

type AccountSignatureProvider

type AccountSignatureProvider struct {
	// The name of an Electronic or Standards Based Signature (digital signature) provider for the signer to use. [The current provider list.](https://developers.docusign.com/esign-rest-api/guides/standards-based-signatures)
	SignatureProviderName string `json:"signatureProviderName,omitempty"`
}

AccountSignatureProvider signature provider associated with the identity verification workflow. If empty, then this specific workflow is not intended for signers

type AccountSignatureProviderOption

type AccountSignatureProviderOption struct {
	//
	SignatureProviderOptionDisplayName string `json:"signatureProviderOptionDisplayName,omitempty"`
	//
	SignatureProviderOptionID string `json:"signatureProviderOptionId,omitempty"`
	//
	SignatureProviderOptionName string `json:"signatureProviderOptionName,omitempty"`
}

type AccountSignatureProviders

type AccountSignatureProviders struct {
	// Names of electronic or digital signature providers that can be used.
	SignatureProviders []AccountSignatureProvider `json:"signatureProviders,omitempty"`
}

AccountSignatureProviders account SBS Signature Providers

type AddOn

type AddOn struct {
	// Reserved:
	Active string `json:"active,omitempty"`
	// Reserved:
	AddOnID string `json:"addOnId,omitempty"`
	// A unique ID for the Salesforce object.
	ID string `json:"id,omitempty"`
	// Reserved:
	Name string `json:"name,omitempty"`
}

AddOn contains information about add ons.

type AddressInformation

type AddressInformation struct {
	// The first line of the user's address.
	// Maximum length: 100 characters.
	Address1 string `json:"address1,omitempty"`
	// The second line of the user's address.
	// Maximum length: 100 characters.
	Address2 string `json:"address2,omitempty"`
	// The user's city.
	City string `json:"city,omitempty"`
	// The user's country.
	Country string `json:"country,omitempty"`
	// A fax number associated with the address, if one is available.
	Fax string `json:"fax,omitempty"`
	// A phone number associated with the address.
	Phone string `json:"phone,omitempty"`
	// The user's postal code.
	PostalCode string `json:"postalCode,omitempty"`
	// The user's state or province.
	StateOrProvince string `json:"stateOrProvince,omitempty"`
}

AddressInformation contains address information.

type AddressInformationInput

type AddressInformationInput struct {
	// A complex type that contains the following information for the new account: `address1`, `address2`, `city`, `country`, `fax`, `phone`, `postalCode` and `stateOrProvince`.
	//
	// The maximum characters for the strings are:
	// * `address1`, `address2`, `city`, `country` and `stateOrProvince`: 100 characters
	// * `postalCode`, `phone`, and `fax`: 20 characters
	//
	// **Note:** If country is US (United States), `stateOrProvince` codes are validated. Otherwise, `stateOrProvince` is treated as a non-validated string used to specify a state, province, or region.
	AddressInformation *AddressInformation `json:"addressInformation,omitempty"`
	// Specifies the display level for the recipient. Valid values are:
	// * `ReadOnly`
	// * `Editable`
	// * `DoNotDisplay`
	DisplayLevelCode string `json:"displayLevelCode,omitempty"`
	// A Boolean value that specifies whether the information must be returned in the response.
	ReceiveInResponse DSBool `json:"receiveInResponse,omitempty"`
}

type Agent

type Agent struct {
	// If a value is provided, the recipient must enter the value as the access code to view and sign the envelope.
	//
	// Maximum Length: 50 characters and it must conform to the account's access code format setting.
	//
	// If blank, but the signer `accessCode` property is set in the envelope, then that value is used.
	//
	// If blank and the signer `accessCode` property is not set, then the access code is not required.
	AccessCode string `json:"accessCode,omitempty"`
	// Metadata that indicates whether the `accessCode` property is editable.
	//
	AccessCodeMetadata *PropertyMetadata `json:"accessCodeMetadata,omitempty"`
	// 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 `json:"addAccessCodeToEmail,omitempty"`
	// Specifies whether the recipient is embedded or remote.
	//
	// If 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.
	//
	// Note: 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.
	//
	// Maximum length: 100 characters.
	ClientUserID string `json:"clientUserId,omitempty"`
	// Indicates the number of times that the recipient has been through a signing completion for the envelope.
	//
	// If this number is greater than 0 for a signing group, only the user who previously completed may sign again.
	CompletedCount string `json:"completedCount,omitempty"`
	// 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 `json:"customFields,omitempty"`
	// The date and time the recipient declined the document.
	DeclinedDateTime *time.Time `json:"declinedDateTime,omitempty"`
	// The reason the recipient declined the document.
	DeclinedReason string `json:"declinedReason,omitempty"`
	// The date and time that the envelope was delivered to the recipient.
	DeliveredDateTime *time.Time `json:"deliveredDateTime,omitempty"`
	// Reserved for DocuSign.
	DeliveryMethod string `json:"deliveryMethod,omitempty"`
	// Metadata that indicates whether the `deliveryMethod` property is editable.
	//
	DeliveryMethodMetadata *PropertyMetadata `json:"deliveryMethodMetadata,omitempty"`
	// A list of documentVisibility objects, which define a recipient's read/write access to a document.
	DocumentVisibility []DocumentVisibility `json:"documentVisibility,omitempty"`
	// The email id of the agent. Notification of the document to sign is sent to this email id.
	//
	// Maximum length: 100 characters.
	Email string `json:"email,omitempty"`
	// Metadata that indicates if the sender can edit the email id of the agent.
	EmailMetadata *PropertyMetadata `json:"emailMetadata,omitempty"`
	// An optional complex type that sets a specific email subject and body for this recipient's notification email.
	//
	// **Note**: If you use this field to set a specific email notification for one recipient, you must also set the email notification for the other recipients. Using this field for one or more recipients negates the Envelope `Subject` and `EmailBlurb` property settings.
	EmailNotification *RecipientEmailNotification `json:"emailNotification,omitempty"`
	// Specifies a sender-provided valid URL string for redirecting an embedded recipient. When this option is used, the embedded recipient still receives an email from DocuSign, just as a remote recipient would. When the recipient clicks the document link in the email, the recipient is redirected through DocuSign to the specified URL to complete the required 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.
	//
	// If 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 launched by a partner.
	//
	// It is important to understand 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 processes for establishing the recipient's identity. In this workflow the recipient goes through the sending application before the embedded signing or viewing process is 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.
	//
	// If 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 for the recipient or envelope. The merge fields are enclosed in double brackets.
	//
	// *Example*:
	//
	// `http://senderHost/[[mergeField1]]/ beginSigningSession? [[mergeField2]]&[[mergeField3]]`
	EmbeddedRecipientStartURL string `json:"embeddedRecipientStartURL,omitempty"`
	// This object describes errors that occur. It is only valid for responses and ignored in requests.
	ErrorDetails *ErrorDetails `json:"errorDetails,omitempty"`
	// 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.
	//
	// When 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 DSBool `json:"excludedDocuments,omitempty"`
	// Reserved for DocuSign.
	FaxNumber string `json:"faxNumber,omitempty"`
	// Metadata that indicates whether the `faxNumber` property is editable.
	//
	FaxNumberMetadata *PropertyMetadata `json:"faxNumberMetadata,omitempty"`
	// The agent's first name. Maximum Length: 50 characters.
	FirstName string `json:"firstName,omitempty"`
	// Metadata that indicates if the sender can edit the agent's first name.
	FirstNameMetadata *PropertyMetadata `json:"firstNameMetadata,omitempty"`
	// Reserved for DocuSign.
	FullName string `json:"fullName,omitempty"`
	// Reserved for DocuSign.
	FullNameMetadata *PropertyMetadata `json:"fullNameMetadata,omitempty"`
	// The name of the authentication check to use. This value must match one of the authentication types that the account uses. The names of these authentication types appear in the web console sending interface in the Identify list for a recipient. This setting overrides any default authentication setting.
	//
	// **Example**: Your account has ID Check and SMS Authentication available. 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 $. For SMS, you would use SMS Auth $, and you would also need to add a phone number to the smsAuthentication node.
	IDCheckConfigurationName string `json:"idCheckConfigurationName,omitempty"`
	// Metadata that indicates whether the `idCheckConfigurationName` property is editable.
	//
	IDCheckConfigurationNameMetadata *PropertyMetadata `json:"idCheckConfigurationNameMetadata,omitempty"`
	// An object that contains input information related to a recipient ID check.
	IDCheckInformationInput *IDCheckInformationInput `json:"idCheckInformationInput,omitempty"`
	// 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 DSBool `json:"inheritEmailNotificationConfiguration,omitempty"`
	// The agent's last name.
	LastName string `json:"lastName,omitempty"`
	// Metadata that indicates if the sender can edit the agent's last name.
	LastNameMetadata *PropertyMetadata `json:"lastNameMetadata,omitempty"`
	// Reserved for DocuSign.
	LockedRecipientPhoneAuthEditable string `json:"lockedRecipientPhoneAuthEditable,omitempty"`
	// Reserved for DocuSign.
	LockedRecipientSmsEditable string `json:"lockedRecipientSmsEditable,omitempty"`
	// The full legal name of the agent.
	Name string `json:"name,omitempty"`
	// Metadata that indicates if the sender can edit the full legal name of the agent.
	NameMetadata *PropertyMetadata `json:"nameMetadata,omitempty"`
	// A note sent to the recipient in the signing email.
	// This note is unique to this recipient.
	// In the user interface,
	// it appears near the upper left corner
	// of the document
	// on the signing screen.
	//
	// Maximum Length: 1000 characters.
	//
	Note string `json:"note,omitempty"`
	// Metadata that indicates if the sender can edit the note sent to the recipient in the signing email.
	NoteMetadata *PropertyMetadata `json:"noteMetadata,omitempty"`
	// A complex type that contains the following elements:
	//
	// * `recipMayProvideNumber` - Boolean. When set to **true**, the recipient can use whatever phone number they choose.
	// * `senderProvidedNumbers` - ArrayOfString.  A list of phone numbers the recipient can use.
	// * `recordVoicePrint` - Reserved.
	// * `validateRecipProvidedNumber` - Reserved.
	PhoneAuthentication DSBool `json:"phoneAuthentication,omitempty"`
	// Reserved for DocuSign.
	RecipientAttachments []RecipientAttachment `json:"recipientAttachments,omitempty"`
	// Information about the recipient's authentication status.
	RecipientAuthenticationStatus *AuthenticationStatus `json:"recipientAuthenticationStatus,omitempty"`
	// Metadata that indicates whether the `recipientFeature` property is editable.
	//
	RecipientFeatureMetadata []FeatureAvailableMetadata `json:"recipientFeatureMetadata,omitempty"`
	// A local reference that senders use to map recipients to other objects, such as specific document tabs. Within an envelope, each `recipientId` must be unique, but there is no uniqueness requirement across envelopes. For example, many envelopes assign the first recipient a `recipientId` of `1`.
	RecipientID string `json:"recipientId,omitempty"`
	// The globally-unique identifier (GUID) for a specific recipient on a specific envelope. If the same recipient is associated with multiple envelopes, they will have a different GUID for each one.
	RecipientIDGUID string `json:"recipientIdGuid,omitempty"`
	// The recipient type, as specified by the following values:
	// - `agents`: Agent recipients can add name and email information for recipients that appear after the agent in routing order.
	// - `carbonCopies`: Carbon copy recipients get a copy of the envelope but don't need to sign, initial, date, or add information to any of the documents. This type of recipient can be used in any routing order.
	// - `certifiedDeliveries`: Certified delivery recipients must receive the completed documents for the envelope to be completed. They don't need to sign, initial, date, or add information to any of the documents.
	// - `editors`: Editors have the same management and access rights for the envelope as the sender. Editors can add name and email information, add or change the routing order, set authentication options, and can edit signature/initial tabs and data fields for the remaining recipients.
	// - `inPersonSigners`: In-person recipients are DocuSign users who act as signing hosts in the same physical location as the signer.
	// - `intermediaries`: Intermediary recipients can optionally add name and email information for recipients at the same or subsequent level in the routing order.
	// - `seals`: Electronic seal recipients represent legal entities.
	// - `signers`: Signers are recipients who must sign, initial, date, or add data to form fields on the documents in the envelope.
	// - `witnesses`: Witnesses are recipients whose signatures affirm that the identified signers have signed the documents in the envelope.
	RecipientType string `json:"recipientType,omitempty"`
	// Metadata that indicates whether the `recipientType` property is editable.
	//
	RecipientTypeMetadata *PropertyMetadata `json:"recipientTypeMetadata,omitempty"`
	// 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 DSBool `json:"requireIdLookup,omitempty"`
	// Metadata that indicates whether the `requireIdLookup` property is editable.
	//
	RequireIDLookupMetadata *PropertyMetadata `json:"requireIdLookupMetadata,omitempty"`
	// Optional element. Specifies the role name associated with the recipient.<br/><br/>This is required when working with template recipients.
	RoleName string `json:"roleName,omitempty"`
	// Specifies the routing order of the recipient in the envelope.
	RoutingOrder string `json:"routingOrder,omitempty"`
	// Metadata that indicates if the sender can edit the routing order for the recipient.
	RoutingOrderMetadata *PropertyMetadata `json:"routingOrderMetadata,omitempty"`
	// The date and time the envelope was sent.
	SentDateTime *time.Time `json:"sentDateTime,omitempty"`
	// Reserved for DocuSign.
	SignedDateTime *time.Time `json:"signedDateTime,omitempty"`
	// The id of the signing group of which the agent is a member, if applicable.
	SigningGroupID string `json:"signingGroupId,omitempty"`
	// Metadata that indicates whether the `signingGroupId` property is editable.
	//
	SigningGroupIDMetadata *PropertyMetadata `json:"signingGroupIdMetadata,omitempty"`
	// The display name for the signing group.
	//
	// Maximum Length: 100 characters.
	SigningGroupName string `json:"signingGroupName,omitempty"`
	// A complex type that contains information about users in the signing group.
	SigningGroupUsers []UserInfo `json:"signingGroupUsers,omitempty"`
	// Contains the element senderProvidedNumbers which is an Array  of phone numbers the recipient can use for SMS text authentication.
	//
	SmsAuthentication *RecipientSMSAuthentication `json:"smsAuthentication,omitempty"`
	//  Lists the social ID type that can be used for recipient authentication.
	SocialAuthentications []SocialAuthentication `json:"socialAuthentications,omitempty"`
	// Recipient status.
	// <!-- todo -->
	//
	Status string `json:"status,omitempty"`
	// Reserved for DocuSign.
	StatusCode string `json:"statusCode,omitempty"`
	// When set to **true**, the sender cannot change any attributes of the recipient. Used only when working with template recipients.
	TemplateLocked DSBool `json:"templateLocked,omitempty"`
	// When set to **true**, the sender may not remove the recipient. Used only when working with template recipients.
	TemplateRequired DSBool `json:"templateRequired,omitempty"`
	// The total number of tabs in the documents.
	TotalTabCount string `json:"totalTabCount,omitempty"`
	// The ID of the user to access. Generally this is the ID of the current authenticated user, but if the authenticated user is an Administrator on the account, `userId` can represent another user whom the Administrator is accessing.
	//
	UserID string `json:"userId,omitempty"`
}

Agent contains information about agent recipients.

type AppStoreProduct

type AppStoreProduct struct {
	//
	MarketPlace string `json:"marketPlace,omitempty"`
	// The Product ID from the AppStore.
	ProductID string `json:"productId,omitempty"`
}

AppStoreProduct contains information about an APP store product.

type AppStoreReceipt

type AppStoreReceipt struct {
	// The Product ID from the AppStore.
	ProductID string `json:"productId,omitempty"`
	// Reserved: TBD
	ReceiptData string `json:"receiptData,omitempty"`
}

AppStoreReceipt contains information about an APP store receipt.

type Approve

type Approve struct {
	TabBase
	TabGuidedForm
	TabPosition
	// When set to **true**, the information in the tab is bold.
	Bold string `json:"bold,omitempty"`
	// Metadata that indicates whether the `bold` property is editable.
	BoldMetadata *PropertyMetadata `json:"boldMetadata,omitempty"`
	//  Specifies the approval text that displays in the tab.
	ButtonText string `json:"buttonText,omitempty"`
	// Metadata that indicates whether the `buttonText` property is editable.
	ButtonTextMetadata *PropertyMetadata `json:"buttonTextMetadata,omitempty"`
	// The font to be used for the tab value. Supported fonts include:
	//
	// - Default
	// - Arial
	// - ArialNarrow
	// - Calibri
	// - CourierNew
	// - Garamond
	// - Georgia
	// - Helvetica
	// - LucidaConsole
	// - MSGothic
	// - MSMincho
	// - OCR-A
	// - Tahoma
	// - TimesNewRoman
	// - Trebuchet
	// - Verdana
	//
	Font string `json:"font,omitempty"`
	// The font color to use for the information in the tab. Possible values are:
	//
	// - Black
	// - BrightBlue
	// - BrightRed
	// - DarkGreen
	// - DarkRed
	// - Gold
	// - Green
	// - NavyBlue
	// - Purple
	// - White
	//
	FontColor string `json:"fontColor,omitempty"`
	// Metadata that indicates whether the `fontColor` property is editable.
	FontColorMetadata *PropertyMetadata `json:"fontColorMetadata,omitempty"`
	// Metadata that indicates whether the `font` property is editable.
	FontMetadata *PropertyMetadata `json:"fontMetadata,omitempty"`
	// The font size used for the information in the tab. Possible values are:
	//
	// - Size7
	// - Size8
	// - Size9
	// - Size10
	// - Size11
	// - Size12
	// - Size14
	// - Size16
	// - Size18
	// - Size20
	// - Size22
	// - Size24
	// - Size26
	// - Size28
	// - Size36
	// - Size48
	// - Size72
	FontSize string `json:"fontSize,omitempty"`
	// Metadata that indicates whether the `fontSize` property is editable.
	FontSizeMetadata *PropertyMetadata `json:"fontSizeMetadata,omitempty"`
	// The height of the tab in pixels.
	Height string `json:"height,omitempty"`
	// Metadata that indicates whether the `height` property is editable.
	HeightMetadata *PropertyMetadata `json:"heightMetadata,omitempty"`
	// When set to **true**, the information in the tab is italic.
	Italic string `json:"italic,omitempty"`
	// Metadata that indicates whether the `italic` property is editable.
	ItalicMetadata *PropertyMetadata `json:"italicMetadata,omitempty"`
	// Reserved for DocuSign.
	LocalePolicy *LocalePolicyTab `json:"localePolicy,omitempty"`
	// Metadata that indicates whether the `toolTip` property is editable.
	ToolTipMetadata *PropertyMetadata `json:"toolTipMetadata,omitempty"`
	// The text of a tooltip that appears when a user hovers over a form field or tab.
	Tooltip string `json:"tooltip,omitempty"`
	// When set to **true**, the information in the tab is underlined.
	Underline string `json:"underline,omitempty"`
	// Metadata that indicates whether the `underline` property is editable.
	UnderlineMetadata *PropertyMetadata `json:"underlineMetadata,omitempty"`
	// The width of the tab in pixels.
	Width string `json:"width,omitempty"`
	// Metadata that indicates whether the `width` property is editable.
	WidthMetadata *PropertyMetadata `json:"widthMetadata,omitempty"`
}

Approve is a tab that allows the recipient to approve documents without placing a signature or initials on the document.

type Attachment

type Attachment struct {
	// Valid values are `sender` and `senderAndAllRecipients`.
	AccessControl string `json:"accessControl,omitempty"`
	// The unique identifier for the attachment.
	AttachmentID string `json:"attachmentId,omitempty"`
	// Specifies the type of the attachment for the recipient. Possible values are:
	//
	// - `.htm`
	// - `.xml`
	AttachmentType string `json:"attachmentType,omitempty"`
	// A Base64-encoded representation of the attachment that is used to upload and download the file. File attachments may be up to 50 MB in size.
	Data []byte `json:"data,omitempty"`
	// A label for the attachment. Potential values include:
	//
	// - `guidedForm`: [Guided forms](https://www.docusign.com/products/guided-forms) provide a step-by-step, mobile-ready experience to help signers easily complete long or complex forms.
	// - `eventNotifications`: A list of envelope-level event statuses that trigger Connect to send updates to the endpoint specified in the `url` property.
	//
	Label string `json:"label,omitempty"`
	// The name of the attachment.
	Name string `json:"name,omitempty"`
	// The URL of a previously staged chunked upload. Using a chunked upload enables you to stage a large, chunkable temp file. You then use the `remoteUrl` property to reference the chunked upload as the content in attachment and document-related requests. The `remoteUrl` property cannot be used for downloads.
	RemoteURL string `json:"remoteUrl,omitempty"`
}

Attachment contains information about an attachment.

type AuthenticationMethod

type AuthenticationMethod struct {
	// Indicates the type of authentication. Valid values are:
	//
	// - `PhoneAuth`
	// - `STAN`
	// - `ISCheck`
	// - `OFAC`
	// - `AccessCode`
	// - `AgeVerify`
	// - `SSOAuth`
	AuthenticationType string `json:"authenticationType,omitempty"`
	// The last provider that authenticated the user.
	LastProvider string `json:"lastProvider,omitempty"`
	//  The data and time the user last used the authentication method.
	LastTimestamp string `json:"lastTimestamp,omitempty"`
	// The number of times the authentication method was used.
	TotalCount string `json:"totalCount,omitempty"`
}

AuthenticationMethod contains information about the method used for authentication.

type AuthenticationStatus

type AuthenticationStatus struct {
	// Success/failure result of authentication using an access code.
	AccessCodeResult *EventResult `json:"accessCodeResult,omitempty"`
	// Success/failure result of authentication using age verification.
	AgeVerifyResult *EventResult `json:"ageVerifyResult,omitempty"`
	// Success/failure result of authentication using sign-in with any social media account.
	AnySocialIDResult *EventResult `json:"anySocialIDResult,omitempty"`
	// Success/failure result of authentication using sign-in with a Facebook account.
	FacebookResult *EventResult `json:"facebookResult,omitempty"`
	// Success/failure result of authentication using sign-in with a Google+ account.
	GoogleResult *EventResult `json:"googleResult,omitempty"`
	// Result of an ID lookup.
	IDLookupResult *EventResult `json:"idLookupResult,omitempty"`
	// Result of the user answering ID challenge questions.
	IDQuestionsResult *EventResult `json:"idQuestionsResult,omitempty"`
	// Success/failure result of authentication using sign-in with a LinkedIn account.
	LinkedinResult *EventResult `json:"linkedinResult,omitempty"`
	// Success/failure result of authentication using sign-in with a Windows LiveID account.
	LiveIDResult *EventResult `json:"liveIDResult,omitempty"`
	//
	OfacResult *EventResult `json:"ofacResult,omitempty"`
	// Success/failure result of authentication using sign-in with a Yahoo OpenID account.
	OpenIDResult *EventResult `json:"openIDResult,omitempty"`
	// Success/failure result of two-factor authentication (2FA) using phone messaging.
	PhoneAuthResult *EventResult `json:"phoneAuthResult,omitempty"`
	//
	STANPinResult *EventResult `json:"sTANPinResult,omitempty"`
	// Success/failure result of authentication using sign-in with a Salesforce account.
	SalesforceResult *EventResult `json:"salesforceResult,omitempty"`
	// Success/failure result of authentication using a signature provider.
	SignatureProviderResult *EventResult `json:"signatureProviderResult,omitempty"`
	// Success/failure result of two-factor authentication (2FA) using phone SMS.
	SmsAuthResult *EventResult `json:"smsAuthResult,omitempty"`
	// Success/failure result of authentication using sign-in with a Twitter account.
	TwitterResult *EventResult `json:"twitterResult,omitempty"`
	// Success/failure result of authentication using sign-in with a Yahoo account.
	YahooResult *EventResult `json:"yahooResult,omitempty"`
}

AuthenticationStatus is a complex element that contains information about the authentication status.

type BccEmailAddress

type BccEmailAddress struct {
	// 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.
	//
	// Example: 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 `json:"bccEmailAddressId,omitempty"`
	// 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.
	//
	// Maximum of length: 100 characters.
	Email string `json:"email,omitempty"`
}

BccEmailAddress contains information about the BCC email address.

type BillingCharge

type BillingCharge struct {
	// Reserved: TBD
	AllowedQuantity string `json:"allowedQuantity,omitempty"`
	// Reserved: TBD
	Blocked string `json:"blocked,omitempty"`
	// Provides information on what services the charge item is for.
	//
	// The following table provides a description of the different chargeName values available at this time.
	//
	// | chargeName | Description |
	// | --- | --- |
	// | id_check | ID Check Charge |
	// | in_person_signing | In Person Signing charge |
	// | envelopes Included | Sent Envelopes for the account |
	// | age_verify | Age verification check |
	// | ofac | OFAC Check |
	// | id_confirm | ID confirmation check |
	// | student_authentication | STAN PIN authentication check |
	// | wet_sign_fax | Pages for returning signed documents by fax |
	// | attachment_fax | Pages for returning attachments by fax |
	// | phone_authentication | Phone authentication charge |
	// | powerforms | PowerForm envelopes sent |
	// | signer_payments | Payment processing charge |
	// | outbound_fax | Send by fax charge |
	// | bulk_recipient_envelopes | Bulk Recipient Envelopes sent |
	// | sms_authentications | SMS authentication charge |
	// | saml_authentications | SAML authentication charge |
	// | express_signer_certificate | DocuSign Express Certificate charge |
	// | personal_signer_certificate | Personal Signer Certificate charge |
	// | safe_certificate | SAFE BioPharma Signer Certificate charge |
	// | seats | Included active seats charge |
	// | open_trust_certificate | OpenTrust Signer Certificate charge |
	ChargeName string `json:"chargeName,omitempty"`
	// Reserved: TBD
	ChargeType string `json:"chargeType,omitempty"`
	// Reserved: TBD
	ChargeUnitOfMeasure string `json:"chargeUnitOfMeasure,omitempty"`
	//
	Discounts []BillingDiscount `json:"discounts,omitempty"`
	//
	FirstEffectiveDate string `json:"firstEffectiveDate,omitempty"`
	//
	IncludedQuantity string `json:"includedQuantity,omitempty"`
	// Reserved: TBD
	IncrementalQuantity string `json:"incrementalQuantity,omitempty"`
	//
	LastEffectiveDate string `json:"lastEffectiveDate,omitempty"`
	//
	Prices []BillingPrice `json:"prices,omitempty"`
	// Reserved: TBD
	UnitPrice string `json:"unitPrice,omitempty"`
	//
	UsedQuantity string `json:"usedQuantity,omitempty"`
}

BillingCharge contains information about a billing charge.

type BillingChargeResponse

type BillingChargeResponse struct {
	// Reserved: TBD
	BillingChargeItems []BillingCharge `json:"billingChargeItems,omitempty"`
}

BillingChargeResponse defines a billing charge response object.

type BillingDiscount

type BillingDiscount struct {
	// Reserved: TBD
	BeginQuantity string `json:"beginQuantity,omitempty"`
	//
	Discount string `json:"discount,omitempty"`
	//
	EndQuantity string `json:"endQuantity,omitempty"`
}

type BillingInvoice

type BillingInvoice struct {
	// Reserved: TBD
	Amount string `json:"amount,omitempty"`
	// Reserved: TBD
	Balance string `json:"balance,omitempty"`
	// Reserved: TBD
	DueDate string `json:"dueDate,omitempty"`
	// Reserved: TBD
	InvoiceID string `json:"invoiceId,omitempty"`
	// Reserved: TBD
	InvoiceItems []BillingInvoiceItem `json:"invoiceItems,omitempty"`
	// Reserved: TBD
	InvoiceNumber string `json:"invoiceNumber,omitempty"`
	// Contains a URI for an endpoint that you can use to retrieve invoice information.
	InvoiceURI string `json:"invoiceUri,omitempty"`
	//
	NonTaxableAmount string `json:"nonTaxableAmount,omitempty"`
	//
	PdfAvailable string `json:"pdfAvailable,omitempty"`
	//
	TaxableAmount string `json:"taxableAmount,omitempty"`
}

BillingInvoice invoices

type BillingInvoiceItem

type BillingInvoiceItem struct {
	// Reserved: TBD
	ChargeAmount string `json:"chargeAmount,omitempty"`
	// Reserved: TBD
	ChargeName string `json:"chargeName,omitempty"`
	// Reserved: TBD
	InvoiceItemID string `json:"invoiceItemId,omitempty"`
	// The quantity of envelopes to add to the account.
	Quantity string `json:"quantity,omitempty"`
	// Reserved: TBD
	UnitPrice string `json:"unitPrice,omitempty"`
}

BillingInvoiceItem contains information about an item on a billing invoice.

type BillingInvoicesResponse

type BillingInvoicesResponse struct {
	// Reserved: TBD
	BillingInvoices []BillingInvoice `json:"billingInvoices,omitempty"`
	// 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 `json:"nextUri,omitempty"`
	// 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 `json:"previousUri,omitempty"`
}

BillingInvoicesResponse defines a billing invoice response object.

type BillingInvoicesSummary

type BillingInvoicesSummary struct {
	// Reserved: TBD
	BillingInvoices []BillingInvoice `json:"billingInvoices,omitempty"`
	//
	PastDueBalance string `json:"pastDueBalance,omitempty"`
	//
	PaymentAllowed string `json:"paymentAllowed,omitempty"`
}

type BillingPayment

type BillingPayment struct {
	// Reserved: TBD
	Amount string `json:"amount,omitempty"`
	// Reserved: TBD
	InvoiceID string `json:"invoiceId,omitempty"`
	//
	PaymentID string `json:"paymentId,omitempty"`
}

BillingPayment contains information on a billing plan.

type BillingPaymentItem

type BillingPaymentItem struct {
	// Reserved: TBD
	Amount string `json:"amount,omitempty"`
	// A sender-defined description of the line item.
	//
	Description string `json:"description,omitempty"`
	//
	PaymentDate string `json:"paymentDate,omitempty"`
	//
	PaymentID string `json:"paymentId,omitempty"`
	// When set to **true**, a PDF version of the invoice is available.
	//
	// To get the PDF, make the call again and change "Accept:" in the header to "Accept: application/pdf".
	PaymentNumber string `json:"paymentNumber,omitempty"`
}

BillingPaymentItem payments

type BillingPaymentRequest

type BillingPaymentRequest struct {
	// The payment amount for the past due invoices. This value must match the pastDueBalance value retrieved using Get Past Due Invoices.
	PaymentAmount string `json:"paymentAmount,omitempty"`
}

type BillingPaymentResponse

type BillingPaymentResponse struct {
	// Reserved: TBD
	BillingPayments []BillingPayment `json:"billingPayments,omitempty"`
}

BillingPaymentResponse defines an billing payment response object.

type BillingPaymentsResponse

type BillingPaymentsResponse struct {
	// Reserved: TBD
	BillingPayments []BillingPaymentItem `json:"billingPayments,omitempty"`
	// 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 `json:"nextUri,omitempty"`
	// 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 `json:"previousUri,omitempty"`
}

BillingPaymentsResponse defines a billing payments response object.

type BillingPlan

type BillingPlan struct {
	// Reserved for DocuSign.
	AppStoreProducts []AppStoreProduct `json:"appStoreProducts,omitempty"`
	// Contains the currencyCode and currencySymbol for the alternate currency values for envelopeFee, fixedFee, and seatFee that are configured for this plan feature set.
	CurrencyPlanPrices []CurrencyPlanPrice `json:"currencyPlanPrices,omitempty"`
	// When set to **true**, then customer support is provided as part of the account plan.
	EnableSupport DSBool `json:"enableSupport,omitempty"`
	// The number of seats (users) included.
	IncludedSeats string `json:"includedSeats,omitempty"`
	//
	OtherDiscountPercent string `json:"otherDiscountPercent,omitempty"`
	//  The payment cycle associated with the plan. The possible values are: Monthly or Annually.
	PaymentCycle string `json:"paymentCycle,omitempty"`
	// The payment method used for the billing plan. Valid values are:
	//
	// - `NotSupported`
	// - `CreditCard`
	// - `PurchaseOrder`
	// - `Premium`
	// - `Freemium`
	// - `FreeTrial`
	// - `AppStore`
	// - `DigitalExternal`
	// - `DirectDebit`
	PaymentMethod string `json:"paymentMethod,omitempty"`
	// The per-seat price for the plan.
	PerSeatPrice string `json:"perSeatPrice,omitempty"`
	// Identifies the type of plan. Examples include:
	//
	// - `business`
	// - `corporate`
	// - `enterprise`
	// - `free`
	PlanClassification string `json:"planClassification,omitempty"`
	// Reserved for DocuSign.
	PlanFeatureSets []FeatureSet `json:"planFeatureSets,omitempty"`
	// The DocuSign plan id for the account.
	PlanID string `json:"planId,omitempty"`
	// The name of the billing plan.
	PlanName string `json:"planName,omitempty"`
	//
	SeatDiscounts []SeatDiscount `json:"seatDiscounts,omitempty"`
	// The support incident fee charged for each support incident.
	SupportIncidentFee string `json:"supportIncidentFee,omitempty"`
	// The support plan fee charged for this plan.
	SupportPlanFee string `json:"supportPlanFee,omitempty"`
}

BillingPlan contains information about a billing plan.

type BillingPlanInformation

type BillingPlanInformation struct {
	//
	AppStoreReceipt *AppStoreReceipt `json:"appStoreReceipt,omitempty"`
	// The billing address for the account.
	BillingAddress *AccountAddress `json:"billingAddress,omitempty"`
	// A complex type that has information about the credit card used to pay for this account.
	CreditCardInformation *CreditCardInformation `json:"creditCardInformation,omitempty"`
	// Information about the bank that processes direct debits for the payment plan.
	DirectDebitProcessorInformation *DirectDebitProcessorInformation `json:"directDebitProcessorInformation,omitempty"`
	//
	DowngradeReason string `json:"downgradeReason,omitempty"`
	// When set to **true**, then customer support is provided as part of the account plan.
	EnableSupport DSBool `json:"enableSupport,omitempty"`
	// The number of seats (users) included.
	IncludedSeats string `json:"includedSeats,omitempty"`
	// Reserved for DocuSign.
	IncrementalSeats string `json:"incrementalSeats,omitempty"`
	// The payment method used for the billing plan. Valid values are:
	//
	// - `NotSupported`
	// - `CreditCard`
	// - `PurchaseOrder`
	// - `Premium`
	// - `Freemium`
	// - `FreeTrial`
	// - `AppStore`
	// - `DigitalExternal`
	// - `DirectDebit`
	PaymentMethod string `json:"paymentMethod,omitempty"`
	// Information about the entity that processes payments for the billing plan.
	PaymentProcessorInformation *PaymentProcessorInformation `json:"paymentProcessorInformation,omitempty"`
	// An object used to identify the features and attributes of the account being created.
	PlanInformation *PlanInformation `json:"planInformation,omitempty"`
	// A complex type that contains the following information for entering referral and discount information. The following items are included in the referral information (all string content): enableSupport, includedSeats, saleDiscountPercent, saleDiscountAmount, saleDiscountFixedAmount, saleDiscountPeriods, saleDiscountSeatPriceOverride, planStartMonth, referralCode, referrerName, advertisementId, publisherId, shopperId, promoCode, groupMemberId, idType, and industry
	//
	// ###### Note: saleDiscountPercent, saleDiscountAmount, saleDiscountFixedAmount, saleDiscountPeriods, and saleDiscountSeatPriceOverride are reserved for DoucSign use only.
	//
	ReferralInformation *ReferralInformation `json:"referralInformation,omitempty"`
	//
	RenewalStatus string `json:"renewalStatus,omitempty"`
	// Reserved for DocuSign use only.
	SaleDiscountAmount string `json:"saleDiscountAmount,omitempty"`
	// Reserved for DocuSign use only.
	SaleDiscountFixedAmount string `json:"saleDiscountFixedAmount,omitempty"`
	// Reserved for DocuSign use only.
	SaleDiscountPercent string `json:"saleDiscountPercent,omitempty"`
	// Reserved for DocuSign use only.
	SaleDiscountPeriods string `json:"saleDiscountPeriods,omitempty"`
	// Reserved for DocuSign use only.
	SaleDiscountSeatPriceOverride string `json:"saleDiscountSeatPriceOverride,omitempty"`
}

type BillingPlanPreview

type BillingPlanPreview struct {
	// Specifies the ISO currency code for the account.
	CurrencyCode string `json:"currencyCode,omitempty"`
	//
	Invoice *BillingInvoice `json:"invoice,omitempty"`
	//
	IsProrated string `json:"isProrated,omitempty"`
	//
	SubtotalAmount string `json:"subtotalAmount,omitempty"`
	//
	TaxAmount string `json:"taxAmount,omitempty"`
	//
	TotalAmount string `json:"totalAmount,omitempty"`
}

BillingPlanPreview contains information about a preview billing plan.

type BillingPlanResponse

type BillingPlanResponse struct {
	// An object that contains details about the billing plan.
	BillingPlan *BillingPlan `json:"billingPlan,omitempty"`
	//
	SuccessorPlans []BillingPlan `json:"successorPlans,omitempty"`
}

BillingPlanResponse defines a billing plan response object.

type BillingPlanUpdateResponse

type BillingPlanUpdateResponse struct {
	//
	AccountPaymentMethod string `json:"accountPaymentMethod,omitempty"`
	//
	BillingPlanPreview *BillingPlanPreview `json:"billingPlanPreview,omitempty"`
	// Specifies the ISO currency code for the account.
	CurrencyCode string `json:"currencyCode,omitempty"`
	// The number of seats (users) included.
	IncludedSeats string `json:"includedSeats,omitempty"`
	//
	PaymentCycle string `json:"paymentCycle,omitempty"`
	// The payment method used for the billing plan. Valid values are:
	//
	// - `NotSupported`
	// - `CreditCard`
	// - `PurchaseOrder`
	// - `Premium`
	// - `Freemium`
	// - `FreeTrial`
	// - `AppStore`
	// - `DigitalExternal`
	// - `DirectDebit`
	PaymentMethod string `json:"paymentMethod,omitempty"`
	// The DocuSign plan id for the account.
	PlanID string `json:"planId,omitempty"`
	// The name of the billing plan used for the account.
	PlanName string `json:"planName,omitempty"`
}

BillingPlanUpdateResponse defines a billing plan update response object.

type BillingPlansResponse

type BillingPlansResponse struct {
	// Reserved: TBD
	BillingPlans []BillingPlan `json:"billingPlans,omitempty"`
}

BillingPlansResponse defines a billing plans response object.

type BillingPrice

type BillingPrice struct {
	// Reserved: TBD
	BeginQuantity string `json:"beginQuantity,omitempty"`
	//
	EndQuantity string `json:"endQuantity,omitempty"`
	// Reserved: TBD
	UnitPrice string `json:"unitPrice,omitempty"`
}

type Brand

type Brand struct {
	// The name of the company associated with the brand.
	BrandCompany string `json:"brandCompany,omitempty"`
	// The id of the brand.
	BrandID string `json:"brandId,omitempty"`
	// An array of [ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2) country codes that specifies the languages that the brand supports.
	BrandLanguages []string `json:"brandLanguages,omitempty"`
	// The name of the brand.
	BrandName string `json:"brandName,omitempty"`
	// An array of name-value pairs specifying the colors that the brand uses for the following elements:
	//
	// - Button background
	// - Button text
	// - Header background
	// - Header text
	Colors []NameValue `json:"colors,omitempty"`
	// The  [ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2) country code of this brand's default language.
	DefaultBrandLanguage string `json:"defaultBrandLanguage,omitempty"`
	// Deprecated.
	EmailContent []BrandEmailContent `json:"emailContent,omitempty"`
	// This object describes errors that occur. It is only valid for responses and ignored in requests.
	ErrorDetails *ErrorDetails `json:"errorDetails,omitempty"`
	// When **true**, the `brandCompany` property is overriding the name of the company in the account settings.
	IsOverridingCompanyName DSBool `json:"isOverridingCompanyName,omitempty"`
	// When **true**, the sending brand is the default brand for sending new envelopes.
	IsSendingDefault DSBool `json:"isSendingDefault,omitempty"`
	// When **true**, the siging brand is the default brand for the signing experience.
	IsSigningDefault DSBool `json:"isSigningDefault,omitempty"`
	// An array of name/value pairs specifying the pages to which the user is redirected after the following events occur:
	//
	// - Signing Completed
	// - Viewed Exit
	// - Finish Later
	// - Decline
	// - Session Timeout
	// - Authentication Failure
	//
	// If you do not specify landing pages, the DocuSign default pages are used.
	LandingPages []NameValue `json:"landingPages,omitempty"`
	// An array of `brandLink` objects that contain information about the links that the brand uses.
	Links []BrandLink `json:"links,omitempty"`
	// The URIs for retrieving the logos that are associated with the brand.
	Logos *BrandLogos `json:"logos,omitempty"`
	// An object containing the URLs for the four DocuSign master resource files that the brand uses for sending, signing, email messages, and captive (embedded) signing. You can modify the default email messages and formats in these file to customize the user experience.
	//
	// **Note**: This object is returned only when the `resourceContentType` is `sending`, `signing`, `email`, or `signing_captive`.
	Resources *BrandResourceUrls `json:"resources,omitempty"`
}

Brand information about a brand that is associated with an account. A brand applies custom styles and text to an envelope.

type BrandEmailContent

type BrandEmailContent struct {
	// Deprecated.
	Content string `json:"content,omitempty"`
	// Deprecated.
	EmailContentType string `json:"emailContentType,omitempty"`
	// Deprecated.
	EmailToLink string `json:"emailToLink,omitempty"`
	// Deprecated.
	LinkText string `json:"linkText,omitempty"`
}

BrandEmailContent deprecated.

type BrandLink struct {
	// The text used for the link.
	LinkText string `json:"linkText,omitempty"`
	// The type of link. Valid values include:
	//
	// - `aboutDocusign`
	// - `closeButton`
	LinkType string `json:"linkType,omitempty"`
	// When **true**, the link displays to the recipient.
	ShowLink string `json:"showLink,omitempty"`
	// The URL or mailto address of the link.
	URLOrMailTo string `json:"urlOrMailTo,omitempty"`
}

BrandLink information about a link that a brand uses.

type BrandLogos

type BrandLogos struct {
	// The URI for the logo that the brand uses in the header of email messages.
	Email string `json:"email,omitempty"`
	// The URI for the brand's primary logo.
	Primary string `json:"primary,omitempty"`
	// The URI for the brand's secondary logo.
	Secondary string `json:"secondary,omitempty"`
}

BrandLogos information about the logos associated with the brand.

type BrandRequest

type BrandRequest struct {
	// The ID of the brand.
	BrandID string `json:"brandId,omitempty"`
}

type BrandResourceUrls

type BrandResourceUrls struct {
	// The URI for the email resource file that the brand uses.
	Email string `json:"email,omitempty"`
	// The URI for the sending resource file that the brand uses.
	Sending string `json:"sending,omitempty"`
	// The URI for the signing resource file that the brand uses.
	Signing string `json:"signing,omitempty"`
	// The URI for the captive (embedded) signing resource file that the brand uses.
	SigningCaptive string `json:"signingCaptive,omitempty"`
}

BrandResourceUrls brands use resource files to style the following experiences:

- Email - Sending - Signing - Captive (embedded) signing

You can modify these resource files to customize these experiences.

type BrandResources

type BrandResources struct {
	// The user id of the user who created the brand resource.
	CreatedByUserInfo *UserInfo `json:"createdByUserInfo,omitempty"`
	// The date and time that the brand resource was created.
	CreatedDate string `json:"createdDate,omitempty"`
	// Deprecated.
	DataNotSavedNotInMaster []string `json:"dataNotSavedNotInMaster,omitempty"`
	// Information about the user who last modified the brand resource.
	ModifiedByUserInfo *UserInfo `json:"modifiedByUserInfo,omitempty"`
	// Most recent date on which this user record was modified.
	ModifiedDate string `json:"modifiedDate,omitempty"`
	// This property is returned in the response to the [AccountBrands::listResources][listResources] request. It contains a list of any email templates that have been modified to differ from the master resource files.
	//
	// [listResources]: ./categories/Accounts/AccountBrands/listResources.html
	ModifiedTemplates []string `json:"modifiedTemplates,omitempty"`
	// The type of brand resource file. A brand uses a different resource file to control each of the following experiences:
	//
	// - Sending (`sending`)
	// - Signing (`signing`)
	// - Email messages (`email`)
	// - Captive (embedded) signing (`signing_captive`)
	//
	// You can modify the default email messages and formats in these files and upload them to your brand to customize the user experience.
	ResourcesContentType string `json:"resourcesContentType,omitempty"`
	// The URI for the brand resource file.
	ResourcesContentURI string `json:"resourcesContentUri,omitempty"`
}

BrandResources information about the resource files that the brand uses for the email, signing, sending, and captive (embedded) signing experiences.

type BrandResourcesList

type BrandResourcesList struct {
	// A list of resources that the brand uses.
	ResourcesContentTypes []BrandResources `json:"resourcesContentTypes,omitempty"`
}

type BrandsRequest

type BrandsRequest struct {
	// A list of brands.
	Brands []BrandRequest `json:"brands,omitempty"`
}

type BrandsResponse

type BrandsResponse struct {
	// A list of brands.
	Brands []Brand `json:"brands,omitempty"`
	// The brand that envelope recipients see when a brand is not explicitly set.
	RecipientBrandIDDefault string `json:"recipientBrandIdDefault,omitempty"`
	// The brand that envelope senders see when a brand is not explicitly set.
	SenderBrandIDDefault string `json:"senderBrandIdDefault,omitempty"`
}

BrandsResponse brand management for groups

type BulkEnvelope

type BulkEnvelope struct {
	// The row of the recipient in the CSV file used to create the bulk recipient list.
	BulkRecipientRow string `json:"bulkRecipientRow,omitempty"`
	// Indicates the status of the bulk send operation. Returned values can be:
	// - `queued`
	// - `processing`
	// - `sent`
	// - `failed`
	BulkStatus string `json:"bulkStatus,omitempty"`
	// The email address of the recipient assigned to this envelope transaction.
	Email string `json:"email,omitempty"`
	// GUID of the bulk envelope.
	EnvelopeID string `json:"envelopeId,omitempty"`
	// URI that you can use to retrieve the bulk envelopes.
	EnvelopeURI string `json:"envelopeUri,omitempty"`
	// This object describes errors that occur. It is only valid for responses and ignored in requests.
	ErrorDetails *ErrorDetails `json:"errorDetails,omitempty"`
	// The name of the recipient assigned to this envelope transaction.
	Name string `json:"name,omitempty"`
	// The date and time on which the bulk envelope was created.
	SubmittedDateTime *time.Time `json:"submittedDateTime,omitempty"`
	// Identifier for the envelope transaction. The ID is a sender-generated value and is valid in the DocuSign system for 7 days. We recommend that you use a transaction ID for offline signing to ensure that an envelope is not sent multiple times. You can use the transaction ID to determine an envelope's status (queued, processing, sent, or failed) in cases where the Internet connection is lost before envelope status is returned.
	TransactionID string `json:"transactionId,omitempty"`
}

type BulkEnvelopeStatus

type BulkEnvelopeStatus struct {
	// Identifier used to query the status of an individual bulk recipient batch.
	BatchID string `json:"batchId,omitempty"`
	// The total number of items in the batch being queried.
	BatchSize string `json:"batchSize,omitempty"`
	// A list of bulk envelope objects.
	BulkEnvelopes []BulkEnvelope `json:"bulkEnvelopes,omitempty"`
	// URI at which you can retrieve the batch envelopes.
	BulkEnvelopesBatchURI string `json:"bulkEnvelopesBatchUri,omitempty"`
	// The last position in the result set.
	EndPosition string `json:"endPosition,omitempty"`
	// The number of entries with a status of `failed`.
	Failed string `json:"failed,omitempty"`
	// 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 `json:"nextUri,omitempty"`
	// 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 `json:"previousUri,omitempty"`
	// The number of entries with a status of `queued`.
	Queued string `json:"queued,omitempty"`
	// The number of results returned in this response. Because you can filter which entries are included in the response, this value is always less than or equal to `totalSetSize`.
	ResultSetSize string `json:"resultSetSize,omitempty"`
	// The number of entries with a status of `sent`.
	Sent string `json:"sent,omitempty"`
	// The starting position of the current result set.
	StartPosition string `json:"startPosition,omitempty"`
	// The date on which the bulk envelope was created.
	SubmittedDate string `json:"submittedDate,omitempty"`
	// The total number of items in the search's result set. This value is always greater than or equal to the value of `resultSetSize`.
	TotalSetSize string `json:"totalSetSize,omitempty"`
}

type BulkEnvelopesResponse

type BulkEnvelopesResponse struct {
	// Reserved: TBD
	BulkEnvelopeStatuses []BulkEnvelopeStatus `json:"bulkEnvelopeStatuses,omitempty"`
	// The last position in the result set.
	EndPosition string `json:"endPosition,omitempty"`
	// 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 `json:"nextUri,omitempty"`
	// 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 `json:"previousUri,omitempty"`
	// The number of results returned in this response. Because you can filter which entries are included in the response, this value is always less than or equal to `totalSetSize`.
	ResultSetSize string `json:"resultSetSize,omitempty"`
	// The starting position of the current result set.
	StartPosition string `json:"startPosition,omitempty"`
	// The total number of items in the search's result set. This value is always greater than or equal to the value of `resultSetSize`.
	TotalSetSize string `json:"totalSetSize,omitempty"`
}

type BulkRecipient

type BulkRecipient struct {
	// If a value is provided, the recipient must enter the value as the access code to view and sign the envelope.
	//
	// Maximum Length: 50 characters and it must conform to the account's access code format setting.
	//
	// If blank, but the signer `accessCode` property is set in the envelope, then that value is used.
	//
	// If blank and the signer `accessCode` property is not set, then the access code is not required.
	AccessCode string `json:"accessCode,omitempty"`
	// Specifies the recipient's email address.
	//
	// Maximum length: 100 characters.
	Email string `json:"email,omitempty"`
	// Array or errors.
	ErrorDetails []ErrorDetails `json:"errorDetails,omitempty"`
	// Specifies the authentication check used for the signer. If blank then no authentication check is required for the signer. Only one value can be used in this field.
	//
	// The acceptable values are:
	//
	// * KBA: Enables the normal ID check authentication set up for your account.
	// * Phone: Enables phone authentication.
	// * SMS: Enables SMS authentication.
	Identification string `json:"identification,omitempty"`
	// Specifies the recipient's name.
	//
	// Maximum length: 50 characters.
	Name string `json:"name,omitempty"`
	// A note sent to the recipient in the signing email.
	// This note is unique to this recipient.
	// In the user interface,
	// it appears near the upper left corner
	// of the document
	// on the signing screen.
	//
	// Maximum Length: 1000 characters.
	//
	Note string `json:"note,omitempty"`
	// This is only used if the Identification field value is Phone or SMS. The value for this field can be a valid telephone number or, if Phone, usersupplied (SMS authentication cannot use a user supplied number). Parenthesis and dashes can be used in the telephone number.
	//
	// If `usersupplied` is used, the signer supplies his or her own telephone number.
	PhoneNumber string `json:"phoneNumber,omitempty"`
	//
	RecipientSignatureProviderInfo []BulkRecipientSignatureProvider `json:"recipientSignatureProviderInfo,omitempty"`
	//
	RowNumber string `json:"rowNumber,omitempty"`
	// 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.
	//
	// The information used in the bulk recipient file header must be the same as the `tabLabel` for the tab.
	//
	// The values entered in this column are automatically inserted into the corresponding tab for the recipient in the same row.
	//
	// Note 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 `json:"tabLabels,omitempty"`
}

type BulkRecipientSignatureProvider

type BulkRecipientSignatureProvider struct {
	//
	Name string `json:"name,omitempty"`
	// Specifies the value of the tab.
	Value string `json:"value,omitempty"`
}

type BulkRecipientTabLabel

type BulkRecipientTabLabel struct {
	//
	Name string `json:"name,omitempty"`
	// Specifies the value of the tab.
	Value string `json:"value,omitempty"`
}

type BulkRecipientsRequest

type BulkRecipientsRequest struct {
	// A complex type containing information about the bulk recipients in the request.
	BulkRecipients []BulkRecipient `json:"bulkRecipients,omitempty"`
}

type BulkRecipientsResponse

type BulkRecipientsResponse struct {
	// A complex type containing information about the bulk recipients in the response.
	BulkRecipients []BulkRecipient `json:"bulkRecipients,omitempty"`
	// The last position in the result set.
	EndPosition string `json:"endPosition,omitempty"`
	// 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 `json:"nextUri,omitempty"`
	// 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 `json:"previousUri,omitempty"`
	// The number of results returned in this response. Because you can filter which entries are included in the response, this value is always less than or equal to `totalSetSize`.
	ResultSetSize string `json:"resultSetSize,omitempty"`
	// The starting position of the current result set.
	StartPosition string `json:"startPosition,omitempty"`
	// The total number of items in the search's result set. This value is always greater than or equal to the value of `resultSetSize`.
	TotalSetSize string `json:"totalSetSize,omitempty"`
}

BulkRecipientsResponse template bulk recipients

type BulkRecipientsSummaryResponse

type BulkRecipientsSummaryResponse struct {
	// A complex type containing information about the bulk recipients in the response.
	BulkRecipients []BulkRecipient `json:"bulkRecipients,omitempty"`
	// The number of items returned in this response.
	BulkRecipientsCount string `json:"bulkRecipientsCount,omitempty"`
	// Contains a URI for an endpoint that allows you to easily retrieve bulk recipient information.
	BulkRecipientsURI string `json:"bulkRecipientsUri,omitempty"`
	// Array or errors.
	ErrorDetails []ErrorDetails `json:"errorDetails,omitempty"`
}

type BulkRecipientsUpdateResponse

type BulkRecipientsUpdateResponse struct {
	//
	Signer *Signer `json:"signer,omitempty"`
}

type CaptiveRecipient

type CaptiveRecipient struct {
	// Specifies whether the recipient is embedded or remote.
	//
	// If 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.
	//
	// Note: 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.
	//
	// Maximum length: 100 characters.
	ClientUserID string `json:"clientUserId,omitempty"`
	// Specifies the email address associated with the captive recipient.
	Email string `json:"email,omitempty"`
	// This object describes errors that occur. It is only valid for responses and ignored in requests.
	ErrorDetails *ErrorDetails `json:"errorDetails,omitempty"`
	// Specifies the user name associated with the captive recipient.
	UserName string `json:"userName,omitempty"`
}

type CaptiveRecipientInformation

type CaptiveRecipientInformation struct {
	// A complex type containing information about one or more captive recipients.
	CaptiveRecipients []CaptiveRecipient `json:"captiveRecipients,omitempty"`
}

type CarbonCopy

type CarbonCopy struct {
	// If a value is provided, the recipient must enter the value as the access code to view and sign the envelope.
	//
	// Maximum Length: 50 characters and it must conform to the account's access code format setting.
	//
	// If blank, but the signer `accessCode` property is set in the envelope, then that value is used.
	//
	// If blank and the signer `accessCode` property is not set, then the access code is not required.
	AccessCode string `json:"accessCode,omitempty"`
	// Metadata that indicates whether the `accessCode` property is editable.
	//
	AccessCodeMetadata *PropertyMetadata `json:"accessCodeMetadata,omitempty"`
	// 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 `json:"addAccessCodeToEmail,omitempty"`
	// Optional element. When set to true, the agents recipient associated with this recipient can change the recipient's pre-populated email address. This element is only active if enabled for the account.
	AgentCanEditEmail DSBool `json:"agentCanEditEmail,omitempty"`
	// Optional element. When set to **true**, the agents recipient associated with this recipient can change the recipient's pre-populated name. This element is only active if enabled for the account.
	AgentCanEditName DSBool `json:"agentCanEditName,omitempty"`
	// Not applicable for Carbon Copy recipients.
	ClientUserID string `json:"clientUserId,omitempty"`
	// Indicates the number of times that the recipient has been through a signing completion for the envelope.
	//
	// If this number is greater than 0 for a signing group, only the user who previously completed may sign again.
	CompletedCount string `json:"completedCount,omitempty"`
	// 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 `json:"customFields,omitempty"`
	// The date and time the recipient declined the document.
	DeclinedDateTime *time.Time `json:"declinedDateTime,omitempty"`
	// The reason the recipient declined the document.
	DeclinedReason string `json:"declinedReason,omitempty"`
	// The date and time that the envelope was delivered to the recipient.
	DeliveredDateTime *time.Time `json:"deliveredDateTime,omitempty"`
	// Reserved for DocuSign.
	DeliveryMethod string `json:"deliveryMethod,omitempty"`
	// Reserved for DocuSign.
	DeliveryMethodMetadata *PropertyMetadata `json:"deliveryMethodMetadata,omitempty"`
	// A list of documentVisibility objects, which define a recipient's read/write access to a document.
	DocumentVisibility []DocumentVisibility `json:"documentVisibility,omitempty"`
	// Email id of the recipient. Notification of the document to sign is sent to this email id.
	//
	// Maximum length: 100 characters.
	Email string `json:"email,omitempty"`
	// Metadata that indicates if the sender can edit the email id of the recipient.
	EmailMetadata *PropertyMetadata `json:"emailMetadata,omitempty"`
	// An optional complex type that sets a specific email subject and body for this recipient's notification email.
	//
	// **Note**: If you use this field to set a specific email notification for one recipient, you must also set the email notification for the other recipients. Using this field for one or more recipients negates the Envelope `Subject` and `EmailBlurb` property settings.
	EmailNotification *RecipientEmailNotification `json:"emailNotification,omitempty"`
	// Specifies a sender-provided valid URL string for redirecting an embedded recipient. When this option is used, the embedded recipient still receives an email from DocuSign, just as a remote recipient would. When the recipient clicks the document link in the email, the recipient is redirected through DocuSign to the specified URL to complete the required 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.
	//
	// If 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 launched by a partner.
	//
	// It is important to understand 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 processes for establishing the recipient's identity. In this workflow the recipient goes through the sending application before the embedded signing or viewing process is 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.
	//
	// If 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 for the recipient or envelope. The merge fields are enclosed in double brackets.
	//
	// *Example*:
	//
	// `http://senderHost/[[mergeField1]]/ beginSigningSession? [[mergeField2]]&[[mergeField3]]`
	EmbeddedRecipientStartURL string `json:"embeddedRecipientStartURL,omitempty"`
	// This object describes errors that occur. It is only valid for responses and ignored in requests.
	ErrorDetails *ErrorDetails `json:"errorDetails,omitempty"`
	// 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.
	//
	// When 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 DSBool `json:"excludedDocuments,omitempty"`
	// Reserved for DocuSign.
	FaxNumber string `json:"faxNumber,omitempty"`
	// Reserved for DocuSign.
	FaxNumberMetadata *PropertyMetadata `json:"faxNumberMetadata,omitempty"`
	// The recipient's first name. Maximum Length: 50 characters.
	FirstName string `json:"firstName,omitempty"`
	// Metadata that indicates if the sender can edit the recipient's first name.
	FirstNameMetadata *PropertyMetadata `json:"firstNameMetadata,omitempty"`
	// Reserved for DocuSign.
	FullName string `json:"fullName,omitempty"`
	// Reserved for DocuSign.
	FullNameMetadata *PropertyMetadata `json:"fullNameMetadata,omitempty"`
	// The name of the authentication check to use. This value must match one of the authentication types that the account uses. The names of these authentication types appear in the web console sending interface in the Identify list for a recipient. This setting overrides any default authentication setting.
	//
	// **Example**: Your account has ID Check and SMS Authentication available. 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 $. For SMS, you would use SMS Auth $, and you would also need to add a phone number to the smsAuthentication node.
	IDCheckConfigurationName string `json:"idCheckConfigurationName,omitempty"`
	// Metadata that indicates if the sender can edit the `idCheckConfigurationName` property.
	IDCheckConfigurationNameMetadata *PropertyMetadata `json:"idCheckConfigurationNameMetadata,omitempty"`
	// An object that contains input information related to a recipient ID check.
	IDCheckInformationInput *IDCheckInformationInput `json:"idCheckInformationInput,omitempty"`
	// 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 DSBool `json:"inheritEmailNotificationConfiguration,omitempty"`
	// The recipient's last name.
	LastName string `json:"lastName,omitempty"`
	// Metadata that indicates if the sender can edit the recipient's last name.
	LastNameMetadata *PropertyMetadata `json:"lastNameMetadata,omitempty"`
	// Reserved for DocuSign.
	LockedRecipientPhoneAuthEditable string `json:"lockedRecipientPhoneAuthEditable,omitempty"`
	// Reserved for DocuSign.
	LockedRecipientSmsEditable string `json:"lockedRecipientSmsEditable,omitempty"`
	// The full legal name of the recipient. Maximum Length: 100 characters.
	Name string `json:"name,omitempty"`
	// Metadata that indicates if the sender can edit the full legal name of the recipient.
	NameMetadata *PropertyMetadata `json:"nameMetadata,omitempty"`
	// A note sent to the recipient in the signing email.
	// This note is unique to this recipient.
	// In the user interface,
	// it appears near the upper left corner
	// of the document
	// on the signing screen.
	//
	// Maximum Length: 1000 characters.
	//
	Note string `json:"note,omitempty"`
	// Metadata indicating if the sender can edit the note sent to the recipient in the signing email.
	NoteMetadata *PropertyMetadata `json:"noteMetadata,omitempty"`
	// A complex type that contains the following elements:
	//
	// * `recipMayProvideNumber` - Boolean. When set to **true**, the recipient can use whatever phone number they choose.
	// * `senderProvidedNumbers` - ArrayOfString.  A list of phone numbers the recipient can use.
	// * `recordVoicePrint` - Reserved.
	// * `validateRecipProvidedNumber` - Reserved.
	PhoneAuthentication DSBool `json:"phoneAuthentication,omitempty"`
	// Reserved for DocuSign.
	RecipientAttachments []RecipientAttachment `json:"recipientAttachments,omitempty"`
	// Information about the recipient's authentication status.
	RecipientAuthenticationStatus *AuthenticationStatus `json:"recipientAuthenticationStatus,omitempty"`
	// Metadata about the features that are supported for the recipient type.
	RecipientFeatureMetadata []FeatureAvailableMetadata `json:"recipientFeatureMetadata,omitempty"`
	// A local reference that senders use to map recipients to other objects, such as specific document tabs. Within an envelope, each `recipientId` must be unique, but there is no uniqueness requirement across envelopes. For example, many envelopes assign the first recipient a `recipientId` of `1`.
	RecipientID string `json:"recipientId,omitempty"`
	// The globally-unique identifier (GUID) for a specific recipient on a specific envelope. If the same recipient is associated with multiple envelopes, they will have a different GUID for each one.
	RecipientIDGUID string `json:"recipientIdGuid,omitempty"`
	// The recipient type, as specified by the following values:
	// - `agents`: Agent recipients can add name and email information for recipients that appear after the agent in routing order.
	// - `carbonCopies`: Carbon copy recipients get a copy of the envelope but don't need to sign, initial, date, or add information to any of the documents. This type of recipient can be used in any routing order.
	// - `certifiedDeliveries`: Certified delivery recipients must receive the completed documents for the envelope to be completed. They don't need to sign, initial, date, or add information to any of the documents.
	// - `editors`: Editors have the same management and access rights for the envelope as the sender. Editors can add name and email information, add or change the routing order, set authentication options, and can edit signature/initial tabs and data fields for the remaining recipients.
	// - `inPersonSigners`: In-person recipients are DocuSign users who act as signing hosts in the same physical location as the signer.
	// - `intermediaries`: Intermediary recipients can optionally add name and email information for recipients at the same or subsequent level in the routing order.
	// - `seals`: Electronic seal recipients represent legal entities.
	// - `signers`: Signers are recipients who must sign, initial, date, or add data to form fields on the documents in the envelope.
	// - `witnesses`: Witnesses are recipients whose signatures affirm that the identified signers have signed the documents in the envelope.
	RecipientType string `json:"recipientType,omitempty"`
	// Metadata that indicates if the sender can edit the recipient type.
	RecipientTypeMetadata *PropertyMetadata `json:"recipientTypeMetadata,omitempty"`
	// 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 DSBool `json:"requireIdLookup,omitempty"`
	// Metadata that indicates whether the `requireIdLookup` property is editable.
	//
	RequireIDLookupMetadata *PropertyMetadata `json:"requireIdLookupMetadata,omitempty"`
	// Optional element. Specifies the role name associated with the recipient.<br/><br/>This is required when working with template recipients.
	RoleName string `json:"roleName,omitempty"`
	// Specifies the routing order of the recipient in the envelope.
	RoutingOrder string `json:"routingOrder,omitempty"`
	// Metadata that indicates if the sender can edit the routing order for the recipient.
	RoutingOrderMetadata *PropertyMetadata `json:"routingOrderMetadata,omitempty"`
	// The date and time the envelope was sent.
	SentDateTime *time.Time `json:"sentDateTime,omitempty"`
	// Reserved for DocuSign.
	SignedDateTime *time.Time `json:"signedDateTime,omitempty"`
	// The ID of the signing group of which the recipient is a member, if applicable.
	SigningGroupID string `json:"signingGroupId,omitempty"`
	// Metadata that indicates if the sender can edit the signing group id.
	SigningGroupIDMetadata *PropertyMetadata `json:"signingGroupIdMetadata,omitempty"`
	// The display name for the signing group.
	//
	// Maximum Length: 100 characters.
	SigningGroupName string `json:"signingGroupName,omitempty"`
	// A complex type that contains information about users in the signing group.
	SigningGroupUsers []UserInfo `json:"signingGroupUsers,omitempty"`
	// Contains the element senderProvidedNumbers which is an Array  of phone numbers the recipient can use for SMS text authentication.
	//
	SmsAuthentication *RecipientSMSAuthentication `json:"smsAuthentication,omitempty"`
	//  Lists the social ID type that can be used for recipient authentication.
	SocialAuthentications []SocialAuthentication `json:"socialAuthentications,omitempty"`
	// Recipient status.
	// <!-- todo -->
	//
	Status string `json:"status,omitempty"`
	// The code for recipient's status.
	StatusCode string `json:"statusCode,omitempty"`
	// A list of `commentTabs` that contains the carbon copy recipient's comments.
	Tabs *Tabs `json:"tabs,omitempty"`
	// When set to **true**, the sender cannot change any attributes of the recipient. Used only when working with template recipients.
	TemplateLocked DSBool `json:"templateLocked,omitempty"`
	// When set to **true**, the sender may not remove the recipient. Used only when working with template recipients.
	TemplateRequired DSBool `json:"templateRequired,omitempty"`
	// The total number of tabs in the documents.
	TotalTabCount string `json:"totalTabCount,omitempty"`
	// The ID of the user to access. Generally this is the ID of the current authenticated user, but if the authenticated user is an Administrator on the account, `userId` can represent another user whom the Administrator is accessing.
	//
	UserID string `json:"userId,omitempty"`
}

CarbonCopy is a carbon copy recipient.

type CertifiedDelivery

type CertifiedDelivery struct {
	// If a value is provided, the recipient must enter the value as the access code to view and sign the envelope.
	//
	// Maximum Length: 50 characters and it must conform to the account's access code format setting.
	//
	// If blank, but the signer `accessCode` property is set in the envelope, then that value is used.
	//
	// If blank and the signer `accessCode` property is not set, then the access code is not required.
	AccessCode string `json:"accessCode,omitempty"`
	// Metadata that indicates whether the `accessCode` property is editable.
	//
	AccessCodeMetadata *PropertyMetadata `json:"accessCodeMetadata,omitempty"`
	// 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 `json:"addAccessCodeToEmail,omitempty"`
	// Optional element. When set to true, the agents recipient associated with this recipient can change the recipient's pre-populated email address. This element is only active if enabled for the account.
	AgentCanEditEmail DSBool `json:"agentCanEditEmail,omitempty"`
	// Optional element. When set to **true**, the agents recipient associated with this recipient can change the recipient's pre-populated name. This element is only active if enabled for the account.
	AgentCanEditName DSBool `json:"agentCanEditName,omitempty"`
	// Specifies whether the recipient is embedded or remote.
	//
	// If 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.
	//
	// Note: 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.
	//
	// Maximum length: 100 characters.
	ClientUserID string `json:"clientUserId,omitempty"`
	// Indicates the number of times that the recipient has been through a signing completion for the envelope.
	//
	// If this number is greater than 0 for a signing group, only the user who previously completed may sign again.
	CompletedCount string `json:"completedCount,omitempty"`
	// 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 `json:"customFields,omitempty"`
	// The date and time the recipient declined the document.
	DeclinedDateTime *time.Time `json:"declinedDateTime,omitempty"`
	// The reason the recipient declined the document.
	DeclinedReason string `json:"declinedReason,omitempty"`
	// The date and time that the envelope was delivered to the recipient.
	DeliveredDateTime *time.Time `json:"deliveredDateTime,omitempty"`
	// Reserved for DocuSign.
	DeliveryMethod string `json:"deliveryMethod,omitempty"`
	// Reserved for DocuSign.
	DeliveryMethodMetadata *PropertyMetadata `json:"deliveryMethodMetadata,omitempty"`
	// A list of documentVisibility objects, which define a recipient's read/write access to a document.
	DocumentVisibility []DocumentVisibility `json:"documentVisibility,omitempty"`
	// The email id of the recipient.
	Email string `json:"email,omitempty"`
	// Metadata that indicates if the sender can edit the email address of the recipient.
	EmailMetadata *PropertyMetadata `json:"emailMetadata,omitempty"`
	// An optional complex type that sets a specific email subject and body for this recipient's notification email.
	//
	// **Note**: If you use this field to set a specific email notification for one recipient, you must also set the email notification for the other recipients. Using this field for one or more recipients negates the Envelope `Subject` and `EmailBlurb` property settings.
	EmailNotification *RecipientEmailNotification `json:"emailNotification,omitempty"`
	// Specifies a sender-provided valid URL string for redirecting an embedded recipient. When this option is used, the embedded recipient still receives an email from DocuSign, just as a remote recipient would. When the recipient clicks the document link in the email, the recipient is redirected through DocuSign to the specified URL to complete the required 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.
	//
	// If 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 launched by a partner.
	//
	// It is important to understand 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 processes for establishing the recipient's identity. In this workflow the recipient goes through the sending application before the embedded signing or viewing process is 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.
	//
	// If 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 for the recipient or envelope. The merge fields are enclosed in double brackets.
	//
	// *Example*:
	//
	// `http://senderHost/[[mergeField1]]/ beginSigningSession? [[mergeField2]]&[[mergeField3]]`
	EmbeddedRecipientStartURL string `json:"embeddedRecipientStartURL,omitempty"`
	// This object describes errors that occur. It is only valid for responses and ignored in requests.
	ErrorDetails *ErrorDetails `json:"errorDetails,omitempty"`
	// 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.
	//
	// When 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 DSBool `json:"excludedDocuments,omitempty"`
	// Reserved for DocuSign.
	FaxNumber string `json:"faxNumber,omitempty"`
	// Metadata that indicates whether the `faxNumber` property is editable.
	//
	FaxNumberMetadata *PropertyMetadata `json:"faxNumberMetadata,omitempty"`
	// The recipient's first name. Maximum Length: 50 characters.
	FirstName string `json:"firstName,omitempty"`
	// Metadata that indicates if the sender can edit the recipient's first name.
	FirstNameMetadata *PropertyMetadata `json:"firstNameMetadata,omitempty"`
	// Reserved for DocuSign.
	FullName string `json:"fullName,omitempty"`
	// Reserved for DocuSign.
	FullNameMetadata *PropertyMetadata `json:"fullNameMetadata,omitempty"`
	// The name of the authentication check to use. This value must match one of the authentication types that the account uses. The names of these authentication types appear in the web console sending interface in the Identify list for a recipient. This setting overrides any default authentication setting.
	//
	// **Example**: Your account has ID Check and SMS Authentication available. 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 $. For SMS, you would use SMS Auth $, and you would also need to add a phone number to the smsAuthentication node.
	IDCheckConfigurationName string `json:"idCheckConfigurationName,omitempty"`
	// Metadata that indicates if the sender can edit the `idCheckConfigurationName` property.
	IDCheckConfigurationNameMetadata *PropertyMetadata `json:"idCheckConfigurationNameMetadata,omitempty"`
	// An object that contains input information related to a recipient ID check.
	IDCheckInformationInput *IDCheckInformationInput `json:"idCheckInformationInput,omitempty"`
	// 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 DSBool `json:"inheritEmailNotificationConfiguration,omitempty"`
	// The last name of the recipient.
	LastName string `json:"lastName,omitempty"`
	// Metadata that indicates if the sender is able to edit the last name of the recipient.
	LastNameMetadata *PropertyMetadata `json:"lastNameMetadata,omitempty"`
	// Reserved for DocuSign.
	LockedRecipientPhoneAuthEditable string `json:"lockedRecipientPhoneAuthEditable,omitempty"`
	// Reserved for DocuSign.
	LockedRecipientSmsEditable string `json:"lockedRecipientSmsEditable,omitempty"`
	// The full legal name of the recipient.
	Name string `json:"name,omitempty"`
	// Metadata that indicates if the user can edit the full legal name of the recipient.
	NameMetadata *PropertyMetadata `json:"nameMetadata,omitempty"`
	// A note sent to the recipient in the signing email.
	// This note is unique to this recipient.
	// In the user interface,
	// it appears near the upper left corner
	// of the document
	// on the signing screen.
	//
	// Maximum Length: 1000 characters.
	//
	Note string `json:"note,omitempty"`
	// Metadata that indicates if the sender can edit the note sent to the recipient in the signing email.
	NoteMetadata *PropertyMetadata `json:"noteMetadata,omitempty"`
	// A complex type that contains the following elements:
	//
	// * `recipMayProvideNumber` - Boolean. When set to **true**, the recipient can use whatever phone number they choose.
	// * `senderProvidedNumbers` - ArrayOfString.  A list of phone numbers the recipient can use.
	// * `recordVoicePrint` - Reserved.
	// * `validateRecipProvidedNumber` - Reserved.
	PhoneAuthentication DSBool `json:"phoneAuthentication,omitempty"`
	// Reserved for DocuSign.
	RecipientAttachments []RecipientAttachment `json:"recipientAttachments,omitempty"`
	// Information about the recipient's authentication status.
	RecipientAuthenticationStatus *AuthenticationStatus `json:"recipientAuthenticationStatus,omitempty"`
	// Metadata about the features that are supported for the recipient type.
	RecipientFeatureMetadata []FeatureAvailableMetadata `json:"recipientFeatureMetadata,omitempty"`
	// Unique for the recipient. It is used by the tab element to indicate which recipient is to sign the Document.
	RecipientID string `json:"recipientId,omitempty"`
	// The globally-unique identifier (GUID) for a specific recipient on a specific envelope. If the same recipient is associated with multiple envelopes, they will have a different GUID for each one.
	RecipientIDGUID string `json:"recipientIdGuid,omitempty"`
	// The recipient type, as specified by the following values:
	// - `agents`: Agent recipients can add name and email information for recipients that appear after the agent in routing order.
	// - `carbonCopies`: Carbon copy recipients get a copy of the envelope but don't need to sign, initial, date, or add information to any of the documents. This type of recipient can be used in any routing order.
	// - `certifiedDeliveries`: Certified delivery recipients must receive the completed documents for the envelope to be completed. They don't need to sign, initial, date, or add information to any of the documents.
	// - `editors`: Editors have the same management and access rights for the envelope as the sender. Editors can add name and email information, add or change the routing order, set authentication options, and can edit signature/initial tabs and data fields for the remaining recipients.
	// - `inPersonSigners`: In-person recipients are DocuSign users who act as signing hosts in the same physical location as the signer.
	// - `intermediaries`: Intermediary recipients can optionally add name and email information for recipients at the same or subsequent level in the routing order.
	// - `seals`: Electronic seal recipients represent legal entities.
	// - `signers`: Signers are recipients who must sign, initial, date, or add data to form fields on the documents in the envelope.
	// - `witnesses`: Witnesses are recipients whose signatures affirm that the identified signers have signed the documents in the envelope.
	RecipientType string `json:"recipientType,omitempty"`
	// Metadata that indicates if the sender can edit the recipient type.
	RecipientTypeMetadata *PropertyMetadata `json:"recipientTypeMetadata,omitempty"`
	// 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 DSBool `json:"requireIdLookup,omitempty"`
	// Metadata that indicates whether the `requireIdLookup` property is editable.
	//
	RequireIDLookupMetadata *PropertyMetadata `json:"requireIdLookupMetadata,omitempty"`
	// Optional element. Specifies the role name associated with the recipient.<br/><br/>This is required when working with template recipients.
	RoleName string `json:"roleName,omitempty"`
	// Specifies the routing order of the recipient in the envelope.
	RoutingOrder string `json:"routingOrder,omitempty"`
	// Metadata that indicates if the sender can edit the routing order for the recipient.
	RoutingOrderMetadata *PropertyMetadata `json:"routingOrderMetadata,omitempty"`
	// The date and time the envelope was sent.
	SentDateTime *time.Time `json:"sentDateTime,omitempty"`
	// Reserved for DocuSign.
	SignedDateTime *time.Time `json:"signedDateTime,omitempty"`
	// The id of the signing group of which the recipient is a member, if applicable.
	SigningGroupID string `json:"signingGroupId,omitempty"`
	// Metadata that indicates if the sender can edit the signing group id.
	SigningGroupIDMetadata *PropertyMetadata `json:"signingGroupIdMetadata,omitempty"`
	// The display name for the signing group.
	//
	// Maximum Length: 100 characters.
	SigningGroupName string `json:"signingGroupName,omitempty"`
	// A complex type that contains information about users in the signing group.
	SigningGroupUsers []UserInfo `json:"signingGroupUsers,omitempty"`
	// Contains the element senderProvidedNumbers which is an Array  of phone numbers the recipient can use for SMS text authentication.
	//
	SmsAuthentication *RecipientSMSAuthentication `json:"smsAuthentication,omitempty"`
	//  Lists the social ID type that can be used for recipient authentication.
	SocialAuthentications []SocialAuthentication `json:"socialAuthentications,omitempty"`
	// Recipient status.
	// <!-- todo -->
	//
	Status string `json:"status,omitempty"`
	// Reserved for DocuSign.
	StatusCode string `json:"statusCode,omitempty"`
	// When set to **true**, the sender cannot change any attributes of the recipient. Used only when working with template recipients.
	TemplateLocked DSBool `json:"templateLocked,omitempty"`
	// When set to **true**, the sender may not remove the recipient. Used only when working with template recipients.
	TemplateRequired DSBool `json:"templateRequired,omitempty"`
	// The total number of tabs in the documents.
	TotalTabCount string `json:"totalTabCount,omitempty"`
	// The ID of the user to access. Generally this is the ID of the current authenticated user, but if the authenticated user is an Administrator on the account, `userId` can represent another user whom the Administrator is accessing.
	//
	UserID string `json:"userId,omitempty"`
}

type Checkbox

type Checkbox struct {
	TabBase
	TabGuidedForm
	TabPosition
	TabStyle
	// The height of the tab in pixels.
	Height string `json:"height,omitempty"`
	// Metadata that indicates whether the `height` property is editable.
	HeightMetadata *PropertyMetadata `json:"heightMetadata,omitempty"`
	// When set to **true**, the signer cannot change the data of the custom tab.
	Locked DSBool `json:"locked,omitempty"`
	// Metadata that indicates whether the `locked` property is editable.
	LockedMetadata *PropertyMetadata `json:"lockedMetadata,omitempty"`
	// Optional element for field markup. When set to **true**, the signer is required to initial when they modify a shared field.
	RequireInitialOnSharedChange DSBool `json:"requireInitialOnSharedChange,omitempty"`
	// Metadata that indicates whether the `requireInitialOnSharedChange` property is editable.
	RequireInitialOnSharedChangeMetadata *PropertyMetadata `json:"requireInitialOnSharedChangeMetadata,omitempty"`
	// This property does not apply to `checkbox` tabs. Check boxes are always optional.
	Required TabRequired `json:"required,omitempty"`
	// Metadata that indicates whether the `required` property is editable.
	RequiredMetadata *PropertyMetadata `json:"requiredMetadata,omitempty"`
	// When **true**, the checkbox is selected.
	Selected DSBool `json:"selected,omitempty"`
	// Metadata that indicates whether the `selected` property is editable.
	SelectedMetadata *PropertyMetadata `json:"selectedMetadata,omitempty"`
	// When **true**, this tab is shared.
	Shared DSBool `json:"shared,omitempty"`
	// Metadata that indicates whether the `shared` property is editable.
	//
	SharedMetadata *PropertyMetadata `json:"sharedMetadata,omitempty"`
	// Metadata that indicates whether the `toolTip` property is editable.
	ToolTipMetadata *PropertyMetadata `json:"toolTipMetadata,omitempty"`
	// The text of a tooltip that appears when a user hovers over a form field or tab.
	Tooltip string `json:"tooltip,omitempty"`
	// The width of the tab in pixels.
	Width string `json:"width,omitempty"`
	// Metadata that indicates whether the `width` property is editable.
	WidthMetadata *PropertyMetadata `json:"widthMetadata,omitempty"`
}

Checkbox is a tab that allows the recipient to select a yes/no (on/off) option.

type ChunkedUploadPart

type ChunkedUploadPart struct {
	// The order of the part in the chunked upload.
	Sequence string `json:"sequence,omitempty"`
	// The size of the part in bytes.
	//
	// We recommend that a chunked upload part is no larger than a few MB in size.
	Size string `json:"size,omitempty"`
}

ChunkedUploadPart is an object that contains information about the chunked upload part.

type ChunkedUploadRequest

type ChunkedUploadRequest struct {
	// The id of the chunked upload.
	//
	// **Note**: This property is ignored in requests, and overridden with an auto-generated value in responses.
	ChunkedUploadID string `json:"chunkedUploadId,omitempty"`
	// A Base64-encoded representation of the content hat is used to upload the file.
	//
	// Maximum size: 50 MB. However, data is also subject to REST API limits regarding request sizes, and Internet Information Systems (IIS) might place further constraints on file size.
	Data []byte `json:"data,omitempty"`
}

ChunkedUploadRequest this is the request object for uploading a chunked upload.

type ChunkedUploadResponse

type ChunkedUploadResponse struct {
	// A 64-byte, Secure Hash Algorithm 256 (SHA256) checksum that the caller computes across the entirety of the original content that has been uploaded to the chunked upload. DocuSign compares this value to its own computation. If the two values are not equal, the original content and received content are not the same and the commit action is refused.
	Checksum string `json:"checksum,omitempty"`
	// The id of the chunked upload.
	ChunkedUploadID string `json:"chunkedUploadId,omitempty"`
	// A list of the parts that compose the chunked upload, including their byte sizes. The list must be contiguous before you can commit the chunked upload.
	ChunkedUploadParts []ChunkedUploadPart `json:"chunkedUploadParts,omitempty"`
	// The URI that you use to reference the chunked upload in other API requests, such as envelope document and envelope attachment requests.
	ChunkedUploadURI string `json:"chunkedUploadUri,omitempty"`
	// When **true**, the chunked upload has been committed. A committed chunked upload can no longer receive any additional parts and is ready for use within other API requests.
	Committed string `json:"committed,omitempty"`
	// The UTC time at which the chunked upload expires and is no longer addressable.
	ExpirationDateTime *time.Time `json:"expirationDateTime,omitempty"`
	// The maximum number of parts allowed for a chunked upload. This value is configurable per DocuSign environment, account, or integrator. The default value is 128. The maximum possible value is 256.
	MaxChunkedUploadParts string `json:"maxChunkedUploadParts,omitempty"`
	// The maximum total size allowed for a chunked upload. This value is configured per DocuSign environment, account, or integrator. The default value is 50 MB.
	MaxTotalSize string `json:"maxTotalSize,omitempty"`
	// The total size of the parts of the chunked upload.
	//
	// **Note**: When a chunked upload is used as an envelope document, it is subject to the PDF size limit (25 MB) and page count limit that apply to all envelope documents.
	TotalSize string `json:"totalSize,omitempty"`
}

ChunkedUploadResponse this response object is returned after you upload a chunked upload.

type CloudStorageProvider

type CloudStorageProvider struct {
	// The authentication URL used for the cloud storage provider. This information is only included in the response if the user has not passed authentication for the cloud storage provider. If the redirectUrl query string is provided, the returnUrl is appended to the authenticationUrl.
	AuthenticationURL string `json:"authenticationUrl,omitempty"`
	// This object describes errors that occur. It is only valid for responses and ignored in requests.
	ErrorDetails *ErrorDetails `json:"errorDetails,omitempty"`
	// The URL the user is redirected to after the cloud storage provider authenticates the user. Using this will append the redirectUrl to the authenticationUrl.
	//
	// The redirectUrl is restricted to URLs in the docusign.com or docusign.net domains.
	RedirectURL string `json:"redirectUrl,omitempty"`
	// The service name for the cloud storage provider.
	Service string `json:"service,omitempty"`
	// The DocuSign generated ID for the cloud storage provider
	ServiceID string `json:"serviceId,omitempty"`
}

type CloudStorageProviders

type CloudStorageProviders struct {
	// An Array containing the storage providers associated with the user.
	StorageProviders []CloudStorageProvider `json:"storageProviders,omitempty"`
}

CloudStorageProviders cloud storage providers

type Comment

type Comment struct {
	// The Guid of the envelope the comment thread belongs to.
	EnvelopeID string `json:"envelopeId,omitempty"`
	// Reserved for DocuSign.
	Hmac string `json:"hmac,omitempty"`
	// The unique identifier for the comment.
	ID string `json:"id,omitempty"`
	// An array of userIds that are mentioned directly in the body of a comment.
	Mentions []string `json:"mentions,omitempty"`
	// When **true**, indicates that the comment was read.
	Read bool `json:"read,omitempty"`
	// The email address of the user who created the comment.
	SentByEmail string `json:"sentByEmail,omitempty"`
	// The full name of the user who created the comment.
	SentByFullName string `json:"sentByFullName,omitempty"`
	// Reserved for DocuSign.
	SentByImageID string `json:"sentByImageId,omitempty"`
	// The initials of the user who created the comment.
	SentByInitials string `json:"sentByInitials,omitempty"`
	// The recipient id of the user who created the comment.
	SentByRecipientID string `json:"sentByRecipientId,omitempty"`
	// The user id of the user who created the comment.
	SentByUserID string `json:"sentByUserId,omitempty"`
	// The id of the signing group that can view the comment or that created the comment.
	SigningGroupID string `json:"signingGroupId,omitempty"`
	// The display name for the signing group.
	//
	// Maximum Length: 100 characters.
	SigningGroupName string `json:"signingGroupName,omitempty"`
	// The subject of the envelope.
	Subject string `json:"subject,omitempty"`
	// The unique identifier for the tab that represents the comment thread.
	TabID string `json:"tabId,omitempty"`
	// The content of the comment, as UTF-8 text.
	//
	// Maximum Length: 500 characters.
	//
	// **Note**: The maximum size allowed for the entire message body is 32 KB.
	Text string `json:"text,omitempty"`
	// The unique identifier for the comment thread.
	ThreadID string `json:"threadId,omitempty"`
	// The userId of the user who created the thread.
	ThreadOriginatorID string `json:"threadOriginatorId,omitempty"`
	// The time the comment was created, formatted according to the format of the user who created the comment.
	TimeStampFormatted string `json:"timeStampFormatted,omitempty"`
	// The time the comment was created.
	Timestamp string `json:"timestamp,omitempty"`
	// The user ids of the users that the comment is visible to.
	VisibleTo []string `json:"visibleTo,omitempty"`
}

type CommentHistoryResult

type CommentHistoryResult struct {
	// An array of comment tabs that contain information about users' comments on documents.
	Comments []Comment `json:"comments,omitempty"`
	// The maximum number of results to return.
	Count int32 `json:"count,omitempty"`
	//
	EndTimetoken string `json:"endTimetoken,omitempty"`
	//
	StartTimetoken string `json:"startTimetoken,omitempty"`
}

type CommentPublish

type CommentPublish struct {
	// A unique ID for the Salesforce object.
	ID string `json:"id,omitempty"`
	// An array of userIds that are mentioned directly in the body of a comment.
	Mentions []string `json:"mentions,omitempty"`
	// Specifies the text that is shown in the dropdown list.
	Text string `json:"text,omitempty"`
	//
	ThreadAnchorKeys map[string]string `json:"threadAnchorKeys,omitempty"`
	// The unique identifier for the comment thread.
	ThreadID string `json:"threadId,omitempty"`
	//
	VisibleTo []string `json:"visibleTo,omitempty"`
}

type CommentThread

type CommentThread struct {
	TabBase
	TabGuidedForm
	TabPosition
	// When set to **true**, the information in the tab is bold.
	Bold string `json:"bold,omitempty"`
	// Metadata that indicates whether the `bold` property is editable.
	BoldMetadata *PropertyMetadata `json:"boldMetadata,omitempty"`
	// An array of comment tabs that contain information about users' comments on documents.
	Comments []Comment `json:"comments,omitempty"`
	// The font to be used for the tab value. Supported fonts include:
	//
	// - Default
	// - Arial
	// - ArialNarrow
	// - Calibri
	// - CourierNew
	// - Garamond
	// - Georgia
	// - Helvetica
	// - LucidaConsole
	// - MSGothic
	// - MSMincho
	// - OCR-A
	// - Tahoma
	// - TimesNewRoman
	// - Trebuchet
	// - Verdana
	//
	Font string `json:"font,omitempty"`
	// The font color to use for the information in the tab. Possible values are:
	//
	// - Black
	// - BrightBlue
	// - BrightRed
	// - DarkGreen
	// - DarkRed
	// - Gold
	// - Green
	// - NavyBlue
	// - Purple
	// - White
	//
	FontColor string `json:"fontColor,omitempty"`
	// Metadata that indicates whether the `fontColor` property is editable.
	FontColorMetadata *PropertyMetadata `json:"fontColorMetadata,omitempty"`
	// Metadata that indicates whether the `font` property is editable.
	FontMetadata *PropertyMetadata `json:"fontMetadata,omitempty"`
	// The font size used for the information in the tab. Possible values are:
	//
	// - Size7
	// - Size8
	// - Size9
	// - Size10
	// - Size11
	// - Size12
	// - Size14
	// - Size16
	// - Size18
	// - Size20
	// - Size22
	// - Size24
	// - Size26
	// - Size28
	// - Size36
	// - Size48
	// - Size72
	FontSize string `json:"fontSize,omitempty"`
	// Metadata that indicates whether the `fontSize` property is editable.
	FontSizeMetadata *PropertyMetadata `json:"fontSizeMetadata,omitempty"`
	// The height of the tab in pixels.
	Height string `json:"height,omitempty"`
	// Metadata that indicates whether the `height` property is editable.
	HeightMetadata *PropertyMetadata `json:"heightMetadata,omitempty"`
	// When set to **true**, the information in the tab is italic.
	Italic string `json:"italic,omitempty"`
	// Metadata that indicates whether the `italic` property is editable.
	ItalicMetadata *PropertyMetadata `json:"italicMetadata,omitempty"`
	// Reserved for DocuSign.
	LocalePolicy *LocalePolicyTab `json:"localePolicy,omitempty"`
	// The unique identifier for the comment thread.
	ThreadID string `json:"threadId,omitempty"`
	// Metadata that indicates whether the `toolTip` property is editable.
	ToolTipMetadata *PropertyMetadata `json:"toolTipMetadata,omitempty"`
	// The text of a tooltip that appears when a user hovers over a form field or tab.
	Tooltip string `json:"tooltip,omitempty"`
	// When set to **true**, the information in the tab is underlined.
	Underline string `json:"underline,omitempty"`
	// Metadata that indicates whether the `underline` property is editable.
	UnderlineMetadata *PropertyMetadata `json:"underlineMetadata,omitempty"`
	// The width of the tab in pixels.
	Width string `json:"width,omitempty"`
	// Metadata that indicates whether the `width` property is editable.
	WidthMetadata *PropertyMetadata `json:"widthMetadata,omitempty"`
}

type CommentsPublish

type CommentsPublish struct {
	//
	CommentsToPublish []CommentPublish `json:"commentsToPublish,omitempty"`
}

type Company

type Company struct {
	TabBase
	TabGuidedForm
	TabPosition
	TabStyle
	TabValue
	// 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.
	//
	// When an envelope is completed the information is available to the sender through the Form Data link in the DocuSign Console.
	//
	// This setting applies only to text boxes and does not affect list boxes, radio buttons, or check boxes.
	ConcealValueOnDocument DSBool `json:"concealValueOnDocument,omitempty"`
	// Metadata that indicates whether the `concealValueOnDocument` property is editable.
	ConcealValueOnDocumentMetadata *PropertyMetadata `json:"concealValueOnDocumentMetadata,omitempty"`
	// 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 DSBool `json:"disableAutoSize,omitempty"`
	// Metadata that indicates whether the `disableAutoSize` property is editable.
	DisableAutoSizeMetadata *PropertyMetadata `json:"disableAutoSizeMetadata,omitempty"`
	// The height of the tab in pixels.
	Height string `json:"height,omitempty"`
	// Metadata that indicates whether the `height` property is editable.
	HeightMetadata *PropertyMetadata `json:"heightMetadata,omitempty"`
	// Reserved for DocuSign.
	LocalePolicy *LocalePolicyTab `json:"localePolicy,omitempty"`
	// When set to **true**, the signer cannot change the data of the custom tab.
	Locked DSBool `json:"locked,omitempty"`
	// Metadata that indicates whether the `locked` property is editable.
	LockedMetadata *PropertyMetadata `json:"lockedMetadata,omitempty"`
	// An optional value that describes the maximum length of the property when the property is a string.
	MaxLength string `json:"maxLength,omitempty"`
	// Metadata that indicates whether the `maxLength` property is editable.
	MaxLengthMetadata *PropertyMetadata `json:"maxLengthMetadata,omitempty"`
	// The initial value of the tab when it was sent to the recipient.
	OriginalValue string `json:"originalValue,omitempty"`
	// Metadata that indicates whether the `originalValue` property is editable.
	OriginalValueMetadata *PropertyMetadata `json:"originalValueMetadata,omitempty"`
	// When set to **true**, the signer is required to fill out this tab.
	Required TabRequired `json:"required,omitempty"`
	// Metadata that indicates whether the `required` property is editable.
	RequiredMetadata *PropertyMetadata `json:"requiredMetadata,omitempty"`
	// Metadata that indicates whether the `toolTip` property is editable.
	ToolTipMetadata *PropertyMetadata `json:"toolTipMetadata,omitempty"`
	// The text of a tooltip that appears when a user hovers over a form field or tab.
	Tooltip string `json:"tooltip,omitempty"`
	// The width of the tab in pixels.
	Width string `json:"width,omitempty"`
	// Metadata that indicates whether the `width` property is editable.
	WidthMetadata *PropertyMetadata `json:"widthMetadata,omitempty"`
}

Company is a tab that displays the recipient's company name.

type CompleteSignHashResponse

type CompleteSignHashResponse struct {
	// Complex element contains the details on the documents in the envelope.
	Documents []SignHashDocument `json:"documents,omitempty"`
	//
	RedirectionURL string `json:"redirectionUrl,omitempty"`
	//
	RemainingSignatureRequests string `json:"remainingSignatureRequests,omitempty"`
}

type CompleteSignRequest

type CompleteSignRequest struct {
	// When set to **false**, the envelope signing certificate is removed from the download.
	Certificate string `json:"certificate,omitempty"`
	//
	CorrelationID string `json:"correlationId,omitempty"`
	//
	DocumentUpdateInfos []DocumentUpdateInfo `json:"documentUpdateInfos,omitempty"`
	//
	MaxSignatureLength string `json:"maxSignatureLength,omitempty"`
	// 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 `json:"signingLocation,omitempty"`
	// Specifies the Transaction ID from the AppStore.
	TransactionID string `json:"transactionId,omitempty"`
}

type CompositeTemplate

type CompositeTemplate struct {
	// 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 `json:"compositeTemplateId,omitempty"`
	//
	Document *Document `json:"document,omitempty"`
	//  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 `json:"inlineTemplates,omitempty"`
	//
	PdfMetaDataTemplateSequence string `json:"pdfMetaDataTemplateSequence,omitempty"`
	// 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 `json:"serverTemplates,omitempty"`
}

type ConnectConfigResults

type ConnectConfigResults struct {
	// Array of Connect Configurations
	Configurations []ConnectCustomConfiguration `json:"configurations,omitempty"`
	// The count of records in the log list.
	TotalRecords string `json:"totalRecords,omitempty"`
}

type ConnectCustomConfiguration

type ConnectCustomConfiguration struct {
	// When set to **true**, the tracked envelope and recipient events for all users, including users that are added a later time, are sent through Connect.
	AllUsers DSBool `json:"allUsers,omitempty"`
	// When set to **true**, data is sent to the urlToPublishTo web address. This option can be set to false to stop sending data while maintaining the Connect configuration information.
	AllowEnvelopePublish DSBool `json:"allowEnvelopePublish,omitempty"`
	//
	AllowSalesforcePublish string `json:"allowSalesforcePublish,omitempty"`
	// If merge fields are being used, specifies the type of the merge field. The only  supported value is **salesforce**.
	ConfigurationType string `json:"configurationType,omitempty"`
	//  Read only: the DocuSign generated ID for the Connect configuration.
	ConnectID string `json:"connectId,omitempty"`
	// This turns Connect logging on or off. When set to **true**, logging is turned on.
	EnableLog DSBool `json:"enableLog,omitempty"`
	// An array of strings that lists envelope-related events that are tracked through Connect. The possible event values are:
	//
	// - `sent`
	// - `delivered`
	// - `completed`
	// - `declined`
	// - `voided`
	//
	//
	// **Note**: In previous versions of the API, this value was a single comma-separated string.
	EnvelopeEvents []string `json:"envelopeEvents,omitempty"`
	//
	ExternalFolderID string `json:"externalFolderId,omitempty"`
	//
	ExternalFolderLabel string `json:"externalFolderLabel,omitempty"`
	//
	IncludeCertSoapHeader string `json:"includeCertSoapHeader,omitempty"`
	// When set to **true**, the Connect Service includes the Certificate of Completion with completed envelopes.
	IncludeCertificateOfCompletion DSBool `json:"includeCertificateOfCompletion,omitempty"`
	// When set to **true**, the Document Fields associated with the envelope's documents are included in the notification messages. Document Fields are optional custom name-value pairs added to documents using the API.
	IncludeDocumentFields DSBool `json:"includeDocumentFields,omitempty"`
	// When set to **true**, Connect will send the PDF document along with the update XML.
	IncludeDocuments DSBool `json:"includeDocuments,omitempty"`
	// When set to **true**, Connect will include the voidedReason for voided envelopes.
	IncludeEnvelopeVoidReason DSBool `json:"includeEnvelopeVoidReason,omitempty"`
	//
	IncludeHMAC string `json:"includeHMAC,omitempty"`
	// When set to **true**, Connect will include the sender account as Custom Field in the data.
	IncludeSenderAccountasCustomField DSBool `json:"includeSenderAccountasCustomField,omitempty"`
	// When set to **true**, Connect will include the envelope time zone information.
	IncludeTimeZoneInformation DSBool `json:"includeTimeZoneInformation,omitempty"`
	// The name of the Connect configuration. The name helps identify the configuration in the list.
	Name string `json:"name,omitempty"`
	// The user's encrypted password hash.
	Password string `json:"password,omitempty"`
	// An array of strings that lists of recipient-related events that trigger a notification
	// to your webhook Connect listener. The possible event values are:
	//
	// - `sent`
	// - `delivered`
	// - `completed`
	// - `declined`
	// - `authenticationfailed`
	// - `autoresponded`
	//
	// **Note**: In previous versions of the API, this value was a single comma-separated string.
	RecipientEvents []string `json:"recipientEvents,omitempty"`
	// If **true** [Mutual TLS](https://developers.docusign.com/esign-rest-api/guides/mutual-tls-intro) authentication is enabled.
	RequireMutualTLS string `json:"requireMutualTls,omitempty"`
	// #### When set to **true**, and SIM mode is activated:
	//
	// If the HTTP Status response to a notification message is not in the range of 200-299,
	// then the message delivery failed, and the configuration is marked as down.
	//
	// The message will be queued and retried once per day.
	// While a Connect configuration is marked down, subsequent notifications will not be tried, they'll be immediately queued with reason "Pending".
	// Once a message succeeds, all queued messages for the configuration will be tried immediately, in order.
	//
	// There is a maximum of ten retries. Alternately, you can use Republish Connect Information to manually republish the notification.
	//
	// #### When set to **true**, and SIM mode is not activated:
	//
	// If the HTTP Status response to a notification message is not in the range of 200-299,  then the message delivery failed, and the message is queued.
	//
	// The message will be retried after at least a day the next time a subsequent message is successfully sent to this configuration (subscription).  Subsequent notifications will be tried when they occur.
	// There is a maximum of ten retries. Alternately, you can use Republish Connect Information to manually republish the notification.
	RequiresAcknowledgement DSBool `json:"requiresAcknowledgement,omitempty"`
	// The access token to use for Salesforce integration.
	SalesforceAccessToken string `json:"salesforceAccessToken,omitempty"`
	// The version of the Salesforce API that you are using.
	SalesforceAPIVersion string `json:"salesforceApiVersion,omitempty"`
	//
	SalesforceDocumentsAsContentFiles string `json:"salesforceDocumentsAsContentFiles,omitempty"`
	//
	SalesforceRefreshToken string `json:"salesforceRefreshToken,omitempty"`
	//
	SenderOverride string `json:"senderOverride,omitempty"`
	//
	SenderSelectableItems []string `json:"senderSelectableItems,omitempty"`
	//
	SfObjects []ConnectSalesforceObject `json:"sfObjects,omitempty"`
	// When set to **true**, Mutual TLS will be enabled for notifications. Mutual TLS must be initiated by the listener (the customer's web server) during the TLS handshake protocol.
	SignMessageWithX509Certificate DSBool `json:"signMessageWithX509Certificate,omitempty"`
	// The namespace of the SOAP interface.
	//
	// The namespace value must be set if useSoapInterface is set to true.
	SoapNamespace string `json:"soapNamespace,omitempty"`
	// The endpoint to which webhook notification messages are sent via an HTTPS POST request. The url must start with https. The customer's web server must use an SSL/TLS certificate whose CA is in the Microsoft list of trusted CAs. Self-signed certificates are not ok. Free certificates from Let's Encrypt can be used.
	URLToPublishTo string `json:"urlToPublishTo,omitempty"`
	// When set to **true**, indicates that the `urlToPublishTo` property contains a SOAP endpoint.
	UseSoapInterface DSBool `json:"useSoapInterface,omitempty"`
	// A comma separated list of userIds. This sets the users associated with the tracked envelope and recipient events. When a tracked event occurs for a set user, the a notification message is sent to your Connect listener.
	//
	// ###### Note: If allUsers is set to `false` then you must provide a list of user ids.
	UserIds []string `json:"userIds,omitempty"`
	// The name of the user.
	UserName string `json:"userName,omitempty"`
}

ConnectCustomConfiguration connect configurations

type ConnectDebugLog

type ConnectDebugLog struct {
	// Name of the Connect configuration.
	ConnectConfig string `json:"connectConfig,omitempty"`
	// This object describes errors that occur. It is only valid for responses and ignored in requests.
	ErrorDetails *ErrorDetails `json:"errorDetails,omitempty"`
	// Date and time of the event.
	EventDateTime *time.Time `json:"eventDateTime,omitempty"`
	// Description of the event.
	EventDescription string `json:"eventDescription,omitempty"`
	// Log output.
	Payload string `json:"payload,omitempty"`
}

type ConnectFailureFilter

type ConnectFailureFilter struct {
	//
	EnvelopeIds []string `json:"envelopeIds,omitempty"`
	//
	Synchronous string `json:"synchronous,omitempty"`
}

type ConnectFailureResult

type ConnectFailureResult struct {
	// Reserved for DocuSign.
	ConfigID string `json:"configId,omitempty"`
	// Reserved for DocuSign.
	//
	ConfigURL string `json:"configUrl,omitempty"`
	// The envelope ID of the envelope status that failed to post.
	EnvelopeID string `json:"envelopeId,omitempty"`
	// Connection status.
	Status string `json:"status,omitempty"`
	// Connection status message.
	StatusMessage string `json:"statusMessage,omitempty"`
}

type ConnectFailureResults

type ConnectFailureResults struct {
	//
	RetryQueue []ConnectFailureResult `json:"retryQueue,omitempty"`
}

type ConnectLog

type ConnectLog struct {
	// The external account number (int) or account ID GUID.
	AccountID string `json:"accountId,omitempty"`
	// Web address of the listener or retrieving service endpoint for Connect.
	ConfigURL string `json:"configUrl,omitempty"`
	// A complex element containing information about the Connect configuration, error details, date/time, description and payload.
	// This information is included in the response only when the `additional_info` query is set to **true**.
	// This additional information is only available when retrieving general logs with [ConnectEvents:get](https://developers.docusign.com/esign-rest-api/reference/Connect/ConnectEvents/get); not when retrieving failure logs with [ConnectEvents:listFailures](https://developers.docusign.com/esign-rest-api/reference/Connect/ConnectEvents/listFailures).
	ConnectDebugLog []ConnectDebugLog `json:"connectDebugLog,omitempty"`
	// Identifier for the Connect configuration that failed. If an account has multiple Connect configurations, this value is used to look up the Connect configuration for the failed post.
	ConnectID string `json:"connectId,omitempty"`
	// Date and time the Connect post was created.
	Created *time.Time `json:"created,omitempty"`
	// Email address of the envelope sender.
	Email string `json:"email,omitempty"`
	// ID of the envelope that failed to post.
	EnvelopeID string `json:"envelopeId,omitempty"`
	// Server error for the Connect post failure.
	Error string `json:"error,omitempty"`
	// ID of the Connect post failure.
	FailureID string `json:"failureId,omitempty"`
	// URI for the Connect post failure.
	FailureURI string `json:"failureUri,omitempty"`
	// Date and time of the last attempt to post.
	LastTry string `json:"lastTry,omitempty"`
	// ID of the Connect log entry.
	LogID string `json:"logId,omitempty"`
	// URI for the Connect log entry.
	LogURI string `json:"logUri,omitempty"`
	// The number of times the Connect post has been retried.
	RetryCount string `json:"retryCount,omitempty"`
	// URI that can be used to retry to publish the Connect post.
	RetryURI string `json:"retryUri,omitempty"`
	// Envelope status for the Connect post:
	// - `Any`
	// - `Voided`
	// - `Created`
	// - `Deleted`
	// - `Sent`
	// - `Delivered`
	// - `Signed`
	// - `Completed`
	// - `Declined`
	// - `TimedOut`
	// - `Template`
	// - `Processing`
	Status string `json:"status,omitempty"`
	// The envelope subject.
	Subject string `json:"subject,omitempty"`
	// The name of the envelope sender.
	UserName string `json:"userName,omitempty"`
}

type ConnectLogs

type ConnectLogs struct {
	// A list of Connect failure logs.
	Failures []ConnectLog `json:"failures,omitempty"`
	// A list of Connect general logs.
	Logs []ConnectLog `json:"logs,omitempty"`
	// The count of records in the log list.
	TotalRecords string `json:"totalRecords,omitempty"`
	// Type of user:
	// - `type_owner`
	// - `type_participant`
	Type string `json:"type,omitempty"`
}

ConnectLogs connect event logging information. This object contains sections for regular Connect logs and for Connect failures.

type ConnectSalesforceField

type ConnectSalesforceField struct {
	//
	DsAttribute string `json:"dsAttribute,omitempty"`
	//
	DsLink string `json:"dsLink,omitempty"`
	//
	DsNode string `json:"dsNode,omitempty"`
	// A unique ID for the Salesforce object.
	ID string `json:"id,omitempty"`
	//
	SfField string `json:"sfField,omitempty"`
	//
	SfFieldName string `json:"sfFieldName,omitempty"`
	//
	SfFolder string `json:"sfFolder,omitempty"`
	//
	SfLockedValue string `json:"sfLockedValue,omitempty"`
}

type ConnectSalesforceObject

type ConnectSalesforceObject struct {
	//
	Active string `json:"active,omitempty"`
	// A sender-defined description of the line item.
	//
	Description string `json:"description,omitempty"`
	// A unique ID for the Salesforce object.
	ID string `json:"id,omitempty"`
	//
	Insert string `json:"insert,omitempty"`
	//
	OnCompleteOnly string `json:"onCompleteOnly,omitempty"`
	//
	SelectFields []ConnectSalesforceField `json:"selectFields,omitempty"`
	//
	SfObject string `json:"sfObject,omitempty"`
	// The name of the Salesforce object.
	SfObjectName string `json:"sfObjectName,omitempty"`
	//
	UpdateFields []ConnectSalesforceField `json:"updateFields,omitempty"`
}

type ConnectUserObject

type ConnectUserObject struct {
	// The type of custom Connect configuration being accessed.
	Configurationtype string `json:"configurationtype,omitempty"`
	// The ID of the custom Connect configuration being accessed.
	ConnectID string `json:"connectId,omitempty"`
	// Boolean value that indicates whether the custom Connect configuration is enabled or not.
	Enabled string `json:"enabled,omitempty"`
	//
	HasAccess string `json:"hasAccess,omitempty"`
	//
	SenderSearchableItems []string `json:"senderSearchableItems,omitempty"`
}

type ConsoleViewRequest

type ConsoleViewRequest struct {
	// The envelope ID of the envelope status that failed to post.
	EnvelopeID string `json:"envelopeId,omitempty"`
	// The URL to be redirected to after the console view session has ended.
	ReturnURL string `json:"returnUrl,omitempty"`
}

type ConsumerDisclosure

type ConsumerDisclosure struct {
	// A GUID identifying the account associated with the consumer disclosure
	AccountEsignID string `json:"accountEsignId,omitempty"`
	// Indicates whether the customer can withdraw their acceptance of the consumer disclosure.
	AllowCDWithdraw DSBool `json:"allowCDWithdraw,omitempty"`
	// Metadata that indicates whether the `allowCDWithdraw` property is editable.
	//
	AllowCDWithdrawMetadata *SettingsMetadata `json:"allowCDWithdrawMetadata,omitempty"`
	//
	ChangeEmail string `json:"changeEmail,omitempty"`
	//
	ChangeEmailOther string `json:"changeEmailOther,omitempty"`
	// The name of the company associated with the consumer disclosure.
	CompanyName string `json:"companyName,omitempty"`
	// The phone number of the company associated with the consumer disclosure.
	CompanyPhone string `json:"companyPhone,omitempty"`
	//
	CopyCostPerPage string `json:"copyCostPerPage,omitempty"`
	// Specifies the fee collection method for cases in which the customer requires paper copies of the document.
	//
	// Maximum Length: 255 characters
	CopyFeeCollectionMethod string `json:"copyFeeCollectionMethod,omitempty"`
	//
	CopyRequestEmail string `json:"copyRequestEmail,omitempty"`
	//
	Custom string `json:"custom,omitempty"`
	//
	EnableEsign string `json:"enableEsign,omitempty"`
	// The Electronic Record and Signature Disclosure text. The disclosure text includes the html formatting.
	EsignAgreement string `json:"esignAgreement,omitempty"`
	//
	EsignText string `json:"esignText,omitempty"`
	//
	LanguageCode string `json:"languageCode,omitempty"`
	//
	MustAgreeToEsign string `json:"mustAgreeToEsign,omitempty"`
	// **Deprecated**
	//
	// The `��pdfId` property in the consumer_disclosure PUT request is deprecated. For security reasons going forward, any value provided in the request packet must be ignored.
	PdfID string `json:"pdfId,omitempty"`
	//
	UseBrand string `json:"useBrand,omitempty"`
	// Boolean that specifies whether recipients in the same account as the sender must agree to eSign an Electronic Record and Signature Disclosure Statement.
	UseConsumerDisclosureWithinAccount DSBool `json:"useConsumerDisclosureWithinAccount,omitempty"`
	// Metadata that indicates whether the `useConsumerDisclosureWithinAccount` property is editable.
	//
	UseConsumerDisclosureWithinAccountMetadata *SettingsMetadata `json:"useConsumerDisclosureWithinAccountMetadata,omitempty"`
	// Contains the first address line of the postal address to which a customer can send a consent withdrawal notification.
	//
	// Maximum length: 100 characters.
	WithdrawAddressLine1 string `json:"withdrawAddressLine1,omitempty"`
	// Contains the second address line of the postal address to which a customer can send a consent withdrawal notification.
	//
	// Maximum length: 100 characters.
	WithdrawAddressLine2 string `json:"withdrawAddressLine2,omitempty"`
	// Indicates whether the customer can withdraw consent by email.
	WithdrawByEmail DSBool `json:"withdrawByEmail,omitempty"`
	// Indicates whether the customer can withdraw consent by postal mail.
	WithdrawByMail DSBool `json:"withdrawByMail,omitempty"`
	// Indicates whether the customer can withdraw consent by phone.
	WithdrawByPhone DSBool `json:"withdrawByPhone,omitempty"`
	// Contains the city of the postal address to which a customer can send a consent withdrawal notification.
	//
	// Maximum length: 50 characters.
	WithdrawCity string `json:"withdrawCity,omitempty"`
	// Indicates the consequences of withdrawing consent.
	WithdrawConsequences string `json:"withdrawConsequences,omitempty"`
	// Contains the email address to which a customer can send a consent withdrawal notification.
	//
	// Maximum length: 100 characters.
	WithdrawEmail string `json:"withdrawEmail,omitempty"`
	// Indicates other information need to withdraw consent.
	//
	// Maximum length: 255 characters.
	WithdrawOther string `json:"withdrawOther,omitempty"`
	// Contains the phone number which a customer can call to register consent withdrawal notification.
	//
	// Maximum length: 20 characters.
	WithdrawPhone string `json:"withdrawPhone,omitempty"`
	// Contains the postal code of the postal address to which a customer can send a consent withdrawal notification.
	//
	// Maximum length: 20 characters.
	WithdrawPostalCode string `json:"withdrawPostalCode,omitempty"`
	// Contains the state of the postal address to which a customer can send a consent withdrawal notification.
	WithdrawState string `json:"withdrawState,omitempty"`
}

ConsumerDisclosure account consumer disclosures

type Contact

type Contact struct {
	//
	CloudProvider string `json:"cloudProvider,omitempty"`
	//
	CloudProviderContainerID string `json:"cloudProviderContainerId,omitempty"`
	// The unique identifier of a person in the contacts address book.
	ContactID string `json:"contactId,omitempty"`
	//
	ContactPhoneNumbers []ContactPhoneNumber `json:"contactPhoneNumbers,omitempty"`
	//
	ContactURI string `json:"contactUri,omitempty"`
	//
	Emails []string `json:"emails,omitempty"`
	// This object describes errors that occur. It is only valid for responses and ignored in requests.
	ErrorDetails *ErrorDetails `json:"errorDetails,omitempty"`
	//
	IsOwner bool `json:"isOwner,omitempty"`
	//
	Name string `json:"name,omitempty"`
	//
	Organization string `json:"organization,omitempty"`
	// When **true**, the tab is shared.
	Shared DSBool `json:"shared,omitempty"`
	//
	SigningGroup string `json:"signingGroup,omitempty"`
	// The display name for the signing group.
	//
	// Maximum Length: 100 characters.
	SigningGroupName string `json:"signingGroupName,omitempty"`
}

type ContactGetResponse

type ContactGetResponse struct {
	//
	Contacts []Contact `json:"contacts,omitempty"`
	// The last position in the result set.
	EndPosition string `json:"endPosition,omitempty"`
	// 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 `json:"nextUri,omitempty"`
	// 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 `json:"previousUri,omitempty"`
	// The number of results returned in this response. Because you can filter which entries are included in the response, this value is always less than or equal to `totalSetSize`.
	ResultSetSize string `json:"resultSetSize,omitempty"`
	// The starting position of the current result set.
	StartPosition string `json:"startPosition,omitempty"`
	// The total number of items in the search's result set. This value is always greater than or equal to the value of `resultSetSize`.
	TotalSetSize string `json:"totalSetSize,omitempty"`
}

type ContactModRequest

type ContactModRequest struct {
	//
	ContactList []Contact `json:"contactList,omitempty"`
}

type ContactPhoneNumber

type ContactPhoneNumber struct {
	//
	PhoneNumber string `json:"phoneNumber,omitempty"`
	//
	PhoneType string `json:"phoneType,omitempty"`
}

type ContactUpdateResponse

type ContactUpdateResponse struct {
	//
	Contacts []Contact `json:"contacts,omitempty"`
}

type CorrectViewRequest

type CorrectViewRequest struct {
	// The url used after correct/send view session has ended. DocuSign redirects to the url and includes an event parameter that can be used by your app. The event parameters returned are:
	//
	// * send (user corrected and sent the envelope)
	// * save (user saved the envelope)
	// * cancel (user canceled the transaction.)
	// * error (there was an error when performing the correct or send)
	// * sessionEnd (the session ended before the user completed a different action)
	//
	// ###### Note: Include https:// in the URL or the redirect might not succeed on some browsers.
	ReturnURL string `json:"returnUrl,omitempty"`
	// Specifies whether the window is displayed with or without dressing.
	SuppressNavigation string `json:"suppressNavigation,omitempty"`
}

type Country

type Country struct {
	//
	IsoCode string `json:"isoCode,omitempty"`
	//
	Name string `json:"name,omitempty"`
	//
	ProvinceValidated string `json:"provinceValidated,omitempty"`
	//
	Provinces []Province `json:"provinces,omitempty"`
}

type Credential

type Credential struct {
	// If a value is provided, the recipient must enter the value as the access code to view and sign the envelope.
	//
	// Maximum Length: 50 characters and it must conform to the account's access code format setting.
	//
	// If blank, but the signer `accessCode` property is set in the envelope, then that value is used.
	//
	// If blank and the signer `accessCode` property is not set, then the access code is not required.
	AccessCode string `json:"accessCode,omitempty"`
	// Type of user:
	// - `type_owner`
	// - `type_participant`
	Type string `json:"type,omitempty"`
	// Specifies the value of the tab.
	Value string `json:"value,omitempty"`
}

type CreditCardInformation

type CreditCardInformation struct {
	// A complex element containing the credit card billing address information.
	Address *AddressInformation `json:"address,omitempty"`
	// The credit card number.
	CardNumber string `json:"cardNumber,omitempty"`
	// The type of credit card. Valid values are:
	//
	// - `visa`
	// - `mastercard`
	// - `amex`
	CardType string `json:"cardType,omitempty"`
	// The 3 or 4-digit card verification value (CVV) number associated with the credit card. CVV numbers are also referred to as card security codes (CSCs).
	CvNumber string `json:"cvNumber,omitempty"`
	// The month that the credit card expires, expressed as a number from 1 to 12.
	ExpirationMonth string `json:"expirationMonth,omitempty"`
	// The year in which the credit card expires, in 4-digit format.
	ExpirationYear string `json:"expirationYear,omitempty"`
	// The exact name as it appears on the credit card.
	NameOnCard string `json:"nameOnCard,omitempty"`
}

CreditCardInformation this object contains information about a credit card that is associated with an account.

type CreditCardTypes

type CreditCardTypes struct {
	// An array containing supported credit card types.
	CardTypes []string `json:"cardTypes,omitempty"`
}

type CurrencyFeatureSetPrice

type CurrencyFeatureSetPrice struct {
	// Reserved for DocuSign.
	CurrencyCode string `json:"currencyCode,omitempty"`
	// Reserved for DocuSign.
	CurrencySymbol string `json:"currencySymbol,omitempty"`
	// Reserved for DocuSign.
	EnvelopeFee DSBool `json:"envelopeFee,omitempty"`
	// Reserved for DocuSign.
	FixedFee DSBool `json:"fixedFee,omitempty"`
	// Reserved for DocuSign.
	SeatFee DSBool `json:"seatFee,omitempty"`
}

CurrencyFeatureSetPrice information about the price and currency associated with the feature set. Reserved for internal DocuSign use only.

type CurrencyPlanPrice

type CurrencyPlanPrice struct {
	// Specifies the ISO currency code for the account.
	CurrencyCode string `json:"currencyCode,omitempty"`
	// Specifies the currency symbol for the account.
	CurrencySymbol string `json:"currencySymbol,omitempty"`
	//
	PerSeatPrice string `json:"perSeatPrice,omitempty"`
	// The support incident fee charged for each support incident.
	SupportIncidentFee string `json:"supportIncidentFee,omitempty"`
	// The support plan fee charged for this plan.
	SupportPlanFee string `json:"supportPlanFee,omitempty"`
	// A simple type enumeration of the language used. 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).
	SupportedCardTypes *CreditCardTypes `json:"supportedCardTypes,omitempty"`
}

type CustomField

type CustomField struct {
	//
	CustomFieldType string `json:"customFieldType,omitempty"`
	// This object describes errors that occur. It is only valid for responses and ignored in requests.
	ErrorDetails *ErrorDetails `json:"errorDetails,omitempty"`
	// An ID used to specify a custom field.
	FieldID string `json:"fieldId,omitempty"`
	// An array of strings that represent the items in a list.
	ListItems []string `json:"listItems,omitempty"`
	//
	Name string `json:"name,omitempty"`
	// When set to **true**, the signer is required to fill out this tab.
	Required TabRequired `json:"required,omitempty"`
	// A boolean indicating if the value should be displayed.  If this value is set to **true**, the custom field is displayed at the top of the certificate of completion. If this value is left blank/ or set to **false**, then it does not appear in the certificate of completion.
	Show DSBool `json:"show,omitempty"`
	// Specifies the value of the tab.
	Value string `json:"value,omitempty"`
}

type CustomFields

type CustomFields struct {
	// An array of list custom fields.
	ListCustomFields []ListCustomField `json:"listCustomFields,omitempty"`
	// An array of text custom fields.
	TextCustomFields []TextCustomField `json:"textCustomFields,omitempty"`
}

CustomFields envelope custom fields

type CustomFieldsEnvelope

type CustomFieldsEnvelope struct {
	// An array of list custom fields.
	ListCustomFields []ListCustomField `json:"listCustomFields,omitempty"`
	// An array of text custom fields.
	TextCustomFields []TextCustomField `json:"textCustomFields,omitempty"`
}

type CustomSettingsInformation

type CustomSettingsInformation struct {
	// The name/value pair information for the user custom setting.
	CustomSettings []NameValue `json:"customSettings,omitempty"`
}

CustomSettingsInformation users' custom settings

type DSBool

type DSBool bool

DSBool is used to fix problem of capitalized and quoted booleans in json returned from DocuSign. Unmarshals "True" and "true" as true, any other value returns false

func (DSBool) MarshalJSON

func (d DSBool) MarshalJSON() ([]byte, error)

MarshalJSON encodes DSBool as string

func (*DSBool) UnmarshalJSON

func (d *DSBool) UnmarshalJSON(b []byte) error

UnmarshalJSON checks for "True" or "true"

type Date

type Date struct {
	TabBase
	TabGuidedForm
	TabPosition
	TabStyle
	TabValue
	// 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.
	//
	// When an envelope is completed the information is available to the sender through the Form Data link in the DocuSign Console.
	//
	// This setting applies only to text boxes and does not affect list boxes, radio buttons, or check boxes.
	ConcealValueOnDocument DSBool `json:"concealValueOnDocument,omitempty"`
	// Metadata that indicates whether the `concealValueOnDocument` property is editable.
	ConcealValueOnDocumentMetadata *PropertyMetadata `json:"concealValueOnDocumentMetadata,omitempty"`
	// 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 DSBool `json:"disableAutoSize,omitempty"`
	// Metadata that indicates whether the `disableAutoSize` property is editable.
	DisableAutoSizeMetadata *PropertyMetadata `json:"disableAutoSizeMetadata,omitempty"`
	// The height of the tab in pixels.
	Height string `json:"height,omitempty"`
	// Metadata that indicates whether the `height` property is editable.
	HeightMetadata *PropertyMetadata `json:"heightMetadata,omitempty"`
	// Reserved for DocuSign.
	LocalePolicy *LocalePolicyTab `json:"localePolicy,omitempty"`
	// When set to **true**, the signer cannot change the data of the custom tab.
	Locked DSBool `json:"locked,omitempty"`
	// Metadata that indicates whether the `locked` property is editable.
	LockedMetadata *PropertyMetadata `json:"lockedMetadata,omitempty"`
	// An optional value that describes the maximum length of the property when the property is a string.
	MaxLength string `json:"maxLength,omitempty"`
	// Metadata that indicates whether the `maxLength` property is editable.
	MaxLengthMetadata *PropertyMetadata `json:"maxLengthMetadata,omitempty"`
	// The initial value of the tab when it was sent to the recipient.
	OriginalValue string `json:"originalValue,omitempty"`
	// Metadata that indicates whether the `originalValue` property is editable.
	OriginalValueMetadata *PropertyMetadata `json:"originalValueMetadata,omitempty"`
	// When set to **true** and shared is true, information must be entered in this field to complete the envelope.
	RequireAll DSBool `json:"requireAll,omitempty"`
	// Metadata that indicates whether the `requireAll` property is editable.
	RequireAllMetadata *PropertyMetadata `json:"requireAllMetadata,omitempty"`
	// Optional element for field markup. When set to **true**, the signer is required to initial when they modify a shared field.
	RequireInitialOnSharedChange DSBool `json:"requireInitialOnSharedChange,omitempty"`
	// Metadata that indicates whether the `requireInitialOnSharedChange` property is editable.
	RequireInitialOnSharedChangeMetadata *PropertyMetadata `json:"requireInitialOnSharedChangeMetadata,omitempty"`
	// When set to **true**, the signer is required to fill out this tab.
	Required TabRequired `json:"required,omitempty"`
	// Metadata that indicates whether the `required` property is editable.
	RequiredMetadata *PropertyMetadata `json:"requiredMetadata,omitempty"`
	// When set to **true**, the sender must populate the tab before an envelope can be sent using the template.
	//
	// This value tab can only be changed by modifying (PUT) the template.
	//
	// Tabs with a `senderRequired` value of true cannot be deleted from an envelope.
	SenderRequired DSBool `json:"senderRequired,omitempty"`
	// Metadata that indicates whether the `senderRequired` property is editable.
	SenderRequiredMetadata *PropertyMetadata `json:"senderRequiredMetadata,omitempty"`
	// When set to **true**, this custom tab is shared.
	Shared DSBool `json:"shared,omitempty"`
	// Metadata that indicates whether the `shared` property is editable.
	SharedMetadata *PropertyMetadata `json:"sharedMetadata,omitempty"`
	// Metadata that indicates whether the `toolTip` property is editable.
	ToolTipMetadata *PropertyMetadata `json:"toolTipMetadata,omitempty"`
	// The text of a tooltip that appears when a user hovers over a form field or tab.
	Tooltip string `json:"tooltip,omitempty"`
	// The message displayed if the custom tab fails input validation (either custom of embedded).
	ValidationMessage string `json:"validationMessage,omitempty"`
	// Metadata that indicates whether the `validationMessage` property is editable.
	ValidationMessageMetadata *PropertyMetadata `json:"validationMessageMetadata,omitempty"`
	// A regular expression used to validate input for the tab.
	ValidationPattern string `json:"validationPattern,omitempty"`
	// Metadata that indicates whether the `validationPattern` property is editable.
	ValidationPatternMetadata *PropertyMetadata `json:"validationPatternMetadata,omitempty"`
	// The width of the tab in pixels.
	Width string `json:"width,omitempty"`
	// Metadata that indicates whether the `width` property is editable.
	WidthMetadata *PropertyMetadata `json:"widthMetadata,omitempty"`
}

Date is a tab that allows the recipient to enter a date. Date tabs are one-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. If you need a particular date format enforced, DocuSign recommends using a Text tab with a validation pattern and a validation message to enforce the format.

type DateSigned

type DateSigned struct {
	TabBase
	TabGuidedForm
	TabPosition
	TabStyle
	TabValue
	// The height of the tab in pixels.
	Height string `json:"height,omitempty"`
	// Metadata that indicates whether the `height` property is editable.
	HeightMetadata *PropertyMetadata `json:"heightMetadata,omitempty"`
	// Reserved for DocuSign.
	LocalePolicy *LocalePolicyTab `json:"localePolicy,omitempty"`
	// Metadata that indicates whether the `toolTip` property is editable.
	ToolTipMetadata *PropertyMetadata `json:"toolTipMetadata,omitempty"`
	// The text of a tooltip that appears when a user hovers over a form field or tab.
	Tooltip string `json:"tooltip,omitempty"`
	// The width of the tab in pixels.
	Width string `json:"width,omitempty"`
	// Metadata that indicates whether the `width` property is editable.
	WidthMetadata *PropertyMetadata `json:"widthMetadata,omitempty"`
}

DateSigned is a tab that displays the date that the recipient signed the document.

type DateStampProperties

type DateStampProperties struct {
	// The height of the rectangle.
	DateAreaHeight string `json:"dateAreaHeight,omitempty"`
	// The width of the rectangle.
	DateAreaWidth string `json:"dateAreaWidth,omitempty"`
	// The X axis position of the top-left corner.
	DateAreaX string `json:"dateAreaX,omitempty"`
	// The Y axis position of the top-left corner.
	DateAreaY string `json:"dateAreaY,omitempty"`
}

DateStampProperties specifies the area in which a date stamp is placed. This parameter uses pixel positioning to draw a rectangle at the center of the stamp area. The stamp is superimposed on top of this central area.

This property contains the following information about the central rectangle:

- `DateAreaX`: The X axis position of the top-left corner. - `DateAreaY`: The Y axis position of the top-left corner. - `DateAreaWidth`: The width of the rectangle. - `DateAreaHeight`: The height of the rectangle.

type Decline

type Decline struct {
	TabBase
	TabGuidedForm
	TabPosition
	// When set to **true**, the information in the tab is bold.
	Bold string `json:"bold,omitempty"`
	// Metadata that indicates whether the `bold` property is editable.
	BoldMetadata *PropertyMetadata `json:"boldMetadata,omitempty"`
	//  Specifies the decline text displayed in the tab.
	ButtonText string `json:"buttonText,omitempty"`
	// Metadata that indicates whether the `buttonText` property is editable.
	ButtonTextMetadata *PropertyMetadata `json:"buttonTextMetadata,omitempty"`
	// The reason the recipient declined the document.
	DeclineReason string `json:"declineReason,omitempty"`
	// Metadata that indicates whether the `declineReason` property is editable.
	DeclineReasonMetadata *PropertyMetadata `json:"declineReasonMetadata,omitempty"`
	// The font to be used for the tab value. Supported fonts include:
	//
	// - Default
	// - Arial
	// - ArialNarrow
	// - Calibri
	// - CourierNew
	// - Garamond
	// - Georgia
	// - Helvetica
	// - LucidaConsole
	// - MSGothic
	// - MSMincho
	// - OCR-A
	// - Tahoma
	// - TimesNewRoman
	// - Trebuchet
	// - Verdana
	//
	Font string `json:"font,omitempty"`
	// The font color to use for the information in the tab. Possible values are:
	//
	// - Black
	// - BrightBlue
	// - BrightRed
	// - DarkGreen
	// - DarkRed
	// - Gold
	// - Green
	// - NavyBlue
	// - Purple
	// - White
	//
	FontColor string `json:"fontColor,omitempty"`
	// Metadata that indicates whether the `fontColor` property is editable.
	FontColorMetadata *PropertyMetadata `json:"fontColorMetadata,omitempty"`
	// Metadata that indicates whether the `font` property is editable.
	FontMetadata *PropertyMetadata `json:"fontMetadata,omitempty"`
	// The font size used for the information in the tab. Possible values are:
	//
	// - Size7
	// - Size8
	// - Size9
	// - Size10
	// - Size11
	// - Size12
	// - Size14
	// - Size16
	// - Size18
	// - Size20
	// - Size22
	// - Size24
	// - Size26
	// - Size28
	// - Size36
	// - Size48
	// - Size72
	FontSize string `json:"fontSize,omitempty"`
	// Metadata that indicates whether the `fontSize` property is editable.
	FontSizeMetadata *PropertyMetadata `json:"fontSizeMetadata,omitempty"`
	// The height of the tab in pixels.
	Height string `json:"height,omitempty"`
	// Metadata that indicates whether the `height` property is editable.
	HeightMetadata *PropertyMetadata `json:"heightMetadata,omitempty"`
	// When set to **true**, the information in the tab is italic.
	Italic string `json:"italic,omitempty"`
	// Metadata that indicates whether the `italic` property is editable.
	ItalicMetadata *PropertyMetadata `json:"italicMetadata,omitempty"`
	// Reserved for DocuSign.
	LocalePolicy *LocalePolicyTab `json:"localePolicy,omitempty"`
	// Metadata that indicates whether the `toolTip` property is editable.
	ToolTipMetadata *PropertyMetadata `json:"toolTipMetadata,omitempty"`
	// The text of a tooltip that appears when a user hovers over a form field or tab.
	Tooltip string `json:"tooltip,omitempty"`
	// When set to **true**, the information in the tab is underlined.
	Underline string `json:"underline,omitempty"`
	// Metadata that indicates whether the `underline` property is editable.
	UnderlineMetadata *PropertyMetadata `json:"underlineMetadata,omitempty"`
	// The width of the tab in pixels.
	Width string `json:"width,omitempty"`
	// Metadata that indicates whether the `width` property is editable.
	WidthMetadata *PropertyMetadata `json:"widthMetadata,omitempty"`
}

Decline is a tab that allows the recipient the option of declining an envelope. If the recipient clicks the tab during the signing process, the envelope is voided.

type DiagnosticsSettingsInformation

type DiagnosticsSettingsInformation struct {
	// Specifies the maximum number of API requests to log.
	APIRequestLogMaxEntries string `json:"apiRequestLogMaxEntries,omitempty"`
	// Indicates the remaining number of API requests that can be logged.
	APIRequestLogRemainingEntries string `json:"apiRequestLogRemainingEntries,omitempty"`
	//  When set to **true**, enables API request logging for the user.
	APIRequestLogging DSBool `json:"apiRequestLogging,omitempty"`
}

type DirectDebitProcessorInformation

type DirectDebitProcessorInformation struct {
	//
	BankBranchCode string `json:"bankBranchCode,omitempty"`
	//
	BankCheckDigit string `json:"bankCheckDigit,omitempty"`
	//
	BankCode string `json:"bankCode,omitempty"`
	//
	BankName string `json:"bankName,omitempty"`
	//
	BankTransferAccountName string `json:"bankTransferAccountName,omitempty"`
	//
	BankTransferAccountNumber string `json:"bankTransferAccountNumber,omitempty"`
	//
	BankTransferType string `json:"bankTransferType,omitempty"`
	// Specifies the country associated with the address.
	Country string `json:"country,omitempty"`
	// Filters returned user records by the specified email address.
	Email string `json:"email,omitempty"`
	// The user's first name.
	// Maximum Length: 50 characters.
	FirstName string `json:"firstName,omitempty"`
	//
	IBAN string `json:"iBAN,omitempty"`
	//
	LastName string `json:"lastName,omitempty"`
}

type DobInformationInput

type DobInformationInput struct {
	// Specifies the recipient's date, month, and year of birth.
	DateOfBirth string `json:"dateOfBirth,omitempty"`
	// Specifies the display level for the recipient. Valid values are:
	// * `ReadOnly`
	// * `Editable`
	// * `DoNotDisplay`
	DisplayLevelCode string `json:"displayLevelCode,omitempty"`
	// A Boolean value that specifies whether the information must be returned in the response.
	ReceiveInResponse DSBool `json:"receiveInResponse,omitempty"`
}

type Document

type Document struct {
	// Reserved for DocuSign
	ApplyAnchorTabs string `json:"applyAnchorTabs,omitempty"`
	// This string sets the display and behavior properties of
	// the document during signing. The possible values are:
	//
	// * `modal`<br>
	//   The document is shown as a supplement action strip
	//   and can be viewed, downloaded, or printed in a modal window.
	//   This is the recommended value for supplemental documents.
	//
	// * `download`<br>
	//   The document is shown as a supplement action strip
	//   and can be viewed, downloaded, or printed in a new browser window.
	//
	// * `inline`<br>
	//   The document is shown in the normal signing window.
	//   This value is not used with supplemental documents,
	//   but is the default value for all other documents.
	//
	Display string `json:"display,omitempty"`
	// 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 []byte `json:"documentBase64,omitempty"`
	//
	DocumentFields []NameValue `json:"documentFields,omitempty"`
	// The type of group the document belongs to (`certificate` or `content`).
	DocumentGroup string `json:"documentGroup,omitempty"`
	// Specifies the document ID of this document. This value is used by tabs to determine which document they appear in.
	DocumentID string `json:"documentId,omitempty"`
	// When set to **true**, the document is been already encrypted by the sender for use with the DocuSign Key Manager Security Appliance.
	//
	EncryptedWithKeyManager DSBool `json:"encryptedWithKeyManager,omitempty"`
	// The file extension type of the document. Non-PDF documents are converted to PDF.
	//
	// If the document is not a PDF, `fileExtension` is required.
	//
	// If you try to upload a non-PDF document without a `fileExtension`, you will receive an "unable to load document" error message.
	//
	FileExtension string `json:"fileExtension,omitempty"`
	//
	FileFormatHint string `json:"fileFormatHint,omitempty"`
	//
	HTMLDefinition *DocumentHTMLDefinition `json:"htmlDefinition,omitempty"`
	// When set to **true**,
	// the document is included in the combined document download.
	// The default value is **true**.
	//
	IncludeInDownload DSBool `json:"includeInDownload,omitempty"`
	// 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.
	//
	// A matchbox consists of 5 elements:
	//
	// * pageNumber - The document page number  on which the matchbox will appear.
	// * xPosition - The x position of the matchbox on a page.
	// * yPosition - The y position of the matchbox on a page.
	// * width - The width of the matchbox.
	// * height - The height of the matchbox.
	//
	MatchBoxes []MatchBox `json:"matchBoxes,omitempty"`
	// The name of the document.
	Name string `json:"name,omitempty"`
	// (Optional) The order in which to sort the results.
	//
	// Valid values are:
	//
	//
	// * `asc`: Ascending order.
	// * `desc`: Descending order.
	Order string `json:"order,omitempty"`
	// An integer value specifying the number of document pages in the template.
	PageCount string `json:"pageCount,omitempty"`
	//
	PageSizes []PageSize `json:"pageSizes,omitempty"`
	// An array of page objects.
	Pages string `json:"pages,omitempty"`
	// The user's encrypted password hash.
	Password string `json:"password,omitempty"`
	//
	PdfFormFieldOption string `json:"pdfFormFieldOption,omitempty"`
	// The file id from the cloud storage service where the document is located. This information is returned using [CloudStorage::listFolders](https://developers.docusign.com/esign-rest-api/reference/CloudStorage/CloudStorage/listFolders) or [CloudStorage::list](https://developers.docusign.com/esign-rest-api/reference/CloudStorage/CloudStorage/list).
	//
	RemoteURL string `json:"remoteUrl,omitempty"`
	// Sets how the signer interacts with the supplemental document.
	// The possible values are:
	//
	// *	`no_interaction`<br>
	//   No recipient action is required.
	//
	// *	`view`<br>
	//   The recipient is required to view the document.
	//
	// *	`accept`<br>
	//   The recipient is required to accept the document by selecting accept during signing, but is not required to view the document.
	//
	// *	`view_accept`<br>
	//   The recipient is required to view and accept the document.
	//
	//
	SignerMustAcknowledge string `json:"signerMustAcknowledge,omitempty"`
	// A list of `signHere` tabs, which can be used to add a visual representation for an electronic seal in a document.
	Tabs *Tabs `json:"tabs,omitempty"`
	// When set to **true**, the sender cannot change any attributes of the recipient. Used only when working with template recipients.
	TemplateLocked DSBool `json:"templateLocked,omitempty"`
	// When set to **true**, the sender may not remove the recipient. Used only when working with template recipients.
	TemplateRequired DSBool `json:"templateRequired,omitempty"`
	// 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.
	//
	TransformPdfFields DSBool `json:"transformPdfFields,omitempty"`
	// URI containing the user ID.
	URI string `json:"uri,omitempty"`
}

Document is a document object.

type DocumentFieldsInformation

type DocumentFieldsInformation struct {
	//
	DocumentFields []NameValue `json:"documentFields,omitempty"`
}

type DocumentHTMLCollapsibleDisplaySettings

type DocumentHTMLCollapsibleDisplaySettings struct {
	//
	ArrowClosed string `json:"arrowClosed,omitempty"`
	//
	ArrowColor string `json:"arrowColor,omitempty"`
	//
	ArrowLocation string `json:"arrowLocation,omitempty"`
	//
	ArrowOpen string `json:"arrowOpen,omitempty"`
	//
	ArrowSize string `json:"arrowSize,omitempty"`
	//
	ArrowStyle string `json:"arrowStyle,omitempty"`
	//
	ContainerStyle string `json:"containerStyle,omitempty"`
	//
	LabelStyle string `json:"labelStyle,omitempty"`
	//
	OnlyArrowIsClickable bool `json:"onlyArrowIsClickable,omitempty"`
	//
	OuterLabelAndArrowStyle string `json:"outerLabelAndArrowStyle,omitempty"`
}

type DocumentHTMLDefinition

type DocumentHTMLDefinition struct {
	//
	DisplayAnchorPrefix string `json:"displayAnchorPrefix,omitempty"`
	//
	DisplayAnchors []DocumentHTMLDisplayAnchor `json:"displayAnchors,omitempty"`
	// The position on the page where the display section appears.
	DisplayOrder int32 `json:"displayOrder,omitempty"`
	// The number of the page on which the display section appears.
	DisplayPageNumber int32 `json:"displayPageNumber,omitempty"`
	//
	DocumentGUID string `json:"documentGuid,omitempty"`
	// Integer that identifies the document in the envelope.
	DocumentID string `json:"documentId,omitempty"`
	//
	HeaderLabel string `json:"headerLabel,omitempty"`
	//
	MaxScreenWidth string `json:"maxScreenWidth,omitempty"`
	//
	RemoveEmptyTags DSBool `json:"removeEmptyTags,omitempty"`
	//
	ShowMobileOptimizedToggle DSBool `json:"showMobileOptimizedToggle,omitempty"`
	//
	Source string `json:"source,omitempty"`
}

type DocumentHTMLDefinitionOriginal

type DocumentHTMLDefinitionOriginal struct {
	// Integer that identifies the document in the envelope.
	DocumentID string `json:"documentId,omitempty"`
	// The Guid of the document.
	DocumentIDGUID string `json:"documentIdGuid,omitempty"`
	//
	HTMLDefinition *DocumentHTMLDefinition `json:"htmlDefinition,omitempty"`
}

type DocumentHTMLDefinitionOriginals

type DocumentHTMLDefinitionOriginals struct {
	//
	HTMLDefinitions []DocumentHTMLDefinitionOriginal `json:"htmlDefinitions,omitempty"`
}

type DocumentHTMLDefinitions

type DocumentHTMLDefinitions struct {
	//
	HTMLDefinitions []string `json:"htmlDefinitions,omitempty"`
}

type DocumentHTMLDisplayAnchor

type DocumentHTMLDisplayAnchor struct {
	//
	CaseSensitive bool `json:"caseSensitive,omitempty"`
	// This object defines how the HTML section inside the `startAnchor` and `endAnchor` displays.
	DisplaySettings *DocumentHTMLDisplaySettings `json:"displaySettings,omitempty"`
	// Specifies the end of the area in the HTML where the display settings will be applied. If you do not specify an end anchor, the end of the document will be used by default.
	//
	// **Note**: A start anchor, an end anchor, or both are required.
	EndAnchor string `json:"endAnchor,omitempty"`
	// When **true**, removes the end anchor string for the Smart Section from the HTML, preventing it from displaying.
	RemoveEndAnchor bool `json:"removeEndAnchor,omitempty"`
	// When **true**, removes the start anchor string for the Smart Section from the HTML, preventing it from displaying.
	RemoveStartAnchor bool `json:"removeStartAnchor,omitempty"`
	// Specifies the beginning of the area in the HTML where the display settings will be applied. If you do not specify a start anchor, the beginning of the document will be used by default.
	//
	// **Note**: A start anchor, an end anchor, or both are required.
	StartAnchor string `json:"startAnchor,omitempty"`
}

type DocumentHTMLDisplaySettings

type DocumentHTMLDisplaySettings struct {
	// Specifies the valid CSS-formatted styles to use on responsive table cells. Only valid in display sections of `responsive_table` or `responsive_table_single_column` types.
	CellStyle string `json:"cellStyle,omitempty"`
	// This object defines the appearance and function of a collapsible section or item.
	CollapsibleSettings *DocumentHTMLCollapsibleDisplaySettings `json:"collapsibleSettings,omitempty"`
	// This string sets the display and behavior properties of
	// the document during signing. The possible values are:
	//
	// * `modal`<br>
	//   The document is shown as a supplement action strip
	//   and can be viewed, downloaded, or printed in a modal window.
	//   This is the recommended value for supplemental documents.
	//
	// * `download`<br>
	//   The document is shown as a supplement action strip
	//   and can be viewed, downloaded, or printed in a new browser window.
	//
	// * `inline`<br>
	//   The document is shown in the normal signing window.
	//   This value is not used with supplemental documents,
	//   but is the default value for all other documents.
	//
	Display string `json:"display,omitempty"`
	// The label for the display section.
	DisplayLabel string `json:"displayLabel,omitempty"`
	// The position on the page where the display section appears.
	DisplayOrder int32 `json:"displayOrder,omitempty"`
	// The number of the page on which the display section appears.
	DisplayPageNumber int32 `json:"displayPageNumber,omitempty"`
	// When **true**, the `displayLabel` is hidden when the display section is expanded and the display section is no longer collapsible. This property is valid only when the value of the `display` property is `collapsed`.
	HideLabelWhenOpened bool `json:"hideLabelWhenOpened,omitempty"`
	// Specifies the valid CSS-formatted styles to use on inline display sections. This property is valid only when the value of the `display` property is `inline`.
	InlineOuterStyle string `json:"inlineOuterStyle,omitempty"`
	// The label for the display section when it is expanded from a collapsed state. This label displays only on the first opening and is only valid with the value of the `display` property is `collapsed`.
	LabelWhenOpened string `json:"labelWhenOpened,omitempty"`
	// When **true** and the section is expanded, the position of the section close is scrolled to the top of the screen. This property is only valid when the value of the `display` property is `collapsed`.
	ScrollToTopWhenOpened bool `json:"scrollToTopWhenOpened,omitempty"`
	// Specifies the valid CSS-formatted styles to use on responsive tables. This property is valid only when the value of the `display` property is `responsive_table` or `responsive_table_single_column`.
	TableStyle string `json:"tableStyle,omitempty"`
}

type DocumentSecurityStore

type DocumentSecurityStore struct {
	//
	Certificates []string `json:"certificates,omitempty"`
	//
	Crls []string `json:"crls,omitempty"`
	//
	Ocsps []string `json:"ocsps,omitempty"`
}

type DocumentTemplate

type DocumentTemplate struct {
	//
	DocumentEndPage string `json:"documentEndPage,omitempty"`
	// Specifies the document ID number that the tab is placed on. This must refer to an existing Document's ID attribute.
	DocumentID string `json:"documentId,omitempty"`
	//
	DocumentStartPage string `json:"documentStartPage,omitempty"`
	// This object describes errors that occur. It is only valid for responses and ignored in requests.
	ErrorDetails *ErrorDetails `json:"errorDetails,omitempty"`
	// The unique identifier of the template. If this is not provided, DocuSign generates an error and the call fails.
	TemplateID string `json:"templateId,omitempty"`
}

type DocumentTemplateList

type DocumentTemplateList struct {
	//
	DocumentTemplates []DocumentTemplate `json:"documentTemplates,omitempty"`
}

type DocumentUpdateInfo

type DocumentUpdateInfo struct {
	// A Base64-encoded representation of the attachment that is used to upload and download the file. File attachments may be up to 50 MB in size.
	Data string `json:"data,omitempty"`
	// Integer that identifies the document in the envelope.
	DocumentID string `json:"documentId,omitempty"`
	//
	DocumentSecurityStore *DocumentSecurityStore `json:"documentSecurityStore,omitempty"`
	//
	Name string `json:"name,omitempty"`
	//
	ReturnFormat string `json:"returnFormat,omitempty"`
	//
	SignatureDataInfos []SignatureDataInfo `json:"signatureDataInfos,omitempty"`
	//
	TimeStampField *TimeStampField `json:"timeStampField,omitempty"`
}

type DocumentVisibility

type DocumentVisibility struct {
	// Integer that identifies the document in the envelope.
	DocumentID string `json:"documentId,omitempty"`
	// This object describes errors that occur. It is only valid for responses and ignored in requests.
	ErrorDetails *ErrorDetails `json:"errorDetails,omitempty"`
	// A local reference that senders use to map recipients to other objects, such as specific document tabs. Within an envelope, each `recipientId` must be unique, but there is no uniqueness requirement across envelopes. For example, many envelopes assign the first recipient a `recipientId` of `1`.
	RecipientID string `json:"recipientId,omitempty"`
	// Indicates whether the document is editable:
	//
	// - `editable`
	// - `read_only`
	Rights string `json:"rights,omitempty"`
	// When **true**, the document is visible to the recipient.
	Visible string `json:"visible,omitempty"`
}

DocumentVisibility this object configures a recipient's read/write access to a document.

type DocumentVisibilityList

type DocumentVisibilityList struct {
	// An array of `documentVisibility` objects that specifies which documents are visible to which recipients.
	DocumentVisibility []DocumentVisibility `json:"documentVisibility,omitempty"`
}

DocumentVisibilityList is a list of `documentVisibility` objects that specify whether documents are visible to recipients.

type ENoteConfiguration

type ENoteConfiguration struct {
	//
	ConnectConfigured string `json:"connectConfigured,omitempty"`
	//
	ENoteConfigured string `json:"eNoteConfigured,omitempty"`
	//
	Organization string `json:"organization,omitempty"`
	// The user's encrypted password hash.
	Password string `json:"password,omitempty"`
	// The name of the user.
	UserName string `json:"userName,omitempty"`
}

type Editor

type Editor struct {
	// If a value is provided, the recipient must enter the value as the access code to view and sign the envelope.
	//
	// Maximum Length: 50 characters and it must conform to the account's access code format setting.
	//
	// If blank, but the signer `accessCode` property is set in the envelope, then that value is used.
	//
	// If blank and the signer `accessCode` property is not set, then the access code is not required.
	AccessCode string `json:"accessCode,omitempty"`
	// Metadata that indicates if the sender can edit the `accessCode` property.
	AccessCodeMetadata *PropertyMetadata `json:"accessCodeMetadata,omitempty"`
	// 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 `json:"addAccessCodeToEmail,omitempty"`
	// Specifies whether the recipient is embedded or remote.
	//
	// If 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.
	//
	// Note: 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.
	//
	// Maximum length: 100 characters.
	ClientUserID string `json:"clientUserId,omitempty"`
	// Indicates the number of times that the recipient has been through a signing completion for the envelope.
	//
	// If this number is greater than 0 for a signing group, only the user who previously completed may sign again.
	CompletedCount string `json:"completedCount,omitempty"`
	// 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 `json:"customFields,omitempty"`
	// The date and time the recipient declined the document.
	DeclinedDateTime *time.Time `json:"declinedDateTime,omitempty"`
	// The reason the recipient declined the document.
	DeclinedReason string `json:"declinedReason,omitempty"`
	// The date and time that the envelope was delivered to the recipient.
	DeliveredDateTime *time.Time `json:"deliveredDateTime,omitempty"`
	// Reserved for DocuSign.
	DeliveryMethod string `json:"deliveryMethod,omitempty"`
	// Metadata that indicates whether the `deliveryMethod` property is editable.
	//
	DeliveryMethodMetadata *PropertyMetadata `json:"deliveryMethodMetadata,omitempty"`
	// A list of documentVisibility objects, which define a recipient's read/write access to a document.
	DocumentVisibility []DocumentVisibility `json:"documentVisibility,omitempty"`
	// Email id of the recipient. Notification of the document to sign is sent to this email id.
	//
	// Maximum length: 100 characters.
	Email string `json:"email,omitempty"`
	// Metadata that indicates if the sender can edit the email id of the recipient.
	EmailMetadata *PropertyMetadata `json:"emailMetadata,omitempty"`
	// An optional complex type that sets a specific email subject and body for this recipient's notification email.
	//
	// **Note**: If you use this field to set a specific email notification for one recipient, you must also set the email notification for the other recipients. Using this field for one or more recipients negates the Envelope `Subject` and `EmailBlurb` property settings.
	EmailNotification *RecipientEmailNotification `json:"emailNotification,omitempty"`
	// Specifies a sender-provided valid URL string for redirecting an embedded recipient. When this option is used, the embedded recipient still receives an email from DocuSign, just as a remote recipient would. When the recipient clicks the document link in the email, the recipient is redirected through DocuSign to the specified URL to complete the required 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.
	//
	// If 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 launched by a partner.
	//
	// It is important to understand 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 processes for establishing the recipient's identity. In this workflow the recipient goes through the sending application before the embedded signing or viewing process is 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.
	//
	// If 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 for the recipient or envelope. The merge fields are enclosed in double brackets.
	//
	// *Example*:
	//
	// `http://senderHost/[[mergeField1]]/ beginSigningSession? [[mergeField2]]&[[mergeField3]]`
	EmbeddedRecipientStartURL string `json:"embeddedRecipientStartURL,omitempty"`
	// This object describes errors that occur. It is only valid for responses and ignored in requests.
	ErrorDetails *ErrorDetails `json:"errorDetails,omitempty"`
	// Reserved for DocuSign.
	FaxNumber string `json:"faxNumber,omitempty"`
	// Metadata that indicates whether the `faxNumber` property is editable.
	//
	FaxNumberMetadata *PropertyMetadata `json:"faxNumberMetadata,omitempty"`
	// The recipient's first name.
	//
	// Maximum Length: 50 characters.
	FirstName string `json:"firstName,omitempty"`
	// Metadata that indicates if the sender can edit the recipient's first name.
	FirstNameMetadata *PropertyMetadata `json:"firstNameMetadata,omitempty"`
	// Reserved for DocuSign.
	FullName string `json:"fullName,omitempty"`
	// Reserved for DocuSign.
	FullNameMetadata *PropertyMetadata `json:"fullNameMetadata,omitempty"`
	// The name of the authentication check to use. This value must match one of the authentication types that the account uses. The names of these authentication types appear in the web console sending interface in the Identify list for a recipient. This setting overrides any default authentication setting.
	//
	// **Example**: Your account has ID Check and SMS Authentication available. 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 $. For SMS, you would use SMS Auth $, and you would also need to add a phone number to the smsAuthentication node.
	IDCheckConfigurationName string `json:"idCheckConfigurationName,omitempty"`
	// Metadata that indicates if the sender can edit the `idCheckConfigurationName` property.
	IDCheckConfigurationNameMetadata *PropertyMetadata `json:"idCheckConfigurationNameMetadata,omitempty"`
	// An object that contains input information related to a recipient ID check.
	IDCheckInformationInput *IDCheckInformationInput `json:"idCheckInformationInput,omitempty"`
	// 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 DSBool `json:"inheritEmailNotificationConfiguration,omitempty"`
	// The recipient's last name.
	LastName string `json:"lastName,omitempty"`
	// Metadata that indicates if the sender can edit the recipient's last name.
	LastNameMetadata *PropertyMetadata `json:"lastNameMetadata,omitempty"`
	// Reserved for DocuSign.
	LockedRecipientPhoneAuthEditable string `json:"lockedRecipientPhoneAuthEditable,omitempty"`
	// Reserved for DocuSign.
	LockedRecipientSmsEditable string `json:"lockedRecipientSmsEditable,omitempty"`
	// The full legal name of the recipient. Maximum Length: 100 characters.
	Name string `json:"name,omitempty"`
	// Metadata that indicates if the sender can edit the full legal name of the recipient.
	NameMetadata *PropertyMetadata `json:"nameMetadata,omitempty"`
	// A note sent to the recipient in the signing email.
	// This note is unique to this recipient.
	// In the user interface,
	// it appears near the upper left corner
	// of the document
	// on the signing screen.
	//
	// Maximum Length: 1000 characters.
	//
	Note string `json:"note,omitempty"`
	// Metadata that indicates if the sender can edit the note sent to the recipient in the signing email.
	NoteMetadata *PropertyMetadata `json:"noteMetadata,omitempty"`
	// A complex type that contains the following elements:
	//
	// * `recipMayProvideNumber` - Boolean. When set to **true**, the recipient can use whatever phone number they choose.
	// * `senderProvidedNumbers` - ArrayOfString.  A list of phone numbers the recipient can use.
	// * `recordVoicePrint` - Reserved.
	// * `validateRecipProvidedNumber` - Reserved.
	PhoneAuthentication DSBool `json:"phoneAuthentication,omitempty"`
	// Reserved for DocuSign.
	RecipientAttachments []RecipientAttachment `json:"recipientAttachments,omitempty"`
	// Information about the recipient's authentication status.
	RecipientAuthenticationStatus *AuthenticationStatus `json:"recipientAuthenticationStatus,omitempty"`
	// Metadata about the features that are supported for the recipient type.
	RecipientFeatureMetadata []FeatureAvailableMetadata `json:"recipientFeatureMetadata,omitempty"`
	// Unique for the recipient. It is used by the tab element to indicate which recipient is to sign the Document.
	RecipientID string `json:"recipientId,omitempty"`
	// The globally-unique identifier (GUID) for a specific recipient on a specific envelope. If the same recipient is associated with multiple envelopes, they will have a different GUID for each one.
	RecipientIDGUID string `json:"recipientIdGuid,omitempty"`
	// The recipient type, as specified by the following values:
	// - `agents`: Agent recipients can add name and email information for recipients that appear after the agent in routing order.
	// - `carbonCopies`: Carbon copy recipients get a copy of the envelope but don't need to sign, initial, date, or add information to any of the documents. This type of recipient can be used in any routing order.
	// - `certifiedDeliveries`: Certified delivery recipients must receive the completed documents for the envelope to be completed. They don't need to sign, initial, date, or add information to any of the documents.
	// - `editors`: Editors have the same management and access rights for the envelope as the sender. Editors can add name and email information, add or change the routing order, set authentication options, and can edit signature/initial tabs and data fields for the remaining recipients.
	// - `inPersonSigners`: In-person recipients are DocuSign users who act as signing hosts in the same physical location as the signer.
	// - `intermediaries`: Intermediary recipients can optionally add name and email information for recipients at the same or subsequent level in the routing order.
	// - `seals`: Electronic seal recipients represent legal entities.
	// - `signers`: Signers are recipients who must sign, initial, date, or add data to form fields on the documents in the envelope.
	// - `witnesses`: Witnesses are recipients whose signatures affirm that the identified signers have signed the documents in the envelope.
	RecipientType string `json:"recipientType,omitempty"`
	// Metadata that indicates if the sender can edit the recipient type.
	RecipientTypeMetadata *PropertyMetadata `json:"recipientTypeMetadata,omitempty"`
	// 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 DSBool `json:"requireIdLookup,omitempty"`
	// Metadata that indicates whether the `requireIdLookup` property is editable.
	//
	RequireIDLookupMetadata *PropertyMetadata `json:"requireIdLookupMetadata,omitempty"`
	// Optional element. Specifies the role name associated with the recipient.<br/><br/>This is required when working with template recipients.
	RoleName string `json:"roleName,omitempty"`
	// Specifies the routing order of the recipient in the envelope.
	RoutingOrder string `json:"routingOrder,omitempty"`
	// Metadata that indicates if the sender can edit the routing order for the recipient.
	RoutingOrderMetadata *PropertyMetadata `json:"routingOrderMetadata,omitempty"`
	// The date and time the envelope was sent.
	SentDateTime *time.Time `json:"sentDateTime,omitempty"`
	// Reserved for DocuSign.
	SignedDateTime *time.Time `json:"signedDateTime,omitempty"`
	// The id of the signing group of which the recipient is a member, if applicable.
	SigningGroupID string `json:"signingGroupId,omitempty"`
	// Metadata that indicates if the sender can edit the signing group id.
	SigningGroupIDMetadata *PropertyMetadata `json:"signingGroupIdMetadata,omitempty"`
	// The display name for the signing group.
	//
	// Maximum Length: 100 characters.
	SigningGroupName string `json:"signingGroupName,omitempty"`
	// A complex type that contains information about users in the signing group.
	SigningGroupUsers []UserInfo `json:"signingGroupUsers,omitempty"`
	// Contains the element senderProvidedNumbers which is an Array  of phone numbers the recipient can use for SMS text authentication.
	//
	SmsAuthentication *RecipientSMSAuthentication `json:"smsAuthentication,omitempty"`
	//  Lists the social ID type that can be used for recipient authentication.
	SocialAuthentications []SocialAuthentication `json:"socialAuthentications,omitempty"`
	// Recipient status.
	// <!-- todo -->
	//
	Status string `json:"status,omitempty"`
	// Reserved for DocuSign.
	StatusCode string `json:"statusCode,omitempty"`
	// When set to **true**, the sender cannot change any attributes of the recipient. Used only when working with template recipients.
	TemplateLocked DSBool `json:"templateLocked,omitempty"`
	// When set to **true**, the sender may not remove the recipient. Used only when working with template recipients.
	TemplateRequired DSBool `json:"templateRequired,omitempty"`
	// The total number of tabs in the documents.
	TotalTabCount string `json:"totalTabCount,omitempty"`
	// The ID of the user to access. Generally this is the ID of the current authenticated user, but if the authenticated user is an Administrator on the account, `userId` can represent another user whom the Administrator is accessing.
	//
	UserID string `json:"userId,omitempty"`
}

Editor is a complex type defining the management and access rights of a recipient assigned as an editor on the document.

type Email

type Email struct {
	TabBase
	TabGuidedForm
	TabPosition
	TabStyle
	TabValue
	// 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.
	//
	// When an envelope is completed the information is available to the sender through the Form Data link in the DocuSign Console.
	//
	// This setting applies only to text boxes and does not affect list boxes, radio buttons, or check boxes.
	ConcealValueOnDocument DSBool `json:"concealValueOnDocument,omitempty"`
	// Metadata that indicates whether the `concealValueOnDocument` property is editable.
	ConcealValueOnDocumentMetadata *PropertyMetadata `json:"concealValueOnDocumentMetadata,omitempty"`
	// 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 DSBool `json:"disableAutoSize,omitempty"`
	// Metadata that indicates whether the `disableAutoSize` property is editable.
	DisableAutoSizeMetadata *PropertyMetadata `json:"disableAutoSizeMetadata,omitempty"`
	// The height of the tab in pixels.
	Height string `json:"height,omitempty"`
	// Metadata that indicates whether the `height` property is editable.
	HeightMetadata *PropertyMetadata `json:"heightMetadata,omitempty"`
	// Reserved for DocuSign.
	LocalePolicy *LocalePolicyTab `json:"localePolicy,omitempty"`
	// When set to **true**, the signer cannot change the data of the custom tab.
	Locked DSBool `json:"locked,omitempty"`
	// Metadata that indicates whether the `locked` property is editable.
	LockedMetadata *PropertyMetadata `json:"lockedMetadata,omitempty"`
	// An optional value that describes the maximum length of the property when the property is a string.
	MaxLength string `json:"maxLength,omitempty"`
	// Metadata that indicates whether the `maxLength` property is editable.
	MaxLengthMetadata *PropertyMetadata `json:"maxLengthMetadata,omitempty"`
	// The initial value of the tab when it was sent to the recipient.
	OriginalValue string `json:"originalValue,omitempty"`
	// Metadata that indicates whether the `originalValue` property is editable.
	OriginalValueMetadata *PropertyMetadata `json:"originalValueMetadata,omitempty"`
	// When set to **true** and shared is true, information must be entered in this field to complete the envelope.
	RequireAll DSBool `json:"requireAll,omitempty"`
	// Metadata that indicates whether the `requireAll` property is editable.
	RequireAllMetadata *PropertyMetadata `json:"requireAllMetadata,omitempty"`
	// Optional element for field markup. When set to **true**, the signer is required to initial when they modify a shared field.
	RequireInitialOnSharedChange DSBool `json:"requireInitialOnSharedChange,omitempty"`
	// Metadata that indicates whether the `requireInitialOnSharedChange` property is editable.
	RequireInitialOnSharedChangeMetadata *PropertyMetadata `json:"requireInitialOnSharedChangeMetadata,omitempty"`
	// When set to **true**, the signer is required to fill out this tab.
	Required TabRequired `json:"required,omitempty"`
	// Metadata that indicates whether the `required` property is editable.
	RequiredMetadata *PropertyMetadata `json:"requiredMetadata,omitempty"`
	// When set to **true**, the sender must populate the tab before an envelope can be sent using the template.
	//
	// This value tab can only be changed by modifying (PUT) the template.
	//
	// Tabs with a `senderRequired` value of true cannot be deleted from an envelope.
	SenderRequired DSBool `json:"senderRequired,omitempty"`
	// Metadata that indicates whether the `senderRequired` property is editable.
	SenderRequiredMetadata *PropertyMetadata `json:"senderRequiredMetadata,omitempty"`
	// When set to **true**, this tab is shared.
	Shared DSBool `json:"shared,omitempty"`
	// Metadata that indicates whether the `shared` property is editable.
	SharedMetadata *PropertyMetadata `json:"sharedMetadata,omitempty"`
	// Metadata that indicates whether the `toolTip` property is editable.
	ToolTipMetadata *PropertyMetadata `json:"toolTipMetadata,omitempty"`
	// The text of a tooltip that appears when a user hovers over a form field or tab.
	Tooltip string `json:"tooltip,omitempty"`
	// The message displayed if the custom tab fails input validation (either custom of embedded).
	ValidationMessage string `json:"validationMessage,omitempty"`
	// Metadata that indicates whether the `validationMessage` property is editable.
	ValidationMessageMetadata *PropertyMetadata `json:"validationMessageMetadata,omitempty"`
	// A regular expression used to validate input for the tab.
	ValidationPattern string `json:"validationPattern,omitempty"`
	// Metadata that indicates whether the `validationPattern` property is editable.
	ValidationPatternMetadata *PropertyMetadata `json:"validationPatternMetadata,omitempty"`
	// The width of the tab in pixels.
	Width string `json:"width,omitempty"`
	// Metadata that indicates whether the `width` property is editable.
	WidthMetadata *PropertyMetadata `json:"widthMetadata,omitempty"`
}

Email is a tab that allows the recipient to enter an email address. This is a one-line field that checks that a valid email address is entered. It uses the same parameters as a Text tab, with the validation message and pattern set for email information.

When getting information that includes this tab type, the original value of the tab when the associated envelope was sent is included in the response.

type EmailAddress

type EmailAddress struct {
	TabBase
	TabGuidedForm
	TabPosition
	TabStyle
	TabValue
	// The height of the tab in pixels.
	Height string `json:"height,omitempty"`
	// Metadata that indicates whether the `height` property is editable.
	HeightMetadata *PropertyMetadata `json:"heightMetadata,omitempty"`
	// Reserved for DocuSign.
	LocalePolicy *LocalePolicyTab `json:"localePolicy,omitempty"`
	// Metadata that indicates whether the `toolTip` property is editable.
	ToolTipMetadata *PropertyMetadata `json:"toolTipMetadata,omitempty"`
	// The text of a tooltip that appears when a user hovers over a form field or tab.
	Tooltip string `json:"tooltip,omitempty"`
	// The width of the tab in pixels.
	Width string `json:"width,omitempty"`
	// Metadata that indicates whether the `width` property is editable.
	WidthMetadata *PropertyMetadata `json:"widthMetadata,omitempty"`
}

EmailAddress is a tab that displays the recipient's email as entered in the recipient information.

type EmailSettings

type EmailSettings struct {
	// An array of up to five email addresses that receive a copy of all email communications for an envelope. Maximum Length: 100 characters.
	//
	// **Note**: Only users with the `canManageAccount` setting set to **true** can use this option.
	//
	// DocuSign verifies that the email format is correct, but does not verify that the email address is active. You can use this for archiving purposes. However, using this property overrides the BCC for Email Archive information setting for this envelope.
	//
	// **Example**: 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.
	BccEmailAddresses []BccEmailAddress `json:"bccEmailAddresses,omitempty"`
	// The Reply To email address to use for email replies, instead of the one that is configured at the account level. DocuSign verifies that the email address is in a correct format, but does not verify that it is active. Maximum Length: 100 characters.
	ReplyEmailAddressOverride string `json:"replyEmailAddressOverride,omitempty"`
	// The name to associate with the Reply To email address, instead of the name that is configured at the account level. Maximum Length: 100 characters.
	ReplyEmailNameOverride string `json:"replyEmailNameOverride,omitempty"`
}

EmailSettings envelope email settings

type Envelope

type Envelope struct {
	// Reserved for DocuSign.
	AccessControlListBase64 string `json:"accessControlListBase64,omitempty"`
	// When set to **true**, users can add comments to the documents in the envelope. For example, if a signer has a question about the text in the document, they can add a comment to the document.
	AllowComments string `json:"allowComments,omitempty"`
	// When **true**, Document Markup is enabled for envelope. The account must have Document Markup enabled to use this.
	AllowMarkup DSBool `json:"allowMarkup,omitempty"`
	// When **true**, the recipient can redirect an envelope to a more appropriate recipient.
	AllowReassign DSBool `json:"allowReassign,omitempty"`
	// When set to **true**, recipients can view the history of the envelope.
	AllowViewHistory DSBool `json:"allowViewHistory,omitempty"`
	// Deprecated. This feature has been replaced by signing groups.
	AnySigner string `json:"anySigner,omitempty"`
	// When **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.
	//
	//
	// **Note**: A `transactionId` is required for this call to work correctly. When the envelope is created, the status is 'Processing' and an `envelopeId` is not returned in the response. To get the `envelopeId`, use a GET envelope query using the [transactionId](https://developers.docusign.com/esign-rest-api/reference/Envelopes/Envelopes/create/#envelopeDefinition) or by checking the Connect notification.
	Asynchronous DSBool `json:"asynchronous,omitempty"`
	// Contains a URL for retrieving the attachments that are associated with the envelope.
	AttachmentsURI string `json:"attachmentsUri,omitempty"`
	// Specifies whether all documents in this envelope are authoritative copies.
	// A document can set its own `authoritativeCopy` property to override this value. For example you can set the `authoritativeCopy` on an envelope level to true but can turn it off for a specific document.
	AuthoritativeCopy DSBool `json:"authoritativeCopy,omitempty"`
	// The default `authoritativeCopy` setting for documents in this envelope that do not have `authoritativeCopy` set.
	// If this property is not set, each document defaults to the envelope's `authoritativeCopy`.
	AuthoritativeCopyDefault string `json:"authoritativeCopyDefault,omitempty"`
	// When **true**, auto navigation is set for the recipient.
	//
	AutoNavigation string `json:"autoNavigation,omitempty"`
	// The id of the brand.
	BrandID string `json:"brandId,omitempty"`
	// Indicates if the brandId for the envelope is locked.
	BrandLock string `json:"brandLock,omitempty"`
	// Contains a URI that you can use to retrieve certificate information.
	CertificateURI string `json:"certificateUri,omitempty"`
	// Specifies the date and time this item was completed.
	CompletedDateTime *time.Time `json:"completedDateTime,omitempty"`
	// The date and time the item was created.
	CreatedDateTime *time.Time `json:"createdDateTime,omitempty"`
	// 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 *CustomFields `json:"customFields,omitempty"`
	// Contains a URI for an endpoint to retrieve the custom fields.
	CustomFieldsURI string `json:"customFieldsUri,omitempty"`
	// The date and time the recipient declined the document.
	DeclinedDateTime *time.Time `json:"declinedDateTime,omitempty"`
	// Specifies the data and time the item was deleted.
	DeletedDateTime *time.Time `json:"deletedDateTime,omitempty"`
	// The date and time that the envelope was delivered to the recipient.
	DeliveredDateTime *time.Time `json:"deliveredDateTime,omitempty"`
	// When set to **true**, responsive documents are disabled for the envelope.
	DisableResponsiveDocument string `json:"disableResponsiveDocument,omitempty"`
	// Contains a URL that you can use to retrieve all of the documents associated with the envelope combined into a single PDF file.
	DocumentsCombinedURI string `json:"documentsCombinedUri,omitempty"`
	// Contains a URI for an endpoint that you can use to retrieve the documents.
	DocumentsURI string `json:"documentsUri,omitempty"`
	// This is the same as the email body. If specified it is included in the email body for all envelope recipients.
	EmailBlurb string `json:"emailBlurb,omitempty"`
	// A complex element that allows  the sender to override some envelope email setting information. This can be used to override the Reply To email address and name associated with the envelope and to override the BCC email addresses to which an envelope is sent.
	//
	// When the emailSettings information is used for an envelope, it only applies to that envelope.
	//
	// **IMPORTANT**: The `emailSettings` information is not returned in the GET method for envelope status. Use GET /email_settings to return information about the email settings.
	EmailSettings *EmailSettings `json:"emailSettings,omitempty"`
	// The subject line of the email message that is sent to all recipients.
	//
	// For information about adding merge field information to the email subject, see [Template Email Subject Merge Fields](https://developers.docusign.com/esign-rest-api/reference/Templates/Templates/create#template-email-subject-merge-fields).
	//
	EmailSubject string `json:"emailSubject,omitempty"`
	// When set to **true**, the signer is allowed to print the document and sign it on paper.
	EnableWetSign DSBool `json:"enableWetSign,omitempty"`
	// When set to **true**, signers can only view the documents on which they have tabs. Recipients that have an administrative role (Agent, Editor, or Intermediaries) or informational role (Certified Deliveries or Carbon Copies) can always see all of the documents in an envelope, unless they are specifically excluded by 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 by using this setting when an envelope is sent.
	//
	// **Note**: To use this functionality, [Document Visibility][docviz] must be enabled for the account by making the account setting `allowDocumentVisibility` **true**.
	//
	// [docviz]: /esign/restapi/Envelopes/EnvelopeDocumentVisibility
	EnforceSignerVisibility DSBool `json:"enforceSignerVisibility,omitempty"`
	// An array of attachment objects that provide information about the attachments that are associated with the envelope.
	EnvelopeAttachments []Attachment `json:"envelopeAttachments,omitempty"`
	// An array containing information about the documents that are included in the envelope.
	EnvelopeDocuments []EnvelopeDocument `json:"envelopeDocuments,omitempty"`
	// The envelope's GUID.
	//
	// Example: `93be49ab-afa0-4adf-933c-f752070d71ec`
	EnvelopeID string `json:"envelopeId,omitempty"`
	// When set to **true**, [Envelope ID Stamping](https://support.docusign.com/en/guides/ndse-user-guide-set-advanced-document-options) is enabled.
	// Once a document or attachment is stamped with an Envelope ID,
	// the ID is seen by all recipients
	// and becomes a permanent part of the document
	// and cannot be removed.
	EnvelopeIDStamping DSBool `json:"envelopeIdStamping,omitempty"`
	// Reserved for DocuSign.
	EnvelopeLocation string `json:"envelopeLocation,omitempty"`
	// Metadata that indicates whether the `envelope` property is editable.
	//
	EnvelopeMetadata *EnvelopeMetadata `json:"envelopeMetadata,omitempty"`
	// URI that you can use to retrieve the bulk envelopes.
	EnvelopeURI string `json:"envelopeUri,omitempty"`
	// An integer specifying the number of days that a sent envelope remains active before it expires. A negative number in a response indicates that the envelope has already expired.
	ExpireAfter string `json:"expireAfter,omitempty"`
	// The date and time the envelope is set to expire.
	ExpireDateTime string `json:"expireDateTime,omitempty"`
	// When set to **true**, the envelope expires (is no longer available for signing) after the specified number of days after it is sent (`sentDateTime`). Set  `expireAfter` to set the number of days until an envelope expires. When **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 `json:"expireEnabled,omitempty"`
	// May contain an external identifier for the envelope.
	ExternalEnvelopeID string `json:"externalEnvelopeId,omitempty"`
	// A collection of folder objects returned in a response.
	Folders []Folder `json:"folders,omitempty"`
	// When set to **true**, indicates that users have added comments to the envelope.
	HasComments string `json:"hasComments,omitempty"`
	// Specifies if the `EnvelopeFormData` associated with any forms in the envelope has changed.
	HasFormDataChanged string `json:"hasFormDataChanged,omitempty"`
	// When set to **true**, indicates that a .wav file used for voice authentication is included in the envelope.
	HasWavFile string `json:"hasWavFile,omitempty"`
	// Reserved for DocuSign.
	Holder string `json:"holder,omitempty"`
	// The date and time the envelope was initially sent.
	InitialSentDateTime *time.Time `json:"initialSentDateTime,omitempty"`
	// When **true**, indicates compliance with United States Food and Drug Administration (FDA) regulations on electronic records and electronic signatures (ERES).
	Is21CFRPart11 DSBool `json:"is21CFRPart11,omitempty"`
	// When set to **true**, indicates that the envelope is a dynamic envelope.
	IsDynamicEnvelope string `json:"isDynamicEnvelope,omitempty"`
	// When set to **true**, indicates that the envelope is a signature-provided envelope.
	IsSignatureProviderEnvelope DSBool `json:"isSignatureProviderEnvelope,omitempty"`
	// The date and time the item was last modified.
	LastModifiedDateTime *time.Time `json:"lastModifiedDateTime,omitempty"`
	// Reserved for DocuSign.
	Location string `json:"location,omitempty"`
	// Provides lock information about an envelope that a user has locked.
	LockInformation *LockInformation `json:"lockInformation,omitempty"`
	// When set to **true**, prevents senders from changing the contents of `emailBlurb` and `emailSubject` properties for the envelope.
	//
	// Additionally, this prevents users from making changes to the contents of `emailBlurb` and `emailSubject` properties when correcting envelopes.
	//
	// However, 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 DSBool `json:"messageLock,omitempty"`
	// A complex element that specifies the notification options for the envelope. It consists of:
	//
	// * useAccountDefaults - When set to **true**, the account default notification settings are used for the envelope.
	// * reminders - A complex element that specifies reminder settings for the envelope. It consists of:
	//
	//    * reminderEnabled - When set to **true**, a reminder message is sent to the recipient.
	//    * reminderDelay - An interger that sets the number of days after the recipient receives the envelope that reminder emails are sent to the recipient.
	//    * reminderFrequency - An interger that sets the interval, in days, between reminder emails.
	//
	// * expirations - A complex element that specifies the expiration settings for the envelope. It consists of:
	//
	//    * 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.
	//    * expireAfter - An integer that sets the number of days the envelope is active.
	//    * 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.
	//
	Notification DSBool `json:"notification,omitempty"`
	// Contains a URI for an endpoint that you can use to retrieve the notifications.
	NotificationURI string `json:"notificationUri,omitempty"`
	// Contains information about any PowerForms that are included in the envelope.
	PowerForm *PowerForm `json:"powerForm,omitempty"`
	// The date that a purge was completed.
	PurgeCompletedDate string `json:"purgeCompletedDate,omitempty"`
	// The date that a purge was requested.
	PurgeRequestDate string `json:"purgeRequestDate,omitempty"`
	// Shows the current purge state for the envelope. The possible values are:
	//
	// * `unpurged`: There has been no successful request to purge documents.
	// * `documents_queued`: The envelope documents have been added to the purge queue, but have not been purged.
	// * `documents_dequeued`: The envelope documents have been taken out of the purge queue.
	// * `documents_and_metadata_queued`: The envelope documents and metadata have been added to the purge queue, but have not yet been purged.
	// * `documents_purged`: The envelope documents have been successfully purged.
	// * `documents_and_metadata_purged`: The envelope documents and metadata have been successfully purged.
	//
	//
	PurgeState string `json:"purgeState,omitempty"`
	// An array of recipient objects that provides details about the recipients of the envelope.
	Recipients *Recipients `json:"recipients,omitempty"`
	// When set to **true**, prevents senders from changing, correcting, or deleting the recipient information for the envelope.
	RecipientsLock DSBool `json:"recipientsLock,omitempty"`
	// Contains a URI for an endpoint that you can use to retrieve the recipients.
	RecipientsURI string `json:"recipientsUri,omitempty"`
	// Information about the sender of the envelope.
	Sender *UserInfo `json:"sender,omitempty"`
	// The date and time the envelope was sent.
	SentDateTime *time.Time `json:"sentDateTime,omitempty"`
	// When set to **true**, the recipient can sign on a mobile device.
	SignerCanSignOnMobile DSBool `json:"signerCanSignOnMobile,omitempty"`
	// 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 `json:"signingLocation,omitempty"`
	// Indicates the envelope status. Valid values are:
	//
	// * `completed`: The envelope has been completed and all tags have been signed.
	// * `created`: The envelope is created as a draft. It can be modified and sent later.
	// * `declined`: The envelope has been declined by the recipients.
	// * `delivered`: The envelope has been delivered to the recipients.
	// * `sent`: The envelope is sent to the recipients.
	// * `signed`: The envelope has been signed by the recipients.
	// * `voided`: The envelope is no longer valid and recipients cannot access or sign the envelope.
	//
	Status string `json:"status,omitempty"`
	// The data and time the status changed.
	StatusChangedDateTime *time.Time `json:"statusChangedDateTime,omitempty"`
	// The DateTime that the envelope changed status (i.e. was created or sent.)
	StatusDateTime string `json:"statusDateTime,omitempty"`
	// Contains a URI for an endpoint that you can use to retrieve the templates.
	TemplatesURI string `json:"templatesUri,omitempty"`
	//  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 `json:"transactionId,omitempty"`
	// 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.
	//
	// If 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 DSBool `json:"useDisclosure,omitempty"`
	// The date and time the envelope or template was voided.
	VoidedDateTime *time.Time `json:"voidedDateTime,omitempty"`
	// The reason the envelope or template was voided.
	VoidedReason string `json:"voidedReason,omitempty"`
}

Envelope envelope creation, management

type EnvelopeAttachment

type EnvelopeAttachment struct {
	// Valid values are `sender` and `senderAndAllRecipients`.
	AccessControl string `json:"accessControl,omitempty"`
	// The unique identifier for the attachment.
	AttachmentID string `json:"attachmentId,omitempty"`
	// Specifies the type of the attachment for the recipient. Possible values are:
	//
	// - `.htm`
	// - `.xml`
	AttachmentType string `json:"attachmentType,omitempty"`
	// This object describes errors that occur. It is only valid for responses and ignored in requests.
	ErrorDetails *ErrorDetails `json:"errorDetails,omitempty"`
	//
	Label string `json:"label,omitempty"`
	//
	Name string `json:"name,omitempty"`
}

type EnvelopeAttachmentsRequest

type EnvelopeAttachmentsRequest struct {
	// An object that contains information about the attachment.
	Attachments []Attachment `json:"attachments,omitempty"`
}

type EnvelopeAttachmentsResult

type EnvelopeAttachmentsResult struct {
	// An array of attachment objects that contain information about the attachments.
	Attachments []EnvelopeAttachment `json:"attachments,omitempty"`
}

type EnvelopeAuditEvent

type EnvelopeAuditEvent struct {
	//
	EventFields []NameValue `json:"eventFields,omitempty"`
}

type EnvelopeAuditEventResponse

type EnvelopeAuditEventResponse struct {
	// Reserved: TBD
	AuditEvents []EnvelopeAuditEvent `json:"auditEvents,omitempty"`
}

type EnvelopeDefinition

type EnvelopeDefinition struct {
	// Reserved for DocuSign.
	AccessControlListBase64 string `json:"accessControlListBase64,omitempty"`
	// Sets the document reading zones for screen reader applications.  This element can only be used if Document Accessibility is enabled for the account.
	//
	// ###### Note: This information is currently generated from the DocuSign web console by setting the reading zones when creating a template, exporting the reading zone string information, and adding it here.
	Accessibility string `json:"accessibility,omitempty"`
	// When **true**, indicates that comments are allowed on the envelope.
	AllowComments string `json:"allowComments,omitempty"`
	// When **true**, Document Markup is enabled for envelope. The account must have Document Markup enabled to use this.
	AllowMarkup DSBool `json:"allowMarkup,omitempty"`
	// When **true**, the recipient can redirect an envelope to a more appropriate recipient.
	AllowReassign DSBool `json:"allowReassign,omitempty"`
	// When set to **true**, this enables the Recursive Recipients feature and allows a recipient to appear more than once in the routing order.
	AllowRecipientRecursion DSBool `json:"allowRecipientRecursion,omitempty"`
	// Specifies if users can view the history of the envelope.
	AllowViewHistory DSBool `json:"allowViewHistory,omitempty"`
	// Deprecated. This feature has been replaced by signing groups.
	AnySigner string `json:"anySigner,omitempty"`
	// When **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.
	//
	//
	// **Note**: A `transactionId` is required for this call to work correctly. When the envelope is created, the status is 'Processing' and an `envelopeId` is not returned in the response. To get the `envelopeId`, use a GET envelope query using the [transactionId](https://developers.docusign.com/esign-rest-api/reference/Envelopes/Envelopes/create/#envelopeDefinition) or by checking the Connect notification.
	Asynchronous DSBool `json:"asynchronous,omitempty"`
	//
	Attachments []Attachment `json:"attachments,omitempty"`
	// The URI for retrieving information about the attachments associated with the envelope.
	AttachmentsURI string `json:"attachmentsUri,omitempty"`
	// Specifies whether all documents in this envelope are authoritative copies.
	// A document can set its own `authoritativeCopy` property to override this value. For example you can set the `authoritativeCopy` on an envelope level to true but can turn it off for a specific document.
	AuthoritativeCopy DSBool `json:"authoritativeCopy,omitempty"`
	// The default `authoritativeCopy` setting for documents in this envelope that do not have `authoritativeCopy` set.
	// If this property is not set, each document defaults to the envelope's `authoritativeCopy`.
	AuthoritativeCopyDefault string `json:"authoritativeCopyDefault,omitempty"`
	// When **true**, auto navigation is set for the recipient.
	//
	AutoNavigation string `json:"autoNavigation,omitempty"`
	// 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 `json:"brandId,omitempty"`
	// Indicates if the brandId for the envelope is locked.
	BrandLock string `json:"brandLock,omitempty"`
	// Contains a URI that you can use to retrieve certificate information.
	CertificateURI string `json:"certificateUri,omitempty"`
	// Specifies the date and time this item was completed.
	CompletedDateTime *time.Time `json:"completedDateTime,omitempty"`
	// 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 `json:"compositeTemplates,omitempty"`
	// The date and time the item was created.
	CreatedDateTime *time.Time `json:"createdDateTime,omitempty"`
	// 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 *CustomFields `json:"customFields,omitempty"`
	// Contains a URI for an endpoint to retrieve the custom fields.
	CustomFieldsURI string `json:"customFieldsUri,omitempty"`
	// The date and time the recipient declined the document.
	DeclinedDateTime *time.Time `json:"declinedDateTime,omitempty"`
	// Specifies the data and time the item was deleted.
	DeletedDateTime *time.Time `json:"deletedDateTime,omitempty"`
	// The date and time that the envelope was delivered to the recipient.
	DeliveredDateTime *time.Time `json:"deliveredDateTime,omitempty"`
	// When **true**, indicates that the responsive document feature has been turned off for the envelope.
	DisableResponsiveDocument string `json:"disableResponsiveDocument,omitempty"`
	// Complex element contains the details on the documents in the envelope.
	Documents []Document `json:"documents,omitempty"`
	// Contains a URL that you can use to retrieve all of the documents associated with the envelope combined into a single PDF file.
	DocumentsCombinedURI string `json:"documentsCombinedUri,omitempty"`
	// Contains a URI for an endpoint that you can use to retrieve the documents.
	DocumentsURI string `json:"documentsUri,omitempty"`
	// 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 `json:"emailBlurb,omitempty"`
	// This optional complex element allows sender to override some envelope email setting information. This can be used to override the Reply To email address and name associated with the envelope and to override the BCC email addresses to which an envelope is sent. When the emailSettings information is used for an envelope, it only applies to that envelope.
	// ###### Important Note:  The emailSettings information is not returned in the GET for envelope status. Use GET /email_settings to return information about the emailSettings.
	EmailSettings *EmailSettings `json:"emailSettings,omitempty"`
	// The subject line of the email message that is sent to all recipients.
	//
	// For information about adding merge field information to the email subject, see [Template Email Subject Merge Fields](https://developers.docusign.com/esign-rest-api/reference/Templates/Templates/create#template-email-subject-merge-fields).
	//
	EmailSubject string `json:"emailSubject,omitempty"`
	// When set to **true**, the signer is allowed to print the document and sign it on paper.
	EnableWetSign DSBool `json:"enableWetSign,omitempty"`
	// When set to **true**, signers can only view the documents on which they have tabs. Recipients that have an administrative role (Agent, Editor, or Intermediaries) or informational role (Certified Deliveries or Carbon Copies) can always see all of the documents in an envelope, unless they are specifically excluded by 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 by using this setting when an envelope is sent.
	//
	// **Note**: To use this functionality, [Document Visibility][docviz] must be enabled for the account by making the account setting `allowDocumentVisibility` **true**.
	//
	// [docviz]: /esign/restapi/Envelopes/EnvelopeDocumentVisibility
	EnforceSignerVisibility DSBool `json:"enforceSignerVisibility,omitempty"`
	// An array of attachment objects that provide information about the attachments that are associated with the envelope.
	EnvelopeAttachments []Attachment `json:"envelopeAttachments,omitempty"`
	// An array containing information about the documents that are included in the envelope.
	EnvelopeDocuments []EnvelopeDocument `json:"envelopeDocuments,omitempty"`
	// The envelope ID of the envelope status that failed to post.
	EnvelopeID string `json:"envelopeId,omitempty"`
	// When set to **true**, [Envelope ID Stamping](https://support.docusign.com/en/guides/ndse-user-guide-set-advanced-document-options) is enabled.
	// Once a document or attachment is stamped with an Envelope ID,
	// the ID is seen by all recipients
	// and becomes a permanent part of the document
	// and cannot be removed.
	EnvelopeIDStamping DSBool `json:"envelopeIdStamping,omitempty"`
	// Reserved for DocuSign.
	EnvelopeLocation string `json:"envelopeLocation,omitempty"`
	// Metadata about the features that are enabled for the envelope.
	EnvelopeMetadata *EnvelopeMetadata `json:"envelopeMetadata,omitempty"`
	// URI that you can use to retrieve the bulk envelopes.
	EnvelopeURI string `json:"envelopeUri,omitempty"`
	// This optional object is used to register a webhook that will receive status changes for this envelope.
	EventNotification *EventNotification `json:"eventNotification,omitempty"`
	// An array of event notification objects.
	EventNotifications []EventNotification `json:"eventNotifications,omitempty"`
	// An integer specifying the number of days that a sent envelope remains active before it expires. A negative number in a response indicates that the envelope has already expired.
	ExpireAfter string `json:"expireAfter,omitempty"`
	// The date and time the envelope is set to expire.
	ExpireDateTime string `json:"expireDateTime,omitempty"`
	// When set to **true**, the envelope expires (is no longer available for signing) after the specified number of days after it is sent (`sentDateTime`). Set  `expireAfter` to set the number of days until an envelope expires. When **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 `json:"expireEnabled,omitempty"`
	// May contain an external identifier for the envelope.
	ExternalEnvelopeID string `json:"externalEnvelopeId,omitempty"`
	// An array of the folders in which the envelope is included.
	Folders []Folder `json:"folders,omitempty"`
	// When set to **true**, indicates that users have added comments to the envelope.
	HasComments string `json:"hasComments,omitempty"`
	// When set to **true**, indicates that the form data associated with the envelope has changed since it was sent. If **false**, this property does not appear in the response.
	HasFormDataChanged string `json:"hasFormDataChanged,omitempty"`
	// When **true**, indicates that a wave file (voice recording) is part of the envelope.
	HasWavFile string `json:"hasWavFile,omitempty"`
	// Reserved for DocuSign.
	Holder string `json:"holder,omitempty"`
	// The date and time that the envelope was initially sent.
	InitialSentDateTime *time.Time `json:"initialSentDateTime,omitempty"`
	// When **true**, indicates compliance with United States Food and Drug Administration (FDA) regulations on electronic records and electronic signatures (ERES).
	Is21CFRPart11 DSBool `json:"is21CFRPart11,omitempty"`
	// When set to **true**, indicates that the envelope is a dynamic envelope.
	IsDynamicEnvelope string `json:"isDynamicEnvelope,omitempty"`
	// When set to **true**, indicates that the envelope is a signature-provided envelope.
	IsSignatureProviderEnvelope DSBool `json:"isSignatureProviderEnvelope,omitempty"`
	// The date and time the item was last modified.
	LastModifiedDateTime *time.Time `json:"lastModifiedDateTime,omitempty"`
	// Reserved for DocuSign.
	Location string `json:"location,omitempty"`
	// Provides lock information about an envelope that a user has locked.
	LockInformation *LockInformation `json:"lockInformation,omitempty"`
	// When set to **true**, prevents senders from changing the contents of `emailBlurb` and `emailSubject` properties for the envelope.
	//
	// Additionally, this prevents users from making changes to the contents of `emailBlurb` and `emailSubject` properties when correcting envelopes.
	//
	// However, 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 DSBool `json:"messageLock,omitempty"`
	// An optional complex element that specifies the notification options for the envelope.
	Notification *Notification `json:"notification,omitempty"`
	// Contains a URI for an endpoint that you can use to retrieve the notifications.
	NotificationURI string `json:"notificationUri,omitempty"`
	// The user's encrypted password hash.
	Password string `json:"password,omitempty"`
	// Contains information about any PowerForms that are included in the envelope.
	PowerForm *PowerForm `json:"powerForm,omitempty"`
	// The date that a purge was completed.
	PurgeCompletedDate string `json:"purgeCompletedDate,omitempty"`
	// The date that a purge was requested.
	PurgeRequestDate string `json:"purgeRequestDate,omitempty"`
	// Initiates a purge request. Valid values are:
	// * documents_queued - Places envelope documents in the purge queue.
	// * documents_and_metadata_queued - Places envelope documents and metadata in the purge queue.
	//
	PurgeState string `json:"purgeState,omitempty"`
	// Specifies the envelope recipients.
	Recipients *Recipients `json:"recipients,omitempty"`
	// When set to **true**, prevents senders from changing, correcting, or deleting the recipient information for the envelope.
	RecipientsLock DSBool `json:"recipientsLock,omitempty"`
	// Contains a URI for an endpoint that you can use to retrieve the recipients.
	RecipientsURI string `json:"recipientsUri,omitempty"`
	// Information about the sender of the envelope.
	Sender *UserInfo `json:"sender,omitempty"`
	// The date and time the envelope was sent.
	SentDateTime *time.Time `json:"sentDateTime,omitempty"`
	// When set to **true**, the recipient can sign on a mobile device.
	SignerCanSignOnMobile DSBool `json:"signerCanSignOnMobile,omitempty"`
	// 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 `json:"signingLocation,omitempty"`
	// Indicates the envelope status. Valid values are:
	//
	// * sent - The envelope is sent to the recipients.
	// * created - The envelope is saved as a draft and can be modified and sent later.
	Status string `json:"status,omitempty"`
	// The data and time the status changed.
	StatusChangedDateTime *time.Time `json:"statusChangedDateTime,omitempty"`
	// The DateTime that the envelope changed status (i.e. was created or sent.)
	StatusDateTime string `json:"statusDateTime,omitempty"`
	// The unique identifier of the template. If this is not provided, DocuSign will generate a value.
	TemplateID string `json:"templateId,omitempty"`
	// Specifies the template recipients. Each roleName in the template must have a recipient assigned to it. This is made up by the following elements:
	//
	// * email - The recipient's email address.
	// * name - The recipient's name.
	// * roleName - The template roleName associated with the recipient.
	// * 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.
	// * 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.
	// * routingOrder - This specifies the routing order of the recipient in the envelope.
	// * 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.
	// * 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.
	// * 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.
	// * tabs - This allows the tab values to be specified for matching to tabs in the template.
	//
	TemplateRoles []TemplateRole `json:"templateRoles,omitempty"`
	// Contains a URI for an endpoint that you can use to retrieve the templates.
	TemplatesURI string `json:"templatesUri,omitempty"`
	//  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 `json:"transactionId,omitempty"`
	// 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.
	//
	// If 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 DSBool `json:"useDisclosure,omitempty"`
	// The date and time the envelope or template was voided.
	VoidedDateTime *time.Time `json:"voidedDateTime,omitempty"`
	// The reason the envelope or template was voided.
	VoidedReason string `json:"voidedReason,omitempty"`
}

EnvelopeDefinition envelope object definition.

type EnvelopeDocument

type EnvelopeDocument struct {
	// If recipients were added by converting form fields into tabs, their ids will appear here. Read only.
	AddedRecipientIds []string `json:"addedRecipientIds,omitempty"`
	// If this document is an attachment to another document in the envelope, this is the id of the attachment tab it is associated with on the other document.
	AttachmentTabID string `json:"attachmentTabId,omitempty"`
	// Specifies whether all documents in this envelope are authoritative copies.
	// A document can set its own `authoritativeCopy` property to override this value. For example you can set the `authoritativeCopy` on an envelope level to true but can turn it off for a specific document.
	AuthoritativeCopy DSBool `json:"authoritativeCopy,omitempty"`
	// Metadata that indicates if the sender can edit the `authoritativeCopy` property. Not applicable for template documents.
	AuthoritativeCopyMetadata *PropertyMetadata `json:"authoritativeCopyMetadata,omitempty"`
	//
	AvailableDocumentTypes []SignatureType `json:"availableDocumentTypes,omitempty"`
	// When **true**, the document has editable form fields that are made available through a PDF format.
	ContainsPdfFormFields string `json:"containsPdfFormFields,omitempty"`
	// This string sets the display and behavior properties of
	// the document during signing. The possible values are:
	//
	// * `modal`<br>
	//   The document is shown as a supplement action strip
	//   and can be viewed, downloaded, or printed in a modal window.
	//   This is the recommended value for supplemental documents.
	//
	// * `download`<br>
	//   The document is shown as a supplement action strip
	//   and can be viewed, downloaded, or printed in a new browser window.
	//
	// * `inline`<br>
	//   The document is shown in the normal signing window.
	//   This value is not used with supplemental documents,
	//   but is the default value for all other documents.
	//
	Display string `json:"display,omitempty"`
	// Metadata that indicates if the sender can edit the `display` property. Not applicable for template documents.
	DisplayMetadata *PropertyMetadata `json:"displayMetadata,omitempty"`
	// The custom fields on the document.
	DocumentFields []NameValue `json:"documentFields,omitempty"`
	// The type of group the document belongs to (`certificate` or `content`).
	DocumentGroup string `json:"documentGroup,omitempty"`
	// Specifies the document ID number that the tab is placed on. This must refer to an existing Document's ID attribute.
	DocumentID string `json:"documentId,omitempty"`
	// The Guid of the document.
	DocumentIDGUID string `json:"documentIdGuid,omitempty"`
	// If an error occurs, this property describes the error.
	ErrorDetails *ErrorDetails `json:"errorDetails,omitempty"`
	// When set to **true**,
	// the document is included in the combined document download.
	// The default value is **true**.
	//
	IncludeInDownload DSBool `json:"includeInDownload,omitempty"`
	// Metadata that indicates if the sender can edit the `includeInDowload` property. Not applicable for template documents.
	IncludeInDownloadMetadata *PropertyMetadata `json:"includeInDownloadMetadata,omitempty"`
	// The name of the document.
	Name string `json:"name,omitempty"`
	// Metadata that indicates if the sender can edit the `name` property. Not applicable for template documents.
	NameMetadata *PropertyMetadata `json:"nameMetadata,omitempty"`
	// (Optional) The order in which to sort the results.
	//
	// Valid values are:
	//
	//
	// * `asc`: Ascending order.
	// * `desc`: Descending order.
	Order string `json:"order,omitempty"`
	// An array of page objects that contain information about the pages in a document.
	Pages []Page `json:"pages,omitempty"`
	// Sets how the signer interacts with the supplemental document.
	// The possible values are:
	//
	// *	`no_interaction`<br>
	//   No recipient action is required.
	//
	// *	`view`<br>
	//   The recipient is required to view the document.
	//
	// *	`accept`<br>
	//   The recipient is required to accept the document by selecting accept during signing, but is not required to view the document.
	//
	// *	`view_accept`<br>
	//   The recipient is required to view and accept the document.
	//
	//
	SignerMustAcknowledge string `json:"signerMustAcknowledge,omitempty"`
	// Metadata that indicates if the sender can edit the `signerMustAcknowledge` property. Not applicable for template documents.
	SignerMustAcknowledgeMetadata *PropertyMetadata `json:"signerMustAcknowledgeMetadata,omitempty"`
	// When set to **true**, the sender cannot change any attributes of the recipient. Used only when working with template recipients.
	TemplateLocked string `json:"templateLocked,omitempty"`
	// When set to **true**, the sender may not remove the recipient. Used only when working with template recipients.
	TemplateRequired string `json:"templateRequired,omitempty"`
	// Type of user:
	// - `type_owner`
	// - `type_participant`
	Type string `json:"type,omitempty"`
	// URI containing the user ID.
	URI string `json:"uri,omitempty"`
}

type EnvelopeDocumentsResult

type EnvelopeDocumentsResult struct {
	// An array of document objects.
	EnvelopeDocuments []EnvelopeDocument `json:"envelopeDocuments,omitempty"`
	// The envelope ID of the envelope status that failed to post.
	EnvelopeID string `json:"envelopeId,omitempty"`
}

EnvelopeDocumentsResult envelope documents

type EnvelopeEvent

type EnvelopeEvent struct {
	// An envelope status for which your webhook should be called. Values: Draft, Sent, Delivered, Completed, Declined, or Voided.
	EnvelopeEventStatusCode string `json:"envelopeEventStatusCode,omitempty"`
	// reserved
	IncludeDocuments string `json:"includeDocuments,omitempty"`
}

EnvelopeEvent for which envelope events should your webhook be called?

type EnvelopeFormData

type EnvelopeFormData struct {
	// The subject line of the email message that is sent to all recipients.
	//
	// For information about adding merge field information to the email subject, see [Template Email Subject Merge Fields](https://developers.docusign.com/esign-rest-api/reference/Templates/Templates/create#template-email-subject-merge-fields).
	//
	EmailSubject string `json:"emailSubject,omitempty"`
	// The id of the envelope.
	EnvelopeID string `json:"envelopeId,omitempty"`
	// An array of form data objects.
	FormData []FormDataItem `json:"formData,omitempty"`
	// An array of form data objects that are associated with specific recipients.
	RecipientFormData []RecipientFormData `json:"recipientFormData,omitempty"`
	// The date and time the envelope was sent.
	SentDateTime *time.Time `json:"sentDateTime,omitempty"`
	// The status of the envelope. Valid values are:
	//
	// * `sent`: The envelope is sent to the recipients.
	// * `created`: The envelope is saved as a draft and can be modified and sent later.
	Status string `json:"status,omitempty"`
}

EnvelopeFormData this object contains the data that recipients have entered into the form fields associated with an envelope.

type EnvelopeID

type EnvelopeID struct {
	TabBase
	TabGuidedForm
	TabPosition
	TabStyle
	// The height of the tab in pixels.
	Height string `json:"height,omitempty"`
	// Metadata that indicates whether the `height` property is editable.
	HeightMetadata *PropertyMetadata `json:"heightMetadata,omitempty"`
	// Reserved for DocuSign.
	LocalePolicy *LocalePolicyTab `json:"localePolicy,omitempty"`
	// Metadata that indicates whether the `toolTip` property is editable.
	ToolTipMetadata *PropertyMetadata `json:"toolTipMetadata,omitempty"`
	// The text of a tooltip that appears when a user hovers over a form field or tab.
	Tooltip string `json:"tooltip,omitempty"`
	// The width of the tab in pixels.
	Width string `json:"width,omitempty"`
	// Metadata that indicates whether the `width` property is editable.
	WidthMetadata *PropertyMetadata `json:"widthMetadata,omitempty"`
}

EnvelopeID is a tab that displays the envelope ID. Recipients cannot enter or change the information in this tab.

type EnvelopeIdsRequest

type EnvelopeIdsRequest struct {
	// A comma-separated list of envelope IDs to include in the results.
	EnvelopeIds []string `json:"envelopeIds,omitempty"`
	// A comma-separated list of transaction IDs to include in the results. Note that transaction IDs are valid for seven days.
	TransactionIds []string `json:"transactionIds,omitempty"`
}

EnvelopeIdsRequest lists of envelope and transaction IDs to use in the results.

type EnvelopeMetadata

type EnvelopeMetadata struct {
	// Specifies if the Advanced Correct feature is enabled for the envelope. This feature enables you to correct the details of in process envelopes that you sent or are shared with you. It offers more functionality than the Correct feature.
	AllowAdvancedCorrect string `json:"allowAdvancedCorrect,omitempty"`
	// Specifies if the Correct feature is enabled for the envelope. This feature enables you to correct the details of in process envelopes that you sent or are shared with you, including the recipient, envelope, and document information.
	AllowCorrect string `json:"allowCorrect,omitempty"`
	// Specifies if DocuSign eNotary service is enabled for the envelope.
	EnableSignWithNotary string `json:"enableSignWithNotary,omitempty"`
}

type EnvelopeNotificationRequest

type EnvelopeNotificationRequest struct {
	// A complex element that specifies the expiration settings for the envelope.
	Expirations *Expirations `json:"expirations,omitempty"`
	// A complex element that specifies reminder settings for the envelope
	Reminders *Reminders `json:"reminders,omitempty"`
	// When set to **true**, the account default notification settings are used for the envelope, overriding the reminders and expirations settings. When set to **false**, the reminders and expirations settings specified in this request are used.
	UseAccountDefaults DSBool `json:"useAccountDefaults,omitempty"`
}

EnvelopeNotificationRequest is a complex element that specifies the notification settings for the envelope.

type EnvelopePurgeConfiguration

type EnvelopePurgeConfiguration struct {
	//
	PurgeEnvelopes string `json:"purgeEnvelopes,omitempty"`
	//
	RedactPII string `json:"redactPII,omitempty"`
	//
	RemoveTabsAndEnvelopeAttachments string `json:"removeTabsAndEnvelopeAttachments,omitempty"`
	//
	RetentionDays string `json:"retentionDays,omitempty"`
}

type EnvelopeSummary

type EnvelopeSummary struct {
	//
	BulkEnvelopeStatus *BulkEnvelopeStatus `json:"bulkEnvelopeStatus,omitempty"`
	// The envelope ID of the envelope status that failed to post.
	EnvelopeID string `json:"envelopeId,omitempty"`
	// This object describes errors that occur. It is only valid for responses and ignored in requests.
	ErrorDetails *ErrorDetails `json:"errorDetails,omitempty"`
	// Indicates the envelope status. Valid values are:
	//
	// * completed - The envelope has been completed and all tags have been signed.
	// * created - The envelope is created as a draft. It can be modified and sent later.
	// * declined - The envelope has been declined by the recipients.
	// * delivered - The envelope has been delivered to the recipients.
	// * sent - The envelope is sent to the recipients.
	// * signed - The envelope has been signed by the recipients.
	// * voided - The envelope is no longer valid and recipients cannot access or sign the envelope.
	//
	Status string `json:"status,omitempty"`
	// The DateTime that the envelope changed status (i.e. was created or sent.)
	StatusDateTime *time.Time `json:"statusDateTime,omitempty"`
	// URI containing the user ID.
	URI string `json:"uri,omitempty"`
}

type EnvelopeTemplate

type EnvelopeTemplate struct {
	// Reserved for DocuSign.
	AccessControlListBase64 string `json:"accessControlListBase64,omitempty"`
	// When set to **true**, indicates that comments are allowed on the envelope.
	AllowComments string `json:"allowComments,omitempty"`
	// When **true**, Document Markup is enabled for envelope. The account must have Document Markup enabled to use this.
	AllowMarkup DSBool `json:"allowMarkup,omitempty"`
	// When **true**, the recipient can redirect an envelope to a more appropriate recipient.
	AllowReassign DSBool `json:"allowReassign,omitempty"`
	// When set to **true**, recipients can view the history of the envelope.
	AllowViewHistory DSBool `json:"allowViewHistory,omitempty"`
	// Deprecated. This feature has been replaced by signing groups.
	AnySigner string `json:"anySigner,omitempty"`
	// When **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.
	//
	//
	// **Note**: A `transactionId` is required for this call to work correctly. When the envelope is created, the status is 'Processing' and an `envelopeId` is not returned in the response. To get the `envelopeId`, use a GET envelope query using the [transactionId](https://developers.docusign.com/esign-rest-api/reference/Envelopes/Envelopes/create/#envelopeDefinition) or by checking the Connect notification.
	Asynchronous DSBool `json:"asynchronous,omitempty"`
	// Contains a URL for retrieving the attachments that are associated with the envelope.
	AttachmentsURI string `json:"attachmentsUri,omitempty"`
	// Specifies whether all documents in this envelope are authoritative copies.
	// A document can set its own `authoritativeCopy` property to override this value. For example you can set the `authoritativeCopy` on an envelope level to true but can turn it off for a specific document.
	AuthoritativeCopy DSBool `json:"authoritativeCopy,omitempty"`
	// The default `authoritativeCopy` setting for documents in this envelope that do not have `authoritativeCopy` set.
	// If this property is not set, each document defaults to the envelope's `authoritativeCopy`.
	AuthoritativeCopyDefault string `json:"authoritativeCopyDefault,omitempty"`
	// By default, templates that have been used within
	// the last 60 days are included in auto-matching.
	//
	// By explicitly setting `autoMatch`,
	// you can permanently include or exclude the template
	// in auto matching.
	//
	// When **true** the template is included in auto-matching
	// regardless of when it was last used.
	//
	// When **false** the template is never included in auto-matching.
	AutoMatch string `json:"autoMatch,omitempty"`
	// If **true**, the template has been explicitly included in or excluded from auto-matching. The default is false.
	// This is a read-only property.
	AutoMatchSpecifiedByUser string `json:"autoMatchSpecifiedByUser,omitempty"`
	// When **true**, auto navigation is set for the recipient.
	//
	AutoNavigation string `json:"autoNavigation,omitempty"`
	// The id of the brand.
	BrandID string `json:"brandId,omitempty"`
	// Indicates if the brandId for the envelope is locked.
	BrandLock string `json:"brandLock,omitempty"`
	// Contains a URI that you can use to retrieve certificate information.
	CertificateURI string `json:"certificateUri,omitempty"`
	// Specifies the date and time this item was completed.
	CompletedDateTime *time.Time `json:"completedDateTime,omitempty"`
	// The UTC DateTime when the workspace user authorization was created.
	Created string `json:"created,omitempty"`
	// The date and time the item was created.
	CreatedDateTime *time.Time `json:"createdDateTime,omitempty"`
	// 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 *CustomFields `json:"customFields,omitempty"`
	// Contains a URI for an endpoint to retrieve the custom fields.
	CustomFieldsURI string `json:"customFieldsUri,omitempty"`
	// The date and time the recipient declined the document.
	DeclinedDateTime *time.Time `json:"declinedDateTime,omitempty"`
	// Specifies the data and time the item was deleted.
	DeletedDateTime *time.Time `json:"deletedDateTime,omitempty"`
	// The date and time that the envelope was delivered to the recipient.
	DeliveredDateTime *time.Time `json:"deliveredDateTime,omitempty"`
	// A sender-defined description of the line item.
	//
	Description string `json:"description,omitempty"`
	// When set to **true**, responsive documents are disabled for the envelope.
	DisableResponsiveDocument string `json:"disableResponsiveDocument,omitempty"`
	// Complex element contains the details on the documents in the envelope.
	Documents []Document `json:"documents,omitempty"`
	// Contains a URL that you can use to retrieve all of the documents associated with the envelope combined into a single PDF file.
	DocumentsCombinedURI string `json:"documentsCombinedUri,omitempty"`
	// Contains a URI for an endpoint that you can use to retrieve the documents.
	DocumentsURI string `json:"documentsUri,omitempty"`
	// This is the same as the email body. If the sender enters an email blurb, it is included in the email body for all envelope recipients.
	EmailBlurb string `json:"emailBlurb,omitempty"`
	// A complex type that contains email settings.
	EmailSettings *EmailSettings `json:"emailSettings,omitempty"`
	// The subject line of the email message that is sent to all recipients.
	//
	// For information about adding merge field information to the email subject, see [Template Email Subject Merge Fields](https://developers.docusign.com/esign-rest-api/reference/Templates/Templates/create#template-email-subject-merge-fields).
	//
	EmailSubject string `json:"emailSubject,omitempty"`
	// When set to **true**, the signer is allowed to print the document and sign it on paper.
	EnableWetSign DSBool `json:"enableWetSign,omitempty"`
	// When set to **true**, signers can only view the documents on which they have tabs. Recipients that have an administrative role (Agent, Editor, or Intermediaries) or informational role (Certified Deliveries or Carbon Copies) can always see all of the documents in an envelope, unless they are specifically excluded by 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 by using this setting when an envelope is sent.
	//
	// **Note**: To use this functionality, [Document Visibility][docviz] must be enabled for the account by making the account setting `allowDocumentVisibility` **true**.
	//
	// [docviz]: /esign/restapi/Envelopes/EnvelopeDocumentVisibility
	EnforceSignerVisibility DSBool `json:"enforceSignerVisibility,omitempty"`
	// An array of attachment objects that provide information about the attachments that are associated with the envelope.
	EnvelopeAttachments []Attachment `json:"envelopeAttachments,omitempty"`
	// An array containing information about the documents that are included in the envelope.
	EnvelopeDocuments []EnvelopeDocument `json:"envelopeDocuments,omitempty"`
	// The envelope ID of the envelope status that failed to post.
	EnvelopeID string `json:"envelopeId,omitempty"`
	// When set to **true**, [Envelope ID Stamping](https://support.docusign.com/en/guides/ndse-user-guide-set-advanced-document-options) is enabled.
	// Once a document or attachment is stamped with an Envelope ID,
	// the ID is seen by all recipients
	// and becomes a permanent part of the document
	// and cannot be removed.
	EnvelopeIDStamping DSBool `json:"envelopeIdStamping,omitempty"`
	// Reserved for DocuSign.
	EnvelopeLocation string `json:"envelopeLocation,omitempty"`
	// Provides information about the features and services that are enabled for the envelope, including the Correct feature, the Advanced Correct feature, and DocuSign eNotary service.
	EnvelopeMetadata *EnvelopeMetadata `json:"envelopeMetadata,omitempty"`
	// URI that you can use to retrieve the bulk envelopes.
	EnvelopeURI string `json:"envelopeUri,omitempty"`
	// An integer specifying the number of days that a sent envelope remains active before it expires. A negative number in a response indicates that the envelope has already expired.
	ExpireAfter string `json:"expireAfter,omitempty"`
	// The date and time the envelope is set to expire.
	ExpireDateTime string `json:"expireDateTime,omitempty"`
	// When set to **true**, the envelope expires (is no longer available for signing) after the specified number of days after it is sent (`sentDateTime`). Set  `expireAfter` to set the number of days until an envelope expires. When **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 `json:"expireEnabled,omitempty"`
	// May contain an external identifier for the envelope.
	ExternalEnvelopeID string `json:"externalEnvelopeId,omitempty"`
	// The unique identifier for the folder that the template belongs to.
	FolderID string `json:"folderId,omitempty"`
	// An array of folder IDs that the template is in.
	FolderIds []string `json:"folderIds,omitempty"`
	// The name of the folder the template belongs to.
	FolderName string `json:"folderName,omitempty"`
	// A collection of folder objects returned in a response.
	Folders []Folder `json:"folders,omitempty"`
	// When set to **true**, indicates that users have added comments to the envelope.
	HasComments string `json:"hasComments,omitempty"`
	// Specifies if the `EnvelopeFormData` associated with any forms in the template has changed.
	HasFormDataChanged string `json:"hasFormDataChanged,omitempty"`
	// When set to **true**, indicates that the template includes a .wav file.
	HasWavFile string `json:"hasWavFile,omitempty"`
	// Reserved for DocuSign.
	Holder string `json:"holder,omitempty"`
	// The date and time the envelope that used the template was initially sent.
	InitialSentDateTime *time.Time `json:"initialSentDateTime,omitempty"`
	// When **true**, indicates compliance with United States Food and Drug Administration (FDA) regulations on electronic records and electronic signatures (ERES).
	Is21CFRPart11 DSBool `json:"is21CFRPart11,omitempty"`
	// When set to **true**, indicates that the envelope is a dynamic envelope.
	IsDynamicEnvelope string `json:"isDynamicEnvelope,omitempty"`
	// When set to **true**, indicates that the envelope is a signature-provided envelope.
	IsSignatureProviderEnvelope DSBool `json:"isSignatureProviderEnvelope,omitempty"`
	// Utc date and time the comment was last updated (can only be done by creator.)
	LastModified string `json:"lastModified,omitempty"`
	// The userId of the user who last modified the template.
	LastModifiedBy *UserInfo `json:"lastModifiedBy,omitempty"`
	// The date and time the template was last modified.
	LastModifiedDateTime *time.Time `json:"lastModifiedDateTime,omitempty"`
	// The date and time the template was last used.
	LastUsed string `json:"lastUsed,omitempty"`
	// Reserved for DocuSign.
	Location string `json:"location,omitempty"`
	// Provides lock information about an envelope that a user has locked.
	LockInformation *LockInformation `json:"lockInformation,omitempty"`
	// When set to **true**, prevents senders from changing the contents of `emailBlurb` and `emailSubject` properties for the envelope.
	//
	// Additionally, this prevents users from making changes to the contents of `emailBlurb` and `emailSubject` properties when correcting envelopes.
	//
	// However, 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 DSBool `json:"messageLock,omitempty"`
	// The name of the template.
	Name string `json:"name,omitempty"`
	// The user's new password.
	NewPassword string `json:"newPassword,omitempty"`
	// A complex element that specifies the notification options for envelopes that use the template.
	Notification *Notification `json:"notification,omitempty"`
	// Contains a URI for an endpoint that you can use to retrieve the notifications.
	NotificationURI string `json:"notificationUri,omitempty"`
	// The owner of the template.
	Owner *UserInfo `json:"owner,omitempty"`
	// An integer value specifying the number of document pages in the template.
	PageCount string `json:"pageCount,omitempty"`
	// The password for editing the template.
	Password string `json:"password,omitempty"`
	// If **true**, a password is required to edit the template.
	PasswordProtected string `json:"passwordProtected,omitempty"`
	// A PowerForm objects that contain information about any PowerForms that are included in the template.
	PowerForm *PowerForm `json:"powerForm,omitempty"`
	// An array of PowerForm objects that contain information about any PowerForms that are included in the template.
	PowerForms []PowerForm `json:"powerForms,omitempty"`
	// The date that a purge was completed.
	PurgeCompletedDate string `json:"purgeCompletedDate,omitempty"`
	// The date that a purge was requested.
	PurgeRequestDate string `json:"purgeRequestDate,omitempty"`
	// Shows the current purge state for the envelope. The possible values are:
	//
	// * `unpurged`: There has been no successful request to purge documents.
	// * `documents_queued`: The envelope documents have been added to the purge queue, but have not been purged.
	// * `documents_dequeued`: The envelope documents have been taken out of the purge queue.
	// * `documents_and_metadata_queued`: The envelope documents and metadata have been added to the purge queue, but have not yet been purged.
	// * `documents_purged`: The envelope documents have been successfully purged.
	// * `documents_and_metadata_purged`: The envelope documents and metadata have been successfully purged.
	//
	//
	PurgeState string `json:"purgeState,omitempty"`
	// An array of recipient objects.
	Recipients *Recipients `json:"recipients,omitempty"`
	// When set to **true**, prevents senders from changing, correcting, or deleting the recipient information for the envelope.
	RecipientsLock DSBool `json:"recipientsLock,omitempty"`
	// Contains a URI for an endpoint that you can use to retrieve the recipients.
	RecipientsURI string `json:"recipientsUri,omitempty"`
	// Information about the sender.
	Sender *UserInfo `json:"sender,omitempty"`
	// The date and time the envelope was sent.
	SentDateTime *time.Time `json:"sentDateTime,omitempty"`
	// When **true**, indicates the template is shared with the **Everyone** group,
	// and is shared with all users on the account.
	//
	// If **false**, the template is only shared with the **Administrator** group.
	//
	Shared string `json:"shared,omitempty"`
	// When **true**, indicates that another user has shared the template with you.
	SharedWithMe string `json:"sharedWithMe,omitempty"`
	// When set to **true**, the recipient can sign on a mobile device.
	SignerCanSignOnMobile DSBool `json:"signerCanSignOnMobile,omitempty"`
	// 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 `json:"signingLocation,omitempty"`
	// Indicates the envelope status. Valid values are:
	//
	// * `sent` - The envelope is sent to the recipients.
	// * `created` - The envelope is saved as a draft and can be modified and sent later.
	Status string `json:"status,omitempty"`
	// The data and time the status changed.
	StatusChangedDateTime *time.Time `json:"statusChangedDateTime,omitempty"`
	// The DateTime that the envelope changed status (i.e. was created or sent.)
	StatusDateTime string `json:"statusDateTime,omitempty"`
	// The ID of the template.
	TemplateID string `json:"templateId,omitempty"`
	// Contains a URI for an endpoint that you can use to retrieve the templates.
	TemplatesURI string `json:"templatesUri,omitempty"`
	//  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 `json:"transactionId,omitempty"`
	// Contains a URI that you can use to retreve the template.
	URI string `json:"uri,omitempty"`
	// 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.
	//
	// If 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 DSBool `json:"useDisclosure,omitempty"`
	// The date and time the envelope or template was voided.
	VoidedDateTime *time.Time `json:"voidedDateTime,omitempty"`
	// The reason the envelope or template was voided.
	VoidedReason string `json:"voidedReason,omitempty"`
}

EnvelopeTemplate template management

type EnvelopeTemplateResults

type EnvelopeTemplateResults struct {
	// The last position in the result set.
	EndPosition string `json:"endPosition,omitempty"`
	// The list of requested templates.
	EnvelopeTemplates []EnvelopeTemplate `json:"envelopeTemplates,omitempty"`
	// A collection of folder objects returned in a response.
	Folders []Folder `json:"folders,omitempty"`
	// 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 `json:"nextUri,omitempty"`
	// 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 `json:"previousUri,omitempty"`
	// The number of results returned in this response. Because you can filter which entries are included in the response, this value is always less than or equal to `totalSetSize`.
	ResultSetSize string `json:"resultSetSize,omitempty"`
	// The starting position of the current result set.
	StartPosition string `json:"startPosition,omitempty"`
	// The total number of items in the search's result set. This value is always greater than or equal to the value of `resultSetSize`.
	TotalSetSize string `json:"totalSetSize,omitempty"`
}

EnvelopeTemplateResults information about templates.

type EnvelopeTransactionStatus

type EnvelopeTransactionStatus struct {
	// The envelope ID of the envelope status that failed to post.
	EnvelopeID string `json:"envelopeId,omitempty"`
	// This object describes errors that occur. It is only valid for responses and ignored in requests.
	ErrorDetails *ErrorDetails `json:"errorDetails,omitempty"`
	// Indicates the envelope status. Valid values are:
	//
	// * sent - The envelope is sent to the recipients.
	// * created - The envelope is saved as a draft and can be modified and sent later.
	Status string `json:"status,omitempty"`
	//  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 `json:"transactionId,omitempty"`
}

type EnvelopeTransferRule

type EnvelopeTransferRule struct {
	//
	CarbonCopyOriginalOwner string `json:"carbonCopyOriginalOwner,omitempty"`
	//
	Enabled string `json:"enabled,omitempty"`
	//
	EnvelopeTransferRuleID string `json:"envelopeTransferRuleId,omitempty"`
	//
	EventType string `json:"eventType,omitempty"`
	//
	FromGroup *Group `json:"fromGroup,omitempty"`
	//
	FromUser *UserInformation `json:"fromUser,omitempty"`
	// Most recent date on which this user record was modified.
	ModifiedDate string `json:"modifiedDate,omitempty"`
	//
	ModifiedUser *UserInformation `json:"modifiedUser,omitempty"`
	//
	ToFolder *Folder `json:"toFolder,omitempty"`
	//
	ToUser *UserInformation `json:"toUser,omitempty"`
}

type EnvelopeTransferRuleInformation

type EnvelopeTransferRuleInformation struct {
	// The last position in the result set.
	EndPosition string `json:"endPosition,omitempty"`
	//
	EnvelopeTransferRules []EnvelopeTransferRule `json:"envelopeTransferRules,omitempty"`
	// 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 `json:"nextUri,omitempty"`
	// 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 `json:"previousUri,omitempty"`
	// The number of results returned in this response. Because you can filter which entries are included in the response, this value is always less than or equal to `totalSetSize`.
	ResultSetSize string `json:"resultSetSize,omitempty"`
	// The starting position of the current result set.
	StartPosition string `json:"startPosition,omitempty"`
	// The total number of items in the search's result set. This value is always greater than or equal to the value of `resultSetSize`.
	TotalSetSize string `json:"totalSetSize,omitempty"`
}

type EnvelopeTransferRuleRequest

type EnvelopeTransferRuleRequest struct {
	//
	CarbonCopyOriginalOwner string `json:"carbonCopyOriginalOwner,omitempty"`
	//
	Enabled string `json:"enabled,omitempty"`
	//
	EnvelopeTransferRuleID string `json:"envelopeTransferRuleId,omitempty"`
	//
	EventType string `json:"eventType,omitempty"`
	//
	FromGroups []Group `json:"fromGroups,omitempty"`
	//
	FromUsers []UserInformation `json:"fromUsers,omitempty"`
	// Most recent date on which this user record was modified.
	ModifiedDate string `json:"modifiedDate,omitempty"`
	//
	ModifiedUser *UserInformation `json:"modifiedUser,omitempty"`
	//
	ToFolder *Folder `json:"toFolder,omitempty"`
	//
	ToUser *UserInformation `json:"toUser,omitempty"`
}

type EnvelopeUpdateSummary

type EnvelopeUpdateSummary struct {
	//
	BulkEnvelopeStatus *BulkEnvelopeStatus `json:"bulkEnvelopeStatus,omitempty"`
	// The envelope ID of the envelope status that failed to post.
	EnvelopeID string `json:"envelopeId,omitempty"`
	// This object describes errors that occur. It is only valid for responses and ignored in requests.
	ErrorDetails *ErrorDetails `json:"errorDetails,omitempty"`
	//
	ListCustomFieldUpdateResults []ListCustomField `json:"listCustomFieldUpdateResults,omitempty"`
	// Provides lock information about an envelope that a user has locked.
	LockInformation *LockInformation `json:"lockInformation,omitempty"`
	// Shows the current purge state for the envelope. The possible values are:
	//
	// * `unpurged`: There has been no successful request to purge documents.
	// * `documents_queued`: The envelope documents have been added to the purge queue, but have not been purged.
	// * `documents_dequeued`: The envelope documents have been taken out of the purge queue.
	// * `documents_and_metadata_queued`: The envelope documents and metadata have been added to the purge queue, but have not yet been purged.
	// * `documents_purged`: The envelope documents have been successfully purged.
	// * `documents_and_metadata_purged`: The envelope documents and metadata have been successfully purged.
	//
	//
	PurgeState string `json:"purgeState,omitempty"`
	// An array of `recipientUpdateResults` objects that contain details about the recipients.
	RecipientUpdateResults []RecipientUpdateResponse `json:"recipientUpdateResults,omitempty"`
	//
	TabUpdateResults *Tabs `json:"tabUpdateResults,omitempty"`
	//
	TextCustomFieldUpdateResults []TextCustomField `json:"textCustomFieldUpdateResults,omitempty"`
}

type EnvelopesInformation

type EnvelopesInformation struct {
	// A token returned by an earlier API call that you can use with a new call to resume a search query at the point where it left off.  This token system enhances the performance of the API.
	ContinuationToken string `json:"continuationToken,omitempty"`
	// The last position in the result set.
	EndPosition string `json:"endPosition,omitempty"`
	// Array of envelope statuses and transaction IDs in the result set.
	EnvelopeTransactionStatuses []EnvelopeTransactionStatus `json:"envelopeTransactionStatuses,omitempty"`
	// Set of envelope information
	Envelopes []Envelope `json:"envelopes,omitempty"`
	// A collection of folder objects returned in a response.
	Folders []Folder `json:"folders,omitempty"`
	// The last time that a query was performed.
	LastQueriedDateTime string `json:"lastQueriedDateTime,omitempty"`
	// 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 `json:"nextUri,omitempty"`
	// 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 `json:"previousUri,omitempty"`
	// The number of results returned in this response. Because you can filter which entries are included in the response, this value is always less than or equal to `totalSetSize`.
	ResultSetSize string `json:"resultSetSize,omitempty"`
	// The starting position of the current result set.
	StartPosition string `json:"startPosition,omitempty"`
	// The total number of items in the search's result set. This value is always greater than or equal to the value of `resultSetSize`.
	TotalSetSize string `json:"totalSetSize,omitempty"`
}

EnvelopesInformation result set for the Envelopes: listStatusChanges method

type ErrorDetails

type ErrorDetails struct {
	// The code associated with the error condition.
	ErrorCode string `json:"errorCode,omitempty"`
	// A brief message describing the error condition.
	Message string `json:"message,omitempty"`
}

ErrorDetails this object describes errors that occur. It is only valid for responses and ignored in requests.

type EventNotification

type EventNotification struct {
	// A list of envelope-level event statuses that will trigger Connect to send updates to the endpoint specified in the `url` property.
	//
	// To receive notifications, you must include either an `envelopeEvents` node or a `recipientEvents` node. You do not need to specify both.
	EnvelopeEvents []EnvelopeEvent `json:"envelopeEvents,omitempty"`
	// When set to **true**, the Connect Service includes the Certificate of Completion with completed envelopes.
	IncludeCertificateOfCompletion DSBool `json:"includeCertificateOfCompletion,omitempty"`
	// When set to **true**, the Connect service will digitally sign the XML data. The signature will be included in the XML message.
	IncludeCertificateWithSoap DSBool `json:"includeCertificateWithSoap,omitempty"`
	// When set to **true**, the Document Fields associated with the envelope's documents are included in the notification messages. Document Fields are optional custom name-value pairs added to documents using the API.
	IncludeDocumentFields DSBool `json:"includeDocumentFields,omitempty"`
	// When set to **true**, the XML webhook messages will include the envelope's PDF documents. Including the PDF documents will greatly increase the size of the notification messages. Ensure that your listener can handle incoming messages that are 25MB or larger.
	IncludeDocuments DSBool `json:"includeDocuments,omitempty"`
	// When set to **true**, if the envelope is voided, the Connect Service notification will include the void reason, as entered by the person that voided the envelope.
	IncludeEnvelopeVoidReason DSBool `json:"includeEnvelopeVoidReason,omitempty"`
	// When set to **true**, Connect will include the sender account as Custom Field in the data.
	IncludeSenderAccountAsCustomField DSBool `json:"includeSenderAccountAsCustomField,omitempty"`
	// When set to **true**, the envelope's time zone information is included in the webhook messages.
	IncludeTimeZone DSBool `json:"includeTimeZone,omitempty"`
	// When set to **true**, the webhook messages are logged. They can be viewed on the DocuSign Administration Web Tool in the Connect section. Logged messages can also be downloaded via the [ConnectEvents resource](https://developers.docusign.com/esign-rest-api/reference/Connect/ConnectEvents).
	LoggingEnabled DSBool `json:"loggingEnabled,omitempty"`
	// An array of recipient event statuses that will trigger Connect to send notifications to your webhook listener at the url endpoint specified in the `url` property.
	//
	// To receive notifications, you must include either an `envelopeEvents` node or a `recipientEvents` node. You do not need to specify both.
	RecipientEvents []RecipientEvent `json:"recipientEvents,omitempty"`
	// When set to **true**, the DocuSign Connect service checks that the message was received and retries on failures.
	RequireAcknowledgment DSBool `json:"requireAcknowledgment,omitempty"`
	// When set to **true**, Mutual TLS will be enabled for notifications. Mutual TLS must be initiated by the listener (the customer's web server) during the TLS handshake protocol.
	SignMessageWithX509Cert DSBool `json:"signMessageWithX509Cert,omitempty"`
	// The namespace of the SOAP interface.
	//
	// The namespace value must be set if useSoapInterface is set to true.
	SoapNameSpace string `json:"soapNameSpace,omitempty"`
	// The endpoint to which webhook notification messages are sent via an HTTPS POST request. The url must start with https. The customer's web server must use an SSL/TLS certificate whose CA is in the Microsoft list of trusted CAs. Self-signed certificates are not ok. Free certificates from Let's Encrypt can be used.
	URL string `json:"url,omitempty"`
	// When set to **true**, the notifications are sent to your endpoint as SOAP requests.
	UseSoapInterface DSBool `json:"useSoapInterface,omitempty"`
}

EventNotification register a Connect webhook for a specific envelope

type EventResult

type EventResult struct {
	// Date/time of the event.
	EventTimestamp string `json:"eventTimestamp,omitempty"`
	// Reason for failure, if the event failed.
	FailureDescription string `json:"failureDescription,omitempty"`
	// Event status.
	Status string `json:"status,omitempty"`
	// Failure status code, if the event failed.
	VendorFailureStatusCode string `json:"vendorFailureStatusCode,omitempty"`
}

EventResult information about the result of an event.

type Expirations

type Expirations struct {
	// An integer specifying the number of days that a sent envelope remains active before it expires. A negative number in a response indicates that the envelope has already expired.
	ExpireAfter string `json:"expireAfter,omitempty"`
	// When set to **true**, the envelope expires (is no longer available for signing) after the specified number of days after it is sent (`sentDateTime`). Set  `expireAfter` to set the number of days until an envelope expires. When **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 DSBool `json:"expireEnabled,omitempty"`
	// An integer that specifying the number of days before the envelope expires that an expiration warning email is sent to the recipient. If set to 0 (zero), no warning email is sent.
	ExpireWarn string `json:"expireWarn,omitempty"`
}

Expirations is a complex element that specifies the expiration settings for the envelope.

type ExternalClaim

type ExternalClaim struct {
	//
	AcquiredTime string `json:"acquiredTime,omitempty"`
	//
	ClaimName string `json:"claimName,omitempty"`
	// The social account provider (Facebook, Yahoo, etc.)
	Provider string `json:"provider,omitempty"`
	// Specifies the value of the tab.
	Value string `json:"value,omitempty"`
}

type ExternalDocServiceErrorDetails

type ExternalDocServiceErrorDetails struct {
	// Reserved: TBD
	AuthenticationURL string `json:"authenticationUrl,omitempty"`
	// A code associated with the error condition.
	ErrorCode string `json:"errorCode,omitempty"`
	//
	Message string `json:"message,omitempty"`
}

type ExternalDocumentSources

type ExternalDocumentSources struct {
	// The account is enabled to allow external documents to be attached from BoxNet.
	BoxnetEnabled string `json:"boxnetEnabled,omitempty"`
	// Metadata indicating whether the `boxnetEnabled` property is editable.
	BoxnetMetadata *SettingsMetadata `json:"boxnetMetadata,omitempty"`
	// The account is enabled to allow external documents to be attached from DropBox.
	DropboxEnabled string `json:"dropboxEnabled,omitempty"`
	// Metadata indicating whether the `dropboxEnabled` property is editable.
	DropboxMetadata *SettingsMetadata `json:"dropboxMetadata,omitempty"`
	// The account is enabled to allow external documents to be attached from Google Drive.
	GoogleDriveEnabled string `json:"googleDriveEnabled,omitempty"`
	// Metadata indicating whether the `googleDriveEnabled` property is editable.
	GoogleDriveMetadata *SettingsMetadata `json:"googleDriveMetadata,omitempty"`
	// The account is enabled to allow external documents to be attached from OneDrive.
	OneDriveEnabled string `json:"oneDriveEnabled,omitempty"`
	// Metadata indicating whether the `oneDriveEnabled` property is editable.
	OneDriveMetadata *SettingsMetadata `json:"oneDriveMetadata,omitempty"`
	// The account is enabled to allow external documents to be attached from Salesforce.
	SalesforceEnabled string `json:"salesforceEnabled,omitempty"`
	// Metadata indicating whether the `salesforceEnabled` property is editable.
	SalesforceMetadata *SettingsMetadata `json:"salesforceMetadata,omitempty"`
}

ExternalDocumentSources is a complex object specifying the external document sources.

type ExternalFile

type ExternalFile struct {
	//
	Date string `json:"date,omitempty"`
	// A unique ID for the Salesforce object.
	ID string `json:"id,omitempty"`
	//
	Img string `json:"img,omitempty"`
	//
	Name string `json:"name,omitempty"`
	// Reserved: TBD
	Size string `json:"size,omitempty"`
	//
	Supported string `json:"supported,omitempty"`
	// Type of user:
	// - `type_owner`
	// - `type_participant`
	Type string `json:"type,omitempty"`
	// URI containing the user ID.
	URI string `json:"uri,omitempty"`
}

type ExternalFolder

type ExternalFolder struct {
	// The last position in the result set.
	EndPosition string `json:"endPosition,omitempty"`
	// This object describes errors that occur. It is only valid for responses and ignored in requests.
	ErrorDetails *ExternalDocServiceErrorDetails `json:"errorDetails,omitempty"`
	// A unique ID for the Salesforce object.
	ID string `json:"id,omitempty"`
	//
	Items []ExternalFile `json:"items,omitempty"`
	//
	Name string `json:"name,omitempty"`
	// 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 `json:"nextUri,omitempty"`
	// 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 `json:"previousUri,omitempty"`
	// The number of results returned in this response. Because you can filter which entries are included in the response, this value is always less than or equal to `totalSetSize`.
	ResultSetSize string `json:"resultSetSize,omitempty"`
	// The starting position of the current result set.
	StartPosition string `json:"startPosition,omitempty"`
	// The total number of items in the search's result set. This value is always greater than or equal to the value of `resultSetSize`.
	TotalSetSize string `json:"totalSetSize,omitempty"`
}

type FeatureAvailableMetadata

type FeatureAvailableMetadata struct {
	//
	Availabilty string `json:"availabilty,omitempty"`
	//
	FeatureName string `json:"featureName,omitempty"`
}

type FeatureSet

type FeatureSet struct {
	// Reserved for DocuSign.
	CurrencyFeatureSetPrices []CurrencyFeatureSetPrice `json:"currencyFeatureSetPrices,omitempty"`
	// Reserved for DocuSign.
	EnvelopeFee string `json:"envelopeFee,omitempty"`
	// Reserved for DocuSign.
	FeatureSetID string `json:"featureSetId,omitempty"`
	// Reserved for DocuSign.
	FixedFee string `json:"fixedFee,omitempty"`
	// Reserved for DocuSign.
	Is21CFRPart11 DSBool `json:"is21CFRPart11,omitempty"`
	// Reserved for DocuSign.
	IsActive DSBool `json:"isActive,omitempty"`
	// Reserved for DocuSign.
	IsEnabled DSBool `json:"isEnabled,omitempty"`
	// Reserved for DocuSign.
	Name string `json:"name,omitempty"`
	// Reserved for DocuSign.
	SeatFee string `json:"seatFee,omitempty"`
}

FeatureSet this object provides details about a feature set, or add-on product that is associated with an account. It is reserved for DocuSign internal use only.

type FileType

type FileType struct {
	//
	FileExtension string `json:"fileExtension,omitempty"`
	// The mime-type of a file type listed in a fileTypes collection.
	MimeType string `json:"mimeType,omitempty"`
}

type FileTypeList

type FileTypeList struct {
	// A collection of file types.
	FileTypes []FileType `json:"fileTypes,omitempty"`
}

type Filter

type Filter struct {
	// Action required.
	ActionRequired string `json:"actionRequired,omitempty"`
	//
	Expires string `json:"expires,omitempty"`
	//
	FolderIds string `json:"folderIds,omitempty"`
	//
	FromDateTime *time.Time `json:"fromDateTime,omitempty"`
	//
	IsTemplate DSBool `json:"isTemplate,omitempty"`
	// (Optional) The order in which to sort the results.
	//
	// Valid values are:
	//
	//
	// * `asc`: Ascending order.
	// * `desc`: Descending order.
	Order string `json:"order,omitempty"`
	//
	OrderBy string `json:"orderBy,omitempty"`
	//
	SearchTarget string `json:"searchTarget,omitempty"`
	//
	SearchText string `json:"searchText,omitempty"`
	// Filter status.
	Status string `json:"status,omitempty"`
	// Latest date to filter.
	ToDateTime *time.Time `json:"toDateTime,omitempty"`
}

type FirstName

type FirstName struct {
	TabBase
	TabGuidedForm
	TabPosition
	TabStyle
	TabValue
	// The height of the tab in pixels.
	Height string `json:"height,omitempty"`
	// Metadata that indicates whether the `height` property is editable.
	HeightMetadata *PropertyMetadata `json:"heightMetadata,omitempty"`
	// Reserved for DocuSign.
	LocalePolicy *LocalePolicyTab `json:"localePolicy,omitempty"`
	// Metadata that indicates whether the `toolTip` property is editable.
	ToolTipMetadata *PropertyMetadata `json:"toolTipMetadata,omitempty"`
	// The text of a tooltip that appears when a user hovers over a form field or tab.
	Tooltip string `json:"tooltip,omitempty"`
	// The width of the tab in pixels.
	Width string `json:"width,omitempty"`
	// Metadata that indicates whether the `width` property is editable.
	WidthMetadata *PropertyMetadata `json:"widthMetadata,omitempty"`
}

FirstName is a tab that displays the recipient's first name. This tab 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.

type Folder

type Folder struct {
	// This object describes errors that occur. It is only valid for responses and ignored in requests.
	ErrorDetails *ErrorDetails `json:"errorDetails,omitempty"`
	//
	Filter *Filter `json:"filter,omitempty"`
	// Unique identifier for the folder.
	FolderID string `json:"folderId,omitempty"`
	// A list of the envelopes in the specified folder or folders.
	FolderItems []FolderItemV2 `json:"folderItems,omitempty"`
	// A collection of folder objects returned in a response.
	Folders []Folder `json:"folders,omitempty"`
	//
	HasAccess string `json:"hasAccess,omitempty"`
	//
	HasSubFolders string `json:"hasSubFolders,omitempty"`
	//
	ItemCount string `json:"itemCount,omitempty"`
	//
	Name string `json:"name,omitempty"`
	//
	Owner *UserInfo `json:"owner,omitempty"`
	//
	ParentFolderID string `json:"parentFolderId,omitempty"`
	//
	ParentFolderURI string `json:"parentFolderUri,omitempty"`
	//
	SubFolderCount string `json:"subFolderCount,omitempty"`
	// Type of user:
	// - `type_owner`
	// - `type_participant`
	Type string `json:"type,omitempty"`
	// URI containing the user ID.
	URI string `json:"uri,omitempty"`
}

type FolderItemResponse

type FolderItemResponse struct {
	// The last position in the result set.
	EndPosition string `json:"endPosition,omitempty"`
	// A list of the envelopes in the specified folder or folders.
	FolderItems []FolderItemV2 `json:"folderItems,omitempty"`
	// 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 `json:"nextUri,omitempty"`
	// 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 `json:"previousUri,omitempty"`
	// The number of results returned in this response. Because you can filter which entries are included in the response, this value is always less than or equal to `totalSetSize`.
	ResultSetSize string `json:"resultSetSize,omitempty"`
	// The starting position of the current result set.
	StartPosition string `json:"startPosition,omitempty"`
	// The total number of items in the result.
	TotalRows string `json:"totalRows,omitempty"`
}

FolderItemResponse results from a folder item request.

type FolderItemV2

type FolderItemV2 struct {
	// Specifies the date and time this item was completed.
	CompletedDateTime *time.Time `json:"completedDateTime,omitempty"`
	// The date and time the item was created.
	CreatedDateTime *time.Time `json:"createdDateTime,omitempty"`
	// The envelope ID of the envelope status that failed to post.
	EnvelopeID string `json:"envelopeId,omitempty"`
	// URI that you can use to retrieve the bulk envelopes.
	EnvelopeURI string `json:"envelopeUri,omitempty"`
	// The date and time the envelope is set to expire.
	ExpireDateTime *time.Time `json:"expireDateTime,omitempty"`
	// Unique identifier for the folder.
	FolderID string `json:"folderId,omitempty"`
	//
	FolderURI string `json:"folderUri,omitempty"`
	// When **true**, indicates compliance with United States Food and Drug Administration (FDA) regulations on electronic records and electronic signatures (ERES).
	Is21CFRPart11 DSBool `json:"is21CFRPart11,omitempty"`
	//
	OwnerName string `json:"ownerName,omitempty"`
	// An array of recipient objects that provides details about the recipients of the envelope.
	Recipients *Recipients `json:"recipients,omitempty"`
	// Contains a URI for an endpoint that you can use to retrieve the recipients.
	RecipientsURI string `json:"recipientsUri,omitempty"`
	//
	SenderCompany string `json:"senderCompany,omitempty"`
	//
	SenderEmail string `json:"senderEmail,omitempty"`
	//
	SenderName string `json:"senderName,omitempty"`
	//
	SenderUserID string `json:"senderUserId,omitempty"`
	// The date and time the envelope was sent.
	SentDateTime *time.Time `json:"sentDateTime,omitempty"`
	// The status of the item.
	Status string `json:"status,omitempty"`
	//
	Subject string `json:"subject,omitempty"`
	// The ID of the template.
	TemplateID string `json:"templateId,omitempty"`
	//
	TemplateURI string `json:"templateUri,omitempty"`
}

FolderItemV2 information about folder item results.

type FolderItemsResponse

type FolderItemsResponse struct {
	// The last position in the result set.
	EndPosition string `json:"endPosition,omitempty"`
	// An array containing PowerForm data.
	Envelopes []EnvelopeSummary `json:"envelopes,omitempty"`
	// A collection of folder objects returned in a response.
	Folders []Folder `json:"folders,omitempty"`
	// 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 `json:"nextUri,omitempty"`
	// 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 `json:"previousUri,omitempty"`
	// The number of results returned in this response. Because you can filter which entries are included in the response, this value is always less than or equal to `totalSetSize`.
	ResultSetSize string `json:"resultSetSize,omitempty"`
	// The starting position of the current result set.
	StartPosition string `json:"startPosition,omitempty"`
	// The total number of items in the search's result set. This value is always greater than or equal to the value of `resultSetSize`.
	TotalSetSize string `json:"totalSetSize,omitempty"`
}

type FolderSharedItem

type FolderSharedItem struct {
	// This object describes errors that occur. It is only valid for responses and ignored in requests.
	ErrorDetails *ErrorDetails `json:"errorDetails,omitempty"`
	// Unique identifier for the folder.
	FolderID string `json:"folderId,omitempty"`
	// The folder name.
	Name string `json:"name,omitempty"`
	// Information about the user who owns the folder.
	Owner *UserInfo `json:"owner,omitempty"`
	// Unique identifier for the parent folder.
	ParentFolderID string `json:"parentFolderId,omitempty"`
	// URI for the parent folder.
	ParentFolderURI string `json:"parentFolderUri,omitempty"`
	// How the folder is shared. One of:
	//
	// - `not_shared`
	// - `shared_to`
	// - `shared_from`
	// - `shared_to_and_from`
	Shared string `json:"shared,omitempty"`
	// List of groups that share the folder.
	SharedGroups []MemberGroupSharedItem `json:"sharedGroups,omitempty"`
	// List of users that share the folder.
	SharedUsers []UserSharedItem `json:"sharedUsers,omitempty"`
	// URI containing the user ID.
	URI string `json:"uri,omitempty"`
	// Information about the user associated with the folder.
	User *UserInfo `json:"user,omitempty"`
}

type FoldersRequest

type FoldersRequest struct {
	// A comma-separated list of envelope IDs.
	EnvelopeIds []string `json:"envelopeIds,omitempty"`
	// A collection of folder objects returned in a response.
	Folders []Folder `json:"folders,omitempty"`
	//  The folder ID the envelope is being moved from.
	FromFolderID string `json:"fromFolderId,omitempty"`
}

FoldersRequest information for a folder request.

type FoldersResponse

type FoldersResponse struct {
	// The last position in the result set.
	EndPosition string `json:"endPosition,omitempty"`
	// A list of envelopes in this folder.
	Envelopes []EnvelopeSummary `json:"envelopes,omitempty"`
	// A collection of folder objects returned in a response.
	Folders []Folder `json:"folders,omitempty"`
	// 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 `json:"nextUri,omitempty"`
	// 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 `json:"previousUri,omitempty"`
	// The number of results returned in this response. Because you can filter which entries are included in the response, this value is always less than or equal to `totalSetSize`.
	ResultSetSize string `json:"resultSetSize,omitempty"`
	// The starting position of the current result set.
	StartPosition string `json:"startPosition,omitempty"`
	// The total number of items in the search's result set. This value is always greater than or equal to the value of `resultSetSize`.
	TotalSetSize string `json:"totalSetSize,omitempty"`
}

FoldersResponse folder management

type ForgottenPasswordInformation

type ForgottenPasswordInformation struct {
	// The answer to the first forgotten password challenge question.
	ForgottenPasswordAnswer1 string `json:"forgottenPasswordAnswer1,omitempty"`
	// The answer to the second forgotten password challenge question.
	ForgottenPasswordAnswer2 string `json:"forgottenPasswordAnswer2,omitempty"`
	// The answer to the third forgotten password challenge question.
	ForgottenPasswordAnswer3 string `json:"forgottenPasswordAnswer3,omitempty"`
	// The answer to the fourth forgotten password challenge question.
	ForgottenPasswordAnswer4 string `json:"forgottenPasswordAnswer4,omitempty"`
	// The first challenge question presented to a user who has forgotten their password.
	ForgottenPasswordQuestion1 string `json:"forgottenPasswordQuestion1,omitempty"`
	// The second challenge question presented to a user who has forgotten their password.
	ForgottenPasswordQuestion2 string `json:"forgottenPasswordQuestion2,omitempty"`
	// The third challenge question presented to a user who has forgotten their password.
	ForgottenPasswordQuestion3 string `json:"forgottenPasswordQuestion3,omitempty"`
	// The fourth challenge question presented to a user who has forgotten their password.
	ForgottenPasswordQuestion4 string `json:"forgottenPasswordQuestion4,omitempty"`
}

ForgottenPasswordInformation is a complex element that has up to four Question/Answer pairs for forgotten password information.

type FormDataItem

type FormDataItem struct {
	// This object describes errors that occur. It is only valid for responses and ignored in requests.
	ErrorDetails *ErrorDetails `json:"errorDetails,omitempty"`
	// The selected value in a list.
	ListSelectedValue string `json:"listSelectedValue,omitempty"`
	// The name of the form field.
	Name string `json:"name,omitempty"`
	// The initial value associated with the form field.
	OriginalValue string `json:"originalValue,omitempty"`
	// The current value associated with the form field.
	Value string `json:"value,omitempty"`
}

type FormulaTab

type FormulaTab struct {
	TabBase
	TabGuidedForm
	TabPosition
	TabStyle
	TabValue
	// 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.
	//
	// When an envelope is completed the information is available to the sender through the Form Data link in the DocuSign Console.
	//
	// This setting applies only to text boxes and does not affect list boxes, radio buttons, or check boxes.
	ConcealValueOnDocument DSBool `json:"concealValueOnDocument,omitempty"`
	// Metadata that indicates whether the `concealValueOnDocument` property is editable.
	ConcealValueOnDocumentMetadata *PropertyMetadata `json:"concealValueOnDocumentMetadata,omitempty"`
	// 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 DSBool `json:"disableAutoSize,omitempty"`
	// Metadata that indicates whether the `disableAutoSize` property is editable.
	DisableAutoSizeMetadata *PropertyMetadata `json:"disableAutoSizeMetadata,omitempty"`
	// Contains the formula
	// for calculating the value of
	// this tab.
	//
	// Use a tab's `tabLabel`,
	// enclosed in brackets,
	// to refer to it.
	//
	// For example,
	// you want to present the total cost
	// of two items, tax included.
	//
	// The cost of each item is stored
	// in number tabs labeled Item1 and Item2.
	// The tax rate is in a number tab
	// labeled TaxRate.
	//
	// The formula string for this property
	// would be:
	// `([Item1] + [Item2]) * (1 + [TaxRate])`
	//
	// See [Calculated Fields][calculatedfields]
	// in the DocuSign Support Center
	// to learn more about formulas.
	//
	// Maximum Length: 2000 characters
	//
	// [calculatedfields]: https://support.docusign.com/en/guides/ndse-user-guide-calculated-fields
	//
	Formula string `json:"formula,omitempty"`
	// Metadata indicating if the sender can edit the `formula` property.
	FormulaMetadata *PropertyMetadata `json:"formulaMetadata,omitempty"`
	// The height of the tab in pixels.
	Height string `json:"height,omitempty"`
	// Metadata that indicates whether the `height` property is editable.
	HeightMetadata *PropertyMetadata `json:"heightMetadata,omitempty"`
	// If this is a regular formula (no `paymentDetails` property is present):
	//
	// * **true**: The tab is hidden.
	// * **false**: The tab is shown.
	//
	// If the formula is payment item (a `paymentDetails` property is present):
	//
	// * **true**: The tab is displayed as a payment.
	// * **false**: The tab is displayed as a regular formula.
	//
	Hidden string `json:"hidden,omitempty"`
	// Metadata that indicates whether the `hidden` property is editable.
	HiddenMetadata *PropertyMetadata `json:"hiddenMetadata,omitempty"`
	// 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 DSBool `json:"isPaymentAmount,omitempty"`
	// Metadata that indicates whether the `isPaymentAmount` property is editable.
	IsPaymentAmountMetadata *PropertyMetadata `json:"isPaymentAmountMetadata,omitempty"`
	// Reserved for DocuSign.
	LocalePolicy *LocalePolicyTab `json:"localePolicy,omitempty"`
	// When set to **true**, the signer cannot change the data of the custom tab.
	Locked DSBool `json:"locked,omitempty"`
	// Metadata that indicates whether the `locked` property is editable.
	LockedMetadata *PropertyMetadata `json:"lockedMetadata,omitempty"`
	// An optional value that describes the maximum length of the property when the property is a string.
	MaxLength string `json:"maxLength,omitempty"`
	// Metadata that indicates whether the `maxLength` property is editable.
	MaxLengthMetadata *PropertyMetadata `json:"maxLengthMetadata,omitempty"`
	// The initial value of the tab when it was sent to the recipient.
	OriginalValue string `json:"originalValue,omitempty"`
	// Metadata that indicates whether the `originalValue` property is editable.
	OriginalValueMetadata *PropertyMetadata `json:"originalValueMetadata,omitempty"`
	// This property indicates
	// that this formula tab
	// is a payment item.
	// See [Requesting Payments Along with Signatures][paymentguide]
	// in the DocuSign Support Center
	// to learn more about payments.
	//
	// [paymentguide]:     https://support.docusign.com/en/guides/requesting-payments-along-with-signatures
	//
	PaymentDetails *PaymentDetails `json:"paymentDetails,omitempty"`
	// When set to **true** and shared is true, information must be entered in this field to complete the envelope.
	RequireAll DSBool `json:"requireAll,omitempty"`
	// Metadata that indicates whether the `requireAll` property is editable.
	RequireAllMetadata *PropertyMetadata `json:"requireAllMetadata,omitempty"`
	// Optional element for field markup. When set to **true**, the signer is required to initial when they modify a shared field.
	RequireInitialOnSharedChange DSBool `json:"requireInitialOnSharedChange,omitempty"`
	// Metadata that indicates whether the `requireInitialOnSharedChange` property is editable.
	RequireInitialOnSharedChangeMetadata *PropertyMetadata `json:"requireInitialOnSharedChangeMetadata,omitempty"`
	// When set to **true**, the signer is required to fill out this tab.
	Required TabRequired `json:"required,omitempty"`
	// Metadata that indicates whether the `required` property is editable.
	RequiredMetadata *PropertyMetadata `json:"requiredMetadata,omitempty"`
	// The number of decimal places to round to.
	RoundDecimalPlaces string `json:"roundDecimalPlaces,omitempty"`
	// Metadata that indicates whether the `roundDecimalPlaces` property is editable.
	RoundDecimalPlacesMetadata *PropertyMetadata `json:"roundDecimalPlacesMetadata,omitempty"`
	// When set to **true**, the sender must populate the tab before an envelope can be sent using the template.
	//
	// This value tab can only be changed by modifying (PUT) the template.
	//
	// Tabs with a `senderRequired` value of true cannot be deleted from an envelope.
	SenderRequired DSBool `json:"senderRequired,omitempty"`
	// Metadata that indicates whether the `senderRequired` property is editable.
	SenderRequiredMetadata *PropertyMetadata `json:"senderRequiredMetadata,omitempty"`
	// When set to **true**, this custom tab is shared.
	Shared DSBool `json:"shared,omitempty"`
	// Metadata that indicates whether the `shared` property is editable.
	SharedMetadata *PropertyMetadata `json:"sharedMetadata,omitempty"`
	// Metadata that indicates whether the `toolTip` property is editable.
	ToolTipMetadata *PropertyMetadata `json:"toolTipMetadata,omitempty"`
	// The text of a tooltip that appears when a user hovers over a form field or tab.
	Tooltip string `json:"tooltip,omitempty"`
	// The message displayed if the custom tab fails input validation (either custom of embedded).
	ValidationMessage string `json:"validationMessage,omitempty"`
	// Metadata that indicates whether the `validationMessage` property is editable.
	ValidationMessageMetadata *PropertyMetadata `json:"validationMessageMetadata,omitempty"`
	// A regular expression used to validate input for the tab.
	ValidationPattern string `json:"validationPattern,omitempty"`
	// Metadata that indicates whether the `validationPattern` property is editable.
	ValidationPatternMetadata *PropertyMetadata `json:"validationPatternMetadata,omitempty"`
	// The width of the tab in pixels.
	Width string `json:"width,omitempty"`
	// Metadata that indicates whether the `width` property is editable.
	WidthMetadata *PropertyMetadata `json:"widthMetadata,omitempty"`
}

FormulaTab is the value of a formula tab is calculated from the values of other number or date tabs in the document. When the recipient completes the underlying fields, the formula tab calculates and displays the result.

The `formula` property of the tab contains the references to the underlying tabs. See [Calculated Fields]calculatedfields in the DocuSign Support Center to learn more about formulas.

If a formula tab contains a `paymentDetails` property, the tab is considered a payment item. See [Requesting Payments Along with Signatures]paymentguide in the DocuSign Support Center to learn more about payments.

type FullName

type FullName struct {
	TabBase
	TabGuidedForm
	TabPosition
	TabStyle
	TabValue
	// The height of the tab in pixels.
	Height string `json:"height,omitempty"`
	// Metadata that indicates whether the `height` property is editable.
	HeightMetadata *PropertyMetadata `json:"heightMetadata,omitempty"`
	// Reserved for DocuSign.
	LocalePolicy *LocalePolicyTab `json:"localePolicy,omitempty"`
	// Metadata that indicates whether the `toolTip` property is editable.
	ToolTipMetadata *PropertyMetadata `json:"toolTipMetadata,omitempty"`
	// The text of a tooltip that appears when a user hovers over a form field or tab.
	Tooltip string `json:"tooltip,omitempty"`
	// The width of the tab in pixels.
	Width string `json:"width,omitempty"`
	// Metadata that indicates whether the `width` property is editable.
	WidthMetadata *PropertyMetadata `json:"widthMetadata,omitempty"`
}

FullName is a tab that displays the recipient's full name.

type GraphicsContext

type GraphicsContext struct {
	// The fill color to use for the overlay. Colors are typically specified by their RGB hex values, but you can also use a [friendly CSS color name](https://developer.mozilla.org/en-US/docs/Web/CSS/color_value).
	FillColor string `json:"fillColor,omitempty"`
	// The line color to use for the overlay. Colors are typically specified by their RGB hex values, but you can also use a [friendly CSS color name](https://developer.mozilla.org/en-US/docs/Web/CSS/color_value).
	LineColor string `json:"lineColor,omitempty"`
	// The line weight or thickness to use for the overlay.
	LineWeight string `json:"lineWeight,omitempty"`
}

type Group

type Group struct {
	// This object describes errors that occur. It is only valid for responses and ignored in requests.
	ErrorDetails *ErrorDetails `json:"errorDetails,omitempty"`
	// The DocuSign group ID for the group.
	GroupID string `json:"groupId,omitempty"`
	// The name of the group.
	GroupName string `json:"groupName,omitempty"`
	// The group type. Potential values for POST and PUT requests include:
	//
	// - `adminstrators`
	// - `everyone`
	// - `customGroup`
	//
	// <!-- More? To do -->
	GroupType string `json:"groupType,omitempty"`
	// The ID of the permission profile associated with the group. Possible values include:
	//
	// - `2301416` (for the `DocuSign Viewer` profile)
	// - `2301415` (for the `DocuSign Sender` profile)
	// - `2301414` (for the `Account Administrator` profile)
	PermissionProfileID string `json:"permissionProfileId,omitempty"`
	// A list of the users in the group.
	Users []UserInfo `json:"users,omitempty"`
	// The total number of users in the group.
	UsersCount string `json:"usersCount,omitempty"`
}

Group information about groups.

type GroupInformation

type GroupInformation struct {
	// The last position in the result set.
	EndPosition string `json:"endPosition,omitempty"`
	// A collection group objects containing information about the groups.
	Groups []Group `json:"groups,omitempty"`
	// 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 `json:"nextUri,omitempty"`
	// 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 `json:"previousUri,omitempty"`
	// The number of results returned in this response. Because you can filter which entries are included in the response, this value is always less than or equal to `totalSetSize`.
	ResultSetSize string `json:"resultSetSize,omitempty"`
	// The starting position of the current result set.
	StartPosition string `json:"startPosition,omitempty"`
	// The total number of items in the search's result set. This value is always greater than or equal to the value of `resultSetSize`.
	TotalSetSize string `json:"totalSetSize,omitempty"`
}

type IDCheckConfiguration

type IDCheckConfiguration struct {
	// A list of ID check security steps, each specifying an authorization type.
	AuthSteps []IDCheckSecurityStep `json:"authSteps,omitempty"`
	// Boolean that specifies whether the signature is the default signature for the user.
	IsDefault string `json:"isDefault,omitempty"`
	// The name of the signature.
	Name string `json:"name,omitempty"`
}

IDCheckConfiguration is a complex object specifying ID check configuration.

type IDCheckInformationInput

type IDCheckInformationInput struct {
	// An object that specifies recipient address information and how it is displayed.
	AddressInformationInput *AddressInformationInput `json:"addressInformationInput,omitempty"`
	// An object that specifies recipient date of birth information and how it is displayed.
	DobInformationInput *DobInformationInput `json:"dobInformationInput,omitempty"`
	// An object that specifies the last four digits of the recipient's Social Security Number (SSN).
	Ssn4InformationInput *Ssn4InformationInput `json:"ssn4InformationInput,omitempty"`
	// An object that specifies the recipient's Social Security Number (SSN) information. Note that ssn9 information cannot be returned in a response.
	Ssn9InformationInput *Ssn9InformationInput `json:"ssn9InformationInput,omitempty"`
}

IDCheckInformationInput is a complex element that contains input information related to a recipient ID check.

type IDCheckSecurityStep

type IDCheckSecurityStep struct {
	// Type of authorization used for the security check.
	AuthType string `json:"authType,omitempty"`
}

type InPersonSigner

type InPersonSigner struct {
	// If a value is provided, the recipient must enter the value as the access code to view and sign the envelope.
	//
	// Maximum Length: 50 characters and it must conform to the account's access code format setting.
	//
	// If blank, but the signer `accessCode` property is set in the envelope, then that value is used.
	//
	// If blank and the signer `accessCode` property is not set, then the access code is not required.
	AccessCode string `json:"accessCode,omitempty"`
	// Metadata that indicates whether the `accessCode` property is editable.
	//
	AccessCodeMetadata *PropertyMetadata `json:"accessCodeMetadata,omitempty"`
	// 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 `json:"addAccessCodeToEmail,omitempty"`
	// When **true**, auto navigation is set for the recipient.
	//
	AutoNavigation string `json:"autoNavigation,omitempty"`
	// When set to **true**, specifies that the signer can perform the signing ceremony offline.
	CanSignOffline DSBool `json:"canSignOffline,omitempty"`
	// Specifies whether the recipient is embedded or remote.
	//
	// If 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.
	//
	// Note: 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.
	//
	// Maximum length: 100 characters.
	ClientUserID string `json:"clientUserId,omitempty"`
	// Indicates the number of times that the recipient has been through a signing completion.
	//
	// If this number is greater than `0` for a signing group, only the user who previously completed may sign again.
	CompletedCount string `json:"completedCount,omitempty"`
	// Payment status for payment services.
	CreationReason string `json:"creationReason,omitempty"`
	// 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 `json:"customFields,omitempty"`
	// The date and time the recipient declined the document.
	DeclinedDateTime *time.Time `json:"declinedDateTime,omitempty"`
	// The reason the recipient declined the document.
	DeclinedReason string `json:"declinedReason,omitempty"`
	// When set to **true**,
	// this is the default recipient for the envelope.
	// This option is used when creating an envelope from a template.
	//
	DefaultRecipient DSBool `json:"defaultRecipient,omitempty"`
	// The date and time that the envelope was delivered to the recipient.
	DeliveredDateTime *time.Time `json:"deliveredDateTime,omitempty"`
	// Reserved for DocuSign.
	DeliveryMethod string `json:"deliveryMethod,omitempty"`
	// Metadata that indicates whether the `deliveryMethod` property is editable.
	//
	DeliveryMethodMetadata *PropertyMetadata `json:"deliveryMethodMetadata,omitempty"`
	// Specifies if the documents are 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.
	DocumentVisibility []DocumentVisibility `json:"documentVisibility,omitempty"`
	// The signer's email address in an eNotary flow.
	//
	// Use only when `inPersonSigningType` is `notary`.
	// For regular in-person-signer flow, use `signerEmail` instead.
	//
	Email string `json:"email,omitempty"`
	// Metadata that indicates if the sender can edit the signer's email address in an eNotary flow.
	EmailMetadata *PropertyMetadata `json:"emailMetadata,omitempty"`
	// An optional complex type that sets a specific email subject and body for this recipient's notification email.
	//
	// **Note**: If you use this field to set a specific email notification for one recipient, you must also set the email notification for the other recipients. Using this field for one or more recipients negates the Envelope `Subject` and `EmailBlurb` property settings.
	EmailNotification *RecipientEmailNotification `json:"emailNotification,omitempty"`
	// Specifies a sender-provided valid URL string for redirecting an embedded recipient. When this option is used, the embedded recipient still receives an email from DocuSign, just as a remote recipient would. When the recipient clicks the document link in the email, the recipient is redirected through DocuSign to the specified URL to complete the required 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.
	//
	// If 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 launched by a partner.
	//
	// It is important to understand 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 processes for establishing the recipient's identity. In this workflow the recipient goes through the sending application before the embedded signing or viewing process is 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.
	//
	// If 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 for the recipient or envelope. The merge fields are enclosed in double brackets.
	//
	// *Example*:
	//
	// `http://senderHost/[[mergeField1]]/ beginSigningSession? [[mergeField2]]&[[mergeField3]]`
	EmbeddedRecipientStartURL string `json:"embeddedRecipientStartURL,omitempty"`
	// This object describes errors that occur. It is only valid for responses and ignored in requests.
	ErrorDetails *ErrorDetails `json:"errorDetails,omitempty"`
	// 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.
	//
	// When 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 `json:"excludedDocuments,omitempty"`
	// Reserved for DocuSign.
	FaxNumber string `json:"faxNumber,omitempty"`
	// Reserved for DocuSign.
	FaxNumberMetadata *PropertyMetadata `json:"faxNumberMetadata,omitempty"`
	// The email address of the signing host.
	// This is the DocuSign user that is hosting the in-person signing session.
	//
	// Required when `inPersonSigningType` is `inPersonSigner`.
	// For eNotary flow, use `email` instead.
	//
	// Maximum Length: 100 characters.
	//
	HostEmail string `json:"hostEmail,omitempty"`
	// Metadata that indicates if the sender can edit the email address of the signing host.
	HostEmailMetadata *PropertyMetadata `json:"hostEmailMetadata,omitempty"`
	// The name of the signing host.
	// This is the DocuSign user that is hosting the in-person signing session.
	//
	// Required when `inPersonSigningType` is `inPersonSigner`.
	// For eNotary flow, use `name` instead.
	//
	// Maximum Length: 100 characters.
	//
	HostName string `json:"hostName,omitempty"`
	// Metadata that indicates whether the `hostName` property is editable.
	//
	HostNameMetadata *PropertyMetadata `json:"hostNameMetadata,omitempty"`
	// The name of the authentication check to use. This value must match one of the authentication types that the account uses. The names of these authentication types appear in the web console sending interface in the Identify list for a recipient. This setting overrides any default authentication setting.
	//
	// **Example**: Your account has ID Check and SMS Authentication available. 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 $. For SMS, you would use SMS Auth $, and you would also need to add a phone number to the smsAuthentication node.
	IDCheckConfigurationName string `json:"idCheckConfigurationName,omitempty"`
	// Metadata that indicates whether the `idCheckConfigurationName` property is editable.
	//
	IDCheckConfigurationNameMetadata *PropertyMetadata `json:"idCheckConfigurationNameMetadata,omitempty"`
	// An object that contains input information related to a recipient ID check.
	IDCheckInformationInput *IDCheckInformationInput `json:"idCheckInformationInput,omitempty"`
	// Specifies whether the envelope uses the eNotary feature.
	// Valid values:
	//
	// * `inPersonSigner` The envelope uses the normal in-person signing flow.
	// * `notary`: The envelope uses the eNotary in-person signing flow.
	//
	InPersonSigningType string `json:"inPersonSigningType,omitempty"`
	// Metadata that indicates whether the `inPersonSigningType` property is editable.
	//
	InPersonSigningTypeMetadata *PropertyMetadata `json:"inPersonSigningTypeMetadata,omitempty"`
	// 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 DSBool `json:"inheritEmailNotificationConfiguration,omitempty"`
	// Reserved for DocuSign.
	LockedRecipientPhoneAuthEditable string `json:"lockedRecipientPhoneAuthEditable,omitempty"`
	// Reserved for DocuSign.
	LockedRecipientSmsEditable string `json:"lockedRecipientSmsEditable,omitempty"`
	// The signer's full legal name in an eNotary flow.
	//
	// Required when `inPersonSigningType` is `notary`.
	// For regular in-person-signer flow, use `signerName` instead.
	//
	// Maximum Length: 100 characters.
	//
	Name string `json:"name,omitempty"`
	// Metadata that indicates if the sender can edit the signer's full legal name in an eNotary flow.
	NameMetadata *PropertyMetadata `json:"nameMetadata,omitempty"`
	// Information about the notary host. The following information is required when using the eNotary in-person signing flow:
	//
	// - `name`: The name of the notary.
	// - `email`: The email address of the notary.
	// - `recipientId`: A unique ID number for the notary signing host.
	NotaryHost *NotaryHost `json:"notaryHost,omitempty"`
	// A note sent to the in-person signer in the signing email.
	// This note is visible only to this recipient.
	//
	// Maximum Length: 1000 characters.
	//
	Note string `json:"note,omitempty"`
	// Metadata that indicates if the sender can edit the note sent to the in-person signer in the signing email.
	NoteMetadata *PropertyMetadata `json:"noteMetadata,omitempty"`
	// A complex type that contains the following elements:
	//
	// * `recipMayProvideNumber` - Boolean. When set to **true**, the recipient can use whatever phone number they choose.
	// * `senderProvidedNumbers` - ArrayOfString.  A list of phone numbers the recipient can use.
	// * `recordVoicePrint` - Reserved.
	// * `validateRecipProvidedNumber` - Reserved.
	PhoneAuthentication DSBool `json:"phoneAuthentication,omitempty"`
	// Reserved for DocuSign.
	RecipientAttachments []RecipientAttachment `json:"recipientAttachments,omitempty"`
	// Information about the recipient's authentication status.
	RecipientAuthenticationStatus *AuthenticationStatus `json:"recipientAuthenticationStatus,omitempty"`
	// Metadata that indicates whether the `recipientFeature` property is editable.
	//
	RecipientFeatureMetadata []FeatureAvailableMetadata `json:"recipientFeatureMetadata,omitempty"`
	// Unique for the recipient. It is used by the tab element to indicate which recipient is to sign the Document.
	RecipientID string `json:"recipientId,omitempty"`
	// The globally-unique identifier (GUID) for a specific recipient on a specific envelope. If the same recipient is associated with multiple envelopes, they will have a different GUID for each one.
	RecipientIDGUID string `json:"recipientIdGuid,omitempty"`
	// 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.](https://developers.docusign.com/esign-rest-api/guides/standards-based-signatures)
	RecipientSignatureProviders []RecipientSignatureProvider `json:"recipientSignatureProviders,omitempty"`
	// Specifies whether the recipient creates the tabs.
	RecipientSuppliesTabs string `json:"recipientSuppliesTabs,omitempty"`
	// The recipient type, as specified by the following values:
	// - `agents`: Agent recipients can add name and email information for recipients that appear after the agent in routing order.
	// - `carbonCopies`: Carbon copy recipients get a copy of the envelope but don't need to sign, initial, date, or add information to any of the documents. This type of recipient can be used in any routing order.
	// - `certifiedDeliveries`: Certified delivery recipients must receive the completed documents for the envelope to be completed. They don't need to sign, initial, date, or add information to any of the documents.
	// - `editors`: Editors have the same management and access rights for the envelope as the sender. Editors can add name and email information, add or change the routing order, set authentication options, and can edit signature/initial tabs and data fields for the remaining recipients.
	// - `inPersonSigners`: In-person recipients are DocuSign users who act as signing hosts in the same physical location as the signer.
	// - `intermediaries`: Intermediary recipients can optionally add name and email information for recipients at the same or subsequent level in the routing order.
	// - `seals`: Electronic seal recipients represent legal entities.
	// - `signers`: Signers are recipients who must sign, initial, date, or add data to form fields on the documents in the envelope.
	// - `witnesses`: Witnesses are recipients whose signatures affirm that the identified signers have signed the documents in the envelope.
	RecipientType string `json:"recipientType,omitempty"`
	// Metadata that indicates whether the `recipientType` property is editable.
	//
	RecipientTypeMetadata *PropertyMetadata `json:"recipientTypeMetadata,omitempty"`
	// 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 DSBool `json:"requireIdLookup,omitempty"`
	// Metadata that indicates whether the `requireIdLookup` property is editable.
	//
	RequireIDLookupMetadata *PropertyMetadata `json:"requireIdLookupMetadata,omitempty"`
	// When set to **true**, the signer must print, sign, and upload or fax the signed documents to DocuSign.
	RequireSignOnPaper DSBool `json:"requireSignOnPaper,omitempty"`
	// 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.
	//
	// This parameter should only be used to select a SAFE-BioPharma certificate. New integrations should use the `recipientSignatureProviders` parameter for other types of digital certificates.
	//
	// Set this parameter to `safe` to use a SAFE-BioPharma certificate.
	//
	// The signer must be enrolled in the SAFE program to sign with a SAFE certificate.
	RequireSignerCertificate string `json:"requireSignerCertificate,omitempty"`
	// Optional element. Specifies the role name associated with the recipient.<br/><br/>This is required when working with template recipients.
	RoleName string `json:"roleName,omitempty"`
	// Specifies the routing order of the recipient in the envelope.
	RoutingOrder string `json:"routingOrder,omitempty"`
	// Metadata that indicates whether the `routingOrder` property is editable.
	//
	RoutingOrderMetadata *PropertyMetadata `json:"routingOrderMetadata,omitempty"`
	// The date and time the envelope was sent.
	SentDateTime *time.Time `json:"sentDateTime,omitempty"`
	// 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).
	SignInEachLocation DSBool `json:"signInEachLocation,omitempty"`
	// Metadata that indicates if the sender can edit the `signInEachLocation` property.
	SignInEachLocationMetadata *PropertyMetadata `json:"signInEachLocationMetadata,omitempty"`
	// Allows the sender to pre-specify the signature name, signature initials and signature font used in the signature stamp for the recipient.
	//
	// Used only with recipient types In Person Signers and Signers.
	//
	SignatureInfo *RecipientSignatureInformation `json:"signatureInfo,omitempty"`
	// Reserved for DocuSign.
	SignedDateTime *time.Time `json:"signedDateTime,omitempty"`
	// The in-person signer's email address.
	//
	// Required when `inPersonSigningType` is `inPersonSigner`.
	// For eNotary flow, use `email` instead.
	//
	// Maximum Length: 100 characters.
	//
	//
	SignerEmail string `json:"signerEmail,omitempty"`
	// Metadata that indicates if the sender can edit the in-person signer's email address.
	SignerEmailMetadata *PropertyMetadata `json:"signerEmailMetadata,omitempty"`
	// The first name of the in-person signer.
	SignerFirstName string `json:"signerFirstName,omitempty"`
	// Metadata that indicates if the sender can edit the first name of the in-person signer.
	SignerFirstNameMetadata *PropertyMetadata `json:"signerFirstNameMetadata,omitempty"`
	// The last name of the in-person siger.
	SignerLastName string `json:"signerLastName,omitempty"`
	// Metadata that indicates if the sender can edit the last name of the in-person signer.
	SignerLastNameMetadata *PropertyMetadata `json:"signerLastNameMetadata,omitempty"`
	// The in-person signer's full legal name.
	//
	// Required when `inPersonSigningType` is `inPersonSigner`.
	// For eNotary flow, use `name` instead.
	//
	// Maximum Length: 100 characters.
	//
	SignerName string `json:"signerName,omitempty"`
	// Metadata that indicates if the sender can edit the in-person signer's full legal name.
	SignerNameMetadata *PropertyMetadata `json:"signerNameMetadata,omitempty"`
	// The id of the signing group of which the in-person signer is a member.
	SigningGroupID string `json:"signingGroupId,omitempty"`
	// Metadata that indicates whether the `signingGroupId` property is editable.
	//
	SigningGroupIDMetadata *PropertyMetadata `json:"signingGroupIdMetadata,omitempty"`
	// The display name for the signing group.
	//
	// Maximum Length: 100 characters.
	SigningGroupName string `json:"signingGroupName,omitempty"`
	// A complex type that contains information about users in the signing group.
	SigningGroupUsers []UserInfo `json:"signingGroupUsers,omitempty"`
	// Contains the element senderProvidedNumbers which is an Array  of phone numbers the recipient can use for SMS text authentication.
	//
	SmsAuthentication *RecipientSMSAuthentication `json:"smsAuthentication,omitempty"`
	//  Lists the social ID type that can be used for recipient authentication.
	SocialAuthentications []SocialAuthentication `json:"socialAuthentications,omitempty"`
	// Recipient status.
	// <!-- todo -->
	//
	Status string `json:"status,omitempty"`
	// Reserved for DocuSign.
	StatusCode string `json:"statusCode,omitempty"`
	// A list of `signHere` tabs, which can be used to add a visual representation for an electronic seal in a document.
	Tabs *Tabs `json:"tabs,omitempty"`
	// When set to **true**, the sender cannot change any attributes of the recipient. Used only when working with template recipients.
	TemplateLocked DSBool `json:"templateLocked,omitempty"`
	// When set to **true**, the sender may not remove the recipient. Used only when working with template recipients.
	TemplateRequired DSBool `json:"templateRequired,omitempty"`
	// The total number of tabs in the documents.
	TotalTabCount string `json:"totalTabCount,omitempty"`
	// The ID of the user to access. Generally this is the ID of the current authenticated user, but if the authenticated user is an Administrator on the account, `userId` can represent another user whom the Administrator is accessing.
	//
	UserID string `json:"userId,omitempty"`
}

InPersonSigner is an in-person recipient is a DocuSign user, acting as a Signing Host, who is in the same physical location as the signer. To learn about fields used for eNotary feature, see the [EnvelopeRecipients resource][enveloperecipientsInPerson].

[enveloperecipientsInPerson]: /https://developers.docusign.com/esign-rest-api/reference/Envelopes/EnvelopeRecipients/#in-person-signers-recipient

type InitialHere

type InitialHere struct {
	TabBase
	TabGuidedForm
	TabPosition
	// The height of the tab in pixels.
	Height string `json:"height,omitempty"`
	// Metadata that indicates whether the `height` property is editable.
	HeightMetadata *PropertyMetadata `json:"heightMetadata,omitempty"`
	// The name of the tab. For example, `Sign Here` or `Initial Here`.
	Name string `json:"name,omitempty"`
	// Metadata that indicates whether the `name` property is editable.
	NameMetadata *PropertyMetadata `json:"nameMetadata,omitempty"`
	// When set to **true**, the recipient does not need to complete this tab to complete the signing process.
	Optional DSBool `json:"optional,omitempty"`
	// Metadata that indicates whether the `optional` property is editable.
	OptionalMetadata *PropertyMetadata `json:"optionalMetadata,omitempty"`
	// Sets the size of the tab. This field accepts values from `0.5` to `1.0`, where `1.0` represents full size and `0.5` is 50% of full size.
	ScaleValue string `json:"scaleValue,omitempty"`
	// Metadata that indicates whether the `scaleValue` property is editable.
	ScaleValueMetadata *PropertyMetadata `json:"scaleValueMetadata,omitempty"`
	// Metadata that indicates whether the `toolTip` property is editable.
	ToolTipMetadata *PropertyMetadata `json:"toolTipMetadata,omitempty"`
	// The text of a tooltip that appears when a user hovers over a form field or tab.
	Tooltip string `json:"tooltip,omitempty"`
	// The width of the tab in pixels.
	Width string `json:"width,omitempty"`
	// Metadata that indicates whether the `width` property is editable.
	WidthMetadata *PropertyMetadata `json:"widthMetadata,omitempty"`
}

InitialHere is a tab that allows the recipient to initial the document. May be optional.

type InlineTemplate

type InlineTemplate struct {
	// 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 *CustomFields `json:"customFields,omitempty"`
	// Complex element contains the details on the documents in the envelope.
	Documents []Document `json:"documents,omitempty"`
	// A container used to send documents to recipients. The envelope carries information about the sender and timestamps to indicate the progress of the delivery procedure. It can contain collections of Documents, Tabs and Recipients.
	Envelope *Envelope `json:"envelope,omitempty"`
	// An array of recipient objects that provides details about the recipients of the envelope.
	Recipients *Recipients `json:"recipients,omitempty"`
	// Specifies the order in which templates are overlaid.
	Sequence string `json:"sequence,omitempty"`
}

type IntegratedUserInfoList

type IntegratedUserInfoList struct {
	//
	AllUsersSelected string `json:"allUsersSelected,omitempty"`
	// The last position in the result set.
	EndPosition string `json:"endPosition,omitempty"`
	// 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 `json:"nextUri,omitempty"`
	// 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 `json:"previousUri,omitempty"`
	// The number of results returned in this response. Because you can filter which entries are included in the response, this value is always less than or equal to `totalSetSize`.
	ResultSetSize string `json:"resultSetSize,omitempty"`
	// The starting position of the current result set.
	StartPosition string `json:"startPosition,omitempty"`
	// The total number of items in the search's result set. This value is always greater than or equal to the value of `resultSetSize`.
	TotalSetSize string `json:"totalSetSize,omitempty"`
	// User management information.
	Users []UserInfo `json:"users,omitempty"`
}

type Intermediary

type Intermediary struct {
	// If a value is provided, the recipient must enter the value as the access code to view and sign the envelope.
	//
	// Maximum Length: 50 characters and it must conform to the account's access code format setting.
	//
	// If blank, but the signer `accessCode` property is set in the envelope, then that value is used.
	//
	// If blank and the signer `accessCode` property is not set, then the access code is not required.
	AccessCode string `json:"accessCode,omitempty"`
	// Metadata that indicates if the sender can edit the `accessCode` property.
	AccessCodeMetadata *PropertyMetadata `json:"accessCodeMetadata,omitempty"`
	// 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 `json:"addAccessCodeToEmail,omitempty"`
	// Specifies whether the recipient is embedded or remote.
	//
	// If 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.
	//
	// Note: 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.
	//
	// Maximum length: 100 characters.
	ClientUserID string `json:"clientUserId,omitempty"`
	// Indicates the number of times that the recipient has been through a signing completion for the envelope.
	//
	// If this number is greater than 0 for a signing group, only the user who previously completed may sign again.
	CompletedCount string `json:"completedCount,omitempty"`
	// 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 `json:"customFields,omitempty"`
	// The date and time the recipient declined the document.
	DeclinedDateTime *time.Time `json:"declinedDateTime,omitempty"`
	// The reason the recipient declined the document.
	DeclinedReason string `json:"declinedReason,omitempty"`
	// The date and time that the envelope was delivered to the recipient.
	DeliveredDateTime *time.Time `json:"deliveredDateTime,omitempty"`
	// Reserved for DocuSign.
	DeliveryMethod string `json:"deliveryMethod,omitempty"`
	// Reserved for DocuSign.
	DeliveryMethodMetadata *PropertyMetadata `json:"deliveryMethodMetadata,omitempty"`
	// A list of documentVisibility objects, which define a recipient's read/write access to a document.
	DocumentVisibility []DocumentVisibility `json:"documentVisibility,omitempty"`
	// Email id of the recipient. Notification of the document to sign is sent to this email id.
	//
	// Maximum length: 100 characters.
	Email string `json:"email,omitempty"`
	// Metadata that indicates if the sender can edit the email id of the recipient.
	EmailMetadata *PropertyMetadata `json:"emailMetadata,omitempty"`
	// An optional complex type that sets a specific email subject and body for this recipient's notification email.
	//
	// **Note**: If you use this field to set a specific email notification for one recipient, you must also set the email notification for the other recipients. Using this field for one or more recipients negates the Envelope `Subject` and `EmailBlurb` property settings.
	EmailNotification *RecipientEmailNotification `json:"emailNotification,omitempty"`
	// Specifies a sender-provided valid URL string for redirecting an embedded recipient. When this option is used, the embedded recipient still receives an email from DocuSign, just as a remote recipient would. When the recipient clicks the document link in the email, the recipient is redirected through DocuSign to the specified URL to complete the required 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.
	//
	// If 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 launched by a partner.
	//
	// It is important to understand 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 processes for establishing the recipient's identity. In this workflow the recipient goes through the sending application before the embedded signing or viewing process is 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.
	//
	// If 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 for the recipient or envelope. The merge fields are enclosed in double brackets.
	//
	// *Example*:
	//
	// `http://senderHost/[[mergeField1]]/ beginSigningSession? [[mergeField2]]&[[mergeField3]]`
	EmbeddedRecipientStartURL string `json:"embeddedRecipientStartURL,omitempty"`
	// This object describes errors that occur. It is only valid for responses and ignored in requests.
	ErrorDetails *ErrorDetails `json:"errorDetails,omitempty"`
	// 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.
	//
	// When 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 DSBool `json:"excludedDocuments,omitempty"`
	// Reserved for DocuSign.
	FaxNumber string `json:"faxNumber,omitempty"`
	// Metadata that indicates whether the `faxNumber` property is editable.
	//
	FaxNumberMetadata *PropertyMetadata `json:"faxNumberMetadata,omitempty"`
	// The recipient's first name. Maximum Length: 50 characters.
	FirstName string `json:"firstName,omitempty"`
	// Metadata that indicates if the sender can edit the recipient's first name.
	FirstNameMetadata *PropertyMetadata `json:"firstNameMetadata,omitempty"`
	// Reserved for DocuSign.
	FullName string `json:"fullName,omitempty"`
	// Reserved for DocuSign.
	FullNameMetadata *PropertyMetadata `json:"fullNameMetadata,omitempty"`
	// The name of the authentication check to use. This value must match one of the authentication types that the account uses. The names of these authentication types appear in the web console sending interface in the Identify list for a recipient. This setting overrides any default authentication setting.
	//
	// **Example**: Your account has ID Check and SMS Authentication available. 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 $. For SMS, you would use SMS Auth $, and you would also need to add a phone number to the smsAuthentication node.
	IDCheckConfigurationName string `json:"idCheckConfigurationName,omitempty"`
	// Metadata that indicates if the sender can edit the `idCheckConfigurationName` property.
	IDCheckConfigurationNameMetadata *PropertyMetadata `json:"idCheckConfigurationNameMetadata,omitempty"`
	// An object that contains input information related to a recipient ID check.
	IDCheckInformationInput *IDCheckInformationInput `json:"idCheckInformationInput,omitempty"`
	// 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 DSBool `json:"inheritEmailNotificationConfiguration,omitempty"`
	// The recipient's last name.
	LastName string `json:"lastName,omitempty"`
	// Metadata that indicates if the sender can edit the recipient's last name.
	LastNameMetadata *PropertyMetadata `json:"lastNameMetadata,omitempty"`
	// Reserved for DocuSign.
	LockedRecipientPhoneAuthEditable string `json:"lockedRecipientPhoneAuthEditable,omitempty"`
	// Reserved for DocuSign.
	LockedRecipientSmsEditable string `json:"lockedRecipientSmsEditable,omitempty"`
	// The full legal name of the recipient.
	Name string `json:"name,omitempty"`
	// Metadata that indicates if the sender can edit the full legal name of the recipient.
	NameMetadata *PropertyMetadata `json:"nameMetadata,omitempty"`
	// A note sent to the recipient in the signing email.
	// This note is unique to this recipient.
	// In the user interface,
	// it appears near the upper left corner
	// of the document
	// on the signing screen.
	//
	// Maximum Length: 1000 characters.
	//
	Note string `json:"note,omitempty"`
	// Metadata that indicates if the sender can edit the note to the recipient.
	NoteMetadata *PropertyMetadata `json:"noteMetadata,omitempty"`
	// A complex type that contains the following elements:
	//
	// * `recipMayProvideNumber` - Boolean. When set to **true**, the recipient can use whatever phone number they choose.
	// * `senderProvidedNumbers` - ArrayOfString.  A list of phone numbers the recipient can use.
	// * `recordVoicePrint` - Reserved.
	// * `validateRecipProvidedNumber` - Reserved.
	PhoneAuthentication DSBool `json:"phoneAuthentication,omitempty"`
	// Reserved for DocuSign.
	RecipientAttachments []RecipientAttachment `json:"recipientAttachments,omitempty"`
	// Information about the recipient's authentication status.
	RecipientAuthenticationStatus *AuthenticationStatus `json:"recipientAuthenticationStatus,omitempty"`
	// Metadata about the features that are supported for the recipient type.
	RecipientFeatureMetadata []FeatureAvailableMetadata `json:"recipientFeatureMetadata,omitempty"`
	// Unique for the recipient. It is used by the tab element to indicate which recipient is to sign the Document.
	RecipientID string `json:"recipientId,omitempty"`
	// The globally-unique identifier (GUID) for a specific recipient on a specific envelope. If the same recipient is associated with multiple envelopes, they will have a different GUID for each one.
	RecipientIDGUID string `json:"recipientIdGuid,omitempty"`
	// The recipient type, as specified by the following values:
	// - `agents`: Agent recipients can add name and email information for recipients that appear after the agent in routing order.
	// - `carbonCopies`: Carbon copy recipients get a copy of the envelope but don't need to sign, initial, date, or add information to any of the documents. This type of recipient can be used in any routing order.
	// - `certifiedDeliveries`: Certified delivery recipients must receive the completed documents for the envelope to be completed. They don't need to sign, initial, date, or add information to any of the documents.
	// - `editors`: Editors have the same management and access rights for the envelope as the sender. Editors can add name and email information, add or change the routing order, set authentication options, and can edit signature/initial tabs and data fields for the remaining recipients.
	// - `inPersonSigners`: In-person recipients are DocuSign users who act as signing hosts in the same physical location as the signer.
	// - `intermediaries`: Intermediary recipients can optionally add name and email information for recipients at the same or subsequent level in the routing order.
	// - `seals`: Electronic seal recipients represent legal entities.
	// - `signers`: Signers are recipients who must sign, initial, date, or add data to form fields on the documents in the envelope.
	// - `witnesses`: Witnesses are recipients whose signatures affirm that the identified signers have signed the documents in the envelope.
	RecipientType string `json:"recipientType,omitempty"`
	// Metadata that indicates if the sender can edit the recipient type.
	RecipientTypeMetadata *PropertyMetadata `json:"recipientTypeMetadata,omitempty"`
	// 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 DSBool `json:"requireIdLookup,omitempty"`
	// Metadata that indicates whether the `requireIdLookup` property is editable.
	//
	RequireIDLookupMetadata *PropertyMetadata `json:"requireIdLookupMetadata,omitempty"`
	// Optional element. Specifies the role name associated with the recipient.<br/><br/>This is required when working with template recipients.
	RoleName string `json:"roleName,omitempty"`
	// Specifies the routing order of the recipient in the envelope.
	RoutingOrder string `json:"routingOrder,omitempty"`
	// Metadata that indicates if the sender can edit the routing order for the recipient.
	RoutingOrderMetadata *PropertyMetadata `json:"routingOrderMetadata,omitempty"`
	// The date and time the envelope was sent.
	SentDateTime *time.Time `json:"sentDateTime,omitempty"`
	// Reserved for DocuSign.
	SignedDateTime *time.Time `json:"signedDateTime,omitempty"`
	// The id of the signing group of which the recipient is a member, if applicable.
	SigningGroupID string `json:"signingGroupId,omitempty"`
	// Metadata that indicates if the sender can edit the signing group id.
	SigningGroupIDMetadata *PropertyMetadata `json:"signingGroupIdMetadata,omitempty"`
	// The display name for the signing group.
	//
	// Maximum Length: 100 characters.
	SigningGroupName string `json:"signingGroupName,omitempty"`
	// A complex type that contains information about users in the signing group.
	SigningGroupUsers []UserInfo `json:"signingGroupUsers,omitempty"`
	// Contains the element senderProvidedNumbers which is an Array  of phone numbers the recipient can use for SMS text authentication.
	//
	SmsAuthentication *RecipientSMSAuthentication `json:"smsAuthentication,omitempty"`
	//  Lists the social ID type that can be used for recipient authentication.
	SocialAuthentications []SocialAuthentication `json:"socialAuthentications,omitempty"`
	// Recipient status.
	// <!-- todo -->
	//
	Status string `json:"status,omitempty"`
	// Reserved for DocuSign.
	StatusCode string `json:"statusCode,omitempty"`
	// When set to **true**, the sender cannot change any attributes of the recipient. Used only when working with template recipients.
	TemplateLocked DSBool `json:"templateLocked,omitempty"`
	// When set to **true**, the sender may not remove the recipient. Used only when working with template recipients.
	TemplateRequired DSBool `json:"templateRequired,omitempty"`
	// The total number of tabs in the documents.
	TotalTabCount string `json:"totalTabCount,omitempty"`
	// The ID of the user to access. Generally this is the ID of the current authenticated user, but if the authenticated user is an Administrator on the account, `userId` can represent another user whom the Administrator is accessing.
	//
	UserID string `json:"userId,omitempty"`
}

type Jurisdiction

type Jurisdiction struct {
	//
	AllowSystemCreatedSeal DSBool `json:"allowSystemCreatedSeal,omitempty"`
	//
	AllowUserUploadedSeal DSBool `json:"allowUserUploadedSeal,omitempty"`
	//
	CommissionIDInSeal DSBool `json:"commissionIdInSeal,omitempty"`
	//
	County string `json:"county,omitempty"`
	//
	CountyInSeal DSBool `json:"countyInSeal,omitempty"`
	//
	Enabled DSBool `json:"enabled,omitempty"`
	//
	JurisdictionID string `json:"jurisdictionId,omitempty"`
	//
	Name string `json:"name,omitempty"`
	//
	NotaryPublicInSeal DSBool `json:"notaryPublicInSeal,omitempty"`
	//
	StateNameInSeal DSBool `json:"stateNameInSeal,omitempty"`
}

type LastName

type LastName struct {
	TabBase
	TabGuidedForm
	TabPosition
	TabStyle
	TabValue
	// The height of the tab in pixels.
	Height string `json:"height,omitempty"`
	// Metadata that indicates whether the `height` property is editable.
	HeightMetadata *PropertyMetadata `json:"heightMetadata,omitempty"`
	// Reserved for DocuSign.
	LocalePolicy *LocalePolicyTab `json:"localePolicy,omitempty"`
	// Metadata that indicates whether the `toolTip` property is editable.
	ToolTipMetadata *PropertyMetadata `json:"toolTipMetadata,omitempty"`
	// The text of a tooltip that appears when a user hovers over a form field or tab.
	Tooltip string `json:"tooltip,omitempty"`
	// The width of the tab in pixels.
	Width string `json:"width,omitempty"`
	// Metadata that indicates whether the `width` property is editable.
	WidthMetadata *PropertyMetadata `json:"widthMetadata,omitempty"`
}

LastName is a tab that displays the recipient's last name. This tab 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.

type List

type List struct {
	TabBase
	TabGuidedForm
	TabPosition
	TabValue
	// When set to **true**, the information in the tab is bold.
	Bold string `json:"bold,omitempty"`
	// Metadata that indicates whether the `bold` property is editable.
	BoldMetadata *PropertyMetadata `json:"boldMetadata,omitempty"`
	// The font to be used for the tab value. Supported fonts include:
	//
	// - Default
	// - Arial
	// - ArialNarrow
	// - Calibri
	// - CourierNew
	// - Garamond
	// - Georgia
	// - Helvetica
	// - LucidaConsole
	// - MSGothic
	// - MSMincho
	// - OCR-A
	// - Tahoma
	// - TimesNewRoman
	// - Trebuchet
	// - Verdana
	//
	Font string `json:"font,omitempty"`
	// The font color to use for the information in the tab. Possible values are:
	//
	// - Black
	// - BrightBlue
	// - BrightRed
	// - DarkGreen
	// - DarkRed
	// - Gold
	// - Green
	// - NavyBlue
	// - Purple
	// - White
	//
	FontColor string `json:"fontColor,omitempty"`
	// Metadata that indicates whether the `fontColor` property is editable.
	FontColorMetadata *PropertyMetadata `json:"fontColorMetadata,omitempty"`
	// Metadata that indicates whether the `font` property is editable.
	FontMetadata *PropertyMetadata `json:"fontMetadata,omitempty"`
	// The font size used for the information in the tab. Possible values are:
	//
	// - Size7
	// - Size8
	// - Size9
	// - Size10
	// - Size11
	// - Size12
	// - Size14
	// - Size16
	// - Size18
	// - Size20
	// - Size22
	// - Size24
	// - Size26
	// - Size28
	// - Size36
	// - Size48
	// - Size72
	FontSize string `json:"fontSize,omitempty"`
	// Metadata that indicates whether the `fontSize` property is editable.
	FontSizeMetadata *PropertyMetadata `json:"fontSizeMetadata,omitempty"`
	// The height of the tab in pixels.
	Height string `json:"height,omitempty"`
	// Metadata that indicates whether the `height` property is editable.
	HeightMetadata *PropertyMetadata `json:"heightMetadata,omitempty"`
	// When set to **true**, the information in the tab is italic.
	Italic string `json:"italic,omitempty"`
	// Metadata that indicates whether the `italic` property is editable.
	ItalicMetadata *PropertyMetadata `json:"italicMetadata,omitempty"`
	// The list of values that can be selected by senders. The list values are separated by semi-colons. Example: [one;two;three;four]
	//
	// Maximum Length of listItems:  2048 characters.
	// Maximum Length of items in the list: 100 characters.
	//
	ListItems []ListItem `json:"listItems,omitempty"`
	// The value in the list that is selected by default.
	ListSelectedValue string `json:"listSelectedValue,omitempty"`
	// Metadata that indicates whether the `listSelectedValue` property is editable.
	ListSelectedValueMetadata *PropertyMetadata `json:"listSelectedValueMetadata,omitempty"`
	// Reserved for DocuSign.
	LocalePolicy *LocalePolicyTab `json:"localePolicy,omitempty"`
	// When set to **true**, the signer cannot change the data of the custom tab.
	Locked DSBool `json:"locked,omitempty"`
	// Metadata that indicates whether the `locked` property is editable.
	LockedMetadata *PropertyMetadata `json:"lockedMetadata,omitempty"`
	// When set to **true** and shared is true, information must be entered in this field to complete the envelope.
	RequireAll DSBool `json:"requireAll,omitempty"`
	// Metadata that indicates whether the `requireAll` property is editable.
	RequireAllMetadata *PropertyMetadata `json:"requireAllMetadata,omitempty"`
	// Optional element for field markup. When set to **true**, the signer is required to initial when they modify a shared field.
	RequireInitialOnSharedChange DSBool `json:"requireInitialOnSharedChange,omitempty"`
	// Metadata that indicates whether the `requireInitialOnSharedChange` property is editable.
	RequireInitialOnSharedChangeMetadata *PropertyMetadata `json:"requireInitialOnSharedChangeMetadata,omitempty"`
	// When set to **true**, the signer is required to fill out this tab.
	Required TabRequired `json:"required,omitempty"`
	// Metadata that indicates whether the `required` property is editable.
	RequiredMetadata *PropertyMetadata `json:"requiredMetadata,omitempty"`
	// When set to **true**, the sender must populate the tab before an envelope can be sent using the template.
	//
	// This value tab can only be changed by modifying (PUT) the template.
	//
	// Tabs with a `senderRequired` value of true cannot be deleted from an envelope.
	SenderRequired DSBool `json:"senderRequired,omitempty"`
	// Metadata that indicates whether the `senderRequired` property is editable.
	SenderRequiredMetadata *PropertyMetadata `json:"senderRequiredMetadata,omitempty"`
	// When set to **true**, this custom tab is shared.
	Shared DSBool `json:"shared,omitempty"`
	// Metadata that indicates whether the `shared` property is editable.
	SharedMetadata *PropertyMetadata `json:"sharedMetadata,omitempty"`
	// Metadata that indicates whether the `toolTip` property is editable.
	ToolTipMetadata *PropertyMetadata `json:"toolTipMetadata,omitempty"`
	// The text of a tooltip that appears when a user hovers over a form field or tab.
	Tooltip string `json:"tooltip,omitempty"`
	// When set to **true**, the information in the tab is underlined.
	Underline string `json:"underline,omitempty"`
	// Metadata that indicates whether the `underline` property is editable.
	UnderlineMetadata *PropertyMetadata `json:"underlineMetadata,omitempty"`
	// The width of the tab in pixels.
	Width string `json:"width,omitempty"`
	// Metadata that indicates whether the `width` property is editable.
	WidthMetadata *PropertyMetadata `json:"widthMetadata,omitempty"`
}

List this tab offers a list of options to choose from. The `listItems` property contains a list of [`listItem`](https://developers.docusign.com/esign-rest-api/reference/Envelopes/EnvelopeRecipientTabs/create/#/definitions/listItem) objects to specify the selectable options.

type ListCustomField

type ListCustomField struct {
	// If merge fields are being used, specifies the type of the merge field. The only  supported value is **salesforce**.
	ConfigurationType string `json:"configurationType,omitempty"`
	// This object describes errors that occur. It is only valid for responses and ignored in requests.
	ErrorDetails *ErrorDetails `json:"errorDetails,omitempty"`
	// An ID used to specify a custom field.
	FieldID string `json:"fieldId,omitempty"`
	// An array of strings that represent the items in a list.
	ListItems []string `json:"listItems,omitempty"`
	// The name of the custom field.
	Name string `json:"name,omitempty"`
	// When set to **true**, the signer is required to fill out this tab.
	Required TabRequired `json:"required,omitempty"`
	// A boolean indicating if the value should be displayed.  If this value is set to **true**, the custom field is displayed at the top of the certificate of completion. If this value is left blank/ or set to **false**, then it does not appear in the certificate of completion.
	Show DSBool `json:"show,omitempty"`
	// The value of the custom field.
	//
	// Maximum Length: 100 characters.
	Value string `json:"value,omitempty"`
}

type ListItem

type ListItem struct {
	// When set to **true**, indicates that this item is the default selection shown to a signer.
	//
	// Only one selection can be set as the default.
	Selected DSBool `json:"selected,omitempty"`
	// Metadata that indicates whether the `selected` property is editable.
	SelectedMetadata *PropertyMetadata `json:"selectedMetadata,omitempty"`
	// Specifies the text that is shown in the dropdown list.
	Text string `json:"text,omitempty"`
	//
	TextMetadata *PropertyMetadata `json:"textMetadata,omitempty"`
	// Specifies the value that is used when the list item is selected.
	Value string `json:"value,omitempty"`
	// Metadata that indicates whether the `value` property is editable.
	ValueMetadata *PropertyMetadata `json:"valueMetadata,omitempty"`
}

ListItem one of the selectable items in the `listItems` property of a [`list`](https://developers.docusign.com/esign-rest-api/reference/Envelopes/EnvelopeRecipientTabs/create/#/definitions/list) tab.

type LocalePolicy

type LocalePolicy struct {
	//
	AddressFormat string `json:"addressFormat,omitempty"`
	//
	AddressFormatMetadata *SettingsMetadata `json:"addressFormatMetadata,omitempty"`
	//
	AllowRegion string `json:"allowRegion,omitempty"`
	//
	CalendarType string `json:"calendarType,omitempty"`
	//
	CalendarTypeMetadata *SettingsMetadata `json:"calendarTypeMetadata,omitempty"`
	//
	CultureName string `json:"cultureName,omitempty"`
	//
	CultureNameMetadata *SettingsMetadata `json:"cultureNameMetadata,omitempty"`
	// The currency code for the account, based on the [ISO 4217 currency code](https://www.iso.org/iso-4217-currency-codes.html).
	CurrencyCode string `json:"currencyCode,omitempty"`
	//
	CurrencyCodeMetadata *SettingsMetadata `json:"currencyCodeMetadata,omitempty"`
	//
	CurrencyNegativeFormat string `json:"currencyNegativeFormat,omitempty"`
	//
	CurrencyNegativeFormatMetadata *SettingsMetadata `json:"currencyNegativeFormatMetadata,omitempty"`
	//
	CurrencyPositiveFormat string `json:"currencyPositiveFormat,omitempty"`
	//
	CurrencyPositiveFormatMetadata *SettingsMetadata `json:"currencyPositiveFormatMetadata,omitempty"`
	//
	CustomDateFormat string `json:"customDateFormat,omitempty"`
	//
	CustomSignDateFormat string `json:"customSignDateFormat,omitempty"`
	//
	CustomSignTimeFormat string `json:"customSignTimeFormat,omitempty"`
	//
	CustomTimeFormat string `json:"customTimeFormat,omitempty"`
	//
	DateFormat string `json:"dateFormat,omitempty"`
	//
	DateFormatMetadata *SettingsMetadata `json:"dateFormatMetadata,omitempty"`
	//
	EffectiveAddressFormat string `json:"effectiveAddressFormat,omitempty"`
	//
	EffectiveCalendarType string `json:"effectiveCalendarType,omitempty"`
	//
	EffectiveCurrencyCode string `json:"effectiveCurrencyCode,omitempty"`
	//
	EffectiveCurrencyNegativeFormat string `json:"effectiveCurrencyNegativeFormat,omitempty"`
	//
	EffectiveCurrencyPositiveFormat string `json:"effectiveCurrencyPositiveFormat,omitempty"`
	//
	EffectiveCustomDateFormat string `json:"effectiveCustomDateFormat,omitempty"`
	//
	EffectiveCustomTimeFormat string `json:"effectiveCustomTimeFormat,omitempty"`
	//
	EffectiveDateFormat string `json:"effectiveDateFormat,omitempty"`
	//
	EffectiveInitialFormat string `json:"effectiveInitialFormat,omitempty"`
	//
	EffectiveNameFormat string `json:"effectiveNameFormat,omitempty"`
	//
	EffectiveTimeFormat string `json:"effectiveTimeFormat,omitempty"`
	//
	EffectiveTimeZone string `json:"effectiveTimeZone,omitempty"`
	//
	InitialFormat string `json:"initialFormat,omitempty"`
	//
	InitialFormatMetadata *SettingsMetadata `json:"initialFormatMetadata,omitempty"`
	//
	NameFormat string `json:"nameFormat,omitempty"`
	//
	NameFormatMetadata *SettingsMetadata `json:"nameFormatMetadata,omitempty"`
	// The format for the signature date. Valid values are:
	//
	//
	// - `d/M/yyyy`
	// - `dd-MM-yy`
	// - `dd-MMM-yy`
	// - `dd-MM-yyyy`
	// - `dd.MM.yyyy`
	// - `dd-MMM-yyyy`
	// - `dd MMMM yyyy`
	// - `M/d/yyyy`
	// - `MM-dd-yyyy`
	// - `MM/dd/yyyy`
	// - `MM/dd/yy`
	// - `MMM-dd-yyyy`
	// - `MMM d, yyyy`
	// - `MMMM d, yyyy`
	// - `yyyy-MM-dd`
	// - `yyyy-MMM-dd`
	// - `yyyy/MM/dd`
	// - `yyyy MMMM d`
	//
	//
	//
	SignDateFormat string `json:"signDateFormat,omitempty"`
	// Metadata that indicates whether the `signDateFormat` property is editable.
	//
	SignDateFormatMetadata *SettingsMetadata `json:"signDateFormatMetadata,omitempty"`
	// The format for the signature time. Valid values are:
	//
	// - `none`
	// - `HH:mm`
	// - `h:mm`
	// - `HH:mm:ss`
	// - `h:mm:ss`
	//
	SignTimeFormat string `json:"signTimeFormat,omitempty"`
	// Metadata that indicates whether the `signTimeFormat` property is editable.
	//
	SignTimeFormatMetadata *SettingsMetadata `json:"signTimeFormatMetadata,omitempty"`
	//
	TimeFormat string `json:"timeFormat,omitempty"`
	//
	TimeFormatMetadata *SettingsMetadata `json:"timeFormatMetadata,omitempty"`
	//
	TimeZone string `json:"timeZone,omitempty"`
	//
	TimeZoneMetadata *SettingsMetadata `json:"timeZoneMetadata,omitempty"`
}

type LocalePolicyTab

type LocalePolicyTab struct {
	//
	AddressFormat string `json:"addressFormat,omitempty"`
	//
	CalendarType string `json:"calendarType,omitempty"`
	//
	CultureName string `json:"cultureName,omitempty"`
	//
	CurrencyNegativeFormat string `json:"currencyNegativeFormat,omitempty"`
	//
	CurrencyPositiveFormat string `json:"currencyPositiveFormat,omitempty"`
	//
	CustomDateFormat string `json:"customDateFormat,omitempty"`
	//
	CustomTimeFormat string `json:"customTimeFormat,omitempty"`
	//
	DateFormat string `json:"dateFormat,omitempty"`
	//
	InitialFormat string `json:"initialFormat,omitempty"`
	//
	NameFormat string `json:"nameFormat,omitempty"`
	//
	TimeFormat string `json:"timeFormat,omitempty"`
	//
	TimeZone string `json:"timeZone,omitempty"`
}

type LockInformation

type LockInformation struct {
	// This object describes errors that occur. It is only valid for responses and ignored in requests.
	ErrorDetails *ErrorDetails `json:"errorDetails,omitempty"`
	// Sets the time, in seconds, until the lock expires when there is no activity on the envelope.
	//
	// If no value is entered, then the default value of 300 seconds is used. The maximum value is 1,800 seconds.
	//
	// The lock duration can be extended.
	//
	LockDurationInSeconds string `json:"lockDurationInSeconds,omitempty"`
	// A unique identifier provided to the owner of the lock. You must use this token with subsequent calls to prove ownership of the lock.
	LockToken string `json:"lockToken,omitempty"`
	// The type of lock.  Currently `edit` is the only supported type.
	LockType string `json:"lockType,omitempty"`
	// Specifies the friendly name of  the application that is locking the envelope.
	LockedByApp string `json:"lockedByApp,omitempty"`
	// A complex type containing information about the user that has the envelope or template locked.
	LockedByUser *UserInfo `json:"lockedByUser,omitempty"`
	// The date and time that the lock expires.
	LockedUntilDateTime *time.Time `json:"lockedUntilDateTime,omitempty"`
	// Indicates whether a scratchpad is used for editing information.
	//
	UseScratchPad string `json:"useScratchPad,omitempty"`
}

LockInformation template locks

type LockRequest

type LockRequest struct {
	// The number of seconds to lock the envelope for editing.  This value must be greater than `0` seconds.
	LockDurationInSeconds string `json:"lockDurationInSeconds,omitempty"`
	// The type of lock.  Currently `edit` is the only supported type.
	LockType string `json:"lockType,omitempty"`
	// The friendly name of  the application that is locking the envelope or template. It appears in error messages to the user when lock conflicts occur.
	LockedByApp string `json:"lockedByApp,omitempty"`
	//
	TemplatePassword string `json:"templatePassword,omitempty"`
	// Indicates whether a scratchpad is used for editing information.
	//
	UseScratchPad string `json:"useScratchPad,omitempty"`
}

type LoginAccount

type LoginAccount struct {
	// The account ID associated with the envelope.
	AccountID string `json:"accountId,omitempty"`
	// The GUID associated with the account ID.
	AccountIDGUID string `json:"accountIdGuid,omitempty"`
	// The URL that should be used for successive calls to this account. It includes the protocal (https), the DocuSign server where the account is located, and the account number. Use this Url to make API calls against this account. Many of the API calls provide Uri's that are relative to this baseUrl.
	BaseURL string `json:"baseUrl,omitempty"`
	// The email address for the user.
	Email string `json:"email,omitempty"`
	// This value is true if this is the default account for the user, otherwise false is returned.
	IsDefault DSBool `json:"isDefault,omitempty"`
	// A list of settings on the acccount that indicate what features are available.
	LoginAccountSettings []NameValue `json:"loginAccountSettings,omitempty"`
	// A list of user-level settings that indicate what user-specific features are available.
	LoginUserSettings []NameValue `json:"loginUserSettings,omitempty"`
	// The name associated with the account.
	Name string `json:"name,omitempty"`
	// An optional descirption of the site that hosts the account.
	SiteDescription string `json:"siteDescription,omitempty"`
	// The ID of the user to access. Generally this is the ID of the current authenticated user, but if the authenticated user is an Administrator on the account, `userId` can represent another user whom the Administrator is accessing.
	//
	UserID string `json:"userId,omitempty"`
	// The name of this user as defined by the account.
	UserName string `json:"userName,omitempty"`
}

type LoginInformation

type LoginInformation struct {
	// Contains a token that can be used for authentication in API calls instead of using the user name and password.
	APIPassword string `json:"apiPassword,omitempty"`
	// The list of accounts that authenticating user is a member of.
	LoginAccounts []LoginAccount `json:"loginAccounts,omitempty"`
}

type MatchBox

type MatchBox struct {
	// The height of the tab in pixels.
	Height string `json:"height,omitempty"`
	// Specifies the page number on which the tab is located.
	// Must be 1 for supplemental documents.
	//
	PageNumber string `json:"pageNumber,omitempty"`
	// The width of the tab in pixels.
	Width string `json:"width,omitempty"`
	// This property indicates the horizontal offset of the object on the page.
	// DocuSign uses 72 DPI when determining position.
	// Required. May be zero.
	//
	XPosition string `json:"xPosition,omitempty"`
	// This indicates the vertical offset of the object on the page. DocuSign uses 72 DPI when determining position.
	YPosition string `json:"yPosition,omitempty"`
}

type MemberGroupSharedItem

type MemberGroupSharedItem struct {
	// This object describes errors that occur. It is only valid for responses and ignored in requests.
	ErrorDetails *ErrorDetails `json:"errorDetails,omitempty"`
	// The group sharing the item.
	Group *Group `json:"group,omitempty"`
	// How the item is shared. One of:
	//
	//
	// - `not_shared`: The item is not shared.
	//
	// - `shared_to`: The item is shared.
	Shared DSBool `json:"shared,omitempty"`
}

MemberGroupSharedItem information about items shared among groups.

type MemberSharedItems

type MemberSharedItems struct {
	// List of information about shared envelopes.
	Envelopes []SharedItem `json:"envelopes,omitempty"`
	// This object describes errors that occur. It is only valid for responses and ignored in requests.
	ErrorDetails *ErrorDetails `json:"errorDetails,omitempty"`
	// List of information about shared folders.
	Folders []FolderSharedItem `json:"folders,omitempty"`
	// List of information about shared templates.
	Templates []TemplateSharedItem `json:"templates,omitempty"`
	// Information about the user requesting sharing information.
	User *UserInfo `json:"user,omitempty"`
}

MemberSharedItems information about shared items.

type MergeField

type MergeField struct {
	// When **true**, the sender can modify the value of the `mergeField` tab during the sending process.
	AllowSenderToEdit DSBool `json:"allowSenderToEdit,omitempty"`
	// Metadata that indicates if the sender can edit the `allowSenderToEdit` property.
	AllowSenderToEditMetadata *PropertyMetadata `json:"allowSenderToEditMetadata,omitempty"`
	// If merge fields are being used, specifies the type of the merge field. The only  supported value is **salesforce**.
	ConfigurationType string `json:"configurationType,omitempty"`
	// Metadata that indicates if the sender can edit the `configurationType` property.
	ConfigurationTypeMetadata *PropertyMetadata `json:"configurationTypeMetadata,omitempty"`
	// Sets the object associated with the custom tab. Currently this is the Salesforce Object.
	Path string `json:"path,omitempty"`
	// Reserved for DocuSign.
	PathExtended []PathExtendedElement `json:"pathExtended,omitempty"`
	// Reserved for DocuSign.
	PathExtendedMetadata *PropertyMetadata `json:"pathExtendedMetadata,omitempty"`
	// Metadata that indicates whether the `path` property is editable.
	//
	PathMetadata *PropertyMetadata `json:"pathMetadata,omitempty"`
	// Specifies the row number in a Salesforce table that the merge field value corresponds to.
	Row string `json:"row,omitempty"`
	// Metadata that indicates whether the `row` property is editable.
	//
	RowMetadata *PropertyMetadata `json:"rowMetadata,omitempty"`
	// When **true**, data entered into the merge field during Signing will update the mapped Salesforce field.
	WriteBack string `json:"writeBack,omitempty"`
	// Metadata that indicates if the sender can edit the `writeBack` property.
	WriteBackMetadata *PropertyMetadata `json:"writeBackMetadata,omitempty"`
}

MergeField contains information for transfering values between Salesforce data fields and DocuSign Tabs.

type MobileNotifierConfiguration

type MobileNotifierConfiguration struct {
	//
	DeviceID string `json:"deviceId,omitempty"`
	// This object describes errors that occur. It is only valid for responses and ignored in requests.
	ErrorDetails *ErrorDetails `json:"errorDetails,omitempty"`
	// The Platform of the client application
	Platform string `json:"platform,omitempty"`
}

type MobileNotifierConfigurationInformation

type MobileNotifierConfigurationInformation struct {
	//
	MobileNotifierConfigurations []MobileNotifierConfiguration `json:"mobileNotifierConfigurations,omitempty"`
}

type Money

type Money struct {
	// The total payment amount
	// in the currency's base unit.
	// For example, for USD
	// the base currency is one cent.
	//
	AmountInBaseUnit string `json:"amountInBaseUnit,omitempty"`
	// The three-letter
	// [ISO 4217][ISO4217] currency code for the payment.
	//
	// For example:
	//
	// * AUD Australian dollar
	// * CAD Canadian dollar
	// * EUR Euro
	// * GBP Great Britain pound
	// * USD United States dollar
	//
	// This is a read-only property.
	//
	// [ISO4217]:          https://en.wikipedia.org/wiki/ISO_4217
	//
	Currency string `json:"currency,omitempty"`
	// The payment amount as displayed
	// in the `currency`.
	//
	// For example, if the payment amount
	// is USD 12.59,
	// the `amountInBaseUnit` is 1259 (cents),
	// and the displayed amount is `$12.59 USD`.
	//
	// This is a read-only property.
	//
	DisplayAmount string `json:"displayAmount,omitempty"`
}

Money describes information about the `total` of a payment.

type NameValue

type NameValue struct {
	// This object describes errors that occur. It is only valid for responses and ignored in requests.
	ErrorDetails *ErrorDetails `json:"errorDetails,omitempty"`
	// The name of the item.
	Name string `json:"name,omitempty"`
	// The initial value of the item.
	OriginalValue string `json:"originalValue,omitempty"`
	// The current value of the item.
	Value string `json:"value,omitempty"`
}

func GetTabValues

func GetTabValues(tabs Tabs) []NameValue

GetTabValues returns a NameValue list of all entry tabs

type NewAccountDefinition

type NewAccountDefinition struct {
	// The account name for the new account.
	AccountName string `json:"accountName,omitempty"`
	// The list of
	// [account settings][accountsettings]
	// that determine
	// the features available for the account.
	// Note that some features are determined
	// by the plan used to create the account and cannot be overridden.
	//
	// [accountsettings]: https://developers.docusign.com/esign-rest-api/reference/Accounts/Accounts/create/#account-settings
	//
	AccountSettings *AccountSettingsInformation `json:"accountSettings,omitempty"`
	// A complex type that contains the following information for the new account: `Street1`, `Street2`, `City`, `State`, `Zip`, `Phone`, and `Fax`.
	AddressInformation *AccountAddress `json:"addressInformation,omitempty"`
	// A complex type that has information about the credit card used to pay for this account.
	CreditCardInformation *CreditCardInformation `json:"creditCardInformation,omitempty"`
	// Information about the bank that processes direct debits for the payment plan.
	DirectDebitProcessorInformation *DirectDebitProcessorInformation `json:"directDebitProcessorInformation,omitempty"`
	// The code that identifies the billing plan groups and plans for the new account.
	DistributorCode string `json:"distributorCode,omitempty"`
	// The password for the distributorCode.
	DistributorPassword string `json:"distributorPassword,omitempty"`
	// A complex type with the initial user information for the new account. Note that some user information is set internally based on the plan and cannot be overridden.
	InitialUser *UserInformation `json:"initialUser,omitempty"`
	// The payment method used for the billing plan. Valid values are:
	//
	// - `NotSupported`
	// - `CreditCard`
	// - `PurchaseOrder`
	// - `Premium`
	// - `Freemium`
	// - `FreeTrial`
	// - `AppStore`
	// - `DigitalExternal`
	// - `DirectDebit`
	PaymentMethod string `json:"paymentMethod,omitempty"`
	// Information about the entity that processes payments for the billing plan.
	PaymentProcessorInformation *PaymentProcessorInformation `json:"paymentProcessorInformation,omitempty"`
	// An object used to identify the features and attributes of the account being created.
	PlanInformation *PlanInformation `json:"planInformation,omitempty"`
	// A complex type that contains the following information for entering referral and discount information. The following items are included in the referral information (all string content): enableSupport, includedSeats, saleDiscountPercent, saleDiscountAmount, saleDiscountFixedAmount, saleDiscountPeriods, saleDiscountSeatPriceOverride, planStartMonth, referralCode, referrerName, advertisementId, publisherId, shopperId, promoCode, groupMemberId, idType, and industry
	//
	// ###### Note: saleDiscountPercent, saleDiscountAmount, saleDiscountFixedAmount, saleDiscountPeriods, and saleDiscountSeatPriceOverride are reserved for DoucSign use only.
	//
	ReferralInformation *ReferralInformation `json:"referralInformation,omitempty"`
	// Contains properties that map a DocuSign user to a social account (Facebook, Yahoo, etc.)
	SocialAccountInformation *SocialAccountInformation `json:"socialAccountInformation,omitempty"`
}

type NewAccountSummary

type NewAccountSummary struct {
	// The account ID associated with the envelope.
	AccountID string `json:"accountId,omitempty"`
	// The GUID associated with the account ID.
	AccountIDGUID string `json:"accountIdGuid,omitempty"`
	// The account name for the new account.
	AccountName string `json:"accountName,omitempty"`
	// Contains a token that can be used for authentication in API calls instead of using the user name and password.
	APIPassword string `json:"apiPassword,omitempty"`
	// The URL that should be used for successive calls to this account. It includes the protocal (https), the DocuSign server where the account is located, and the account number. Use this Url to make API calls against this account. Many of the API calls provide Uri's that are relative to this baseUrl.
	BaseURL string `json:"baseUrl,omitempty"`
	//
	BillingPlanPreview *BillingPlanPreview `json:"billingPlanPreview,omitempty"`
	// Specifies the user ID of the new user.
	UserID string `json:"userId,omitempty"`
}

type NewUser

type NewUser struct {
	// Contains a token that can be used for authentication in API calls instead of using the user name and password.
	APIPassword string `json:"apiPassword,omitempty"`
	// The date and time the item was created.
	CreatedDateTime *time.Time `json:"createdDateTime,omitempty"`
	// Filters returned user records by the specified email address.
	Email string `json:"email,omitempty"`
	// This object describes errors that occur. It is only valid for responses and ignored in requests.
	ErrorDetails *ErrorDetails `json:"errorDetails,omitempty"`
	// The ID of the permission profile. Possible values include:
	//
	// - `2301416` (for the `DocuSign Viewer` profile)
	// - `2301415` (for the `DocuSign Sender` profile)
	// - `2301414` (for the `Account Administrator` profile)
	//
	// In addition, any custom permission profiles associated with your account will have an automatically generated `permissionProfileId`.
	PermissionProfileID string `json:"permissionProfileId,omitempty"`
	// The name of the account permission profile.
	//
	// Example: `Account Administrator`
	PermissionProfileName string `json:"permissionProfileName,omitempty"`
	// URI containing the user ID.
	URI string `json:"uri,omitempty"`
	// Specifies the user ID for the new user.
	UserID string `json:"userId,omitempty"`
	// The name of the user.
	UserName string `json:"userName,omitempty"`
	// Status of the user's account. One of:
	//
	// - `ActivationRequired`
	// - `ActivationSent`
	// - `Active`
	// - `Closed`
	// - `Disabled`
	//
	UserStatus string `json:"userStatus,omitempty"`
}

NewUser object representing a new user.

type NewUsersDefinition

type NewUsersDefinition struct {
	// A list of one or more new users.
	NewUsers []UserInformation `json:"newUsers,omitempty"`
}

type NewUsersSummary

type NewUsersSummary struct {
	// A list of one or more new users.
	NewUsers []NewUser `json:"newUsers,omitempty"`
}

NewUsersSummary object representing a summary of data for new users.

type Notarize

type Notarize struct {
	TabBase
	TabGuidedForm
	// Reserved for DocuSign.
	// <!--
	// When set to **true**, the anchor string does not consider case when matching strings in the document. The default value is **true**.
	// -->
	AnchorCaseSensitive string `json:"anchorCaseSensitive,omitempty"`
	// Reserved for DocuSign.
	AnchorCaseSensitiveMetadata *PropertyMetadata `json:"anchorCaseSensitiveMetadata,omitempty"`
	// Reserved for DocuSign.
	// <!--
	// Specifies the alignment of anchor tabs with anchor strings. Possible values are **left** or **right**. The default value is **left**.
	// -->
	//
	AnchorHorizontalAlignment string `json:"anchorHorizontalAlignment,omitempty"`
	// Reserved for DocuSign.
	AnchorHorizontalAlignmentMetadata *PropertyMetadata `json:"anchorHorizontalAlignmentMetadata,omitempty"`
	// When set to **true**, this tab is ignored if the `anchorString` is not found in the document.
	AnchorIgnoreIfNotPresent string `json:"anchorIgnoreIfNotPresent,omitempty"`
	// Metadata that indicates whether the `anchorIgnoreIfNotPresent` property is editable.
	AnchorIgnoreIfNotPresentMetadata *PropertyMetadata `json:"anchorIgnoreIfNotPresentMetadata,omitempty"`
	// Reserved for DocuSign.
	// <!--
	// When set to **true**, the anchor string in this tab matches whole words only (strings embedded in other strings are ignored.) The default value is **true**.
	// -->
	//
	AnchorMatchWholeWord string `json:"anchorMatchWholeWord,omitempty"`
	// Reserved for DocuSign.
	AnchorMatchWholeWordMetadata *PropertyMetadata `json:"anchorMatchWholeWordMetadata,omitempty"`
	// Specifies the string to find in the document and use as the basis for tab placement.
	AnchorString string `json:"anchorString,omitempty"`
	// Metadata that indicates whether the `anchorString` property is editable.
	AnchorStringMetadata *PropertyMetadata `json:"anchorStringMetadata,omitempty"`
	// Reserved for DocuSign.
	AnchorTabProcessorVersion string `json:"anchorTabProcessorVersion,omitempty"`
	// Reserved for DocuSign.
	AnchorTabProcessorVersionMetadata *PropertyMetadata `json:"anchorTabProcessorVersionMetadata,omitempty"`
	// Specifies the units of the X and Y offset. Units may be pixels, millimeters, centimeters, or inches.
	AnchorUnits string `json:"anchorUnits,omitempty"`
	// Metadata that indicates whether the `anchorUnits` property is editable.
	AnchorUnitsMetadata *PropertyMetadata `json:"anchorUnitsMetadata,omitempty"`
	// Specifies the X axis location of the tab in `anchorUnits` relative to the `anchorString`.
	AnchorXOffset string `json:"anchorXOffset,omitempty"`
	// Metadata that indicates whether the `anchorXOffset` property is editable.
	AnchorXOffsetMetadata *PropertyMetadata `json:"anchorXOffsetMetadata,omitempty"`
	// Specifies the Y axis location of the tab in `anchorUnits` relative to the `anchorString`.
	AnchorYOffset string `json:"anchorYOffset,omitempty"`
	// Metadata that indicates whether the `anchorYOffset` property is editable.
	AnchorYOffsetMetadata *PropertyMetadata `json:"anchorYOffsetMetadata,omitempty"`
	// 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 `json:"customTabId,omitempty"`
	// Metadata that indicates whether the `customTabId` property is editable.
	CustomTabIDMetadata *PropertyMetadata `json:"customTabIdMetadata,omitempty"`
	// This object describes errors that occur. It is only valid for responses and ignored in requests.
	ErrorDetails *ErrorDetails `json:"errorDetails,omitempty"`
	// The height of the tab in pixels.
	Height string `json:"height,omitempty"`
	// Metadata that indicates whether the `height` property is editable.
	HeightMetadata *PropertyMetadata `json:"heightMetadata,omitempty"`
	// When set to **true**, the signer cannot change the data of the custom tab.
	Locked DSBool `json:"locked,omitempty"`
	// Metadata that indicates whether the `locked` property is editable.
	LockedMetadata *PropertyMetadata `json:"lockedMetadata,omitempty"`
	// Contains the information necessary to map the tab to a field in SalesForce.
	MergeField *MergeField `json:"mergeField,omitempty"`
	// The page number being accessed.
	PageNumber string `json:"pageNumber,omitempty"`
	// Metadata that indicates whether the `pageNumber` property is editable.
	PageNumberMetadata *PropertyMetadata `json:"pageNumberMetadata,omitempty"`
	// When set to **true**, the signer is required to fill out this tab.
	Required TabRequired `json:"required,omitempty"`
	// Metadata that indicates whether the `required` property is editable.
	RequiredMetadata *PropertyMetadata `json:"requiredMetadata,omitempty"`
	// The status of the tab. Possible values are:
	//
	// - `active`: The tab is active, but the recipient has not yet interacted with it.
	// - `signed`: The recipient signed the tab.
	// - `declined`: The recipient declined the envelope.
	// - `na`: Used when the `status` property is not applicable to the tab type. (For example, a tab that has the `tabType` `SignerAttachmentOptional`).
	Status string `json:"status,omitempty"`
	// Metadata that indicates whether the `status` property is editable.
	StatusMetadata *PropertyMetadata `json:"statusMetadata,omitempty"`
	// The unique identifier for the tab.
	TabID string `json:"tabId,omitempty"`
	// Metadata that indicates whether the `tabId` property is editable.
	TabIDMetadata *PropertyMetadata `json:"tabIdMetadata,omitempty"`
	// A positive integer that sets the order the tab is navigated to during signing.
	//
	// Tabs on a page are navigated to in ascending order, starting with the lowest number and moving to the highest. If two or more tabs have the same `tabOrder` value, the normal auto-navigation setting behavior for the envelope is used.
	TabOrder string `json:"tabOrder,omitempty"`
	// Metadata that indicates whether the `tabOrder` property is editable.
	TabOrderMetadata *PropertyMetadata `json:"tabOrderMetadata,omitempty"`
	// When set to **true**, the sender cannot change any attributes of the recipient. Used only when working with template recipients.
	TemplateLocked string `json:"templateLocked,omitempty"`
	// Metadata that indicates whether the `templateLocked` property is editable.
	TemplateLockedMetadata *PropertyMetadata `json:"templateLockedMetadata,omitempty"`
	// When set to **true**, the sender may not remove the recipient. Used only when working with template recipients.
	TemplateRequired string `json:"templateRequired,omitempty"`
	// Metadata that indicates whether the `templateRequired` property is editable.
	TemplateRequiredMetadata *PropertyMetadata `json:"templateRequiredMetadata,omitempty"`
	// Metadata that indicates whether the `toolTip` property is editable.
	ToolTipMetadata *PropertyMetadata `json:"toolTipMetadata,omitempty"`
	// The text of a tooltip that appears when a user hovers over a form field or tab.
	Tooltip string `json:"tooltip,omitempty"`
	// The width of the tab in pixels.
	Width string `json:"width,omitempty"`
	// Metadata that indicates whether the `width` property is editable.
	WidthMetadata *PropertyMetadata `json:"widthMetadata,omitempty"`
	// This property indicates the horizontal offset of the object on the page.
	// DocuSign uses 72 DPI when determining position.
	// Required. May be zero.
	//
	XPosition string `json:"xPosition,omitempty"`
	// Metadata that indicates whether the `xPosition` property is editable.
	XPositionMetadata *PropertyMetadata `json:"xPositionMetadata,omitempty"`
	// This indicates the vertical offset of the object on the page. DocuSign uses 72 DPI when determining position.
	YPosition string `json:"yPosition,omitempty"`
	// Metadata that indicates whether the `yPosition` property is editable.
	YPositionMetadata *PropertyMetadata `json:"yPositionMetadata,omitempty"`
}

Notarize is a tab that alerts notary recipients that they must take action on the page. Only one notarize tab can appear on a page.

type NotaryHost

type NotaryHost struct {
	// If a value is provided, the recipient must enter the value as the access code to view and sign the envelope.
	//
	// Maximum Length: 50 characters and it must conform to the account's access code format setting.
	//
	// If blank, but the signer `accessCode` property is set in the envelope, then that value is used.
	//
	// If blank and the signer `accessCode` property is not set, then the access code is not required.
	AccessCode string `json:"accessCode,omitempty"`
	// Metadata that indicates if the sender can edit the `accessCode` property.
	AccessCodeMetadata *PropertyMetadata `json:"accessCodeMetadata,omitempty"`
	// 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 `json:"addAccessCodeToEmail,omitempty"`
	// Specifies whether the recipient is embedded or remote.
	//
	// If 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.
	//
	// Note: 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.
	//
	// Maximum length: 100 characters.
	ClientUserID string `json:"clientUserId,omitempty"`
	// Indicates the number of times that the recipient has been through a signing completion for the envelope.
	//
	// If this number is greater than 0 for a signing group, only the user who previously completed may sign again.
	CompletedCount string `json:"completedCount,omitempty"`
	// 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 `json:"customFields,omitempty"`
	// The date and time the recipient declined the document.
	DeclinedDateTime *time.Time `json:"declinedDateTime,omitempty"`
	// The reason the recipient declined the document.
	DeclinedReason string `json:"declinedReason,omitempty"`
	// The date and time that the envelope was delivered to the recipient.
	DeliveredDateTime *time.Time `json:"deliveredDateTime,omitempty"`
	// Reserved for DocuSign.
	DeliveryMethod string `json:"deliveryMethod,omitempty"`
	// Metadata that indicates whether the `deliveryMethod` property is editable.
	//
	DeliveryMethodMetadata *PropertyMetadata `json:"deliveryMethodMetadata,omitempty"`
	// A list of documentVisibility objects, which define a recipient's read/write access to a document.
	DocumentVisibility []DocumentVisibility `json:"documentVisibility,omitempty"`
	// The notary's email address.
	//
	// Maximum Length: 100 characters.
	//
	Email string `json:"email,omitempty"`
	// Metadata that indicates if the sender can edit the notary's email address.
	EmailMetadata *PropertyMetadata `json:"emailMetadata,omitempty"`
	// An optional complex type that sets a specific email subject and body for this recipient's notification email.
	//
	// **Note**: If you use this field to set a specific email notification for one recipient, you must also set the email notification for the other recipients. Using this field for one or more recipients negates the Envelope `Subject` and `EmailBlurb` property settings.
	EmailNotification *RecipientEmailNotification `json:"emailNotification,omitempty"`
	// Specifies a sender-provided valid URL string for redirecting an embedded recipient. When this option is used, the embedded recipient still receives an email from DocuSign, just as a remote recipient would. When the recipient clicks the document link in the email, the recipient is redirected through DocuSign to the specified URL to complete the required 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.
	//
	// If 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 launched by a partner.
	//
	// It is important to understand 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 processes for establishing the recipient's identity. In this workflow the recipient goes through the sending application before the embedded signing or viewing process is 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.
	//
	// If 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 for the recipient or envelope. The merge fields are enclosed in double brackets.
	//
	// *Example*:
	//
	// `http://senderHost/[[mergeField1]]/ beginSigningSession? [[mergeField2]]&[[mergeField3]]`
	EmbeddedRecipientStartURL string `json:"embeddedRecipientStartURL,omitempty"`
	// This object describes errors that occur. It is only valid for responses and ignored in requests.
	ErrorDetails *ErrorDetails `json:"errorDetails,omitempty"`
	// Reserved for DocuSign.
	FaxNumber string `json:"faxNumber,omitempty"`
	// Reserved for DocuSign.
	FaxNumberMetadata *PropertyMetadata `json:"faxNumberMetadata,omitempty"`
	//
	HostRecipientID string `json:"hostRecipientId,omitempty"`
	// The name of the authentication check to use. This value must match one of the authentication types that the account uses. The names of these authentication types appear in the web console sending interface in the Identify list for a recipient. This setting overrides any default authentication setting.
	//
	// **Example**: Your account has ID Check and SMS Authentication available. 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 $. For SMS, you would use SMS Auth $, and you would also need to add a phone number to the smsAuthentication node.
	IDCheckConfigurationName string `json:"idCheckConfigurationName,omitempty"`
	// Metadata that indicates whether the `idCheckConfigurationName` property is editable.
	//
	IDCheckConfigurationNameMetadata *PropertyMetadata `json:"idCheckConfigurationNameMetadata,omitempty"`
	// An object that contains input information related to a recipient ID check.
	IDCheckInformationInput *IDCheckInformationInput `json:"idCheckInformationInput,omitempty"`
	// 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 DSBool `json:"inheritEmailNotificationConfiguration,omitempty"`
	// Reserved for DocuSign.
	LockedRecipientPhoneAuthEditable string `json:"lockedRecipientPhoneAuthEditable,omitempty"`
	// Reserved for DocuSign.
	LockedRecipientSmsEditable string `json:"lockedRecipientSmsEditable,omitempty"`
	// The notary's full legal name.
	//
	// Maximum Length: 100 characters.
	//
	Name string `json:"name,omitempty"`
	// Metadata that indicates if the sender can edit the notary's full legal name.
	NameMetadata *PropertyMetadata `json:"nameMetadata,omitempty"`
	// A note sent to the notary in the signing email.
	// This note is visible only to this notary.
	//
	// Maximum Length: 1000 characters.
	//
	Note string `json:"note,omitempty"`
	// Metadata that indicates if the sender can edit the note sent to the notary in the signing email.
	NoteMetadata *PropertyMetadata `json:"noteMetadata,omitempty"`
	// A complex type that contains the following elements:
	//
	// * `recipMayProvideNumber` - Boolean. When set to **true**, the recipient can use whatever phone number they choose.
	// * `senderProvidedNumbers` - ArrayOfString.  A list of phone numbers the recipient can use.
	// * `recordVoicePrint` - Reserved.
	// * `validateRecipProvidedNumber` - Reserved.
	PhoneAuthentication DSBool `json:"phoneAuthentication,omitempty"`
	// Reserved for DocuSign.
	RecipientAttachments []RecipientAttachment `json:"recipientAttachments,omitempty"`
	// Information about the recipient's authentication status.
	RecipientAuthenticationStatus *AuthenticationStatus `json:"recipientAuthenticationStatus,omitempty"`
	// Metadata about the features that are supported for the recipient type.
	RecipientFeatureMetadata []FeatureAvailableMetadata `json:"recipientFeatureMetadata,omitempty"`
	// A local reference that senders use to map recipients to other objects, such as specific document tabs. Within an envelope, each `recipientId` must be unique, but there is no uniqueness requirement across envelopes. For example, many envelopes assign the first recipient a `recipientId` of `1`.
	RecipientID string `json:"recipientId,omitempty"`
	// The globally-unique identifier (GUID) for a specific recipient on a specific envelope. If the same recipient is associated with multiple envelopes, they will have a different GUID for each one.
	RecipientIDGUID string `json:"recipientIdGuid,omitempty"`
	// The recipient type, as specified by the following values:
	// - `agents`: Agent recipients can add name and email information for recipients that appear after the agent in routing order.
	// - `carbonCopies`: Carbon copy recipients get a copy of the envelope but don't need to sign, initial, date, or add information to any of the documents. This type of recipient can be used in any routing order.
	// - `certifiedDeliveries`: Certified delivery recipients must receive the completed documents for the envelope to be completed. They don't need to sign, initial, date, or add information to any of the documents.
	// - `editors`: Editors have the same management and access rights for the envelope as the sender. Editors can add name and email information, add or change the routing order, set authentication options, and can edit signature/initial tabs and data fields for the remaining recipients.
	// - `inPersonSigners`: In-person recipients are DocuSign users who act as signing hosts in the same physical location as the signer.
	// - `intermediaries`: Intermediary recipients can optionally add name and email information for recipients at the same or subsequent level in the routing order.
	// - `seals`: Electronic seal recipients represent legal entities.
	// - `signers`: Signers are recipients who must sign, initial, date, or add data to form fields on the documents in the envelope.
	// - `witnesses`: Witnesses are recipients whose signatures affirm that the identified signers have signed the documents in the envelope.
	RecipientType string `json:"recipientType,omitempty"`
	// Metadata that indicates whether the `recipientType` property is editable.
	//
	RecipientTypeMetadata *PropertyMetadata `json:"recipientTypeMetadata,omitempty"`
	// 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 DSBool `json:"requireIdLookup,omitempty"`
	// Metadata that indicates whether the `requireIdLookup` property is editable.
	//
	RequireIDLookupMetadata *PropertyMetadata `json:"requireIdLookupMetadata,omitempty"`
	// Optional element. Specifies the role name associated with the recipient.<br/><br/>This is required when working with template recipients.
	RoleName string `json:"roleName,omitempty"`
	// Specifies the routing order of the recipient in the envelope.
	RoutingOrder string `json:"routingOrder,omitempty"`
	// Metadata that indicates whether the `routingOrder` property is editable.
	//
	RoutingOrderMetadata *PropertyMetadata `json:"routingOrderMetadata,omitempty"`
	// The date and time the envelope was sent.
	SentDateTime *time.Time `json:"sentDateTime,omitempty"`
	// Reserved for DocuSign.
	SignedDateTime *time.Time `json:"signedDateTime,omitempty"`
	// The ID of the signing group of which the notary is a member, if applicable.
	SigningGroupID string `json:"signingGroupId,omitempty"`
	// Metadata that indicates whether the `signingGroupId` property is editable.
	//
	SigningGroupIDMetadata *PropertyMetadata `json:"signingGroupIdMetadata,omitempty"`
	// The display name for the signing group.
	//
	// Maximum Length: 100 characters.
	SigningGroupName string `json:"signingGroupName,omitempty"`
	// A complex type that contains information about users in the signing group.
	SigningGroupUsers []UserInfo `json:"signingGroupUsers,omitempty"`
	// Contains the element senderProvidedNumbers which is an Array  of phone numbers the recipient can use for SMS text authentication.
	//
	SmsAuthentication *RecipientSMSAuthentication `json:"smsAuthentication,omitempty"`
	//  Lists the social ID type that can be used for recipient authentication.
	SocialAuthentications []SocialAuthentication `json:"socialAuthentications,omitempty"`
	// Indicates the envelope status. Valid values are:
	//
	// * sent - The envelope is sent to the recipients.
	// * created - The envelope is saved as a draft and can be modified and sent later.
	Status string `json:"status,omitempty"`
	// Reserved for DocuSign.
	StatusCode string `json:"statusCode,omitempty"`
	// A list of `signHere` tabs, which can be used to add a visual representation for an electronic seal in a document.
	Tabs *Tabs `json:"tabs,omitempty"`
	// When set to **true**, the sender cannot change any attributes of the recipient. Used only when working with template recipients.
	TemplateLocked DSBool `json:"templateLocked,omitempty"`
	// When set to **true**, the sender may not remove the recipient. Used only when working with template recipients.
	TemplateRequired DSBool `json:"templateRequired,omitempty"`
	// The total number of tabs in the documents.
	TotalTabCount string `json:"totalTabCount,omitempty"`
	// The ID of the user to access. Generally this is the ID of the current authenticated user, but if the authenticated user is an Administrator on the account, `userId` can represent another user whom the Administrator is accessing.
	//
	UserID string `json:"userId,omitempty"`
}

NotaryHost this object is used only when `inPersonSigningType` in the `inPersonSigner` object is `notary`.

It describes information about the notary host. The following information is required when using the eNotary in-person signing flow:

* `name`: Specifies the notary's full legal name. * `email`: Specifies the notary's email address. * `recipientId`: A unique ID number for the notary signing host.

type NotaryJournal

type NotaryJournal struct {
	// The creation date of the account in UTC timedate format.
	CreatedDate string `json:"createdDate,omitempty"`
	//
	DocumentName string `json:"documentName,omitempty"`
	//
	Jurisdiction *Jurisdiction `json:"jurisdiction,omitempty"`
	//
	NotaryJournalID string `json:"notaryJournalId,omitempty"`
	//
	NotaryJournalMetaData *NotaryJournalMetaData `json:"notaryJournalMetaData,omitempty"`
	// The in-person signer's full legal name.
	//
	// Required when `inPersonSigningType` is `inPersonSigner`.
	// For eNotary flow, use `name` instead.
	//
	// Maximum Length: 100 characters.
	//
	SignerName string `json:"signerName,omitempty"`
}

type NotaryJournalCredibleWitness

type NotaryJournalCredibleWitness struct {
	// The user's address.
	Address string `json:"address,omitempty"`
	//
	Name string `json:"name,omitempty"`
	//
	SignatureImage string `json:"signatureImage,omitempty"`
}

type NotaryJournalList

type NotaryJournalList struct {
	// The last position in the result set.
	EndPosition string `json:"endPosition,omitempty"`
	// 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 `json:"nextUri,omitempty"`
	//
	NotaryJournals []NotaryJournal `json:"notaryJournals,omitempty"`
	// 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 `json:"previousUri,omitempty"`
	// The number of results returned in this response. Because you can filter which entries are included in the response, this value is always less than or equal to `totalSetSize`.
	ResultSetSize string `json:"resultSetSize,omitempty"`
	// The starting position of the current result set.
	StartPosition string `json:"startPosition,omitempty"`
	// The total number of items in the search's result set. This value is always greater than or equal to the value of `resultSetSize`.
	TotalSetSize string `json:"totalSetSize,omitempty"`
}

type NotaryJournalMetaData

type NotaryJournalMetaData struct {
	//
	Comment string `json:"comment,omitempty"`
	//
	CredibleWitnesses []NotaryJournalCredibleWitness `json:"credibleWitnesses,omitempty"`
	//
	SignatureImage string `json:"signatureImage,omitempty"`
	//
	SignerIDType string `json:"signerIdType,omitempty"`
}

type Note

type Note struct {
	TabBase
	TabGuidedForm
	TabPosition
	TabStyle
	TabValue
	// The height of the tab in pixels.
	Height string `json:"height,omitempty"`
	// Metadata that indicates whether the `height` property is editable.
	HeightMetadata *PropertyMetadata `json:"heightMetadata,omitempty"`
	// Reserved for DocuSign.
	LocalePolicy *LocalePolicyTab `json:"localePolicy,omitempty"`
	// When set to **true**, this custom tab is shared.
	Shared DSBool `json:"shared,omitempty"`
	// Metadata that indicates whether the `shared` property is editable.
	SharedMetadata *PropertyMetadata `json:"sharedMetadata,omitempty"`
	// Metadata that indicates whether the `toolTip` property is editable.
	ToolTipMetadata *PropertyMetadata `json:"toolTipMetadata,omitempty"`
	// The text of a tooltip that appears when a user hovers over a form field or tab.
	Tooltip string `json:"tooltip,omitempty"`
	// The width of the tab in pixels.
	Width string `json:"width,omitempty"`
	// Metadata that indicates whether the `width` property is editable.
	WidthMetadata *PropertyMetadata `json:"widthMetadata,omitempty"`
}

Note is a tab that displays additional information, in the form of a note, for the recipient.

type Notification

type Notification struct {
	// A complex element that specifies the expiration settings for the envelope.
	Expirations *Expirations `json:"expirations,omitempty"`
	// A complex element that specifies reminder settings for the envelope
	Reminders *Reminders `json:"reminders,omitempty"`
	// When set to **true**, the account default notification settings are used for the envelope, overriding the reminders and expirations settings. When set to **false**, the reminders and expirations settings specified in this request are used.
	UseAccountDefaults DSBool `json:"useAccountDefaults,omitempty"`
}

Notification is a complex element that specifies the notification settings for the envelope.

type NotificationDefaultSettings

type NotificationDefaultSettings struct {
	//
	// An array of email notifications that sets the email the user receives when they are a sender. When the specific email notification is set to true, the user will receive those types of email notifications from DocuSign.
	//
	// The user inherits the default account sender email notification settings when the user is created. The email notifications are:
	//
	// * envelopeComplete
	// * changedSigner
	// * senderEnvelopeDeclined
	// * withdrawnConsent
	// * recipientViewed
	// * deliveryFailed
	//
	SenderEmailNotifications *SenderEmailNotifications `json:"senderEmailNotifications,omitempty"`
	// An array of email notifications that specifies the email the user receives when they are a sender. When the specific email notification is set to true, the user receives those types of email notifications from DocuSign. The user inherits the default account sender email notification settings when the user is created.
	SignerEmailNotifications *SignerEmailNotifications `json:"signerEmailNotifications,omitempty"`
}

type NotificationDefaults

type NotificationDefaults struct {
	//
	APIEmailNotifications *NotificationDefaultSettings `json:"apiEmailNotifications,omitempty"`
	//
	EmailNotifications *NotificationDefaultSettings `json:"emailNotifications,omitempty"`
}

type Number

type Number struct {
	TabBase
	TabGuidedForm
	TabPosition
	TabStyle
	TabValue
	// 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.
	//
	// When an envelope is completed the information is available to the sender through the Form Data link in the DocuSign Console.
	//
	// This setting applies only to text boxes and does not affect list boxes, radio buttons, or check boxes.
	ConcealValueOnDocument DSBool `json:"concealValueOnDocument,omitempty"`
	// Metadata that indicates whether the `concealValueOnDocument` property is editable.
	ConcealValueOnDocumentMetadata *PropertyMetadata `json:"concealValueOnDocumentMetadata,omitempty"`
	// 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 DSBool `json:"disableAutoSize,omitempty"`
	// Metadata that indicates whether the `disableAutoSize` property is editable.
	DisableAutoSizeMetadata *PropertyMetadata `json:"disableAutoSizeMetadata,omitempty"`
	// Contains the formula
	// for calculating the value of
	// this tab.
	//
	// Use a tab's `tabLabel`,
	// enclosed in brackets,
	// to refer to it.
	//
	// For example,
	// you want to present the total cost
	// of two items, tax included.
	//
	// The cost of each item is stored
	// in number tabs labeled Item1 and Item2.
	// The tax rate is in a number tab
	// labeled TaxRate.
	//
	// The formula string for this property
	// would be:
	// `([Item1] + [Item2]) * (1 + [TaxRate])`
	//
	// See [Calculated Fields][calculatedfields]
	// in the DocuSign Support Center
	// to learn more about formulas.
	//
	// Maximum Length: 2000 characters
	//
	// [calculatedfields]: https://support.docusign.com/en/guides/ndse-user-guide-calculated-fields
	//
	Formula string `json:"formula,omitempty"`
	// Metadata indicating if the sender can edit the `formula` property.
	FormulaMetadata *PropertyMetadata `json:"formulaMetadata,omitempty"`
	// The height of the tab in pixels.
	Height string `json:"height,omitempty"`
	// Metadata that indicates whether the `height` property is editable.
	HeightMetadata *PropertyMetadata `json:"heightMetadata,omitempty"`
	// 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 DSBool `json:"isPaymentAmount,omitempty"`
	// Metadata that indicates whether the `isPaymentAmount` property is editable.
	IsPaymentAmountMetadata *PropertyMetadata `json:"isPaymentAmountMetadata,omitempty"`
	// Reserved for DocuSign.
	LocalePolicy *LocalePolicyTab `json:"localePolicy,omitempty"`
	// When set to **true**, the signer cannot change the data of the custom tab.
	Locked DSBool `json:"locked,omitempty"`
	// Metadata that indicates whether the `locked` property is editable.
	LockedMetadata *PropertyMetadata `json:"lockedMetadata,omitempty"`
	// An optional value that describes the maximum length of the property when the property is a string.
	MaxLength string `json:"maxLength,omitempty"`
	// Metadata that indicates whether the `maxLength` property is editable.
	MaxLengthMetadata *PropertyMetadata `json:"maxLengthMetadata,omitempty"`
	// The initial value of the tab when it was sent to the recipient.
	OriginalValue string `json:"originalValue,omitempty"`
	// Metadata that indicates whether the `originalValue` property is editable.
	OriginalValueMetadata *PropertyMetadata `json:"originalValueMetadata,omitempty"`
	// When set to **true** and shared is true, information must be entered in this field to complete the envelope.
	RequireAll DSBool `json:"requireAll,omitempty"`
	// Metadata that indicates whether the `requireAll` property is editable.
	RequireAllMetadata *PropertyMetadata `json:"requireAllMetadata,omitempty"`
	// Optional element for field markup. When set to **true**, the signer is required to initial when they modify a shared field.
	RequireInitialOnSharedChange DSBool `json:"requireInitialOnSharedChange,omitempty"`
	// Metadata that indicates whether the `requireInitialOnSharedChange` property is editable.
	RequireInitialOnSharedChangeMetadata *PropertyMetadata `json:"requireInitialOnSharedChangeMetadata,omitempty"`
	// When set to **true**, the signer is required to fill out this tab.
	Required TabRequired `json:"required,omitempty"`
	// Metadata that indicates whether the `required` property is editable.
	RequiredMetadata *PropertyMetadata `json:"requiredMetadata,omitempty"`
	// When set to **true**, the sender must populate the tab before an envelope can be sent using the template.
	//
	// This value tab can only be changed by modifying (PUT) the template.
	//
	// Tabs with a `senderRequired` value of true cannot be deleted from an envelope.
	SenderRequired DSBool `json:"senderRequired,omitempty"`
	// Metadata that indicates whether the `senderRequired` property is editable.
	SenderRequiredMetadata *PropertyMetadata `json:"senderRequiredMetadata,omitempty"`
	// When set to **true**, this custom tab is shared.
	Shared DSBool `json:"shared,omitempty"`
	// Metadata that indicates whether the `shared` property is editable.
	SharedMetadata *PropertyMetadata `json:"sharedMetadata,omitempty"`
	// Metadata that indicates whether the `toolTip` property is editable.
	ToolTipMetadata *PropertyMetadata `json:"toolTipMetadata,omitempty"`
	// The text of a tooltip that appears when a user hovers over a form field or tab.
	Tooltip string `json:"tooltip,omitempty"`
	// The message displayed if the custom tab fails input validation (either custom of embedded).
	ValidationMessage string `json:"validationMessage,omitempty"`
	// Metadata that indicates whether the `validationMessage` property is editable.
	ValidationMessageMetadata *PropertyMetadata `json:"validationMessageMetadata,omitempty"`
	// A regular expression used to validate input for the tab.
	ValidationPattern string `json:"validationPattern,omitempty"`
	// Metadata that indicates whether the `validationPattern` property is editable.
	ValidationPatternMetadata *PropertyMetadata `json:"validationPatternMetadata,omitempty"`
	// The width of the tab in pixels.
	Width string `json:"width,omitempty"`
	// Metadata that indicates whether the `width` property is editable.
	WidthMetadata *PropertyMetadata `json:"widthMetadata,omitempty"`
}

Number is a tab that allows the recipient to enter numbers and decimal (.) points.

type OauthAccess

type OauthAccess struct {
	// Access token information.
	AccessToken string `json:"access_token,omitempty"`
	// A Base64-encoded representation of the attachment that is used to upload and download the file. File attachments may be up to 50 MB in size.
	Data []NameValue `json:"data,omitempty"`
	//
	ExpiresIn string `json:"expires_in,omitempty"`
	//
	RefreshToken string `json:"refresh_token,omitempty"`
	// Must be set to "api".
	Scope string `json:"scope,omitempty"`
	//
	TokenType string `json:"token_type,omitempty"`
}

type Page

type Page struct {
	// The number of dots per inch used for the page image.
	Dpi string `json:"dpi,omitempty"`
	// If an error occurs, this property describes the error.
	ErrorDetails *ErrorDetails `json:"errorDetails,omitempty"`
	// The height of the page in pixels.
	Height string `json:"height,omitempty"`
	// The number of image bytes.
	ImageBytes string `json:"imageBytes,omitempty"`
	// The MIME type.
	MimeType string `json:"mimeType,omitempty"`
	// The unique ID of the page.
	PageID string `json:"pageId,omitempty"`
	// The sequence of the page in the document, or page number.
	Sequence string `json:"sequence,omitempty"`
	// The width of the page in pixels.
	Width string `json:"width,omitempty"`
}

Page description of a page of a document.

type PageImages

type PageImages struct {
	// The last position in the result set.
	EndPosition string `json:"endPosition,omitempty"`
	// 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 `json:"nextUri,omitempty"`
	// An array of page objects.
	Pages []Page `json:"pages,omitempty"`
	// 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 `json:"previousUri,omitempty"`
	// The number of results returned in this response. Because you can filter which entries are included in the response, this value is always less than or equal to `totalSetSize`.
	ResultSetSize string `json:"resultSetSize,omitempty"`
	// The starting position of the current result set.
	StartPosition string `json:"startPosition,omitempty"`
	// The total number of items in the search's result set. This value is always greater than or equal to the value of `resultSetSize`.
	TotalSetSize string `json:"totalSetSize,omitempty"`
}

type PageRequest

type PageRequest struct {
	// The user's encrypted password hash.
	Password string `json:"password,omitempty"`
	// Sets the direction the page image is rotated. The possible settings are: left or right
	Rotate string `json:"rotate,omitempty"`
}

type PageSize

type PageSize struct {
	//
	PageHeight string `json:"pageHeight,omitempty"`
	//
	PageWidth string `json:"pageWidth,omitempty"`
}

type PathExtendedElement

type PathExtendedElement struct {
	//
	Name string `json:"name,omitempty"`
	// Type of user:
	// - `type_owner`
	// - `type_participant`
	Type string `json:"type,omitempty"`
	//
	TypeName string `json:"typeName,omitempty"`
}

type PayPalLegacySettings

type PayPalLegacySettings struct {
	// The three-letter
	// [ISO 4217][ISO4217] currency code for the payment.
	//
	// For example:
	//
	// * AUD Australian dollar
	// * CAD Canadian dollar
	// * EUR Euro
	// * GBP Great Britain pound
	// * USD United States dollar
	//
	// This is a read-only property.
	//
	// [ISO4217]:          https://en.wikipedia.org/wiki/ISO_4217
	//
	Currency string `json:"currency,omitempty"`
	//
	Partner string `json:"partner,omitempty"`
	// The user's encrypted password hash.
	Password string `json:"password,omitempty"`
	// The name of the user.
	UserName string `json:"userName,omitempty"`
	//
	Vendor string `json:"vendor,omitempty"`
}

type PaymentDetails

type PaymentDetails struct {
	// An array of accepted payment methods:
	//
	// * `CreditCard`
	// * `ApplePay`
	// * `AndroidPay`
	// * `BankAccount`
	//
	// For example, if you only accept credit cards and ACH transfers, you would set this property to:
	//
	// `'["BankAccount", "CreditCard"]'`
	//
	// Do not specify `BankAccount` (ACH) if you are also using in-person signing.
	//
	AllowedPaymentMethods []string `json:"allowedPaymentMethods,omitempty"`
	// The GUID set by the payment gateway (such as Stripe) that identifies a transaction. The `chargeId` is created when authorizing a payment and must be referenced when completing a payment.
	ChargeID string `json:"chargeId,omitempty"`
	// Specifies the three-letter
	// [ISO 4217][ISO4217] currency code for the payment.
	//
	// Supported currencies are:
	//
	// * AUD Australian dollar
	// * CAD Canadian dollar
	// * EUR Euro
	// * GBP Great Britain pound
	// * USD United States dollar
	//
	// Specifying any other ISO 4217 code for payments is an error.
	//
	// [ISO4217]:          https://en.wikipedia.org/wiki/ISO_4217
	//
	CurrencyCode string `json:"currencyCode,omitempty"`
	//
	CurrencyCodeMetadata *PropertyMetadata `json:"currencyCodeMetadata,omitempty"`
	// A GUID that identifies the payment gateway
	// connected to the sender's DocuSign account.
	//
	// There is no public API
	// for connecting payment gateway accounts
	// You must connect and manage payment gateway accounts
	// through the DocuSign Admin console
	// and through your chosen payment gateway.
	//
	// You can get the gateway account ID
	// in the Payments section
	// of the DocuSign Admin console.
	//
	//
	// [paymentgateways]:  https://support.docusign.com/en/guides/managing-payment-gateways
	//
	GatewayAccountID string `json:"gatewayAccountId,omitempty"`
	//
	GatewayAccountIDMetadata *PropertyMetadata `json:"gatewayAccountIdMetadata,omitempty"`
	// Display name of the gateway connected to sender's Docusign account.
	//
	// Possible values are: Stripe, Braintree, Authorize.Net.
	GatewayDisplayName string `json:"gatewayDisplayName,omitempty"`
	// Name of the gateway connected to sender's DocuSign account.
	//
	// Possible values are:
	//
	// * `Stripe`
	// * `Braintree`
	// * `AuthorizeDotNet`
	GatewayName string `json:"gatewayName,omitempty"`
	// A payment formula can have
	// one or more line items
	// that provide detail about
	// individual items in a payment request.
	//
	// The list of line items
	// are returned as metadata
	// to the payment gateway.
	//
	LineItems []PaymentLineItem `json:"lineItems,omitempty"`
	//
	PaymentOption string `json:"paymentOption,omitempty"`
	// This read-only property describes the status of a payment.
	//
	// * `new`<br>
	//   This is a new payment request.
	//   The envelope has been created,
	//   but no payment authorizations have been made.
	//
	// * `auth_complete`<br>
	//   A recipient has entered their credit card information,
	//   but the envelope has not been completed.
	//   The card has not been charged.
	//
	// * `payment_complete`<br>
	//   The recipient's card has been charged.
	//
	// * `payment_capture_failed`<br>
	//   Final charge failed.
	//   This can happen when too much time
	//   passes between authorizing the payment
	//   and completing the document.
	//
	Status string `json:"status,omitempty"`
	// This read-only property
	// is a currency-formatted string
	// that represents the total
	// of all the line items.
	// The total is available
	// only after the document is completed,
	// which is when all recipients have paid and
	// have completed all required fields.
	//
	Total *Money `json:"total,omitempty"`
}

PaymentDetails when a formula tab has a `paymentDetails` property, the formula tab is a payment item. See [Requesting Payments Along with Signatures]paymentguide in the DocuSign Support Center to learn more about payments.

type PaymentGatewayAccount

type PaymentGatewayAccount struct {
	//
	Config *PaymentGatewayAccountSetting `json:"config,omitempty"`
	// A user-defined name for a connected gateway account.
	//
	// This name is used in the Admin panel in the list of connected accounts and in Tagger in the payment gateway selector.
	//
	// The human-readable version of `paymentGatewayAccountId`.
	DisplayName string `json:"displayName,omitempty"`
	//
	IsEnabled string `json:"isEnabled,omitempty"`
	//
	IsLegacy string `json:"isLegacy,omitempty"`
	// Utc date and time the comment was last updated (can only be done by creator.)
	LastModified string `json:"lastModified,omitempty"`
	//
	PayPalLegacySettings *PayPalLegacySettings `json:"payPalLegacySettings,omitempty"`
	// Payment gateway used by the connected gateway account.
	// This is the name used by the API.
	// For a human-readable version use `paymentGatewayDisplayName`.
	//
	// Possible values are:
	//
	// * `Stripe`
	// * `Braintree`
	// * `AuthorizeDotNet`
	PaymentGateway string `json:"paymentGateway,omitempty"`
	// A GUID that identifies the payment gateway account. For a human-readable version use `displayName`.
	PaymentGatewayAccountID string `json:"paymentGatewayAccountId,omitempty"`
	// Display name of the payment gateway used by the connected gateway account.
	// This is the human-readable version of `paymentGateway`.
	//
	// Possible values are:
	//
	// * Stripe
	// * Braintree
	// * Authorize.Net
	PaymentGatewayDisplayName string `json:"paymentGatewayDisplayName,omitempty"`
	//
	SupportedCurrencies []string `json:"supportedCurrencies,omitempty"`
	//
	SupportedPaymentMethods []string `json:"supportedPaymentMethods,omitempty"`
	//
	SupportedPaymentMethodsWithOptions []PaymentMethodWithOptions `json:"supportedPaymentMethodsWithOptions,omitempty"`
}

PaymentGatewayAccount information about a connected payment gateway account.

type PaymentGatewayAccountSetting

type PaymentGatewayAccountSetting struct {
	//
	APIFields string `json:"apiFields,omitempty"`
	//
	AuthorizationCode string `json:"authorizationCode,omitempty"`
	//
	CredentialStatus string `json:"credentialStatus,omitempty"`
	//
	MerchantID string `json:"merchantId,omitempty"`
}

type PaymentGatewayAccountsInfo

type PaymentGatewayAccountsInfo struct {
	// A list of payment gateway accounts.
	PaymentGatewayAccounts []PaymentGatewayAccount `json:"paymentGatewayAccounts,omitempty"`
}

PaymentGatewayAccountsInfo holds information about connected payment accounts.

type PaymentLineItem

type PaymentLineItem struct {
	// This is a the `tabLabel`
	// that specifies the amount paid
	// for the line items.
	//
	//
	AmountReference string `json:"amountReference,omitempty"`
	// A sender-defined description of the line item.
	//
	Description string `json:"description,omitempty"`
	// This is the sender-defined
	// SKU, inventory number, or other item code
	// for the line item.
	//
	ItemCode string `json:"itemCode,omitempty"`
	// This is a sender-defined
	// product name, service name,
	// or other designation for the line item.
	//
	Name string `json:"name,omitempty"`
}

PaymentLineItem is a line item describes details about an individual line item in a payment request.

type PaymentMethodWithOptions

type PaymentMethodWithOptions struct {
	//
	SupportedOptions []string `json:"supportedOptions,omitempty"`
	// Type of user:
	// - `type_owner`
	// - `type_participant`
	Type string `json:"type,omitempty"`
}

type PaymentProcessorInformation

type PaymentProcessorInformation struct {
	// The user's address.
	Address *AddressInformation `json:"address,omitempty"`
	//
	BillingAgreementID string `json:"billingAgreementId,omitempty"`
	// Filters returned user records by the specified email address.
	Email string `json:"email,omitempty"`
}

type PermissionProfile

type PermissionProfile struct {
	// The username of the user who last modified the permission profile.
	ModifiedByUsername string `json:"modifiedByUsername,omitempty"`
	// The date and time when the permission profile was last modified.
	ModifiedDateTime *time.Time `json:"modifiedDateTime,omitempty"`
	// The ID of the permission profile. Possible values include:
	//
	// - `2301416` (for the `DocuSign Viewer` profile)
	// - `2301415` (for the `DocuSign Sender` profile)
	// - `2301414` (for the `Account Administrator` profile)
	//
	// In addition, any custom permission profiles associated with your account will have an automatically generated `permissionProfileId`.
	PermissionProfileID string `json:"permissionProfileId,omitempty"`
	// The name of the account permission profile.
	//
	// Example: `Account Administrator`
	PermissionProfileName string `json:"permissionProfileName,omitempty"`
	// This object specifies the permissions that are associated with the account permission profile.
	Settings *AccountRoleSettings `json:"settings,omitempty"`
	// The total number of users in the group associated with the account permission profile.
	UserCount string `json:"userCount,omitempty"`
	// A list of user objects containing information about the users who are associated with the account permission profile.
	Users []UserInformation `json:"users,omitempty"`
}

PermissionProfile this object defines the account permissions for a profile that you can apply to a group of users.

type PermissionProfileInformation

type PermissionProfileInformation struct {
	// A complex type containing a collection of permission profiles.
	PermissionProfiles []PermissionProfile `json:"permissionProfiles,omitempty"`
}

PermissionProfileInformation contains details about the permission profiles associated with an account.

type PlanInformation

type PlanInformation struct {
	// Reserved for DocuSign.
	AddOns []AddOn `json:"addOns,omitempty"`
	// Specifies the ISO currency code for the account.
	CurrencyCode string `json:"currencyCode,omitempty"`
	// Reserved for DocuSign use only.
	FreeTrialDaysOverride string `json:"freeTrialDaysOverride,omitempty"`
	// Reserved for DocuSign.
	PlanFeatureSets []FeatureSet `json:"planFeatureSets,omitempty"`
	// The DocuSign plan id for the account.
	PlanID string `json:"planId,omitempty"`
	//
	RecipientDomains []RecipientDomain `json:"recipientDomains,omitempty"`
}

PlanInformation is an object used to identify the features and attributes of the account being created.

type PolyLine

type PolyLine struct {
	//
	X1 string `json:"x1,omitempty"`
	//
	X2 string `json:"x2,omitempty"`
	//
	Y1 string `json:"y1,omitempty"`
	//
	Y2 string `json:"y2,omitempty"`
}

type PolyLineOverlay

type PolyLineOverlay struct {
	TabBase
	TabGuidedForm
	// Reserved for DocuSign.
	// <!--
	// When set to **true**, the anchor string does not consider case when matching strings in the document. The default value is **true**.
	// -->
	AnchorCaseSensitive string `json:"anchorCaseSensitive,omitempty"`
	// Reserved for DocuSign.
	AnchorCaseSensitiveMetadata *PropertyMetadata `json:"anchorCaseSensitiveMetadata,omitempty"`
	// Reserved for DocuSign.
	// <!--
	// Specifies the alignment of anchor tabs with anchor strings. Possible values are **left** or **right**. The default value is **left**.
	// -->
	//
	AnchorHorizontalAlignment string `json:"anchorHorizontalAlignment,omitempty"`
	// Reserved for DocuSign.
	AnchorHorizontalAlignmentMetadata *PropertyMetadata `json:"anchorHorizontalAlignmentMetadata,omitempty"`
	// When set to **true**, this tab is ignored if the `anchorString` is not found in the document.
	AnchorIgnoreIfNotPresent string `json:"anchorIgnoreIfNotPresent,omitempty"`
	// Metadata that indicates whether the `anchorIgnoreIfNotPresent` property is editable.
	AnchorIgnoreIfNotPresentMetadata *PropertyMetadata `json:"anchorIgnoreIfNotPresentMetadata,omitempty"`
	// Reserved for DocuSign.
	// <!--
	// When set to **true**, the anchor string in this tab matches whole words only (strings embedded in other strings are ignored.) The default value is **true**.
	// -->
	//
	AnchorMatchWholeWord string `json:"anchorMatchWholeWord,omitempty"`
	// Reserved for DocuSign.
	AnchorMatchWholeWordMetadata *PropertyMetadata `json:"anchorMatchWholeWordMetadata,omitempty"`
	// Specifies the string to find in the document and use as the basis for tab placement.
	AnchorString string `json:"anchorString,omitempty"`
	// Metadata that indicates whether the `anchorString` property is editable.
	AnchorStringMetadata *PropertyMetadata `json:"anchorStringMetadata,omitempty"`
	// Reserved for DocuSign.
	AnchorTabProcessorVersion string `json:"anchorTabProcessorVersion,omitempty"`
	// Reserved for DocuSign.
	AnchorTabProcessorVersionMetadata *PropertyMetadata `json:"anchorTabProcessorVersionMetadata,omitempty"`
	// Specifies the units of the X and Y offset. Units may be pixels, millimeters, centimeters, or inches.
	AnchorUnits string `json:"anchorUnits,omitempty"`
	// Metadata that indicates whether the `anchorUnits` property is editable.
	AnchorUnitsMetadata *PropertyMetadata `json:"anchorUnitsMetadata,omitempty"`
	// Specifies the X axis location of the tab in `anchorUnits` relative to the `anchorString`.
	AnchorXOffset string `json:"anchorXOffset,omitempty"`
	// Metadata that indicates whether the `anchorXOffset` property is editable.
	AnchorXOffsetMetadata *PropertyMetadata `json:"anchorXOffsetMetadata,omitempty"`
	// Specifies the Y axis location of the tab in `anchorUnits` relative to the `anchorString`.
	AnchorYOffset string `json:"anchorYOffset,omitempty"`
	// Metadata that indicates whether the `anchorYOffset` property is editable.
	AnchorYOffsetMetadata *PropertyMetadata `json:"anchorYOffsetMetadata,omitempty"`
	// 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 `json:"customTabId,omitempty"`
	// Metadata that indicates whether the `customTabId` property is editable.
	CustomTabIDMetadata *PropertyMetadata `json:"customTabIdMetadata,omitempty"`
	// This object describes errors that occur. It is only valid for responses and ignored in requests.
	ErrorDetails *ErrorDetails `json:"errorDetails,omitempty"`
	// Contains details about the style used for the strike through graphic.
	GraphicsContext *GraphicsContext `json:"graphicsContext,omitempty"`
	// The height of the tab in pixels.
	Height string `json:"height,omitempty"`
	// Metadata that indicates whether the `height` property is editable.
	HeightMetadata *PropertyMetadata `json:"heightMetadata,omitempty"`
	// When set to **true**, the signer cannot change the data of the custom tab.
	Locked string `json:"locked,omitempty"`
	// Metadata that indicates whether the `locked` property is editable.
	LockedMetadata *PropertyMetadata `json:"lockedMetadata,omitempty"`
	// Contains the information necessary to map the tab to a field in SalesForce.
	MergeField *MergeField `json:"mergeField,omitempty"`
	// The type of overlay to use. The API currently supports only the `outline` overlay type.
	OverlayType string `json:"overlayType,omitempty"`
	// Metadata that indicates whether the `overlayType` property is editable.
	//
	OverlayTypeMetadata *PropertyMetadata `json:"overlayTypeMetadata,omitempty"`
	// The page number being accessed.
	PageNumber string `json:"pageNumber,omitempty"`
	// Metadata that indicates whether the `pageNumber` property is editable.
	PageNumberMetadata *PropertyMetadata `json:"pageNumberMetadata,omitempty"`
	// An array of `polyLine` objects that contain x- and y-coordinates representing the locations of the lines.
	PolyLines []PolyLine `json:"polyLines,omitempty"`
	// When set to **true**, indicates that the tab is shared.
	Shared string `json:"shared,omitempty"`
	// Metadata that indicates whether the `shared` property is editable.
	SharedMetadata *PropertyMetadata `json:"sharedMetadata,omitempty"`
	// The status of the tab. Possible values are:
	//
	// - `active`: The tab is active, but the recipient has not yet interacted with it.
	// - `signed`: The recipient signed the tab.
	// - `declined`: The recipient declined the envelope.
	// - `na`: Used when the `status` property is not applicable to the tab type. (For example, a tab that has the `tabType` `SignerAttachmentOptional`).
	Status string `json:"status,omitempty"`
	// Metadata that indicates whether the `status` property is editable.
	StatusMetadata *PropertyMetadata `json:"statusMetadata,omitempty"`
	// The unique identifier for the tab.
	TabID string `json:"tabId,omitempty"`
	// Metadata that indicates whether the `tabId` property is editable.
	TabIDMetadata *PropertyMetadata `json:"tabIdMetadata,omitempty"`
	// The label string associated with the tab.
	// The string may be the empty string.
	// If no value is provided, the tab type is used as the value.
	//
	// Maximum of 500 characters.
	//
	TabLabel string `json:"tabLabel,omitempty"`
	// A positive integer that sets the order the tab is navigated to during signing.
	//
	// Tabs on a page are navigated to in ascending order, starting with the lowest number and moving to the highest. If two or more tabs have the same `tabOrder` value, the normal auto-navigation setting behavior for the envelope is used.
	TabOrder string `json:"tabOrder,omitempty"`
	// Metadata that indicates whether the `tabOrder` property is editable.
	TabOrderMetadata *PropertyMetadata `json:"tabOrderMetadata,omitempty"`
	// When set to **true**, the sender cannot change any attributes of the recipient. Used only when working with template recipients.
	TemplateLocked string `json:"templateLocked,omitempty"`
	// Metadata that indicates whether the `templateLocked` property is editable.
	TemplateLockedMetadata *PropertyMetadata `json:"templateLockedMetadata,omitempty"`
	// When set to **true**, the sender may not remove the recipient. Used only when working with template recipients.
	TemplateRequired string `json:"templateRequired,omitempty"`
	// Metadata that indicates whether the `templateRequired` property is editable.
	TemplateRequiredMetadata *PropertyMetadata `json:"templateRequiredMetadata,omitempty"`
	// Metadata that indicates whether the `toolTip` property is editable.
	ToolTipMetadata *PropertyMetadata `json:"toolTipMetadata,omitempty"`
	// The text of a tooltip that appears when a user hovers over a form field or tab.
	Tooltip string `json:"tooltip,omitempty"`
	// The width of the tab in pixels.
	Width string `json:"width,omitempty"`
	// Metadata that indicates whether the `width` property is editable.
	WidthMetadata *PropertyMetadata `json:"widthMetadata,omitempty"`
	// This property indicates the horizontal offset of the object on the page.
	// DocuSign uses 72 DPI when determining position.
	// Required. May be zero.
	//
	XPosition string `json:"xPosition,omitempty"`
	// Metadata that indicates whether the `xPosition` property is editable.
	XPositionMetadata *PropertyMetadata `json:"xPositionMetadata,omitempty"`
	// This indicates the vertical offset of the object on the page. DocuSign uses 72 DPI when determining position.
	YPosition string `json:"yPosition,omitempty"`
	// Metadata that indicates whether the `yPosition` property is editable.
	YPositionMetadata *PropertyMetadata `json:"yPositionMetadata,omitempty"`
}

PolyLineOverlay this tab enables users to strike through the text of a document. The tab is implemented as a line represented as a pair of x and y coordinates.

type PowerForm

type PowerForm struct {
	//
	CreatedBy string `json:"createdBy,omitempty"`
	// The date and time the item was created.
	CreatedDateTime *time.Time `json:"createdDateTime,omitempty"`
	// The body of the email message sent to the recipients.
	//
	// Maximum length: 10000 characters.
	EmailBody string `json:"emailBody,omitempty"`
	// The subject line of the email message that is sent to all recipients.
	//
	// For information about adding merge field information to the email subject, see [Template Email Subject Merge Fields](https://developers.docusign.com/esign-rest-api/reference/Templates/Templates/create#template-email-subject-merge-fields).
	//
	EmailSubject string `json:"emailSubject,omitempty"`
	// An array containing PowerForm data.
	Envelopes []Envelope `json:"envelopes,omitempty"`
	// This object describes errors that occur. It is only valid for responses and ignored in requests.
	ErrorDetails *ErrorDetails `json:"errorDetails,omitempty"`
	//
	Instructions string `json:"instructions,omitempty"`
	//
	IsActive DSBool `json:"isActive,omitempty"`
	//
	LastUsed string `json:"lastUsed,omitempty"`
	//
	LimitUseInterval string `json:"limitUseInterval,omitempty"`
	// When **true**, the `limitUseInterval` is enabled.
	LimitUseIntervalEnabled string `json:"limitUseIntervalEnabled,omitempty"`
	//
	LimitUseIntervalUnits string `json:"limitUseIntervalUnits,omitempty"`
	// The maximum number of times that the PowerForm can be used. Setting this property can limit your account's exposure to excessive envelope usage. Each time a recipient clicks **Begin Signing** for a document, the number of uses remaining is reduced by one. If a recipient attempts to sign a PowerForm that has reached the maximum number of uses, an error message informs the recipient that the document is not available for signing.
	//
	// **Note**: A PowerForm Administrator can edit this number at any time after the PowerForm is created, even if it has reached a previous use limit.
	MaxUseEnabled string `json:"maxUseEnabled,omitempty"`
	//
	Name string `json:"name,omitempty"`
	// The id of the PowerForm.
	PowerFormID string `json:"powerFormId,omitempty"`
	// The URL for the PowerForm.
	PowerFormURL string `json:"powerFormUrl,omitempty"`
	// An array of recipient objects that provides details about the recipients of the envelope.
	Recipients []PowerFormRecipient `json:"recipients,omitempty"`
	//
	SenderName string `json:"senderName,omitempty"`
	//
	SenderUserID string `json:"senderUserId,omitempty"`
	//
	SigningMode string `json:"signingMode,omitempty"`
	// The ID of the template.
	TemplateID string `json:"templateId,omitempty"`
	//
	TemplateName string `json:"templateName,omitempty"`
	//
	TimesUsed string `json:"timesUsed,omitempty"`
	// URI containing the user ID.
	URI string `json:"uri,omitempty"`
	//
	UsesRemaining string `json:"usesRemaining,omitempty"`
}

type PowerFormFormDataEnvelope

type PowerFormFormDataEnvelope struct {
	// The envelope's GUID.
	//
	// Example: `93be49ab-afa0-4adf-933c-f752070d71ec`
	EnvelopeID string `json:"envelopeId,omitempty"`
	// An array of recipient objects that provides details about the recipients of the envelope.
	Recipients []PowerFormFormDataRecipient `json:"recipients,omitempty"`
}

type PowerFormFormDataRecipient

type PowerFormFormDataRecipient struct {
	// Filters returned user records by the specified email address.
	Email string `json:"email,omitempty"`
	//
	FormData []NameValue `json:"formData,omitempty"`
	// The name of the recipient.
	Name string `json:"name,omitempty"`
	// The unique id for the recipient. It is used by the tab element to indicate which recipient is to sign the document.
	RecipientID string `json:"recipientId,omitempty"`
}

type PowerFormRecipient

type PowerFormRecipient struct {
	// (Optional) The access code that the recipient must enter to access the PowerForm.
	//
	// Maximum Length: 50 characters. The code must also conform to the account's access code format setting.
	//
	// If blank but the signer accessCode property is set in the envelope, then that value is used.
	//
	// If blank and the signer accessCode property is not set, then the access code is not required.
	AccessCode string `json:"accessCode,omitempty"`
	// When **true**, the `accessCode` property is locked and cannot be edited.
	AccessCodeLocked string `json:"accessCodeLocked,omitempty"`
	// When **true**, the recipient must enter the `accessCode` to access the PowerForm.
	AccessCodeRequired string `json:"accessCodeRequired,omitempty"`
	// The email address of the recipient.
	//
	// **Note**: For self-service documents where you do not know who the recipients are in advance, you can leave this property blank.
	Email string `json:"email,omitempty"`
	// When **true**, the recipient's email address is locked and cannot be edited.
	EmailLocked string `json:"emailLocked,omitempty"`
	// The name of the authentication check to use. This value must match one of the authentication types that the account uses. The names of these authentication types appear in the web console sending interface in the Identify list for a recipient. This setting overrides any default authentication setting.
	//
	// **Example**: Your account has ID Check and SMS Authentication available. 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 $. For SMS, you would use SMS Auth $, and you would also need to add a phone number to the smsAuthentication node.
	IDCheckConfigurationName string `json:"idCheckConfigurationName,omitempty"`
	// Determines how authentication is configured for the account. Valid values are:
	//
	// - `always`: Authentication checks are performed on every envelope.
	// - `never`: Authentication checks are not performed on any envelopes.
	// - `optional:` Authentication is configurable per envelope.
	IDCheckRequired string `json:"idCheckRequired,omitempty"`
	// The name of the PowerForm recipient.
	//
	// **Note**: For self-service documents where you do not know who the recipients are in advance, you can leave this property blank.
	Name string `json:"name,omitempty"`
	// The recipient type, as specified by the following values:
	// - `agents`: Agent recipients can add name and email information for recipients that appear after the agent in routing order.
	// - `carbonCopies`: Carbon copy recipients get a copy of the envelope but don't need to sign, initial, date, or add information to any of the documents. This type of recipient can be used in any routing order.
	// - `certifiedDeliveries`: Certified delivery recipients must receive the completed documents for the envelope to be completed. They don't need to sign, initial, date, or add information to any of the documents.
	// - `editors`: Editors have the same management and access rights for the envelope as the sender. Editors can add name and email information, add or change the routing order, set authentication options, and can edit signature/initial tabs and data fields for the remaining recipients.
	// - `inPersonSigners`: In-person recipients are DocuSign users who act as signing hosts in the same physical location as the signer.
	// - `intermediaries`: Intermediary recipients can optionally add name and email information for recipients at the same or subsequent level in the routing order.
	// - `seals`: Electronic seal recipients represent legal entities.
	// - `signers`: Signers are recipients who must sign, initial, date, or add data to form fields on the documents in the envelope.
	// - `witnesses`: Witnesses are recipients whose signatures affirm that the identified signers have signed the documents in the envelope.
	RecipientType string `json:"recipientType,omitempty"`
	// The role associated with the recipient (for example, `Member`).
	//
	// This property is required when you are working with template recipients and PowerForm recipients.
	RoleName string `json:"roleName,omitempty"`
	// Specifies the routing order of the recipient in the envelope.
	RoutingOrder string `json:"routingOrder,omitempty"`
	// When **true**, the template used to create the PowerForm requires ID lookup for the recipient.
	TemplateRequiresIDLookup string `json:"templateRequiresIdLookup,omitempty"`
	// When **true**, the `userName` property for the recipient is locked and cannot be edited.
	UserNameLocked string `json:"userNameLocked,omitempty"`
}

PowerFormRecipient **Note**: For a self-service PowerForm on a website, you can specify the intended recipients generically (for example, use `Member` as the `Name`), and omit personal details such as `email`.

type PowerFormSendersResponse

type PowerFormSendersResponse struct {
	// The last position in the result set.
	EndPosition int32 `json:"endPosition,omitempty"`
	// 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 `json:"nextUri,omitempty"`
	// An array of `userInfo` objects containing information about users who have sent PowerForms.
	PowerFormSenders []UserInfo `json:"powerFormSenders,omitempty"`
	// 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 `json:"previousUri,omitempty"`
	// The number of results returned in this response. Because you can filter which entries are included in the response, this value is always less than or equal to `totalSetSize`.
	ResultSetSize int32 `json:"resultSetSize,omitempty"`
	// The starting position of the current result set.
	StartPosition int32 `json:"startPosition,omitempty"`
	// The total number of items in the search's result set. This value is always greater than or equal to the value of `resultSetSize`.
	TotalSetSize int32 `json:"totalSetSize,omitempty"`
}

PowerFormSendersResponse this object includes information about the users who have sent PowerForms.

type PowerFormsFormDataResponse

type PowerFormsFormDataResponse struct {
	// An array containing PowerForm data.
	Envelopes []PowerFormFormDataEnvelope `json:"envelopes,omitempty"`
}

type PowerFormsRequest

type PowerFormsRequest struct {
	// An array of PowerForm objects.
	PowerForms []PowerForm `json:"powerForms,omitempty"`
}

type PowerFormsResponse

type PowerFormsResponse struct {
	// The last position in the result set.
	EndPosition int32 `json:"endPosition,omitempty"`
	// 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 `json:"nextUri,omitempty"`
	// An array of PowerForm objects.
	PowerForms []PowerForm `json:"powerForms,omitempty"`
	// 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 `json:"previousUri,omitempty"`
	// The number of results returned in this response. Because you can filter which entries are included in the response, this value is always less than or equal to `totalSetSize`.
	ResultSetSize int32 `json:"resultSetSize,omitempty"`
	// The starting position of the current result set.
	StartPosition int32 `json:"startPosition,omitempty"`
	// The total number of items in the search's result set. This value is always greater than or equal to the value of `resultSetSize`.
	TotalSetSize int32 `json:"totalSetSize,omitempty"`
}

type PropertyMetadata

type PropertyMetadata struct {
	// An array of option strings supported by this setting.
	Options []string `json:"options,omitempty"`
	// Indicates whether the property is editable. Valid values are:
	//
	// - `editable`
	// - `read_only`
	Rights string `json:"rights,omitempty"`
}

PropertyMetadata metadata about a property.

type Province

type Province struct {
	//
	IsoCode string `json:"isoCode,omitempty"`
	//
	Name string `json:"name,omitempty"`
}

type ProvisioningInformation

type ProvisioningInformation struct {
	//
	DefaultConnectionID string `json:"defaultConnectionId,omitempty"`
	//
	DefaultPlanID string `json:"defaultPlanId,omitempty"`
	// The code that identifies the billing plan groups and plans for the new account.
	DistributorCode string `json:"distributorCode,omitempty"`
	// The password for the distributorCode.
	DistributorPassword string `json:"distributorPassword,omitempty"`
	//
	PasswordRuleText string `json:"passwordRuleText,omitempty"`
	//
	PlanPromotionText string `json:"planPromotionText,omitempty"`
	//
	PurchaseOrderOrPromAllowed string `json:"purchaseOrderOrPromAllowed,omitempty"`
}

type PurchasedEnvelopesInformation

type PurchasedEnvelopesInformation struct {
	// The total amount of the purchase.
	Amount string `json:"amount,omitempty"`
	// The AppName of the client application.
	AppName string `json:"appName,omitempty"`
	// The currency code for the account, based on the [ISO 4217 currency code](https://www.iso.org/iso-4217-currency-codes.html).
	CurrencyCode string `json:"currencyCode,omitempty"`
	// The Platform of the client application
	Platform string `json:"platform,omitempty"`
	// The Product ID from the AppStore.
	ProductID string `json:"productId,omitempty"`
	// The quantity of envelopes to add to the account.
	Quantity string `json:"quantity,omitempty"`
	// The encrypted Base64 encoded receipt data.
	ReceiptData []byte `json:"receiptData,omitempty"`
	// The name of the AppStore.
	StoreName string `json:"storeName,omitempty"`
	// Specifies the Transaction ID from the AppStore.
	TransactionID string `json:"transactionId,omitempty"`
}

type Radio

type Radio struct {
	// Reserved for DocuSign.
	// <!--
	// When set to **true**, the anchor string does not consider case when matching strings in the document. The default value is **true**.
	// -->
	AnchorCaseSensitive DSBool `json:"anchorCaseSensitive,omitempty"`
	// Reserved for DocuSign.
	AnchorCaseSensitiveMetadata *PropertyMetadata `json:"anchorCaseSensitiveMetadata,omitempty"`
	// Reserved for DocuSign.
	// <!--
	// Specifies the alignment of anchor tabs with anchor strings. Possible values are **left** or **right**. The default value is **left**.
	// -->
	//
	AnchorHorizontalAlignment string `json:"anchorHorizontalAlignment,omitempty"`
	// Reserved for DocuSign.
	AnchorHorizontalAlignmentMetadata *PropertyMetadata `json:"anchorHorizontalAlignmentMetadata,omitempty"`
	// When set to **true**, this tab is ignored if the `anchorString` is not found in the document.
	AnchorIgnoreIfNotPresent DSBool `json:"anchorIgnoreIfNotPresent,omitempty"`
	// Metadata that indicates whether the `anchorIgnoreIfNotPresent` property is editable.
	AnchorIgnoreIfNotPresentMetadata *PropertyMetadata `json:"anchorIgnoreIfNotPresentMetadata,omitempty"`
	// Reserved for DocuSign.
	// <!--
	// When set to **true**, the anchor string in this tab matches whole words only (strings embedded in other strings are ignored.) The default value is **true**.
	// -->
	//
	AnchorMatchWholeWord DSBool `json:"anchorMatchWholeWord,omitempty"`
	// Reserved for DocuSign.
	AnchorMatchWholeWordMetadata *PropertyMetadata `json:"anchorMatchWholeWordMetadata,omitempty"`
	// Specifies the string to find in the document and use as the basis for tab placement.
	AnchorString string `json:"anchorString,omitempty"`
	// Metadata that indicates whether the `anchorString` property is editable.
	AnchorStringMetadata *PropertyMetadata `json:"anchorStringMetadata,omitempty"`
	// Reserved for DocuSign.
	AnchorTabProcessorVersion string `json:"anchorTabProcessorVersion,omitempty"`
	// Reserved for DocuSign.
	AnchorTabProcessorVersionMetadata *PropertyMetadata `json:"anchorTabProcessorVersionMetadata,omitempty"`
	// Specifies the units of the X and Y offset. Units may be pixels, millimeters, centimeters, or inches.
	AnchorUnits string `json:"anchorUnits,omitempty"`
	// Metadata that indicates whether the `anchorUnits` property is editable.
	AnchorUnitsMetadata *PropertyMetadata `json:"anchorUnitsMetadata,omitempty"`
	// Specifies the X axis location of the tab in `anchorUnits` relative to the `anchorString`.
	AnchorXOffset string `json:"anchorXOffset,omitempty"`
	// Metadata that indicates whether the `anchorXOffset` property is editable.
	AnchorXOffsetMetadata *PropertyMetadata `json:"anchorXOffsetMetadata,omitempty"`
	// Specifies the Y axis location of the tab in `anchorUnits` relative to the `anchorString`.
	AnchorYOffset string `json:"anchorYOffset,omitempty"`
	// Metadata that indicates whether the `anchorYOffset` property is editable.
	AnchorYOffsetMetadata *PropertyMetadata `json:"anchorYOffsetMetadata,omitempty"`
	// When set to **true**, the information in the tab is bold.
	Bold string `json:"bold,omitempty"`
	// Metadata that indicates whether the `bold` property is editable.
	BoldMetadata *PropertyMetadata `json:"boldMetadata,omitempty"`
	// This object describes errors that occur. It is only valid for responses and ignored in requests.
	ErrorDetails *ErrorDetails `json:"errorDetails,omitempty"`
	// The font to be used for the tab value. Supported fonts include:
	//
	// - Default
	// - Arial
	// - ArialNarrow
	// - Calibri
	// - CourierNew
	// - Garamond
	// - Georgia
	// - Helvetica
	// - LucidaConsole
	// - MSGothic
	// - MSMincho
	// - OCR-A
	// - Tahoma
	// - TimesNewRoman
	// - Trebuchet
	// - Verdana
	//
	Font string `json:"font,omitempty"`
	// The font color to use for the information in the tab. Possible values are:
	//
	// - Black
	// - BrightBlue
	// - BrightRed
	// - DarkGreen
	// - DarkRed
	// - Gold
	// - Green
	// - NavyBlue
	// - Purple
	// - White
	//
	FontColor string `json:"fontColor,omitempty"`
	// Metadata that indicates whether the `fontColor` property is editable.
	FontColorMetadata *PropertyMetadata `json:"fontColorMetadata,omitempty"`
	// Metadata that indicates whether the `font` property is editable.
	FontMetadata *PropertyMetadata `json:"fontMetadata,omitempty"`
	// The font size used for the information in the tab. Possible values are:
	//
	// - Size7
	// - Size8
	// - Size9
	// - Size10
	// - Size11
	// - Size12
	// - Size14
	// - Size16
	// - Size18
	// - Size20
	// - Size22
	// - Size24
	// - Size26
	// - Size28
	// - Size36
	// - Size48
	// - Size72
	FontSize string `json:"fontSize,omitempty"`
	// Metadata that indicates whether the `fontSize` property is editable.
	FontSizeMetadata *PropertyMetadata `json:"fontSizeMetadata,omitempty"`
	// When set to **true**, the information in the tab is italic.
	Italic string `json:"italic,omitempty"`
	// Metadata that indicates whether the `italic` property is editable.
	ItalicMetadata *PropertyMetadata `json:"italicMetadata,omitempty"`
	// When set to **true**, the signer cannot change the data of the custom tab.
	Locked DSBool `json:"locked,omitempty"`
	// Metadata that indicates whether the `locked` property is editable.
	LockedMetadata *PropertyMetadata `json:"lockedMetadata,omitempty"`
	// Specifies the page number on which the tab is located.
	// Must be 1 for supplemental documents.
	//
	PageNumber string `json:"pageNumber,omitempty"`
	// Metadata that indicates whether the `pageNumber` property is editable.
	PageNumberMetadata *PropertyMetadata `json:"pageNumberMetadata,omitempty"`
	// When set to **true**, the signer is required to fill out this tab.
	Required TabRequired `json:"required,omitempty"`
	// Metadata that indicates whether the `required` property is editable.
	RequiredMetadata *PropertyMetadata `json:"requiredMetadata,omitempty"`
	// When set to **true**, the radio button is selected.
	Selected DSBool `json:"selected,omitempty"`
	// Metadata that indicates whether the `selected` property is editable.
	SelectedMetadata *PropertyMetadata `json:"selectedMetadata,omitempty"`
	// The status of the item.
	Status string `json:"status,omitempty"`
	// Metadata that indicates whether the `status` property is editable.
	StatusMetadata *PropertyMetadata `json:"statusMetadata,omitempty"`
	// The unique identifier for the tab.
	TabID string `json:"tabId,omitempty"`
	// Metadata that indicates whether the `tabId` property is editable.
	TabIDMetadata *PropertyMetadata `json:"tabIdMetadata,omitempty"`
	// A positive integer that sets the order the tab is navigated to during signing.
	//
	// Tabs on a page are navigated to in ascending order, starting with the lowest number and moving to the highest. If two or more tabs have the same `tabOrder` value, the normal auto-navigation setting behavior for the envelope is used.
	TabOrder string `json:"tabOrder,omitempty"`
	// Metadata that indicates whether the `tabOrder` property is editable.
	TabOrderMetadata *PropertyMetadata `json:"tabOrderMetadata,omitempty"`
	// When set to **true**, the information in the tab is underlined.
	Underline string `json:"underline,omitempty"`
	// Metadata that indicates whether the `underline` property is editable.
	UnderlineMetadata *PropertyMetadata `json:"underlineMetadata,omitempty"`
	// Specifies the value of the tab.
	Value string `json:"value,omitempty"`
	// Metadata that indicates whether the `value` property is editable.
	ValueMetadata *PropertyMetadata `json:"valueMetadata,omitempty"`
	// This property indicates the horizontal offset of the object on the page.
	// DocuSign uses 72 DPI when determining position.
	// Required. May be zero.
	//
	XPosition string `json:"xPosition,omitempty"`
	// Metadata that indicates whether the `xPosition` property is editable.
	XPositionMetadata *PropertyMetadata `json:"xPositionMetadata,omitempty"`
	// This indicates the vertical offset of the object on the page. DocuSign uses 72 DPI when determining position.
	YPosition string `json:"yPosition,omitempty"`
	// Metadata that indicates whether the `yPosition` property is editable.
	YPositionMetadata *PropertyMetadata `json:"yPositionMetadata,omitempty"`
}

Radio one of the selectable radio buttons in the `radios` property of a [`radioGroup`](https://developers.docusign.com/esign-rest-api/reference/Envelopes/EnvelopeRecipientTabs/create/#/definitions/radioGroup) tab.

type RadioGroup

type RadioGroup struct {
	TabBase
	// The name of the group. The search_text provided in the call automatically performs a wild card search on group_name.
	GroupName string `json:"groupName,omitempty"`
	// Metadata that indicates whether the `groupName` property is editable.
	GroupNameMetadata *PropertyMetadata `json:"groupNameMetadata,omitempty"`
	// Specifies the locations and status for radio buttons that are grouped together.
	Radios []Radio `json:"radios,omitempty"`
	// When set to **true** and shared is true, information must be entered in this field to complete the envelope.
	RequireAll DSBool `json:"requireAll,omitempty"`
	// Metadata that indicates whether the `requireAll` property is editable.
	RequireAllMetadata *PropertyMetadata `json:"requireAllMetadata,omitempty"`
	// Optional element for field markup. When set to **true**, the signer is required to initial when they modify a shared field.
	RequireInitialOnSharedChange DSBool `json:"requireInitialOnSharedChange,omitempty"`
	// Metadata that indicates whether the `requireInitialOnSharedChange` property is editable.
	RequireInitialOnSharedChangeMetadata *PropertyMetadata `json:"requireInitialOnSharedChangeMetadata,omitempty"`
	// When set to **true**, this custom tab is shared.
	Shared DSBool `json:"shared,omitempty"`
	// Metadata that indicates whether the `shared` property is editable.
	SharedMetadata *PropertyMetadata `json:"sharedMetadata,omitempty"`
	// When set to **true**, the sender cannot change any attributes of the recipient. Used only when working with template recipients.
	TemplateLocked string `json:"templateLocked,omitempty"`
	// Metadata that indicates whether the `templateLocked` property is editable.
	TemplateLockedMetadata *PropertyMetadata `json:"templateLockedMetadata,omitempty"`
	// When set to **true**, the sender may not remove the recipient. Used only when working with template recipients.
	TemplateRequired string `json:"templateRequired,omitempty"`
	// Metadata that indicates whether the `templateRequired` property is editable.
	TemplateRequiredMetadata *PropertyMetadata `json:"templateRequiredMetadata,omitempty"`
	// The text of a tooltip that appears when a user hovers over a form field or tab.
	Tooltip string `json:"tooltip,omitempty"`
	// Metadata that indicates whether the `tooltip` property is editable.
	TooltipMetadata *PropertyMetadata `json:"tooltipMetadata,omitempty"`
}

RadioGroup this group tab is used to place radio buttons on a document. The `radios` property contains a list of [`radio`](https://developers.docusign.com/esign-rest-api/reference/Envelopes/EnvelopeRecipientTabs/create/#/definitions/radio) objects associated with the group. Only one radio button can be selected in a group.

type RecipientAttachment

type RecipientAttachment struct {
	// The unique identifier for the attachment.
	AttachmentID string `json:"attachmentId,omitempty"`
	// Specifies the type of the attachment for the recipient. Possible values are:
	//
	// - `.htm`
	// - `.xml`
	AttachmentType string `json:"attachmentType,omitempty"`
	// A Base64-encoded representation of the attachment that is used to upload and download the file. File attachments may be up to 50 MB in size.
	Data []byte `json:"data,omitempty"`
	// An optional label for the attachment.
	Label string `json:"label,omitempty"`
	// The name of the attachment.
	Name string `json:"name,omitempty"`
	// The URL of a previously staged chunked upload. Using a chunked upload enables you to stage a large, chunkable temp file. You then use the `remoteUrl` property to reference the chunked upload as the content in attachment and document-related requests. The `remoteUrl` property cannot be used for downloads.
	RemoteURL string `json:"remoteUrl,omitempty"`
}

type RecipientDomain

type RecipientDomain struct {
	//
	Active string `json:"active,omitempty"`
	//
	DomainCode string `json:"domainCode,omitempty"`
	//
	DomainName string `json:"domainName,omitempty"`
	//
	RecipientDomainID string `json:"recipientDomainId,omitempty"`
}

type RecipientEmailNotification

type RecipientEmailNotification struct {
	// Not applicable for this object.
	EmailBody string `json:"emailBody,omitempty"`
	// Metadata that indicates whether the `emailBody` property can be edited.
	EmailBodyMetadata *PropertyMetadata `json:"emailBodyMetadata,omitempty"`
	// Not applicable for this object.
	EmailSubject string `json:"emailSubject,omitempty"`
	// Metadata that indicates whether the `emailSubject` property can be edited.
	EmailSubjectMetadata *PropertyMetadata `json:"emailSubjectMetadata,omitempty"`
	// Specifies the language used to localize Electronic Seals UI texts such as "Sealed by", etc.
	//
	// 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).
	//
	// This parameter is optional. If not set, it defaults to the sender's language settings at the time of sealing.
	SupportedLanguage string `json:"supportedLanguage,omitempty"`
	// Metadata that indicates whether the `supportedLanguage` property can be edited.
	SupportedLanguageMetadata *PropertyMetadata `json:"supportedLanguageMetadata,omitempty"`
}

type RecipientEvent

type RecipientEvent struct {
	// reserved
	IncludeDocuments string `json:"includeDocuments,omitempty"`
	// Send a webhook notification for the following recipient statuses: Sent, Delivered, Completed, Declined, AuthenticationFailed, and AutoResponded.
	RecipientEventStatusCode string `json:"recipientEventStatusCode,omitempty"`
}

type RecipientFormData

type RecipientFormData struct {
	// The date and time the recipient declined the envelope.
	DeclinedTime string `json:"DeclinedTime,omitempty"`
	// The date and time the recipient viewed the documents in the envelope in the DocuSign signing UI.
	DeliveredTime string `json:"DeliveredTime,omitempty"`
	// The date and time the envelope was sent to the recipient.
	SentTime string `json:"SentTime,omitempty"`
	// The date and time the recipient signed the documents.
	SignedTime string `json:"SignedTime,omitempty"`
	// The recipient's email address.
	Email string `json:"email,omitempty"`
	// An array of form data objects.
	FormData []FormDataItem `json:"formData,omitempty"`
	// The name of the recipient.
	Name string `json:"name,omitempty"`
	// A local reference that senders use to map recipients to other objects, such as specific document tabs. Within an envelope, each `recipientId` must be unique, but there is no uniqueness requirement across envelopes. For example, many envelopes assign the first recipient a `recipientId` of `1`.
	RecipientID string `json:"recipientId,omitempty"`
}

type RecipientIdentityVerification

type RecipientIdentityVerification struct {
	// ID of the Identity Verification worklow used to verify recipients' identity. </br> This ID must match one of the [workflowId](https://developers.docusign.com/esign-rest-api/reference/Accounts/IdentityVerifications/list#accountIdentityVerificationWorkflow) available to your account.
	WorkflowID string `json:"workflowId,omitempty"`
}

RecipientIdentityVerification specifies ID Verification applied on an envelope by workflow ID. See the [list](https://developers.docusign.com/esign-rest-api/reference/Accounts/IdentityVerifications/list) method in the [IdentityVerifications](https://developers.docusign.com/esign-rest-api/reference/Accounts/IdentityVerifications) resource for more information on how to retrieve workflow IDs available for an account. This can be used in addition to other [recipient authentication](https://support.docusign.com/en/guides/ndse-user-guide-recipient-authentication) methods.

type RecipientNamesResponse

type RecipientNamesResponse struct {
	// Indicates whether email address is used by more than one user.
	MultipleUsers string `json:"multipleUsers,omitempty"`
	//
	RecipientNames []string `json:"recipientNames,omitempty"`
	//
	ReservedRecipientEmail string `json:"reservedRecipientEmail,omitempty"`
}

type RecipientPhoneAuthentication

type RecipientPhoneAuthentication struct {
	// Boolean. When set to **true**, the recipient can supply a phone number their choice.
	RecipMayProvideNumber DSBool `json:"recipMayProvideNumber,omitempty"`
	// Metadata that indicates whether the `recipMayProvideNumber` property can be edited.
	RecipMayProvideNumberMetadata *PropertyMetadata `json:"recipMayProvideNumberMetadata,omitempty"`
	// Reserved for DocuSign.
	RecordVoicePrint string `json:"recordVoicePrint,omitempty"`
	// Metadata that indicates whether the `recordVoicePrint` property can be edited.
	RecordVoicePrintMetadata *PropertyMetadata `json:"recordVoicePrintMetadata,omitempty"`
	// An array containing a list of phone numbers that the recipient can use for SMS text authentication.
	SenderProvidedNumbers []string `json:"senderProvidedNumbers,omitempty"`
	// Metadata that indicates whether the `senderProvidedNumbers` property can be edited.
	SenderProvidedNumbersMetadata *PropertyMetadata `json:"senderProvidedNumbersMetadata,omitempty"`
	//  Reserved for DocuSign.
	ValidateRecipProvidedNumber string `json:"validateRecipProvidedNumber,omitempty"`
	// Metadata that indicates whether the `validateRecipProvidedNumber` property can be edited.
	ValidateRecipProvidedNumberMetadata *PropertyMetadata `json:"validateRecipProvidedNumberMetadata,omitempty"`
}

RecipientPhoneAuthentication is a complex type that contains the elements:

* `recipMayProvideNumber` - A Boolean value that specifies whether the recipient can use the phone number of their choice. * `senderProvidedNumbers` - A list of phone numbers that the recipient can use. * `recordVoicePrint` - Reserved for DocuSign. * `validateRecipProvidedNumber` - Reserved for DocuSign.

type RecipientPreviewRequest

type RecipientPreviewRequest struct {
	// A unique identifier of the authentication event executed by the client application.
	AssertionID string `json:"assertionId,omitempty"`
	// A sender generated value that indicates the date/time that the signer was authenticated.
	AuthenticationInstant string `json:"authenticationInstant,omitempty"`
	// Required. Choose a value that most closely matches the technique your application used to authenticate the recipient / signer.
	//
	// Choose a value from this list:
	// * Biometric
	// * Email
	// * HTTPBasicAuth
	// * Kerberos
	// * KnowledgeBasedAuth
	// * None
	// * PaperDocuments
	// * Password
	// * RSASecureID
	// * SingleSignOn_CASiteminder
	// * SingleSignOn_InfoCard
	// * SingleSignOn_MicrosoftActiveDirectory
	// * SingleSignOn_Other
	// * SingleSignOn_Passport
	// * SingleSignOn_SAML
	// * Smartcard
	// * SSLMutualAuth
	// * X509Certificate
	//
	// This information is included in the Certificate of Completion.
	AuthenticationMethod string `json:"authenticationMethod,omitempty"`
	// Only used if pingUrl is specified. This is the interval, in seconds, between pings on the pingUrl.  The default is 300 seconds. Valid values are 60-1200 seconds.
	PingFrequency string `json:"pingFrequency,omitempty"`
	// A client Url to be pinged by the DocuSign Signing experience to indicate to the client that Signing is active. An HTTP Get is executed against the client. The response from the client is ignored. The intent is for the client to reset it's session timer when the request is received.
	PingURL string `json:"pingUrl,omitempty"`
	// A local reference that senders use to map recipients to other objects, such as specific document tabs. Within an envelope, each `recipientId` must be unique, but there is no uniqueness requirement across envelopes. For example, many envelopes assign the first recipient a `recipientId` of `1`.
	RecipientID string `json:"recipientId,omitempty"`
	//
	ReturnURL string `json:"returnUrl,omitempty"`
	// The domain in which the user authenticated.
	SecurityDomain string `json:"securityDomain,omitempty"`
	//
	XFrameOptions string `json:"xFrameOptions,omitempty"`
	//
	XFrameOptionsAllowFromURL string `json:"xFrameOptionsAllowFromUrl,omitempty"`
}

type RecipientSMSAuthentication

type RecipientSMSAuthentication struct {
	// An array containing a list of phone numbers that the recipient can use for SMS text authentication.
	SenderProvidedNumbers []string `json:"senderProvidedNumbers,omitempty"`
	// Metadata that indicates whether the `senderProvidedNumbers` property can be edited.
	SenderProvidedNumbersMetadata *PropertyMetadata `json:"senderProvidedNumbersMetadata,omitempty"`
}

RecipientSMSAuthentication contains the element senderProvidedNumbers which is an Array of phone numbers the recipient can use for SMS text authentication.

type RecipientSignatureInformation

type RecipientSignatureInformation struct {
	// Specifies the font style for the user's signature.
	FontStyle string `json:"fontStyle,omitempty"`
	// Specifies the user's signature in initials format.
	SignatureInitials string `json:"signatureInitials,omitempty"`
	// Specifies the user's signature name.
	SignatureName string `json:"signatureName,omitempty"`
}

RecipientSignatureInformation allows the sender to pre-specify the signature name, signature initials and signature font used in the signature stamp for the recipient.

Used only with recipient types In Person Signers and Signers.

type RecipientSignatureProvider

type RecipientSignatureProvider struct {
	// By default, electronic seals apply on all documents in an envelope. If any of the documents has a `signHere` tab, then a visual representation of the electronic seal will show up in the final document. If not, the electronic seal will be visible in the metadata but not in the content of the document.
	//
	// To apply electronic seals on specific documents only, you must enable the  `sealDocumentsWithTabsOnly` parameter. In this case, Electronic Seal applies only on documents that have `signHere` tabs set for the Electronic Seal recipient. Other documents won't be sealed.
	SealDocumentsWithTabsOnly DSBool `json:"sealDocumentsWithTabsOnly,omitempty"`
	// Indicates the name of the electronic seal to apply on documents.
	//
	SealName string `json:"sealName,omitempty"`
	// The name of an Electronic or Standards Based Signature (digital signature) provider for the signer to use. [The current provider list.](https://developers.docusign.com/esign-rest-api/guides/standards-based-signatures)
	SignatureProviderName string `json:"signatureProviderName,omitempty"`
	// Metadata that indicates whether the `signatureProviderName` property is editable.
	//
	SignatureProviderNameMetadata *PropertyMetadata `json:"signatureProviderNameMetadata,omitempty"`
	// Not applicable for this object.
	SignatureProviderOptions *RecipientSignatureProviderOptions `json:"signatureProviderOptions,omitempty"`
}

RecipientSignatureProvider is an Electronic or Standards Based Signature (digital signature) provider for the signer to use. [More information](https://developers.docusign.com/esign-rest-api/guides/standards-based-signatures).

type RecipientSignatureProviderOptions

type RecipientSignatureProviderOptions struct {
	// Reserved for DocuSign
	CpfNumber string `json:"cpfNumber,omitempty"`
	//
	CpfNumberMetadata *PropertyMetadata `json:"cpfNumberMetadata,omitempty"`
	// 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 `json:"oneTimePassword,omitempty"`
	//
	OneTimePasswordMetadata *PropertyMetadata `json:"oneTimePasswordMetadata,omitempty"`
	// The role or capacity of the signing recipient. Examples: Manager, Approver, etc.
	SignerRole string `json:"signerRole,omitempty"`
	//
	SignerRoleMetadata *PropertyMetadata `json:"signerRoleMetadata,omitempty"`
	// 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 `json:"sms,omitempty"`
	//
	SmsMetadata *PropertyMetadata `json:"smsMetadata,omitempty"`
}

RecipientSignatureProviderOptions option settings for the signature provider. Different providers require or use different options. [The current provider list and the options they require.](https://developers.docusign.com/esign-rest-api/guides/standards-based-signatures)

type RecipientUpdateResponse

type RecipientUpdateResponse struct {
	// When you use the query parameter `combine_same_order_recipients` on the PUT Recipients call, the `recipientUpdateResponse` returns this property. When set to **true**, it indicates that the recipient has been combined or merged with a matching recipient. Recipient matching occurs as part of template matching, and is based on Recipient Role and Routing Order.
	Combined string `json:"combined,omitempty"`
	// This object describes errors that occur. It is only valid for responses and ignored in requests.
	ErrorDetails *ErrorDetails `json:"errorDetails,omitempty"`
	// A local reference that senders use to map recipients to other objects, such as specific document tabs. Within an envelope, each `recipientId` must be unique, but there is no uniqueness requirement across envelopes. For example, many envelopes assign the first recipient a `recipientId` of `1`.
	RecipientID string `json:"recipientId,omitempty"`
	// The globally-unique identifier (GUID) for a specific recipient on a specific envelope. If the same recipient is associated with multiple envelopes, they will have a different GUID for each one.
	RecipientIDGUID string `json:"recipientIdGuid,omitempty"`
	// All of the tabs associated with the recipient.
	Tabs *Tabs `json:"tabs,omitempty"`
}

RecipientUpdateResponse is the recipient details that are returned after you update the recipient.

type RecipientViewRequest

type RecipientViewRequest struct {
	// A unique identifier of the authentication event executed by the client application.
	AssertionID string `json:"assertionId,omitempty"`
	// A sender generated value that indicates the date/time that the signer was authenticated.
	AuthenticationInstant string `json:"authenticationInstant,omitempty"`
	// Required. Choose a value that most closely matches the technique your application used to authenticate the recipient / signer.
	//
	// Choose a value from this list:
	// * Biometric
	// * Email
	// * HTTPBasicAuth
	// * Kerberos
	// * KnowledgeBasedAuth
	// * None
	// * PaperDocuments
	// * Password
	// * RSASecureID
	// * SingleSignOn_CASiteminder
	// * SingleSignOn_InfoCard
	// * SingleSignOn_MicrosoftActiveDirectory
	// * SingleSignOn_Other
	// * SingleSignOn_Passport
	// * SingleSignOn_SAML
	// * Smartcard
	// * SSLMutualAuth
	// * X509Certificate
	//
	// This information is included in the Certificate of Completion.
	AuthenticationMethod string `json:"authenticationMethod,omitempty"`
	// A sender created value. If provided, the recipient is treated as an embedded (captive) recipient or signer.
	//
	// Use your application's client ID (user ID) for the recipient. Doing so enables the details of your application's authentication of the recipient to be connected to the recipient's signature if the signature is disputed or repudiated.
	//
	// Maximum length: 100 characters.
	ClientUserID string `json:"clientUserId,omitempty"`
	// Specifies the email of the recipient. You can use either email and userName or userId to identify the recipient.
	Email string `json:"email,omitempty"`
	// Only used if pingUrl is specified. This is the interval, in seconds, between pings on the pingUrl.  The default is 300 seconds. Valid values are 60-1200 seconds.
	PingFrequency string `json:"pingFrequency,omitempty"`
	// A client Url to be pinged by the DocuSign Signing experience to indicate to the client that Signing is active. An HTTP Get is executed against the client. The response from the client is ignored. The intent is for the client to reset it's session timer when the request is received.
	PingURL string `json:"pingUrl,omitempty"`
	// A local reference that senders use to map recipients to other objects, such as specific document tabs. Within an envelope, each `recipientId` must be unique, but there is no uniqueness requirement across envelopes. For example, many envelopes assign the first recipient a `recipientId` of `1`.
	RecipientID string `json:"recipientId,omitempty"`
	// The URL that the recipient is redirected to
	// after the signing session has ended.
	// DocuSign redirects to the URL
	// and includes an `event` query parameter
	// that can be used by your application.
	//
	// Possible `event` parameter values include:
	//
	// * `access_code_failed`<br>
	//   Recipient used incorrect access code.
	// * `cancel`<br>
	//   Recipient canceled the signing operation,
	//   possibly by using the **Finish Later** option.
	// * `decline`<br>
	//   Recipient declined to sign.
	// * `exception`<br>
	//   A system error occurred during the signing process.
	// * `fax_pending`<br>
	//   Recipient has a fax pending.
	// * `id_check_failed`<br>
	//   Recipient failed an ID check.
	// * `session_timeout`<br>
	//   The session timed out.
	//   An account can control this timeout using the **Signer Session Timeout** option.
	// * `signing_complete`<br>
	//   Recipient completed the signing ceremony.
	// * `ttl_expired`<br>
	//   The Time To Live token for the envelope has expired.
	//   After being successfully invoked, these tokens expire
	//   after 5 minutes or if the envelope is voided.
	// * `viewing_complete`<br>
	//   The recipient completed viewing an envelope
	//   that is in a read-only/terminal state
	//   such as completed, declined, or voided.
	//
	// Be sure to include `https://` in the URL or the redirect may fail on certain browsers.
	//
	ReturnURL string `json:"returnUrl,omitempty"`
	// The domain in which the user authenticated.
	SecurityDomain string `json:"securityDomain,omitempty"`
	// Specifies the user ID of the recipient. You can use with user ID or email and user name to identify the recipient.
	//
	// If userId is used and a clientUserId is provided, the value in the `userId` property must match a recipientId (which can be retrieved with a GET recipients call) for the envelope.
	//
	// If a userId is used and a clientUserId is not provided, the userId must match the user ID of the authenticating user.
	UserID string `json:"userId,omitempty"`
	// Specifies the username of the recipient. You can use either email and userName or userId to identify the recipient.
	UserName string `json:"userName,omitempty"`
	//
	XFrameOptions string `json:"xFrameOptions,omitempty"`
	//
	XFrameOptionsAllowFromURL string `json:"xFrameOptionsAllowFromUrl,omitempty"`
}

type Recipients

type Recipients struct {
	// A list of agent recipients assigned to the documents.
	Agents []Agent `json:"agents,omitempty"`
	// A list of carbon copy recipients assigned to the documents.
	CarbonCopies []CarbonCopy `json:"carbonCopies,omitempty"`
	// 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 `json:"certifiedDeliveries,omitempty"`
	// The routing order of the current recipient. If this value equals a particular signer's routing order, it indicates that the envelope has been sent to that recipient, but he or she has not completed the required actions.
	CurrentRoutingOrder string `json:"currentRoutingOrder,omitempty"`
	// A list of editors on the document.
	Editors []Editor `json:"editors,omitempty"`
	// This object describes errors that occur. It is only valid for responses and ignored in requests.
	ErrorDetails *ErrorDetails `json:"errorDetails,omitempty"`
	// 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 `json:"inPersonSigners,omitempty"`
	// 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 `json:"intermediaries,omitempty"`
	// The list of recipient event statuses that will trigger Connect to send updates to the url. It can be a two-part list with:
	//
	// * recipientEventStatusCode - The recipient status, this can be Sent, Delivered, Completed, Declined, AuthenticationFailed, and AutoResponded.
	// * includeDocuments - When set to **true**, the envelope time zone information is included in the message.
	RecipientCount string `json:"recipientCount,omitempty"`
	// A list of electronic seals to apply to documents.
	Seals []SealSign `json:"seals,omitempty"`
	// A list of signers on the envelope.
	Signers []Signer `json:"signers,omitempty"`
	// A list of signers who act as witnesses on the envelope.
	Witnesses []Witness `json:"witnesses,omitempty"`
}

Recipients envelope recipients

type RecipientsUpdateSummary

type RecipientsUpdateSummary struct {
	// An array of `recipientUpdateResults` objects that contain details about the recipients.
	RecipientUpdateResults []RecipientUpdateResponse `json:"recipientUpdateResults,omitempty"`
}

RecipientsUpdateSummary this is the response that the API returns after you update recipients.

type ReferralInformation

type ReferralInformation struct {
	// A complex type that contains the following information for entering referral and discount information. The following items are included in the referral information (all string content): enableSupport, includedSeats, saleDiscountPercent, saleDiscountAmount, saleDiscountFixedAmount, saleDiscountPeriods, saleDiscountSeatPriceOverride, planStartMonth, referralCode, referrerName, advertisementId, publisherId, shopperId, promoCode, groupMemberId, idType, and industry.
	//
	// ###### Note: saleDiscountPercent, saleDiscountAmount, saleDiscountFixedAmount, saleDiscountPeriods, and saleDiscountSeatPriceOverride are reserved for DoucSign use only.
	//
	AdvertisementID string `json:"advertisementId,omitempty"`
	// When set to **true**, then customer support is provided as part of the account plan.
	EnableSupport DSBool `json:"enableSupport,omitempty"`
	//
	ExternalOrgID string `json:"externalOrgId,omitempty"`
	//
	GroupMemberID string `json:"groupMemberId,omitempty"`
	//
	IDType string `json:"idType,omitempty"`
	// The number of seats (users) included.
	IncludedSeats string `json:"includedSeats,omitempty"`
	//
	Industry string `json:"industry,omitempty"`
	//
	PlanStartMonth string `json:"planStartMonth,omitempty"`
	//
	PromoCode string `json:"promoCode,omitempty"`
	//
	PublisherID string `json:"publisherId,omitempty"`
	//
	ReferralCode string `json:"referralCode,omitempty"`
	//
	ReferrerName string `json:"referrerName,omitempty"`
	// Reserved for DocuSign use only.
	SaleDiscountAmount string `json:"saleDiscountAmount,omitempty"`
	// Reserved for DocuSign use only.
	SaleDiscountFixedAmount string `json:"saleDiscountFixedAmount,omitempty"`
	// Reserved for DocuSign use only.
	SaleDiscountPercent string `json:"saleDiscountPercent,omitempty"`
	// Reserved for DocuSign use only.
	SaleDiscountPeriods string `json:"saleDiscountPeriods,omitempty"`
	// Reserved for DocuSign use only.
	SaleDiscountSeatPriceOverride string `json:"saleDiscountSeatPriceOverride,omitempty"`
	//
	ShopperID string `json:"shopperId,omitempty"`
}

ReferralInformation is a complex type that contains the following information for entering referral and discount information. The following items are included in the referral information (all string content): enableSupport, includedSeats, saleDiscountPercent, saleDiscountAmount, saleDiscountFixedAmount, saleDiscountPeriods, saleDiscountSeatPriceOverride, planStartMonth, referralCode, referrerName, advertisementId, publisherId, shopperId, promoCode, groupMemberId, idType, and industry

###### Note: saleDiscountPercent, saleDiscountAmount, saleDiscountFixedAmount, saleDiscountPeriods, and saleDiscountSeatPriceOverride are reserved for DoucSign use only.

type Reminders

type Reminders struct {
	// An integer specifying the number of days after the recipient receives the envelope that reminder emails are sent to the recipient.
	ReminderDelay string `json:"reminderDelay,omitempty"`
	// When set to **true**, the envelope expires and is no longer available for signing after the specified number of days. When **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 DSBool `json:"reminderEnabled,omitempty"`
	// An integer specifying the interval in days between reminder emails.
	ReminderFrequency string `json:"reminderFrequency,omitempty"`
}

Reminders is a complex element that specifies reminder settings for the envelope.

type ResourceInformation

type ResourceInformation struct {
	//
	Resources []NameValue `json:"resources,omitempty"`
}

type ReturnURLRequest

type ReturnURLRequest struct {
	// Your app's return url that the user will be redirected to after sending the envelope or completing the sending/tagging view. Query parameters `envelopeId` and `event` will be added to the URL. The event parameter values:
	//
	// * `Send` (the user sent the envelope)
	// * `Save` (the user saved the envelope, it is still a draft)
	// * `Cancel` (the user canceled the sending transaction)
	// * `Error` (there was an error during the send operation)
	// * `SessionEnd` (the sending session ended before the user completed a different action)
	ReturnURL string `json:"returnUrl,omitempty"`
}

ReturnURLRequest is the request body for the EnvelopeViews: createSender method.

type Revision

type Revision struct {
	//
	EndData string `json:"endData,omitempty"`
	//
	FieldName string `json:"fieldName,omitempty"`
	//
	MaxSignatureLength string `json:"maxSignatureLength,omitempty"`
	//
	SignatureProperties *SignatureProperties `json:"signatureProperties,omitempty"`
	// Specifies the type of signature.
	SignatureType string `json:"signatureType,omitempty"`
	//
	StartData string `json:"startData,omitempty"`
}

type SSN

type SSN struct {
	TabBase
	TabGuidedForm
	TabPosition
	TabStyle
	TabValue
	// 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.
	//
	// When an envelope is completed the information is available to the sender through the Form Data link in the DocuSign Console.
	//
	// This setting applies only to text boxes and does not affect list boxes, radio buttons, or check boxes.
	ConcealValueOnDocument DSBool `json:"concealValueOnDocument,omitempty"`
	// Metadata that indicates whether the `concealValueOnDocument` property is editable.
	ConcealValueOnDocumentMetadata *PropertyMetadata `json:"concealValueOnDocumentMetadata,omitempty"`
	// 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 DSBool `json:"disableAutoSize,omitempty"`
	// Metadata that indicates whether the `disableAutoSize` property is editable.
	DisableAutoSizeMetadata *PropertyMetadata `json:"disableAutoSizeMetadata,omitempty"`
	// The height of the tab in pixels.
	Height string `json:"height,omitempty"`
	// Metadata that indicates whether the `height` property is editable.
	HeightMetadata *PropertyMetadata `json:"heightMetadata,omitempty"`
	// Reserved for DocuSign.
	LocalePolicy *LocalePolicyTab `json:"localePolicy,omitempty"`
	// When set to **true**, the signer cannot change the data of the custom tab.
	Locked DSBool `json:"locked,omitempty"`
	// Metadata that indicates whether the `locked` property is editable.
	LockedMetadata *PropertyMetadata `json:"lockedMetadata,omitempty"`
	// An optional value that describes the maximum length of the property when the property is a string.
	MaxLength string `json:"maxLength,omitempty"`
	// Metadata that indicates whether the `maxLength` property is editable.
	MaxLengthMetadata *PropertyMetadata `json:"maxLengthMetadata,omitempty"`
	// The initial value of the tab when it was sent to the recipient.
	OriginalValue string `json:"originalValue,omitempty"`
	// Metadata that indicates whether the `originalValue` property is editable.
	OriginalValueMetadata *PropertyMetadata `json:"originalValueMetadata,omitempty"`
	// When set to **true** and shared is true, information must be entered in this field to complete the envelope.
	RequireAll DSBool `json:"requireAll,omitempty"`
	// Metadata that indicates whether the `requireAll` property is editable.
	RequireAllMetadata *PropertyMetadata `json:"requireAllMetadata,omitempty"`
	// Optional element for field markup. When set to **true**, the signer is required to initial when they modify a shared field.
	RequireInitialOnSharedChange DSBool `json:"requireInitialOnSharedChange,omitempty"`
	// Metadata that indicates whether the `requireInitialOnSharedChange` property is editable.
	RequireInitialOnSharedChangeMetadata *PropertyMetadata `json:"requireInitialOnSharedChangeMetadata,omitempty"`
	// When set to **true**, the signer is required to fill out this tab.
	Required TabRequired `json:"required,omitempty"`
	// Metadata that indicates whether the `required` property is editable.
	RequiredMetadata *PropertyMetadata `json:"requiredMetadata,omitempty"`
	// When set to **true**, the sender must populate the tab before an envelope can be sent using the template.
	//
	// This value tab can only be changed by modifying (PUT) the template.
	//
	// Tabs with a `senderRequired` value of true cannot be deleted from an envelope.
	SenderRequired DSBool `json:"senderRequired,omitempty"`
	// Metadata that indicates whether the `senderRequired` property is editable.
	SenderRequiredMetadata *PropertyMetadata `json:"senderRequiredMetadata,omitempty"`
	// When set to **true**, this custom tab is shared.
	Shared DSBool `json:"shared,omitempty"`
	// Metadata that indicates whether the `shared` property is editable.
	SharedMetadata *PropertyMetadata `json:"sharedMetadata,omitempty"`
	// Metadata that indicates whether the `toolTip` property is editable.
	ToolTipMetadata *PropertyMetadata `json:"toolTipMetadata,omitempty"`
	// The text of a tooltip that appears when a user hovers over a form field or tab.
	Tooltip string `json:"tooltip,omitempty"`
	// The message displayed if the custom tab fails input validation (either custom of embedded).
	ValidationMessage string `json:"validationMessage,omitempty"`
	// Metadata that indicates whether the `validationMessage` property is editable.
	ValidationMessageMetadata *PropertyMetadata `json:"validationMessageMetadata,omitempty"`
	// A regular expression used to validate input for the tab.
	ValidationPattern string `json:"validationPattern,omitempty"`
	// Metadata that indicates whether the `validationPattern` property is editable.
	ValidationPatternMetadata *PropertyMetadata `json:"validationPatternMetadata,omitempty"`
	// The width of the tab in pixels.
	Width string `json:"width,omitempty"`
	// Metadata that indicates whether the `width` property is editable.
	WidthMetadata *PropertyMetadata `json:"widthMetadata,omitempty"`
}

SSN is a one-line field that allows the recipient to enter a Social Security Number. The 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.

type Seal

type Seal struct {
	// Electronic seal configuration  properties
	Configuration map[string]string `json:"configuration,omitempty"`
	// Electronic Seal identifier
	SealIdentifier string `json:"sealIdentifier,omitempty"`
}

Seal set of information related to the electronic seal used by the Trust Service Provider (TSP).

type SealIdentifier

type SealIdentifier struct {
	//
	SealDisplayName string `json:"sealDisplayName,omitempty"`
	//
	SealName string `json:"sealName,omitempty"`
}

type SealSign

type SealSign struct {
	// Not applicable
	AccessCode string `json:"accessCode,omitempty"`
	// Not applicable.
	AccessCodeMetadata *PropertyMetadata `json:"accessCodeMetadata,omitempty"`
	// Not applicable
	AddAccessCodeToEmail string `json:"addAccessCodeToEmail,omitempty"`
	// Not applicable
	ClientUserID string `json:"clientUserId,omitempty"`
	// Indicates the number of times that the recipient has been through a signing completion for the envelope.
	//
	// If this number is greater than 0 for a signing group, only the user who previously completed may sign again.
	CompletedCount string `json:"completedCount,omitempty"`
	// 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 `json:"customFields,omitempty"`
	// Not applicable
	DeclinedDateTime string `json:"declinedDateTime,omitempty"`
	// Not applicable
	DeclinedReason string `json:"declinedReason,omitempty"`
	// Not applicable
	DeliveredDateTime string `json:"deliveredDateTime,omitempty"`
	// Reserved for DocuSign.
	DeliveryMethod string `json:"deliveryMethod,omitempty"`
	// Reserved for DocuSign.
	DeliveryMethodMetadata *PropertyMetadata `json:"deliveryMethodMetadata,omitempty"`
	// Not applicable
	DocumentVisibility []DocumentVisibility `json:"documentVisibility,omitempty"`
	// Sets the language for electronic seals.
	EmailNotification *RecipientEmailNotification `json:"emailNotification,omitempty"`
	// Specifies a sender-provided valid URL string for redirecting an embedded recipient. When this option is used, the embedded recipient still receives an email from DocuSign, just as a remote recipient would. When the recipient clicks the document link in the email, the recipient is redirected through DocuSign to the specified URL to complete the required 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.
	//
	// If 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 launched by a partner.
	//
	// It is important to understand 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 processes for establishing the recipient's identity. In this workflow the recipient goes through the sending application before the embedded signing or viewing process is 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.
	//
	// If 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 for the recipient or envelope. The merge fields are enclosed in double brackets.
	//
	// *Example*:
	//
	// `http://senderHost/[[mergeField1]]/ beginSigningSession? [[mergeField2]]&[[mergeField3]]`
	EmbeddedRecipientStartURL string `json:"embeddedRecipientStartURL,omitempty"`
	// This object describes errors that occur. It is only valid for responses and ignored in requests.
	ErrorDetails *ErrorDetails `json:"errorDetails,omitempty"`
	// Reserved for DocuSign.
	FaxNumber string `json:"faxNumber,omitempty"`
	// Metadata that indicates whether the `faxNumber` property is editable.
	//
	FaxNumberMetadata *PropertyMetadata `json:"faxNumberMetadata,omitempty"`
	// The name of the authentication check to use. This value must match one of the authentication types that the account uses. The names of these authentication types appear in the web console sending interface in the Identify list for a recipient. This setting overrides any default authentication setting.
	//
	// **Example**: Your account has ID Check and SMS Authentication available. 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 $. For SMS, you would use SMS Auth $, and you would also need to add a phone number to the smsAuthentication node.
	IDCheckConfigurationName string `json:"idCheckConfigurationName,omitempty"`
	// Metadata that indicates if the sender can edit the `idCheckConfigurationName` property.
	IDCheckConfigurationNameMetadata *PropertyMetadata `json:"idCheckConfigurationNameMetadata,omitempty"`
	// Not applicable
	IDCheckInformationInput *IDCheckInformationInput `json:"idCheckInformationInput,omitempty"`
	// 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 `json:"inheritEmailNotificationConfiguration,omitempty"`
	// Reserved for DocuSign.
	LockedRecipientPhoneAuthEditable string `json:"lockedRecipientPhoneAuthEditable,omitempty"`
	// Reserved for DocuSign.
	LockedRecipientSmsEditable string `json:"lockedRecipientSmsEditable,omitempty"`
	// The name of the recipient.
	Name string `json:"name,omitempty"`
	// Not applicable
	Note string `json:"note,omitempty"`
	// Not applicable
	NoteMetadata *PropertyMetadata `json:"noteMetadata,omitempty"`
	// A complex type that contains the following elements:
	//
	// * `recipMayProvideNumber` - Boolean. When set to **true**, the recipient can use whatever phone number they choose.
	// * `senderProvidedNumbers` - ArrayOfString.  A list of phone numbers the recipient can use.
	// * `recordVoicePrint` - Reserved.
	// * `validateRecipProvidedNumber` - Reserved.
	PhoneAuthentication *RecipientPhoneAuthentication `json:"phoneAuthentication,omitempty"`
	// Not applicable
	RecipientAttachments []RecipientAttachment `json:"recipientAttachments,omitempty"`
	// Not applicable
	RecipientAuthenticationStatus *AuthenticationStatus `json:"recipientAuthenticationStatus,omitempty"`
	// Metadata about the features that are supported for the recipient type.
	RecipientFeatureMetadata []FeatureAvailableMetadata `json:"recipientFeatureMetadata,omitempty"`
	// (Required) The `recipientId` used when the envelope or template was created.
	//
	// This is a local reference that senders use to map recipients to other objects, such as specific document tabs. Within an envelope, each `recipientId` must be unique, but there is no uniqueness requirement across envelopes. For example, many envelopes assign the first recipient a `recipientId` of `1`.
	RecipientID string `json:"recipientId,omitempty"`
	// The globally-unique identifier (GUID) for a specific recipient on a specific envelope. If the same recipient is associated with multiple envelopes, they will have a different GUID for each one.
	RecipientIDGUID string `json:"recipientIdGuid,omitempty"`
	// (Required) Indicates which electronic seal to apply on documents when creating an envelope.
	RecipientSignatureProviders []RecipientSignatureProvider `json:"recipientSignatureProviders,omitempty"`
	// The recipient type, as specified by the following values:
	// - `agents`: Agent recipients can add name and email information for recipients that appear after the agent in routing order.
	// - `carbonCopies`: Carbon copy recipients get a copy of the envelope but don't need to sign, initial, date, or add information to any of the documents. This type of recipient can be used in any routing order.
	// - `certifiedDeliveries`: Certified delivery recipients must receive the completed documents for the envelope to be completed. They don't need to sign, initial, date, or add information to any of the documents.
	// - `editors`: Editors have the same management and access rights for the envelope as the sender. Editors can add name and email information, add or change the routing order, set authentication options, and can edit signature/initial tabs and data fields for the remaining recipients.
	// - `inPersonSigners`: In-person recipients are DocuSign users who act as signing hosts in the same physical location as the signer.
	// - `intermediaries`: Intermediary recipients can optionally add name and email information for recipients at the same or subsequent level in the routing order.
	// - `seals`: Electronic seal recipients represent legal entities.
	// - `signers`: Signers are recipients who must sign, initial, date, or add data to form fields on the documents in the envelope.
	// - `witnesses`: Witnesses are recipients whose signatures affirm that the identified signers have signed the documents in the envelope.
	RecipientType string `json:"recipientType,omitempty"`
	// Metadata that indicates if the sender can edit the recipient type.
	RecipientTypeMetadata *PropertyMetadata `json:"recipientTypeMetadata,omitempty"`
	// Not applicable
	RequireIDLookup string `json:"requireIdLookup,omitempty"`
	// Not applicable
	RequireIDLookupMetadata *PropertyMetadata `json:"requireIdLookupMetadata,omitempty"`
	// Optional element. Specifies the role name associated with the recipient.<br/><br/>This is required when working with template recipients.
	RoleName string `json:"roleName,omitempty"`
	// (Optional, default: 1)
	// Specifies the routing order of the electronic seal in the envelope.
	// The routing order assigned to your electronic seal cannot be shared with another recipient.
	// It is recommended that you set a routing order for your electronic seals.
	//
	RoutingOrder string `json:"routingOrder,omitempty"`
	// Metadata that indicates if the sender can edit the routing order for the recipient.
	RoutingOrderMetadata *PropertyMetadata `json:"routingOrderMetadata,omitempty"`
	// Not applicable
	SentDateTime string `json:"sentDateTime,omitempty"`
	// Not applicable
	SignedDateTime string `json:"signedDateTime,omitempty"`
	// Not applicable
	SmsAuthentication *RecipientSMSAuthentication `json:"smsAuthentication,omitempty"`
	//  Lists the social ID type that can be used for recipient authentication.
	SocialAuthentications []SocialAuthentication `json:"socialAuthentications,omitempty"`
	// The status of the item.
	Status string `json:"status,omitempty"`
	// Reserved for DocuSign.
	StatusCode string `json:"statusCode,omitempty"`
	// A list of `signHere` tabs, which can be used to add a visual representation for an electronic seal in a document.
	Tabs *Tabs `json:"tabs,omitempty"`
	// When set to **true**, the sender cannot change any attributes of the recipient. Used only when working with template recipients.
	TemplateLocked string `json:"templateLocked,omitempty"`
	// When set to **true**, the sender may not remove the recipient. Used only when working with template recipients.
	TemplateRequired string `json:"templateRequired,omitempty"`
	// Not applicable
	TotalTabCount string `json:"totalTabCount,omitempty"`
	// Not applicable
	UserID string `json:"userId,omitempty"`
}

SealSign specifies one or more electronic seals to apply on documents.

```json

"recipients": {
      "seals": [
        {
          "recipientId": "1",
          "routingOrder" : 1,
          "recipientSignatureProviders": [
            {
              "sealName": "52e9d968-13be-42ca-a6fe-4682bc45c106"
            }
      	]
    	}
  	]
	},

``` For more information on Electronic Seals , see https://support.docusign.com/en/guides/ndse-user-guide-apply-electronic-seals

type SeatDiscount

type SeatDiscount struct {
	// Reserved: TBD
	BeginSeatCount string `json:"beginSeatCount,omitempty"`
	//
	DiscountPercent string `json:"discountPercent,omitempty"`
	// Reserved: TBD
	EndSeatCount string `json:"endSeatCount,omitempty"`
}

type Sender

type Sender struct {
	// The GUID associated with the account ID.
	AccountIDGUID string `json:"accountIdGuid,omitempty"`
	// The name of the user's company.
	CompanyName string `json:"companyName,omitempty"`
}

type SenderEmailNotifications

type SenderEmailNotifications struct {
	// When set to **true**, the sender receives notification if the signer changes.
	ChangedSigner DSBool `json:"changedSigner,omitempty"`
	// When set to **true**, the user receives only comments in which that user name is mentioned.
	CommentsOnlyPrivateAndMention string `json:"commentsOnlyPrivateAndMention,omitempty"`
	// When set to **true**, the user receives all comments.
	CommentsReceiveAll string `json:"commentsReceiveAll,omitempty"`
	// When set to **true**, the sender receives notification if the delivery of the envelope fails.
	DeliveryFailed DSBool `json:"deliveryFailed,omitempty"`
	// When set to **true**, the user receives notification that the envelope has been completed.
	EnvelopeComplete DSBool `json:"envelopeComplete,omitempty"`
	// When set to **true**, the user receives notification if the offline signing failed.
	OfflineSigningFailed DSBool `json:"offlineSigningFailed,omitempty"`
	// When set to **true**, the user receives notification of document purges.
	PurgeDocuments string `json:"purgeDocuments,omitempty"`
	// When set to **true**, the sender receives notification that the recipient viewed the enveloper.
	RecipientViewed DSBool `json:"recipientViewed,omitempty"`
	// When set to **true**, the sender receives notification that the envelope was declined.
	SenderEnvelopeDeclined string `json:"senderEnvelopeDeclined,omitempty"`
	// When set to **true**, the user receives notification if consent is withdrawn.
	WithdrawnConsent DSBool `json:"withdrawnConsent,omitempty"`
}

type ServerTemplate

type ServerTemplate struct {
	//
	Sequence string `json:"sequence,omitempty"`
	// The unique identifier of the template. If this is not provided, DocuSign will generate a value.
	TemplateID string `json:"templateId,omitempty"`
}

type ServiceInformation

type ServiceInformation struct {
	// Reserved: TBD
	BuildBranch string `json:"buildBranch,omitempty"`
	// Reserved: TBD
	BuildBranchDeployedDateTime *time.Time `json:"buildBranchDeployedDateTime,omitempty"`
	// Reserved: TBD
	BuildSHA string `json:"buildSHA,omitempty"`
	// Reserved: TBD
	BuildVersion string `json:"buildVersion,omitempty"`
	//
	LinkedSites []string `json:"linkedSites,omitempty"`
	//
	ServiceVersions []ServiceVersion `json:"serviceVersions,omitempty"`
}

ServiceInformation aPI service information

type ServiceVersion

type ServiceVersion struct {
	// The version of the rest API.
	Version string `json:"version,omitempty"`
	//
	VersionURL string `json:"versionUrl,omitempty"`
}

type SettingsMetadata

type SettingsMetadata struct {
	// When **true**, indicates compliance with United States Food and Drug Administration (FDA) regulations on electronic records and electronic signatures (ERES).
	Is21CFRPart11 DSBool `json:"is21CFRPart11,omitempty"`
	// An array of option strings supported by this setting.
	Options []string `json:"options,omitempty"`
	// Indicates whether the property is editable. Valid values are:
	//
	// - `editable`
	// - `read_only`
	Rights string `json:"rights,omitempty"`
	// Reserved for DocuSign.
	UIHint string `json:"uiHint,omitempty"`
	// Reserved for DocuSign.
	UIOrder string `json:"uiOrder,omitempty"`
	// Reserved for DocuSign.
	UIType string `json:"uiType,omitempty"`
}

SettingsMetadata metadata that indicates whether a property is editable and describes setting-specific options.

type SharedItem

type SharedItem struct {
	// This object describes errors that occur. It is only valid for responses and ignored in requests.
	ErrorDetails *ErrorDetails `json:"errorDetails,omitempty"`
	// How the item is shared. One of:
	//
	// - `not_shared`
	// - `shared_to`
	// - `shared_from`
	// - `shared_to_and_from`
	Shared DSBool `json:"shared,omitempty"`
	// Information about the user who owns the shared item.
	User *UserInfo `json:"user,omitempty"`
}

SharedItem information about the shared item.

type SignHashDocument

type SignHashDocument struct {
	// A Base64-encoded representation of the attachment that is used to upload and download the file. File attachments may be up to 50 MB in size.
	Data string `json:"data,omitempty"`
	// Integer that identifies the document in the envelope.
	DocumentID string `json:"documentId,omitempty"`
	//
	Format string `json:"format,omitempty"`
	//
	Name string `json:"name,omitempty"`
	//
	RemainingSignatures int64 `json:"remainingSignatures,omitempty"`
	//
	Revisions []Revision `json:"revisions,omitempty"`
	//
	SignatureProperties *SignatureProperties `json:"signatureProperties,omitempty"`
	// Specifies the type of signature.
	SignatureType string `json:"signatureType,omitempty"`
}

type SignHashSessionInfoResponse

type SignHashSessionInfoResponse struct {
	// Complex element contains the details on the documents in the envelope.
	Documents []SignHashDocument `json:"documents,omitempty"`
	// The envelope's GUID.
	//
	// Example: `93be49ab-afa0-4adf-933c-f752070d71ec`
	EnvelopeID string `json:"envelopeId,omitempty"`
	// Specifies the language for the Certificate of Completion in the response. The supported languages are: Chinese Simplified (zh_CN), Chinese Traditional (zh_TW), Dutch (nl), English US (en), French (fr), German (de), Italian (it), Japanese (ja), Korean (ko), Portuguese (pt), Portuguese (Brazil) (pt_BR), Russian (ru), Spanish (es).
	Language string `json:"language,omitempty"`
	//
	RedirectionURL string `json:"redirectionUrl,omitempty"`
	//
	RemainingSignatureRequests int64 `json:"remainingSignatureRequests,omitempty"`
	// Set of information related to the electronic seal used by the Trust Service Provider (TSP)
	Seal *Seal `json:"seal,omitempty"`
	// Information about the sender of the envelope.
	Sender *Sender `json:"sender,omitempty"`
	//
	User *User `json:"user,omitempty"`
}

type SignHere

type SignHere struct {
	TabBase
	TabGuidedForm
	TabPosition
	// The height of the tab in pixels.
	Height string `json:"height,omitempty"`
	// Metadata that indicates whether the `height` property is editable.
	HeightMetadata *PropertyMetadata `json:"heightMetadata,omitempty"`
	// When set to **true**,  the tab contains a visual representation for an electronic seal in a document.
	IsSealSignTab string `json:"isSealSignTab,omitempty"`
	// The name of the tab. For example, `Sign Here` or `Initial Here`.
	Name string `json:"name,omitempty"`
	// Metadata that indicates whether the `name` property is editable.
	NameMetadata *PropertyMetadata `json:"nameMetadata,omitempty"`
	// When set to **true**, the recipient does not need to complete this tab to complete the signing process.
	Optional DSBool `json:"optional,omitempty"`
	// Metadata that indicates whether the `optional` property is editable.
	OptionalMetadata *PropertyMetadata `json:"optionalMetadata,omitempty"`
	// Sets the size of the tab. This field accepts values from `0.5` to `1.0`, where `1.0` represents full size and `0.5` is 50% of full size.
	ScaleValue string `json:"scaleValue,omitempty"`
	// Metadata that indicates whether the `scaleValue` property is editable.
	ScaleValueMetadata *PropertyMetadata `json:"scaleValueMetadata,omitempty"`
	// If the recipient signs by using a personal stamp that is representative of their signature, this property specifies the stamp type.
	StampType string `json:"stampType,omitempty"`
	// Metadata that indicates whether the `stampType` property is editable.
	StampTypeMetadata *PropertyMetadata `json:"stampTypeMetadata,omitempty"`
	// Metadata that indicates whether the `toolTip` property is editable.
	ToolTipMetadata *PropertyMetadata `json:"toolTipMetadata,omitempty"`
	// The text of a tooltip that appears when a user hovers over a form field or tab.
	Tooltip string `json:"tooltip,omitempty"`
	// The width of the tab in pixels.
	Width string `json:"width,omitempty"`
	// Metadata that indicates whether the `width` property is editable.
	WidthMetadata *PropertyMetadata `json:"widthMetadata,omitempty"`
}

SignHere is a tab that allows the recipient to sign a document. May be optional.

type SignSessionInfoRequest

type SignSessionInfoRequest struct {
	// When set to **false**, the envelope signing certificate is removed from the download.
	Certificate string `json:"certificate,omitempty"`
	//
	MaxSignatureLength string `json:"maxSignatureLength,omitempty"`
	//
	ReturnFormat string `json:"returnFormat,omitempty"`
	// 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 `json:"signingLocation,omitempty"`
}

type SignatureDataInfo

type SignatureDataInfo struct {
	//
	DocumentSecurityStore *DocumentSecurityStore `json:"documentSecurityStore,omitempty"`
	//
	SignatureData string `json:"signatureData,omitempty"`
	//
	SignatureFieldName string `json:"signatureFieldName,omitempty"`
}

type SignatureProperties

type SignatureProperties struct {
	//
	Filter string `json:"filter,omitempty"`
	//
	SubFilter string `json:"subFilter,omitempty"`
}

type SignatureProviderRequiredOption

type SignatureProviderRequiredOption struct {
	//
	RequiredSignatureProviderOptionIds []string `json:"requiredSignatureProviderOptionIds,omitempty"`
	//
	SignerType string `json:"signerType,omitempty"`
}

type SignatureType

type SignatureType struct {
	// Indicates if the signature type is the default type.
	IsDefault DSBool `json:"isDefault,omitempty"`
	// Type of user:
	// - `type_owner`
	// - `type_participant`
	Type string `json:"type,omitempty"`
}

type Signer

type Signer struct {
	// If a value is provided, the recipient must enter the value as the access code to view and sign the envelope.
	//
	// Maximum Length: 50 characters and it must conform to the account's access code format setting.
	//
	// If blank, but the signer `accessCode` property is set in the envelope, then that value is used.
	//
	// If blank and the signer `accessCode` property is not set, then the access code is not required.
	AccessCode string `json:"accessCode,omitempty"`
	// Metadata that indicates if the sender can edit the `accessCode` property.
	AccessCodeMetadata *PropertyMetadata `json:"accessCodeMetadata,omitempty"`
	// 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 `json:"addAccessCodeToEmail,omitempty"`
	// Optional element. When set to true, the agents recipient associated with this recipient can change the recipient's pre-populated email address. This element is only active if enabled for the account.
	AgentCanEditEmail DSBool `json:"agentCanEditEmail,omitempty"`
	// Optional element. When set to **true**, the agents recipient associated with this recipient can change the recipient's pre-populated name. This element is only active if enabled for the account.
	AgentCanEditName DSBool `json:"agentCanEditName,omitempty"`
	// When **true**, auto navigation is set for the recipient.
	//
	AutoNavigation string `json:"autoNavigation,omitempty"`
	// Contains a URI for an endpoint that allows you to easily retrieve bulk recipient information.
	BulkRecipientsURI string `json:"bulkRecipientsUri,omitempty"`
	// When set to **true**, specifies that the signer can perform the signing ceremony offline.
	CanSignOffline DSBool `json:"canSignOffline,omitempty"`
	// Specifies whether the recipient is embedded or remote.
	//
	// If 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.
	//
	// Note: 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.
	//
	// Maximum length: 100 characters.
	ClientUserID string `json:"clientUserId,omitempty"`
	// Indicates the number of times that the recipient has been through a signing completion for the envelope.
	//
	// If this number is greater than 0 for a signing group, only the user who previously completed may sign again.
	CompletedCount string `json:"completedCount,omitempty"`
	// Payment status for payment services.
	CreationReason string `json:"creationReason,omitempty"`
	// 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 `json:"customFields,omitempty"`
	// The date and time the recipient declined the document.
	DeclinedDateTime *time.Time `json:"declinedDateTime,omitempty"`
	// The reason the recipient declined the document.
	DeclinedReason string `json:"declinedReason,omitempty"`
	// When set to **true**, this recipient is the default recipient and any tabs generated by the transformPdfFields option are mapped to this recipient.
	DefaultRecipient DSBool `json:"defaultRecipient,omitempty"`
	// The date and time that the envelope was delivered to the recipient.
	DeliveredDateTime *time.Time `json:"deliveredDateTime,omitempty"`
	// Reserved for DocuSign.
	DeliveryMethod string `json:"deliveryMethod,omitempty"`
	// Reserved for DocuSign.
	DeliveryMethodMetadata *PropertyMetadata `json:"deliveryMethodMetadata,omitempty"`
	// A list of documentVisibility objects, which define a recipient's read/write access to a document.
	DocumentVisibility []DocumentVisibility `json:"documentVisibility,omitempty"`
	// Recipient email ID to which notifications of the document to sign are sent. Maximum length: 100 characters.
	Email string `json:"email,omitempty"`
	// Metadata that indicates whether the signer can edit the recipient's email ID.
	EmailMetadata *PropertyMetadata `json:"emailMetadata,omitempty"`
	// An optional complex type that sets a specific email subject and body for this recipient's notification email.
	//
	// **Note**: If you use this field to set a specific email notification for one recipient, you must also set the email notification for the other recipients. Using this field for one or more recipients negates the Envelope `Subject` and `EmailBlurb` property settings.
	EmailNotification *RecipientEmailNotification `json:"emailNotification,omitempty"`
	// Specifies a sender-provided valid URL string for redirecting an embedded recipient. When this option is used, the embedded recipient still receives an email from DocuSign, just as a remote recipient would. When the recipient clicks the document link in the email, the recipient is redirected through DocuSign to the specified URL to complete the required 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.
	//
	// If 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 launched by a partner.
	//
	// It is important to understand 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 processes for establishing the recipient's identity. In this workflow the recipient goes through the sending application before the embedded signing or viewing process is 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.
	//
	// If 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 for the recipient or envelope. The merge fields are enclosed in double brackets.
	//
	// *Example*:
	//
	// `http://senderHost/[[mergeField1]]/ beginSigningSession? [[mergeField2]]&[[mergeField3]]`
	EmbeddedRecipientStartURL string `json:"embeddedRecipientStartURL,omitempty"`
	// This object describes errors that occur. It is only valid for responses and ignored in requests.
	ErrorDetails *ErrorDetails `json:"errorDetails,omitempty"`
	// 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.
	//
	// When 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 DSBool `json:"excludedDocuments,omitempty"`
	// Reserved for DocuSign.
	FaxNumber string `json:"faxNumber,omitempty"`
	// Metadata that indicates whether the `faxNumber` property is editable.
	//
	FaxNumberMetadata *PropertyMetadata `json:"faxNumberMetadata,omitempty"`
	// The recipient's first name. Maximum Length: 50 characters.
	FirstName string `json:"firstName,omitempty"`
	// Metadata that indicates if the sender can edit the recipient's first name.
	FirstNameMetadata *PropertyMetadata `json:"firstNameMetadata,omitempty"`
	// Reserved for DocuSign.
	FullName string `json:"fullName,omitempty"`
	// Reserved for DocuSign.
	FullNameMetadata *PropertyMetadata `json:"fullNameMetadata,omitempty"`
	// The name of the authentication check to use. This value must match one of the authentication types that the account uses. The names of these authentication types appear in the web console sending interface in the Identify list for a recipient. This setting overrides any default authentication setting.
	//
	// **Example**: Your account has ID Check and SMS Authentication available. 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 $. For SMS, you would use SMS Auth $, and you would also need to add a phone number to the smsAuthentication node.
	IDCheckConfigurationName string `json:"idCheckConfigurationName,omitempty"`
	// Metadata that indicates if the sender can edit the `idCheckConfigurationName` property.
	IDCheckConfigurationNameMetadata *PropertyMetadata `json:"idCheckConfigurationNameMetadata,omitempty"`
	// An object that contains input information related to a recipient ID check.
	IDCheckInformationInput *IDCheckInformationInput `json:"idCheckInformationInput,omitempty"`
	// Specifies ID Verification applied on an envelope by workflow ID. <br/>See the [list](https://developers.docusign.com/esign-rest-api/reference/Accounts/IdentityVerifications/list) method in the [IdentityVerifications](https://developers.docusign.com/esign-rest-api/reference/Accounts/IdentityVerifications) resource for more information on how to retrieve workflow IDs available for an account. <br/>This can be used in addition to other [recipient authentication](https://support.docusign.com/en/guides/ndse-user-guide-recipient-authentication) methods. <br/>Note that ID Verification and ID Check are two distinct methods. ID Verification checks recipients' identity by verifying their ID while ID Check relies on data available on public records (such as current and former address).
	IdentityVerification *RecipientIdentityVerification `json:"identityVerification,omitempty"`
	// 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 DSBool `json:"inheritEmailNotificationConfiguration,omitempty"`
	// When set to **true**, this signer is a bulk recipient and the recipient information is contained in a bulk recipient file.
	//
	// Note that when this is true the email and name for the recipient becomes bulk@recipient.com and "Bulk Recipient". These fields can not be changed for the bulk recipient.
	//
	IsBulkRecipient DSBool `json:"isBulkRecipient,omitempty"`
	// Metadata that indicates if the sender can edit the `isBulkRecipient` property.
	IsBulkRecipientMetadata *PropertyMetadata `json:"isBulkRecipientMetadata,omitempty"`
	// The recipient's last name.
	LastName string `json:"lastName,omitempty"`
	// Metadata that indicates if the sender can edit the recipient's last name.
	LastNameMetadata *PropertyMetadata `json:"lastNameMetadata,omitempty"`
	// Reserved for DocuSign.
	LockedRecipientPhoneAuthEditable string `json:"lockedRecipientPhoneAuthEditable,omitempty"`
	// Reserved for DocuSign.
	LockedRecipientSmsEditable string `json:"lockedRecipientSmsEditable,omitempty"`
	// The full legal name of the recipient.
	Name string `json:"name,omitempty"`
	// Metadata that indicates if the sender can edit the full legal name of the recipient.
	NameMetadata *PropertyMetadata `json:"nameMetadata,omitempty"`
	// A note sent to the recipient in the signing email.
	// This note is unique to this recipient.
	// In the user interface,
	// it appears near the upper left corner
	// of the document
	// on the signing screen.
	//
	// Maximum Length: 1000 characters.
	//
	Note string `json:"note,omitempty"`
	// Metdata that indicates if the sender can edit the note sent to the recipient in the signing email.
	NoteMetadata *PropertyMetadata `json:"noteMetadata,omitempty"`
	// A complex type that contains the following elements:
	//
	// * `recipMayProvideNumber` - Boolean. When set to **true**, the recipient can use whatever phone number they choose.
	// * `senderProvidedNumbers` - ArrayOfString.  A list of phone numbers the recipient can use.
	// * `recordVoicePrint` - Reserved.
	// * `validateRecipProvidedNumber` - Reserved.
	PhoneAuthentication DSBool `json:"phoneAuthentication,omitempty"`
	// Reserved for DocuSign.
	RecipientAttachments []RecipientAttachment `json:"recipientAttachments,omitempty"`
	// Information about the recipient's authentication status.
	RecipientAuthenticationStatus *AuthenticationStatus `json:"recipientAuthenticationStatus,omitempty"`
	// Metadata about the features that are supported for the recipient type.
	RecipientFeatureMetadata []FeatureAvailableMetadata `json:"recipientFeatureMetadata,omitempty"`
	// A local reference that senders use to map recipients to other objects, such as specific document tabs. Within an envelope, each `recipientId` must be unique, but there is no uniqueness requirement across envelopes. For example, many envelopes assign the first recipient a `recipientId` of `1`.
	RecipientID string `json:"recipientId,omitempty"`
	// The globally-unique identifier (GUID) for a specific recipient on a specific envelope. If the same recipient is associated with multiple envelopes, they will have a different GUID for each one.
	RecipientIDGUID string `json:"recipientIdGuid,omitempty"`
	// 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.](https://developers.docusign.com/esign-rest-api/guides/standards-based-signatures)
	RecipientSignatureProviders []RecipientSignatureProvider `json:"recipientSignatureProviders,omitempty"`
	// Specifies whether the recipient creates the tabs.
	RecipientSuppliesTabs string `json:"recipientSuppliesTabs,omitempty"`
	// The recipient type, as specified by the following values:
	// - `agents`: Agent recipients can add name and email information for recipients that appear after the agent in routing order.
	// - `carbonCopies`: Carbon copy recipients get a copy of the envelope but don't need to sign, initial, date, or add information to any of the documents. This type of recipient can be used in any routing order.
	// - `certifiedDeliveries`: Certified delivery recipients must receive the completed documents for the envelope to be completed. They don't need to sign, initial, date, or add information to any of the documents.
	// - `editors`: Editors have the same management and access rights for the envelope as the sender. Editors can add name and email information, add or change the routing order, set authentication options, and can edit signature/initial tabs and data fields for the remaining recipients.
	// - `inPersonSigners`: In-person recipients are DocuSign users who act as signing hosts in the same physical location as the signer.
	// - `intermediaries`: Intermediary recipients can optionally add name and email information for recipients at the same or subsequent level in the routing order.
	// - `seals`: Electronic seal recipients represent legal entities.
	// - `signers`: Signers are recipients who must sign, initial, date, or add data to form fields on the documents in the envelope.
	// - `witnesses`: Witnesses are recipients whose signatures affirm that the identified signers have signed the documents in the envelope.
	RecipientType string `json:"recipientType,omitempty"`
	// Metadata that indicates if the sender can edit the recipient type.
	RecipientTypeMetadata *PropertyMetadata `json:"recipientTypeMetadata,omitempty"`
	// 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 DSBool `json:"requireIdLookup,omitempty"`
	// Metadata that indicates whether the `requireIdLookup` property is editable.
	//
	RequireIDLookupMetadata *PropertyMetadata `json:"requireIdLookupMetadata,omitempty"`
	// When set to **true**, the signer must print, sign, and upload or fax the signed documents to DocuSign.
	RequireSignOnPaper DSBool `json:"requireSignOnPaper,omitempty"`
	// 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.
	//
	// This parameter should only be used to select a SAFE-BioPharma certificate. New integrations should use the `recipientSignatureProviders` parameter for other types of digital certificates.
	//
	// Set this parameter to `safe` to use a SAFE-BioPharma certificate.
	//
	// The signer must be enrolled in the SAFE program to sign with a SAFE certificate.
	RequireSignerCertificate string `json:"requireSignerCertificate,omitempty"`
	// Optional element. Specifies the role name associated with the recipient.<br/><br/>This is required when working with template recipients.
	RoleName string `json:"roleName,omitempty"`
	// Specifies the routing order of the recipient in the envelope.
	RoutingOrder string `json:"routingOrder,omitempty"`
	// Metadata that indicates if the sender can edit the routing order for the recipient.
	RoutingOrderMetadata *PropertyMetadata `json:"routingOrderMetadata,omitempty"`
	// The date and time the envelope was sent.
	SentDateTime *time.Time `json:"sentDateTime,omitempty"`
	// 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).
	SignInEachLocation DSBool `json:"signInEachLocation,omitempty"`
	// Metadata that indicates whether the `signInEachLocation` property is editable.
	//
	SignInEachLocationMetadata *PropertyMetadata `json:"signInEachLocationMetadata,omitempty"`
	// Allows the sender to pre-specify the signature name, signature initials and signature font used in the signature stamp for the recipient.
	//
	// Used only with recipient types In Person Signers and Signers.
	//
	SignatureInfo *RecipientSignatureInformation `json:"signatureInfo,omitempty"`
	// Reserved for DocuSign.
	SignedDateTime *time.Time `json:"signedDateTime,omitempty"`
	// The id of the signing group of which the recipient is a member, if applicable.
	SigningGroupID string `json:"signingGroupId,omitempty"`
	// Metadata that indicates if the sender can edit the signing group id.
	SigningGroupIDMetadata *PropertyMetadata `json:"signingGroupIdMetadata,omitempty"`
	// The display name for the signing group.
	//
	// Maximum Length: 100 characters.
	SigningGroupName string `json:"signingGroupName,omitempty"`
	// A complex type that contains information about users in the signing group.
	SigningGroupUsers []UserInfo `json:"signingGroupUsers,omitempty"`
	// Contains the element senderProvidedNumbers which is an Array  of phone numbers the recipient can use for SMS text authentication.
	//
	SmsAuthentication *RecipientSMSAuthentication `json:"smsAuthentication,omitempty"`
	//  Lists the social ID type that can be used for recipient authentication.
	SocialAuthentications []SocialAuthentication `json:"socialAuthentications,omitempty"`
	// Recipient status.
	// <!-- todo -->
	//
	Status string `json:"status,omitempty"`
	// Reserved for DocuSign.
	StatusCode string `json:"statusCode,omitempty"`
	// The tabs to assign to the recipient.
	Tabs *Tabs `json:"tabs,omitempty"`
	// When set to **true**, the sender cannot change any attributes of the recipient. Used only when working with template recipients.
	TemplateLocked DSBool `json:"templateLocked,omitempty"`
	// When set to **true**, the sender may not remove the recipient. Used only when working with template recipients.
	TemplateRequired DSBool `json:"templateRequired,omitempty"`
	// The total number of tabs in the documents.
	TotalTabCount string `json:"totalTabCount,omitempty"`
	// The ID of the user to access. Generally this is the ID of the current authenticated user, but if the authenticated user is an Administrator on the account, `userId` can represent another user whom the Administrator is accessing.
	//
	UserID string `json:"userId,omitempty"`
}

Signer is a complex type containing information about the signer recipient.

type SignerAttachment

type SignerAttachment struct {
	TabBase
	TabGuidedForm
	TabPosition
	// The height of the tab in pixels.
	Height string `json:"height,omitempty"`
	// Metadata that indicates whether the `height` property is editable.
	HeightMetadata *PropertyMetadata `json:"heightMetadata,omitempty"`
	// The name of the tab. For example, `Sign Here` or `Initial Here`.
	Name string `json:"name,omitempty"`
	// Metadata that indicates whether the `name` property is editable.
	NameMetadata *PropertyMetadata `json:"nameMetadata,omitempty"`
	// When set to **true**, the recipient does not need to complete this tab to complete the signing process.
	Optional DSBool `json:"optional,omitempty"`
	// Metadata that indicates whether the `optional` property is editable.
	OptionalMetadata *PropertyMetadata `json:"optionalMetadata,omitempty"`
	// Sets the size of the tab. This field accepts values from `0.5` to `1.0`, where `1.0` represents full size and `0.5` is 50% of full size.
	ScaleValue string `json:"scaleValue,omitempty"`
	// Metadata that indicates whether the `scaleValue` property is editable.
	ScaleValueMetadata *PropertyMetadata `json:"scaleValueMetadata,omitempty"`
	// Metadata that indicates whether the `toolTip` property is editable.
	ToolTipMetadata *PropertyMetadata `json:"toolTipMetadata,omitempty"`
	// The text of a tooltip that appears when a user hovers over a form field or tab.
	Tooltip string `json:"tooltip,omitempty"`
	// The width of the tab in pixels.
	Width string `json:"width,omitempty"`
	// Metadata that indicates whether the `width` property is editable.
	WidthMetadata *PropertyMetadata `json:"widthMetadata,omitempty"`
}

SignerAttachment is a tab that allows the recipient to attach supporting documents to an envelope.

type SignerEmailNotifications

type SignerEmailNotifications struct {
	// When set to **true**, the user receives agent notification emails.
	AgentNotification DSBool `json:"agentNotification,omitempty"`
	// When set to **true**, the user receives notifications of carbon copy deliveries.
	CarbonCopyNotification DSBool `json:"carbonCopyNotification,omitempty"`
	// When set to **true**, the user receives notifications of certified deliveries.
	CertifiedDeliveryNotification DSBool `json:"certifiedDeliveryNotification,omitempty"`
	// When set to **true**, the user receives only comments in which that user name is mentioned.
	CommentsOnlyPrivateAndMention string `json:"commentsOnlyPrivateAndMention,omitempty"`
	// When set to **true**, the user receives all comments.
	CommentsReceiveAll string `json:"commentsReceiveAll,omitempty"`
	// When set to **true**, the user receives notification that document markup has been activated.
	DocumentMarkupActivation DSBool `json:"documentMarkupActivation,omitempty"`
	// When set to **true**, the user receives notification that the envelope has been activated.
	EnvelopeActivation DSBool `json:"envelopeActivation,omitempty"`
	// When set to **true**, the user receives notification that the envelope has been completed.
	EnvelopeComplete DSBool `json:"envelopeComplete,omitempty"`
	// When set to **true**, the user receives notification that the envelope has been corrected.
	EnvelopeCorrected DSBool `json:"envelopeCorrected,omitempty"`
	// When set to **true**, the user receives notification that the envelope has been declined.
	EnvelopeDeclined DSBool `json:"envelopeDeclined,omitempty"`
	// When set to **true**, the user receives notification that the envelope has been voided.
	EnvelopeVoided DSBool `json:"envelopeVoided,omitempty"`
	// Reserved for DocuSign.
	FaxReceived string `json:"faxReceived,omitempty"`
	// When set to **true**, the user receives notification if the offline signing failed.
	OfflineSigningFailed DSBool `json:"offlineSigningFailed,omitempty"`
	// When set to **true**, the user receives notification of document purges.
	PurgeDocuments DSBool `json:"purgeDocuments,omitempty"`
	// When set to **true**, the user receives notification that the envelope has been reassigned.
	ReassignedSigner DSBool `json:"reassignedSigner,omitempty"`
	// When set to **true**, the user receives notification that he or she is a member of the signing group.
	WhenSigningGroupMember string `json:"whenSigningGroupMember,omitempty"`
}

SignerEmailNotifications is an array of email notifications that specifies the email the user receives when they are a sender. When the specific email notification is set to true, the user receives those types of email notifications from DocuSign. The user inherits the default account sender email notification settings when the user is created.

type SigningGroup

type SigningGroup struct {
	// The UTC DateTime when the workspace user authorization was created.
	Created *time.Time `json:"created,omitempty"`
	//
	CreatedBy string `json:"createdBy,omitempty"`
	// This object describes errors that occur. It is only valid for responses and ignored in requests.
	ErrorDetails *ErrorDetails `json:"errorDetails,omitempty"`
	//
	GroupEmail string `json:"groupEmail,omitempty"`
	// The name of the group. The search_text provided in the call automatically performs a wild card search on group_name.
	GroupName string `json:"groupName,omitempty"`
	// The group type. Potential values for POST and PUT requests include:
	//
	// - `adminstrators`
	// - `everyone`
	// - `customGroup`
	//
	// <!-- More? To do -->
	GroupType string `json:"groupType,omitempty"`
	//
	Modified *time.Time `json:"modified,omitempty"`
	// User ID (GUID) of the user who last modified this user record.
	ModifiedBy string `json:"modifiedBy,omitempty"`
	// 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 `json:"signingGroupId,omitempty"`
	// User management information.
	Users []SigningGroupUser `json:"users,omitempty"`
}

SigningGroup signing groups

type SigningGroupInformation

type SigningGroupInformation struct {
	// A collection group objects containing information about the groups.
	Groups []SigningGroup `json:"groups,omitempty"`
}

type SigningGroupUser

type SigningGroupUser struct {
	// Filters returned user records by the specified email address.
	Email string `json:"email,omitempty"`
	// This object describes errors that occur. It is only valid for responses and ignored in requests.
	ErrorDetails *ErrorDetails `json:"errorDetails,omitempty"`
	// The name of the group member.
	//
	// Maximum Length: 100 characters.
	UserName string `json:"userName,omitempty"`
}

type SigningGroupUsers

type SigningGroupUsers struct {
	// User management information.
	Users []SigningGroupUser `json:"users,omitempty"`
}

SigningGroupUsers signing groups' users

type SmartSection

type SmartSection struct {
	TabBase
	TabGuidedForm
	// Reserved for DocuSign.
	// <!--
	// When set to **true**, the anchor string does not consider case when matching strings in the document. The default value is **true**.
	// -->
	AnchorCaseSensitive string `json:"anchorCaseSensitive,omitempty"`
	// Reserved for DocuSign.
	AnchorCaseSensitiveMetadata *PropertyMetadata `json:"anchorCaseSensitiveMetadata,omitempty"`
	// Reserved for DocuSign.
	// <!--
	// Specifies the alignment of anchor tabs with anchor strings. Possible values are **left** or **right**. The default value is **left**.
	// -->
	//
	AnchorHorizontalAlignment string `json:"anchorHorizontalAlignment,omitempty"`
	// Reserved for DocuSign.
	AnchorHorizontalAlignmentMetadata *PropertyMetadata `json:"anchorHorizontalAlignmentMetadata,omitempty"`
	// When set to **true**, this tab is ignored if the `anchorString` is not found in the document.
	AnchorIgnoreIfNotPresent string `json:"anchorIgnoreIfNotPresent,omitempty"`
	// Metadata that indicates whether the `anchorIgnoreIfNotPresent` property is editable.
	AnchorIgnoreIfNotPresentMetadata *PropertyMetadata `json:"anchorIgnoreIfNotPresentMetadata,omitempty"`
	// Reserved for DocuSign.
	// <!--
	// When set to **true**, the anchor string in this tab matches whole words only (strings embedded in other strings are ignored.) The default value is **true**.
	// -->
	//
	AnchorMatchWholeWord string `json:"anchorMatchWholeWord,omitempty"`
	// Reserved for DocuSign.
	AnchorMatchWholeWordMetadata *PropertyMetadata `json:"anchorMatchWholeWordMetadata,omitempty"`
	// Specifies the string to find in the document and use as the basis for tab placement.
	AnchorString string `json:"anchorString,omitempty"`
	// Metadata that indicates whether the `anchorString` property is editable.
	AnchorStringMetadata *PropertyMetadata `json:"anchorStringMetadata,omitempty"`
	// Reserved for DocuSign.
	AnchorTabProcessorVersion string `json:"anchorTabProcessorVersion,omitempty"`
	// Reserved for DocuSign.
	AnchorTabProcessorVersionMetadata *PropertyMetadata `json:"anchorTabProcessorVersionMetadata,omitempty"`
	// Specifies the units of the X and Y offset. Units may be pixels, millimeters, centimeters, or inches.
	AnchorUnits string `json:"anchorUnits,omitempty"`
	// Metadata that indicates whether the `anchorUnits` property is editable.
	AnchorUnitsMetadata *PropertyMetadata `json:"anchorUnitsMetadata,omitempty"`
	// Specifies the X axis location of the tab in `anchorUnits` relative to the `anchorString`.
	AnchorXOffset string `json:"anchorXOffset,omitempty"`
	// Metadata that indicates whether the `anchorXOffset` property is editable.
	AnchorXOffsetMetadata *PropertyMetadata `json:"anchorXOffsetMetadata,omitempty"`
	// Specifies the Y axis location of the tab in `anchorUnits` relative to the `anchorString`.
	AnchorYOffset string `json:"anchorYOffset,omitempty"`
	// Metadata that indicates whether the `anchorYOffset` property is editable.
	AnchorYOffsetMetadata *PropertyMetadata `json:"anchorYOffsetMetadata,omitempty"`
	// When **true**, the `startAnchor` and `endAnchor` for the Smart Section must match both the case and the content of the strings in the HTML.
	CaseSensitive bool `json:"caseSensitive,omitempty"`
	// 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 `json:"customTabId,omitempty"`
	// Metadata that indicates whether the `customTabId` property is editable.
	CustomTabIDMetadata *PropertyMetadata `json:"customTabIdMetadata,omitempty"`
	// This object defines how the HTML section inside the `startAnchor` and `endAnchor` displays.
	DisplaySettings *SmartSectionDisplaySettings `json:"displaySettings,omitempty"`
	// Specifies the end of the area in the HTML where the display settings will be applied. If you do not specify an end anchor, the end of the document will be used by default.
	//
	// **Note**: A start anchor, an end anchor, or both are required.
	EndAnchor string `json:"endAnchor,omitempty"`
	// The last position in the result set.
	EndPosition *SmartSectionAnchorPosition `json:"endPosition,omitempty"`
	// This object describes errors that occur. It is only valid for responses and ignored in requests.
	ErrorDetails *ErrorDetails `json:"errorDetails,omitempty"`
	// The height of the tab in pixels.
	Height string `json:"height,omitempty"`
	// Metadata that indicates whether the `height` property is editable.
	HeightMetadata *PropertyMetadata `json:"heightMetadata,omitempty"`
	// When set to **true**, the signer cannot change the data of the custom tab.
	Locked string `json:"locked,omitempty"`
	// Metadata that indicates whether the `locked` property is editable.
	LockedMetadata *PropertyMetadata `json:"lockedMetadata,omitempty"`
	// Contains the information necessary to map the tab to a field in SalesForce.
	MergeField *MergeField `json:"mergeField,omitempty"`
	// The type of overlay to draw on the document. The following overlay types are supported:
	//
	// - `line`
	// - `outline`
	//
	OverlayType string `json:"overlayType,omitempty"`
	// Metadata that indicates whether the `overlayType` property is editable.
	OverlayTypeMetadata *PropertyMetadata `json:"overlayTypeMetadata,omitempty"`
	// The page number being accessed.
	PageNumber string `json:"pageNumber,omitempty"`
	// Metadata that indicates whether the `pageNumber` property is editable.
	PageNumberMetadata *PropertyMetadata `json:"pageNumberMetadata,omitempty"`
	// When **true**, removes the end anchor string for the Smart Section from the HTML, preventing it from displaying.
	RemoveEndAnchor bool `json:"removeEndAnchor,omitempty"`
	// When **true**, removes the start anchor string for the Smart Section from the HTML, preventing it from displaying.
	RemoveStartAnchor bool `json:"removeStartAnchor,omitempty"`
	// When **true**, the tab is shared.
	Shared string `json:"shared,omitempty"`
	// Metadata that indicates whether the `shared` property is editable.
	SharedMetadata *PropertyMetadata `json:"sharedMetadata,omitempty"`
	// Specifies the beginning of the area in the HTML where the display settings will be applied. If you do not specify a start anchor, the beginning of the document will be used by default.
	//
	// **Note**: A start anchor, an end anchor, or both are required.
	StartAnchor string `json:"startAnchor,omitempty"`
	// The starting position of the current result set.
	StartPosition *SmartSectionAnchorPosition `json:"startPosition,omitempty"`
	// The status of the tab. Possible values are:
	//
	// - `active`: The tab is active, but the recipient has not yet interacted with it.
	// - `signed`: The recipient signed the tab.
	// - `declined`: The recipient declined the envelope.
	// - `na`: Used when the `status` property is not applicable to the tab type. (For example, a tab that has the `tabType` `SignerAttachmentOptional`).
	Status string `json:"status,omitempty"`
	// Metadata that indicates whether the `status` property is editable.
	StatusMetadata *PropertyMetadata `json:"statusMetadata,omitempty"`
	// The unique identifier for the tab.
	TabID string `json:"tabId,omitempty"`
	// Metadata that indicates whether the `tabId` property is editable.
	TabIDMetadata *PropertyMetadata `json:"tabIdMetadata,omitempty"`
	// The label string associated with the tab.
	// The string may be the empty string.
	// If no value is provided, the tab type is used as the value.
	//
	// Maximum of 500 characters.
	//
	TabLabel string `json:"tabLabel,omitempty"`
	// A positive integer that sets the order the tab is navigated to during signing.
	//
	// Tabs on a page are navigated to in ascending order, starting with the lowest number and moving to the highest. If two or more tabs have the same `tabOrder` value, the normal auto-navigation setting behavior for the envelope is used.
	TabOrder string `json:"tabOrder,omitempty"`
	// Metadata that indicates whether the `tabOrder` property is editable.
	TabOrderMetadata *PropertyMetadata `json:"tabOrderMetadata,omitempty"`
	// When set to **true**, the sender cannot change any attributes of the recipient. Used only when working with template recipients.
	TemplateLocked string `json:"templateLocked,omitempty"`
	// Metadata that indicates whether the `templateLocked` property is editable.
	TemplateLockedMetadata *PropertyMetadata `json:"templateLockedMetadata,omitempty"`
	// When set to **true**, the sender may not remove the recipient. Used only when working with template recipients.
	TemplateRequired string `json:"templateRequired,omitempty"`
	// Metadata that indicates whether the `templateRequired` property is editable.
	TemplateRequiredMetadata *PropertyMetadata `json:"templateRequiredMetadata,omitempty"`
	// Metadata that indicates whether the `toolTip` property is editable.
	ToolTipMetadata *PropertyMetadata `json:"toolTipMetadata,omitempty"`
	// The text of a tooltip that appears when a user hovers over a form field or tab.
	Tooltip string `json:"tooltip,omitempty"`
	// The width of the tab in pixels.
	Width string `json:"width,omitempty"`
	// Metadata that indicates whether the `width` property is editable.
	WidthMetadata *PropertyMetadata `json:"widthMetadata,omitempty"`
	// This property indicates the horizontal offset of the object on the page.
	// DocuSign uses 72 DPI when determining position.
	// Required. May be zero.
	//
	XPosition string `json:"xPosition,omitempty"`
	// Metadata that indicates whether the `xPosition` property is editable.
	XPositionMetadata *PropertyMetadata `json:"xPositionMetadata,omitempty"`
	// This indicates the vertical offset of the object on the page. DocuSign uses 72 DPI when determining position.
	YPosition string `json:"yPosition,omitempty"`
	// Metadata that indicates whether the `yPosition` property is editable.
	YPositionMetadata *PropertyMetadata `json:"yPositionMetadata,omitempty"`
}

type SmartSectionAnchorPosition

type SmartSectionAnchorPosition struct {
	// The page number being accessed.
	PageNumber int32 `json:"pageNumber,omitempty"`
	// This property indicates the horizontal offset of the object on the page.
	// DocuSign uses 72 DPI when determining position.
	// Required. May be zero.
	//
	XPosition float64 `json:"xPosition,omitempty"`
	// This indicates the vertical offset of the object on the page. DocuSign uses 72 DPI when determining position.
	YPosition float64 `json:"yPosition,omitempty"`
}

type SmartSectionCollapsibleDisplaySettings

type SmartSectionCollapsibleDisplaySettings struct {
	//
	ArrowClosed string `json:"arrowClosed,omitempty"`
	//
	ArrowColor string `json:"arrowColor,omitempty"`
	//
	ArrowLocation string `json:"arrowLocation,omitempty"`
	//
	ArrowOpen string `json:"arrowOpen,omitempty"`
	//
	ArrowSize string `json:"arrowSize,omitempty"`
	//
	ArrowStyle string `json:"arrowStyle,omitempty"`
	//
	ContainerStyle string `json:"containerStyle,omitempty"`
	//
	LabelStyle string `json:"labelStyle,omitempty"`
	//
	OnlyArrowIsClickable bool `json:"onlyArrowIsClickable,omitempty"`
	//
	OuterLabelAndArrowStyle string `json:"outerLabelAndArrowStyle,omitempty"`
}

type SmartSectionDisplaySettings

type SmartSectionDisplaySettings struct {
	// Specifies the valid CSS-formatted styles to use on responsive table cells. Only valid in display sections of `responsive_table` or `responsive_table_single_column` types.
	CellStyle string `json:"cellStyle,omitempty"`
	// This object defines the appearance and function of a collapsible section or item.
	CollapsibleSettings *SmartSectionCollapsibleDisplaySettings `json:"collapsibleSettings,omitempty"`
	// Indicates the display type. Must be one of the following enum values:
	//
	// - **inline**: Leaves the HTML where it is in the document. This allows for adding a label or presenting on a separate page.
	// - **collapsible**: The HTML in the section may be expanded or collapsed. By default, the section is expanded.
	// - **collapsed**: The HTML in the section may be expanded or collapsed. By default, the section is collapsed.
	// - **responsive_table**: Converts the section into a responsive table. Note that this style is applied only on HTML tables that fall within the `startAnchor` and `endAnchor` positions.
	// - **responsive_table_single_column**: Converts the section into a responsive, single-column table. Note that this style is applied only on HTML tables that fall within the `startAnchor` and `endAnchor` positions. The table is converted to a single column in which each column becomes a row and is stacked.
	// - **print_only**: Prevents this portion of the HTML from displaying in the responsive signing view.
	Display string `json:"display,omitempty"`
	// The label for the display section.
	DisplayLabel string `json:"displayLabel,omitempty"`
	// The position on the page where the display section appears.
	DisplayOrder int32 `json:"displayOrder,omitempty"`
	// The number of the page on which the display section appears.
	DisplayPageNumber int32 `json:"displayPageNumber,omitempty"`
	// When **true**, the `displayLabel` is hidden when the display section is expanded and the display section is no longer collapsible. This property is valid only when the value of the `display` property is `collapsed`.
	HideLabelWhenOpened bool `json:"hideLabelWhenOpened,omitempty"`
	// Specifies the valid CSS-formatted styles to use on inline display sections. This property is valid only when the value of the `display` property is `inline`.
	InlineOuterStyle string `json:"inlineOuterStyle,omitempty"`
	// The label for the display section when it is expanded from a collapsed state. This label displays only on the first opening and is only valid with the value of the `display` property is `collapsed`.
	LabelWhenOpened string `json:"labelWhenOpened,omitempty"`
	// When **true** and the section is expanded, the position of the section close is scrolled to the top of the screen. This property is only valid when the value of the `display` property is `collapsed`.
	ScrollToTopWhenOpened bool `json:"scrollToTopWhenOpened,omitempty"`
	// Specifies the valid CSS-formatted styles to use on responsive tables. This property is valid only when the value of the `display` property is `responsive_table` or `responsive_table_single_column`.
	TableStyle string `json:"tableStyle,omitempty"`
}

SmartSectionDisplaySettings these properties define how a Smart Section displays. A Smart Section is a type of display section.

type SocialAccountInformation

type SocialAccountInformation struct {
	// Filters returned user records by the specified email address.
	Email string `json:"email,omitempty"`
	// This object describes errors that occur. It is only valid for responses and ignored in requests.
	ErrorDetails *ErrorDetails `json:"errorDetails,omitempty"`
	// The social account provider (Facebook, Yahoo, etc.)
	Provider string `json:"provider,omitempty"`
	// The ID provided by the Socal Account.
	SocialID string `json:"socialId,omitempty"`
	// The name of the user.
	UserName string `json:"userName,omitempty"`
}

type SocialAuthentication

type SocialAuthentication struct {
	// Reserved for DocuSign.
	Authentication string `json:"authentication,omitempty"`
}

type Ssn4InformationInput

type Ssn4InformationInput struct {
	// Specifies the display level for the recipient. Valid values are:
	// * `ReadOnly`
	// * `Editable`
	// * `DoNotDisplay`
	DisplayLevelCode string `json:"displayLevelCode,omitempty"`
	// A Boolean value that specifies whether the information must be returned in the response.
	ReceiveInResponse DSBool `json:"receiveInResponse,omitempty"`
	// The last four digits of the recipient's Social Security Number (SSN).
	Ssn4 string `json:"ssn4,omitempty"`
}

type Ssn9InformationInput

type Ssn9InformationInput struct {
	// Specifies the display level for the recipient. Valid values are:
	// * `ReadOnly`
	// * `Editable`
	// * `DoNotDisplay`
	DisplayLevelCode string `json:"displayLevelCode,omitempty"`
	// The recipient's full Social Security Number (SSN).
	Ssn9 string `json:"ssn9,omitempty"`
}

type SupportedLanguages

type SupportedLanguages struct {
	//
	Languages []NameValue `json:"languages,omitempty"`
}

type TabAccountSettings

type TabAccountSettings struct {
	// Boolean that specifies whether the order for tabs used in signing can be set for the account.
	AllowTabOrder DSBool `json:"allowTabOrder,omitempty"`
	// Metadata that indicates whether the `allowTabOrder` property is editable.
	//
	AllowTabOrderMetadata *SettingsMetadata `json:"allowTabOrderMetadata,omitempty"`
	// Boolean that specifies whether the approve and decline fields for use in the tagger and when sending envelopes are enabled.
	ApproveDeclineTabsEnabled DSBool `json:"approveDeclineTabsEnabled,omitempty"`
	// Metadata that indicates whether the `approveDeclineTabs` property is editable.
	//
	ApproveDeclineTabsMetadata *SettingsMetadata `json:"approveDeclineTabsMetadata,omitempty"`
	// Boolean that specifies whether calculated fields are enabled for the account.
	CalculatedFieldsEnabled DSBool `json:"calculatedFieldsEnabled,omitempty"`
	// Metadata that indicates whether the `calculatedFields` property is editable.
	//
	CalculatedFieldsMetadata *SettingsMetadata `json:"calculatedFieldsMetadata,omitempty"`
	// Metadata that indicates whether the `checkboxTabsEnabled` property is editable.
	CheckBoxTabsMetadata *SettingsMetadata `json:"checkBoxTabsMetadata,omitempty"`
	// Boolean that specifies whether the checkbox field can be used in the tagger and for sending envelopes.
	CheckboxTabsEnabled DSBool `json:"checkboxTabsEnabled,omitempty"`
	// Boolean that specifies whether the account can add regular expression (RegEx) field validation to a text field during sending, which will constrict what data the signer can enter.
	DataFieldRegexEnabled DSBool `json:"dataFieldRegexEnabled,omitempty"`
	// Metadata that indicates whether the `dataFieldRegex` property is editable.
	//
	DataFieldRegexMetadata *SettingsMetadata `json:"dataFieldRegexMetadata,omitempty"`
	// Boolean that specifies whether the account enables a sender to change the data field size during sending.
	DataFieldSizeEnabled DSBool `json:"dataFieldSizeEnabled,omitempty"`
	// Metadata that indicates whether the `dataFieldSize` property is editable.
	//
	DataFieldSizeMetadata *SettingsMetadata `json:"dataFieldSizeMetadata,omitempty"`
	// Boolean that specifies whether an account can use the first, last, and email tags when sending an envelope.
	FirstLastEmailTabsEnabled DSBool `json:"firstLastEmailTabsEnabled,omitempty"`
	// Metadata that indicates whether the `firstLastEmailTabs` property is editable.
	//
	FirstLastEmailTabsMetadata *SettingsMetadata `json:"firstLastEmailTabsMetadata,omitempty"`
	// Boolean that specifies whether the account can use the list field in the tagger and when sending envelopes.
	ListTabsEnabled DSBool `json:"listTabsEnabled,omitempty"`
	// Metadata that indicates whether the `listTabs` property is editable.
	//
	ListTabsMetadata *SettingsMetadata `json:"listTabsMetadata,omitempty"`
	// Boolean that specifies whether the account can use the note field in the tagger and when sending envelopes.
	NoteTabsEnabled DSBool `json:"noteTabsEnabled,omitempty"`
	// Metadata that indicates whether the `noteTabs` property is editable.
	//
	NoteTabsMetadata *SettingsMetadata `json:"noteTabsMetadata,omitempty"`
	// Boolean that specifies whether the account can use the radio button field in the tagger and when sending envelopes.
	RadioTabsEnabled DSBool `json:"radioTabsEnabled,omitempty"`
	// Metadata that indicates whether the `radioTabs` property is editable.
	//
	RadioTabsMetadata *SettingsMetadata `json:"radioTabsMetadata,omitempty"`
	// Boolean that specifies whether an account can create and save custom tabs.
	SavingCustomTabsEnabled DSBool `json:"savingCustomTabsEnabled,omitempty"`
	// Metadata that indicates whether the `savingCustomTabs` property is editable.
	//
	SavingCustomTabsMetadata *SettingsMetadata `json:"savingCustomTabsMetadata,omitempty"`
	// Boolean that specifies whether a sender can change the recipient to which an existing tag is assigned.
	SenderToChangeTabAssignmentsEnabled DSBool `json:"senderToChangeTabAssignmentsEnabled,omitempty"`
	// Metadata that indicates whether the `senderToChangeTabAssignments` property is editable.
	//
	SenderToChangeTabAssignmentsMetadata *SettingsMetadata `json:"senderToChangeTabAssignmentsMetadata,omitempty"`
	// Boolean that specifies whether an account member can share custom tabs to other members of the account.
	SharedCustomTabsEnabled DSBool `json:"sharedCustomTabsEnabled,omitempty"`
	// Metadata that indicates whether the `sharedCustomTabs` property is editable.
	//
	SharedCustomTabsMetadata *SettingsMetadata `json:"sharedCustomTabsMetadata,omitempty"`
	// Boolean that specifies whether an account admin can change the default (generated) name for a field.
	TabDataLabelEnabled DSBool `json:"tabDataLabelEnabled,omitempty"`
	// Metadata that indicates whether the `tabDataLabel` property is editable.
	//
	TabDataLabelMetadata *SettingsMetadata `json:"tabDataLabelMetadata,omitempty"`
	// Boolean that specifies whether an account admin can change the location of a tab by editing x,y props for a field.
	TabLocationEnabled DSBool `json:"tabLocationEnabled,omitempty"`
	// Metadata that indicates whether the `tabLocation` property is editable.
	//
	TabLocationMetadata *SettingsMetadata `json:"tabLocationMetadata,omitempty"`
	// Boolean that specifies whether an account admin can lock the properties of a field.
	TabLockingEnabled DSBool `json:"tabLockingEnabled,omitempty"`
	// Metadata that indicates whether the `tabLocking` property is editable.
	//
	TabLockingMetadata *SettingsMetadata `json:"tabLockingMetadata,omitempty"`
	// Boolean that specifies whether an account admin can scale the size of a field.
	TabScaleEnabled DSBool `json:"tabScaleEnabled,omitempty"`
	// Metadata that indicates whether the `tabScale` property is editable.
	//
	TabScaleMetadata *SettingsMetadata `json:"tabScaleMetadata,omitempty"`
	// Boolean that specifies whether an account admin can change the text formatting (font, font size, bold, etc) of a field.
	TabTextFormattingEnabled DSBool `json:"tabTextFormattingEnabled,omitempty"`
	// Metadata that indicates whether the `tabTextFormatting` property is editable.
	//
	TabTextFormattingMetadata *SettingsMetadata `json:"tabTextFormattingMetadata,omitempty"`
	// Boolean that specifies whether the text field can be used in the tagger and for sending envelopes.
	TextTabsEnabled DSBool `json:"textTabsEnabled,omitempty"`
	// Metadata that indicates whether the `textTabs` property is editable.
	//
	TextTabsMetadata *SettingsMetadata `json:"textTabsMetadata,omitempty"`
}

type TabBase

type TabBase struct {
	// For conditional fields this is the `tabLabel` of the parent tab that controls this tab's visibility.
	ConditionalParentLabel string `json:"conditionalParentLabel,omitempty"`
	// Metadata that indicates whether the `conditionalParentLabel` property is editable.
	ConditionalParentLabelMetadata *PropertyMetadata `json:"conditionalParentLabelMetadata,omitempty"`
	// For conditional fields, this is the value of the parent tab that controls the tab's visibility.
	//
	// If 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 `json:"conditionalParentValue,omitempty"`
	// Metadata that indicates whether the `conditionalParentValue` property is editable.
	ConditionalParentValueMetadata *PropertyMetadata `json:"conditionalParentValueMetadata,omitempty"`
	// Integer that identifies the document in the envelope.
	DocumentID string `json:"documentId,omitempty"`
	// Metadata that indicates whether the `documentId` property is editable.
	DocumentIDMetadata *PropertyMetadata `json:"documentIdMetadata,omitempty"`
	// A local reference that senders use to map recipients to other objects, such as specific document tabs. Within an envelope, each `recipientId` must be unique, but there is no uniqueness requirement across envelopes. For example, many envelopes assign the first recipient a `recipientId` of `1`.
	RecipientID string `json:"recipientId,omitempty"`
	// Metadata that indicates whether the `recipientId` property is editable.
	RecipientIDMetadata *PropertyMetadata `json:"recipientIdMetadata,omitempty"`
	// The globally-unique identifier (GUID) for a specific recipient on a specific envelope. If the same recipient is associated with multiple envelopes, they will have a different GUID for each one.
	RecipientIDGUID string `json:"recipientIdGuid,omitempty"`
	// Metadata that indicates whether the `recipientIdGuid` property is editable.
	RecipientIDGUIDMetadata *PropertyMetadata `json:"recipientIdGuidMetadata,omitempty"`
	// An array of tab group labels that uniquely identify tab groups. To assign a tab to a `tabGroup`, you assign the `TabGroupLabel` to the `Tab.TabGroupLabels` array.
	TabGroupLabels []string `json:"tabGroupLabels,omitempty"`
	// Metadata that indicates whether the `tabGroupLabels` property is editable.
	TabGroupLabelsMetadata *PropertyMetadata `json:"tabGroupLabelsMetadata,omitempty"`
	// Indicates the type of tab (for example, `signHere` or `initialHere`).
	TabType string `json:"tabType,omitempty"`
	// Metadata that indicates whether the `tabType` property is editable.
	TabTypeMetadata *PropertyMetadata `json:"tabTypeMetadata,omitempty"`
}

TabBase contains common fields for all tabs

type TabGroup

type TabGroup struct {
	TabBase
	TabGuidedForm
	// Reserved for DocuSign.
	// <!--
	// When set to **true**, the anchor string does not consider case when matching strings in the document. The default value is **true**.
	// -->
	AnchorCaseSensitive string `json:"anchorCaseSensitive,omitempty"`
	// Reserved for DocuSign.
	AnchorCaseSensitiveMetadata *PropertyMetadata `json:"anchorCaseSensitiveMetadata,omitempty"`
	// Reserved for DocuSign.
	// <!--
	// Specifies the alignment of anchor tabs with anchor strings. Possible values are **left** or **right**. The default value is **left**.
	// -->
	//
	AnchorHorizontalAlignment string `json:"anchorHorizontalAlignment,omitempty"`
	// Reserved for DocuSign.
	AnchorHorizontalAlignmentMetadata *PropertyMetadata `json:"anchorHorizontalAlignmentMetadata,omitempty"`
	// When set to **true**, this tab is ignored if the `anchorString` is not found in the document.
	AnchorIgnoreIfNotPresent string `json:"anchorIgnoreIfNotPresent,omitempty"`
	// Metadata that indicates whether the `anchorIgnoreIfNotPresent` property is editable.
	AnchorIgnoreIfNotPresentMetadata *PropertyMetadata `json:"anchorIgnoreIfNotPresentMetadata,omitempty"`
	// Reserved for DocuSign.
	// <!--
	// When set to **true**, the anchor string in this tab matches whole words only (strings embedded in other strings are ignored.) The default value is **true**.
	// -->
	//
	AnchorMatchWholeWord string `json:"anchorMatchWholeWord,omitempty"`
	// Reserved for DocuSign.
	AnchorMatchWholeWordMetadata *PropertyMetadata `json:"anchorMatchWholeWordMetadata,omitempty"`
	// Specifies the string to find in the document and use as the basis for tab placement.
	AnchorString string `json:"anchorString,omitempty"`
	// Metadata that indicates whether the `anchorString` property is editable.
	AnchorStringMetadata *PropertyMetadata `json:"anchorStringMetadata,omitempty"`
	// Reserved for DocuSign.
	AnchorTabProcessorVersion string `json:"anchorTabProcessorVersion,omitempty"`
	// Reserved for DocuSign.
	AnchorTabProcessorVersionMetadata *PropertyMetadata `json:"anchorTabProcessorVersionMetadata,omitempty"`
	// Specifies the units of the X and Y offset. Units may be pixels, millimeters, centimeters, or inches.
	AnchorUnits string `json:"anchorUnits,omitempty"`
	// Metadata that indicates whether the `anchorUnits` property is editable.
	AnchorUnitsMetadata *PropertyMetadata `json:"anchorUnitsMetadata,omitempty"`
	// Specifies the X axis location of the tab in `anchorUnits` relative to the `anchorString`.
	AnchorXOffset string `json:"anchorXOffset,omitempty"`
	// Metadata that indicates whether the `anchorXOffset` property is editable.
	AnchorXOffsetMetadata *PropertyMetadata `json:"anchorXOffsetMetadata,omitempty"`
	// Specifies the Y axis location of the tab in `anchorUnits` relative to the `anchorString`.
	AnchorYOffset string `json:"anchorYOffset,omitempty"`
	// Metadata that indicates whether the `anchorYOffset` property is editable.
	AnchorYOffsetMetadata *PropertyMetadata `json:"anchorYOffsetMetadata,omitempty"`
	// 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 `json:"customTabId,omitempty"`
	// Metadata that indicates whether the `customTabId` property is editable.
	CustomTabIDMetadata *PropertyMetadata `json:"customTabIdMetadata,omitempty"`
	// This object describes errors that occur. It is only valid for responses and ignored in requests.
	ErrorDetails *ErrorDetails `json:"errorDetails,omitempty"`
	// A unique identifier for a tab group. To assign a tab to the `tabGroup`, you assign the `TabGroupLabel` to the `tab.TabGroupLabels` array.
	GroupLabel string `json:"groupLabel,omitempty"`
	// Metadata that indicates whether the `groupLabel` property is editable.
	GroupLabelMetadata *PropertyMetadata `json:"groupLabelMetadata,omitempty"`
	// The rule that is selected by default when a user is adding validation for a tab group in the UI.
	GroupRule string `json:"groupRule,omitempty"`
	// Metadata that indicates whether the `groupRule` property is editable.
	GroupRuleMetadata *PropertyMetadata `json:"groupRuleMetadata,omitempty"`
	// The height of the tab in pixels.
	Height string `json:"height,omitempty"`
	// Metadata that indicates whether the `height` property is editable.
	HeightMetadata *PropertyMetadata `json:"heightMetadata,omitempty"`
	// The maximum number of tabs within the `tabGroup` that should be checked, populated, or signed. This property is used for validation.
	MaximumAllowed string `json:"maximumAllowed,omitempty"`
	// Metadata that indicates whether the `maximumAllowed` property is editable.
	MaximumAllowedMetadata *PropertyMetadata `json:"maximumAllowedMetadata,omitempty"`
	// Contains the information necessary to map the tab to a field in SalesForce.
	MergeField *MergeField `json:"mergeField,omitempty"`
	// The minimum number of of tabs within the `tabGroup` that should be checked, populated, or signed. This property is used for validation.
	MinimumRequired string `json:"minimumRequired,omitempty"`
	// Metadata that indicates whether the `minimumRequired` property is editable.
	MinimumRequiredMetadata *PropertyMetadata `json:"minimumRequiredMetadata,omitempty"`
	// The page number being accessed.
	PageNumber string `json:"pageNumber,omitempty"`
	// Metadata that indicates whether the `pageNumber` property is editable.
	PageNumberMetadata *PropertyMetadata `json:"pageNumberMetadata,omitempty"`
	// The status of the tab. Possible values are:
	//
	// - `active`: The tab is active, but the recipient has not yet interacted with it.
	// - `signed`: The recipient signed the tab.
	// - `declined`: The recipient declined the envelope.
	// - `na`: Used when the `status` property is not applicable to the tab type. (For example, a tab that has the `tabType` `SignerAttachmentOptional`).
	Status string `json:"status,omitempty"`
	// Metadata that indicates whether the `status` property is editable.
	StatusMetadata *PropertyMetadata `json:"statusMetadata,omitempty"`
	// The unique identifier for the tab.
	TabID string `json:"tabId,omitempty"`
	// Metadata that indicates whether the `tabId` property is editable.
	TabIDMetadata *PropertyMetadata `json:"tabIdMetadata,omitempty"`
	// A positive integer that sets the order the tab is navigated to during signing.
	//
	// Tabs on a page are navigated to in ascending order, starting with the lowest number and moving to the highest. If two or more tabs have the same `tabOrder` value, the normal auto-navigation setting behavior for the envelope is used.
	TabOrder string `json:"tabOrder,omitempty"`
	// Metadata that indicates whether the `tabOrder` property is editable.
	TabOrderMetadata *PropertyMetadata `json:"tabOrderMetadata,omitempty"`
	// The scope of the tab group. Possible values are:
	//
	// - `document`
	// - `envelope` (default)
	TabScope string `json:"tabScope,omitempty"`
	// Metadata that indicates whether the `tabScope` property is editable.
	TabScopeMetadata *PropertyMetadata `json:"tabScopeMetadata,omitempty"`
	// When set to **true**, the sender cannot change any attributes of the recipient. Used only when working with template recipients.
	TemplateLocked string `json:"templateLocked,omitempty"`
	// Metadata that indicates whether the `templateLocked` property is editable.
	TemplateLockedMetadata *PropertyMetadata `json:"templateLockedMetadata,omitempty"`
	// When set to **true**, the sender may not remove the recipient. Used only when working with template recipients.
	TemplateRequired string `json:"templateRequired,omitempty"`
	// Metadata that indicates whether the `templateRequired` property is editable.
	TemplateRequiredMetadata *PropertyMetadata `json:"templateRequiredMetadata,omitempty"`
	// Metadata that indicates whether the `toolTip` property is editable.
	ToolTipMetadata *PropertyMetadata `json:"toolTipMetadata,omitempty"`
	// The text of a tooltip that appears when a user hovers over a form field or tab.
	Tooltip string `json:"tooltip,omitempty"`
	// The message displayed if the custom tab fails input validation (either custom of embedded).
	ValidationMessage string `json:"validationMessage,omitempty"`
	// Metadata that indicates whether the `validationMessage` property is editable.
	ValidationMessageMetadata *PropertyMetadata `json:"validationMessageMetadata,omitempty"`
	// The width of the tab in pixels.
	Width string `json:"width,omitempty"`
	// Metadata that indicates whether the `width` property is editable.
	WidthMetadata *PropertyMetadata `json:"widthMetadata,omitempty"`
	// This property indicates the horizontal offset of the object on the page.
	// DocuSign uses 72 DPI when determining position.
	// Required. May be zero.
	//
	XPosition string `json:"xPosition,omitempty"`
	// Metadata that indicates whether the `xPosition` property is editable.
	XPositionMetadata *PropertyMetadata `json:"xPositionMetadata,omitempty"`
	// This indicates the vertical offset of the object on the page. DocuSign uses 72 DPI when determining position.
	YPosition string `json:"yPosition,omitempty"`
	// Metadata that indicates whether the `yPosition` property is editable.
	YPositionMetadata *PropertyMetadata `json:"yPositionMetadata,omitempty"`
}

type TabGuidedForm

type TabGuidedForm struct {
	// An integer specifying the order in which the guided form HTML should render. The order is relative to the `formPageLabel`, the group by which to place the guided form HTML block.
	FormOrder string `json:"formOrder,omitempty"`
	// Metadata that indicates whether the `formOrder` property is editable.
	FormOrderMetadata *PropertyMetadata `json:"formOrderMetadata,omitempty"`
	// A string specifying the group in which to place the guided form HTML. Each group displays as a separate guided forms page in the signing experience.
	FormPageLabel string `json:"formPageLabel,omitempty"`
	// Metadata that indicates whether the `formPageLabel` property is editable.
	FormPageLabelMetadata *PropertyMetadata `json:"formPageLabelMetadata,omitempty"`
	// An integer specifying the order in which to present the guided form pages.
	FormPageNumber string `json:"formPageNumber,omitempty"`
	// Metadata that indicates whether the `fromPageNumber` property is editable.
	FormPageNumberMetadata *PropertyMetadata `json:"formPageNumberMetadata,omitempty"`
}

TabGuidedForm contains common fields for all text box tabs

type TabMetadata

type TabMetadata struct {
	// An optional string that is used to auto-match tabs to strings located in the documents of an envelope.
	Anchor string `json:"anchor,omitempty"`
	// Reserved for DocuSign.
	// <!--
	// When set to **true**, the anchor string does not consider case when matching strings in the document. The default value is **true**.
	// -->
	AnchorCaseSensitive DSBool `json:"anchorCaseSensitive,omitempty"`
	// Reserved for DocuSign.
	// <!--
	// Specifies the alignment of anchor tabs with anchor strings. Possible values are **left** or **right**. The default value is **left**.
	// -->
	//
	AnchorHorizontalAlignment string `json:"anchorHorizontalAlignment,omitempty"`
	// When set to **true**, this tab is ignored if the `anchorString` is not found in the document.
	AnchorIgnoreIfNotPresent DSBool `json:"anchorIgnoreIfNotPresent,omitempty"`
	// Reserved for DocuSign.
	// <!--
	// When set to **true**, the anchor string in this tab matches whole words only (strings embedded in other strings are ignored.) The default value is **true**.
	// -->
	//
	AnchorMatchWholeWord DSBool `json:"anchorMatchWholeWord,omitempty"`
	// Specifies the units of the X and Y offset. Units may be pixels, millimeters, centimeters, or inches.
	AnchorUnits string `json:"anchorUnits,omitempty"`
	// Specifies the X axis location of the tab in `anchorUnits` relative to the `anchorString`.
	AnchorXOffset string `json:"anchorXOffset,omitempty"`
	// Specifies the Y axis location of the tab in `anchorUnits` relative to the `anchorString`.
	AnchorYOffset string `json:"anchorYOffset,omitempty"`
	// When set to **true**, the information in the tab is bold.
	Bold DSBool `json:"bold,omitempty"`
	// 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.
	//
	// When an envelope is completed the information is available to the sender through the Form Data link in the DocuSign Console.
	//
	// This setting applies only to text boxes and does not affect list boxes, radio buttons, or check boxes.
	ConcealValueOnDocument DSBool `json:"concealValueOnDocument,omitempty"`
	// The user name of the DocuSign user who created this object.
	CreatedByDisplayName string `json:"createdByDisplayName,omitempty"`
	// The userId of the DocuSign user who created this object.
	CreatedByUserID string `json:"createdByUserId,omitempty"`
	// 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 `json:"customTabId,omitempty"`
	// 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 DSBool `json:"disableAutoSize,omitempty"`
	// When set to **true**, the custom tab is editable. Otherwise the custom tab cannot be modified.
	Editable DSBool `json:"editable,omitempty"`
	// The font to be used for the tab value. Supported fonts include:
	//
	// - Default
	// - Arial
	// - ArialNarrow
	// - Calibri
	// - CourierNew
	// - Garamond
	// - Georgia
	// - Helvetica
	// - LucidaConsole
	// - MSGothic
	// - MSMincho
	// - OCR-A
	// - Tahoma
	// - TimesNewRoman
	// - Trebuchet
	// - Verdana
	//
	Font string `json:"font,omitempty"`
	// The font color to use for the information in the tab. Possible values are:
	//
	// - Black
	// - BrightBlue
	// - BrightRed
	// - DarkGreen
	// - DarkRed
	// - Gold
	// - Green
	// - NavyBlue
	// - Purple
	// - White
	//
	FontColor string `json:"fontColor,omitempty"`
	// The font size used for the information in the tab. Possible values are:
	//
	// - Size7
	// - Size8
	// - Size9
	// - Size10
	// - Size11
	// - Size12
	// - Size14
	// - Size16
	// - Size18
	// - Size20
	// - Size22
	// - Size24
	// - Size26
	// - Size28
	// - Size36
	// - Size48
	// - Size72
	FontSize string `json:"fontSize,omitempty"`
	// The height of the tab in pixels.
	Height string `json:"height,omitempty"`
	// When set to **true**, the tab is included in e-mails related to the envelope on which it exists. This applies to only specific tabs.
	IncludedInEmail DSBool `json:"includedInEmail,omitempty"`
	// The original value of the tab.
	InitialValue string `json:"initialValue,omitempty"`
	// When set to **true**, the information in the tab is italic.
	Italic DSBool `json:"italic,omitempty"`
	//
	Items []string `json:"items,omitempty"`
	// Utc date and time the comment was last updated (can only be done by creator.)
	LastModified *time.Time `json:"lastModified,omitempty"`
	// The User Name of the DocuSign user who last modified this object.
	LastModifiedByDisplayName string `json:"lastModifiedByDisplayName,omitempty"`
	// The userId of the DocuSign user who last modified this object.
	LastModifiedByUserID string `json:"lastModifiedByUserId,omitempty"`
	// When set to **true**, the signer cannot change the data of the custom tab.
	Locked DSBool `json:"locked,omitempty"`
	//
	MaximumLength string `json:"maximumLength,omitempty"`
	// Contains the information necessary to map the tab to a field in SalesForce.
	MergeField *MergeField `json:"mergeField,omitempty"`
	//
	Name string `json:"name,omitempty"`
	//
	PaymentItemCode string `json:"paymentItemCode,omitempty"`
	//
	PaymentItemDescription string `json:"paymentItemDescription,omitempty"`
	//
	PaymentItemName string `json:"paymentItemName,omitempty"`
	// When set to **true**, the signer is required to fill out this tab.
	Required TabRequired `json:"required,omitempty"`
	// Sets the size of the tab. This field accepts values from `0.5` to `1.0`, where `1.0` represents full size and `0.5` is 50% of full size.
	ScaleValue string `json:"scaleValue,omitempty"`
	// When set to **true**, the radio button is selected.
	Selected string `json:"selected,omitempty"`
	// When **true**, the tab is shared.
	Shared DSBool `json:"shared,omitempty"`
	// If the recipient signs by using a personal stamp that is representative of their signature, this property specifies the stamp type.
	StampType string `json:"stampType,omitempty"`
	// Metadata that indicates whether the `stampType` property is editable.
	StampTypeMetadata *PropertyMetadata `json:"stampTypeMetadata,omitempty"`
	// The label string associated with the tab.
	// The string may be the empty string.
	// If no value is provided, the tab type is used as the value.
	//
	// Maximum of 500 characters.
	//
	TabLabel string `json:"tabLabel,omitempty"`
	// Type of user:
	// - `type_owner`
	// - `type_participant`
	Type string `json:"type,omitempty"`
	// When set to **true**, the information in the tab is underlined.
	Underline DSBool `json:"underline,omitempty"`
	// The message displayed if the custom tab fails input validation (either custom of embedded).
	ValidationMessage string `json:"validationMessage,omitempty"`
	// A regular expression used to validate input for the tab.
	ValidationPattern string `json:"validationPattern,omitempty"`
	// The width of the tab in pixels.
	Width string `json:"width,omitempty"`
}

type TabMetadataList

type TabMetadataList struct {
	// A list of `signHere` tabs, which can be used to add a visual representation for an electronic seal in a document.
	Tabs []TabMetadata `json:"tabs,omitempty"`
}

type TabPosition

type TabPosition struct {
	// Reserved for DocuSign.
	// <!--
	// When set to **true**, the anchor string does not consider case when matching strings in the document. The default value is **true**.
	// -->
	AnchorCaseSensitive DSBool `json:"anchorCaseSensitive,omitempty"`
	// Reserved for DocuSign.
	AnchorCaseSensitiveMetadata *PropertyMetadata `json:"anchorCaseSensitiveMetadata,omitempty"`
	// Reserved for DocuSign.
	// <!--
	// Specifies the alignment of anchor tabs with anchor strings. Possible values are **left** or **right**. The default value is **left**.
	// -->
	//
	AnchorHorizontalAlignment string `json:"anchorHorizontalAlignment,omitempty"`
	// Reserved for DocuSign.
	AnchorHorizontalAlignmentMetadata *PropertyMetadata `json:"anchorHorizontalAlignmentMetadata,omitempty"`
	// When set to **true**, this tab is ignored if the `anchorString` is not found in the document.
	AnchorIgnoreIfNotPresent DSBool `json:"anchorIgnoreIfNotPresent,omitempty"`
	// Metadata that indicates whether the `anchorIgnoreIfNotPresent` property is editable.
	AnchorIgnoreIfNotPresentMetadata *PropertyMetadata `json:"anchorIgnoreIfNotPresentMetadata,omitempty"`
	// Reserved for DocuSign.
	// <!--
	// When set to **true**, the anchor string in this tab matches whole words only (strings embedded in other strings are ignored.) The default value is **true**.
	// -->
	//
	AnchorMatchWholeWord DSBool `json:"anchorMatchWholeWord,omitempty"`
	// Reserved for DocuSign.
	AnchorMatchWholeWordMetadata *PropertyMetadata `json:"anchorMatchWholeWordMetadata,omitempty"`
	// Specifies the string to find in the document and use as the basis for tab placement.
	AnchorString string `json:"anchorString,omitempty"`
	// Metadata that indicates whether the `anchorString` property is editable.
	AnchorStringMetadata *PropertyMetadata `json:"anchorStringMetadata,omitempty"`
	// Reserved for DocuSign.
	AnchorTabProcessorVersion string `json:"anchorTabProcessorVersion,omitempty"`
	// Reserved for DocuSign.
	AnchorTabProcessorVersionMetadata *PropertyMetadata `json:"anchorTabProcessorVersionMetadata,omitempty"`
	// Specifies the units of the X and Y offset. Units may be pixels, millimeters, centimeters, or inches.
	AnchorUnits string `json:"anchorUnits,omitempty"`
	// Metadata that indicates whether the `anchorUnits` property is editable.
	AnchorUnitsMetadata *PropertyMetadata `json:"anchorUnitsMetadata,omitempty"`
	// Specifies the X axis location of the tab in `anchorUnits` relative to the `anchorString`.
	AnchorXOffset string `json:"anchorXOffset,omitempty"`
	// Metadata that indicates whether the `anchorXOffset` property is editable.
	AnchorXOffsetMetadata *PropertyMetadata `json:"anchorXOffsetMetadata,omitempty"`
	// Specifies the Y axis location of the tab in `anchorUnits` relative to the `anchorString`.
	AnchorYOffset string `json:"anchorYOffset,omitempty"`
	// Metadata that indicates whether the `anchorYOffset` property is editable.
	AnchorYOffsetMetadata *PropertyMetadata `json:"anchorYOffsetMetadata,omitempty"`
	// 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 `json:"customTabId,omitempty"`
	// Metadata that indicates whether the `customTabId` property is editable.
	CustomTabIDMetadata *PropertyMetadata `json:"customTabIdMetadata,omitempty"`
	// This object describes errors that occur. It is only valid for responses and ignored in requests.
	ErrorDetails *ErrorDetails `json:"errorDetails,omitempty"`
	// Contains the information necessary to map the tab to a field in SalesForce.
	MergeField *MergeField `json:"mergeField,omitempty"`
	// The page number on which the tab is located. For supplemental documents, this value must be `1`.
	PageNumber string `json:"pageNumber,omitempty"`
	// Metadata that indicates whether the `pageNumber` property is editable.
	PageNumberMetadata *PropertyMetadata `json:"pageNumberMetadata,omitempty"`
	// The status of the tab. Possible values are:
	//
	// - `active`: The tab is active, but the recipient has not yet interacted with it.
	// - `signed`: The recipient signed the tab.
	// - `declined`: The recipient declined the envelope.
	// - `na`: Used when the `status` property is not applicable to the tab type. (For example, a tab that has the `tabType` `SignerAttachmentOptional`).
	Status string `json:"status,omitempty"`
	// Metadata that indicates whether the `status` property is editable.
	StatusMetadata *PropertyMetadata `json:"statusMetadata,omitempty"`
	// The unique identifier for the tab.
	TabID string `json:"tabId,omitempty"`
	// Metadata that indicates whether the `tabId` property is editable.
	TabIDMetadata *PropertyMetadata `json:"tabIdMetadata,omitempty"`
	// The label string associated with the tab.
	// The string may be the empty string.
	// If no value is provided, the tab type is used as the value.
	//
	// Maximum of 500 characters.
	//
	TabLabel string `json:"tabLabel,omitempty"`
	// Metadata that indicates whether the `tabLabel` property is editable.
	TabLabelMetadata *PropertyMetadata `json:"tabLabelMetadata,omitempty"`
	// A positive integer that sets the order the tab is navigated to during signing.
	//
	// Tabs on a page are navigated to in ascending order, starting with the lowest number and moving to the highest. If two or more tabs have the same `tabOrder` value, the normal auto-navigation setting behavior for the envelope is used.
	TabOrder string `json:"tabOrder,omitempty"`
	// Metadata that indicates whether the `tabOrder` property is editable.
	TabOrderMetadata *PropertyMetadata `json:"tabOrderMetadata,omitempty"`
	// When set to **true**, the sender cannot change any attributes of the recipient. Used only when working with template recipients.
	TemplateLocked DSBool `json:"templateLocked,omitempty"`
	// Metadata that indicates whether the `templateLocked` property is editable.
	TemplateLockedMetadata *PropertyMetadata `json:"templateLockedMetadata,omitempty"`
	// When set to **true**, the sender may not remove the recipient. Used only when working with template recipients.
	TemplateRequired DSBool `json:"templateRequired,omitempty"`
	// Metadata that indicates whether the `templateRequired` property is editable.
	TemplateRequiredMetadata *PropertyMetadata `json:"templateRequiredMetadata,omitempty"`
	// This property indicates the horizontal offset of the object on the page.
	// DocuSign uses 72 DPI when determining position.
	// Required. May be zero.
	//
	XPosition string `json:"xPosition,omitempty"`
	// Metadata that indicates whether the `xPosition` property is editable.
	XPositionMetadata *PropertyMetadata `json:"xPositionMetadata,omitempty"`
	// This indicates the vertical offset of the object on the page. DocuSign uses 72 DPI when determining position.
	YPosition string `json:"yPosition,omitempty"`
	// Metadata that indicates whether the `yPosition` property is editable.
	YPositionMetadata *PropertyMetadata `json:"yPositionMetadata,omitempty"`
}

TabPosition contains common fields for all tabs that can position themselves on document

type TabRequired

type TabRequired int

TabRequired used for the required tab field. As this field defaults to true, a new type was required. Set to true or false using the REQUIRED enums.

const (
	REQUIRED_DEFAULT TabRequired = 0
	REQUIRED_FALSE   TabRequired = 1
	REQUIRED_TRUE    TabRequired = 2
)

func (TabRequired) IsRequired

func (r TabRequired) IsRequired() bool

IsRequired declares whether the tab is required

func (TabRequired) MarshalJSON

func (r TabRequired) MarshalJSON() ([]byte, error)

MarshalJSON outputs "true" or "false" for TabRequired field

func (*TabRequired) UnmarshalJSON

func (r *TabRequired) UnmarshalJSON(b []byte) error

UnmarshalJSON checks for "True" or "true"

type TabStyle

type TabStyle struct {
	// When set to **true**, the information in the tab is bold.
	Bold DSBool `json:"bold,omitempty"`
	// Metadata that indicates whether the `bold` property is editable.
	BoldMetadata *PropertyMetadata `json:"boldMetadata,omitempty"`
	// The font to be used for the tab value. Supported fonts include:
	//
	// - Default
	// - Arial
	// - ArialNarrow
	// - Calibri
	// - CourierNew
	// - Garamond
	// - Georgia
	// - Helvetica
	// - LucidaConsole
	// - MSGothic
	// - MSMincho
	// - OCR-A
	// - Tahoma
	// - TimesNewRoman
	// - Trebuchet
	// - Verdana
	//
	Font string `json:"font,omitempty"`
	// Metadata that indicates whether the `font` property is editable.
	FontMetadata *PropertyMetadata `json:"fontMetadata,omitempty"`
	// The font color to use for the information in the tab. Possible values are:
	//
	// - Black
	// - BrightBlue
	// - BrightRed
	// - DarkGreen
	// - DarkRed
	// - Gold
	// - Green
	// - NavyBlue
	// - Purple
	// - White
	//
	FontColor string `json:"fontColor,omitempty"`
	// Metadata that indicates whether the `fontColor` property is editable.
	FontColorMetadata *PropertyMetadata `json:"fontColorMetadata,omitempty"`
	// The font size used for the information in the tab. Possible values are:
	//
	// - Size7
	// - Size8
	// - Size9
	// - Size10
	// - Size11
	// - Size12
	// - Size14
	// - Size16
	// - Size18
	// - Size20
	// - Size22
	// - Size24
	// - Size26
	// - Size28
	// - Size36
	// - Size48
	// - Size72
	FontSize string `json:"fontSize,omitempty"`
	// Metadata that indicates whether the `fontSize` property is editable.
	FontSizeMetadata *PropertyMetadata `json:"fontSizeMetadata,omitempty"`
	// When set to **true**, the information in the tab is italic.
	Italic DSBool `json:"italic,omitempty"`
	// Metadata that indicates whether the `italic` property is editable.
	ItalicMetadata *PropertyMetadata `json:"italicMetadata,omitempty"`
	// The name of the tab. For example, `Sign Here` or `Initial Here`.
	Name string `json:"name,omitempty"`
	// Metadata that indicates whether the `name` property is editable.
	NameMetadata *PropertyMetadata `json:"nameMetadata,omitempty"`
	// When set to **true**, the information in the tab is underlined.
	Underline DSBool `json:"underline,omitempty"`
	// Metadata that indicates whether the `underline` property is editable.
	UnderlineMetadata *PropertyMetadata `json:"underlineMetadata,omitempty"`
}

TabStyle contains common fields for all tabs that can set a display style

type TabValue

type TabValue struct {
	// Specifies the value of the tab.
	Value string `json:"value,omitempty"`
	// Metadata that indicates whether the `value` property is editable.
	ValueMetadata *PropertyMetadata `json:"valueMetadata,omitempty"`
}

TabValue add Value() func to tab

type Tabs

type Tabs struct {
	// A list of
	// [Approve tabs][approve].
	//
	// An Approve tab enables
	// the recipient to approve documents without
	// placing a signature or initials on the document. If the
	// recipient clicks the tab during the signing process, the
	// recipient is considered to have signed the document. No
	// information is shown on the document of the approval, but it
	// is recorded as a signature in the envelope history.
	// The value of an approve tab can't be set.
	//
	// [approve]:		      https://developers.docusign.com/esign-rest-api/reference/Envelopes/EnvelopeRecipientTabs/create/#/definitions/approve
	//
	ApproveTabs []Approve `json:"approveTabs,omitempty"`
	// A list of
	// [Checkbox tabs][checkbox].
	//
	//
	// A Checkbox tab enables the recipient to select a yes/no (on/off) option. This value can be set.
	//
	//
	// [checkbox]:  https://developers.docusign.com/esign-rest-api/reference/Envelopes/EnvelopeRecipientTabs/create/#/definitions/checkbox
	//
	CheckboxTabs []Checkbox `json:"checkboxTabs,omitempty"`
	// An array of tabs that represents a collection of comments in a comment thread. For example, if a recipient has questions about the content of a document, they can add a comment to the document and control who else can see the comment. This value can't be set.
	CommentThreadTabs []CommentThread `json:"commentThreadTabs,omitempty"`
	// A list of
	// [Company tabs][company].
	//
	//
	// A Company tab displays a field for the name of the recipient's company. This value can't be set.
	//
	//
	//
	// [company]: https://developers.docusign.com/esign-rest-api/reference/EnvelopeRecipientTabs/create/#/definitions/company
	//
	CompanyTabs []Company `json:"companyTabs,omitempty"`
	// A list of
	// [Date Signed tabs][dateSigned].
	//
	//
	// A Date Signed tab displays the date that the recipient signed the document. This value can't be set.
	//
	// [dateSigned]: https://developers.docusign.com/esign-rest-api/reference/Envelopes/EnvelopeRecipientTabs/create/#/definitions/dateSigned
	//
	DateSignedTabs []DateSigned `json:"dateSignedTabs,omitempty"`
	// A list of
	// [Date tabs][date].
	//
	// A Date tab enables the recipient to enter a date. This value can't be set. The tooltip for this tab recommends the date format MM/DD/YYYY, but this format is not enforced. The system retains the format that the recipient enters.
	//
	// **Note**: If you need to enforce a specific date format, we recommend that you use a Text tab with a validation pattern and validation message.
	//
	//
	// [date]: https://developers.docusign.com/esign-rest-api/reference/Envelopes/EnvelopeRecipientTabs/create/#/definitions/date
	//
	DateTabs []Date `json:"dateTabs,omitempty"`
	// A list of
	// [Decline tabs][decline].
	//
	// A Decline tab enables the recipient to decline the envelope. If the recipient clicks the tab during the signing process, the envelope is voided. The value of this tab can't be set.
	//
	//
	// [decline]: https://developers.docusign.com/esign-rest-api/reference/Envelopes/EnvelopeRecipientTabs/create/#/definitions/decline
	//
	DeclineTabs []Decline `json:"declineTabs,omitempty"`
	// A list of
	// [Email Address tabs][emailAddress].
	//
	// An Email Address tab displays the recipient's email as entered in the recipient information. This value can't be set.
	//
	//
	// [emailAddress]: https://developers.docusign.com/esign-rest-api/reference/Envelopes/EnvelopeRecipientTabs/create/#/definitions/emailAddress
	//
	EmailAddressTabs []EmailAddress `json:"emailAddressTabs,omitempty"`
	// A list of
	// [Email tabs][email].
	//
	// An Email tab enables the recipient to enter an email address.
	// This is a one-line field that checks that a valid email
	// address is entered. It uses the same parameters as a Text
	// tab, with the validation message and pattern set for email
	// information. This value can be set.
	//
	// When getting information that includes
	// this tab type, the original value of the tab when the
	// associated envelope was sent is included in the response.
	//
	// [email]: https://developers.docusign.com/esign-rest-api/reference/Envelopes/EnvelopeRecipientTabs/create/#/definitions/email
	//
	EmailTabs []Email `json:"emailTabs,omitempty"`
	// A list of
	// [Envelope ID tabs][envelopeId].
	//
	// An Envelope ID tab  displays the envelope ID. Recipients cannot enter or change the information in this tab. This value can't be set.
	//
	//
	// [envelopeId]: https://developers.docusign.com/esign-rest-api/reference/EnvelopeRecipientTabs/create/#/definitions/envelopeId
	//
	EnvelopeIDTabs []EnvelopeID `json:"envelopeIdTabs,omitempty"`
	// A list of
	// [First Name tabs][firstName].
	//
	// A First Name tab displays the recipient's first name. The system automatically populates this field by splitting the name in the recipient information on spaces. This value can't be set.
	//
	//
	// [firstName]: https://developers.docusign.com/esign-rest-api/reference/EnvelopeRecipientTabs/create/#/definitions/firstName
	//
	FirstNameTabs []FirstName `json:"firstNameTabs,omitempty"`
	// A list of [Formula tabs][formulaTab].
	//
	// The value of a Formula tab is calculated from the values of other number or date tabs in the document. When the recipient completes the underlying fields, the Formula tab calculates and displays the result. This value can be set.
	//
	// The `formula` property of the tab contains the references to the underlying tabs. To learn more about formulas, see [Calculated Fields][calculatedfields].
	//
	// If a Formula tab contains a `paymentDetails` property, the tab is considered a payment item. To learn more about payments, see [Requesting Payments Along with Signatures][paymentguide].
	//
	// [calculatedfields]: https://support.docusign.com/en/guides/ndse-user-guide-calculated-fields
	// [paymentguide]:     https://support.docusign.com/en/guides/requesting-payments-along-with-signatures
	// [formulaTab]:	    	https://developers.docusign.com/esign-rest-api/reference/Envelopes/EnvelopeRecipientTabs/create/#/definitions/formulaTab
	//
	FormulaTabs []FormulaTab `json:"formulaTabs,omitempty"`
	// A list of
	// [Full Name tabs][fullName].
	//
	// A Full Name tab displays the recipient's full name. This value can't be set.
	//
	//
	// [fullName]: https://developers.docusign.com/esign-rest-api/reference/Envelopes/EnvelopeRecipientTabs/create/#/definitions/fullName
	//
	FullNameTabs []FullName `json:"fullNameTabs,omitempty"`
	// A list of
	// [Initial Here tabs][initialHere].
	//
	// This type of tab enables the recipient to initial the document. May be optional. This value can't be set.
	//
	// [initialHere]: https://developers.docusign.com/esign-rest-api/reference/Envelopes/EnvelopeRecipientTabs/create/#/definitions/initialHere
	//
	InitialHereTabs []InitialHere `json:"initialHereTabs,omitempty"`
	// A list of
	// [Last Name tabs][lastName].
	//
	// A Last Name tab displays the recipient's last name. The system automatically populates this field by splitting the name in the recipient information on spaces. This value can't be set.
	//
	//
	// [lastName]: https://developers.docusign.com/esign-rest-api/reference/Envelopes/EnvelopeRecipientTabs/create/#/definitions/lastName
	//
	LastNameTabs []LastName `json:"lastNameTabs,omitempty"`
	// A list of [List tabs][list].
	//
	// A List tab enables the recipient to choose from a list of options. You specify the options in the `listItems` property. This value can't be set.
	//
	//
	//
	// [list]: https://developers.docusign.com/esign-rest-api/reference/EnvelopeRecipientTabs/create/#/definitions/list
	//
	ListTabs []List `json:"listTabs,omitempty"`
	// A list of  [Notarize tabs][notarize].
	//
	// A Notarize tab alerts notary recipients that they must take action on the page. This value can be set.
	//
	// **Note**: Only one notarize tab can appear on a page.
	//
	// [notarize]: https://developers.docusign.com/esign-rest-api/reference/Envelopes/EnvelopeRecipientTabs/create/#/definitions/notarize
	//
	NotarizeTabs []Notarize `json:"notarizeTabs,omitempty"`
	// A list of
	// [Note tabs][note].
	//
	// A Note tab displays additional information to the recipient in the form of a note. This value can be set.
	//
	// [note]: https://developers.docusign.com/esign-rest-api/reference/Envelopes/EnvelopeRecipientTabs/create/#/definitions/note
	//
	NoteTabs []Note `json:"noteTabs,omitempty"`
	// A list of
	// [Number tabs][number].
	//
	// A Number tab enables the recipient to enter numbers and decimal points (.). This value can be set.
	//
	//
	//
	// [number]: https://developers.docusign.com/esign-rest-api/reference/Envelopes/EnvelopeRecipientTabs/create/#/definitions/number
	//
	NumberTabs []Number `json:"numberTabs,omitempty"`
	// This type of tab enables the recipient to strike through document text. This value can't be set.
	PolyLineOverlayTabs []PolyLineOverlay `json:"polyLineOverlayTabs,omitempty"`
	// A list of [Radio Group tabs][radioGroup].
	//
	// A Radio Group tab places a group of radio buttons on a document. The `radios` property is used to add and place the radio
	// buttons associated with the group. Only one radio button can be selected in a group. This value can be set.
	//
	//
	// [radioGroup]: https://developers.docusign.com/esign-rest-api/reference/Envelopes/EnvelopeRecipientTabs/create/#/definitions/radioGroup
	//
	RadioGroupTabs []RadioGroup `json:"radioGroupTabs,omitempty"`
	// A list of
	// [Sign Here tabs][signHere].
	//
	// This type of tab enables the recipient to sign a document. May be optional. This value can't be set.
	//
	// [signHere]: https://developers.docusign.com/esign-rest-api/reference/Envelopes/EnvelopeRecipientTabs/create/#/definitions/signHere
	//
	SignHereTabs []SignHere `json:"signHereTabs,omitempty"`
	// A list of
	// [Signer Attachment tabs][signerAttachment].
	//
	// This type of tab enables the recipient to attach supporting documents to an envelope. This value can't be set.
	//
	//
	// [signerAttachment]: https://developers.docusign.com/esign-rest-api/reference/Envelopes/EnvelopeRecipientTabs/create/#/definitions/signerAttachment
	//
	SignerAttachmentTabs []SignerAttachment `json:"signerAttachmentTabs,omitempty"`
	// A list of [Smart Section](https://www.docusign.com/blog/dsdev-deep-dive-responsive-smart-sections/) tabs.
	//
	// Smart Section tabs enhance responsive signing on mobile devices by enabling collapsible sections, page breaks, custom formatting options, and other advanced functionality.
	//
	// **Note**: Smart Sections are a premium feature. Responsive signing must also be enabled for your account.
	SmartSectionTabs []SmartSection `json:"smartSectionTabs,omitempty"`
	// A list of
	// [SSN tabs][ssn].
	//
	// An SSN tab contains a one-line field that enables the recipient to enter a Social Security Number (SSN) with or without
	// dashes. It uses the same parameters as a Text tab, with the validation message and pattern set for SSN information. This value can be set.
	//
	//
	// [ssn]: https://developers.docusign.com/esign-rest-api/reference/Envelopes/EnvelopeRecipientTabs/create/#/definitions/ssn
	//
	SSNTabs []SSN `json:"ssnTabs,omitempty"`
	// An array of `tabGroup` items that contain information about tab groups. To assign a tab to a `tabGroup`, you assign the `tabGroupLabel` to the `Tab.TabGroupLabels` array.
	TabGroups []TabGroup `json:"tabGroups,omitempty"`
	// A list of
	// [Text tabs][text].
	//
	// A text tab enables the recipient to enter free text. This value can be set.
	//
	// [text]: https://developers.docusign.com/esign-rest-api/reference/EnvelopeRecipientTabs/create/#/definitions/text
	//
	TextTabs []Text `json:"textTabs,omitempty"`
	// A list of
	// [Title tabs][title].
	//
	// A Title tab displays the recipient's title.  This value can't be set.
	//
	//
	// [title]: https://developers.docusign.com/esign-rest-api/reference/Envelopes/EnvelopeRecipientTabs/create/#/definitions/title
	//
	TitleTabs []Title `json:"titleTabs,omitempty"`
	// A list of
	// [View tabs][view].
	//
	// A View tab is used with an Approve tab to handle supplemental documents.  This value can be set.
	//
	// [view]: https://developers.docusign.com/esign-rest-api/reference/Envelopes/EnvelopeRecipientTabs/create/#/definitions/view
	//
	ViewTabs []View `json:"viewTabs,omitempty"`
	// A list of
	// [Zip tabs][zip].
	//
	// A Zip tab enables the recipient to enter a ZIP code. The ZIP code can be five digits or nine digits ( in ZIP+4 format), and can be entered with or without dashes. It uses the same parameters as a Text tab, with the validation message and pattern set for ZIP code information.  This value can be set.
	//
	//
	// [zip]: https://developers.docusign.com/esign-rest-api/reference/Envelopes/EnvelopeRecipientTabs/create/#/definitions/zip
	//
	ZipTabs []Zip `json:"zipTabs,omitempty"`
}

type TemplateCustomFields

type TemplateCustomFields struct {
	// An array of list custom fields.
	ListCustomFields []ListCustomField `json:"listCustomFields,omitempty"`
	// An array of text custom fields.
	TextCustomFields []TextCustomField `json:"textCustomFields,omitempty"`
}

type TemplateDocumentVisibilityList

type TemplateDocumentVisibilityList struct {
	// An array of `documentVisibility` objects that specifies which documents are visible to which recipients.
	DocumentVisibility []DocumentVisibility `json:"documentVisibility,omitempty"`
}

TemplateDocumentVisibilityList document Visibility enables senders to control the visibility of the documents in an envelope at the recipient level. For example, if the parties associated with a legal proceeding should have access to different documents, the Document Visibility feature enables you to keep all of the documents in the same envelope and set view permissions for the documents by recipient. This functionality is enabled for envelopes and templates. It is not available for PowerForms.

**Note**: Before you use Document Visibility, you should be aware of the following information:

- Document Visibility must be enabled for your account by your DocuSign administrator. - A document cannot be hidden from a recipient if the recipient has tabs assigned to them on the document. - When the Document Visibility setting hides a document from a recipient, the document also does not appear in the recipient's list of envelopes, documents, or page images. - Carbon Copy, Certified Delivery (Needs to Sign), Editor, and Agent recipients can always see all of the documents associated with the envelope or template.

The Document Visibility feature has multiple settings that specify the options that senders have when sending documents. For more information, see [Use Document Visibility to Control Recipient Access](https://support.docusign.com/en/guides/ndse-user-guide-document-visibility).

type TemplateDocumentsResult

type TemplateDocumentsResult struct {
	// An array of document objects that contain information about the documents associated with the template.
	TemplateDocuments []EnvelopeDocument `json:"templateDocuments,omitempty"`
	// The unique identifier of the template. If this is not provided, DocuSign will generate a value.
	TemplateID string `json:"templateId,omitempty"`
}

TemplateDocumentsResult template documents

type TemplateInformation

type TemplateInformation struct {
	// An array of `templateSummary` objects that contain information about templates.
	Templates []TemplateSummary `json:"templates,omitempty"`
}

type TemplateMatch

type TemplateMatch struct {
	//
	DocumentEndPage string `json:"documentEndPage,omitempty"`
	//
	DocumentStartPage string `json:"documentStartPage,omitempty"`
	//
	MatchPercentage string `json:"matchPercentage,omitempty"`
}

type TemplateNotificationRequest

type TemplateNotificationRequest struct {
	// A complex element that specifies the expiration settings for the envelope.
	Expirations *Expirations `json:"expirations,omitempty"`
	// The user's encrypted password hash.
	Password string `json:"password,omitempty"`
	// A complex element that specifies reminder settings for the envelope
	Reminders *Reminders `json:"reminders,omitempty"`
	// When set to **true**, the account default notification settings are used for the envelope, overriding the reminders and expirations settings. When set to **false**, the reminders and expirations settings specified in this request are used.
	UseAccountDefaults DSBool `json:"useAccountDefaults,omitempty"`
}

type TemplateRecipients

type TemplateRecipients struct {
	// A list of agent recipients assigned to the documents.
	Agents []Agent `json:"agents,omitempty"`
	// A list of carbon copy recipients assigned to the documents.
	CarbonCopies []CarbonCopy `json:"carbonCopies,omitempty"`
	// 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 `json:"certifiedDeliveries,omitempty"`
	// The routing order of the current recipient. If this value equals a particular signer's routing order, it indicates that the envelope has been sent to that recipient, but he or she has not completed the required actions.
	CurrentRoutingOrder string `json:"currentRoutingOrder,omitempty"`
	// A list of editors on the document.
	Editors []Editor `json:"editors,omitempty"`
	// This object describes errors that occur. It is only valid for responses and ignored in requests.
	ErrorDetails *ErrorDetails `json:"errorDetails,omitempty"`
	// 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 `json:"inPersonSigners,omitempty"`
	// 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 `json:"intermediaries,omitempty"`
	// The list of recipient event statuses that will trigger Connect to send updates to the url. It can be a two-part list with:
	//
	// * recipientEventStatusCode - The recipient status, this can be Sent, Delivered, Completed, Declined, AuthenticationFailed, and AutoResponded.
	// * includeDocuments - When set to **true**, the envelope time zone information is included in the message.
	RecipientCount string `json:"recipientCount,omitempty"`
	// Specifies one or more electronic seals to apply on documents. For more information on Electronic Seals , see https://support.docusign.com/en/guides/ndse-user-guide-apply-electronic-seals
	Seals []SealSign `json:"seals,omitempty"`
	// A list of signers on the envelope.
	Signers []Signer `json:"signers,omitempty"`
	// A list of signers who act as witnesses on the envelope.
	Witnesses []Witness `json:"witnesses,omitempty"`
}

type TemplateRole

type TemplateRole struct {
	// If a value is provided, the recipient must enter the value as the access code to view and sign the envelope.
	//
	// Maximum Length: 50 characters and it must conform to the account's access code format setting.
	//
	// If blank, but the signer `accessCode` property is set in the envelope, then that value is used.
	//
	// If blank and the signer `accessCode` property is not set, then the access code is not required.
	AccessCode string `json:"accessCode,omitempty"`
	// Specifies whether the recipient is embedded or remote.
	//
	// If 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.
	//
	// Note: 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.
	//
	// Maximum length: 100 characters.
	ClientUserID string `json:"clientUserId,omitempty"`
	// When set to **true**, this recipient is the default recipient and any tabs generated by the transformPdfFields option are mapped to this recipient.
	DefaultRecipient DSBool `json:"defaultRecipient,omitempty"`
	// Specifies the email associated with a role name.
	Email string `json:"email,omitempty"`
	// An optional complex type that sets a specific email subject and body for this recipient's notification email.
	//
	// **Note**: If you use this field to set a specific email notification for one recipient, you must also set the email notification for the other recipients. Using this field for one or more recipients negates the Envelope `Subject` and `EmailBlurb` property settings.
	EmailNotification *RecipientEmailNotification `json:"emailNotification,omitempty"`
	// Specifies a sender-provided valid URL string for redirecting an embedded recipient. When this option is used, the embedded recipient still receives an email from DocuSign, just as a remote recipient would. When the recipient clicks the document link in the email, the recipient is redirected through DocuSign to the specified URL to complete the required 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.
	//
	// If 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 launched by a partner.
	//
	// It is important to understand 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 processes for establishing the recipient's identity. In this workflow the recipient goes through the sending application before the embedded signing or viewing process is 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.
	//
	// If 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 for the recipient or envelope. The merge fields are enclosed in double brackets.
	//
	// *Example*:
	//
	// `http://senderHost/[[mergeField1]]/ beginSigningSession? [[mergeField2]]&[[mergeField3]]`
	EmbeddedRecipientStartURL string `json:"embeddedRecipientStartURL,omitempty"`
	// Specifies the full legal name of the signer in person signer template roles.
	//
	// Maximum Length: 100 characters.
	InPersonSignerName string `json:"inPersonSignerName,omitempty"`
	// Specifies the recipient's name.
	Name string `json:"name,omitempty"`
	// 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.](https://developers.docusign.com/esign-rest-api/guides/standards-based-signatures)
	RecipientSignatureProviders []RecipientSignatureProvider `json:"recipientSignatureProviders,omitempty"`
	// Optional element. Specifies the role name associated with the recipient.<br/><br/>This is required when working with template recipients.
	RoleName string `json:"roleName,omitempty"`
	// Specifies the routing order of the recipient in the envelope.
	RoutingOrder string `json:"routingOrder,omitempty"`
	// The id of the signing group of which the recipient is a member, if applicable.
	SigningGroupID string `json:"signingGroupId,omitempty"`
	// A list of `signHere` tabs, which can be used to add a visual representation for an electronic seal in a document.
	Tabs *Tabs `json:"tabs,omitempty"`
}

type TemplateSharedItem

type TemplateSharedItem struct {
	// This object describes errors that occur. It is only valid for responses and ignored in requests.
	ErrorDetails *ErrorDetails `json:"errorDetails,omitempty"`
	// Information about the user who owns the template.
	Owner *UserInfo `json:"owner,omitempty"`
	// The user's encrypted password hash.
	Password string `json:"password,omitempty"`
	// How the template is shared. One of:
	//
	// - `not_shared`
	// - `shared_to`
	// - `shared_from`
	// - `shared_to_and_from`
	//
	Shared DSBool `json:"shared,omitempty"`
	// List of groups that share the template.
	SharedGroups []MemberGroupSharedItem `json:"sharedGroups,omitempty"`
	// List of users that share the template.
	SharedUsers []UserSharedItem `json:"sharedUsers,omitempty"`
	// The unique identifier of the template. If this is not provided, DocuSign will generate a value.
	TemplateID string `json:"templateId,omitempty"`
	// The name of the shared template.
	TemplateName string `json:"templateName,omitempty"`
}

TemplateSharedItem information about shared templates.

type TemplateSummary

type TemplateSummary struct {
	// Reserved for DocuSign.
	Applied string `json:"applied,omitempty"`
	// Specifies the document ID number that the tab is placed on. This must refer to an existing document's id attribute.
	DocumentID string `json:"documentId,omitempty"`
	// The name of the document.
	DocumentName string `json:"documentName,omitempty"`
	// This object describes errors that occur. It is only valid for responses and ignored in requests.
	ErrorDetails *ErrorDetails `json:"errorDetails,omitempty"`
	// The name of the template.
	Name string `json:"name,omitempty"`
	// The unique identifier of the template. If this is not provided, DocuSign will generate a value.
	TemplateID string `json:"templateId,omitempty"`
	//
	TemplateMatch *TemplateMatch `json:"templateMatch,omitempty"`
	// URI containing the user ID.
	URI string `json:"uri,omitempty"`
}

TemplateSummary summary of a template request.

type TemplateTabs

type TemplateTabs struct {
	// A list of
	// [Approve tabs][approve].
	//
	// An Approve tab enables
	// the recipient to approve documents without
	// placing a signature or initials on the document. If the
	// recipient clicks the tab during the signing process, the
	// recipient is considered to have signed the document. No
	// information is shown on the document of the approval, but it
	// is recorded as a signature in the envelope history.
	// The value of an approve tab can't be set.
	//
	// [approve]:		      https://developers.docusign.com/esign-rest-api/reference/Envelopes/EnvelopeRecipientTabs/create/#/definitions/approve
	//
	ApproveTabs []Approve `json:"approveTabs,omitempty"`
	// A list of
	// [Checkbox tabs][checkbox].
	//
	//
	// A Checkbox tab enables the recipient to select a yes/no (on/off) option. This value can be set.
	//
	//
	// [checkbox]:  https://developers.docusign.com/esign-rest-api/reference/Envelopes/EnvelopeRecipientTabs/create/#/definitions/checkbox
	//
	CheckboxTabs []Checkbox `json:"checkboxTabs,omitempty"`
	// An array of tabs that represents a collection of comments in a comment thread. For example, if a recipient has questions about the content of a document, they can add a comment to the document and control who else can see the comment. This value can't be set.
	CommentThreadTabs []CommentThread `json:"commentThreadTabs,omitempty"`
	// A list of
	// [Company tabs][company].
	//
	//
	// A Company tab displays a field for the name of the recipient's company. This value can't be set.
	//
	//
	//
	// [company]: https://developers.docusign.com/esign-rest-api/reference/EnvelopeRecipientTabs/create/#/definitions/company
	//
	CompanyTabs []Company `json:"companyTabs,omitempty"`
	// A list of
	// [Date Signed tabs][dateSigned].
	//
	//
	// A Date Signed tab displays the date that the recipient signed the document. This value can't be set.
	//
	// [dateSigned]: https://developers.docusign.com/esign-rest-api/reference/Envelopes/EnvelopeRecipientTabs/create/#/definitions/dateSigned
	//
	DateSignedTabs []DateSigned `json:"dateSignedTabs,omitempty"`
	// A list of
	// [Date tabs][date].
	//
	// A Date tab enables the recipient to enter a date. This value can't be set. The tooltip for this tab recommends the date format MM/DD/YYYY, but this format is not enforced. The system retains the format that the recipient enters.
	//
	// **Note**: If you need to enforce a specific date format, we recommend that you use a Text tab with a validation pattern and validation message.
	//
	//
	// [date]: https://developers.docusign.com/esign-rest-api/reference/Envelopes/EnvelopeRecipientTabs/create/#/definitions/date
	//
	DateTabs []Date `json:"dateTabs,omitempty"`
	// A list of
	// [Decline tabs][decline].
	//
	// A Decline tab enables the recipient to decline the envelope. If the recipient clicks the tab during the signing process, the envelope is voided. The value of this tab can't be set.
	//
	//
	// [decline]: https://developers.docusign.com/esign-rest-api/reference/Envelopes/EnvelopeRecipientTabs/create/#/definitions/decline
	//
	DeclineTabs []Decline `json:"declineTabs,omitempty"`
	// A list of
	// [Email Address tabs][emailAddress].
	//
	// An Email Address tab displays the recipient's email as entered in the recipient information. This value can't be set.
	//
	//
	// [emailAddress]: https://developers.docusign.com/esign-rest-api/reference/Envelopes/EnvelopeRecipientTabs/create/#/definitions/emailAddress
	//
	EmailAddressTabs []EmailAddress `json:"emailAddressTabs,omitempty"`
	// A list of
	// [Email tabs][email].
	//
	// An Email tab enables the recipient to enter an email address.
	// This is a one-line field that checks that a valid email
	// address is entered. It uses the same parameters as a Text
	// tab, with the validation message and pattern set for email
	// information. This value can be set.
	//
	// When getting information that includes
	// this tab type, the original value of the tab when the
	// associated envelope was sent is included in the response.
	//
	// [email]: https://developers.docusign.com/esign-rest-api/reference/Envelopes/EnvelopeRecipientTabs/create/#/definitions/email
	//
	EmailTabs []Email `json:"emailTabs,omitempty"`
	// A list of
	// [Envelope ID tabs][envelopeId].
	//
	// An Envelope ID tab  displays the envelope ID. Recipients cannot enter or change the information in this tab. This value can't be set.
	//
	//
	// [envelopeId]: https://developers.docusign.com/esign-rest-api/reference/EnvelopeRecipientTabs/create/#/definitions/envelopeId
	//
	EnvelopeIDTabs []EnvelopeID `json:"envelopeIdTabs,omitempty"`
	// A list of
	// [First Name tabs][firstName].
	//
	// A First Name tab displays the recipient's first name. The system automatically populates this field by splitting the name in the recipient information on spaces. This value can't be set.
	//
	//
	// [firstName]: https://developers.docusign.com/esign-rest-api/reference/EnvelopeRecipientTabs/create/#/definitions/firstName
	//
	FirstNameTabs []FirstName `json:"firstNameTabs,omitempty"`
	// A list of [Formula tabs][formulaTab].
	//
	// The value of a Formula tab is calculated from the values of other number or date tabs in the document. When the recipient completes the underlying fields, the Formula tab calculates and displays the result. This value can be set.
	//
	// The `formula` property of the tab contains the references to the underlying tabs. To learn more about formulas, see [Calculated Fields][calculatedfields].
	//
	// If a Formula tab contains a `paymentDetails` property, the tab is considered a payment item. To learn more about payments, see [Requesting Payments Along with Signatures][paymentguide].
	//
	// [calculatedfields]: https://support.docusign.com/en/guides/ndse-user-guide-calculated-fields
	// [paymentguide]:     https://support.docusign.com/en/guides/requesting-payments-along-with-signatures
	// [formulaTab]:	    	https://developers.docusign.com/esign-rest-api/reference/Envelopes/EnvelopeRecipientTabs/create/#/definitions/formulaTab
	//
	FormulaTabs []FormulaTab `json:"formulaTabs,omitempty"`
	// A list of
	// [Full Name tabs][fullName].
	//
	// A Full Name tab displays the recipient's full name. This value can't be set.
	//
	//
	// [fullName]: https://developers.docusign.com/esign-rest-api/reference/Envelopes/EnvelopeRecipientTabs/create/#/definitions/fullName
	//
	FullNameTabs []FullName `json:"fullNameTabs,omitempty"`
	// A list of
	// [Initial Here tabs][initialHere].
	//
	// This type of tab enables the recipient to initial the document. May be optional. This value can't be set.
	//
	// [initialHere]: https://developers.docusign.com/esign-rest-api/reference/Envelopes/EnvelopeRecipientTabs/create/#/definitions/initialHere
	//
	InitialHereTabs []InitialHere `json:"initialHereTabs,omitempty"`
	// A list of
	// [Last Name tabs][lastName].
	//
	// A Last Name tab displays the recipient's last name. The system automatically populates this field by splitting the name in the recipient information on spaces. This value can't be set.
	//
	//
	// [lastName]: https://developers.docusign.com/esign-rest-api/reference/Envelopes/EnvelopeRecipientTabs/create/#/definitions/lastName
	//
	LastNameTabs []LastName `json:"lastNameTabs,omitempty"`
	// A list of [List tabs][list].
	//
	// A List tab enables the recipient to choose from a list of options. You specify the options in the `listItems` property. This value can't be set.
	//
	//
	//
	// [list]: https://developers.docusign.com/esign-rest-api/reference/EnvelopeRecipientTabs/create/#/definitions/list
	//
	ListTabs []List `json:"listTabs,omitempty"`
	// A list of  [Notarize tabs][notarize].
	//
	// A Notarize tab alerts notary recipients that they must take action on the page. This value can be set.
	//
	// **Note**: Only one notarize tab can appear on a page.
	//
	// [notarize]: https://developers.docusign.com/esign-rest-api/reference/Envelopes/EnvelopeRecipientTabs/create/#/definitions/notarize
	//
	NotarizeTabs []Notarize `json:"notarizeTabs,omitempty"`
	// A list of
	// [Note tabs][note].
	//
	// A Note tab displays additional information to the recipient in the form of a note. This value can be set.
	//
	// [note]: https://developers.docusign.com/esign-rest-api/reference/Envelopes/EnvelopeRecipientTabs/create/#/definitions/note
	//
	NoteTabs []Note `json:"noteTabs,omitempty"`
	// A list of
	// [Number tabs][number].
	//
	// A Number tab enables the recipient to enter numbers and decimal points (.). This value can be set.
	//
	//
	//
	// [number]: https://developers.docusign.com/esign-rest-api/reference/Envelopes/EnvelopeRecipientTabs/create/#/definitions/number
	//
	NumberTabs []Number `json:"numberTabs,omitempty"`
	// This type of tab enables the recipient to strike through document text. This value can't be set.
	PolyLineOverlayTabs []PolyLineOverlay `json:"polyLineOverlayTabs,omitempty"`
	// A list of [Radio Group tabs][radioGroup].
	//
	// A Radio Group tab places a group of radio buttons on a document. The `radios` property is used to add and place the radio
	// buttons associated with the group. Only one radio button can be selected in a group. This value can be set.
	//
	//
	// [radioGroup]: https://developers.docusign.com/esign-rest-api/reference/Envelopes/EnvelopeRecipientTabs/create/#/definitions/radioGroup
	//
	RadioGroupTabs []RadioGroup `json:"radioGroupTabs,omitempty"`
	// A list of
	// [Sign Here tabs][signHere].
	//
	// This type of tab enables the recipient to sign a document. May be optional. This value can't be set.
	//
	// [signHere]: https://developers.docusign.com/esign-rest-api/reference/Envelopes/EnvelopeRecipientTabs/create/#/definitions/signHere
	//
	SignHereTabs []SignHere `json:"signHereTabs,omitempty"`
	// A list of
	// [Signer Attachment tabs][signerAttachment].
	//
	// This type of tab enables the recipient to attach supporting documents to an envelope. This value can't be set.
	//
	//
	// [signerAttachment]: https://developers.docusign.com/esign-rest-api/reference/Envelopes/EnvelopeRecipientTabs/create/#/definitions/signerAttachment
	//
	SignerAttachmentTabs []SignerAttachment `json:"signerAttachmentTabs,omitempty"`
	// A list of [Smart Section](https://www.docusign.com/blog/dsdev-deep-dive-responsive-smart-sections/) tabs.
	//
	// Smart Section tabs enhance responsive signing on mobile devices by enabling collapsible sections, page breaks, custom formatting options, and other advanced functionality.
	//
	// **Note**: Smart Sections are a premium feature. Responsive signing must also be enabled for your account.
	SmartSectionTabs []SmartSection `json:"smartSectionTabs,omitempty"`
	// A list of
	// [SSN tabs][ssn].
	//
	// An SSN tab contains a one-line field that enables the recipient to enter a Social Security Number (SSN) with or without
	// dashes. It uses the same parameters as a Text tab, with the validation message and pattern set for SSN information. This value can be set.
	//
	//
	// [ssn]: https://developers.docusign.com/esign-rest-api/reference/Envelopes/EnvelopeRecipientTabs/create/#/definitions/ssn
	//
	SSNTabs []SSN `json:"ssnTabs,omitempty"`
	// An array of `tabGroup` items that contain information about tab groups. To assign a tab to a `tabGroup`, you assign the `tabGroupLabel` to the `Tab.TabGroupLabels` array.
	TabGroups []TabGroup `json:"tabGroups,omitempty"`
	// A list of
	// [Text tabs][text].
	//
	// A text tab enables the recipient to enter free text. This value can be set.
	//
	// [text]: https://developers.docusign.com/esign-rest-api/reference/EnvelopeRecipientTabs/create/#/definitions/text
	//
	TextTabs []Text `json:"textTabs,omitempty"`
	// A list of
	// [Title tabs][title].
	//
	// A Title tab displays the recipient's title.  This value can't be set.
	//
	//
	// [title]: https://developers.docusign.com/esign-rest-api/reference/Envelopes/EnvelopeRecipientTabs/create/#/definitions/title
	//
	TitleTabs []Title `json:"titleTabs,omitempty"`
	// A list of
	// [View tabs][view].
	//
	// A View tab is used with an Approve tab to handle supplemental documents.  This value can be set.
	//
	// [view]: https://developers.docusign.com/esign-rest-api/reference/Envelopes/EnvelopeRecipientTabs/create/#/definitions/view
	//
	ViewTabs []View `json:"viewTabs,omitempty"`
	// A list of
	// [Zip tabs][zip].
	//
	// A Zip tab enables the recipient to enter a ZIP code. The ZIP code can be five digits or nine digits ( in ZIP+4 format), and can be entered with or without dashes. It uses the same parameters as a Text tab, with the validation message and pattern set for ZIP code information.  This value can be set.
	//
	//
	// [zip]: https://developers.docusign.com/esign-rest-api/reference/Envelopes/EnvelopeRecipientTabs/create/#/definitions/zip
	//
	ZipTabs []Zip `json:"zipTabs,omitempty"`
}

type TemplateUpdateSummary

type TemplateUpdateSummary struct {
	//
	BulkEnvelopeStatus *BulkEnvelopeStatus `json:"bulkEnvelopeStatus,omitempty"`
	// The envelope ID of the envelope status that failed to post.
	EnvelopeID string `json:"envelopeId,omitempty"`
	// This object describes errors that occur. It is only valid for responses and ignored in requests.
	ErrorDetails *ErrorDetails `json:"errorDetails,omitempty"`
	//
	ListCustomFieldUpdateResults []ListCustomField `json:"listCustomFieldUpdateResults,omitempty"`
	// Provides lock information about an envelope that a user has locked.
	LockInformation *LockInformation `json:"lockInformation,omitempty"`
	// Shows the current purge state for the envelope. The possible values are:
	//
	// * `unpurged`: There has been no successful request to purge documents.
	// * `documents_queued`: The envelope documents have been added to the purge queue, but have not been purged.
	// * `documents_dequeued`: The envelope documents have been taken out of the purge queue.
	// * `documents_and_metadata_queued`: The envelope documents and metadata have been added to the purge queue, but have not yet been purged.
	// * `documents_purged`: The envelope documents have been successfully purged.
	// * `documents_and_metadata_purged`: The envelope documents and metadata have been successfully purged.
	//
	//
	PurgeState string `json:"purgeState,omitempty"`
	// An array of `recipientUpdateResults` objects that contain details about the recipients.
	RecipientUpdateResults []RecipientUpdateResponse `json:"recipientUpdateResults,omitempty"`
	//
	TabUpdateResults *Tabs `json:"tabUpdateResults,omitempty"`
	//
	TextCustomFieldUpdateResults []TextCustomField `json:"textCustomFieldUpdateResults,omitempty"`
}

type Text

type Text struct {
	TabBase
	TabGuidedForm
	TabPosition
	TabStyle
	TabValue
	// 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.
	//
	// When an envelope is completed the information is available to the sender through the Form Data link in the DocuSign Console.
	//
	// This setting applies only to text boxes and does not affect list boxes, radio buttons, or check boxes.
	ConcealValueOnDocument DSBool `json:"concealValueOnDocument,omitempty"`
	// Metadata that indicates whether the `concealValueOnDocument` property is editable.
	ConcealValueOnDocumentMetadata *PropertyMetadata `json:"concealValueOnDocumentMetadata,omitempty"`
	// 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 DSBool `json:"disableAutoSize,omitempty"`
	// Metadata that indicates whether the `disableAutoSize` property is editable.
	DisableAutoSizeMetadata *PropertyMetadata `json:"disableAutoSizeMetadata,omitempty"`
	// Contains the formula
	// for calculating the value of
	// this tab.
	//
	// Use a tab's `tabLabel`,
	// enclosed in brackets,
	// to refer to it.
	//
	// For example,
	// you want to present the total cost
	// of two items, tax included.
	//
	// The cost of each item is stored
	// in number tabs labeled Item1 and Item2.
	// The tax rate is in a number tab
	// labeled TaxRate.
	//
	// The formula string for this property
	// would be:
	// `([Item1] + [Item2]) * (1 + [TaxRate])`
	//
	// See [Calculated Fields][calculatedfields]
	// in the DocuSign Support Center
	// to learn more about formulas.
	//
	// Maximum Length: 2000 characters
	//
	// [calculatedfields]: https://support.docusign.com/en/guides/ndse-user-guide-calculated-fields
	//
	Formula string `json:"formula,omitempty"`
	// Metadata indicating if the sender can edit the `formula` property.
	FormulaMetadata *PropertyMetadata `json:"formulaMetadata,omitempty"`
	// The height of the tab in pixels.
	Height string `json:"height,omitempty"`
	// Metadata that indicates whether the `height` property is editable.
	HeightMetadata *PropertyMetadata `json:"heightMetadata,omitempty"`
	// 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 DSBool `json:"isPaymentAmount,omitempty"`
	// Metadata that indicates whether the `isPaymentAmount` property is editable.
	IsPaymentAmountMetadata *PropertyMetadata `json:"isPaymentAmountMetadata,omitempty"`
	// Reserved for DocuSign.
	LocalePolicy *LocalePolicyTab `json:"localePolicy,omitempty"`
	// When set to **true**, the signer cannot change the data of the custom tab.
	Locked DSBool `json:"locked,omitempty"`
	// Metadata that indicates whether the `locked` property is editable.
	LockedMetadata *PropertyMetadata `json:"lockedMetadata,omitempty"`
	// An optional value that describes the maximum length of the property when the property is a string.
	MaxLength string `json:"maxLength,omitempty"`
	// Metadata that indicates whether the `maxLength` property is editable.
	MaxLengthMetadata *PropertyMetadata `json:"maxLengthMetadata,omitempty"`
	// The initial value of the tab when it was sent to the recipient.
	OriginalValue string `json:"originalValue,omitempty"`
	// Metadata that indicates whether the `originalValue` property is editable.
	OriginalValueMetadata *PropertyMetadata `json:"originalValueMetadata,omitempty"`
	// When set to **true** and shared is true, information must be entered in this field to complete the envelope.
	RequireAll DSBool `json:"requireAll,omitempty"`
	// Metadata that indicates whether the `requireAll` property is editable.
	RequireAllMetadata *PropertyMetadata `json:"requireAllMetadata,omitempty"`
	// Optional element for field markup. When set to **true**, the signer is required to initial when they modify a shared field.
	RequireInitialOnSharedChange DSBool `json:"requireInitialOnSharedChange,omitempty"`
	// Metadata that indicates whether the `requireInitialOnSharedChange` property is editable.
	RequireInitialOnSharedChangeMetadata *PropertyMetadata `json:"requireInitialOnSharedChangeMetadata,omitempty"`
	// When set to **true**, the signer is required to fill out this tab.
	Required TabRequired `json:"required,omitempty"`
	// Metadata that indicates whether the `required` property is editable.
	RequiredMetadata *PropertyMetadata `json:"requiredMetadata,omitempty"`
	// When set to **true**, the sender must populate the tab before an envelope can be sent using the template.
	//
	// This value tab can only be changed by modifying (PUT) the template.
	//
	// Tabs with a `senderRequired` value of true cannot be deleted from an envelope.
	SenderRequired DSBool `json:"senderRequired,omitempty"`
	// Metadata that indicates whether the `senderRequired` property is editable.
	SenderRequiredMetadata *PropertyMetadata `json:"senderRequiredMetadata,omitempty"`
	// When set to **true**, this custom tab is shared.
	Shared DSBool `json:"shared,omitempty"`
	// Metadata that indicates whether the `shared` property is editable.
	SharedMetadata *PropertyMetadata `json:"sharedMetadata,omitempty"`
	// Metadata that indicates whether the `toolTip` property is editable.
	ToolTipMetadata *PropertyMetadata `json:"toolTipMetadata,omitempty"`
	// The text of a tooltip that appears when a user hovers over a form field or tab.
	Tooltip string `json:"tooltip,omitempty"`
	// The message displayed if the custom tab fails input validation (either custom of embedded).
	ValidationMessage string `json:"validationMessage,omitempty"`
	// Metadata that indicates whether the `validationMessage` property is editable.
	ValidationMessageMetadata *PropertyMetadata `json:"validationMessageMetadata,omitempty"`
	// A regular expression used to validate input for the tab.
	ValidationPattern string `json:"validationPattern,omitempty"`
	// Metadata that indicates whether the `validationPattern` property is editable.
	ValidationPatternMetadata *PropertyMetadata `json:"validationPatternMetadata,omitempty"`
	// The width of the tab in pixels.
	Width string `json:"width,omitempty"`
	// Metadata that indicates whether the `width` property is editable.
	WidthMetadata *PropertyMetadata `json:"widthMetadata,omitempty"`
}

Text is a tab that allows the recipient to enter any type of text.

type TextCustomField

type TextCustomField struct {
	// If merge fields are being used, specifies the type of the merge field. The only  supported value is **salesforce**.
	ConfigurationType string `json:"configurationType,omitempty"`
	// This object describes errors that occur. It is only valid for responses and ignored in requests.
	ErrorDetails *ErrorDetails `json:"errorDetails,omitempty"`
	// An ID used to specify a custom field.
	FieldID string `json:"fieldId,omitempty"`
	// The name of the custom field.
	Name string `json:"name,omitempty"`
	// When set to **true**, the signer is required to fill out this tab.
	Required TabRequired `json:"required,omitempty"`
	// A boolean indicating if the value should be displayed.  If this value is set to **true**, the custom field is displayed at the top of the certificate of completion. If this value is left blank/ or set to **false**, then it does not appear in the certificate of completion.
	Show DSBool `json:"show,omitempty"`
	// The value of the custom field.
	Value string `json:"value,omitempty"`
}

type TimeStampField

type TimeStampField struct {
	//
	DocumentSecurityStore *DocumentSecurityStore `json:"documentSecurityStore,omitempty"`
	//
	MaxTimeStampSignatureLength string `json:"maxTimeStampSignatureLength,omitempty"`
	//
	TimeStampFieldName string `json:"timeStampFieldName,omitempty"`
}

type Title

type Title struct {
	TabBase
	TabGuidedForm
	TabPosition
	TabStyle
	TabValue
	// 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.
	//
	// When an envelope is completed the information is available to the sender through the Form Data link in the DocuSign Console.
	//
	// This setting applies only to text boxes and does not affect list boxes, radio buttons, or check boxes.
	ConcealValueOnDocument DSBool `json:"concealValueOnDocument,omitempty"`
	// Metadata that indicates whether the `concealValueOnDocument` property is editable.
	ConcealValueOnDocumentMetadata *PropertyMetadata `json:"concealValueOnDocumentMetadata,omitempty"`
	// 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 DSBool `json:"disableAutoSize,omitempty"`
	// Metadata that indicates whether the `disableAutoSize` property is editable.
	DisableAutoSizeMetadata *PropertyMetadata `json:"disableAutoSizeMetadata,omitempty"`
	// The height of the tab in pixels.
	Height string `json:"height,omitempty"`
	// Metadata that indicates whether the `height` property is editable.
	HeightMetadata *PropertyMetadata `json:"heightMetadata,omitempty"`
	// Reserved for DocuSign.
	LocalePolicy *LocalePolicyTab `json:"localePolicy,omitempty"`
	// When set to **true**, the signer cannot change the data of the custom tab.
	Locked DSBool `json:"locked,omitempty"`
	// Metadata that indicates whether the `locked` property is editable.
	LockedMetadata *PropertyMetadata `json:"lockedMetadata,omitempty"`
	// An optional value that describes the maximum length of the property when the property is a string.
	MaxLength string `json:"maxLength,omitempty"`
	// Metadata that indicates whether the `maxLength` property is editable.
	MaxLengthMetadata *PropertyMetadata `json:"maxLengthMetadata,omitempty"`
	// The initial value of the tab when it was sent to the recipient.
	OriginalValue string `json:"originalValue,omitempty"`
	// Metadata that indicates whether the `originalValue` property is editable.
	OriginalValueMetadata *PropertyMetadata `json:"originalValueMetadata,omitempty"`
	// When set to **true**, the signer is required to fill out this tab.
	Required TabRequired `json:"required,omitempty"`
	// Metadata that indicates whether the `required` property is editable.
	RequiredMetadata *PropertyMetadata `json:"requiredMetadata,omitempty"`
	// Metadata that indicates whether the `toolTip` property is editable.
	ToolTipMetadata *PropertyMetadata `json:"toolTipMetadata,omitempty"`
	// The text of a tooltip that appears when a user hovers over a form field or tab.
	Tooltip string `json:"tooltip,omitempty"`
	// The width of the tab in pixels.
	Width string `json:"width,omitempty"`
	// Metadata that indicates whether the `width` property is editable.
	WidthMetadata *PropertyMetadata `json:"widthMetadata,omitempty"`
}

Title is a tab that displays the recipient's title.

type TspHealthCheckRequest

type TspHealthCheckRequest struct {
	//
	AppVersion string `json:"appVersion,omitempty"`
	// A sender-defined description of the line item.
	//
	Description string `json:"description,omitempty"`
	// Server error for the Connect post failure.
	Error string `json:"error,omitempty"`
	// The status of the item.
	Status string `json:"status,omitempty"`
	//
	StatusDescription []TspHealthCheckStatusDescription `json:"statusDescription,omitempty"`
}

type TspHealthCheckStatusDescription

type TspHealthCheckStatusDescription struct {
	// A sender-defined description of the line item.
	//
	Description string `json:"description,omitempty"`
	// Server error for the Connect post failure.
	Error string `json:"error,omitempty"`
	//
	Hostname string `json:"hostname,omitempty"`
	//
	ResponseSeconds string `json:"responseSeconds,omitempty"`
	// The status of the item.
	Status string `json:"status,omitempty"`
	// Type of user:
	// - `type_owner`
	// - `type_participant`
	Type string `json:"type,omitempty"`
}

type UpdateTransactionRequest

type UpdateTransactionRequest struct {
	//
	Code string `json:"code,omitempty"`
	//
	Message string `json:"message,omitempty"`
	// The state or province associated with the address.
	State string `json:"state,omitempty"`
}

type UpdateTransactionResponse

type UpdateTransactionResponse struct {
	//
	RedirectionURL string `json:"redirectionUrl,omitempty"`
}

type UsageHistory

type UsageHistory struct {
	// The date and time the user last sent an envelope.
	LastSentDateTime *time.Time `json:"lastSentDateTime,omitempty"`
	// The date and time the user last signed an envelope.
	LastSignedDateTime *time.Time `json:"lastSignedDateTime,omitempty"`
	// The number of envelopes the user has sent.
	SentCount string `json:"sentCount,omitempty"`
	// The number of envelopes the user has signed.
	SignedCount string `json:"signedCount,omitempty"`
}

UsageHistory is a complex element consisting of:

* lastSentDateTime - the date and time the user last sent an envelope. * lastSignedDateTime - the date and time the user last signed an envelope. * sentCount - the number of envelopes the user has sent. * signedCount - the number of envelopes the user has signed.

type User

type User struct {
	//
	CellPhoneNumber string `json:"cellPhoneNumber,omitempty"`
	// The three-letter code for the user's country.
	CountryCode string `json:"countryCode,omitempty"`
	//
	Credentials []Credential `json:"credentials,omitempty"`
	//
	DisplayName string `json:"displayName,omitempty"`
	// Filters returned user records by the specified email address.
	Email string `json:"email,omitempty"`
	//
	ExternalClaims []ExternalClaim `json:"externalClaims,omitempty"`
}

type UserAccountManagementGranularInformation

type UserAccountManagementGranularInformation struct {
	// **True** if the user can manage account security settings.
	CanManageAccountSecuritySettings DSBool `json:"canManageAccountSecuritySettings,omitempty"`
	//
	CanManageAccountSecuritySettingsMetadata *SettingsMetadata `json:"canManageAccountSecuritySettingsMetadata,omitempty"`
	// **True** if the user can manage account settings.
	CanManageAccountSettings DSBool `json:"canManageAccountSettings,omitempty"`
	//
	CanManageAccountSettingsMetadata *SettingsMetadata `json:"canManageAccountSettingsMetadata,omitempty"`
	// **True** if the user can manage administrators.
	CanManageAdmins DSBool `json:"canManageAdmins,omitempty"`
	// Metadata that indicates whether the `canManageAdmins` property is editable.
	//
	CanManageAdminsMetadata *SettingsMetadata `json:"canManageAdminsMetadata,omitempty"`
	// **True** if the user can manage reporting.
	CanManageReporting DSBool `json:"canManageReporting,omitempty"`
	//
	CanManageReportingMetadata *SettingsMetadata `json:"canManageReportingMetadata,omitempty"`
	// **True** if the user can manage sharing.
	CanManageSharing DSBool `json:"canManageSharing,omitempty"`
	// Metadata that indicates whether the `canManageSharing` property is editable.
	//
	CanManageSharingMetadata *SettingsMetadata `json:"canManageSharingMetadata,omitempty"`
	// **True** if the user can manage signing groups.
	CanManageSigningGroups DSBool `json:"canManageSigningGroups,omitempty"`
	//
	CanManageSigningGroupsMetadata *SettingsMetadata `json:"canManageSigningGroupsMetadata,omitempty"`
	// **True** if the user can manage users.
	CanManageUsers DSBool `json:"canManageUsers,omitempty"`
	// Metadata that indicates whether the `canManageUsers` property is editable.
	//
	CanManageUsersMetadata *SettingsMetadata `json:"canManageUsersMetadata,omitempty"`
}

UserAccountManagementGranularInformation describes which account management capabilities a user has.

type UserInfo

type UserInfo struct {
	// The external account number (int) or account ID GUID.
	AccountID string `json:"accountId,omitempty"`
	// The name of the account associated with the current workspace user.
	AccountName string `json:"accountName,omitempty"`
	// Access code provided to the user to activate the account.
	ActivationAccessCode string `json:"activationAccessCode,omitempty"`
	// Filters returned user records by the specified email address.
	Email string `json:"email,omitempty"`
	// This object describes errors that occur. It is only valid for responses and ignored in requests.
	ErrorDetails *ErrorDetails `json:"errorDetails,omitempty"`
	// Boolean value that indicates whether the user is currently logged in or not.
	LoginStatus string `json:"loginStatus,omitempty"`
	// The user's membership ID.
	MembershipID string `json:"membershipId,omitempty"`
	// When set to **true**, specifies that an activation email be sent to the user.
	SendActivationEmail string `json:"sendActivationEmail,omitempty"`
	// URI containing the user ID.
	URI string `json:"uri,omitempty"`
	// The ID of the user to access. Generally this is the ID of the current authenticated user, but if the authenticated user is an Administrator on the account, `userId` can represent another user whom the Administrator is accessing.
	//
	UserID string `json:"userId,omitempty"`
	// The name of the user.
	UserName string `json:"userName,omitempty"`
	// Status of the user's account. One of:
	//
	// - `ActivationRequired`
	// - `ActivationSent`
	// - `Active`
	// - `Closed`
	// - `Disabled`
	//
	UserStatus string `json:"userStatus,omitempty"`
	// The type of user, for example `CompanyUser`.
	UserType string `json:"userType,omitempty"`
}

type UserInfoList

type UserInfoList struct {
	// An array of `userInfo` objects containing information about the users in the group.
	Users []UserInfo `json:"users,omitempty"`
}

type UserInfoResponse

type UserInfoResponse struct {
	// The envelope's GUID.
	//
	// Example: `93be49ab-afa0-4adf-933c-f752070d71ec`
	EnvelopeID string `json:"envelopeId,omitempty"`
	// Specifies the language for the Certificate of Completion in the response. The supported languages are: Chinese Simplified (zh_CN), Chinese Traditional (zh_TW), Dutch (nl), English US (en), French (fr), German (de), Italian (it), Japanese (ja), Korean (ko), Portuguese (pt), Portuguese (Brazil) (pt_BR), Russian (ru), Spanish (es).
	Language string `json:"language,omitempty"`
	// Set of information related to the electronic seal used by the Trust Service Provider (TSP).
	Seal *Seal `json:"seal,omitempty"`
	// Information about the sender of the envelope.
	Sender *Sender `json:"sender,omitempty"`
	//
	User *User `json:"user,omitempty"`
}

type UserInformation

type UserInformation struct {
	// Access code provided to the user to activate the account.
	ActivationAccessCode string `json:"activationAccessCode,omitempty"`
	// The name of the user's company.
	Company string `json:"company,omitempty"`
	// Object representing the user's custom Connect configuration.
	ConnectConfigurations []ConnectUserObject `json:"connectConfigurations,omitempty"`
	// The three-letter code for the user's country.
	CountryCode string `json:"countryCode,omitempty"`
	// The date and time the item was created.
	CreatedDateTime *time.Time `json:"createdDateTime,omitempty"`
	// The name/value pair information for the user custom setting.
	CustomSettings []NameValue `json:"customSettings,omitempty"`
	// The default account ID associated with the user.
	DefaultAccountID string `json:"defaultAccountId,omitempty"`
	// Filters returned user records by the specified email address.
	Email string `json:"email,omitempty"`
	// Boolean value that specifies whether the user is enabled for updates from DocuSign Connect.
	EnableConnectForUser string `json:"enableConnectForUser,omitempty"`
	// This object describes errors that occur. It is only valid for responses and ignored in requests.
	ErrorDetails *ErrorDetails `json:"errorDetails,omitempty"`
	// The user's first name.
	// Maximum Length: 50 characters.
	FirstName string `json:"firstName,omitempty"`
	// A complex element containing up to four Question/Answer pairs for forgotten password information.
	ForgottenPasswordInfo *ForgottenPasswordInformation `json:"forgottenPasswordInfo,omitempty"`
	// A list of the group information for groups to add the user to.
	// Use [UserGroups::listGroups](https://developers.docusign.com/esign-rest-api/reference/UserGroups/Groups/list) to get information about groups.
	//
	// When setting a user's group, only the `groupId` is required.
	//
	GroupList []Group `json:"groupList,omitempty"`
	// Specifies the email for the signing host. It is a Required element for In Person Signers recipient Type.
	// Maximum Length: 100 characters.
	HomeAddress *AddressInformation `json:"homeAddress,omitempty"`
	// Contains the URI for an endpoint that you can use to retrieve the initials image.
	InitialsImageURI string `json:"initialsImageUri,omitempty"`
	// Determines if the feature set is actively set as part of the plan.
	IsAdmin string `json:"isAdmin,omitempty"`
	//
	IsNAREnabled string `json:"isNAREnabled,omitempty"`
	// The user's job title.
	JobTitle string `json:"jobTitle,omitempty"`
	// The date and time when the user last logged in to the system.
	LastLogin string `json:"lastLogin,omitempty"`
	//
	LastName string `json:"lastName,omitempty"`
	// Boolean value that indicates whether the user is currently logged in or not.
	LoginStatus string `json:"loginStatus,omitempty"`
	// The user's middle name.
	// Limit: 50 characters.
	MiddleName string `json:"middleName,omitempty"`
	// The user's encrypted password hash.
	Password string `json:"password,omitempty"`
	// If password expiration is enabled, the date-time when the user's password expires.
	PasswordExpiration string `json:"passwordExpiration,omitempty"`
	// The ID of the permission profile. Possible values include:
	//
	// - `2301416` (for the `DocuSign Viewer` profile)
	// - `2301415` (for the `DocuSign Sender` profile)
	// - `2301414` (for the `Account Administrator` profile)
	//
	// In addition, any custom permission profiles associated with your account will have an automatically generated `permissionProfileId`.
	PermissionProfileID string `json:"permissionProfileId,omitempty"`
	// The name of the account permission profile.
	//
	// Example: `Account Administrator`
	PermissionProfileName string `json:"permissionProfileName,omitempty"`
	// The URL for retrieving the user's profile image.
	ProfileImageURI string `json:"profileImageUri,omitempty"`
	// When set to **true**, specifies that an activation email be sent to the user.
	SendActivationEmail string `json:"sendActivationEmail,omitempty"`
	// When set to **true**, specifies that an additional activation email be sent if user's log on fails before the account is activated.
	SendActivationOnInvalidLogin DSBool `json:"sendActivationOnInvalidLogin,omitempty"`
	// An endpoint URI that you can use to retrieve the user's signature image.
	SignatureImageURI string `json:"signatureImageUri,omitempty"`
	//
	Subscribe string `json:"subscribe,omitempty"`
	// The suffix for the user's name, such as Jr, IV, PhD, etc.
	//
	// Limit: 50 characters.
	SuffixName string `json:"suffixName,omitempty"`
	// The title of the user.
	Title string `json:"title,omitempty"`
	// URI containing the user ID.
	URI string `json:"uri,omitempty"`
	// The date and time that the user was added to the account.
	UserAddedToAccountDateTime string `json:"userAddedToAccountDateTime,omitempty"`
	// The ID of the user to access. Generally this is the ID of the current authenticated user, but if the authenticated user is an Administrator on the account, `userId` can represent another user whom the Administrator is accessing.
	//
	UserID string `json:"userId,omitempty"`
	// The name of the user.
	UserName string `json:"userName,omitempty"`
	// The date and time that the user's profile was last modified.
	UserProfileLastModifiedDate string `json:"userProfileLastModifiedDate,omitempty"`
	// The collection of settings representing the actions a user can perform. See [userSettingsInformation](https://developers.docusign.com/esign-rest-api/reference/Users/Users/get#userSettingsInformation) for available settings.
	UserSettings *UserSettingsInformation `json:"userSettings,omitempty"`
	// Status of the user's account. One of:
	//
	// - `ActivationRequired`
	// - `ActivationSent`
	// - `Active`
	// - `Closed`
	// - `Disabled`
	//
	UserStatus string `json:"userStatus,omitempty"`
	// The type of user, for example `CompanyUser`.
	UserType string `json:"userType,omitempty"`
	//
	WorkAddress *AddressInformation `json:"workAddress,omitempty"`
}

type UserInformationList

type UserInformationList struct {
	// The last position in the result set.
	EndPosition string `json:"endPosition,omitempty"`
	// 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 `json:"nextUri,omitempty"`
	// 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 `json:"previousUri,omitempty"`
	// The number of results returned in this response. Because you can filter which entries are included in the response, this value is always less than or equal to `totalSetSize`.
	ResultSetSize string `json:"resultSetSize,omitempty"`
	// The starting position of the current result set.
	StartPosition string `json:"startPosition,omitempty"`
	// The total number of items in the search's result set. This value is always greater than or equal to the value of `resultSetSize`.
	TotalSetSize string `json:"totalSetSize,omitempty"`
	// User management information.
	Users []UserInformation `json:"users,omitempty"`
}

type UserPasswordInformation

type UserPasswordInformation struct {
	// The user's current password to be changed.
	CurrentPassword string `json:"currentPassword,omitempty"`
	// The user's email address for the associated account.
	Email string `json:"email,omitempty"`
	// A complex element containing up to four Question/Answer pairs for forgotten password information.
	ForgottenPasswordInfo *ForgottenPasswordInformation `json:"forgottenPasswordInfo,omitempty"`
	// The user's new password.
	NewPassword string `json:"newPassword,omitempty"`
}

type UserPasswordRules

type UserPasswordRules struct {
	//
	PasswordRules *AccountPasswordRules `json:"passwordRules,omitempty"`
	// The ID of the user to access. Generally this is the ID of the current authenticated user, but if the authenticated user is an Administrator on the account, `userId` can represent another user whom the Administrator is accessing.
	//
	UserID string `json:"userId,omitempty"`
}

type UserProfile

type UserProfile struct {
	// The user's address.
	Address *AddressInformation `json:"address,omitempty"`
	// Indicates the authentication methods that the user uses. These properties cannot be modified by the PUT operation.
	AuthenticationMethods []AuthenticationMethod `json:"authenticationMethods,omitempty"`
	// The name of the user's company.
	CompanyName string `json:"companyName,omitempty"`
	//  When set to **true**, the user's company and title information display on the ID card.
	DisplayOrganizationInfo DSBool `json:"displayOrganizationInfo,omitempty"`
	// When set to **true**, the user's address and phone number display on the ID card.
	DisplayPersonalInfo DSBool `json:"displayPersonalInfo,omitempty"`
	// When set to **true**, the user's ID card can be viewed from signed documents and envelope history.
	DisplayProfile DSBool `json:"displayProfile,omitempty"`
	// When set to **true**, the user's usage information displays on the ID card.
	DisplayUsageHistory DSBool `json:"displayUsageHistory,omitempty"`
	// The URL for retrieving the user's profile image.
	ProfileImageURI string `json:"profileImageUri,omitempty"`
	// The title of the user.
	Title string `json:"title,omitempty"`
	// A complex element consisting of:
	//
	// - `lastSentDateTime`: The date and time the user last sent an envelope.
	// - `lastSignedDateTime`: The date and time the user last signed an envelope.
	// - `sentCount`: The number of envelopes the user has sent.
	// - `signedCount`: The number of envelopes the user has signed.
	//
	UsageHistory *UsageHistory `json:"usageHistory,omitempty"`
	//
	UserDetails *UserInformation `json:"userDetails,omitempty"`
	// The date and time that the user's profile was last modified.
	UserProfileLastModifiedDate string `json:"userProfileLastModifiedDate,omitempty"`
}

type UserSettingsInformation

type UserSettingsInformation struct {
	// Describes which account management capabilities a user has.
	AccountManagementGranular *UserAccountManagementGranularInformation `json:"accountManagementGranular,omitempty"`
	// Reserved for DocuSign.
	AdminOnly string `json:"adminOnly,omitempty"`
	// Reserved for DocuSign.
	AdminOnlyMetadata *SettingsMetadata `json:"adminOnlyMetadata,omitempty"`
	// Boolean value that indicates whether the user can participate in envelope transfers on the account.
	AllowEnvelopeTransferTo string `json:"allowEnvelopeTransferTo,omitempty"`
	// Reserved for DocuSign.
	AllowEnvelopeTransferToMetadata *SettingsMetadata `json:"allowEnvelopeTransferToMetadata,omitempty"`
	//
	AllowEsealRecipients string `json:"allowEsealRecipients,omitempty"`
	//
	AllowEsealRecipientsMetadata *SettingsMetadata `json:"allowEsealRecipientsMetadata,omitempty"`
	//
	AllowPowerFormsAdminToAccessAllPowerFormEnvelope string `json:"allowPowerFormsAdminToAccessAllPowerFormEnvelope,omitempty"`
	//
	AllowPowerFormsAdminToAccessAllPowerFormEnvelopeMetadata *SettingsMetadata `json:"allowPowerFormsAdminToAccessAllPowerFormEnvelopeMetadata,omitempty"`
	// When true, this user can set the language used in the standard email format for a recipient when creating an envelope.
	AllowRecipientLanguageSelection string `json:"allowRecipientLanguageSelection,omitempty"`
	// Metadata for allowRecipientLanguageSelection.
	AllowRecipientLanguageSelectionMetadata *SettingsMetadata `json:"allowRecipientLanguageSelectionMetadata,omitempty"`
	// When **true**, this user can send envelopes "on behalf of" other users through the API.
	AllowSendOnBehalfOf string `json:"allowSendOnBehalfOf,omitempty"`
	// Metadata for allowSendOnBehalfOf.
	AllowSendOnBehalfOfMetadata *SettingsMetadata `json:"allowSendOnBehalfOfMetadata,omitempty"`
	// When **true**, this user can include supplemental documents.
	AllowSupplementalDocuments string `json:"allowSupplementalDocuments,omitempty"`
	// Metadata that indicates whether the `allowSupplementalDocuments` property is editable.
	AllowSupplementalDocumentsMetadata *SettingsMetadata `json:"allowSupplementalDocumentsMetadata,omitempty"`
	// Valid values are:
	//
	// - `system_default`
	// - `off`
	// - `on`
	//
	AnchorTagVersionedPlacementEnabled string `json:"anchorTagVersionedPlacementEnabled,omitempty"`
	// When **true**, indicates that this user can send envelope-specific API requests on the account.
	APIAccountWideAccess string `json:"apiAccountWideAccess,omitempty"`
	// Metadata for apiAccountWideAccess.
	APIAccountWideAccessMetadata *SettingsMetadata `json:"apiAccountWideAccessMetadata,omitempty"`
	// When **true**, this user can export authoritative copy for the account.
	APICanExportAC string `json:"apiCanExportAC,omitempty"`
	//
	APICanExportACMetadata *SettingsMetadata `json:"apiCanExportACMetadata,omitempty"`
	// When **true**, this user can use the bulk send feature for the account.
	BulkSend string `json:"bulkSend,omitempty"`
	// Metadata that indicates whether the `bulkSend` property is editable.
	//
	BulkSendMetadata *SettingsMetadata `json:"bulkSendMetadata,omitempty"`
	// Reserved for DocuSign.
	CanChargeAccount string `json:"canChargeAccount,omitempty"`
	// Reserved for DocuSign.
	CanChargeAccountMetadata *SettingsMetadata `json:"canChargeAccountMetadata,omitempty"`
	// When true, this user can edit the shared address book for the account.
	CanEditSharedAddressbook string `json:"canEditSharedAddressbook,omitempty"`
	//
	CanEditSharedAddressbookMetadata *SettingsMetadata `json:"canEditSharedAddressbookMetadata,omitempty"`
	//
	CanLockEnvelopes string `json:"canLockEnvelopes,omitempty"`
	//
	CanLockEnvelopesMetadata *SettingsMetadata `json:"canLockEnvelopesMetadata,omitempty"`
	// When **true**, this user is an administrator for the account.
	CanManageAccount string `json:"canManageAccount,omitempty"`
	//
	CanManageAccountMetadata *SettingsMetadata `json:"canManageAccountMetadata,omitempty"`
	// Reserved for DocuSign.
	CanManageDistributor string `json:"canManageDistributor,omitempty"`
	//
	CanManageDistributorMetadata *SettingsMetadata `json:"canManageDistributorMetadata,omitempty"`
	// When **true**, this user can manage templates for the account.
	CanManageTemplates string `json:"canManageTemplates,omitempty"`
	//
	CanManageTemplatesMetadata *SettingsMetadata `json:"canManageTemplatesMetadata,omitempty"`
	// When **true**, this user can send API requests on the account.
	CanSendAPIRequests string `json:"canSendAPIRequests,omitempty"`
	//
	CanSendAPIRequestsMetadata *SettingsMetadata `json:"canSendAPIRequestsMetadata,omitempty"`
	// When **true**, this user can send envelopes on the account.
	CanSendEnvelope string `json:"canSendEnvelope,omitempty"`
	//
	CanSendEnvelopeMetadata *SettingsMetadata `json:"canSendEnvelopeMetadata,omitempty"`
	// When **true**, this user can sign envelopes.
	CanSignEnvelope string `json:"canSignEnvelope,omitempty"`
	//
	CanSignEnvelopeMetadata *SettingsMetadata `json:"canSignEnvelopeMetadata,omitempty"`
	//
	CanUseScratchpad string `json:"canUseScratchpad,omitempty"`
	//
	CanUseScratchpadMetadata *SettingsMetadata `json:"canUseScratchpadMetadata,omitempty"`
	// When **true**, this user is prohibited from uploading documents during sending.
	DisableDocumentUpload string `json:"disableDocumentUpload,omitempty"`
	// Metadata that indicates whether the `disableDocumentUpload` property is editable.
	//
	DisableDocumentUploadMetadata *SettingsMetadata `json:"disableDocumentUploadMetadata,omitempty"`
	// When **true**, this user can access the **Other Actions** menu.
	DisableOtherActions string `json:"disableOtherActions,omitempty"`
	// Metadata that indicates whether the `disableOtherActions` property is editable.
	//
	DisableOtherActionsMetadata *SettingsMetadata `json:"disableOtherActionsMetadata,omitempty"`
	// Reserved for DocuSign.
	EnableDSPro string `json:"enableDSPro,omitempty"`
	// Metadata that indicates whether the `enableDSPro` property is editable.
	//
	EnableDSProMetadata *SettingsMetadata `json:"enableDSProMetadata,omitempty"`
	// When **true**, the account can define the routing
	// order of recipients for envelopes sent using the DocuSign API.
	//
	EnableSequentialSigningAPI string `json:"enableSequentialSigningAPI,omitempty"`
	// Metadata that indicates whether the `enableSequentialSigningAPI` property is editable.
	//
	EnableSequentialSigningAPIMetadata *SettingsMetadata `json:"enableSequentialSigningAPIMetadata,omitempty"`
	// When **true**, the account can define the routing order
	// of recipients for envelopes sent using the DocuSign application.
	//
	EnableSequentialSigningUI string `json:"enableSequentialSigningUI,omitempty"`
	// Metadata that indicates whether the `enableSequentialSigningUI` property is editable.
	//
	EnableSequentialSigningUIMetadata *SettingsMetadata `json:"enableSequentialSigningUIMetadata,omitempty"`
	// When **true**, this user can override the Sign on Paper account setting, which specifies whether signers can sign documents on paper as an option to signing electronically.
	EnableSignOnPaperOverride string `json:"enableSignOnPaperOverride,omitempty"`
	// Metadata that indicates whether the `enableSignOnPaperOverride` property is editable.
	//
	EnableSignOnPaperOverrideMetadata *SettingsMetadata `json:"enableSignOnPaperOverrideMetadata,omitempty"`
	// When **true**, this user can use the signing attachments feature.
	EnableSignerAttachments string `json:"enableSignerAttachments,omitempty"`
	// Metadata that indicates whether the `enableSignerAttachments` property is editable.
	//
	EnableSignerAttachmentsMetadata *SettingsMetadata `json:"enableSignerAttachmentsMetadata,omitempty"`
	// Reserved for DocuSign.
	EnableTransactionPoint string `json:"enableTransactionPoint,omitempty"`
	// Metadata that indicates whether the `enableTransactionPoint` property is editable.
	//
	EnableTransactionPointMetadata *SettingsMetadata `json:"enableTransactionPointMetadata,omitempty"`
	// When true, Vaulting is enabled for the account.
	EnableVaulting string `json:"enableVaulting,omitempty"`
	// Metadata that indicates whether the `enableVaulting` property is editable.
	//
	EnableVaultingMetadata *SettingsMetadata `json:"enableVaultingMetadata,omitempty"`
	//
	ExpressSendOnly string `json:"expressSendOnly,omitempty"`
	// The user's locale code:
	// - `zh_CN`
	// - `zh_TW`
	// - `nl`
	// - `en`
	// - `fr`
	// - `de`
	// - `it`
	// - `ja`
	// - `ko`
	// - `pt`
	// - `pt_BR`
	// - `ru`
	// - `es`
	Locale string `json:"locale,omitempty"`
	//
	LocaleMetadata *SettingsMetadata `json:"localeMetadata,omitempty"`
	// Reserved for DocuSign.
	LocalePolicy *LocalePolicy `json:"localePolicy,omitempty"`
	// User ID (GUID) of the user who last modified this user record.
	ModifiedBy string `json:"modifiedBy,omitempty"`
	//
	ModifiedByMetadata *SettingsMetadata `json:"modifiedByMetadata,omitempty"`
	// Most recent date on which this user record was modified.
	ModifiedDate string `json:"modifiedDate,omitempty"`
	//
	ModifiedDateMetadata *SettingsMetadata `json:"modifiedDateMetadata,omitempty"`
	// Note referencing the page that modified this user record.
	ModifiedPage string `json:"modifiedPage,omitempty"`
	//
	ModifiedPageMetadata *SettingsMetadata `json:"modifiedPageMetadata,omitempty"`
	// Reserved for DocuSign.
	NewSendUI string `json:"newSendUI,omitempty"`
	//
	NewSendUIMetadata *SettingsMetadata `json:"newSendUIMetadata,omitempty"`
	// Indicates the Power Form mode setting for the user:
	// - `none`
	// - `admin`
	// - `user`
	PowerFormMode string `json:"powerFormMode,omitempty"`
	//
	PowerFormModeMetadata *SettingsMetadata `json:"powerFormModeMetadata,omitempty"`
	// When **true**, this user receives notifications when envelopes are viewed.
	RecipientViewedNotification string `json:"recipientViewedNotification,omitempty"`
	//
	RecipientViewedNotificationMetadata *SettingsMetadata `json:"recipientViewedNotificationMetadata,omitempty"`
	//
	SealIdentifiers []SealIdentifier `json:"sealIdentifiers,omitempty"`
	// Valid values are:
	//
	// - `include_pdf`
	// - `include_link`
	//
	SelfSignedRecipientEmailDocument string `json:"selfSignedRecipientEmailDocument,omitempty"`
	// Metadata that indicates whether the `selfSignedRecipientEmailDocument` property is editable.
	//
	SelfSignedRecipientEmailDocumentMetadata *SettingsMetadata `json:"selfSignedRecipientEmailDocumentMetadata,omitempty"`
	//
	// An array of email notifications that sets the email the user receives when they are a sender. When the specific email notification is set to true, the user will receive those types of email notifications from DocuSign.
	//
	// The user inherits the default account sender email notification settings when the user is created. The email notifications are:
	//
	// * envelopeComplete
	// * changedSigner
	// * senderEnvelopeDeclined
	// * withdrawnConsent
	// * recipientViewed
	// * deliveryFailed
	//
	SenderEmailNotifications *SenderEmailNotifications `json:"senderEmailNotifications,omitempty"`
	// An array of email notifications that specifies the email the user receives when they are a sender. When the specific email notification is set to true, the user receives those types of email notifications from DocuSign. The user inherits the default account sender email notification settings when the user is created.
	SignerEmailNotifications *SignerEmailNotifications `json:"signerEmailNotifications,omitempty"`
	// When **true**, this user gets supplemental documents when downloading documents.
	SupplementalDocumentIncludeInDownload string `json:"supplementalDocumentIncludeInDownload,omitempty"`
	// When **true**, this user must accept supplemental documents.
	SupplementalDocumentsMustAccept string `json:"supplementalDocumentsMustAccept,omitempty"`
	// Metadata that indicates whether the `supplementalDocumentsMustAccept` property is editable.
	//
	SupplementalDocumentsMustAcceptMetadata *SettingsMetadata `json:"supplementalDocumentsMustAcceptMetadata,omitempty"`
	// When **true**, this user must read supplemental documents.
	SupplementalDocumentsMustRead string `json:"supplementalDocumentsMustRead,omitempty"`
	// Metadata that indicates whether the `supplementalDocumentsMustRead` property is editable.
	//
	SupplementalDocumentsMustReadMetadata *SettingsMetadata `json:"supplementalDocumentsMustReadMetadata,omitempty"`
	// When **true**, this user must view supplemental documents.
	SupplementalDocumentsMustView string `json:"supplementalDocumentsMustView,omitempty"`
	// Metadata that indicates whether the `supplementalDocumentsMustView` property is editable.
	//
	SupplementalDocumentsMustViewMetadata *SettingsMetadata `json:"supplementalDocumentsMustViewMetadata,omitempty"`
	//
	TemplateActiveCreation string `json:"templateActiveCreation,omitempty"`
	//
	TemplateActiveCreationMetadata *SettingsMetadata `json:"templateActiveCreationMetadata,omitempty"`
	//
	TemplateApplyNotify string `json:"templateApplyNotify,omitempty"`
	//
	TemplateApplyNotifyMetadata *SettingsMetadata `json:"templateApplyNotifyMetadata,omitempty"`
	//
	TemplateAutoMatching string `json:"templateAutoMatching,omitempty"`
	//
	TemplateAutoMatchingMetadata *SettingsMetadata `json:"templateAutoMatchingMetadata,omitempty"`
	// Percentage used when matching templates.
	TemplateMatchingSensitivity string `json:"templateMatchingSensitivity,omitempty"`
	//
	TemplateMatchingSensitivityMetadata *SettingsMetadata `json:"templateMatchingSensitivityMetadata,omitempty"`
	// When **true**, users see template matching functionality.
	TemplatePageLevelMatching string `json:"templatePageLevelMatching,omitempty"`
	//
	TemplatePageLevelMatchingMetadata *SettingsMetadata `json:"templatePageLevelMatchingMetadata,omitempty"`
	// When true, daylight savings time is in effect for this user's time zone.
	TimezoneDST string `json:"timezoneDST,omitempty"`
	//
	TimezoneDSTMetadata *SettingsMetadata `json:"timezoneDSTMetadata,omitempty"`
	//
	TimezoneMask string `json:"timezoneMask,omitempty"`
	//
	TimezoneMaskMetadata *SettingsMetadata `json:"timezoneMaskMetadata,omitempty"`
	// The timezone offset for the user. Valid values:
	// - `tz_01_afghanistan`
	// - `tz_02_alaskan`
	// - `tz_03_arab`
	// - `tz_04_arabian`
	// - `tz_05_arabic`
	// - `tz_06_argentina`
	// - `tz_07_atlantic`
	// - `tz_08_aus_central`
	// - `tz_09_aus_eastern`
	// - `tz_10_azerbaijan`
	// - `tz_11_azores`
	// - `tz_12_bangladesh`
	// - `tz_13_canada_central`
	// - `tz_14_cape_verde`
	// - `tz_15_caucasus`
	// - `tz_16_central_australia`
	// - `tz_17_central_america`
	// - `tz_18_central_asia`
	// - `tz_19_central_brazilian`
	// - `tz_20_central_europe`
	// - `tz_21_central_european`
	// - `tz_22_central_pacific`
	// - `tz_23_central`
	// - `tz_24_central_mexico`
	// - `tz_25_china`
	// - `tz_26_dateline`
	// - `tz_27_east_africa`
	// - `tz_28_east_australia`
	// - `tz_29_east_europe`
	// - `tz_30_east_south_america`
	// - `tz_31_eastern`
	// - `tz_32_egypt`
	// - `tz_33_ekaterinburg`
	// - `tz_34_fiji`
	// - `tz_35_fli`
	// - `tz_36_georgian`
	// - `tz_37_gmt`
	// - `tz_38_greenland`
	// - `tz_39_greenwich`
	// - `tz_40_gtb`
	// - `tz_41_hawaiian`
	// - `tz_42_india`
	// - `tz_43_iran`
	// - `tz_44_israel`
	// - `tz_45_jordan`
	// - `tz_46_kaliningrad`
	// - `tz_47_kamchatka`
	// - `tz_48_korea`
	// - `tz_49_magadan`
	// - `tz_50_mauritius`
	// - `tz_51_mid_atlantic`
	// - `tz_52_middle_east`
	// - `tz_53_montevideo`
	// - `tz_54_morocco`
	// - `tz_55_mountain`
	// - `tz_56_mountain_mexico`
	// - `tz_57_myanmar`
	// - `tz_58_north_central_asia`
	// - `tz_59_namibia`
	// - `tz_60_nepal`
	// - `tz_61_new_zealand`
	// - `tz_62_new_foundland`
	// - `tz_63_north_asia_east`
	// - `tz_64_north_asia`
	// - `tz_65_pacific_sa`
	// - `tz_66_pacific`
	// - `tz_67_pacific_mexico`
	// - `tz_68_pakistan`
	// - `tz_69_paraguay`
	// - `tz_70_romance`
	// - `tz_71_russian`
	// - `tz_72_sa_eastern`
	// - `tz_73_sa_pacific`
	// - `tz_74_sa_western`
	// - `tz_75_samoa`
	// - `tz_76_se_asia`
	// - `tz_77_singapore`
	// - `tz_78_south_africa`
	// - `tz_79_sriLanka`
	// - `tz_80_syria`
	// - `tz_81_taipei`
	// - `tz_82_tasmania`
	// - `tz_83_tokyo`
	// - `tz_84_tonga`
	// - `tz_85_turkey`
	// - `tz_86_ulaanbaatar`
	// - `tz_87_us_eastern`
	// - `tz_88_us_mountain`
	// - `tz_89_venezuela`
	// - `tz_90_vladivostok`
	// - `tz_91_west_australia`
	// - `tz_92_west_central_africa`
	// - `tz_93_west_europe`
	// - `tz_94_west_asia`
	// - `tz_95_west_pacific`
	// - `tz_96_yakutsk`
	TimezoneOffset string `json:"timezoneOffset,omitempty"`
	//
	TimezoneOffsetMetadata *SettingsMetadata `json:"timezoneOffsetMetadata,omitempty"`
	// Reserved for DocuSign.
	TimezoneSendingPref string `json:"timezoneSendingPref,omitempty"`
	//
	TimezoneSendingPrefMetadata *SettingsMetadata `json:"timezoneSendingPrefMetadata,omitempty"`
	// Reserved for DocuSign.
	TimezoneSigningPref string `json:"timezoneSigningPref,omitempty"`
	//
	TimezoneSigningPrefMetadata *SettingsMetadata `json:"timezoneSigningPrefMetadata,omitempty"`
	// Reserved for DocuSign.
	TransactionPointSiteNameURL string `json:"transactionPointSiteNameURL,omitempty"`
	//
	TransactionPointSiteNameURLMetadata *SettingsMetadata `json:"transactionPointSiteNameURLMetadata,omitempty"`
	// Reserved for DocuSign.
	TransactionPointUserName string `json:"transactionPointUserName,omitempty"`
	//
	TransactionPointUserNameMetadata *SettingsMetadata `json:"transactionPointUserNameMetadata,omitempty"`
	// Indicates the specified Vaulting mode:
	// - `none`
	// - `estored`
	// - `electronic_original`
	VaultingMode string `json:"vaultingMode,omitempty"`
	// Metadata that indicates whether the `vaultingMode` property is editable.
	//
	VaultingModeMetadata *SettingsMetadata `json:"vaultingModeMetadata,omitempty"`
}

UserSettingsInformation data that describes settings for a user. Some elements of this object have a `metadata` property, which includes the following: - `rights`: The calling users permissions to edit this setting (can be `editable` or `read_only`) - `uiHint`: Internally used to build UIs (can be `available` or `hidden`) - `options`: The values supported for this setting (not all settings have this element)

type UserSharedItem

type UserSharedItem struct {
	// This object describes errors that occur. It is only valid for responses and ignored in requests.
	ErrorDetails *ErrorDetails `json:"errorDetails,omitempty"`
	// How the item is shared. One of:
	//
	// - `not_shared`
	// - `shared_to`
	// - `shared_from`
	// - `shared_to_and_from`
	//
	Shared DSBool `json:"shared,omitempty"`
	// The user whose sharing information is being requested.
	User *UserInfo `json:"user,omitempty"`
}

UserSharedItem information about a shared item.

type UserSignature

type UserSignature struct {
	// The date and time on which the user adopted the signature.
	AdoptedDateTime *time.Time `json:"adoptedDateTime,omitempty"`
	// The date and time on which the user created the signature.
	CreatedDateTime *time.Time `json:"createdDateTime,omitempty"`
	// Serialized information about custom eHanko stamps that have been ordered, including the order status, purchase order ID, time created, and time modified.
	CustomField string `json:"customField,omitempty"`
	// Specifies the area in which a date stamp is placed. This parameter uses pixel positioning to draw a rectangle at the center of the stamp area. The stamp is superimposed on top of this central area.
	//
	// This property contains the following information about the central rectangle:
	//
	// - `DateAreaX`: The X axis position of the top-left corner.
	// - `DateAreaY`: The Y axis position of the top-left corner.
	// - `DateAreaWidth`: The width of the rectangle.
	// - `DateAreaHeight`: The height of the rectangle.
	DateStampProperties *DateStampProperties `json:"dateStampProperties,omitempty"`
	// When set to **true**, the user cannot resize the stamp.
	DisallowUserResizeStamp string `json:"disallowUserResizeStamp,omitempty"`
	// This object describes errors that occur. It is only valid for responses and ignored in requests.
	ErrorDetails *ErrorDetails `json:"errorDetails,omitempty"`
	// Optionally specify an external identifier for the user's signature.
	ExternalID string `json:"externalID,omitempty"`
	// The base64-encoded bytes of the signature image.
	ImageBase64 string `json:"imageBase64,omitempty"`
	// The type of image. Valid values are:
	//
	// - `signature_image`
	// - `initials_image`
	ImageType string `json:"imageType,omitempty"`
	// The ID of the user's initials image.
	Initials150ImageID string `json:"initials150ImageId,omitempty"`
	// Contains the URI for an endpoint that you can use to retrieve the initials image.
	InitialsImageURI string `json:"initialsImageUri,omitempty"`
	// Boolean that specifies whether the signature is the default signature for the user.
	IsDefault string `json:"isDefault,omitempty"`
	// The date and time on which the signature was last modified.
	LastModifiedDateTime string `json:"lastModifiedDateTime,omitempty"`
	// The National Association of Realtors (NAR) membership ID for a user who is a realtor.
	NrdsID string `json:"nrdsId,omitempty"`
	// The realtor's last name.
	NrdsLastName string `json:"nrdsLastName,omitempty"`
	// The realtor's NAR membership status. The value `active` verifies that the user is a current NAR member. Valid values are:
	//
	// - `Active`
	// - `Inactive`
	// - `Terminate`
	// - `Provisional`
	// - `Deceased`
	// - `Suspend`
	// - `Unknown`
	NrdsStatus string `json:"nrdsStatus,omitempty"`
	// The phonetic spelling of the `signatureName`.
	PhoneticName string `json:"phoneticName,omitempty"`
	// The ID of the user's signature image.
	Signature150ImageID string `json:"signature150ImageId,omitempty"`
	// The font type for the signature if the signature is not drawn. The supported font types are:
	//
	// - `7_DocuSign`
	// - `1_DocuSign`
	// - `6_DocuSign`
	// - `8_DocuSign`
	// - `3_DocuSign`
	// - `Mistral`
	// - `4_DocuSign`
	// - `2_DocuSign`
	// - `5_DocuSign`
	// - `Rage Italic`
	//
	SignatureFont string `json:"signatureFont,omitempty"`
	// The ID associated with the signature name. You can use this property in the URI in place of the signature name. This enables the use of special characters (such as "&", "<", and ">") in a signature name.
	//
	// **Note**: When you update a signature, its signature ID might change. In that case you need to use `signatureName` to get the new `signatureId`.
	SignatureID string `json:"signatureId,omitempty"`
	// An endpoint URI that you can use to retrieve the user's signature image.
	SignatureImageURI string `json:"signatureImageUri,omitempty"`
	//  The initials associated with the signature.
	SignatureInitials string `json:"signatureInitials,omitempty"`
	// Specifies the user's signature name.
	SignatureName string `json:"signatureName,omitempty"`
	// The rights that the user has to the signature. Valid values are:
	//
	// - `none`
	// - `read`
	// - `admin`
	SignatureRights string `json:"signatureRights,omitempty"`
	// Specifies the type of signature.
	SignatureType string `json:"signatureType,omitempty"`
	// The format of the stamp. Valid values are:
	//
	// - `NameHanko`: The stamp represents only the signer's name.
	// - `NameDateHanko`: The stamp represents the signer's name and the date.
	StampFormat string `json:"stampFormat,omitempty"`
	// The URL for retrieving the image of the user's stamp.
	StampImageURI string `json:"stampImageUri,omitempty"`
	// The physical height of the stamp image (in millimeters) that the stamp vendor recommends for displaying the image in PDF documents.
	StampSizeMM string `json:"stampSizeMM,omitempty"`
	// If the recipient signs by using a personal stamp that is representative of their signature, this property specifies the stamp type.
	StampType string `json:"stampType,omitempty"`
}

UserSignature users' signatures

type UserSignatureDefinition

type UserSignatureDefinition struct {
	// Specifies the area in which a date stamp is placed. This parameter uses pixel positioning to draw a rectangle at the center of the stamp area. The stamp is superimposed on top of this central area.
	//
	// This property contains the following information about the central rectangle:
	//
	// - `DateAreaX`: The X axis position of the top-left corner.
	// - `DateAreaY`: The Y axis position of the top-left corner.
	// - `DateAreaWidth`: The width of the rectangle.
	// - `DateAreaHeight`: The height of the rectangle.
	DateStampProperties *DateStampProperties `json:"dateStampProperties,omitempty"`
	// When set to **true**, the user cannot resize the stamp.
	DisallowUserResizeStamp string `json:"disallowUserResizeStamp,omitempty"`
	// Optionally specify an external identifier for the user's signature.
	ExternalID string `json:"externalID,omitempty"`
	// The type of image. Valid values are:
	//
	// - `signature_image`
	// - `initials_image`
	ImageType string `json:"imageType,omitempty"`
	// Boolean that specifies whether the signature is the default signature for the user.
	IsDefault string `json:"isDefault,omitempty"`
	// The National Association of Realtors (NAR) membership ID for a user who is a realtor.
	NrdsID string `json:"nrdsId,omitempty"`
	// The realtor's last name.
	NrdsLastName string `json:"nrdsLastName,omitempty"`
	// The phonetic spelling of the `signatureName`.
	PhoneticName string `json:"phoneticName,omitempty"`
	//
	SignatureFont string `json:"signatureFont,omitempty"`
	// Specifies the signature ID associated with the signature name. You can use the signature ID in the URI in place of the signature name, and the value stored in the `signatureName` property in the body is used. This allows the use of special characters (such as "&", "<", ">") in a the signature name. Note that with each update to signatures, the returned signature ID might change, so the caller will need to trigger off the signature name to get the new signature ID.
	SignatureID string `json:"signatureId,omitempty"`
	// Specifies the user's signature in initials format.
	SignatureInitials string `json:"signatureInitials,omitempty"`
	// Specifies the user's signature name.
	SignatureName string `json:"signatureName,omitempty"`
	// The format of the stamp. Valid values are:
	//
	// - `NameHanko`: The stamp represents only the signer's name.
	// - `NameDateHanko`: The stamp represents the signer's name and the date.
	StampFormat string `json:"stampFormat,omitempty"`
	// The physical height of the stamp image (in millimeters) that the stamp vendor recommends for displaying the image in PDF documents.
	StampSizeMM string `json:"stampSizeMM,omitempty"`
}

type UserSignaturesInformation

type UserSignaturesInformation struct {
	// A list of `UserSignatures` objects, each of which defines a user's digital signature.
	UserSignatures []UserSignature `json:"userSignatures,omitempty"`
}

type UserSocialIDResult

type UserSocialIDResult struct {
	// Contains properties that map a DocuSign user to a social account (Facebook, Yahoo, etc.)
	SocialAccountInformation []SocialAccountInformation `json:"socialAccountInformation,omitempty"`
	// The ID of the user to access. Generally this is the ID of the current authenticated user, but if the authenticated user is an Administrator on the account, `userId` can represent another user whom the Administrator is accessing.
	//
	UserID string `json:"userId,omitempty"`
}

type UsersResponse

type UsersResponse struct {
	// The last position in the result set.
	EndPosition string `json:"endPosition,omitempty"`
	// 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 `json:"nextUri,omitempty"`
	// 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 `json:"previousUri,omitempty"`
	// The number of results returned in this response. Because you can filter which entries are included in the response, this value is always less than or equal to `totalSetSize`.
	ResultSetSize string `json:"resultSetSize,omitempty"`
	// The starting position of the current result set.
	StartPosition string `json:"startPosition,omitempty"`
	// The total number of items in the search's result set. This value is always greater than or equal to the value of `resultSetSize`.
	TotalSetSize string `json:"totalSetSize,omitempty"`
	// User management information.
	Users []UserInfo `json:"users,omitempty"`
}

type View

type View struct {
	TabBase
	TabGuidedForm
	TabPosition
	// When set to **true**, the information in the tab is bold.
	Bold string `json:"bold,omitempty"`
	// Metadata that indicates whether the `bold` property is editable.
	BoldMetadata *PropertyMetadata `json:"boldMetadata,omitempty"`
	// The text to display on the button.
	ButtonText string `json:"buttonText,omitempty"`
	// Metadata that indicates whether the `buttonText` property is editable.
	ButtonTextMetadata *PropertyMetadata `json:"buttonTextMetadata,omitempty"`
	// The font to be used for the tab value. Supported fonts include:
	//
	// - Default
	// - Arial
	// - ArialNarrow
	// - Calibri
	// - CourierNew
	// - Garamond
	// - Georgia
	// - Helvetica
	// - LucidaConsole
	// - MSGothic
	// - MSMincho
	// - OCR-A
	// - Tahoma
	// - TimesNewRoman
	// - Trebuchet
	// - Verdana
	//
	Font string `json:"font,omitempty"`
	// The font color to use for the information in the tab. Possible values are:
	//
	// - Black
	// - BrightBlue
	// - BrightRed
	// - DarkGreen
	// - DarkRed
	// - Gold
	// - Green
	// - NavyBlue
	// - Purple
	// - White
	//
	FontColor string `json:"fontColor,omitempty"`
	// Metadata that indicates whether the `fontColor` property is editable.
	FontColorMetadata *PropertyMetadata `json:"fontColorMetadata,omitempty"`
	// Metadata that indicates whether the `font` property is editable.
	FontMetadata *PropertyMetadata `json:"fontMetadata,omitempty"`
	// The font size used for the information in the tab. Possible values are:
	//
	// - Size7
	// - Size8
	// - Size9
	// - Size10
	// - Size11
	// - Size12
	// - Size14
	// - Size16
	// - Size18
	// - Size20
	// - Size22
	// - Size24
	// - Size26
	// - Size28
	// - Size36
	// - Size48
	// - Size72
	FontSize string `json:"fontSize,omitempty"`
	// Metadata that indicates whether the `fontSize` property is editable.
	FontSizeMetadata *PropertyMetadata `json:"fontSizeMetadata,omitempty"`
	// The height of the tab in pixels.
	Height string `json:"height,omitempty"`
	// Metadata that indicates whether the `height` property is editable.
	HeightMetadata *PropertyMetadata `json:"heightMetadata,omitempty"`
	// When set to **true**, the information in the tab is italic.
	Italic string `json:"italic,omitempty"`
	// Metadata that indicates whether the `italic` property is editable.
	ItalicMetadata *PropertyMetadata `json:"italicMetadata,omitempty"`
	// Reserved for DocuSign.
	LocalePolicy *LocalePolicyTab `json:"localePolicy,omitempty"`
	// When set to **true**, the recipient must click the **View** button for the supporting document prior to completing the signing process.
	Required TabRequired `json:"required,omitempty"`
	// Metadata that indicates whether the `required` property is editable.
	RequiredMetadata *PropertyMetadata `json:"requiredMetadata,omitempty"`
	// When set to **true**, the recipient must read through the document.
	RequiredRead DSBool `json:"requiredRead,omitempty"`
	// Metadata that indicates whether the `toolTip` property is editable.
	ToolTipMetadata *PropertyMetadata `json:"toolTipMetadata,omitempty"`
	// The text of a tooltip that appears when a user hovers over a form field or tab.
	Tooltip string `json:"tooltip,omitempty"`
	// When set to **true**, the information in the tab is underlined.
	Underline string `json:"underline,omitempty"`
	// Metadata that indicates whether the `underline` property is editable.
	UnderlineMetadata *PropertyMetadata `json:"underlineMetadata,omitempty"`
	// The width of the tab in pixels.
	Width string `json:"width,omitempty"`
	// Metadata that indicates whether the `width` property is editable.
	WidthMetadata *PropertyMetadata `json:"widthMetadata,omitempty"`
}

View this tab is used with the Approve tab to handle supplemental documents.

type ViewURL

type ViewURL struct {
	// The view URL to be navigated to.
	URL string `json:"url,omitempty"`
}

ViewURL embedding template views

type Watermark

type Watermark struct {
	//
	DisplayAngle string `json:"displayAngle,omitempty"`
	//
	Enabled DSBool `json:"enabled,omitempty"`
	// The font to be used for the tab value. Supported fonts include:
	//
	// - Default
	// - Arial
	// - ArialNarrow
	// - Calibri
	// - CourierNew
	// - Garamond
	// - Georgia
	// - Helvetica
	// - LucidaConsole
	// - MSGothic
	// - MSMincho
	// - OCR-A
	// - Tahoma
	// - TimesNewRoman
	// - Trebuchet
	// - Verdana
	//
	Font string `json:"font,omitempty"`
	// The font color to use for the information in the tab. Possible values are:
	//
	// - Black
	// - BrightBlue
	// - BrightRed
	// - DarkGreen
	// - DarkRed
	// - Gold
	// - Green
	// - NavyBlue
	// - Purple
	// - White
	//
	FontColor string `json:"fontColor,omitempty"`
	// The font size used for the information in the tab. Possible values are:
	//
	// - Size7
	// - Size8
	// - Size9
	// - Size10
	// - Size11
	// - Size12
	// - Size14
	// - Size16
	// - Size18
	// - Size20
	// - Size22
	// - Size24
	// - Size26
	// - Size28
	// - Size36
	// - Size48
	// - Size72
	FontSize string `json:"fontSize,omitempty"`
	// A unique ID for the Salesforce object.
	ID string `json:"id,omitempty"`
	//
	ImageBase64 string `json:"imageBase64,omitempty"`
	//
	Transparency string `json:"transparency,omitempty"`
	//
	WatermarkText string `json:"watermarkText,omitempty"`
}

type Witness

type Witness struct {
	// If a value is provided, the recipient must enter the value as the access code to view and sign the envelope.
	//
	// Maximum Length: 50 characters and it must conform to the account's access code format setting.
	//
	// If blank, but the signer `accessCode` property is set in the envelope, then that value is used.
	//
	// If blank and the signer `accessCode` property is not set, then the access code is not required.
	AccessCode string `json:"accessCode,omitempty"`
	// Metadata that indicates if the sender can edit the `accessCode` property.
	AccessCodeMetadata *PropertyMetadata `json:"accessCodeMetadata,omitempty"`
	// 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 `json:"addAccessCodeToEmail,omitempty"`
	// When set to **true**, the agent can edit the email address of the recipient.
	AgentCanEditEmail string `json:"agentCanEditEmail,omitempty"`
	// When set to **true**, the agent can edit the name of the recipient.
	AgentCanEditName string `json:"agentCanEditName,omitempty"`
	// When **true**, auto navigation is set for the recipient.
	//
	AutoNavigation string `json:"autoNavigation,omitempty"`
	// Contains a URI for an endpoint that allows you to easily retrieve bulk recipient information.
	BulkRecipientsURI string `json:"bulkRecipientsUri,omitempty"`
	// When set to **true**, specifies that the signer can perform the signing ceremony offline.
	CanSignOffline string `json:"canSignOffline,omitempty"`
	// Specifies whether the recipient is embedded or remote.
	//
	// If 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.
	//
	// Note: 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.
	//
	// Maximum length: 100 characters.
	ClientUserID string `json:"clientUserId,omitempty"`
	// Indicates the number of times that the recipient has been through a signing completion for the envelope.
	//
	// If this number is greater than 0 for a signing group, only the user who previously completed may sign again.
	CompletedCount string `json:"completedCount,omitempty"`
	// Payment status for payment services.
	CreationReason string `json:"creationReason,omitempty"`
	// 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 `json:"customFields,omitempty"`
	// The date and time the recipient declined the document.
	DeclinedDateTime string `json:"declinedDateTime,omitempty"`
	// The reason the recipient declined the document.
	DeclinedReason string `json:"declinedReason,omitempty"`
	// When set to **true**, this recipient is the default recipient and any tabs generated by the transformPdfFields option are mapped to this recipient.
	DefaultRecipient string `json:"defaultRecipient,omitempty"`
	// The date and time that the envelope was delivered to the recipient.
	DeliveredDateTime string `json:"deliveredDateTime,omitempty"`
	// Reserved for DocuSign.
	DeliveryMethod string `json:"deliveryMethod,omitempty"`
	// Reserved for DocuSign.
	DeliveryMethodMetadata *PropertyMetadata `json:"deliveryMethodMetadata,omitempty"`
	// A list of documentVisibility objects, which define a recipient's read/write access to a document.
	DocumentVisibility []DocumentVisibility `json:"documentVisibility,omitempty"`
	// The email id of the recipient.
	Email string `json:"email,omitempty"`
	// Metadata that indicates if the sender can edit the email address of the witness.
	EmailMetadata *PropertyMetadata `json:"emailMetadata,omitempty"`
	// An optional complex type that sets a specific email subject and body for this recipient's notification email.
	//
	// **Note**: If you use this field to set a specific email notification for one recipient, you must also set the email notification for the other recipients. Using this field for one or more recipients negates the Envelope `Subject` and `EmailBlurb` property settings.
	EmailNotification *RecipientEmailNotification `json:"emailNotification,omitempty"`
	// Specifies a sender-provided valid URL string for redirecting an embedded recipient. When this option is used, the embedded recipient still receives an email from DocuSign, just as a remote recipient would. When the recipient clicks the document link in the email, the recipient is redirected through DocuSign to the specified URL to complete the required 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.
	//
	// If 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 launched by a partner.
	//
	// It is important to understand 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 processes for establishing the recipient's identity. In this workflow the recipient goes through the sending application before the embedded signing or viewing process is 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.
	//
	// If 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 for the recipient or envelope. The merge fields are enclosed in double brackets.
	//
	// *Example*:
	//
	// `http://senderHost/[[mergeField1]]/ beginSigningSession? [[mergeField2]]&[[mergeField3]]`
	EmbeddedRecipientStartURL string `json:"embeddedRecipientStartURL,omitempty"`
	// This object describes errors that occur. It is only valid for responses and ignored in requests.
	ErrorDetails *ErrorDetails `json:"errorDetails,omitempty"`
	// 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.
	//
	// When 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 `json:"excludedDocuments,omitempty"`
	// Reserved for DocuSign.
	FaxNumber string `json:"faxNumber,omitempty"`
	// Reserved for DocuSign.
	FaxNumberMetadata *PropertyMetadata `json:"faxNumberMetadata,omitempty"`
	// The witness's first name. Maximum Length: 50 characters.
	FirstName string `json:"firstName,omitempty"`
	// Metadata that indicates if the sender can edit the witness's first name.
	//
	FirstNameMetadata *PropertyMetadata `json:"firstNameMetadata,omitempty"`
	// Reserved for DocuSign.
	FullName string `json:"fullName,omitempty"`
	// Reserved for DocuSign.
	FullNameMetadata *PropertyMetadata `json:"fullNameMetadata,omitempty"`
	// The name of the authentication check to use. This value must match one of the authentication types that the account uses. The names of these authentication types appear in the web console sending interface in the Identify list for a recipient. This setting overrides any default authentication setting.
	//
	// **Example**: Your account has ID Check and SMS Authentication available. 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 $. For SMS, you would use SMS Auth $, and you would also need to add a phone number to the smsAuthentication node.
	IDCheckConfigurationName string `json:"idCheckConfigurationName,omitempty"`
	// Metadata that indicates if the sender can edit the `idCheckConfigurationName` property.
	IDCheckConfigurationNameMetadata *PropertyMetadata `json:"idCheckConfigurationNameMetadata,omitempty"`
	// An object that contains input information related to a recipient ID check.
	IDCheckInformationInput *IDCheckInformationInput `json:"idCheckInformationInput,omitempty"`
	// Specifies ID Verification applied on an envelope by workflow ID. <br/>See the [list](https://developers.docusign.com/esign-rest-api/reference/Accounts/IdentityVerifications/list) method in the [IdentityVerifications](https://developers.docusign.com/esign-rest-api/reference/Accounts/IdentityVerifications) resource for more information on how to retrieve workflow IDs available for an account. <br/>This can be used in addition to other [recipient authentication](https://support.docusign.com/en/guides/ndse-user-guide-recipient-authentication) methods. <br/>Note that ID Verification and ID Check are two distinct methods. ID Verification checks recipients' identity by verifying their ID while ID Check relies on data available on public records (such as current and former address).
	IdentityVerification *RecipientIdentityVerification `json:"identityVerification,omitempty"`
	// 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 `json:"inheritEmailNotificationConfiguration,omitempty"`
	// When set to **true**, this signer is a bulk recipient and the recipient information is contained in a bulk recipient file.
	//
	// Note that when this is true the email and name for the recipient becomes bulk@recipient.com and "Bulk Recipient". These fields can not be changed for the bulk recipient.
	//
	IsBulkRecipient string `json:"isBulkRecipient,omitempty"`
	// Metadata that indicates if the sender can edit the `isBulkRecipient` property.
	IsBulkRecipientMetadata *PropertyMetadata `json:"isBulkRecipientMetadata,omitempty"`
	// The witness's last name.
	LastName string `json:"lastName,omitempty"`
	// Metadata that indicates if the sender can edit the witness's last name.
	LastNameMetadata *PropertyMetadata `json:"lastNameMetadata,omitempty"`
	// Reserved for DocuSign.
	LockedRecipientPhoneAuthEditable string `json:"lockedRecipientPhoneAuthEditable,omitempty"`
	// Reserved for DocuSign.
	LockedRecipientSmsEditable string `json:"lockedRecipientSmsEditable,omitempty"`
	// The full legal name of the witness.
	Name string `json:"name,omitempty"`
	// Metadata that indicates if the sender can edit the full legal name of the witness.
	NameMetadata *PropertyMetadata `json:"nameMetadata,omitempty"`
	// A note sent to the recipient in the signing email.
	// This note is unique to this recipient.
	// In the user interface,
	// it appears near the upper left corner
	// of the document
	// on the signing screen.
	//
	// Maximum Length: 1000 characters.
	//
	Note string `json:"note,omitempty"`
	// Metadata that indicates if the sender can edit the note to the recipient.
	NoteMetadata *PropertyMetadata `json:"noteMetadata,omitempty"`
	// Reserved for DocuSign use.
	OfflineAttributes interface{} `json:"offlineAttributes,omitempty"`
	// A complex type that contains the following elements:
	//
	// * `recipMayProvideNumber` - Boolean. When set to **true**, the recipient can use whatever phone number they choose.
	// * `senderProvidedNumbers` - ArrayOfString.  A list of phone numbers the recipient can use.
	// * `recordVoicePrint` - Reserved.
	// * `validateRecipProvidedNumber` - Reserved.
	PhoneAuthentication *RecipientPhoneAuthentication `json:"phoneAuthentication,omitempty"`
	// Reserved for DocuSign.
	RecipientAttachments []RecipientAttachment `json:"recipientAttachments,omitempty"`
	// Information about the recipient's authentication status.
	RecipientAuthenticationStatus *AuthenticationStatus `json:"recipientAuthenticationStatus,omitempty"`
	// Metadata about the features that are supported for the recipient type.
	RecipientFeatureMetadata []FeatureAvailableMetadata `json:"recipientFeatureMetadata,omitempty"`
	// A local reference that senders use to map recipients to other objects, such as specific document tabs. Within an envelope, each `recipientId` must be unique, but there is no uniqueness requirement across envelopes. For example, many envelopes assign the first recipient a `recipientId` of `1`.
	RecipientID string `json:"recipientId,omitempty"`
	// The globally-unique identifier (GUID) for a specific recipient on a specific envelope. If the same recipient is associated with multiple envelopes, they will have a different GUID for each one.
	RecipientIDGUID string `json:"recipientIdGuid,omitempty"`
	// 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.](https://developers.docusign.com/esign-rest-api/guides/standards-based-signatures)
	RecipientSignatureProviders []RecipientSignatureProvider `json:"recipientSignatureProviders,omitempty"`
	// Specifies whether the recipient creates the tabs.
	RecipientSuppliesTabs string `json:"recipientSuppliesTabs,omitempty"`
	// The recipient type, as specified by the following values:
	// - `agents`: Agent recipients can add name and email information for recipients that appear after the agent in routing order.
	// - `carbonCopies`: Carbon copy recipients get a copy of the envelope but don't need to sign, initial, date, or add information to any of the documents. This type of recipient can be used in any routing order.
	// - `certifiedDeliveries`: Certified delivery recipients must receive the completed documents for the envelope to be completed. They don't need to sign, initial, date, or add information to any of the documents.
	// - `editors`: Editors have the same management and access rights for the envelope as the sender. Editors can add name and email information, add or change the routing order, set authentication options, and can edit signature/initial tabs and data fields for the remaining recipients.
	// - `inPersonSigners`: In-person recipients are DocuSign users who act as signing hosts in the same physical location as the signer.
	// - `intermediaries`: Intermediary recipients can optionally add name and email information for recipients at the same or subsequent level in the routing order.
	// - `seals`: Electronic seal recipients represent legal entities.
	// - `signers`: Signers are recipients who must sign, initial, date, or add data to form fields on the documents in the envelope.
	// - `witnesses`: Witnesses are recipients whose signatures affirm that the identified signers have signed the documents in the envelope.
	RecipientType string `json:"recipientType,omitempty"`
	// Metadata that indicates if the sender can edit the recipient type.
	RecipientTypeMetadata *PropertyMetadata `json:"recipientTypeMetadata,omitempty"`
	// 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 `json:"requireIdLookup,omitempty"`
	// Metadata that indicates if the sender can edit the `requireIdLookup` property.
	RequireIDLookupMetadata *PropertyMetadata `json:"requireIdLookupMetadata,omitempty"`
	// When set to **true**, the signer must print, sign, and upload or fax the signed documents to DocuSign.
	RequireSignOnPaper string `json:"requireSignOnPaper,omitempty"`
	// 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.
	//
	// This parameter should only be used to select a SAFE-BioPharma certificate. New integrations should use the `recipientSignatureProviders` parameter for other types of digital certificates.
	//
	// Set this parameter to `safe` to use a SAFE-BioPharma certificate.
	//
	// The signer must be enrolled in the SAFE program to sign with a SAFE certificate.
	RequireSignerCertificate string `json:"requireSignerCertificate,omitempty"`
	// Optional element. Specifies the role name associated with the recipient.<br/><br/>This is required when working with template recipients.
	RoleName string `json:"roleName,omitempty"`
	// Specifies the routing order of the recipient in the envelope.
	RoutingOrder string `json:"routingOrder,omitempty"`
	// Metadata that indicates if the sender can edit the routing order for the recipient.
	RoutingOrderMetadata *PropertyMetadata `json:"routingOrderMetadata,omitempty"`
	// The date and time the envelope was sent.
	SentDateTime string `json:"sentDateTime,omitempty"`
	// 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).
	SignInEachLocation string `json:"signInEachLocation,omitempty"`
	// Metadata that indicates whether the `signInEachLocation` property is editable.
	//
	SignInEachLocationMetadata *PropertyMetadata `json:"signInEachLocationMetadata,omitempty"`
	// Allows the sender to pre-specify the signature name, signature initials and signature font used in the signature stamp for the recipient.
	//
	// Used only with recipient types In Person Signers and Signers.
	//
	SignatureInfo *RecipientSignatureInformation `json:"signatureInfo,omitempty"`
	// Reserved for DocuSign.
	SignedDateTime string `json:"signedDateTime,omitempty"`
	// The id of the signing group of which the recipient is a member, if applicable.
	SigningGroupID string `json:"signingGroupId,omitempty"`
	// Metadata that indicates if the sender can edit the signing group id.
	SigningGroupIDMetadata *PropertyMetadata `json:"signingGroupIdMetadata,omitempty"`
	// The display name for the signing group.
	//
	// Maximum Length: 100 characters.
	SigningGroupName string `json:"signingGroupName,omitempty"`
	// A complex type that contains information about users in the signing group.
	SigningGroupUsers []UserInfo `json:"signingGroupUsers,omitempty"`
	// Contains the element senderProvidedNumbers which is an Array  of phone numbers the recipient can use for SMS text authentication.
	//
	SmsAuthentication *RecipientSMSAuthentication `json:"smsAuthentication,omitempty"`
	//  Lists the social ID type that can be used for recipient authentication.
	SocialAuthentications []SocialAuthentication `json:"socialAuthentications,omitempty"`
	// The status of the item.
	Status string `json:"status,omitempty"`
	// Reserved for DocuSign.
	StatusCode string `json:"statusCode,omitempty"`
	// A list of `signHere` tabs, which can be used to add a visual representation for an electronic seal in a document.
	Tabs *Tabs `json:"tabs,omitempty"`
	// When set to **true**, the sender cannot change any attributes of the recipient. Used only when working with template recipients.
	TemplateLocked string `json:"templateLocked,omitempty"`
	// When set to **true**, the sender may not remove the recipient. Used only when working with template recipients.
	TemplateRequired string `json:"templateRequired,omitempty"`
	// The total number of tabs in the documents.
	TotalTabCount string `json:"totalTabCount,omitempty"`
	// The ID of the user to access. Generally this is the ID of the current authenticated user, but if the authenticated user is an Administrator on the account, `userId` can represent another user whom the Administrator is accessing.
	//
	UserID string `json:"userId,omitempty"`
	// The signer whose signature the witness is witnessing.
	WitnessFor string `json:"witnessFor,omitempty"`
	// The GUID for the witness.
	WitnessForGUID string `json:"witnessForGuid,omitempty"`
}

Witness is a complex type containing information about a witness signer recipient.

type Workspace

type Workspace struct {
	//
	BillableAccountID string `json:"billableAccountId,omitempty"`
	//
	CallerInformation *WorkspaceUser `json:"callerInformation,omitempty"`
	// The UTC DateTime when the workspace user authorization was created.
	Created *time.Time `json:"created,omitempty"`
	//
	CreatedByInformation *WorkspaceUser `json:"createdByInformation,omitempty"`
	// Utc date and time the comment was last updated (can only be done by creator.)
	LastModified *time.Time `json:"lastModified,omitempty"`
	//
	LastModifiedByInformation *WorkspaceUser `json:"lastModifiedByInformation,omitempty"`
	//
	Settings *WorkspaceSettings `json:"settings,omitempty"`
	// The status of the item.
	Status string `json:"status,omitempty"`
	// The relative URL that may be used to access the workspace.
	WorkspaceBaseURL string `json:"workspaceBaseUrl,omitempty"`
	// Text describing the purpose of the workspace.
	WorkspaceDescription string `json:"workspaceDescription,omitempty"`
	// Specifies the workspace ID GUID.
	WorkspaceID string `json:"workspaceId,omitempty"`
	// The name of the workspace.
	WorkspaceName string `json:"workspaceName,omitempty"`
	// The relative URI that may be used to access the workspace.
	WorkspaceURI string `json:"workspaceUri,omitempty"`
}

type WorkspaceFolderContents

type WorkspaceFolderContents struct {
	// The last position in the result set.
	EndPosition string `json:"endPosition,omitempty"`
	// The query value can be a folder name or folder ID. The response will only return templates in the specified folder.
	Folder *WorkspaceItem `json:"folder,omitempty"`
	//
	Items []WorkspaceItem `json:"items,omitempty"`
	//
	ParentFolders []WorkspaceItem `json:"parentFolders,omitempty"`
	// The number of results returned in this response. Because you can filter which entries are included in the response, this value is always less than or equal to `totalSetSize`.
	ResultSetSize string `json:"resultSetSize,omitempty"`
	// The starting position of the current result set.
	StartPosition string `json:"startPosition,omitempty"`
	// The total number of items in the search's result set. This value is always greater than or equal to the value of `resultSetSize`.
	TotalSetSize string `json:"totalSetSize,omitempty"`
	// The id of the workspace, always populated.
	WorkspaceID string `json:"workspaceId,omitempty"`
}

WorkspaceFolderContents provides properties that describe the contents of a workspace folder.

type WorkspaceItem

type WorkspaceItem struct {
	//
	CallerAuthorization *WorkspaceUserAuthorization `json:"callerAuthorization,omitempty"`
	//
	ContentType string `json:"contentType,omitempty"`
	// The UTC DateTime when the workspace item was created.
	Created *time.Time `json:"created,omitempty"`
	//
	CreatedByID string `json:"createdById,omitempty"`
	//
	CreatedByInformation *WorkspaceUser `json:"createdByInformation,omitempty"`
	//
	Extension string `json:"extension,omitempty"`
	//
	FileSize string `json:"fileSize,omitempty"`
	//
	FileURI string `json:"fileUri,omitempty"`
	// A unique ID for the Salesforce object.
	ID string `json:"id,omitempty"`
	//  If true, this supersedes need for bit mask permission with workspaceUserAuthorization
	IsPublic DSBool `json:"isPublic,omitempty"`
	// Utc date and time the comment was last updated (can only be done by creator.)
	LastModified *time.Time `json:"lastModified,omitempty"`
	// Utc date and time the comment was last updated (can only be done by creator)
	LastModifiedByID string `json:"lastModifiedById,omitempty"`
	//
	LastModifiedByInformation *WorkspaceUser `json:"lastModifiedByInformation,omitempty"`
	// A simple string description of the item, such as a file name or a folder name.
	Name string `json:"name,omitempty"`
	// An integer value specifying the number of document pages in the template.
	PageCount string `json:"pageCount,omitempty"`
	// The ID of the parent folder. This is the GUID of the parent folder, or the special value 'root' for the root folder.
	ParentFolderID string `json:"parentFolderId,omitempty"`
	//
	ParentFolderURI string `json:"parentFolderUri,omitempty"`
	//
	Sha256 string `json:"sha256,omitempty"`
	//
	ThumbHeight string `json:"thumbHeight,omitempty"`
	//
	ThumbWidth string `json:"thumbWidth,omitempty"`
	//
	Thumbnail *Page `json:"thumbnail,omitempty"`
	// The type of the workspace item. Valid values are file, folder.
	Type string `json:"type,omitempty"`
	// URI containing the user ID.
	URI string `json:"uri,omitempty"`
	//
	UserAuthorization *WorkspaceUserAuthorization `json:"userAuthorization,omitempty"`
}

type WorkspaceItemList

type WorkspaceItemList struct {
	//
	Items []WorkspaceItem `json:"items,omitempty"`
}

WorkspaceItemList provides properties that describe the items contained in a workspace.

type WorkspaceList

type WorkspaceList struct {
	// The last position in the result set.
	EndPosition string `json:"endPosition,omitempty"`
	// The number of results returned in this response. Because you can filter which entries are included in the response, this value is always less than or equal to `totalSetSize`.
	ResultSetSize string `json:"resultSetSize,omitempty"`
	// The starting position of the current result set.
	StartPosition string `json:"startPosition,omitempty"`
	// The total number of items in the search's result set. This value is always greater than or equal to the value of `resultSetSize`.
	TotalSetSize string `json:"totalSetSize,omitempty"`
	// A list of workspaces.
	Workspaces []Workspace `json:"workspaces,omitempty"`
}

WorkspaceList provides properties that describe the workspaces avaialble.

type WorkspaceSettings

type WorkspaceSettings struct {
	//
	CommentsAllowed string `json:"commentsAllowed,omitempty"`
}

type WorkspaceUser

type WorkspaceUser struct {
	// The account ID associated with the envelope.
	AccountID string `json:"accountId,omitempty"`
	// The name of the account associated with the current workspace user.
	AccountName string `json:"accountName,omitempty"`
	//
	ActiveSince *time.Time `json:"activeSince,omitempty"`
	// The UTC DateTime when the workspace user was created.
	Created *time.Time `json:"created,omitempty"`
	//
	CreatedByID string `json:"createdById,omitempty"`
	// Filters returned user records by the specified email address.
	Email string `json:"email,omitempty"`
	// This object describes errors that occur. It is only valid for responses and ignored in requests.
	ErrorDetails *ErrorDetails `json:"errorDetails,omitempty"`
	//
	InvitationEmailBlurb string `json:"invitationEmailBlurb,omitempty"`
	//
	InvitationEmailSubject string `json:"invitationEmailSubject,omitempty"`
	// Utc date and time the comment was last updated (can only be done by creator.)
	LastModified *time.Time `json:"lastModified,omitempty"`
	//
	LastModifiedByID string `json:"lastModifiedById,omitempty"`
	// Filters the results by user status.
	// You can specify a comma-separated
	// list of the following statuses:
	//
	// * ActivationRequired
	// * ActivationSent
	// * Active
	// * Closed
	// * Disabled
	Status string `json:"status,omitempty"`
	// Type of user:
	// - `type_owner`
	// - `type_participant`
	Type string `json:"type,omitempty"`
	// The ID of the user to access. Generally this is the ID of the current authenticated user, but if the authenticated user is an Administrator on the account, `userId` can represent another user whom the Administrator is accessing.
	//
	UserID string `json:"userId,omitempty"`
	// The name of the user.
	UserName string `json:"userName,omitempty"`
	// Specifies the workspace ID GUID.
	WorkspaceID string `json:"workspaceId,omitempty"`
	// The relative URI that may be used to access a workspace user.
	WorkspaceUserBaseURL string `json:"workspaceUserBaseUrl,omitempty"`
	//
	WorkspaceUserID string `json:"workspaceUserId,omitempty"`
	//
	WorkspaceUserURI string `json:"workspaceUserUri,omitempty"`
}

WorkspaceUser is a workspaceUser representing the user. This property is only returned in response to user specific GET call.

type WorkspaceUserAuthorization

type WorkspaceUserAuthorization struct {
	//
	CanDelete DSBool `json:"canDelete,omitempty"`
	//
	CanMove DSBool `json:"canMove,omitempty"`
	//
	CanTransact DSBool `json:"canTransact,omitempty"`
	//
	CanView DSBool `json:"canView,omitempty"`
	// The UTC DateTime when the workspace user authorization was created.
	Created *time.Time `json:"created,omitempty"`
	//
	CreatedByID string `json:"createdById,omitempty"`
	// This object describes errors that occur. It is only valid for responses and ignored in requests.
	ErrorDetails *ErrorDetails `json:"errorDetails,omitempty"`
	//
	Modified *time.Time `json:"modified,omitempty"`
	//
	ModifiedByID string `json:"modifiedById,omitempty"`
	//
	WorkspaceUserID string `json:"workspaceUserId,omitempty"`
	//
	WorkspaceUserInformation *WorkspaceUser `json:"workspaceUserInformation,omitempty"`
}

WorkspaceUserAuthorization provides properties that describe user authorization to a workspace.

type Zip

type Zip struct {
	TabBase
	TabGuidedForm
	TabPosition
	TabStyle
	TabValue
	// 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.
	//
	// When an envelope is completed the information is available to the sender through the Form Data link in the DocuSign Console.
	//
	// This setting applies only to text boxes and does not affect list boxes, radio buttons, or check boxes.
	ConcealValueOnDocument DSBool `json:"concealValueOnDocument,omitempty"`
	// Metadata that indicates whether the `concealValueOnDocument` property is editable.
	ConcealValueOnDocumentMetadata *PropertyMetadata `json:"concealValueOnDocumentMetadata,omitempty"`
	// 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 DSBool `json:"disableAutoSize,omitempty"`
	// Metadata that indicates whether the `disableAutoSize` property is editable.
	DisableAutoSizeMetadata *PropertyMetadata `json:"disableAutoSizeMetadata,omitempty"`
	// The height of the tab in pixels.
	Height string `json:"height,omitempty"`
	// Metadata that indicates whether the `height` property is editable.
	HeightMetadata *PropertyMetadata `json:"heightMetadata,omitempty"`
	// Reserved for DocuSign.
	LocalePolicy *LocalePolicyTab `json:"localePolicy,omitempty"`
	// When set to **true**, the signer cannot change the data of the custom tab.
	Locked DSBool `json:"locked,omitempty"`
	// Metadata that indicates whether the `locked` property is editable.
	LockedMetadata *PropertyMetadata `json:"lockedMetadata,omitempty"`
	// An optional value that describes the maximum length of the property when the property is a string.
	MaxLength string `json:"maxLength,omitempty"`
	// Metadata that indicates whether the `maxLength` property is editable.
	MaxLengthMetadata *PropertyMetadata `json:"maxLengthMetadata,omitempty"`
	// The initial value of the tab when it was sent to the recipient.
	OriginalValue string `json:"originalValue,omitempty"`
	// Metadata that indicates whether the `originalValue` property is editable.
	OriginalValueMetadata *PropertyMetadata `json:"originalValueMetadata,omitempty"`
	// When set to **true** and shared is true, information must be entered in this field to complete the envelope.
	RequireAll DSBool `json:"requireAll,omitempty"`
	// Metadata that indicates whether the `requireAll` property is editable.
	RequireAllMetadata *PropertyMetadata `json:"requireAllMetadata,omitempty"`
	// Optional element for field markup. When set to **true**, the signer is required to initial when they modify a shared field.
	RequireInitialOnSharedChange DSBool `json:"requireInitialOnSharedChange,omitempty"`
	// Metadata that indicates whether the `requireInitialOnSharedChange` property is editable.
	RequireInitialOnSharedChangeMetadata *PropertyMetadata `json:"requireInitialOnSharedChangeMetadata,omitempty"`
	// When set to **true**, the signer is required to fill out this tab.
	Required TabRequired `json:"required,omitempty"`
	// Metadata that indicates whether the `required` property is editable.
	RequiredMetadata *PropertyMetadata `json:"requiredMetadata,omitempty"`
	// When set to **true**, the sender must populate the tab before an envelope can be sent using the template.
	//
	// This value tab can only be changed by modifying (PUT) the template.
	//
	// Tabs with a `senderRequired` value of true cannot be deleted from an envelope.
	SenderRequired DSBool `json:"senderRequired,omitempty"`
	// Metadata that indicates whether the `senderRequired` property is editable.
	SenderRequiredMetadata *PropertyMetadata `json:"senderRequiredMetadata,omitempty"`
	// When set to **true**, this custom tab is shared.
	Shared DSBool `json:"shared,omitempty"`
	// Metadata that indicates whether the `shared` property is editable.
	SharedMetadata *PropertyMetadata `json:"sharedMetadata,omitempty"`
	// Metadata that indicates whether the `toolTip` property is editable.
	ToolTipMetadata *PropertyMetadata `json:"toolTipMetadata,omitempty"`
	// The text of a tooltip that appears when a user hovers over a form field or tab.
	Tooltip string `json:"tooltip,omitempty"`
	// When set to **true**, ZIP+4 format is used.
	UseDash4 string `json:"useDash4,omitempty"`
	// Metadata that indicates whether the `useDash4` property is editable.
	UseDash4Metadata *PropertyMetadata `json:"useDash4Metadata,omitempty"`
	// The message displayed if the custom tab fails input validation (either custom of embedded).
	ValidationMessage string `json:"validationMessage,omitempty"`
	// Metadata that indicates whether the `validationMessage` property is editable.
	ValidationMessageMetadata *PropertyMetadata `json:"validationMessageMetadata,omitempty"`
	// A regular expression used to validate input for the tab.
	ValidationPattern string `json:"validationPattern,omitempty"`
	// Metadata that indicates whether the `validationPattern` property is editable.
	ValidationPatternMetadata *PropertyMetadata `json:"validationPatternMetadata,omitempty"`
	// The width of the tab in pixels.
	Width string `json:"width,omitempty"`
	// Metadata that indicates whether the `width` property is editable.
	WidthMetadata *PropertyMetadata `json:"widthMetadata,omitempty"`
}

Zip is a tab that allows the recipient to enter a ZIP code. The ZIP code can be five digits or nine digits in the ZIP+4 format. 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.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL