model

package
v0.10.0 Latest Latest
Warning

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

Go to latest
Published: Jun 13, 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 {
	// Indicates 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"`
	// Item status. <!-- TODO -->
	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 AccountAddress

type AccountAddress struct {
	// First Line of the address.
	// Maximum length: 100 characters.
	Address1 string `json:"address1,omitempty"`
	// Second Line of the 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"`
	//
	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"`
	//
	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:
	AddOns []AddOn `json:"addOns,omitempty"`
	// Reserved: TBD
	CanCancelRenewal string `json:"canCancelRenewal,omitempty"`
	// When set to **true**, specifies that you can upgrade the account through the API.
	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: TBD
	IncrementalSeats string `json:"incrementalSeats,omitempty"`
	//
	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"`
	// A complex type that sets the feature sets for the account. It contains the following information (all string content):
	//
	// * currencyFeatureSetPrices - Contains the currencyCode and currencySymbol for the alternate currency values for envelopeFee, fixedFee, seatFee that are configured for this plan feature set.
	// * envelopeFee - An incremental envelope cost for plans with envelope overages (when isEnabled=true).
	// * featureSetId - A unique ID for the feature set.
	// * fixedFee - A one-time fee associated with the plan (when isEnabled=true).
	// * isActive - Specifies whether the feature set is actively set as part of the plan.
	// * isEnabled - Specifies whether the feature set is actively enabled as part of the plan.
	// * name - The name of the feature set.
	// * seatFee - An incremental seat cost for seat-based plans (when isEnabled=true).
	//
	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. The acceptable values are:
	//
	// * auto: The account automatically renews.
	// * queued_for_close: Account will be closed at the billingPeriodEndDate.
	// * queued_for_downgrade: Account will be downgraded at the billingPeriodEndDate.
	RenewalStatus string `json:"renewalStatus,omitempty"`
	//  A complex type that contains any seat discount information.
	//
	// Values are: BeginSeatCount, EndSeatCount, and 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 {
	//
	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"`
	//
	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"`
	//
	PaymentProcessorInformation *PaymentProcessorInformation `json:"paymentProcessorInformation,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"`
	//
	SuccessorPlans []BillingPlan `json:"successorPlans,omitempty"`
}

type AccountIdentityVerificationResponse

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

type AccountIdentityVerificationStep

type AccountIdentityVerificationStep struct {
	//
	Name string `json:"name,omitempty"`
	// Type of the user. Valid values: type_owner, type_participant.
	Type string `json:"type,omitempty"`
}

type AccountIdentityVerificationWorkflow

type AccountIdentityVerificationWorkflow struct {
	//
	DefaultName string `json:"defaultName,omitempty"`
	//
	Steps []AccountIdentityVerificationStep `json:"steps,omitempty"`
	//
	WorkflowID string `json:"workflowId,omitempty"`
}

type AccountInformation

type AccountInformation struct {
	// The GUID associated with the account ID.
	AccountIDGUID string `json:"accountIdGuid,omitempty"`
	// The name of the account that the workspace user belongs to.
	AccountName string `json:"accountName,omitempty"`
	// When set to **true**, the transaction rooms feature exposed through the Workspaces API is enabled.
	AllowTransactionRooms DSBool `json:"allowTransactionRooms,omitempty"`
	// Reserved: TBD
	BillingPeriodDaysRemaining string `json:"billingPeriodDaysRemaining,omitempty"`
	// Reserved: TBD
	BillingPeriodEndDate string `json:"billingPeriodEndDate,omitempty"`
	// Reserved: TBD
	BillingPeriodEnvelopesAllowed string `json:"billingPeriodEnvelopesAllowed,omitempty"`
	// Reserved: TBD
	BillingPeriodEnvelopesSent string `json:"billingPeriodEnvelopesSent,omitempty"`
	// Reserved: TBD
	BillingPeriodStartDate string `json:"billingPeriodStartDate,omitempty"`
	// Reserved: TBD
	BillingProfile string `json:"billingProfile,omitempty"`
	// Reserved: TBD
	CanCancelRenewal string `json:"canCancelRenewal,omitempty"`
	// When set to **true**, specifies that you can upgrade the account through the API.
	CanUpgrade DSBool `json:"canUpgrade,omitempty"`
	//
	ConnectPermission string `json:"connectPermission,omitempty"`
	//
	CreatedDate string `json:"createdDate,omitempty"`
	// Specifies the ISO currency code of the purchase. This is based on the ISO 4217 currency code information.
	CurrencyCode string `json:"currencyCode,omitempty"`
	// Identifies the plan that was used 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"`
	//
	DocuSignLandingURL string `json:"docuSignLandingUrl,omitempty"`
	//
	EnvelopeSendingBlocked string `json:"envelopeSendingBlocked,omitempty"`
	//
	EnvelopeUnitPrice string `json:"envelopeUnitPrice,omitempty"`
	//
	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"`
	//
	IsDowngrade DSBool `json:"isDowngrade,omitempty"`
	//
	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"`
	//
	PlanName string `json:"planName,omitempty"`
	// The date that the Account started using the current plan.
	PlanStartDate string `json:"planStartDate,omitempty"`
	//
	SeatsAllowed string `json:"seatsAllowed,omitempty"`
	//
	SeatsInUse string `json:"seatsInUse,omitempty"`
	//
	Status21CFRPart11 string `json:"status21CFRPart11,omitempty"`
	//
	SuspensionDate string `json:"suspensionDate,omitempty"`
	//
	SuspensionStatus string `json:"suspensionStatus,omitempty"`
}

type AccountMinimumPasswordLength

type AccountMinimumPasswordLength struct {
	//
	MaximumLength string `json:"maximumLength,omitempty"`
	//
	MinimumLength string `json:"minimumLength,omitempty"`
}

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 {
	//
	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"`
	//
	ExpirePasswordDaysMetadata *AccountPasswordExpirePasswordDays `json:"expirePasswordDaysMetadata,omitempty"`
	//
	LockoutDurationMinutes string `json:"lockoutDurationMinutes,omitempty"`
	//
	LockoutDurationMinutesMetadata *AccountPasswordLockoutDurationMinutes `json:"lockoutDurationMinutesMetadata,omitempty"`
	//
	LockoutDurationType string `json:"lockoutDurationType,omitempty"`
	//
	LockoutDurationTypeMetadata *AccountPasswordLockoutDurationType `json:"lockoutDurationTypeMetadata,omitempty"`
	//
	MinimumPasswordAgeDays string `json:"minimumPasswordAgeDays,omitempty"`
	//
	MinimumPasswordAgeDaysMetadata *AccountPasswordMinimumPasswordAgeDays `json:"minimumPasswordAgeDaysMetadata,omitempty"`
	//
	MinimumPasswordLength string `json:"minimumPasswordLength,omitempty"`
	//
	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"`
	//
	PasswordStrengthTypeMetadata *AccountPasswordStrengthType `json:"passwordStrengthTypeMetadata,omitempty"`
	//
	QuestionsRequired string `json:"questionsRequired,omitempty"`
	//
	QuestionsRequiredMetadata *AccountPasswordQuestionsRequired `json:"questionsRequiredMetadata,omitempty"`
}

type AccountPasswordStrengthType

type AccountPasswordStrengthType struct {
	//
	Options []AccountPasswordStrengthTypeOption `json:"options,omitempty"`
}

type AccountPasswordStrengthTypeOption

type AccountPasswordStrengthTypeOption struct {
	//
	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 {
	//
	AllowAccountManagement DSBool `json:"allowAccountManagement,omitempty"`
	//
	AllowAccountManagementMetadata *SettingsMetadata `json:"allowAccountManagementMetadata,omitempty"`
	//
	AllowAPIAccess DSBool `json:"allowApiAccess,omitempty"`
	//
	AllowAPIAccessMetadata *SettingsMetadata `json:"allowApiAccessMetadata,omitempty"`
	//
	AllowAPIAccessToAccount DSBool `json:"allowApiAccessToAccount,omitempty"`
	//
	AllowAPIAccessToAccountMetadata *SettingsMetadata `json:"allowApiAccessToAccountMetadata,omitempty"`
	//
	AllowAPISendingOnBehalfOfOthers DSBool `json:"allowApiSendingOnBehalfOfOthers,omitempty"`
	//
	AllowAPISendingOnBehalfOfOthersMetadata *SettingsMetadata `json:"allowApiSendingOnBehalfOfOthersMetadata,omitempty"`
	//
	AllowAPISequentialSigning DSBool `json:"allowApiSequentialSigning,omitempty"`
	//
	AllowAPISequentialSigningMetadata *SettingsMetadata `json:"allowApiSequentialSigningMetadata,omitempty"`
	//
	AllowBulkSending DSBool `json:"allowBulkSending,omitempty"`
	//
	AllowBulkSendingMetadata *SettingsMetadata `json:"allowBulkSendingMetadata,omitempty"`
	//
	AllowDocuSignDesktopClient DSBool `json:"allowDocuSignDesktopClient,omitempty"`
	//
	AllowDocuSignDesktopClientMetadata *SettingsMetadata `json:"allowDocuSignDesktopClientMetadata,omitempty"`
	//
	AllowESealRecipients DSBool `json:"allowESealRecipients,omitempty"`
	//
	AllowESealRecipientsMetadata *SettingsMetadata `json:"allowESealRecipientsMetadata,omitempty"`
	//
	AllowEnvelopeSending DSBool `json:"allowEnvelopeSending,omitempty"`
	//
	AllowEnvelopeSendingMetadata *SettingsMetadata `json:"allowEnvelopeSendingMetadata,omitempty"`
	//
	AllowPowerFormsAdminToAccessAllPowerFormEnvelopes DSBool `json:"allowPowerFormsAdminToAccessAllPowerFormEnvelopes,omitempty"`
	//
	AllowPowerFormsAdminToAccessAllPowerFormEnvelopesMetadata *SettingsMetadata `json:"allowPowerFormsAdminToAccessAllPowerFormEnvelopesMetadata,omitempty"`
	//
	AllowSendersToSetRecipientEmailLanguage DSBool `json:"allowSendersToSetRecipientEmailLanguage,omitempty"`
	//
	AllowSendersToSetRecipientEmailLanguageMetadata *SettingsMetadata `json:"allowSendersToSetRecipientEmailLanguageMetadata,omitempty"`
	//
	AllowSignerAttachments DSBool `json:"allowSignerAttachments,omitempty"`
	//
	AllowSignerAttachmentsMetadata *SettingsMetadata `json:"allowSignerAttachmentsMetadata,omitempty"`
	//
	AllowSupplementalDocuments DSBool `json:"allowSupplementalDocuments,omitempty"`
	//
	AllowSupplementalDocumentsMetadata *SettingsMetadata `json:"allowSupplementalDocumentsMetadata,omitempty"`
	//
	AllowTaggingInSendAndCorrect DSBool `json:"allowTaggingInSendAndCorrect,omitempty"`
	//
	AllowTaggingInSendAndCorrectMetadata *SettingsMetadata `json:"allowTaggingInSendAndCorrectMetadata,omitempty"`
	//
	AllowVaulting DSBool `json:"allowVaulting,omitempty"`
	//
	AllowVaultingMetadata *SettingsMetadata `json:"allowVaultingMetadata,omitempty"`
	//
	AllowWetSigningOverride DSBool `json:"allowWetSigningOverride,omitempty"`
	//
	AllowWetSigningOverrideMetadata *SettingsMetadata `json:"allowWetSigningOverrideMetadata,omitempty"`
	//
	AllowedAddressBookAccess DSBool `json:"allowedAddressBookAccess,omitempty"`
	//
	AllowedAddressBookAccessMetadata *SettingsMetadata `json:"allowedAddressBookAccessMetadata,omitempty"`
	//
	AllowedTemplateAccess DSBool `json:"allowedTemplateAccess,omitempty"`
	//
	AllowedTemplateAccessMetadata *SettingsMetadata `json:"allowedTemplateAccessMetadata,omitempty"`
	//
	AllowedToBeEnvelopeTransferRecipient DSBool `json:"allowedToBeEnvelopeTransferRecipient,omitempty"`
	//
	AllowedToBeEnvelopeTransferRecipientMetadata *SettingsMetadata `json:"allowedToBeEnvelopeTransferRecipientMetadata,omitempty"`
	//
	CanCreateWorkspaces DSBool `json:"canCreateWorkspaces,omitempty"`
	//
	CanCreateWorkspacesMetadata *SettingsMetadata `json:"canCreateWorkspacesMetadata,omitempty"`
	//
	DisableDocumentUpload DSBool `json:"disableDocumentUpload,omitempty"`
	//
	DisableDocumentUploadMetadata *SettingsMetadata `json:"disableDocumentUploadMetadata,omitempty"`
	//
	DisableOtherActions DSBool `json:"disableOtherActions,omitempty"`
	//
	DisableOtherActionsMetadata *SettingsMetadata `json:"disableOtherActionsMetadata,omitempty"`
	//
	EnableAPIRequestLogging DSBool `json:"enableApiRequestLogging,omitempty"`
	//
	EnableAPIRequestLoggingMetadata *SettingsMetadata `json:"enableApiRequestLoggingMetadata,omitempty"`
	//
	EnableRecipientViewingNotifications DSBool `json:"enableRecipientViewingNotifications,omitempty"`
	//
	EnableRecipientViewingNotificationsMetadata *SettingsMetadata `json:"enableRecipientViewingNotificationsMetadata,omitempty"`
	//
	EnableSequentialSigningInterface DSBool `json:"enableSequentialSigningInterface,omitempty"`
	//
	EnableSequentialSigningInterfaceMetadata *SettingsMetadata `json:"enableSequentialSigningInterfaceMetadata,omitempty"`
	//
	EnableTransactionPointIntegration DSBool `json:"enableTransactionPointIntegration,omitempty"`
	//
	EnableTransactionPointIntegrationMetadata *SettingsMetadata `json:"enableTransactionPointIntegrationMetadata,omitempty"`
	//
	PowerFormRole string `json:"powerFormRole,omitempty"`
	//
	PowerFormRoleMetadata *SettingsMetadata `json:"powerFormRoleMetadata,omitempty"`
	//
	ReceiveCompletedSelfSignedDocumentsAsEmailLinks DSBool `json:"receiveCompletedSelfSignedDocumentsAsEmailLinks,omitempty"`
	//
	ReceiveCompletedSelfSignedDocumentsAsEmailLinksMetadata *SettingsMetadata `json:"receiveCompletedSelfSignedDocumentsAsEmailLinksMetadata,omitempty"`
	//
	SupplementalDocumentsMustAccept DSBool `json:"supplementalDocumentsMustAccept,omitempty"`
	//
	SupplementalDocumentsMustAcceptMetadata *SettingsMetadata `json:"supplementalDocumentsMustAcceptMetadata,omitempty"`
	//
	SupplementalDocumentsMustRead DSBool `json:"supplementalDocumentsMustRead,omitempty"`
	//
	SupplementalDocumentsMustReadMetadata *SettingsMetadata `json:"supplementalDocumentsMustReadMetadata,omitempty"`
	//
	SupplementalDocumentsMustView DSBool `json:"supplementalDocumentsMustView,omitempty"`
	//
	SupplementalDocumentsMustViewMetadata *SettingsMetadata `json:"supplementalDocumentsMustViewMetadata,omitempty"`
	//
	UseNewDocuSignExperienceInterface DSBool `json:"useNewDocuSignExperienceInterface,omitempty"`
	//
	UseNewDocuSignExperienceInterfaceMetadata *SettingsMetadata `json:"useNewDocuSignExperienceInterfaceMetadata,omitempty"`
	//
	UseNewSendingInterface DSBool `json:"useNewSendingInterface,omitempty"`
	//
	UseNewSendingInterfaceMetadata *SettingsMetadata `json:"useNewSendingInterfaceMetadata,omitempty"`
	//
	VaultingMode string `json:"vaultingMode,omitempty"`
	//
	VaultingModeMetadata *SettingsMetadata `json:"vaultingModeMetadata,omitempty"`
}

type AccountSeals

type AccountSeals struct {
	//
	Seals []SealIdentifier `json:"seals,omitempty"`
}

type AccountSettingsInformation

type AccountSettingsInformation struct {
	// 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 []NameValue `json:"accountSettings,omitempty"`
}

AccountSettingsInformation contains account settings information.

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.
	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"`
	// Starting position of the current result set.
	StartPosition string `json:"startPosition,omitempty"`
	// The total number of items in the search's result set. It will always be greater than or equal to the value of the `resultSetSize` field.
	TotalSetSize string `json:"totalSetSize,omitempty"`
}

AccountSharedAccess contains shared access information.

type AccountSignatureProvider

type AccountSignatureProvider struct {
	//
	IsRequired string `json:"isRequired,omitempty"`
	//
	Priority string `json:"priority,omitempty"`
	//
	SignatureProviderDisplayName string `json:"signatureProviderDisplayName,omitempty"`
	//
	SignatureProviderID string `json:"signatureProviderId,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"`
	//
	SignatureProviderOptionsMetadata []AccountSignatureProviderOption `json:"signatureProviderOptionsMetadata,omitempty"`
	//
	SignatureProviderRequiredOptions []SignatureProviderRequiredOption `json:"signatureProviderRequiredOptions,omitempty"`
}

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 {
	//
	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"`
	//
	ID string `json:"id,omitempty"`
	// Reserved:
	Name string `json:"name,omitempty"`
}

AddOn contains information about add ons.

type AddressInformation

type AddressInformation struct {
	// The city associated with the address.
	City string `json:"city,omitempty"`
	// Specifies the country associated with the address.
	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 state or province associated with the address.
	State string `json:"state,omitempty"`
	// The first line of the address.
	Street1 string `json:"street1,omitempty"`
	// The second line of the address (optional).
	Street2 string `json:"street2,omitempty"`
	// The zip or postal code associated with the address.
	Zip string `json:"zip,omitempty"`
}

AddressInformation contains address information.

type AddressInformationInput

type AddressInformationInput struct {
	// A complex type that contains the following information for the new account (all string content): address1, address2, city, country, fax, phone, postalCode and state.
	//
	// ###### Note: If country is US (United States) then State codes are validated for US States.
	//
	// Otherwise, State is treated as a non-validated string and serves the purpose of entering a state/province/region.
	// The maximum characters for the strings are:
	//
	// * address1, address2, city, country and state: 100 characters
	// * postalCode, phone, and fax: 20 characters
	//
	AddressInformation *AddressInformation `json:"addressInformation,omitempty"`
	// Specifies the display level for the recipient.
	// Valid values are:
	//
	// * ReadOnly
	// * Editable
	// * DoNotDisplay
	DisplayLevelCode string `json:"displayLevelCode,omitempty"`
	// When set to **true**, the information needs to be returned in the response.
	ReceiveInResponse DSBool `json:"receiveInResponse,omitempty"`
}

AddressInformationInput contains address input information.

type AddressInformationV2

type AddressInformationV2 struct {
	// First Line of the address.
	// Maximum length: 100 characters.
	Address1 string `json:"address1,omitempty"`
	// Second Line of the address.
	// Maximum length: 100 characters.
	Address2 string `json:"address2,omitempty"`
	//
	City string `json:"city,omitempty"`
	// Specifies the country associated with the address.
	Country string `json:"country,omitempty"`
	//
	Fax string `json:"fax,omitempty"`
	//
	Phone string `json:"phone,omitempty"`
	//
	PostalCode string `json:"postalCode,omitempty"`
	// The state or province associated with the address.
	StateOrProvince string `json:"stateOrProvince,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"`
	// 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"`
	// 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"`
	// Reserved: For DocuSign use only.
	DeliveredDateTime *time.Time `json:"deliveredDateTime,omitempty"`
	// Reserved: For DocuSign use only.
	DeliveryMethod string `json:"deliveryMethod,omitempty"`
	//
	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"`
	// 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"`
	//
	EmailRecipientPostSigningURL string `json:"emailRecipientPostSigningURL,omitempty"`
	// Specifies a sender provided valid URL string for redirecting an embedded recipient. When using this option, the embedded recipient still receives an email from DocuSign, just as a remote recipient would. When the document link in the email is clicked the recipient is redirected, through DocuSign, to the supplied URL to complete their actions. When routing to the URL, the sender's system (the server responding to the URL) must request a recipient token to launch a signing session.
	//
	// 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 that is launched by any partner.
	//
	// It is important to remember that in a typical embedded workflow the authentication of an embedded recipient is the responsibility of the sending application, DocuSign expects that senders will follow their own process for establishing the recipient's identity. In this workflow the recipient goes through the sending application before the embedded signing or viewing process in initiated. However, when the sending application sets `EmbeddedRecipientStartURL=SIGN_AT_DOCUSIGN`, the recipient goes directly to the embedded signing or viewing process bypassing the sending application and any authentication steps the sending application would use. In this case, DocuSign recommends that you use one of the normal DocuSign authentication features (Access Code, Phone Authentication, SMS Authentication, etc.) to verify the identity of the recipient.
	//
	// 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 fort the recipient or envelope. The merge fields are enclosed in double brackets.
	//
	// *Example*:
	//
	// `http://senderHost/[[mergeField1]]/ beginSigningSession? [[mergeField2]]&[[mergeField3]]`
	EmbeddedRecipientStartURL string `json:"embeddedRecipientStartURL,omitempty"`
	//
	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:
	FaxNumber string `json:"faxNumber,omitempty"`
	// The user's first name.
	// Maximum Length: 50 characters.
	FirstName string `json:"firstName,omitempty"`
	//
	FullName string `json:"fullName,omitempty"`
	// Specifies authentication check by name. The names used here must be the same as the authentication type names used by the account. These names can also be found 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 and in the web console Identify list these appear as `ID Check $` and `SMS Auth $`. To use ID check in an envelope, the `idCheckConfigurationName` should be `ID Check $`. If you wanted to use SMS, it would be `SMS Auth $` and you would need to add phone number information to the `smsAuthentication` node.
	IDCheckConfigurationName string `json:"idCheckConfigurationName,omitempty"`
	// A complex element that contains input information related to a recipient ID check. It can include the following information.
	//
	// addressInformationInput: Used to set recipient address information and consists of:
	//
	// * addressInformation: consists of six elements, with stree2 and zipPlus4 being optional. The elements are: street1, street2, city, state, zip, zipPlus4. The maximum length of each element is: street1/street2 = 150 characters, city = 50 characters, state = 2 characters, and zip/zipPlus4 = 20 characters.
	// * displayLevelCode: Specifies the display level for the recipient. Values are: ReadOnly, Editable, or DoNotDisplay.
	// * receiveInResponse: A Boolean element that specifies if the information needs to be returned in the response.
	//
	// dobInformationInput: Used to set recipient date of birth information and consists of:
	//
	// * dateOfBirth: Specifies the recipient's date, month and year of birth.
	// * displayLevelCode: Specifies the display level for the recipient. Values are: ReadOnly, Editable, or DoNotDisplay.
	// * receiveInResponse: A Boolean element that specifies if the information needs to be returned in the response.
	//
	// ssn4InformationInput: Used to set the last four digits of the recipient's SSN information and consists of:
	//
	// * ssn4: Specifies the last four digits of the recipient's SSN.
	// * displayLevelCode: Specifies the display level for the recipient. Values are: ReadOnly, Editable, or DoNotDisplay.
	// * receiveInResponse: A Boolean element that specifies if the information needs to be returned in the response.
	//
	// ssn9InformationInput: Used to set the recipient's SSN information. Note that the ssn9 information can never be returned in the response. The ssn9 input consists of:
	// * ssn9: Specifies the recipient's SSN.
	// * displayLevelCode: Specifies the display level for the recipient. Values are: ReadOnly, Editable, or DoNotDisplay.
	//
	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"`
	//
	LastName string `json:"lastName,omitempty"`
	//
	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"`
	// A complex type that Contains the 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:
	RecipientAttachments []RecipientAttachment `json:"recipientAttachments,omitempty"`
	//
	RecipientAuthenticationStatus *AuthenticationStatus `json:"recipientAuthenticationStatus,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"`
	//
	RecipientIDGUID string `json:"recipientIdGuid,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"`
	// 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"`
	// Contains the name/value pair information for the SAML assertion attributes:
	//
	// * name - The name of the SAML assertion attribute.
	// * value - The value associated with the named SAML assertion attribute.
	//
	// Your account must be set up to use SSO to use this.
	SamlAuthentication *RecipientSAMLAuthentication `json:"samlAuthentication,omitempty"`
	// The date and time the envelope was sent.
	SentDateTime *time.Time `json:"sentDateTime,omitempty"`
	// Reserved: For DocuSign use only.
	SignedDateTime *time.Time `json:"signedDateTime,omitempty"`
	//
	SigningGroupID string `json:"signingGroupId,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"`
	// 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"`
	//
	TotalTabCount string `json:"totalTabCount,omitempty"`
	// The user ID of the user being accessed. Generally this is the user ID of the authenticated user, but if the authenticated user is an Admin on the account, this may be another user the Admin user is accessing. **Note**: For [GET /v2/accounts/{accountId}/envelopes](https://developers.docusign.com/esign-rest-api/reference/Envelopes/Envelopes/listStatusChanges/#envelopesInformation)   `user_id` query parameter is not implemented and should not be used.
	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
	TabPosition
	// When set to **true**, the information in the tab is bold.
	Bold string `json:"bold,omitempty"`
	//  Specifies the approval text displayed in the tab.
	ButtonText string `json:"buttonText,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 used 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"`
	// Height of the tab in pixels.
	Height int32 `json:"height,omitempty"`
	// When set to **true**, the information in the tab is italic.
	Italic string `json:"italic,omitempty"`
	//
	Tooltip string `json:"tooltip,omitempty"`
	// When set to **true**, the information in the tab is underlined.
	Underline string `json:"underline,omitempty"`
	// Width of the tab in pixels.
	Width int32 `json:"width,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 {
	//
	AccessControl string `json:"accessControl,omitempty"`
	//
	AttachmentID string `json:"attachmentId,omitempty"`
	// Specifies the type of the attachment for the recipient.
	AttachmentType string `json:"attachmentType,omitempty"`
	//
	Data []byte `json:"data,omitempty"`
	//
	Label string `json:"label,omitempty"`
	//
	Name string `json:"name,omitempty"`
	//
	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, or 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 int32 `json:"totalCount,omitempty"`
}

AuthenticationMethod contains information about the method used for authentication.

type AuthenticationStatus

type AuthenticationStatus struct {
	//
	AccessCodeResult *EventResult `json:"accessCodeResult,omitempty"`
	//
	AgeVerifyResult *EventResult `json:"ageVerifyResult,omitempty"`
	//
	AnySocialIDResult *EventResult `json:"anySocialIDResult,omitempty"`
	//
	FacebookResult *EventResult `json:"facebookResult,omitempty"`
	//
	GoogleResult *EventResult `json:"googleResult,omitempty"`
	//
	IDLookupResult *EventResult `json:"idLookupResult,omitempty"`
	//
	IDQuestionsResult *EventResult `json:"idQuestionsResult,omitempty"`
	//
	LinkedinResult *EventResult `json:"linkedinResult,omitempty"`
	//
	LiveIDResult *EventResult `json:"liveIDResult,omitempty"`
	//
	OfacResult *EventResult `json:"ofacResult,omitempty"`
	//
	OpenIDResult *EventResult `json:"openIDResult,omitempty"`
	//
	PhoneAuthResult *EventResult `json:"phoneAuthResult,omitempty"`
	//
	STANPinResult *EventResult `json:"sTANPinResult,omitempty"`
	//
	SalesforceResult *EventResult `json:"salesforceResult,omitempty"`
	//
	SignatureProviderResult *EventResult `json:"signatureProviderResult,omitempty"`
	//
	SmsAuthResult *EventResult `json:"smsAuthResult,omitempty"`
	//
	TwitterResult *EventResult `json:"twitterResult,omitempty"`
	//
	YahooResult *EventResult `json:"yahooResult,omitempty"`
}

AuthenticationStatus 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 {
	// The total amount of the purchase.
	Amount string `json:"amount,omitempty"`
	// Reserved: TBD
	Balance string `json:"balance,omitempty"`
	// Reserved: TBD
	DueDate string `json:"dueDate,omitempty"`
	//
	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"`
}

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 {
	// The total amount of the purchase.
	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"`
}

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: TBD
	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"`
	//
	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"`
	// A complex type that sets the feature sets for the account.
	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"`
	//
	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"`
	//
	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: TBD
	IncrementalSeats string `json:"incrementalSeats,omitempty"`
	//
	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 {
	//
	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"`
	//
	PaymentMethod string `json:"paymentMethod,omitempty"`
	// The DocuSign Plan ID for the account.
	PlanID string `json:"planId,omitempty"`
	//
	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 this brand.
	BrandCompany string `json:"brandCompany,omitempty"`
	// The ID used to identify a specific brand in API calls.
	BrandID string `json:"brandId,omitempty"`
	// The name of the brand.
	BrandName string `json:"brandName,omitempty"`
	//
	Colors []NameValue `json:"colors,omitempty"`
	//
	EmailContent []BrandEmailContent `json:"emailContent,omitempty"`
	//
	ErrorDetails *ErrorDetails `json:"errorDetails,omitempty"`
	//
	IsOverridingCompanyName DSBool `json:"isOverridingCompanyName,omitempty"`
	//
	IsSendingDefault DSBool `json:"isSendingDefault,omitempty"`
	//
	IsSigningDefault DSBool `json:"isSigningDefault,omitempty"`
	//
	LandingPages []NameValue `json:"landingPages,omitempty"`
	//
	Links []BrandLink `json:"links,omitempty"`
	//
	Logos *BrandLogos `json:"logos,omitempty"`
	//
	Resources *BrandResourceUrls `json:"resources,omitempty"`
}

type BrandEmailContent

type BrandEmailContent struct {
	//
	Content string `json:"content,omitempty"`
	//
	EmailContentType string `json:"emailContentType,omitempty"`
	//
	EmailToLink string `json:"emailToLink,omitempty"`
	//
	LinkText string `json:"linkText,omitempty"`
}
type BrandLink struct {
	//
	LinkText string `json:"linkText,omitempty"`
	//
	LinkType string `json:"linkType,omitempty"`
	//
	ShowLink string `json:"showLink,omitempty"`
	//
	URLOrMailTo string `json:"urlOrMailTo,omitempty"`
}

type BrandLogos

type BrandLogos struct {
	//
	Email string `json:"email,omitempty"`
	//
	Primary string `json:"primary,omitempty"`
	//
	Secondary string `json:"secondary,omitempty"`
}

type BrandRequest

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

type BrandResourceUrls

type BrandResourceUrls struct {
	//
	Email string `json:"email,omitempty"`
	//
	Sending string `json:"sending,omitempty"`
	//
	Signing string `json:"signing,omitempty"`
	//
	SigningCaptive string `json:"signingCaptive,omitempty"`
}

type BrandResources

type BrandResources struct {
	//
	CreatedByUserInfo *UserInfo `json:"createdByUserInfo,omitempty"`
	//
	CreatedDate string `json:"createdDate,omitempty"`
	//
	ModifiedByUserInfo *UserInfo `json:"modifiedByUserInfo,omitempty"`
	//
	ModifiedDate string `json:"modifiedDate,omitempty"`
	//
	ModifiedTemplates []string `json:"modifiedTemplates,omitempty"`
	//
	ResourcesContentType string `json:"resourcesContentType,omitempty"`
	//
	ResourcesContentURI string `json:"resourcesContentUri,omitempty"`
}

type BrandResourcesList

type BrandResourcesList struct {
	//
	ResourcesContentTypes []BrandResources `json:"resourcesContentTypes,omitempty"`
}

type BrandsRequest

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

type BrandsResponse

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

BrandsResponse brand management for accounts

type BulkEnvelope

type BulkEnvelope struct {
	// Reserved: TBD
	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"`
	//
	Email string `json:"email,omitempty"`
	// The envelope ID of the envelope status that failed to post.
	EnvelopeID string `json:"envelopeId,omitempty"`
	// Contains a URI for an endpoint that you can use to retrieve the envelope or envelopes.
	EnvelopeURI string `json:"envelopeUri,omitempty"`
	//
	ErrorDetails *ErrorDetails `json:"errorDetails,omitempty"`
	//
	Name string `json:"name,omitempty"`
	//
	SubmittedDateTime *time.Time `json:"submittedDateTime,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 BulkEnvelopeStatus

type BulkEnvelopeStatus struct {
	// Specifies an identifier which can be used to retrieve a more detailed status of individual bulk recipient batches.
	BatchID string `json:"batchId,omitempty"`
	// The number of items returned in this response.
	BatchSize string `json:"batchSize,omitempty"`
	// Reserved: TBD
	BulkEnvelopes []BulkEnvelope `json:"bulkEnvelopes,omitempty"`
	// Reserved: TBD
	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.
	ResultSetSize string `json:"resultSetSize,omitempty"`
	// The number of entries with a status of sent.
	Sent string `json:"sent,omitempty"`
	// Starting position of the current result set.
	StartPosition string `json:"startPosition,omitempty"`
	//
	SubmittedDate string `json:"submittedDate,omitempty"`
	// The total number of items in the search's result set. It will always be greater than or equal to the value of the `resultSetSize` field.
	TotalSetSize string `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.
	ResultSetSize string `json:"resultSetSize,omitempty"`
	// Starting position of the current result set.
	StartPosition string `json:"startPosition,omitempty"`
	// The total number of items in the search's result set. It will always be greater than or equal to the value of the `resultSetSize` field.
	TotalSetSize string `json:"totalSetSize,omitempty"`
}

BulkEnvelopesResponse bulk envelopes

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.
	ResultSetSize string `json:"resultSetSize,omitempty"`
	// Starting position of the current result set.
	StartPosition string `json:"startPosition,omitempty"`
	// The total number of items in the search's result set. It will always be greater than or equal to the value of the `resultSetSize` field.
	TotalSetSize string `json:"totalSetSize,omitempty"`
}

BulkRecipientsResponse envelope 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"`
	//
	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"`
	// 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"`
	//
	AgentCanEditEmail DSBool `json:"agentCanEditEmail,omitempty"`
	//
	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"`
	// 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"`
	// Reserved: For DocuSign use only.
	DeliveredDateTime *time.Time `json:"deliveredDateTime,omitempty"`
	// Reserved: For DocuSign use only.
	DeliveryMethod string `json:"deliveryMethod,omitempty"`
	//
	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"`
	// 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"`
	//
	EmailRecipientPostSigningURL string `json:"emailRecipientPostSigningURL,omitempty"`
	// Specifies a sender provided valid URL string for redirecting an embedded recipient. When using this option, the embedded recipient still receives an email from DocuSign, just as a remote recipient would. When the document link in the email is clicked the recipient is redirected, through DocuSign, to the supplied URL to complete their actions. When routing to the URL, the sender's system (the server responding to the URL) must request a recipient token to launch a signing session.
	//
	// 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 that is launched by any partner.
	//
	// It is important to remember that in a typical embedded workflow the authentication of an embedded recipient is the responsibility of the sending application, DocuSign expects that senders will follow their own process for establishing the recipient's identity. In this workflow the recipient goes through the sending application before the embedded signing or viewing process in initiated. However, when the sending application sets `EmbeddedRecipientStartURL=SIGN_AT_DOCUSIGN`, the recipient goes directly to the embedded signing or viewing process bypassing the sending application and any authentication steps the sending application would use. In this case, DocuSign recommends that you use one of the normal DocuSign authentication features (Access Code, Phone Authentication, SMS Authentication, etc.) to verify the identity of the recipient.
	//
	// 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 fort the recipient or envelope. The merge fields are enclosed in double brackets.
	//
	// *Example*:
	//
	// `http://senderHost/[[mergeField1]]/ beginSigningSession? [[mergeField2]]&[[mergeField3]]`
	EmbeddedRecipientStartURL string `json:"embeddedRecipientStartURL,omitempty"`
	//
	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:
	FaxNumber string `json:"faxNumber,omitempty"`
	// The user's first name.
	// Maximum Length: 50 characters.
	FirstName string `json:"firstName,omitempty"`
	//
	FullName string `json:"fullName,omitempty"`
	// Specifies authentication check by name. The names used here must be the same as the authentication type names used by the account. These names can also be found 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 and in the web console Identify list these appear as `ID Check $` and `SMS Auth $`. To use ID check in an envelope, the `idCheckConfigurationName` should be `ID Check $`. If you wanted to use SMS, it would be `SMS Auth $` and you would need to add phone number information to the `smsAuthentication` node.
	IDCheckConfigurationName string `json:"idCheckConfigurationName,omitempty"`
	// A complex element that contains input information related to a recipient ID check. It can include the following information.
	//
	// addressInformationInput: Used to set recipient address information and consists of:
	//
	// * addressInformation: consists of six elements, with stree2 and zipPlus4 being optional. The elements are: street1, street2, city, state, zip, zipPlus4. The maximum length of each element is: street1/street2 = 150 characters, city = 50 characters, state = 2 characters, and zip/zipPlus4 = 20 characters.
	// * displayLevelCode: Specifies the display level for the recipient. Values are: ReadOnly, Editable, or DoNotDisplay.
	// * receiveInResponse: A Boolean element that specifies if the information needs to be returned in the response.
	//
	// dobInformationInput: Used to set recipient date of birth information and consists of:
	//
	// * dateOfBirth: Specifies the recipient's date, month and year of birth.
	// * displayLevelCode: Specifies the display level for the recipient. Values are: ReadOnly, Editable, or DoNotDisplay.
	// * receiveInResponse: A Boolean element that specifies if the information needs to be returned in the response.
	//
	// ssn4InformationInput: Used to set the last four digits of the recipient's SSN information and consists of:
	//
	// * ssn4: Specifies the last four digits of the recipient's SSN.
	// * displayLevelCode: Specifies the display level for the recipient. Values are: ReadOnly, Editable, or DoNotDisplay.
	// * receiveInResponse: A Boolean element that specifies if the information needs to be returned in the response.
	//
	// ssn9InformationInput: Used to set the recipient's SSN information. Note that the ssn9 information can never be returned in the response. The ssn9 input consists of:
	// * ssn9: Specifies the recipient's SSN.
	// * displayLevelCode: Specifies the display level for the recipient. Values are: ReadOnly, Editable, or DoNotDisplay.
	//
	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"`
	//
	LastName string `json:"lastName,omitempty"`
	// legal name of the recipient.
	//
	// Maximum Length: 100 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"`
	// A complex type that Contains the 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:
	RecipientAttachments []RecipientAttachment `json:"recipientAttachments,omitempty"`
	//
	RecipientAuthenticationStatus *AuthenticationStatus `json:"recipientAuthenticationStatus,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"`
	//
	RecipientIDGUID string `json:"recipientIdGuid,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"`
	// 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"`
	//
	SamlAuthentication *RecipientSAMLAuthentication `json:"samlAuthentication,omitempty"`
	// The date and time the envelope was sent.
	SentDateTime *time.Time `json:"sentDateTime,omitempty"`
	// Reserved: For DocuSign use only.
	SignedDateTime *time.Time `json:"signedDateTime,omitempty"`
	//
	SigningGroupID string `json:"signingGroupId,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"`
	// 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"`
	//
	TotalTabCount string `json:"totalTabCount,omitempty"`
	// The user ID of the user being accessed. Generally this is the user ID of the authenticated user, but if the authenticated user is an Admin on the account, this may be another user the Admin user is accessing. **Note**: For [GET /v2/accounts/{accountId}/envelopes](https://developers.docusign.com/esign-rest-api/reference/Envelopes/Envelopes/listStatusChanges/#envelopesInformation)   `user_id` query parameter is not implemented and should not be used.
	UserID string `json:"userId,omitempty"`
}

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"`
	// 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"`
	//
	AgentCanEditEmail DSBool `json:"agentCanEditEmail,omitempty"`
	//
	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"`
	// 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"`
	// Reserved: For DocuSign use only.
	DeliveredDateTime *time.Time `json:"deliveredDateTime,omitempty"`
	// Reserved: For DocuSign use only.
	DeliveryMethod string `json:"deliveryMethod,omitempty"`
	//
	DocumentVisibility []DocumentVisibility `json:"documentVisibility,omitempty"`
	//
	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"`
	//
	EmailRecipientPostSigningURL string `json:"emailRecipientPostSigningURL,omitempty"`
	// Specifies a sender provided valid URL string for redirecting an embedded recipient. When using this option, the embedded recipient still receives an email from DocuSign, just as a remote recipient would. When the document link in the email is clicked the recipient is redirected, through DocuSign, to the supplied URL to complete their actions. When routing to the URL, the sender's system (the server responding to the URL) must request a recipient token to launch a signing session.
	//
	// 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 that is launched by any partner.
	//
	// It is important to remember that in a typical embedded workflow the authentication of an embedded recipient is the responsibility of the sending application, DocuSign expects that senders will follow their own process for establishing the recipient's identity. In this workflow the recipient goes through the sending application before the embedded signing or viewing process in initiated. However, when the sending application sets `EmbeddedRecipientStartURL=SIGN_AT_DOCUSIGN`, the recipient goes directly to the embedded signing or viewing process bypassing the sending application and any authentication steps the sending application would use. In this case, DocuSign recommends that you use one of the normal DocuSign authentication features (Access Code, Phone Authentication, SMS Authentication, etc.) to verify the identity of the recipient.
	//
	// 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 fort the recipient or envelope. The merge fields are enclosed in double brackets.
	//
	// *Example*:
	//
	// `http://senderHost/[[mergeField1]]/ beginSigningSession? [[mergeField2]]&[[mergeField3]]`
	EmbeddedRecipientStartURL string `json:"embeddedRecipientStartURL,omitempty"`
	//
	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:
	FaxNumber string `json:"faxNumber,omitempty"`
	// The user's first name.
	// Maximum Length: 50 characters.
	FirstName string `json:"firstName,omitempty"`
	//
	FullName string `json:"fullName,omitempty"`
	// Specifies authentication check by name. The names used here must be the same as the authentication type names used by the account. These names can also be found 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 and in the web console Identify list these appear as `ID Check $` and `SMS Auth $`. To use ID check in an envelope, the `idCheckConfigurationName` should be `ID Check $`. If you wanted to use SMS, it would be `SMS Auth $` and you would need to add phone number information to the `smsAuthentication` node.
	IDCheckConfigurationName string `json:"idCheckConfigurationName,omitempty"`
	// A complex element that contains input information related to a recipient ID check. It can include the following information.
	//
	// addressInformationInput: Used to set recipient address information and consists of:
	//
	// * addressInformation: consists of six elements, with stree2 and zipPlus4 being optional. The elements are: street1, street2, city, state, zip, zipPlus4. The maximum length of each element is: street1/street2 = 150 characters, city = 50 characters, state = 2 characters, and zip/zipPlus4 = 20 characters.
	// * displayLevelCode: Specifies the display level for the recipient. Values are: ReadOnly, Editable, or DoNotDisplay.
	// * receiveInResponse: A Boolean element that specifies if the information needs to be returned in the response.
	//
	// dobInformationInput: Used to set recipient date of birth information and consists of:
	//
	// * dateOfBirth: Specifies the recipient's date, month and year of birth.
	// * displayLevelCode: Specifies the display level for the recipient. Values are: ReadOnly, Editable, or DoNotDisplay.
	// * receiveInResponse: A Boolean element that specifies if the information needs to be returned in the response.
	//
	// ssn4InformationInput: Used to set the last four digits of the recipient's SSN information and consists of:
	//
	// * ssn4: Specifies the last four digits of the recipient's SSN.
	// * displayLevelCode: Specifies the display level for the recipient. Values are: ReadOnly, Editable, or DoNotDisplay.
	// * receiveInResponse: A Boolean element that specifies if the information needs to be returned in the response.
	//
	// ssn9InformationInput: Used to set the recipient's SSN information. Note that the ssn9 information can never be returned in the response. The ssn9 input consists of:
	// * ssn9: Specifies the recipient's SSN.
	// * displayLevelCode: Specifies the display level for the recipient. Values are: ReadOnly, Editable, or DoNotDisplay.
	//
	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"`
	//
	LastName string `json:"lastName,omitempty"`
	//
	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"`
	// A complex type that Contains the 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:
	RecipientAttachments []RecipientAttachment `json:"recipientAttachments,omitempty"`
	//
	RecipientAuthenticationStatus *AuthenticationStatus `json:"recipientAuthenticationStatus,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"`
	//
	RecipientIDGUID string `json:"recipientIdGuid,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"`
	// 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"`
	//
	SamlAuthentication *RecipientSAMLAuthentication `json:"samlAuthentication,omitempty"`
	// The date and time the envelope was sent.
	SentDateTime *time.Time `json:"sentDateTime,omitempty"`
	// Reserved: For DocuSign use only.
	SignedDateTime *time.Time `json:"signedDateTime,omitempty"`
	//
	SigningGroupID string `json:"signingGroupId,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"`
	// 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"`
	//
	TotalTabCount string `json:"totalTabCount,omitempty"`
	// The user ID of the user being accessed. Generally this is the user ID of the authenticated user, but if the authenticated user is an Admin on the account, this may be another user the Admin user is accessing. **Note**: For [GET /v2/accounts/{accountId}/envelopes](https://developers.docusign.com/esign-rest-api/reference/Envelopes/Envelopes/listStatusChanges/#envelopesInformation)   `user_id` query parameter is not implemented and should not be used.
	UserID string `json:"userId,omitempty"`
}

type Checkbox

type Checkbox struct {
	TabBase
	TabPosition
	// When set to **true**, the signer cannot change the data of the custom tab.
	Locked DSBool `json:"locked,omitempty"`
	// Specifies the tool tip text for the tab.
	Name string `json:"name,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"`
	// This property does not apply to `checkbox` tabs. Check boxes are always optional.
	Required TabRequired `json:"required,omitempty"`
	// When set to **true**, the checkbox is selected.
	Selected DSBool `json:"selected,omitempty"`
	// When set to **true**, this custom tab is shared.
	Shared DSBool `json:"shared,omitempty"`
	//
	Tooltip string `json:"tooltip,omitempty"`
}

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

type ChunkedUploadPart

type ChunkedUploadPart struct {
	//
	Sequence string `json:"sequence,omitempty"`
	// Reserved: TBD
	Size string `json:"size,omitempty"`
}

type ChunkedUploadRequest

type ChunkedUploadRequest struct {
	//
	ChunkedUploadID string `json:"chunkedUploadId,omitempty"`
	//
	Data []byte `json:"data,omitempty"`
}

type ChunkedUploadResponse

type ChunkedUploadResponse struct {
	//
	Checksum string `json:"checksum,omitempty"`
	//
	ChunkedUploadID string `json:"chunkedUploadId,omitempty"`
	//
	ChunkedUploadParts []ChunkedUploadPart `json:"chunkedUploadParts,omitempty"`
	//
	ChunkedUploadURI string `json:"chunkedUploadUri,omitempty"`
	//
	Committed string `json:"committed,omitempty"`
	//
	ExpirationDateTime *time.Time `json:"expirationDateTime,omitempty"`
	//
	MaxChunkedUploadParts string `json:"maxChunkedUploadParts,omitempty"`
	//
	MaxTotalSize string `json:"maxTotalSize,omitempty"`
	//
	TotalSize string `json:"totalSize,omitempty"`
}

ChunkedUploadResponse chunked Uploads resource

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"`
	//
	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 Company

type Company struct {
	TabBase
	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"`
	// 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 signer cannot change the data of the custom tab.
	Locked DSBool `json:"locked,omitempty"`
	// An optional value that describes the maximum length of the property when the property is a string.
	MaxLength int32 `json:"maxLength,omitempty"`
	// The initial value of the tab when it was sent to the recipient.
	OriginalValue string `json:"originalValue,omitempty"`
	// When set to **true**, the signer is required to fill out this tab
	Required TabRequired `json:"required,omitempty"`
	//
	Tooltip string `json:"tooltip,omitempty"`
	// Width of the tab in pixels.
	Width int32 `json:"width,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 {
	//
	CorrelationID string `json:"correlationId,omitempty"`
	//
	DocumentUpdateInfos []DocumentUpdateInfo `json:"documentUpdateInfos,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"`
	// Record count.
	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"`
	// If merge field's are being used, specifies the type of the merge field. The only  supported value is **salesforce**.
	ConfigurationType string `json:"configurationType,omitempty"`
	// The ID of the custom Connect configuration being accessed.
	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"`
	// 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 string `json:"envelopeEvents,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"`
	// reserved
	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**, Connect will include the envelope time zone information.
	IncludeTimeZoneInformation DSBool `json:"includeTimeZoneInformation,omitempty"`
	//
	Name string `json:"name,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 string `json:"recipientEvents,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"`
	// 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"`
	// This is the web address and name of your listener or Retrieving Service endpoint. You need to include HTTPS:// in the web address.
	URLToPublishTo string `json:"urlToPublishTo,omitempty"`
	// When set to **true**, the notifications are sent to your endpoint as SOAP requests.
	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"`
}

type ConnectDebugLog

type ConnectDebugLog struct {
	//
	ConnectConfig string `json:"connectConfig,omitempty"`
	//
	ErrorDetails *ErrorDetails `json:"errorDetails,omitempty"`
	//
	EventDateTime *time.Time `json:"eventDateTime,omitempty"`
	//
	EventDescription string `json:"eventDescription,omitempty"`
	//
	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 account ID associated with the envelope.
	AccountID string `json:"accountId,omitempty"`
	// The web address of the listener or Retrieving Service end point for Connect.
	ConfigURL string `json:"configUrl,omitempty"`
	// A complex element containing information about the Connect configuration, error details, date/time, description and payload.
	//
	// This is only included in the response if the query additional_info=true is used.
	ConnectDebugLog []ConnectDebugLog `json:"connectDebugLog,omitempty"`
	// The 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"`
	// The date and time the entry was created.
	Created *time.Time `json:"created,omitempty"`
	// The email that sent the envelope.
	Email string `json:"email,omitempty"`
	// The envelope ID of the envelope status that failed to post.
	EnvelopeID string `json:"envelopeId,omitempty"`
	// The error that caused the Connect post to fail.
	Error string `json:"error,omitempty"`
	// The failure log ID for the failure.
	FailureID string `json:"failureId,omitempty"`
	// The URI for the failure.
	FailureURI string `json:"failureUri,omitempty"`
	// The date and time the last attempt to post.
	LastTry string `json:"lastTry,omitempty"`
	// The Connect log ID for the entry.
	LogID string `json:"logId,omitempty"`
	// The URI for the log item.
	LogURI string `json:"logUri,omitempty"`
	// The number of times the Connect post has been retried.
	RetryCount string `json:"retryCount,omitempty"`
	// The UEI to retry to publish the Connect failure.
	RetryURI string `json:"retryUri,omitempty"`
	// The new envelope status for the failed Connect post. The possible values are: Any, Voided, Created, Deleted, Sent, Delivered, Signed, Completed, Declined, TimedOut, Template, or 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 {
	// An array of containing failure information from the Connect failure log.
	Failures []ConnectLog `json:"failures,omitempty"`
	// A complex type containing Connect log information. It is divided into two sections, one for regular logs and one for Connect failures.
	Logs []ConnectLog `json:"logs,omitempty"`
	// Record count.
	TotalRecords string `json:"totalRecords,omitempty"`
	// Type of the user. Valid values: type_owner, type_participant.
	Type string `json:"type,omitempty"`
}

ConnectLogs connect event logging

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"`
	//
	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"`
	//
	UseConsumerDisclosureWithinAccount DSBool `json:"useConsumerDisclosureWithinAccount,omitempty"`
	//
	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 envelope consumer disclosures

type Contact

type Contact struct {
	// 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"`
	//
	ErrorDetails *ErrorDetails `json:"errorDetails,omitempty"`
	//
	Name string `json:"name,omitempty"`
	//
	Organization string `json:"organization,omitempty"`
	// When set to **true**, this custom 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.
	ResultSetSize string `json:"resultSetSize,omitempty"`
	// Starting position of the current result set.
	StartPosition string `json:"startPosition,omitempty"`
	// The total number of items in the search's result set. It will always be greater than or equal to the value of the `resultSetSize` field.
	TotalSetSize string `json:"totalSetSize,omitempty"`
}

type ContactModRequest

type ContactModRequest struct {
	//
	Contacts []Contact `json:"contacts,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 {
	// Type of the user. Valid values: 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.
	//
	// This can be the same as billing address and follows the same rules as billingAddress. It contains the following elements: street1, street2, city, state, zip, zipPlus4, phone, fax, and country.
	Address *AddressInformation `json:"address,omitempty"`
	// The number on the credit card.
	CardNumber string `json:"cardNumber,omitempty"`
	// The credit card type. Valid values are: visa, mastercard, or amex.
	CardType string `json:"cardType,omitempty"`
	// The month that the credit card expires (1-12).
	ExpirationMonth string `json:"expirationMonth,omitempty"`
	// The year 4 digit year in which the credit card expires.
	ExpirationYear string `json:"expirationYear,omitempty"`
	// The exact name printed on the credit card.
	NameOnCard string `json:"nameOnCard,omitempty"`
}

type CreditCardTypes

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

type CurrencyFeatureSetPrice

type CurrencyFeatureSetPrice struct {
	// Specifies the alternate ISO currency code for the account.
	CurrencyCode string `json:"currencyCode,omitempty"`
	// Specifies the alternate currency symbol for the account.
	CurrencySymbol string `json:"currencySymbol,omitempty"`
	// An incremental envelope cost for plans with envelope overages (when `isEnabled` is set to **true**.)
	EnvelopeFee DSBool `json:"envelopeFee,omitempty"`
	// Specifies a one-time fee associated with the plan (when `isEnabled` is set to **true**.)
	FixedFee DSBool `json:"fixedFee,omitempty"`
	// Specifies an incremental seat cost for seat-based plans (when `isEnabled` is set to **true**.)
	SeatFee DSBool `json:"seatFee,omitempty"`
}

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"`
	//
	ErrorDetails *ErrorDetails `json:"errorDetails,omitempty"`
	// An ID used to specify a custom field.
	FieldID string `json:"fieldId,omitempty"`
	//
	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 CustomFieldV2

type CustomFieldV2 struct {
	// If merge field's are being used, specifies the type of the merge field. The only  supported value is **salesforce**.
	ConfigurationType string `json:"configurationType,omitempty"`
	//
	ErrorDetails *ErrorDetails `json:"errorDetails,omitempty"`
	// An ID used to specify a custom field.
	FieldID string `json:"fieldId,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"`
	// The value of the custom field.
	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"`
}

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
	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"`
	// 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 signer cannot change the data of the custom tab.
	Locked DSBool `json:"locked,omitempty"`
	// An optional value that describes the maximum length of the property when the property is a string.
	MaxLength int32 `json:"maxLength,omitempty"`
	// The initial value of the tab when it was sent to the recipient.
	OriginalValue string `json:"originalValue,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"`
	// 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"`
	// When set to **true**, the signer is required to fill out this tab
	Required TabRequired `json:"required,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"`
	// When set to **true**, this custom tab is shared.
	Shared DSBool `json:"shared,omitempty"`
	//
	Tooltip string `json:"tooltip,omitempty"`
	// The message displayed if the custom tab fails input validation (either custom of embedded).
	ValidationMessage string `json:"validationMessage,omitempty"`
	// A regular expressionn used to validate input for the tab.
	ValidationPattern string `json:"validationPattern,omitempty"`
	// Width of the tab in pixels.
	Width int32 `json:"width,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
	TabPosition
	TabStyle
	TabValue
	//
	Tooltip string `json:"tooltip,omitempty"`
}

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

type DateStampProperties

type DateStampProperties struct {
	//
	DateAreaHeight string `json:"dateAreaHeight,omitempty"`
	//
	DateAreaWidth string `json:"dateAreaWidth,omitempty"`
	//
	DateAreaX string `json:"dateAreaX,omitempty"`
	//
	DateAreaY string `json:"dateAreaY,omitempty"`
}

type Decline

type Decline struct {
	TabBase
	TabPosition
	// When set to **true**, the information in the tab is bold.
	Bold string `json:"bold,omitempty"`
	//  Specifies the decline text displayed in the tab.
	ButtonText string `json:"buttonText,omitempty"`
	// The reason the recipient declined the document.
	DeclineReason string `json:"declineReason,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 used 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"`
	// Height of the tab in pixels.
	Height int32 `json:"height,omitempty"`
	// When set to **true**, the information in the tab is italic.
	Italic string `json:"italic,omitempty"`
	//
	Tooltip string `json:"tooltip,omitempty"`
	// When set to **true**, the information in the tab is underlined.
	Underline string `json:"underline,omitempty"`
	// Width of the tab in pixels.
	Width int32 `json:"width,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 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"`
	// When set to **true**, the information needs to be returned in the response.
	ReceiveInResponse DSBool `json:"receiveInResponse,omitempty"`
}

DobInformationInput complex type containing:

* dateOfBirth * displayLevelCode * receiveInResponse

type Document

type Document struct {
	// Reserved for DocuSign
	ApplyAnchorTabs string `json:"applyAnchorTabs,omitempty"`
	// If **true**, this document is considered an authoritative copy.
	//
	// If this property is not set, it gets its value from the envelope's `authoritativeCopyDefault` property if it's set, or the envelope's `authoritativeCopy` property.
	//
	// If **false**, this document is not an authoritative copy regardless of the envelope's `authoritativeCopyDefault` or `authoritativeCopy` property.
	AuthoritativeCopy DSBool `json:"authoritativeCopy,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"`
	//
	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"`
	//
	Name string `json:"name,omitempty"`
	// An optional value that sets the direction order used to sort the item list.
	//
	// Valid values are:
	//
	// * asc = ascending sort order
	// * desc = descending sort order
	Order string `json:"order,omitempty"`
	//
	Pages string `json:"pages,omitempty"`
	//
	Password string `json:"password,omitempty"`
	// The file id from the cloud storage service where the document is located. This information is returned using [ML:GET /folders] or [ML:/folders/{folderid}].
	RemoteURL string `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"`
	// 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. See the [ML:Transform PDF Fields] section for more information about how fields are transformed into DocuSign tabs.
	TransformPdfFields DSBool `json:"transformPdfFields,omitempty"`
	//
	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"`
	//
	DisplayOrder int32 `json:"displayOrder,omitempty"`
	//
	DisplayPageNumber int32 `json:"displayPageNumber,omitempty"`
	//
	DocumentGUID string `json:"documentGuid,omitempty"`
	// The ID of the document being accessed.
	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 {
	// The ID of the document being accessed.
	DocumentID string `json:"documentId,omitempty"`
	//
	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"`
	//
	DisplaySettings *DocumentHTMLDisplaySettings `json:"displaySettings,omitempty"`
	//
	EndAnchor string `json:"endAnchor,omitempty"`
	//
	RemoveEndAnchor bool `json:"removeEndAnchor,omitempty"`
	//
	RemoveStartAnchor bool `json:"removeStartAnchor,omitempty"`
	//
	StartAnchor string `json:"startAnchor,omitempty"`
}

type DocumentHTMLDisplaySettings

type DocumentHTMLDisplaySettings struct {
	//
	CellStyle string `json:"cellStyle,omitempty"`
	//
	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"`
	//
	DisplayLabel string `json:"displayLabel,omitempty"`
	//
	DisplayOrder int32 `json:"displayOrder,omitempty"`
	//
	DisplayPageNumber int32 `json:"displayPageNumber,omitempty"`
	//
	HideLabelWhenOpened bool `json:"hideLabelWhenOpened,omitempty"`
	//
	InlineOuterStyle string `json:"inlineOuterStyle,omitempty"`
	//
	LabelWhenOpened string `json:"labelWhenOpened,omitempty"`
	//
	ScrollToTopWhenOpened bool `json:"scrollToTopWhenOpened,omitempty"`
	//
	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"`
	//
	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 {
	//
	Data string `json:"data,omitempty"`
	// The ID of the document being accessed.
	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 {
	// 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"`
	//
	ErrorDetails *ErrorDetails `json:"errorDetails,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"`
	//
	Rights string `json:"rights,omitempty"`
	//
	Visible string `json:"visible,omitempty"`
}

type DocumentVisibilityList

type DocumentVisibilityList struct {
	//
	DocumentVisibility []DocumentVisibility `json:"documentVisibility,omitempty"`
}

type ENoteConfiguration

type ENoteConfiguration struct {
	//
	ConnectConfigured string `json:"connectConfigured,omitempty"`
	//
	ENoteConfigured string `json:"eNoteConfigured,omitempty"`
	//
	Organization string `json:"organization,omitempty"`
	//
	Password string `json:"password,omitempty"`
	//
	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"`
	// 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"`
	// 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"`
	// Reserved: For DocuSign use only.
	DeliveredDateTime *time.Time `json:"deliveredDateTime,omitempty"`
	// Reserved: For DocuSign use only.
	DeliveryMethod string `json:"deliveryMethod,omitempty"`
	//
	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"`
	// 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"`
	//
	EmailRecipientPostSigningURL string `json:"emailRecipientPostSigningURL,omitempty"`
	// Specifies a sender provided valid URL string for redirecting an embedded recipient. When using this option, the embedded recipient still receives an email from DocuSign, just as a remote recipient would. When the document link in the email is clicked the recipient is redirected, through DocuSign, to the supplied URL to complete their actions. When routing to the URL, the sender's system (the server responding to the URL) must request a recipient token to launch a signing session.
	//
	// 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 that is launched by any partner.
	//
	// It is important to remember that in a typical embedded workflow the authentication of an embedded recipient is the responsibility of the sending application, DocuSign expects that senders will follow their own process for establishing the recipient's identity. In this workflow the recipient goes through the sending application before the embedded signing or viewing process in initiated. However, when the sending application sets `EmbeddedRecipientStartURL=SIGN_AT_DOCUSIGN`, the recipient goes directly to the embedded signing or viewing process bypassing the sending application and any authentication steps the sending application would use. In this case, DocuSign recommends that you use one of the normal DocuSign authentication features (Access Code, Phone Authentication, SMS Authentication, etc.) to verify the identity of the recipient.
	//
	// 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 fort the recipient or envelope. The merge fields are enclosed in double brackets.
	//
	// *Example*:
	//
	// `http://senderHost/[[mergeField1]]/ beginSigningSession? [[mergeField2]]&[[mergeField3]]`
	EmbeddedRecipientStartURL string `json:"embeddedRecipientStartURL,omitempty"`
	//
	ErrorDetails *ErrorDetails `json:"errorDetails,omitempty"`
	// Reserved:
	FaxNumber string `json:"faxNumber,omitempty"`
	// The user's first name.
	// Maximum Length: 50 characters.
	FirstName string `json:"firstName,omitempty"`
	//
	FullName string `json:"fullName,omitempty"`
	// Specifies authentication check by name. The names used here must be the same as the authentication type names used by the account. These names can also be found 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 and in the web console Identify list these appear as `ID Check $` and `SMS Auth $`. To use ID check in an envelope, the `idCheckConfigurationName` should be `ID Check $`. If you wanted to use SMS, it would be `SMS Auth $` and you would need to add phone number information to the `smsAuthentication` node.
	IDCheckConfigurationName string `json:"idCheckConfigurationName,omitempty"`
	// A complex element that contains input information related to a recipient ID check. It can include the following information.
	//
	// addressInformationInput: Used to set recipient address information and consists of:
	//
	// * addressInformation: consists of six elements, with stree2 and zipPlus4 being optional. The elements are: street1, street2, city, state, zip, zipPlus4. The maximum length of each element is: street1/street2 = 150 characters, city = 50 characters, state = 2 characters, and zip/zipPlus4 = 20 characters.
	// * displayLevelCode: Specifies the display level for the recipient. Values are: ReadOnly, Editable, or DoNotDisplay.
	// * receiveInResponse: A Boolean element that specifies if the information needs to be returned in the response.
	//
	// dobInformationInput: Used to set recipient date of birth information and consists of:
	//
	// * dateOfBirth: Specifies the recipient's date, month and year of birth.
	// * displayLevelCode: Specifies the display level for the recipient. Values are: ReadOnly, Editable, or DoNotDisplay.
	// * receiveInResponse: A Boolean element that specifies if the information needs to be returned in the response.
	//
	// ssn4InformationInput: Used to set the last four digits of the recipient's SSN information and consists of:
	//
	// * ssn4: Specifies the last four digits of the recipient's SSN.
	// * displayLevelCode: Specifies the display level for the recipient. Values are: ReadOnly, Editable, or DoNotDisplay.
	// * receiveInResponse: A Boolean element that specifies if the information needs to be returned in the response.
	//
	// ssn9InformationInput: Used to set the recipient's SSN information. Note that the ssn9 information can never be returned in the response. The ssn9 input consists of:
	// * ssn9: Specifies the recipient's SSN.
	// * displayLevelCode: Specifies the display level for the recipient. Values are: ReadOnly, Editable, or DoNotDisplay.
	//
	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"`
	//
	LastName string `json:"lastName,omitempty"`
	// legal name of the recipient.
	//
	// Maximum Length: 100 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"`
	// A complex type that Contains the 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:
	RecipientAttachments []RecipientAttachment `json:"recipientAttachments,omitempty"`
	//
	RecipientAuthenticationStatus *AuthenticationStatus `json:"recipientAuthenticationStatus,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"`
	//
	RecipientIDGUID string `json:"recipientIdGuid,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"`
	// 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"`
	//
	SamlAuthentication *RecipientSAMLAuthentication `json:"samlAuthentication,omitempty"`
	// The date and time the envelope was sent.
	SentDateTime *time.Time `json:"sentDateTime,omitempty"`
	// Reserved: For DocuSign use only.
	SignedDateTime *time.Time `json:"signedDateTime,omitempty"`
	//
	SigningGroupID string `json:"signingGroupId,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"`
	// 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"`
	//
	TotalTabCount string `json:"totalTabCount,omitempty"`
	// The user ID of the user being accessed. Generally this is the user ID of the authenticated user, but if the authenticated user is an Admin on the account, this may be another user the Admin user is accessing. **Note**: For [GET /v2/accounts/{accountId}/envelopes](https://developers.docusign.com/esign-rest-api/reference/Envelopes/Envelopes/listStatusChanges/#envelopesInformation)   `user_id` query parameter is not implemented and should not be used.
	UserID string `json:"userId,omitempty"`
}

type Email

type Email struct {
	TabBase
	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"`
	// 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 signer cannot change the data of the custom tab.
	Locked DSBool `json:"locked,omitempty"`
	// An optional value that describes the maximum length of the property when the property is a string.
	MaxLength int32 `json:"maxLength,omitempty"`
	// The initial value of the tab when it was sent to the recipient.
	OriginalValue string `json:"originalValue,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"`
	// 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"`
	// When set to **true**, the signer is required to fill out this tab
	Required TabRequired `json:"required,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"`
	// When set to **true**, this custom tab is shared.
	Shared DSBool `json:"shared,omitempty"`
	//
	Tooltip string `json:"tooltip,omitempty"`
	// The message displayed if the custom tab fails input validation (either custom of embedded).
	ValidationMessage string `json:"validationMessage,omitempty"`
	// A regular expressionn used to validate input for the tab.
	ValidationPattern string `json:"validationPattern,omitempty"`
	// Width of the tab in pixels.
	Width int32 `json:"width,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
	TabPosition
	TabStyle
	TabValue
	//
	Tooltip string `json:"tooltip,omitempty"`
}

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

type EmailSettings

type EmailSettings struct {
	// A list of email addresses that receive a copy of all email communications for an envelope. You can use this for archiving purposes.
	BccEmailAddresses []BccEmailAddress `json:"bccEmailAddresses,omitempty"`
	//
	ReplyEmailAddressOverride string `json:"replyEmailAddressOverride,omitempty"`
	//
	ReplyEmailNameOverride string `json:"replyEmailNameOverride,omitempty"`
}

EmailSettings envelope email settings

type Envelope

type Envelope struct {
	// When set to **true**, Document Markup is enabled for envelope. Account must have Document Markup enabled to use this
	AllowMarkup DSBool `json:"allowMarkup,omitempty"`
	// When set to **true**, the recipient can redirect an envelope to a more appropriate recipient.
	AllowReassign DSBool `json:"allowReassign,omitempty"`
	//
	AllowViewHistory DSBool `json:"allowViewHistory,omitempty"`
	// When set to **true**, the envelope is queued for processing and the value of the `status` property is set to 'Processing'. Additionally, get status calls return 'Processing' until completed.
	//
	//
	// **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"`
	//
	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"`
	// Specifies whether auto navigation is set for the recipient.
	//
	AutoNavigation string `json:"autoNavigation,omitempty"`
	// The unique identifier of a brand.
	BrandID string `json:"brandId,omitempty"`
	//
	BrandLock string `json:"brandLock,omitempty"`
	// Retrieves a URI for an endpoint allowing you to easily retrieve certificate information.
	CertificateURI string `json:"certificateUri,omitempty"`
	// Specifies the date and time this item was completed.
	CompletedDateTime *time.Time `json:"completedDateTime,omitempty"`
	// Indicates 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"`
	// Reserved: For DocuSign use only.
	DeliveredDateTime *time.Time `json:"deliveredDateTime,omitempty"`
	//
	DocumentsCombinedURI string `json:"documentsCombinedUri,omitempty"`
	// Contains a URI for an endpoint that you can use to retrieve the documents.
	DocumentsURI string `json:"documentsUri,omitempty"`
	//
	EmailBlurb string `json:"emailBlurb,omitempty"`
	//
	EmailSettings *EmailSettings `json:"emailSettings,omitempty"`
	// Specifies the subject of the email that is sent to all recipients.
	//
	// See [ML:Template Email Subject Merge Fields] for information about adding merge field information to the email subject.
	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**, 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.
	//
	// ###### Note: Your account must have Document Visibility enabled to use this.
	EnforceSignerVisibility DSBool `json:"enforceSignerVisibility,omitempty"`
	// The envelope's GUID. Eg 93be49ab-afa0-4adf-933c-f752070d71ec
	EnvelopeID string `json:"envelopeId,omitempty"`
	// When set to **true**, Envelope ID Stamping is enabled.
	EnvelopeIDStamping DSBool `json:"envelopeIdStamping,omitempty"`
	// Contains a URI for an endpoint that you can use to retrieve the envelope or envelopes.
	EnvelopeURI string `json:"envelopeUri,omitempty"`
	//
	InitialSentDateTime *time.Time `json:"initialSentDateTime,omitempty"`
	// When set to **true**, indicates that this module is enabled on the account.
	Is21CFRPart11 DSBool `json:"is21CFRPart11,omitempty"`
	//
	IsSignatureProviderEnvelope DSBool `json:"isSignatureProviderEnvelope,omitempty"`
	// The date and time the item was last modified.
	LastModifiedDateTime *time.Time `json:"lastModifiedDateTime,omitempty"`
	//
	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"`
	//
	Notification DSBool `json:"notification,omitempty"`
	// Contains a URI for an endpoint that you can use to retrieve the notifications.
	NotificationURI string `json:"notificationUri,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"`
	//
	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"`
	// The date and time the envelope was sent.
	SentDateTime *time.Time `json:"sentDateTime,omitempty"`
	//
	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"`
	// Item status. <!-- TODO -->
	Status string `json:"status,omitempty"`
	// The data and time the status changed.
	StatusChangedDateTime *time.Time `json:"statusChangedDateTime,omitempty"`
	// Contains a URI for an endpoint which you can use to retrieve the templates.
	TemplatesURI string `json:"templatesUri,omitempty"`
	// Specifies the Transaction ID from the AppStore.
	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"`
}

type EnvelopeAttachment

type EnvelopeAttachment struct {
	//
	AccessControl string `json:"accessControl,omitempty"`
	//
	AttachmentID string `json:"attachmentId,omitempty"`
	//
	AttachmentType string `json:"attachmentType,omitempty"`
	//
	ErrorDetails *ErrorDetails `json:"errorDetails,omitempty"`
	//
	Label string `json:"label,omitempty"`
	//
	Name string `json:"name,omitempty"`
}

type EnvelopeAttachmentsRequest

type EnvelopeAttachmentsRequest struct {
	//
	Attachments []Attachment `json:"attachments,omitempty"`
}

type EnvelopeAttachmentsResult

type EnvelopeAttachmentsResult struct {
	//
	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 {
	// 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 set to **true**, Document Markup is enabled for envelope. Account must have Document Markup enabled to use this
	AllowMarkup DSBool `json:"allowMarkup,omitempty"`
	// When set to **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"`
	//
	AllowViewHistory DSBool `json:"allowViewHistory,omitempty"`
	// When set to **true**, the envelope is queued for processing and the value of the `status` property is set to 'Processing'. Additionally, get status calls return 'Processing' until completed.
	//
	//
	// **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"`
	//
	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"`
	// Specifies whether 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"`
	//
	BrandLock string `json:"brandLock,omitempty"`
	// Retrieves a URI for an endpoint allowing you to easily 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"`
	// Indicates 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"`
	// Reserved: For DocuSign use only.
	DeliveredDateTime *time.Time `json:"deliveredDateTime,omitempty"`
	// Complex element contains the details on the documents in the envelope.
	Documents []Document `json:"documents,omitempty"`
	//
	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"`
	// Specifies the subject of the email that is sent to all recipients.
	//
	// See [ML:Template Email Subject Merge Fields] for information about adding merge field information to the email subject.
	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**, 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.
	//
	// ###### Note: Your account must have Document Visibility enabled to use this.
	EnforceSignerVisibility DSBool `json:"enforceSignerVisibility,omitempty"`
	// The envelope ID of the envelope status that failed to post.
	EnvelopeID string `json:"envelopeId,omitempty"`
	// When set to **true**, Envelope ID Stamping is enabled.
	EnvelopeIDStamping DSBool `json:"envelopeIdStamping,omitempty"`
	// Contains a URI for an endpoint that you can use to retrieve the envelope or 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"`
	//
	InitialSentDateTime *time.Time `json:"initialSentDateTime,omitempty"`
	// When set to **true**, indicates that this module is enabled on the account.
	Is21CFRPart11 DSBool `json:"is21CFRPart11,omitempty"`
	//
	IsSignatureProviderEnvelope DSBool `json:"isSignatureProviderEnvelope,omitempty"`
	// The date and time the item was last modified.
	LastModifiedDateTime *time.Time `json:"lastModifiedDateTime,omitempty"`
	//
	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"`
	//
	Password string `json:"password,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"`
	// The date and time the envelope was sent.
	SentDateTime *time.Time `json:"sentDateTime,omitempty"`
	//
	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 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 which 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"`
}

type EnvelopeDocument

type EnvelopeDocument struct {
	//
	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"`
	//
	AvailableDocumentTypes []SignatureType `json:"availableDocumentTypes,omitempty"`
	//
	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"`
	//
	DocumentFields []NameValue `json:"documentFields,omitempty"`
	//
	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"`
	//
	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"`
	//
	Name string `json:"name,omitempty"`
	// An optional value that sets the direction order used to sort the item list.
	//
	// Valid values are:
	//
	// * asc = ascending sort order
	// * desc = descending sort order
	Order string `json:"order,omitempty"`
	//
	Pages string `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"`
	// Type of the user. Valid values: type_owner, type_participant.
	Type string `json:"type,omitempty"`
	//
	URI string `json:"uri,omitempty"`
}

type EnvelopeDocumentsResult

type EnvelopeDocumentsResult struct {
	//
	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 {
	// Specifies the subject of the email that is sent to all recipients.
	//
	// See [ML:Template Email Subject Merge Fields] for information about adding merge field information to the email subject.
	EmailSubject string `json:"emailSubject,omitempty"`
	// The envelope ID of the envelope status that failed to post.
	EnvelopeID string `json:"envelopeId,omitempty"`
	//
	FormData []NameValue `json:"formData,omitempty"`
	//
	RecipientFormData []RecipientFormData `json:"recipientFormData,omitempty"`
	// The date and time the envelope was sent.
	SentDateTime *time.Time `json:"sentDateTime,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"`
}

type EnvelopeID

type EnvelopeID struct {
	TabBase
	TabPosition
	TabStyle
	//
	Tooltip string `json:"tooltip,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 {
	//
	EnvelopeIds []string `json:"envelopeIds,omitempty"`
	//  A list of transaction Id's used to determining the status of envelopes sent asynchronously. See **transactionId** property on envelopes.
	TransactionIds []string `json:"transactionIds,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.
	UseAccountDefaults DSBool `json:"useAccountDefaults,omitempty"`
}

type EnvelopeSummary

type EnvelopeSummary struct {
	// The envelope ID of the envelope status that failed to post.
	EnvelopeID string `json:"envelopeId,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 string `json:"uri,omitempty"`
}

type EnvelopeTemplate

type EnvelopeTemplate struct {
	// When set to **true**, Document Markup is enabled for envelope. Account must have Document Markup enabled to use this
	AllowMarkup DSBool `json:"allowMarkup,omitempty"`
	// When set to **true**, the recipient can redirect an envelope to a more appropriate recipient.
	AllowReassign DSBool `json:"allowReassign,omitempty"`
	//
	AllowViewHistory DSBool `json:"allowViewHistory,omitempty"`
	// When set to **true**, the envelope is queued for processing and the value of the `status` property is set to 'Processing'. Additionally, get status calls return 'Processing' until completed.
	//
	//
	// **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"`
	//
	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"`
	// Specifies whether auto navigation is set for the recipient.
	//
	AutoNavigation string `json:"autoNavigation,omitempty"`
	// The unique identifier of a brand.
	BrandID string `json:"brandId,omitempty"`
	//
	BrandLock string `json:"brandLock,omitempty"`
	// Retrieves a URI for an endpoint allowing you to easily retrieve certificate information.
	CertificateURI string `json:"certificateUri,omitempty"`
	// Specifies the date and time this item was completed.
	CompletedDateTime *time.Time `json:"completedDateTime,omitempty"`
	// Indicates 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"`
	// Reserved: For DocuSign use only.
	DeliveredDateTime *time.Time `json:"deliveredDateTime,omitempty"`
	// Complex element contains the details on the documents in the envelope.
	Documents []Document `json:"documents,omitempty"`
	//
	DocumentsCombinedURI string `json:"documentsCombinedUri,omitempty"`
	// Contains a URI for an endpoint that you can use to retrieve the documents.
	DocumentsURI string `json:"documentsUri,omitempty"`
	//
	EmailBlurb string `json:"emailBlurb,omitempty"`
	//
	EmailSettings *EmailSettings `json:"emailSettings,omitempty"`
	// Specifies the subject of the email that is sent to all recipients.
	//
	// See [ML:Template Email Subject Merge Fields] for information about adding merge field information to the email subject.
	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**, 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.
	//
	// ###### Note: Your account must have Document Visibility enabled to use this.
	EnforceSignerVisibility DSBool `json:"enforceSignerVisibility,omitempty"`
	// The envelope ID of the envelope status that failed to post.
	EnvelopeID string `json:"envelopeId,omitempty"`
	// When set to **true**, Envelope ID Stamping is enabled.
	EnvelopeIDStamping DSBool `json:"envelopeIdStamping,omitempty"`
	// A complex element containing the following information:
	//
	// templateId: Unique identifier of the template. If this is not provided, DocuSign will generate a value.
	//
	// name: Name of the template. Maximum length: 100 characters.
	//
	// shared: When set to **true**, the template is shared with the Everyone group in the account. If false, the template is only shared with the Administrator group.
	//
	// password: Password, if the template is locked.
	//
	// description: Description of the template. Maximum Length: 500 characters.
	//
	// pageCount: Number of document pages in the template.
	//
	// folderName: The name of the folder the template is located in.
	//
	// folderId: The ID for the folder.
	//
	// owner: The userName, email, userId, userType, and userStatus for the template owner.
	//
	EnvelopeTemplateDefinition *EnvelopeTemplateDefinition `json:"envelopeTemplateDefinition,omitempty"`
	// Contains a URI for an endpoint that you can use to retrieve the envelope or envelopes.
	EnvelopeURI string `json:"envelopeUri,omitempty"`
	//
	InitialSentDateTime *time.Time `json:"initialSentDateTime,omitempty"`
	// When set to **true**, indicates that this module is enabled on the account.
	Is21CFRPart11 DSBool `json:"is21CFRPart11,omitempty"`
	//
	IsSignatureProviderEnvelope DSBool `json:"isSignatureProviderEnvelope,omitempty"`
	// The date and time the item was last modified.
	LastModifiedDateTime *time.Time `json:"lastModifiedDateTime,omitempty"`
	//
	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"`
	//
	Notification *Notification `json:"notification,omitempty"`
	// Contains a URI for an endpoint that you can use to retrieve the notifications.
	NotificationURI string `json:"notificationUri,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"`
	//
	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"`
	// The date and time the envelope was sent.
	SentDateTime *time.Time `json:"sentDateTime,omitempty"`
	//
	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"`
	// Contains a URI for an endpoint which 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"`
}

EnvelopeTemplate template management

type EnvelopeTemplateDefinition

type EnvelopeTemplateDefinition struct {
	// The UTC DateTime when the workspace user authorization was created.
	Created *time.Time `json:"created,omitempty"`
	// A sender-defined description of the line item.
	//
	Description string `json:"description,omitempty"`
	// The ID for the folder.
	FolderID string `json:"folderId,omitempty"`
	//  The name of the folder in which the template is located.
	FolderName string `json:"folderName,omitempty"`
	// The URI of the folder.
	FolderURI string `json:"folderUri,omitempty"`
	// Utc date and time the comment was last updated (can only be done by creator.)
	LastModified *time.Time `json:"lastModified,omitempty"`
	//
	LastModifiedBy *UserInfo `json:"lastModifiedBy,omitempty"`
	//
	Name string `json:"name,omitempty"`
	// The user's new password.
	NewPassword string `json:"newPassword,omitempty"`
	// The userName, email, userId, userType, and userStatus for the template owner.
	Owner *UserInfo `json:"owner,omitempty"`
	// An integer value specifying the number of document pages in the template. Omit this property if not submitting a page count.
	PageCount int32 `json:"pageCount,omitempty"`
	//
	ParentFolderURI string `json:"parentFolderUri,omitempty"`
	//
	Password string `json:"password,omitempty"`
	// When set to **true**, this custom tab is shared.
	Shared DSBool `json:"shared,omitempty"`
	// The unique identifier of the template. If this is not provided, DocuSign will generate a value.
	TemplateID string `json:"templateId,omitempty"`
	//
	URI string `json:"uri,omitempty"`
}

EnvelopeTemplateDefinition is a complex element containing the following information:

templateId: Unique identifier of the template. If this is not provided, DocuSign will generate a value.

name: Name of the template. Maximum length: 100 characters.

shared: When set to **true**, the template is shared with the Everyone group in the account. If false, the template is only shared with the Administrator group.

password: Password, if the template is locked.

description: Description of the template. Maximum Length: 500 characters.

pageCount: Number of document pages in the template.

folderName: The name of the folder the template is located in.

folderId: The ID for the folder.

owner: The userName, email, userId, userType, and userStatus for the template owner.

type EnvelopeTemplateResult

type EnvelopeTemplateResult struct {
	// When set to **true**, Document Markup is enabled for envelope. Account must have Document Markup enabled to use this
	AllowMarkup DSBool `json:"allowMarkup,omitempty"`
	// When set to **true**, the recipient can redirect an envelope to a more appropriate recipient.
	AllowReassign DSBool `json:"allowReassign,omitempty"`
	//
	AllowViewHistory DSBool `json:"allowViewHistory,omitempty"`
	// When set to **true**, the envelope is queued for processing and the value of the `status` property is set to 'Processing'. Additionally, get status calls return 'Processing' until completed.
	//
	//
	// **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"`
	//
	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"`
	// Specifies whether auto navigation is set for the recipient.
	//
	AutoNavigation string `json:"autoNavigation,omitempty"`
	// The unique identifier of a brand.
	BrandID string `json:"brandId,omitempty"`
	//
	BrandLock string `json:"brandLock,omitempty"`
	// Retrieves a URI for an endpoint allowing you to easily 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 *time.Time `json:"created,omitempty"`
	// Indicates 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"`
	// Reserved: For DocuSign use only.
	DeliveredDateTime *time.Time `json:"deliveredDateTime,omitempty"`
	// A sender-defined description of the line item.
	//
	Description string `json:"description,omitempty"`
	// Complex element contains the details on the documents in the envelope.
	Documents []Document `json:"documents,omitempty"`
	//
	DocumentsCombinedURI string `json:"documentsCombinedUri,omitempty"`
	// Contains a URI for an endpoint that you can use to retrieve the documents.
	DocumentsURI string `json:"documentsUri,omitempty"`
	//
	EmailBlurb string `json:"emailBlurb,omitempty"`
	//
	EmailSettings *EmailSettings `json:"emailSettings,omitempty"`
	// Specifies the subject of the email that is sent to all recipients.
	//
	// See [ML:Template Email Subject Merge Fields] for information about adding merge field information to the email subject.
	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**, 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.
	//
	// ###### Note: Your account must have Document Visibility enabled to use this.
	EnforceSignerVisibility DSBool `json:"enforceSignerVisibility,omitempty"`
	// The envelope ID of the envelope status that failed to post.
	EnvelopeID string `json:"envelopeId,omitempty"`
	// When set to **true**, Envelope ID Stamping is enabled.
	EnvelopeIDStamping DSBool `json:"envelopeIdStamping,omitempty"`
	// Contains a URI for an endpoint that you can use to retrieve the envelope or envelopes.
	EnvelopeURI string `json:"envelopeUri,omitempty"`
	// The ID of the folder being accessed.
	FolderID string `json:"folderId,omitempty"`
	//
	FolderName string `json:"folderName,omitempty"`
	//
	FolderURI string `json:"folderUri,omitempty"`
	//
	InitialSentDateTime *time.Time `json:"initialSentDateTime,omitempty"`
	// When set to **true**, indicates that this module is enabled on the account.
	Is21CFRPart11 DSBool `json:"is21CFRPart11,omitempty"`
	//
	IsSignatureProviderEnvelope DSBool `json:"isSignatureProviderEnvelope,omitempty"`
	// Utc date and time the comment was last updated (can only be done by creator.)
	LastModified *time.Time `json:"lastModified,omitempty"`
	// The date and time the item was last modified.
	LastModifiedDateTime *time.Time `json:"lastModifiedDateTime,omitempty"`
	//
	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"`
	//
	Name string `json:"name,omitempty"`
	//
	Notification *Notification `json:"notification,omitempty"`
	// Contains a URI for an endpoint that you can use to retrieve the notifications.
	NotificationURI string `json:"notificationUri,omitempty"`
	//
	Owner *UserInfo `json:"owner,omitempty"`
	//
	PageCount int32 `json:"pageCount,omitempty"`
	//
	ParentFolderURI string `json:"parentFolderUri,omitempty"`
	//
	Password string `json:"password,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"`
	//
	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"`
	// The date and time the envelope was sent.
	SentDateTime *time.Time `json:"sentDateTime,omitempty"`
	// When set to **true**, this custom tab is shared.
	Shared DSBool `json:"shared,omitempty"`
	//
	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 unique identifier of the template. If this is not provided, DocuSign will generate a value.
	TemplateID string `json:"templateId,omitempty"`
	// Contains a URI for an endpoint which 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"`
	//
	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"`
}

type EnvelopeTemplateResults

type EnvelopeTemplateResults struct {
	// The last position in the result set.
	EndPosition string `json:"endPosition,omitempty"`
	// The list of requested templates.
	EnvelopeTemplates []EnvelopeTemplateResult `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.
	ResultSetSize string `json:"resultSetSize,omitempty"`
	// Starting position of the current result set.
	StartPosition string `json:"startPosition,omitempty"`
	// The total number of items in the search's result set. It will always be greater than or equal to the value of the `resultSetSize` field.
	TotalSetSize string `json:"totalSetSize,omitempty"`
}

type EnvelopeTransactionStatus

type EnvelopeTransactionStatus struct {
	// The envelope ID of the envelope status that failed to post.
	EnvelopeID string `json:"envelopeId,omitempty"`
	//
	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 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"`
	//
	ErrorDetails *ErrorDetails `json:"errorDetails,omitempty"`
	//
	ListCustomFieldUpdateResults []ListCustomField `json:"listCustomFieldUpdateResults,omitempty"`
	//
	LockInformation *LockInformation `json:"lockInformation,omitempty"`
	//
	RecipientUpdateResults []RecipientUpdateResponse `json:"recipientUpdateResults,omitempty"`
	//
	TabUpdateResults *Tabs `json:"tabUpdateResults,omitempty"`
	//
	TextCustomFieldUpdateResults []TextCustomField `json:"textCustomFieldUpdateResults,omitempty"`
}

type EnvelopesInformation

type EnvelopesInformation struct {
	//
	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"`
	//
	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.
	ResultSetSize string `json:"resultSetSize,omitempty"`
	// Starting position of the current result set.
	StartPosition string `json:"startPosition,omitempty"`
	// The total number of items in the search's result set. It will always be greater than or equal to the value of the `resultSetSize` field.
	TotalSetSize string `json:"totalSetSize,omitempty"`
}

EnvelopesInformation result set for the Envelopes: listStatusChanges method

type ErrorDetails

type ErrorDetails struct {
	// An error code associated with the error.
	ErrorCode string `json:"errorCode,omitempty"`
	// A short error message.
	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 {
	//
	EventTimestamp string `json:"eventTimestamp,omitempty"`
	//
	FailureDescription string `json:"failureDescription,omitempty"`
	// Event status.
	Status string `json:"status,omitempty"`
	//
	VendorFailureStatusCode string `json:"vendorFailureStatusCode,omitempty"`
}

type Expirations

type Expirations struct {
	// An integer that sets the number of days the envelope is active.
	ExpireAfter string `json:"expireAfter,omitempty"`
	// When set to **true**, the envelope expires (is no longer available for signing) in the set number of days. If false, the account default setting is used. If the account does not have an expiration setting, the DocuSign default value of 120 days is used.
	ExpireEnabled DSBool `json:"expireEnabled,omitempty"`
	// An integer that sets the number of days before envelope expiration that an expiration warning email is sent to the recipient. If set to 0 (zero), no warning email is sent.
	ExpireWarn string `json:"expireWarn,omitempty"`
}

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

type ExternalDocServiceErrorDetails

type ExternalDocServiceErrorDetails struct {
	// Reserved: TBD
	AuthenticationURL string `json:"authenticationUrl,omitempty"`
	//
	ErrorCode string `json:"errorCode,omitempty"`
	//
	Message string `json:"message,omitempty"`
}

type ExternalFile

type ExternalFile struct {
	//
	Date string `json:"date,omitempty"`
	//
	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 the user. Valid values: type_owner, type_participant.
	Type string `json:"type,omitempty"`
	//
	URI string `json:"uri,omitempty"`
}

type ExternalFolder

type ExternalFolder struct {
	// The last position in the result set.
	EndPosition string `json:"endPosition,omitempty"`
	//
	ErrorDetails *ExternalDocServiceErrorDetails `json:"errorDetails,omitempty"`
	//
	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.
	ResultSetSize string `json:"resultSetSize,omitempty"`
	// Starting position of the current result set.
	StartPosition string `json:"startPosition,omitempty"`
	// The total number of items in the search's result set. It will always be greater than or equal to the value of the `resultSetSize` field.
	TotalSetSize string `json:"totalSetSize,omitempty"`
}

type FeatureSet

type FeatureSet struct {
	// A complex type that contains alternate currency values that are configured for this plan feature set.
	CurrencyFeatureSetPrices []CurrencyFeatureSetPrice `json:"currencyFeatureSetPrices,omitempty"`
	//
	EnvelopeFee string `json:"envelopeFee,omitempty"`
	// A unique ID for the feature set.
	FeatureSetID string `json:"featureSetId,omitempty"`
	//
	FixedFee string `json:"fixedFee,omitempty"`
	// When set to **true**, indicates that this module is enabled on the account.
	Is21CFRPart11 DSBool `json:"is21CFRPart11,omitempty"`
	//
	IsActive DSBool `json:"isActive,omitempty"`
	// Specifies whether the feature set is actively enabled as part of the plan.
	IsEnabled DSBool `json:"isEnabled,omitempty"`
	//
	Name string `json:"name,omitempty"`
	// An incremental seat cost for seat-based plans. Only valid when isEnabled for the feature set is set to true.
	SeatFee string `json:"seatFee,omitempty"`
}

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"`
	// An optional value that sets the direction order used to sort the item list.
	//
	// Valid values are:
	//
	// * asc = ascending sort order
	// * desc = descending sort 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
	TabPosition
	TabStyle
	TabValue
	//
	Tooltip string `json:"tooltip,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 {
	//
	ErrorDetails *ErrorDetails `json:"errorDetails,omitempty"`
	//
	Filter *Filter `json:"filter,omitempty"`
	// The ID of the folder being accessed.
	FolderID string `json:"folderId,omitempty"`
	// A collection of folder objects returned in a response.
	Folders []Folder `json:"folders,omitempty"`
	//
	Name string `json:"name,omitempty"`
	//
	OwnerEmail string `json:"ownerEmail,omitempty"`
	//
	OwnerUserID string `json:"ownerUserId,omitempty"`
	//
	OwnerUserName string `json:"ownerUserName,omitempty"`
	//
	ParentFolderID string `json:"parentFolderId,omitempty"`
	//
	ParentFolderURI string `json:"parentFolderUri,omitempty"`
	// Type of the user. Valid values: type_owner, type_participant.
	Type string `json:"type,omitempty"`
	//
	URI string `json:"uri,omitempty"`
}

type FolderItem

type FolderItem struct {
	// Specifies the date and time this item was completed.
	CompletedDateTime *time.Time `json:"completedDateTime,omitempty"`
	// Indicates 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 []CustomFieldV2 `json:"customFields,omitempty"`
	// A sender-defined description of the line item.
	//
	Description string `json:"description,omitempty"`
	// The envelope ID of the envelope status that failed to post.
	EnvelopeID string `json:"envelopeId,omitempty"`
	// Contains a URI for an endpoint that you can use to retrieve the envelope or envelopes.
	EnvelopeURI string `json:"envelopeUri,omitempty"`
	// When set to **true**, indicates that this module is enabled on the account.
	Is21CFRPart11 DSBool `json:"is21CFRPart11,omitempty"`
	//
	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"`
	//
	Name string `json:"name,omitempty"`
	// Name of the envelope owner.
	OwnerName string `json:"ownerName,omitempty"`
	//
	PageCount int32 `json:"pageCount,omitempty"`
	//
	Password string `json:"password,omitempty"`
	//
	SenderEmail string `json:"senderEmail,omitempty"`
	// Name of the envelope sender.
	SenderName string `json:"senderName,omitempty"`
	// The date and time the envelope was sent.
	SentDateTime *time.Time `json:"sentDateTime,omitempty"`
	// When set to **true**, this custom tab is shared.
	Shared DSBool `json:"shared,omitempty"`
	// Item status. <!-- TODO -->
	Status string `json:"status,omitempty"`
	//
	Subject string `json:"subject,omitempty"`
	// The unique identifier of the template. If this is not provided, DocuSign will generate a value.
	TemplateID string `json:"templateId,omitempty"`
	//
	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.
	ResultSetSize string `json:"resultSetSize,omitempty"`
	// Starting position of the current result set.
	StartPosition string `json:"startPosition,omitempty"`
	//
	TotalRows string `json:"totalRows,omitempty"`
}

type FolderItemV2

type FolderItemV2 struct {
	// Specifies the date and time this item was completed.
	CompletedDateTime *time.Time `json:"completedDateTime,omitempty"`
	// Indicates 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"`
	// Contains a URI for an endpoint that you can use to retrieve the envelope or envelopes.
	EnvelopeURI string `json:"envelopeUri,omitempty"`
	// The date and time the envelope is set to expire.
	ExpireDateTime *time.Time `json:"expireDateTime,omitempty"`
	// The ID of the folder being accessed.
	FolderID string `json:"folderId,omitempty"`
	//
	FolderURI string `json:"folderUri,omitempty"`
	// When set to **true**, indicates that this module is enabled on the account.
	Is21CFRPart11 DSBool `json:"is21CFRPart11,omitempty"`
	//
	IsSignatureProviderEnvelope DSBool `json:"isSignatureProviderEnvelope,omitempty"`
	// The date and time the item was last modified.
	LastModifiedDateTime *time.Time `json:"lastModifiedDateTime,omitempty"`
	//
	OwnerName string `json:"ownerName,omitempty"`
	//
	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"`
	// Item status. <!-- TODO -->
	Status string `json:"status,omitempty"`
	//
	Subject string `json:"subject,omitempty"`
}

type FolderItemsResponse

type FolderItemsResponse 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 []FolderItem `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.
	ResultSetSize string `json:"resultSetSize,omitempty"`
	// Starting position of the current result set.
	StartPosition string `json:"startPosition,omitempty"`
	// The total number of items in the search's result set. It will always be greater than or equal to the value of the `resultSetSize` field.
	TotalSetSize string `json:"totalSetSize,omitempty"`
}

type FoldersRequest

type FoldersRequest struct {
	//
	EnvelopeIds []string `json:"envelopeIds,omitempty"`
	//  The folder ID the envelope is being moved from.
	FromFolderID string `json:"fromFolderId,omitempty"`
}

type FoldersResponse

type FoldersResponse struct {
	// A collection of folder objects returned in a response.
	Folders []Folder `json:"folders,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 FormulaTab

type FormulaTab struct {
	TabBase
	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"`
	// 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"`
	// 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"`
	// 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"`
	// 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"`
	// When set to **true**, the signer cannot change the data of the custom tab.
	Locked DSBool `json:"locked,omitempty"`
	// An optional value that describes the maximum length of the property when the property is a string.
	MaxLength int32 `json:"maxLength,omitempty"`
	// The initial value of the tab when it was sent to the recipient.
	OriginalValue string `json:"originalValue,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"`
	// 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"`
	// When set to **true**, the signer is required to fill out this tab
	Required TabRequired `json:"required,omitempty"`
	//
	RoundDecimalPlaces string `json:"roundDecimalPlaces,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"`
	// When set to **true**, this custom tab is shared.
	Shared DSBool `json:"shared,omitempty"`
	//
	Tooltip string `json:"tooltip,omitempty"`
	// The message displayed if the custom tab fails input validation (either custom of embedded).
	ValidationMessage string `json:"validationMessage,omitempty"`
	// A regular expressionn used to validate input for the tab.
	ValidationPattern string `json:"validationPattern,omitempty"`
	// Width of the tab in pixels.
	Width int32 `json:"width,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
	TabPosition
	TabStyle
	TabValue
	//
	Tooltip string `json:"tooltip,omitempty"`
}

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

type Group

type Group struct {
	//
	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.
	GroupType string `json:"groupType,omitempty"`
	// The ID of the permission profile associated with the group.
	PermissionProfileID string `json:"permissionProfileId,omitempty"`
	// List of users in the group.
	Users []UserInfo `json:"users,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 returned.
	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.
	ResultSetSize string `json:"resultSetSize,omitempty"`
	// Starting position of the current result set.
	StartPosition string `json:"startPosition,omitempty"`
	// The total number of items in the search's result set. It will always be greater than or equal to the value of the `resultSetSize` field.
	TotalSetSize string `json:"totalSetSize,omitempty"`
}

type IDCheckInformationInput

type IDCheckInformationInput struct {
	//
	AddressInformationInput *AddressInformationInput `json:"addressInformationInput,omitempty"`
	// Complex type containing:
	//
	// * dateOfBirth
	// * displayLevelCode
	// * receiveInResponse
	DobInformationInput *DobInformationInput `json:"dobInformationInput,omitempty"`
	//
	Ssn4InformationInput *Ssn4InformationInput `json:"ssn4InformationInput,omitempty"`
	//
	Ssn9InformationInput *Ssn9InformationInput `json:"ssn9InformationInput,omitempty"`
}

IDCheckInformationInput is a complex element that contains input information related to a recipient ID check. It can include the following information.

addressInformationInput: Used to set recipient address information and consists of:

* addressInformation: consists of six elements, with stree2 and zipPlus4 being optional. The elements are: street1, street2, city, state, zip, zipPlus4. The maximum length of each element is: street1/street2 = 150 characters, city = 50 characters, state = 2 characters, and zip/zipPlus4 = 20 characters. * displayLevelCode: Specifies the display level for the recipient. Values are: ReadOnly, Editable, or DoNotDisplay. * receiveInResponse: A Boolean element that specifies if the information needs to be returned in the response.

dobInformationInput: Used to set recipient date of birth information and consists of:

* dateOfBirth: Specifies the recipient's date, month and year of birth. * displayLevelCode: Specifies the display level for the recipient. Values are: ReadOnly, Editable, or DoNotDisplay. * receiveInResponse: A Boolean element that specifies if the information needs to be returned in the response.

ssn4InformationInput: Used to set the last four digits of the recipient's SSN information and consists of:

* ssn4: Specifies the last four digits of the recipient's SSN. * displayLevelCode: Specifies the display level for the recipient. Values are: ReadOnly, Editable, or DoNotDisplay. * receiveInResponse: A Boolean element that specifies if the information needs to be returned in the response.

ssn9InformationInput: Used to set the recipient's SSN information. Note that the ssn9 information can never be returned in the response. The ssn9 input consists of: * ssn9: Specifies the recipient's SSN. * displayLevelCode: Specifies the display level for the recipient. Values are: ReadOnly, Editable, or DoNotDisplay.

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"`
	// 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 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"`
	//
	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"`
	// Reserved: For DocuSign use only.
	DeliveredDateTime *time.Time `json:"deliveredDateTime,omitempty"`
	// Reserved: For DocuSign use only.
	DeliveryMethod string `json:"deliveryMethod,omitempty"`
	//
	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"`
	// 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 using this option, the embedded recipient still receives an email from DocuSign, just as a remote recipient would. When the document link in the email is clicked the recipient is redirected, through DocuSign, to the supplied URL to complete their actions. When routing to the URL, the sender's system (the server responding to the URL) must request a recipient token to launch a signing session.
	//
	// 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 that is launched by any partner.
	//
	// It is important to remember that in a typical embedded workflow the authentication of an embedded recipient is the responsibility of the sending application, DocuSign expects that senders will follow their own process for establishing the recipient's identity. In this workflow the recipient goes through the sending application before the embedded signing or viewing process in initiated. However, when the sending application sets `EmbeddedRecipientStartURL=SIGN_AT_DOCUSIGN`, the recipient goes directly to the embedded signing or viewing process bypassing the sending application and any authentication steps the sending application would use. In this case, DocuSign recommends that you use one of the normal DocuSign authentication features (Access Code, Phone Authentication, SMS Authentication, etc.) to verify the identity of the recipient.
	//
	// 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 fort the recipient or envelope. The merge fields are enclosed in double brackets.
	//
	// *Example*:
	//
	// `http://senderHost/[[mergeField1]]/ beginSigningSession? [[mergeField2]]&[[mergeField3]]`
	EmbeddedRecipientStartURL string `json:"embeddedRecipientStartURL,omitempty"`
	//
	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:
	FaxNumber string `json:"faxNumber,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"`
	// 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"`
	// Specifies authentication check by name. The names used here must be the same as the authentication type names used by the account. These names can also be found 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 and in the web console Identify list these appear as `ID Check $` and `SMS Auth $`. To use ID check in an envelope, the `idCheckConfigurationName` should be `ID Check $`. If you wanted to use SMS, it would be `SMS Auth $` and you would need to add phone number information to the `smsAuthentication` node.
	IDCheckConfigurationName string `json:"idCheckConfigurationName,omitempty"`
	// A complex element that contains input information related to a recipient ID check. It can include the following information.
	//
	// addressInformationInput: Used to set recipient address information and consists of:
	//
	// * addressInformation: consists of six elements, with stree2 and zipPlus4 being optional. The elements are: street1, street2, city, state, zip, zipPlus4. The maximum length of each element is: street1/street2 = 150 characters, city = 50 characters, state = 2 characters, and zip/zipPlus4 = 20 characters.
	// * displayLevelCode: Specifies the display level for the recipient. Values are: ReadOnly, Editable, or DoNotDisplay.
	// * receiveInResponse: A Boolean element that specifies if the information needs to be returned in the response.
	//
	// dobInformationInput: Used to set recipient date of birth information and consists of:
	//
	// * dateOfBirth: Specifies the recipient's date, month and year of birth.
	// * displayLevelCode: Specifies the display level for the recipient. Values are: ReadOnly, Editable, or DoNotDisplay.
	// * receiveInResponse: A Boolean element that specifies if the information needs to be returned in the response.
	//
	// ssn4InformationInput: Used to set the last four digits of the recipient's SSN information and consists of:
	//
	// * ssn4: Specifies the last four digits of the recipient's SSN.
	// * displayLevelCode: Specifies the display level for the recipient. Values are: ReadOnly, Editable, or DoNotDisplay.
	// * receiveInResponse: A Boolean element that specifies if the information needs to be returned in the response.
	//
	// ssn9InformationInput: Used to set the recipient's SSN information. Note that the ssn9 information can never be returned in the response. The ssn9 input consists of:
	// * ssn9: Specifies the recipient's SSN.
	// * displayLevelCode: Specifies the display level for the recipient. Values are: ReadOnly, Editable, or DoNotDisplay.
	//
	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"`
	// 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 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"`
	// Information about the notary host.
	// The following information is required
	// when using the eNotary in-person signing flow:
	//
	// * `name`: Specifies the name of the notary.
	// * `email`: Specifies 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"`
	// A complex type that Contains the 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:
	RecipientAttachments []RecipientAttachment `json:"recipientAttachments,omitempty"`
	//
	RecipientAuthenticationStatus *AuthenticationStatus `json:"recipientAuthenticationStatus,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"`
	//
	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"`
	//
	RecipientSuppliesTabs string `json:"recipientSuppliesTabs,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"`
	// 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"`
	//
	SamlAuthentication *RecipientSAMLAuthentication `json:"samlAuthentication,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"`
	// 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 use only.
	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"`
	// 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"`
	//
	SigningGroupID string `json:"signingGroupId,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"`
	//
	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"`
	//
	TotalTabCount string `json:"totalTabCount,omitempty"`
	// The user ID of the user being accessed. Generally this is the user ID of the authenticated user, but if the authenticated user is an Admin on the account, this may be another user the Admin user is accessing. **Note**: For [GET /v2/accounts/{accountId}/envelopes](https://developers.docusign.com/esign-rest-api/reference/Envelopes/Envelopes/listStatusChanges/#envelopesInformation)   `user_id` query parameter is not implemented and should not be used.
	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
	TabPosition
	// Specifies the tool tip text for the tab.
	Name string `json:"name,omitempty"`
	//
	Optional DSBool `json:"optional,omitempty"`
	//  Sets the size for the InitialHere tab. It can be value from 0.5 to 1.0, where 1.0 represents full size and 0.5 is 50% size.
	ScaleValue float64 `json:"scaleValue,omitempty"`
	//
	Tooltip string `json:"tooltip,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"`
	//
	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.
	ResultSetSize string `json:"resultSetSize,omitempty"`
	// Starting position of the current result set.
	StartPosition string `json:"startPosition,omitempty"`
	// The total number of items in the search's result set. It will always be greater than or equal to the value of the `resultSetSize` field.
	TotalSetSize string `json:"totalSetSize,omitempty"`
	//
	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"`
	// 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"`
	// 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"`
	// Reserved: For DocuSign use only.
	DeliveredDateTime *time.Time `json:"deliveredDateTime,omitempty"`
	// Reserved: For DocuSign use only.
	DeliveryMethod string `json:"deliveryMethod,omitempty"`
	//
	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"`
	// 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"`
	//
	EmailRecipientPostSigningURL string `json:"emailRecipientPostSigningURL,omitempty"`
	// Specifies a sender provided valid URL string for redirecting an embedded recipient. When using this option, the embedded recipient still receives an email from DocuSign, just as a remote recipient would. When the document link in the email is clicked the recipient is redirected, through DocuSign, to the supplied URL to complete their actions. When routing to the URL, the sender's system (the server responding to the URL) must request a recipient token to launch a signing session.
	//
	// 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 that is launched by any partner.
	//
	// It is important to remember that in a typical embedded workflow the authentication of an embedded recipient is the responsibility of the sending application, DocuSign expects that senders will follow their own process for establishing the recipient's identity. In this workflow the recipient goes through the sending application before the embedded signing or viewing process in initiated. However, when the sending application sets `EmbeddedRecipientStartURL=SIGN_AT_DOCUSIGN`, the recipient goes directly to the embedded signing or viewing process bypassing the sending application and any authentication steps the sending application would use. In this case, DocuSign recommends that you use one of the normal DocuSign authentication features (Access Code, Phone Authentication, SMS Authentication, etc.) to verify the identity of the recipient.
	//
	// 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 fort the recipient or envelope. The merge fields are enclosed in double brackets.
	//
	// *Example*:
	//
	// `http://senderHost/[[mergeField1]]/ beginSigningSession? [[mergeField2]]&[[mergeField3]]`
	EmbeddedRecipientStartURL string `json:"embeddedRecipientStartURL,omitempty"`
	//
	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:
	FaxNumber string `json:"faxNumber,omitempty"`
	// The user's first name.
	// Maximum Length: 50 characters.
	FirstName string `json:"firstName,omitempty"`
	//
	FullName string `json:"fullName,omitempty"`
	// Specifies authentication check by name. The names used here must be the same as the authentication type names used by the account. These names can also be found 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 and in the web console Identify list these appear as `ID Check $` and `SMS Auth $`. To use ID check in an envelope, the `idCheckConfigurationName` should be `ID Check $`. If you wanted to use SMS, it would be `SMS Auth $` and you would need to add phone number information to the `smsAuthentication` node.
	IDCheckConfigurationName string `json:"idCheckConfigurationName,omitempty"`
	// A complex element that contains input information related to a recipient ID check. It can include the following information.
	//
	// addressInformationInput: Used to set recipient address information and consists of:
	//
	// * addressInformation: consists of six elements, with stree2 and zipPlus4 being optional. The elements are: street1, street2, city, state, zip, zipPlus4. The maximum length of each element is: street1/street2 = 150 characters, city = 50 characters, state = 2 characters, and zip/zipPlus4 = 20 characters.
	// * displayLevelCode: Specifies the display level for the recipient. Values are: ReadOnly, Editable, or DoNotDisplay.
	// * receiveInResponse: A Boolean element that specifies if the information needs to be returned in the response.
	//
	// dobInformationInput: Used to set recipient date of birth information and consists of:
	//
	// * dateOfBirth: Specifies the recipient's date, month and year of birth.
	// * displayLevelCode: Specifies the display level for the recipient. Values are: ReadOnly, Editable, or DoNotDisplay.
	// * receiveInResponse: A Boolean element that specifies if the information needs to be returned in the response.
	//
	// ssn4InformationInput: Used to set the last four digits of the recipient's SSN information and consists of:
	//
	// * ssn4: Specifies the last four digits of the recipient's SSN.
	// * displayLevelCode: Specifies the display level for the recipient. Values are: ReadOnly, Editable, or DoNotDisplay.
	// * receiveInResponse: A Boolean element that specifies if the information needs to be returned in the response.
	//
	// ssn9InformationInput: Used to set the recipient's SSN information. Note that the ssn9 information can never be returned in the response. The ssn9 input consists of:
	// * ssn9: Specifies the recipient's SSN.
	// * displayLevelCode: Specifies the display level for the recipient. Values are: ReadOnly, Editable, or DoNotDisplay.
	//
	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"`
	//
	LastName string `json:"lastName,omitempty"`
	//
	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"`
	// A complex type that Contains the 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:
	RecipientAttachments []RecipientAttachment `json:"recipientAttachments,omitempty"`
	//
	RecipientAuthenticationStatus *AuthenticationStatus `json:"recipientAuthenticationStatus,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"`
	//
	RecipientIDGUID string `json:"recipientIdGuid,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"`
	// 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"`
	//
	SamlAuthentication *RecipientSAMLAuthentication `json:"samlAuthentication,omitempty"`
	// The date and time the envelope was sent.
	SentDateTime *time.Time `json:"sentDateTime,omitempty"`
	// Reserved: For DocuSign use only.
	SignedDateTime *time.Time `json:"signedDateTime,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"`
	// 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"`
	// 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"`
	//
	TotalTabCount string `json:"totalTabCount,omitempty"`
	// The user ID of the user being accessed. Generally this is the user ID of the authenticated user, but if the authenticated user is an Admin on the account, this may be another user the Admin user is accessing. **Note**: For [GET /v2/accounts/{accountId}/envelopes](https://developers.docusign.com/esign-rest-api/reference/Envelopes/Envelopes/listStatusChanges/#envelopesInformation)   `user_id` query parameter is not implemented and should not be used.
	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
	TabPosition
	TabStyle
	TabValue
	//
	Tooltip string `json:"tooltip,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
	TabPosition
	TabValue
	// When set to **true**, the information in the tab is bold.
	Bold string `json:"bold,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 used 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"`
	// When set to **true**, the information in the tab is italic.
	Italic string `json:"italic,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"`
	// When set to **true**, the signer cannot change the data of the custom tab.
	Locked DSBool `json:"locked,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"`
	// 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"`
	// When set to **true**, the signer is required to fill out this tab
	Required TabRequired `json:"required,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"`
	// When set to **true**, this custom tab is shared.
	Shared DSBool `json:"shared,omitempty"`
	//
	Tooltip string `json:"tooltip,omitempty"`
	// When set to **true**, the information in the tab is underlined.
	Underline string `json:"underline,omitempty"`
	// Width of the tab in pixels.
	Width int32 `json:"width,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 field's are being used, specifies the type of the merge field. The only  supported value is **salesforce**.
	ConfigurationType string `json:"configurationType,omitempty"`
	//
	ErrorDetails *ErrorDetails `json:"errorDetails,omitempty"`
	// An ID used to specify a custom field.
	FieldID string `json:"fieldId,omitempty"`
	//
	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"`
	// Specifies the text that is shown in the dropdown list.
	Text string `json:"text,omitempty"`
	// Specifies the value that is used when the list item is selected.
	Value string `json:"value,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 LockInformation

type LockInformation struct {
	//
	ErrorDetails *ErrorDetails `json:"errorDetails,omitempty"`
	// The number of seconds to lock the envelope for editing.  Must be greater than 0 seconds.
	LockDurationInSeconds string `json:"lockDurationInSeconds,omitempty"`
	// A unique identifier provided to the owner of the envelope lock.   Used to prove ownership of the lock.
	LockToken string `json:"lockToken,omitempty"`
	// The type of envelope lock.  Currently "edit" is the only supported type.
	LockType string `json:"lockType,omitempty"`
	// A friendly name of the application used to lock the envelope.  Will be used in error messages to the user when lock conflicts occur.
	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 datetime until the envelope lock expires.
	LockedUntilDateTime *time.Time `json:"lockedUntilDateTime,omitempty"`
	// Reserved for future use.
	//
	// Indicates whether a scratchpad is used for editing information.
	//
	UseScratchPad string `json:"useScratchPad,omitempty"`
}

type LockRequest

type LockRequest struct {
	// The number of seconds to lock the envelope for editing.  Must be greater than 0 seconds.
	LockDurationInSeconds string `json:"lockDurationInSeconds,omitempty"`
	// The type of envelope lock.  Currently "edit" is the only supported type.
	LockType string `json:"lockType,omitempty"`
	// A friendly name of the application used to lock the envelope.  Will be used in error messages to the user when lock conflicts occur.
	LockedByApp string `json:"lockedByApp,omitempty"`
	//
	TemplatePassword string `json:"templatePassword,omitempty"`
	// Reserved for future use.
	//
	// 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 user ID of the user being accessed. Generally this is the user ID of the authenticated user, but if the authenticated user is an Admin on the account, this may be another user the Admin user is accessing. **Note**: For [GET /v2/accounts/{accountId}/envelopes](https://developers.docusign.com/esign-rest-api/reference/Envelopes/Envelopes/listStatusChanges/#envelopesInformation)   `user_id` query parameter is not implemented and should not be used.
	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 {
	// Height of the tab in pixels.
	Height int32 `json:"height,omitempty"`
	// Specifies the page number on which the tab is located.
	// Must be 1 for supplemental documents.
	//
	PageNumber int32 `json:"pageNumber,omitempty"`
	// Width of the tab in pixels.
	Width int32 `json:"width,omitempty"`
	// This indicates the horizontal offset of the object on the page.
	// DocuSign uses 72 DPI when determining position.
	// Required. May be zero.
	//
	XPosition int32 `json:"xPosition,omitempty"`
	// This indicates the vertical offset of the object on the page. DocuSign uses 72 DPI when determining position.
	YPosition int32 `json:"yPosition,omitempty"`
}

type MemberGroupSharedItem

type MemberGroupSharedItem struct {
	//
	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"`
	//
	ErrorDetails *ErrorDetails `json:"errorDetails,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 set to **true**, the sender can modify the value of the custom tab during the sending process.
	AllowSenderToEdit DSBool `json:"allowSenderToEdit,omitempty"`
	// If merge field's are being used, specifies the type of the merge field. The only  supported value is **salesforce**.
	ConfigurationType string `json:"configurationType,omitempty"`
	// Sets the object associated with the custom tab. Currently this is the Salesforce Object.
	Path string `json:"path,omitempty"`
	// Specifies the row number in a Salesforce table that the merge field value corresponds to.
	Row string `json:"row,omitempty"`
	// When wet to true, the information entered in the tab automatically updates the related Salesforce data when an envelope is completed.
	WriteBack string `json:"writeBack,omitempty"`
}

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

type MobileNotifierConfiguration

type MobileNotifierConfiguration struct {
	//
	DeviceID string `json:"deviceId,omitempty"`
	//
	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 {
	//
	ErrorDetails *ErrorDetails `json:"errorDetails,omitempty"`
	// The name or key of a name/value pair.
	Name string `json:"name,omitempty"`
	// The initial value of the tab when it was sent to the recipient.
	OriginalValue string `json:"originalValue,omitempty"`
	// The value field of a name/value pair.
	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 {
	//
	PaymentProcessorInformation *PaymentProcessorInformation `json:"PaymentProcessorInformation,omitempty"`
	// 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 []NameValue `json:"accountSettings,omitempty"`
	// A complex type that contains the following information for the new account (all string content): address1, address2, city, country, fax, phone, postalCode and state.
	//
	// **Note:** If country is US (United States) then State codes are validated for US States. Otherwise, State is treated as a non-validated string and serves the purpose of entering a state/province/region.
	//
	// The maximum characters for the strings are:
	// * address1, address2, city, country and state: 100 characters
	// * postalCode, phone, and fax: 20 characters
	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"`
	// 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"`
	// 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"`
	// Indicates the date and time the item was created.
	CreatedDateTime *time.Time `json:"createdDateTime,omitempty"`
	//
	Email string `json:"email,omitempty"`
	//
	ErrorDetails *ErrorDetails `json:"errorDetails,omitempty"`
	//
	PermissionProfileID string `json:"permissionProfileId,omitempty"`
	//
	PermissionProfileName string `json:"permissionProfileName,omitempty"`
	//
	URI string `json:"uri,omitempty"`
	// Specifies the user ID for the new user.
	UserID string `json:"userId,omitempty"`
	//
	UserName string `json:"userName,omitempty"`
	// Status of the user's account. One of:
	//
	// * ActivationRequired
	// * ActivationSent
	// * Active
	// * Closed
	// * Disabled
	//
	UserStatus string `json:"userStatus,omitempty"`
}

type NewUsersDefinition

type NewUsersDefinition struct {
	//
	NewUsers []UserInformation `json:"newUsers,omitempty"`
}

type NewUsersSummary

type NewUsersSummary struct {
	//
	NewUsers []NewUser `json:"newUsers,omitempty"`
}

type Notarize

type Notarize struct {
	TabBase
	TabPosition
	// When set to **true**, the signer cannot change the data of the custom tab.
	Locked DSBool `json:"locked,omitempty"`
	// When set to **true**, the signer is required to fill out this tab
	Required TabRequired `json:"required,omitempty"`
	//
	Tooltip string `json:"tooltip,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"`
	// 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"`
	// 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"`
	// Reserved: For DocuSign use only.
	DeliveredDateTime *time.Time `json:"deliveredDateTime,omitempty"`
	// Reserved: For DocuSign use only.
	DeliveryMethod string `json:"deliveryMethod,omitempty"`
	//
	DocumentVisibility []DocumentVisibility `json:"documentVisibility,omitempty"`
	// The notary's email address.
	//
	// Maximum Length: 100 characters.
	//
	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 using this option, the embedded recipient still receives an email from DocuSign, just as a remote recipient would. When the document link in the email is clicked the recipient is redirected, through DocuSign, to the supplied URL to complete their actions. When routing to the URL, the sender's system (the server responding to the URL) must request a recipient token to launch a signing session.
	//
	// 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 that is launched by any partner.
	//
	// It is important to remember that in a typical embedded workflow the authentication of an embedded recipient is the responsibility of the sending application, DocuSign expects that senders will follow their own process for establishing the recipient's identity. In this workflow the recipient goes through the sending application before the embedded signing or viewing process in initiated. However, when the sending application sets `EmbeddedRecipientStartURL=SIGN_AT_DOCUSIGN`, the recipient goes directly to the embedded signing or viewing process bypassing the sending application and any authentication steps the sending application would use. In this case, DocuSign recommends that you use one of the normal DocuSign authentication features (Access Code, Phone Authentication, SMS Authentication, etc.) to verify the identity of the recipient.
	//
	// 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 fort the recipient or envelope. The merge fields are enclosed in double brackets.
	//
	// *Example*:
	//
	// `http://senderHost/[[mergeField1]]/ beginSigningSession? [[mergeField2]]&[[mergeField3]]`
	EmbeddedRecipientStartURL string `json:"embeddedRecipientStartURL,omitempty"`
	//
	ErrorDetails *ErrorDetails `json:"errorDetails,omitempty"`
	// Reserved:
	FaxNumber string `json:"faxNumber,omitempty"`
	//
	HostRecipientID string `json:"hostRecipientId,omitempty"`
	// Specifies authentication check by name. The names used here must be the same as the authentication type names used by the account. These names can also be found 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 and in the web console Identify list these appear as `ID Check $` and `SMS Auth $`. To use ID check in an envelope, the `idCheckConfigurationName` should be `ID Check $`. If you wanted to use SMS, it would be `SMS Auth $` and you would need to add phone number information to the `smsAuthentication` node.
	IDCheckConfigurationName string `json:"idCheckConfigurationName,omitempty"`
	// A complex element that contains input information related to a recipient ID check. It can include the following information.
	//
	// addressInformationInput: Used to set recipient address information and consists of:
	//
	// * addressInformation: consists of six elements, with stree2 and zipPlus4 being optional. The elements are: street1, street2, city, state, zip, zipPlus4. The maximum length of each element is: street1/street2 = 150 characters, city = 50 characters, state = 2 characters, and zip/zipPlus4 = 20 characters.
	// * displayLevelCode: Specifies the display level for the recipient. Values are: ReadOnly, Editable, or DoNotDisplay.
	// * receiveInResponse: A Boolean element that specifies if the information needs to be returned in the response.
	//
	// dobInformationInput: Used to set recipient date of birth information and consists of:
	//
	// * dateOfBirth: Specifies the recipient's date, month and year of birth.
	// * displayLevelCode: Specifies the display level for the recipient. Values are: ReadOnly, Editable, or DoNotDisplay.
	// * receiveInResponse: A Boolean element that specifies if the information needs to be returned in the response.
	//
	// ssn4InformationInput: Used to set the last four digits of the recipient's SSN information and consists of:
	//
	// * ssn4: Specifies the last four digits of the recipient's SSN.
	// * displayLevelCode: Specifies the display level for the recipient. Values are: ReadOnly, Editable, or DoNotDisplay.
	// * receiveInResponse: A Boolean element that specifies if the information needs to be returned in the response.
	//
	// ssn9InformationInput: Used to set the recipient's SSN information. Note that the ssn9 information can never be returned in the response. The ssn9 input consists of:
	// * ssn9: Specifies the recipient's SSN.
	// * displayLevelCode: Specifies the display level for the recipient. Values are: ReadOnly, Editable, or DoNotDisplay.
	//
	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 notary's full legal name.
	//
	// Maximum Length: 100 characters.
	//
	Name string `json:"name,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"`
	// A complex type that Contains the 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:
	RecipientAttachments []RecipientAttachment `json:"recipientAttachments,omitempty"`
	//
	RecipientAuthenticationStatus *AuthenticationStatus `json:"recipientAuthenticationStatus,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"`
	//
	RecipientIDGUID string `json:"recipientIdGuid,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"`
	// 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"`
	//
	SamlAuthentication *RecipientSAMLAuthentication `json:"samlAuthentication,omitempty"`
	// The date and time the envelope was sent.
	SentDateTime *time.Time `json:"sentDateTime,omitempty"`
	// Reserved: For DocuSign use only.
	SignedDateTime *time.Time `json:"signedDateTime,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"`
	//
	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"`
	//
	TotalTabCount string `json:"totalTabCount,omitempty"`
	// The user ID of the user being accessed. Generally this is the user ID of the authenticated user, but if the authenticated user is an Admin on the account, this may be another user the Admin user is accessing. **Note**: For [GET /v2/accounts/{accountId}/envelopes](https://developers.docusign.com/esign-rest-api/reference/Envelopes/Envelopes/listStatusChanges/#envelopesInformation)   `user_id` query parameter is not implemented and should not be used.
	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 {
	//
	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 {
	//
	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.
	ResultSetSize string `json:"resultSetSize,omitempty"`
	// Starting position of the current result set.
	StartPosition string `json:"startPosition,omitempty"`
	// The total number of items in the search's result set. It will always be greater than or equal to the value of the `resultSetSize` field.
	TotalSetSize string `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
	TabPosition
	TabStyle
	TabValue
	// Height of the tab in pixels.
	Height int32 `json:"height,omitempty"`
	// When set to **true**, this custom tab is shared.
	Shared DSBool `json:"shared,omitempty"`
	//
	Tooltip string `json:"tooltip,omitempty"`
	// Width of the tab in pixels.
	Width int32 `json:"width,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.
	UseAccountDefaults DSBool `json:"useAccountDefaults,omitempty"`
}

Notification is 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.

type Number

type Number struct {
	TabBase
	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"`
	// 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"`
	// 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"`
	// 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"`
	// When set to **true**, the signer cannot change the data of the custom tab.
	Locked DSBool `json:"locked,omitempty"`
	// An optional value that describes the maximum length of the property when the property is a string.
	MaxLength int32 `json:"maxLength,omitempty"`
	// The initial value of the tab when it was sent to the recipient.
	OriginalValue string `json:"originalValue,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"`
	// 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"`
	// When set to **true**, the signer is required to fill out this tab
	Required TabRequired `json:"required,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"`
	// When set to **true**, this custom tab is shared.
	Shared DSBool `json:"shared,omitempty"`
	//
	Tooltip string `json:"tooltip,omitempty"`
	// The message displayed if the custom tab fails input validation (either custom of embedded).
	ValidationMessage string `json:"validationMessage,omitempty"`
	// A regular expressionn used to validate input for the tab.
	ValidationPattern string `json:"validationPattern,omitempty"`
	// Width of the tab in pixels.
	Width int32 `json:"width,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"`
	//
	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"`
	//
	ErrorDetails *ErrorDetails `json:"errorDetails,omitempty"`
	// Height of the tab in pixels.
	Height string `json:"height,omitempty"`
	//
	ImageBytes string `json:"imageBytes,omitempty"`
	//
	MimeType string `json:"mimeType,omitempty"`
	//
	PageID string `json:"pageId,omitempty"`
	//
	Sequence string `json:"sequence,omitempty"`
	// Width of the tab 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"`
	//
	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.
	ResultSetSize string `json:"resultSetSize,omitempty"`
	// Starting position of the current result set.
	StartPosition string `json:"startPosition,omitempty"`
	// The total number of items in the search's result set. It will always be greater than or equal to the value of the `resultSetSize` field.
	TotalSetSize string `json:"totalSetSize,omitempty"`
}

type PageRequest

type PageRequest struct {
	//
	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 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"`
	// 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"`
	// 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 {
	//
	DisplayName string `json:"displayName,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"`
}

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 PaymentProcessorInformation

type PaymentProcessorInformation struct {
	//
	Address *AddressInformation `json:"address,omitempty"`
	//
	BillingAgreementID string `json:"billingAgreementId,omitempty"`
	//
	Email string `json:"email,omitempty"`
}

type PermissionProfile

type PermissionProfile struct {
	//
	ModifiedByUsername string `json:"modifiedByUsername,omitempty"`
	//
	ModifiedDateTime *time.Time `json:"modifiedDateTime,omitempty"`
	//
	PermissionProfileID string `json:"permissionProfileId,omitempty"`
	//
	PermissionProfileName string `json:"permissionProfileName,omitempty"`
	//
	Settings *AccountRoleSettings `json:"settings,omitempty"`
	//
	UserCount string `json:"userCount,omitempty"`
	//
	Users []UserInformation `json:"users,omitempty"`
}

type PermissionProfileInformation

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

type PlanInformation

type PlanInformation struct {
	// Reserved:
	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"`
	// A complex type that sets the feature sets for the account.
	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 PowerForm

type PowerForm struct {
	//
	CreatedBy string `json:"createdBy,omitempty"`
	// Indicates the date and time the item was created.
	CreatedDateTime *time.Time `json:"createdDateTime,omitempty"`
	// Specifies the email body of the message sent to the recipient.
	//
	// Maximum length: 10000 characters.
	EmailBody string `json:"emailBody,omitempty"`
	// Specifies the subject of the email that is sent to all recipients.
	//
	// See [ML:Template Email Subject Merge Fields] for information about adding merge field information to the email subject.
	EmailSubject string `json:"emailSubject,omitempty"`
	//
	Envelopes []Envelope `json:"envelopes,omitempty"`
	//
	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"`
	//
	LimitUseIntervalEnabled string `json:"limitUseIntervalEnabled,omitempty"`
	//
	LimitUseIntervalUnits string `json:"limitUseIntervalUnits,omitempty"`
	//
	MaxUseEnabled string `json:"maxUseEnabled,omitempty"`
	//
	Name string `json:"name,omitempty"`
	//
	PowerFormID string `json:"powerFormId,omitempty"`
	//
	PowerFormURL string `json:"powerFormUrl,omitempty"`
	// An array of powerform recipients.
	Recipients []PowerFormRecipient `json:"recipients,omitempty"`
	//
	SenderName string `json:"senderName,omitempty"`
	//
	SenderUserID string `json:"senderUserId,omitempty"`
	//
	SigningMode string `json:"signingMode,omitempty"`
	// The unique identifier of the template. If this is not provided, DocuSign will generate a value.
	TemplateID string `json:"templateId,omitempty"`
	//
	TemplateName string `json:"templateName,omitempty"`
	//
	TimesUsed string `json:"timesUsed,omitempty"`
	//
	URI string `json:"uri,omitempty"`
	//
	UsesRemaining string `json:"usesRemaining,omitempty"`
}

type PowerFormFormDataEnvelope

type PowerFormFormDataEnvelope struct {
	// The envelope ID of the envelope status that failed to post.
	EnvelopeID string `json:"envelopeId,omitempty"`
	// An array of powerform recipients.
	Recipients []PowerFormFormDataRecipient `json:"recipients,omitempty"`
}

type PowerFormFormDataRecipient

type PowerFormFormDataRecipient struct {
	//
	Email string `json:"email,omitempty"`
	//
	FormData []NameValue `json:"formData,omitempty"`
	//
	Name string `json:"name,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"`
}

type PowerFormRecipient

type PowerFormRecipient 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"`
	//
	AccessCodeLocked string `json:"accessCodeLocked,omitempty"`
	//
	AccessCodeRequired string `json:"accessCodeRequired,omitempty"`
	//
	Email string `json:"email,omitempty"`
	//
	EmailLocked string `json:"emailLocked,omitempty"`
	// Specifies authentication check by name. The names used here must be the same as the authentication type names used by the account. These names can also be found 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 and in the web console Identify list these appear as `ID Check $` and `SMS Auth $`. To use ID check in an envelope, the `idCheckConfigurationName` should be `ID Check $`. If you wanted to use SMS, it would be `SMS Auth $` and you would need to add phone number information to the `smsAuthentication` node.
	IDCheckConfigurationName string `json:"idCheckConfigurationName,omitempty"`
	//
	IDCheckRequired string `json:"idCheckRequired,omitempty"`
	//
	Name string `json:"name,omitempty"`
	//
	RecipientType string `json:"recipientType,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"`
	//
	TemplateRequiresIDLookup string `json:"templateRequiresIdLookup,omitempty"`
	//
	UserNameLocked string `json:"userNameLocked,omitempty"`
}

type PowerFormSendersResponse

type PowerFormSendersResponse 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"`
	//
	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.
	ResultSetSize string `json:"resultSetSize,omitempty"`
	// Starting position of the current result set.
	StartPosition string `json:"startPosition,omitempty"`
	// The total number of items in the search's result set. It will always be greater than or equal to the value of the `resultSetSize` field.
	TotalSetSize string `json:"totalSetSize,omitempty"`
}

type PowerFormsFormDataResponse

type PowerFormsFormDataResponse struct {
	//
	Envelopes []PowerFormFormDataEnvelope `json:"envelopes,omitempty"`
}

type PowerFormsRequest

type PowerFormsRequest struct {
	//
	PowerForms []PowerForm `json:"powerForms,omitempty"`
}

type PowerFormsResponse

type PowerFormsResponse 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"`
	//
	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.
	ResultSetSize string `json:"resultSetSize,omitempty"`
	// Starting position of the current result set.
	StartPosition string `json:"startPosition,omitempty"`
	// The total number of items in the search's result set. It will always be greater than or equal to the value of the `resultSetSize` field.
	TotalSetSize string `json:"totalSetSize,omitempty"`
}

type PropertyMetadata

type PropertyMetadata struct {
	//
	Options []string `json:"options,omitempty"`
	//
	Rights string `json:"rights,omitempty"`
}

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"`
	// Specifies the ISO currency code of the purchase. This is based on the ISO 4217 currency code information.
	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.
	// <!--
	// 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 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 anchor string.
	AnchorString string `json:"anchorString,omitempty"`
	// Specifies units of the X and Y offset. Units could be pixels, millimeters, centimeters, or inches.
	AnchorUnits string `json:"anchorUnits,omitempty"`
	// Specifies the X axis location of the tab, in achorUnits, relative to the anchorString.
	AnchorXOffset string `json:"anchorXOffset,omitempty"`
	// Specifies the Y axis location of the tab, in achorUnits, relative to the anchorString.
	AnchorYOffset string `json:"anchorYOffset,omitempty"`
	//
	ErrorDetails *ErrorDetails `json:"errorDetails,omitempty"`
	// When set to **true**, the signer cannot change the data of the custom tab.
	Locked DSBool `json:"locked,omitempty"`
	// Specifies the page number on which the tab is located.
	// Must be 1 for supplemental documents.
	//
	PageNumber string `json:"pageNumber,omitempty"`
	// When set to **true**, the signer is required to fill out this tab
	Required TabRequired `json:"required,omitempty"`
	// When set to **true**, the radio button is selected.
	Selected DSBool `json:"selected,omitempty"`
	// The unique identifier for the tab.
	TabID string `json:"tabId,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"`
	// Specifies the value of the tab.
	Value string `json:"value,omitempty"`
	// This 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"`
}

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"`
	// 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"`
	// 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"`
	// When set to **true**, this custom tab is shared.
	Shared DSBool `json:"shared,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"`
	//
	Tooltip string `json:"tooltip,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 {
	//
	AttachmentID string `json:"attachmentId,omitempty"`
	//
	AttachmentType string `json:"attachmentType,omitempty"`
	//
	Data []byte `json:"data,omitempty"`
	//
	Label string `json:"label,omitempty"`
	//
	Name string `json:"name,omitempty"`
	//
	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
	EmailBody string `json:"emailBody,omitempty"`
	// Not applicable
	EmailSubject string `json:"emailSubject,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 time of sealing.
	SupportedLanguage string `json:"supportedLanguage,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 {
	//
	DeclinedTime *time.Time `json:"declinedTime,omitempty"`
	//
	DeliveredTime *time.Time `json:"deliveredTime,omitempty"`
	//
	Email string `json:"email,omitempty"`
	//
	FormData []NameValue `json:"formData,omitempty"`
	//
	Name string `json:"name,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"`
	//
	SentTime *time.Time `json:"sentTime,omitempty"`
	//
	SignedTime *time.Time `json:"signedTime,omitempty"`
}

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"`
	// Reserved.
	RecordVoicePrint string `json:"recordVoicePrint,omitempty"`
	// An Array containing a list of phone numbers the recipient may use for SMS text authentication.
	SenderProvidedNumbers []string `json:"senderProvidedNumbers,omitempty"`
	//  Reserved.
	ValidateRecipProvidedNumber string `json:"validateRecipProvidedNumber,omitempty"`
}

RecipientPhoneAuthentication is a complex type that Contains the 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.

type RecipientSAMLAuthentication

type RecipientSAMLAuthentication struct {
	//
	SamlAssertionAttributes []SamlAssertionAttribute `json:"samlAssertionAttributes,omitempty"`
}

RecipientSAMLAuthentication contains the name/value pair information for the SAML assertion attributes:

* name - The name of the SAML assertion attribute. * value - The value associated with the named SAML assertion attribute.

Your account must be set up to use SSO to use this.

type RecipientSMSAuthentication

type RecipientSMSAuthentication struct {
	// An Array containing a list of phone numbers the recipient may use for SMS text authentication.
	SenderProvidedNumbers []string `json:"senderProvidedNumbers,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 {
	//
	FontStyle string `json:"fontStyle,omitempty"`
	//
	SignatureInitials string `json:"signatureInitials,omitempty"`
	// Specifies the user 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"`
	// Not applicable.
	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"`
	// 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"`
	// The role or capacity of the signing recipient. Examples: Manager, Approver, etc.
	SignerRole string `json:"signerRole,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"`
}

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 {
	//
	ErrorDetails *ErrorDetails `json:"errorDetails,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"`
	//
	Tabs *Tabs `json:"tabs,omitempty"`
}

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"`
	// 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 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 complex type defining the management and access rights of a recipient assigned assigned as an agent on the document.
	Agents []Agent `json:"agents,omitempty"`
	// A complex type containing information about recipients who should receive a copy of the envelope, but does not need to sign it.
	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"`
	//
	CurrentRoutingOrder string `json:"currentRoutingOrder,omitempty"`
	//
	Editors []Editor `json:"editors,omitempty"`
	//
	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"`
	//
	Seals []SealSign `json:"seals,omitempty"`
	// A complex type containing information about the Signer recipient.
	Signers []Signer `json:"signers,omitempty"`
}

type RecipientsUpdateSummary

type RecipientsUpdateSummary struct {
	//
	RecipientUpdateResults []RecipientUpdateResponse `json:"recipientUpdateResults,omitempty"`
}

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 interger that sets 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 (is no longer available for signing) in the set number of days. If false, the account default setting is used. If the account does not have an expiration setting, the DocuSign default value of 120 days is used.
	ReminderEnabled DSBool `json:"reminderEnabled,omitempty"`
	// An interger that sets 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"`
}

ResourceInformation aPI resource information

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"`
	//
	SignatureType string `json:"signatureType,omitempty"`
	//
	StartData string `json:"startData,omitempty"`
}

type SSN

type SSN struct {
	TabBase
	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"`
	// 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 signer cannot change the data of the custom tab.
	Locked DSBool `json:"locked,omitempty"`
	// An optional value that describes the maximum length of the property when the property is a string.
	MaxLength int32 `json:"maxLength,omitempty"`
	// The initial value of the tab when it was sent to the recipient.
	OriginalValue string `json:"originalValue,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"`
	// 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"`
	// When set to **true**, the signer is required to fill out this tab
	Required TabRequired `json:"required,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"`
	// When set to **true**, this custom tab is shared.
	Shared DSBool `json:"shared,omitempty"`
	//
	Tooltip string `json:"tooltip,omitempty"`
	// The message displayed if the custom tab fails input validation (either custom of embedded).
	ValidationMessage string `json:"validationMessage,omitempty"`
	// A regular expressionn used to validate input for the tab.
	ValidationPattern string `json:"validationPattern,omitempty"`
	// Width of the tab in pixels.
	Width int32 `json:"width,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 SamlAssertionAttribute

type SamlAssertionAttribute struct {
	//
	ErrorDetails *ErrorDetails `json:"errorDetails,omitempty"`
	//
	Name string `json:"name,omitempty"`
	// The initial value of the tab when it was sent to the recipient.
	OriginalValue string `json:"originalValue,omitempty"`
	// The value associated with the named SAML assertion attribute
	Value string `json:"value,omitempty"`
}

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
	AddAccessCodeToEmail string `json:"addAccessCodeToEmail,omitempty"`
	// Not applicable
	ClientUserID string `json:"clientUserId,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 use only.
	DeliveryMethod string `json:"deliveryMethod,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 using this option, the embedded recipient still receives an email from DocuSign, just as a remote recipient would. When the document link in the email is clicked the recipient is redirected, through DocuSign, to the supplied URL to complete their actions. When routing to the URL, the sender's system (the server responding to the URL) must request a recipient token to launch a signing session.
	//
	// 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 that is launched by any partner.
	//
	// It is important to remember that in a typical embedded workflow the authentication of an embedded recipient is the responsibility of the sending application, DocuSign expects that senders will follow their own process for establishing the recipient's identity. In this workflow the recipient goes through the sending application before the embedded signing or viewing process in initiated. However, when the sending application sets `EmbeddedRecipientStartURL=SIGN_AT_DOCUSIGN`, the recipient goes directly to the embedded signing or viewing process bypassing the sending application and any authentication steps the sending application would use. In this case, DocuSign recommends that you use one of the normal DocuSign authentication features (Access Code, Phone Authentication, SMS Authentication, etc.) to verify the identity of the recipient.
	//
	// 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 fort the recipient or envelope. The merge fields are enclosed in double brackets.
	//
	// *Example*:
	//
	// `http://senderHost/[[mergeField1]]/ beginSigningSession? [[mergeField2]]&[[mergeField3]]`
	EmbeddedRecipientStartURL string `json:"embeddedRecipientStartURL,omitempty"`
	//
	ErrorDetails *ErrorDetails `json:"errorDetails,omitempty"`
	// Reserved:
	FaxNumber string `json:"faxNumber,omitempty"`
	// Specifies authentication check by name. The names used here must be the same as the authentication type names used by the account. These names can also be found 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 and in the web console Identify list these appear as `ID Check $` and `SMS Auth $`. To use ID check in an envelope, the `idCheckConfigurationName` should be `ID Check $`. If you wanted to use SMS, it would be `SMS Auth $` and you would need to add phone number information to the `smsAuthentication` node.
	IDCheckConfigurationName string `json:"idCheckConfigurationName,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"`
	//
	Name string `json:"name,omitempty"`
	// Not applicable
	Note string `json:"note,omitempty"`
	// A complex type that Contains the 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"`
	// (Required) The `recipientId` used when the envelope or template was created.
	RecipientID string `json:"recipientId,omitempty"`
	//
	RecipientIDGUID string `json:"recipientIdGuid,omitempty"`
	// (Required) Indicates which electronic seal to apply on documents when creating an envelope.
	RecipientSignatureProviders []RecipientSignatureProvider `json:"recipientSignatureProviders,omitempty"`
	// Not applicable
	RequireIDLookup string `json:"requireIdLookup,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"`
	// Not applicable
	SamlAuthentication *RecipientSAMLAuthentication `json:"samlAuthentication,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"`
	// Item status. <!-- TODO -->
	Status string `json:"status,omitempty"`
	//
	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"`
	//
	CommentsOnlyPrivateAndMention string `json:"commentsOnlyPrivateAndMention,omitempty"`
	//
	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 sender receives notification that the recipient viewed the enveloper.
	RecipientViewed DSBool `json:"recipientViewed,omitempty"`
	//
	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 set to **true**, indicates that this module is enabled on the account.
	Is21CFRPart11 DSBool `json:"is21CFRPart11,omitempty"`
	//
	Options []string `json:"options,omitempty"`
	//
	Rights string `json:"rights,omitempty"`
	//
	UIHint string `json:"uiHint,omitempty"`
	//
	UIOrder string `json:"uiOrder,omitempty"`
	//
	UIType string `json:"uiType,omitempty"`
}

type SharedItem

type SharedItem struct {
	//
	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 associated with the shared item.
	User *UserInfo `json:"user,omitempty"`
}

SharedItem information about the shared item.

type SignHashDocument

type SignHashDocument struct {
	//
	Data string `json:"data,omitempty"`
	// The ID of the document being accessed.
	DocumentID string `json:"documentId,omitempty"`
	//
	Format string `json:"format,omitempty"`
	//
	Name string `json:"name,omitempty"`
	//
	RemainingSignatures string `json:"remainingSignatures,omitempty"`
	//
	Revisions []Revision `json:"revisions,omitempty"`
	//
	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. Eg 93be49ab-afa0-4adf-933c-f752070d71ec
	EnvelopeID string `json:"envelopeId,omitempty"`
	// Specifies the language for the Certificate of Completion in the response. The supported languages, with the language value shown in parenthesis, 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 string `json:"remainingSignatureRequests,omitempty"`
	// Set of information related to the electronic seal used by the Trust Service Provider (TSP)
	Seal *Seal `json:"seal,omitempty"`
	//
	User *User `json:"user,omitempty"`
}

type SignHere

type SignHere struct {
	TabBase
	TabPosition
	// Specifies the tool tip text for the tab.
	Name string `json:"name,omitempty"`
	//
	Optional DSBool `json:"optional,omitempty"`
	//
	ScaleValue float64 `json:"scaleValue,omitempty"`
	//
	StampType string `json:"stampType,omitempty"`
	//
	StampTypeMetadata *PropertyMetadata `json:"stampTypeMetadata,omitempty"`
	//
	Tooltip string `json:"tooltip,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"`
	//
	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 SignatureProviderRequiredOption

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

type SignatureType

type SignatureType struct {
	//
	IsDefault DSBool `json:"isDefault,omitempty"`
	// Type of the user. Valid values: 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"`
	// 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"`
	//
	AgentCanEditEmail DSBool `json:"agentCanEditEmail,omitempty"`
	//
	AgentCanEditName DSBool `json:"agentCanEditName,omitempty"`
	// Specifies whether 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"`
	//
	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"`
	// Reserved: For DocuSign use only.
	DeliveredDateTime *time.Time `json:"deliveredDateTime,omitempty"`
	// Reserved: For DocuSign use only.
	DeliveryMethod string `json:"deliveryMethod,omitempty"`
	//
	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"`
	// 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"`
	//
	EmailRecipientPostSigningURL string `json:"emailRecipientPostSigningURL,omitempty"`
	// Specifies a sender provided valid URL string for redirecting an embedded recipient. When using this option, the embedded recipient still receives an email from DocuSign, just as a remote recipient would. When the document link in the email is clicked the recipient is redirected, through DocuSign, to the supplied URL to complete their actions. When routing to the URL, the sender's system (the server responding to the URL) must request a recipient token to launch a signing session.
	//
	// 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 that is launched by any partner.
	//
	// It is important to remember that in a typical embedded workflow the authentication of an embedded recipient is the responsibility of the sending application, DocuSign expects that senders will follow their own process for establishing the recipient's identity. In this workflow the recipient goes through the sending application before the embedded signing or viewing process in initiated. However, when the sending application sets `EmbeddedRecipientStartURL=SIGN_AT_DOCUSIGN`, the recipient goes directly to the embedded signing or viewing process bypassing the sending application and any authentication steps the sending application would use. In this case, DocuSign recommends that you use one of the normal DocuSign authentication features (Access Code, Phone Authentication, SMS Authentication, etc.) to verify the identity of the recipient.
	//
	// 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 fort the recipient or envelope. The merge fields are enclosed in double brackets.
	//
	// *Example*:
	//
	// `http://senderHost/[[mergeField1]]/ beginSigningSession? [[mergeField2]]&[[mergeField3]]`
	EmbeddedRecipientStartURL string `json:"embeddedRecipientStartURL,omitempty"`
	//
	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:
	FaxNumber string `json:"faxNumber,omitempty"`
	// The user's first name.
	// Maximum Length: 50 characters.
	FirstName string `json:"firstName,omitempty"`
	//
	FullName string `json:"fullName,omitempty"`
	// Specifies authentication check by name. The names used here must be the same as the authentication type names used by the account. These names can also be found 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 and in the web console Identify list these appear as `ID Check $` and `SMS Auth $`. To use ID check in an envelope, the `idCheckConfigurationName` should be `ID Check $`. If you wanted to use SMS, it would be `SMS Auth $` and you would need to add phone number information to the `smsAuthentication` node.
	IDCheckConfigurationName string `json:"idCheckConfigurationName,omitempty"`
	// A complex element that contains input information related to a recipient ID check. It can include the following information.
	//
	// addressInformationInput: Used to set recipient address information and consists of:
	//
	// * addressInformation: consists of six elements, with stree2 and zipPlus4 being optional. The elements are: street1, street2, city, state, zip, zipPlus4. The maximum length of each element is: street1/street2 = 150 characters, city = 50 characters, state = 2 characters, and zip/zipPlus4 = 20 characters.
	// * displayLevelCode: Specifies the display level for the recipient. Values are: ReadOnly, Editable, or DoNotDisplay.
	// * receiveInResponse: A Boolean element that specifies if the information needs to be returned in the response.
	//
	// dobInformationInput: Used to set recipient date of birth information and consists of:
	//
	// * dateOfBirth: Specifies the recipient's date, month and year of birth.
	// * displayLevelCode: Specifies the display level for the recipient. Values are: ReadOnly, Editable, or DoNotDisplay.
	// * receiveInResponse: A Boolean element that specifies if the information needs to be returned in the response.
	//
	// ssn4InformationInput: Used to set the last four digits of the recipient's SSN information and consists of:
	//
	// * ssn4: Specifies the last four digits of the recipient's SSN.
	// * displayLevelCode: Specifies the display level for the recipient. Values are: ReadOnly, Editable, or DoNotDisplay.
	// * receiveInResponse: A Boolean element that specifies if the information needs to be returned in the response.
	//
	// ssn9InformationInput: Used to set the recipient's SSN information. Note that the ssn9 information can never be returned in the response. The ssn9 input consists of:
	// * ssn9: Specifies the recipient's SSN.
	// * displayLevelCode: Specifies the display level for the recipient. Values are: ReadOnly, Editable, or DoNotDisplay.
	//
	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"`
	// 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"`
	//
	LastName string `json:"lastName,omitempty"`
	//
	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"`
	// A complex type that Contains the 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:
	RecipientAttachments []RecipientAttachment `json:"recipientAttachments,omitempty"`
	//
	RecipientAuthenticationStatus *AuthenticationStatus `json:"recipientAuthenticationStatus,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"`
	//
	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"`
	//
	RecipientSuppliesTabs string `json:"recipientSuppliesTabs,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"`
	// 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"`
	//
	SamlAuthentication *RecipientSAMLAuthentication `json:"samlAuthentication,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"`
	// 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 use only.
	SignedDateTime *time.Time `json:"signedDateTime,omitempty"`
	//
	SigningGroupID string `json:"signingGroupId,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"`
	//
	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"`
	//
	TotalTabCount string `json:"totalTabCount,omitempty"`
	// The user ID of the user being accessed. Generally this is the user ID of the authenticated user, but if the authenticated user is an Admin on the account, this may be another user the Admin user is accessing. **Note**: For [GET /v2/accounts/{accountId}/envelopes](https://developers.docusign.com/esign-rest-api/reference/Envelopes/Envelopes/listStatusChanges/#envelopesInformation)   `user_id` query parameter is not implemented and should not be used.
	UserID string `json:"userId,omitempty"`
}

type SignerAttachment

type SignerAttachment struct {
	TabBase
	TabPosition
	//
	Name string `json:"name,omitempty"`
	//
	Optional DSBool `json:"optional,omitempty"`
	//
	ScaleValue float64 `json:"scaleValue,omitempty"`
	//
	Tooltip string `json:"tooltip,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"`
	//
	CommentsOnlyPrivateAndMention string `json:"commentsOnlyPrivateAndMention,omitempty"`
	//
	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:
	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"`
	//
	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"`
	//
	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.
	GroupType string `json:"groupType,omitempty"`
	//
	Modified *time.Time `json:"modified,omitempty"`
	//
	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"`
	//
	Users []SigningGroupUser `json:"users,omitempty"`
}

SigningGroup signing groups

type SigningGroupInformation

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

type SigningGroupUser

type SigningGroupUser struct {
	//
	Email string `json:"email,omitempty"`
	//
	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 {
	//
	Users []SigningGroupUser `json:"users,omitempty"`
}

SigningGroupUsers signing groups' users

type SocialAccountInformation

type SocialAccountInformation struct {
	//
	Email string `json:"email,omitempty"`
	//
	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"`
	//
	UserName string `json:"userName,omitempty"`
}

type SocialAuthentication

type SocialAuthentication struct {
	// Reserved: TBD
	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"`
	// When set to **true**, the information needs to 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 Social Security Number(SSN).
	Ssn9 string `json:"ssn9,omitempty"`
}

type SupportedLanguages

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

type TabAccountSettings

type TabAccountSettings struct {
	//
	AllowTabOrder DSBool `json:"allowTabOrder,omitempty"`
	//
	AllowTabOrderMetadata *SettingsMetadata `json:"allowTabOrderMetadata,omitempty"`
	//
	ApproveDeclineTabsEnabled DSBool `json:"approveDeclineTabsEnabled,omitempty"`
	//
	ApproveDeclineTabsMetadata *SettingsMetadata `json:"approveDeclineTabsMetadata,omitempty"`
	//
	CalculatedFieldsEnabled DSBool `json:"calculatedFieldsEnabled,omitempty"`
	//
	CalculatedFieldsMetadata *SettingsMetadata `json:"calculatedFieldsMetadata,omitempty"`
	//
	CheckboxTabsEnabled DSBool `json:"checkboxTabsEnabled,omitempty"`
	//
	CheckboxTabsMetadata *SettingsMetadata `json:"checkboxTabsMetadata,omitempty"`
	//
	DataFieldRegexEnabled DSBool `json:"dataFieldRegexEnabled,omitempty"`
	//
	DataFieldRegexMetadata *SettingsMetadata `json:"dataFieldRegexMetadata,omitempty"`
	//
	DataFieldSizeEnabled DSBool `json:"dataFieldSizeEnabled,omitempty"`
	//
	DataFieldSizeMetadata *SettingsMetadata `json:"dataFieldSizeMetadata,omitempty"`
	//
	FirstLastEmailTabsEnabled DSBool `json:"firstLastEmailTabsEnabled,omitempty"`
	//
	FirstLastEmailTabsMetadata *SettingsMetadata `json:"firstLastEmailTabsMetadata,omitempty"`
	//
	ListTabsEnabled DSBool `json:"listTabsEnabled,omitempty"`
	//
	ListTabsMetadata *SettingsMetadata `json:"listTabsMetadata,omitempty"`
	//
	NoteTabsEnabled DSBool `json:"noteTabsEnabled,omitempty"`
	//
	NoteTabsMetadata *SettingsMetadata `json:"noteTabsMetadata,omitempty"`
	//
	RadioTabsEnabled DSBool `json:"radioTabsEnabled,omitempty"`
	//
	RadioTabsMetadata *SettingsMetadata `json:"radioTabsMetadata,omitempty"`
	//
	SavingCustomTabsEnabled DSBool `json:"savingCustomTabsEnabled,omitempty"`
	//
	SavingCustomTabsMetadata *SettingsMetadata `json:"savingCustomTabsMetadata,omitempty"`
	//
	SenderToChangeTabAssignmentsEnabled DSBool `json:"senderToChangeTabAssignmentsEnabled,omitempty"`
	//
	SenderToChangeTabAssignmentsMetadata *SettingsMetadata `json:"senderToChangeTabAssignmentsMetadata,omitempty"`
	//
	SharedCustomTabsEnabled DSBool `json:"sharedCustomTabsEnabled,omitempty"`
	//
	SharedCustomTabsMetadata *SettingsMetadata `json:"sharedCustomTabsMetadata,omitempty"`
	//
	TabDataLabelEnabled DSBool `json:"tabDataLabelEnabled,omitempty"`
	//
	TabDataLabelMetadata *SettingsMetadata `json:"tabDataLabelMetadata,omitempty"`
	//
	TabLocationEnabled DSBool `json:"tabLocationEnabled,omitempty"`
	//
	TabLocationMetadata *SettingsMetadata `json:"tabLocationMetadata,omitempty"`
	//
	TabLockingEnabled DSBool `json:"tabLockingEnabled,omitempty"`
	//
	TabLockingMetadata *SettingsMetadata `json:"tabLockingMetadata,omitempty"`
	//
	TabScaleEnabled DSBool `json:"tabScaleEnabled,omitempty"`
	//
	TabScaleMetadata *SettingsMetadata `json:"tabScaleMetadata,omitempty"`
	//
	TabTextFormattingEnabled DSBool `json:"tabTextFormattingEnabled,omitempty"`
	//
	TabTextFormattingMetadata *SettingsMetadata `json:"tabTextFormattingMetadata,omitempty"`
	//
	TextTabsEnabled DSBool `json:"textTabsEnabled,omitempty"`
	//
	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"`
	// 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"`
	// 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"`
	// 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"`
}

TabBase contains common fields for all 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 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 units of the X and Y offset. Units could be pixels, millimeters, centimeters, or inches.
	AnchorUnits string `json:"anchorUnits,omitempty"`
	// Specifies the X axis location of the tab, in achorUnits, relative to the anchorString.
	AnchorXOffset string `json:"anchorXOffset,omitempty"`
	// Specifies the Y axis location of the tab, in achorUnits, 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"`
	//
	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 used 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"`
	// 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"`
	//
	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"`
	//
	ScaleValue string `json:"scaleValue,omitempty"`
	// When set to **true**, the radio button is selected.
	Selected string `json:"selected,omitempty"`
	//
	Shared DSBool `json:"shared,omitempty"`
	//
	StampType string `json:"stampType,omitempty"`
	//
	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 the user. Valid values: 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 expressionn used to validate input for the tab.
	ValidationPattern string `json:"validationPattern,omitempty"`
	// Width of the tab in pixels.
	Width string `json:"width,omitempty"`
}

type TabMetadataList

type TabMetadataList struct {
	//
	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.
	// <!--
	// 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 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 anchor string.
	AnchorString string `json:"anchorString,omitempty"`
	// Specifies units of the X and Y offset. Units could be pixels, millimeters, centimeters, or inches.
	AnchorUnits string `json:"anchorUnits,omitempty"`
	// Specifies the X axis location of the tab, in achorUnits, relative to the anchorString.
	AnchorXOffset string `json:"anchorXOffset,omitempty"`
	// Specifies the Y axis location of the tab, in achorUnits, relative to the anchorString.
	AnchorYOffset string `json:"anchorYOffset,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"`
	//
	ErrorDetails *ErrorDetails `json:"errorDetails,omitempty"`
	//
	MergeField *MergeField `json:"mergeField,omitempty"`
	// Specifies the page number on which the tab is located.
	// Must be 1 for supplemental documents.
	PageNumber string `json:"pageNumber,omitempty"`
	// Tab status
	// <!-- todo -->
	//
	Status string `json:"status,omitempty"`
	// The unique identifier for the tab.
	TabID string `json:"tabId,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"`
	// 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"`
	// This 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"`
}

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"`
	// 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 used 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"`
	// When set to **true**, the information in the tab is italic.
	Italic DSBool `json:"italic,omitempty"`
	// Specifies the tool tip text for the tab.
	Name string `json:"name,omitempty"`
	// When set to **true**, the information in the tab is underlined.
	Underline DSBool `json:"underline,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"`
}

TabValue add Value() func to tab

type Tabs

type Tabs struct {
	// A list of
	// [Approve tabs][approve].
	//
	//
	// This tab allows
	// 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.
	//
	// [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].
	//
	//
	// This tab allows the recipient to select a yes/no (on/off) option.
	//
	//
	// [checkbox]:  https://developers.docusign.com/esign-rest-api/reference/Envelopes/EnvelopeRecipientTabs/create/#/definitions/checkbox
	//
	CheckboxTabs []Checkbox `json:"checkboxTabs,omitempty"`
	// A list of
	// [Company tabs][company].
	//
	//
	// This tab displays the recipient's company name.
	//
	//
	//
	// [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]
	//
	//
	// This tab displays the date that the recipient signed the
	// document.
	//
	// [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].
	//
	//
	// This tab 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.
	//
	//
	// [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].
	//
	// This tab allows the recipient the option of declining an
	// envelope. If the recipient clicks the tab during the signing
	// process, the envelope is voided.
	//
	//
	// [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].
	//
	// This tab
	// displays the recipient's email as entered in the
	// recipient information.
	//
	//
	// [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].
	//
	// This tab
	// 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.
	//
	// [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].
	//
	// This tab
	// displays the envelope ID. Recipients cannot enter
	// or change the information in this tab.
	//
	//
	// [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].
	//
	// This tab
	// displays the recipient's first name. It
	// 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.
	//
	//
	// [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.
	//
	// 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.
	//
	// [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].
	//
	// This tab
	// displays the recipient's full name.
	//
	//
	// [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 tab allows the recipient to initial the document. May
	// be optional.
	//
	// [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].
	//
	// This tab
	// displays the recipient's last name. It
	// 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.
	//
	//
	// [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].
	//
	// This tab offers a list of options to choose from. The
	// `listItems` property is used to specify the selectable
	// options.
	//
	//
	//
	// [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 is a tab that alerts notary recipients that
	// they must take action on the page.
	// 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].
	//
	// This tab  displays additional information, in the form of a
	// note, for the recipient.
	//
	// [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].
	//
	// This tab allows the recipient to enter numbers and decimal
	// (.) points.
	//
	//
	//
	// [number]: https://developers.docusign.com/esign-rest-api/reference/Envelopes/EnvelopeRecipientTabs/create/#/definitions/number
	//
	NumberTabs []Number `json:"numberTabs,omitempty"`
	// A list of
	// [Radio Group tabs][radioGroup].
	//
	// This tab
	// This group tab is used to place 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.
	//
	//
	// [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 tab  allows the recipient to sign a document. May be
	// optional.
	//
	// [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 tab
	// allows the recipient to attach supporting
	// documents to an envelope.
	//
	//
	// [signerAttachment]: https://developers.docusign.com/esign-rest-api/reference/Envelopes/EnvelopeRecipientTabs/create/#/definitions/signerAttachment
	//
	SignerAttachmentTabs []SignerAttachment `json:"signerAttachmentTabs,omitempty"`
	// A list of
	// [SSN tabs][ssn].
	//
	// This tab
	// 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.
	//
	//
	// [ssn]: https://developers.docusign.com/esign-rest-api/reference/Envelopes/EnvelopeRecipientTabs/create/#/definitions/ssn
	//
	SSNTabs []SSN `json:"ssnTabs,omitempty"`
	// A list of
	// [Text tabs][text].
	//
	// This tab
	// A tab that allows the recipient to enter any type of text.
	//
	// [text]: https://developers.docusign.com/esign-rest-api/reference/EnvelopeRecipientTabs/create/#/definitions/text
	//
	TextTabs []Text `json:"textTabs,omitempty"`
	// A list of
	// [Title tabs][title].
	//
	// This tab  displays the recipient's title.
	//
	//
	// [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].
	//
	// This tab
	// This tab is used with the Approve tab to handle
	// supplemental documents.
	//
	// [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].
	//
	// This tab
	// 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.
	//
	//
	// [zip]: https://developers.docusign.com/esign-rest-api/reference/Envelopes/EnvelopeRecipientTabs/create/#/definitions/zip
	//
	ZipTabs []Zip `json:"zipTabs,omitempty"`
}

Tabs envelope Document Tabs resource

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 {
	//
	DocumentVisibility []DocumentVisibility `json:"documentVisibility,omitempty"`
}

type TemplateDocumentsResult

type TemplateDocumentsResult struct {
	//
	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 {
	//
	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"`
	//
	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.
	UseAccountDefaults DSBool `json:"useAccountDefaults,omitempty"`
}

type TemplateRecipients

type TemplateRecipients struct {
	// A complex type defining the management and access rights of a recipient assigned assigned as an agent on the document.
	Agents []Agent `json:"agents,omitempty"`
	// A complex type containing information about recipients who should receive a copy of the envelope, but does not need to sign it.
	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"`
	//
	CurrentRoutingOrder string `json:"currentRoutingOrder,omitempty"`
	//
	Editors []Editor `json:"editors,omitempty"`
	//
	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 complex type containing information about the Signer recipient.
	Signers []Signer `json:"signers,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 using this option, the embedded recipient still receives an email from DocuSign, just as a remote recipient would. When the document link in the email is clicked the recipient is redirected, through DocuSign, to the supplied URL to complete their actions. When routing to the URL, the sender's system (the server responding to the URL) must request a recipient token to launch a signing session.
	//
	// 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 that is launched by any partner.
	//
	// It is important to remember that in a typical embedded workflow the authentication of an embedded recipient is the responsibility of the sending application, DocuSign expects that senders will follow their own process for establishing the recipient's identity. In this workflow the recipient goes through the sending application before the embedded signing or viewing process in initiated. However, when the sending application sets `EmbeddedRecipientStartURL=SIGN_AT_DOCUSIGN`, the recipient goes directly to the embedded signing or viewing process bypassing the sending application and any authentication steps the sending application would use. In this case, DocuSign recommends that you use one of the normal DocuSign authentication features (Access Code, Phone Authentication, SMS Authentication, etc.) to verify the identity of the recipient.
	//
	// 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 fort 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"`
	//
	SigningGroupID string `json:"signingGroupId,omitempty"`
	//
	Tabs *Tabs `json:"tabs,omitempty"`
}

type TemplateSharedItem

type TemplateSharedItem struct {
	//
	ErrorDetails *ErrorDetails `json:"errorDetails,omitempty"`
	// The user who owns the template.
	Owner *UserInfo `json:"owner,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: TBD
	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"`
	//
	DocumentName string `json:"documentName,omitempty"`
	//
	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 string `json:"uri,omitempty"`
}

type TemplateTabs

type TemplateTabs struct {
	// A list of
	// [Approve tabs][approve].
	//
	//
	// This tab allows
	// 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.
	//
	// [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].
	//
	//
	// This tab allows the recipient to select a yes/no (on/off) option.
	//
	//
	// [checkbox]:  https://developers.docusign.com/esign-rest-api/reference/Envelopes/EnvelopeRecipientTabs/create/#/definitions/checkbox
	//
	CheckboxTabs []Checkbox `json:"checkboxTabs,omitempty"`
	// A list of
	// [Company tabs][company].
	//
	//
	// This tab displays the recipient's company name.
	//
	//
	//
	// [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]
	//
	//
	// This tab displays the date that the recipient signed the
	// document.
	//
	// [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].
	//
	//
	// This tab 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.
	//
	//
	// [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].
	//
	// This tab allows the recipient the option of declining an
	// envelope. If the recipient clicks the tab during the signing
	// process, the envelope is voided.
	//
	//
	// [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].
	//
	// This tab
	// displays the recipient's email as entered in the
	// recipient information.
	//
	//
	// [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].
	//
	// This tab
	// 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.
	//
	// [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].
	//
	// This tab
	// displays the envelope ID. Recipients cannot enter
	// or change the information in this tab.
	//
	//
	// [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].
	//
	// This tab
	// displays the recipient's first name. It
	// 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.
	//
	//
	// [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.
	//
	// 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.
	//
	// [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].
	//
	// This tab
	// displays the recipient's full name.
	//
	//
	// [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 tab allows the recipient to initial the document. May
	// be optional.
	//
	// [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].
	//
	// This tab
	// displays the recipient's last name. It
	// 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.
	//
	//
	// [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].
	//
	// This tab offers a list of options to choose from. The
	// `listItems` property is used to specify the selectable
	// options.
	//
	//
	//
	// [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 is a tab that alerts notary recipients that
	// they must take action on the page.
	// 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].
	//
	// This tab  displays additional information, in the form of a
	// note, for the recipient.
	//
	// [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].
	//
	// This tab allows the recipient to enter numbers and decimal
	// (.) points.
	//
	//
	//
	// [number]: https://developers.docusign.com/esign-rest-api/reference/Envelopes/EnvelopeRecipientTabs/create/#/definitions/number
	//
	NumberTabs []Number `json:"numberTabs,omitempty"`
	// A list of
	// [Radio Group tabs][radioGroup].
	//
	// This tab
	// This group tab is used to place 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.
	//
	//
	// [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 tab  allows the recipient to sign a document. May be
	// optional.
	//
	// [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 tab
	// allows the recipient to attach supporting
	// documents to an envelope.
	//
	//
	// [signerAttachment]: https://developers.docusign.com/esign-rest-api/reference/Envelopes/EnvelopeRecipientTabs/create/#/definitions/signerAttachment
	//
	SignerAttachmentTabs []SignerAttachment `json:"signerAttachmentTabs,omitempty"`
	// A list of
	// [SSN tabs][ssn].
	//
	// This tab
	// 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.
	//
	//
	// [ssn]: https://developers.docusign.com/esign-rest-api/reference/Envelopes/EnvelopeRecipientTabs/create/#/definitions/ssn
	//
	SSNTabs []SSN `json:"ssnTabs,omitempty"`
	// A list of
	// [Text tabs][text].
	//
	// This tab
	// A tab that allows the recipient to enter any type of text.
	//
	// [text]: https://developers.docusign.com/esign-rest-api/reference/EnvelopeRecipientTabs/create/#/definitions/text
	//
	TextTabs []Text `json:"textTabs,omitempty"`
	// A list of
	// [Title tabs][title].
	//
	// This tab  displays the recipient's title.
	//
	//
	// [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].
	//
	// This tab
	// This tab is used with the Approve tab to handle
	// supplemental documents.
	//
	// [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].
	//
	// This tab
	// 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.
	//
	//
	// [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"`
	//
	ErrorDetails *ErrorDetails `json:"errorDetails,omitempty"`
	//
	ListCustomFieldUpdateResults []ListCustomField `json:"listCustomFieldUpdateResults,omitempty"`
	//
	LockInformation *LockInformation `json:"lockInformation,omitempty"`
	//
	RecipientUpdateResults []RecipientUpdateResponse `json:"recipientUpdateResults,omitempty"`
	//
	TabUpdateResults *Tabs `json:"tabUpdateResults,omitempty"`
	//
	TextCustomFieldUpdateResults []TextCustomField `json:"textCustomFieldUpdateResults,omitempty"`
}

type Text

type Text struct {
	TabBase
	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"`
	// 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"`
	// 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"`
	// Height of the tab in pixels.
	Height int32 `json:"height,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"`
	// When set to **true**, the signer cannot change the data of the custom tab.
	Locked DSBool `json:"locked,omitempty"`
	// An optional value that describes the maximum length of the property when the property is a string.
	MaxLength int32 `json:"maxLength,omitempty"`
	// The initial value of the tab when it was sent to the recipient.
	OriginalValue string `json:"originalValue,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"`
	// 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"`
	// When set to **true**, the signer is required to fill out this tab
	Required TabRequired `json:"required,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"`
	// When set to **true**, this custom tab is shared.
	Shared DSBool `json:"shared,omitempty"`
	//
	Tooltip string `json:"tooltip,omitempty"`
	// The message displayed if the custom tab fails input validation (either custom of embedded).
	ValidationMessage string `json:"validationMessage,omitempty"`
	// A regular expressionn used to validate input for the tab.
	ValidationPattern string `json:"validationPattern,omitempty"`
	// Width of the tab in pixels.
	Width int32 `json:"width,omitempty"`
}

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

type TextCustomField

type TextCustomField struct {
	// If merge field's are being used, specifies the type of the merge field. The only  supported value is **salesforce**.
	ConfigurationType string `json:"configurationType,omitempty"`
	//
	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
	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"`
	// 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 signer cannot change the data of the custom tab.
	Locked DSBool `json:"locked,omitempty"`
	// An optional value that describes the maximum length of the property when the property is a string.
	MaxLength int32 `json:"maxLength,omitempty"`
	// The initial value of the tab when it was sent to the recipient.
	OriginalValue string `json:"originalValue,omitempty"`
	// When set to **true**, the signer is required to fill out this tab
	Required TabRequired `json:"required,omitempty"`
	//
	Tooltip string `json:"tooltip,omitempty"`
	// Width of the tab in pixels.
	Width int32 `json:"width,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"`
	// The error that caused the Connect post to fail.
	Error string `json:"error,omitempty"`
	// Item status. <!-- TODO -->
	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"`
	// The error that caused the Connect post to fail.
	Error string `json:"error,omitempty"`
	//
	Hostname string `json:"hostname,omitempty"`
	//
	ResponseSeconds string `json:"responseSeconds,omitempty"`
	// Item status. <!-- TODO -->
	Status string `json:"status,omitempty"`
	// Type of the user. Valid values: 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 int32 `json:"sentCount,omitempty"`
	// The number of envelopes the user has signed.
	SignedCount int32 `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 {
	//
	CountryCode string `json:"countryCode,omitempty"`
	//
	Credentials []Credential `json:"credentials,omitempty"`
	//
	DisplayName string `json:"displayName,omitempty"`
	//
	Email string `json:"email,omitempty"`
}

type UserAccountManagementGranularInformation

type UserAccountManagementGranularInformation struct {
	//
	CanManageAccountSecuritySettings DSBool `json:"canManageAccountSecuritySettings,omitempty"`
	//
	CanManageAccountSecuritySettingsMetadata *SettingsMetadata `json:"canManageAccountSecuritySettingsMetadata,omitempty"`
	//
	CanManageAccountSettings DSBool `json:"canManageAccountSettings,omitempty"`
	//
	CanManageAccountSettingsMetadata *SettingsMetadata `json:"canManageAccountSettingsMetadata,omitempty"`
	// **True**
	// if the user can manage
	// admins.
	CanManageAdmins DSBool `json:"canManageAdmins,omitempty"`
	//
	CanManageAdminsMetadata *SettingsMetadata `json:"canManageAdminsMetadata,omitempty"`
	// **True**
	// if the user can manage
	// groups.
	CanManageGroups DSBool `json:"canManageGroups,omitempty"`
	//
	CanManageGroupsMetadata *SettingsMetadata `json:"canManageGroupsMetadata,omitempty"`
	//
	CanManageReporting DSBool `json:"canManageReporting,omitempty"`
	//
	CanManageReportingMetadata *SettingsMetadata `json:"canManageReportingMetadata,omitempty"`
	//
	CanManageSharing DSBool `json:"canManageSharing,omitempty"`
	//
	CanManageSharingMetadata *SettingsMetadata `json:"canManageSharingMetadata,omitempty"`
	//
	CanManageSigningGroups DSBool `json:"canManageSigningGroups,omitempty"`
	//
	CanManageSigningGroupsMetadata *SettingsMetadata `json:"canManageSigningGroupsMetadata,omitempty"`
	// **True**
	// if the user can manage
	// users.
	CanManageUsers DSBool `json:"canManageUsers,omitempty"`
	//
	CanManageUsersMetadata *SettingsMetadata `json:"canManageUsersMetadata,omitempty"`
}

UserAccountManagementGranularInformation describes which account management capabilities a user has.

type UserInfo

type UserInfo struct {
	//
	ActivationAccessCode string `json:"activationAccessCode,omitempty"`
	//
	Email string `json:"email,omitempty"`
	//
	ErrorDetails *ErrorDetails `json:"errorDetails,omitempty"`
	//
	LoginStatus string `json:"loginStatus,omitempty"`
	//
	SendActivationEmail string `json:"sendActivationEmail,omitempty"`
	//
	URI string `json:"uri,omitempty"`
	// The user ID of the user being accessed. Generally this is the user ID of the authenticated user, but if the authenticated user is an Admin on the account, this may be another user the Admin user is accessing. **Note**: For [GET /v2/accounts/{accountId}/envelopes](https://developers.docusign.com/esign-rest-api/reference/Envelopes/Envelopes/listStatusChanges/#envelopesInformation)   `user_id` query parameter is not implemented and should not be used.
	UserID string `json:"userId,omitempty"`
	//
	UserName string `json:"userName,omitempty"`
	// Status of the user's account. One of:
	//
	// * ActivationRequired
	// * ActivationSent
	// * Active
	// * Closed
	// * Disabled
	//
	UserStatus string `json:"userStatus,omitempty"`
	//
	UserType string `json:"userType,omitempty"`
}

type UserInfoList

type UserInfoList struct {
	//
	Users []UserInfo `json:"users,omitempty"`
}

type UserInfoResponse

type UserInfoResponse struct {
	// The envelope's GUID. Eg 93be49ab-afa0-4adf-933c-f752070d71ec
	EnvelopeID string `json:"envelopeId,omitempty"`
	// Specifies the language for the Certificate of Completion in the response. The supported languages, with the language value shown in parenthesis, 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"`
	//
	Sender *Sender `json:"sender,omitempty"`
	//
	User *User `json:"user,omitempty"`
}

type UserInformation

type UserInformation struct {
	// Describes which account management capabilities a user has.
	AccountManagementGranular *UserAccountManagementGranularInformation `json:"accountManagementGranular,omitempty"`
	// The activation code the new user must enter when activating their account.
	ActivationAccessCode string `json:"activationAccessCode,omitempty"`
	//
	CountryCode string `json:"countryCode,omitempty"`
	// Indicates 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 user's email address.
	Email string `json:"email,omitempty"`
	// Specifies whether the user is enabled for updates from DocuSign Connect. Valid values: true or false.
	EnableConnectForUser string `json:"enableConnectForUser,omitempty"`
	//
	ErrorDetails *ErrorDetails `json:"errorDetails,omitempty"`
	// The user's first name.
	// Maximum Length: 50 characters.
	FirstName string `json:"firstName,omitempty"`
	// A complex element that has 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. Group information can be found by calling [ML:GET group information]. The only required parameter is groupId.
	//
	// The parameters are:
	//
	// * groupId - The DocuSign group ID for the group.
	// * groupName - The name of the group
	// * permissionProfileId - The ID of the permission profile associated with the group.
	// * groupType - The group type.
	//
	GroupList []Group `json:"groupList,omitempty"`
	// The user's physical home address.
	HomeAddress *AddressInformationV2 `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"`
	//
	JobTitle string `json:"jobTitle,omitempty"`
	// The date-time when the user last logged on to the system.
	LastLogin string `json:"lastLogin,omitempty"`
	// The user's last name.
	// Maximum Length: 50 characters.
	LastName string `json:"lastName,omitempty"`
	// Shows the current status of the user's password. Possible values are:
	//
	// * password_reset
	// * password_active
	// * password_expired
	// * password_locked
	// * password_reset_failed
	//
	LoginStatus string `json:"loginStatus,omitempty"`
	// The user's middle name.
	// Limit: 50 characters.
	MiddleName string `json:"middleName,omitempty"`
	//
	Password string `json:"password,omitempty"`
	// If password expiration is enabled, the date-time when the user's password expires.
	PasswordExpiration string `json:"passwordExpiration,omitempty"`
	//
	PermissionProfileID string `json:"permissionProfileId,omitempty"`
	//
	PermissionProfileName string `json:"permissionProfileName,omitempty"`
	//
	ProfileImageURI string `json:"profileImageUri,omitempty"`
	//
	SendActivationEmail string `json:"sendActivationEmail,omitempty"`
	// When set to **true**, specifies that an additional activation email is sent to the user if they fail a log on before activating their account.
	SendActivationOnInvalidLogin DSBool `json:"sendActivationOnInvalidLogin,omitempty"`
	// Contains the URI for an endpoint that you can use to retrieve the 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"`
	// Salutation for the user, such as Ms, Dr, Capt., etc.
	//
	// Limit: 10 characters.
	Title string `json:"title,omitempty"`
	//
	URI string `json:"uri,omitempty"`
	// The user ID of the user being accessed. Generally this is the user ID of the authenticated user, but if the authenticated user is an Admin on the account, this may be another user the Admin user is accessing. **Note**: For [GET /v2/accounts/{accountId}/envelopes](https://developers.docusign.com/esign-rest-api/reference/Envelopes/Envelopes/listStatusChanges/#envelopesInformation)   `user_id` query parameter is not implemented and should not be used.
	UserID string `json:"userId,omitempty"`
	// The user's full name.
	// <!--
	// `title` + `firstName` + `middleName` + `lastName` + `suffixName`
	// -->
	UserName string `json:"userName,omitempty"`
	// The date-time when the user's profile was last modified.
	UserProfileLastModifiedDate string `json:"userProfileLastModifiedDate,omitempty"`
	// The collection of settings that
	// describes the actions
	// a user can perform.
	// See [User Settings][] for
	// a list of available settings.
	//
	// [user settings]: https://developers.docusign.com/esign-rest-api/reference/Users/Users/create/#user-settings
	UserSettings []NameValue `json:"userSettings,omitempty"`
	// Status of the user's account. One of:
	//
	// * ActivationRequired
	// * ActivationSent
	// * Active
	// * Closed
	// * Disabled
	//
	UserStatus string `json:"userStatus,omitempty"`
	//
	UserType string `json:"userType,omitempty"`
	// The user's physical work address.
	WorkAddress *AddressInformationV2 `json:"workAddress,omitempty"`
}

UserInformation user management

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.
	ResultSetSize string `json:"resultSetSize,omitempty"`
	// Starting position of the current result set.
	StartPosition string `json:"startPosition,omitempty"`
	// The total number of items in the search's result set. It will always be greater than or equal to the value of the `resultSetSize` field.
	TotalSetSize string `json:"totalSetSize,omitempty"`
	//
	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 that has 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 user ID of the user being accessed. Generally this is the user ID of the authenticated user, but if the authenticated user is an Admin on the account, this may be another user the Admin user is accessing. **Note**: For [GET /v2/accounts/{accountId}/envelopes](https://developers.docusign.com/esign-rest-api/reference/Envelopes/Envelopes/listStatusChanges/#envelopesInformation)   `user_id` query parameter is not implemented and should not be used.
	UserID string `json:"userId,omitempty"`
}

type UserProfile

type UserProfile struct {
	//
	Address *AddressInformationV2 `json:"address,omitempty"`
	// These properties cannot be modified in the PUT.
	//
	// Indicates the authentication methods used by the user.
	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 are shown on the ID card.
	DisplayOrganizationInfo DSBool `json:"displayOrganizationInfo,omitempty"`
	// When set to **true**, the user's Address and Phone number are shown 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 is shown on the ID card.
	DisplayUsageHistory DSBool `json:"displayUsageHistory,omitempty"`
	//
	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-time when the user's profile was last modified.
	UserProfileLastModifiedDate string `json:"userProfileLastModifiedDate,omitempty"`
}

type UserSettingsInformation

type UserSettingsInformation struct {
	//
	AccountManagementGranular *UserAccountManagementGranularInformation `json:"accountManagementGranular,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"`
	//
	UserSettings []NameValue `json:"userSettings,omitempty"`
}

type UserSharedItem

type UserSharedItem struct {
	//
	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 the user adopted their signature.
	AdoptedDateTime *time.Time `json:"adoptedDateTime,omitempty"`
	// Indicates the date and time the item was created.
	CreatedDateTime *time.Time `json:"createdDateTime,omitempty"`
	//
	DateStampProperties *DateStampProperties `json:"dateStampProperties,omitempty"`
	//
	ErrorDetails *ErrorDetails `json:"errorDetails,omitempty"`
	//
	ExternalID string `json:"externalID,omitempty"`
	// One of **signature_image** or **initials_image**.
	ImageType string `json:"imageType,omitempty"`
	//
	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"`
	//
	IsDefault string `json:"isDefault,omitempty"`
	//
	PhoneticName string `json:"phoneticName,omitempty"`
	//
	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"`
	// 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"`
	// Contains the URI for an endpoint that you can use to retrieve the signature image.
	SignatureImageURI string `json:"signatureImageUri,omitempty"`
	//  The initials associated with the signature.
	SignatureInitials string `json:"signatureInitials,omitempty"`
	// Specifies the user signature name.
	SignatureName string `json:"signatureName,omitempty"`
	//
	SignatureType string `json:"signatureType,omitempty"`
	//
	StampFormat string `json:"stampFormat,omitempty"`
	//
	StampImageURI string `json:"stampImageUri,omitempty"`
	//
	StampSizeMM string `json:"stampSizeMM,omitempty"`
	//
	StampType string `json:"stampType,omitempty"`
}

UserSignature users' signatures

type UserSignatureDefinition

type UserSignatureDefinition struct {
	//
	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"`
	//
	SignatureInitials string `json:"signatureInitials,omitempty"`
	// Specifies the user signature name.
	SignatureName string `json:"signatureName,omitempty"`
}

type UserSignaturesInformation

type UserSignaturesInformation struct {
	//
	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 user ID of the user being accessed. Generally this is the user ID of the authenticated user, but if the authenticated user is an Admin on the account, this may be another user the Admin user is accessing. **Note**: For [GET /v2/accounts/{accountId}/envelopes](https://developers.docusign.com/esign-rest-api/reference/Envelopes/Envelopes/listStatusChanges/#envelopesInformation)   `user_id` query parameter is not implemented and should not be used.
	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.
	ResultSetSize string `json:"resultSetSize,omitempty"`
	// Starting position of the current result set.
	StartPosition string `json:"startPosition,omitempty"`
	// The total number of items in the search's result set. It will always be greater than or equal to the value of the `resultSetSize` field.
	TotalSetSize string `json:"totalSetSize,omitempty"`
	//
	Users []UserInfo `json:"users,omitempty"`
}

type View

type View struct {
	TabBase
	TabPosition
	TabStyle
	//
	ButtonText string `json:"buttonText,omitempty"`
	// Height of the tab in pixels.
	Height int32 `json:"height,omitempty"`
	// When set to **true**, the signer is required to fill out this tab
	Required TabRequired `json:"required,omitempty"`
	//
	RequiredRead DSBool `json:"requiredRead,omitempty"`
	//
	Tooltip string `json:"tooltip,omitempty"`
	// Width of the tab in pixels.
	Width int32 `json:"width,omitempty"`
}

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

type ViewURL

type ViewURL struct {
	// The endpoint to which webhook notification messages are sent via an HTTP/S POST request. For the DocuSign production platform, the url must start with https. For the demo platform, either http or https is ok.
	URL string `json:"url,omitempty"`
}

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 used 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"`
	//
	ID string `json:"id,omitempty"`
	//
	ImageBase64 string `json:"imageBase64,omitempty"`
	//
	Transparency string `json:"transparency,omitempty"`
	//
	WatermarkText string `json:"watermarkText,omitempty"`
}

type Workspace

type Workspace struct {
	//
	BillableAccountID string `json:"billableAccountId,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"`
	// Item status. <!-- TODO -->
	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"`
	// The id of the workspace, always populated.
	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.
	ResultSetSize string `json:"resultSetSize,omitempty"`
	// Starting position of the current result set.
	StartPosition string `json:"startPosition,omitempty"`
	// The total number of items in the search's result set. It will always be greater than or equal to the value of the `resultSetSize` field.
	TotalSetSize string `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"`
	//
	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"`
	//
	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"`
	// The type of the workspace item. Valid values are file, folder.
	Type string `json:"type,omitempty"`
	//
	URI string `json:"uri,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.
	ResultSetSize string `json:"resultSetSize,omitempty"`
	// Starting position of the current result set.
	StartPosition string `json:"startPosition,omitempty"`
	// The total number of items in the search's result set. It will always be greater than or equal to the value of the `resultSetSize` field.
	TotalSetSize string `json:"totalSetSize,omitempty"`
	// A list of workspaces.
	Workspaces []Workspace `json:"workspaces,omitempty"`
}

WorkspaceList provides properties that describe the workspaces avaialble.

type WorkspaceUser

type WorkspaceUser struct {
	// The account ID associated with the envelope.
	AccountID string `json:"accountId,omitempty"`
	// The name of the account that the workspace user belongs to.
	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"`
	//
	Email string `json:"email,omitempty"`
	//
	ErrorDetails *ErrorDetails `json:"errorDetails,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 the user. Valid values: type_owner, type_participant.
	Type string `json:"type,omitempty"`
	// The user ID of the user being accessed. Generally this is the user ID of the authenticated user, but if the authenticated user is an Admin on the account, this may be another user the Admin user is accessing. **Note**: For [GET /v2/accounts/{accountId}/envelopes](https://developers.docusign.com/esign-rest-api/reference/Envelopes/Envelopes/listStatusChanges/#envelopesInformation)   `user_id` query parameter is not implemented and should not be used.
	UserID string `json:"userId,omitempty"`
	//
	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"`
}

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"`
	//
	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
	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"`
	// 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 signer cannot change the data of the custom tab.
	Locked DSBool `json:"locked,omitempty"`
	// An optional value that describes the maximum length of the property when the property is a string.
	MaxLength int32 `json:"maxLength,omitempty"`
	// The initial value of the tab when it was sent to the recipient.
	OriginalValue string `json:"originalValue,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"`
	// 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"`
	// When set to **true**, the signer is required to fill out this tab
	Required TabRequired `json:"required,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"`
	// When set to **true**, this custom tab is shared.
	Shared DSBool `json:"shared,omitempty"`
	//
	Tooltip string `json:"tooltip,omitempty"`
	//
	UseDash4 string `json:"useDash4,omitempty"`
	// The message displayed if the custom tab fails input validation (either custom of embedded).
	ValidationMessage string `json:"validationMessage,omitempty"`
	// A regular expressionn used to validate input for the tab.
	ValidationPattern string `json:"validationPattern,omitempty"`
	// Width of the tab in pixels.
	Width int32 `json:"width,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