adobesign

package
v0.0.0-...-a73c461 Latest Latest
Warning

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

Go to latest
Published: Feb 7, 2022 License: MIT Imports: 17 Imported by: 2

Documentation

Index

Constants

This section is empty.

Variables

View Source
var AgreementState = struct {
	Authoring string
	Draft     string
	InProcess string
}{
	Authoring: "AUTHORING",
	Draft:     "DRAFT",
	InProcess: "IN_PROCESS",
}

AgreementState defines the valid states of an Agreement.

View Source
var ParticipantRole = struct {
	Signer                       string
	Approver                     string
	Acceptor                     string
	CertifiedRecipient           string
	FormFiller                   string
	DelegateToSigner             string
	DelegateToApprover           string
	DelegateToAcceptor           string
	DelegateToCertifiedRecipient string
	DelegateToFormFiller         string
	Share                        string
	NotarySigner                 string
}{
	Signer:                       "SIGNER",
	Approver:                     "APPROVER",
	Acceptor:                     "ACCEPTOR",
	CertifiedRecipient:           "CERTIFIED_RECIPIENT",
	FormFiller:                   "FORM_FILLER",
	DelegateToSigner:             "DELEGATE_TO_SIGNER",
	DelegateToApprover:           "DELEGATE_TO_APPROVER",
	DelegateToAcceptor:           "DELEGATE_TO_ACCEPTOR",
	DelegateToCertifiedRecipient: "DELEGATE_TO_CERTIFIED_RECIPIENT",
	DelegateToFormFiller:         "DELEGATE_TO_FORM_FILLER",
	Share:                        "SHARE",
	NotarySigner:                 "NOTARY_SIGNER",
}

ParticipantRole defines the valid roles of a participant in an Agreement.

View Source
var Resource = struct {
	Agreement       string
	Widget          string
	MegaSign        string
	LibraryDocument string
}{
	Agreement:       "AGREEMENT",
	Widget:          "WIDGET",
	MegaSign:        "MEGASIGN",
	LibraryDocument: "LIBRARY_DOCUMENT",
}

Resource defines the type of resources that can be used in the API.

View Source
var Scope = struct {
	Account  string
	Group    string
	User     string
	Resource string
}{
	Account:  "ACCOUNT",
	Group:    "GROUP",
	User:     "USER",
	Resource: "RESOURCE",
}

Scope defines the supported scopes for the API.

View Source
var SignatureType = struct {
	Esign   string
	Written string
}{
	Esign:   "ESIGN",
	Written: "WRITTEN",
}

SignatureType defines the valid signature methods of an Agreement.

View Source
var WebhookSubscriptionEvent = struct {
	AgreementAll                            string
	AgreementCreated                        string
	AgreementActionRequested                string
	AgreementActionCompleted                string
	AgreementWorkflowCompleted              string
	AgreementExpired                        string
	AgreementDocumentsDeleted               string
	AgreementRecalled                       string
	AgreementRejected                       string
	AgreementShared                         string
	AgreementActionDelegated                string
	AgreementActionReplacedSigner           string
	AgreementModified                       string
	AgreementUserAckAgreementModified       string
	AgreementEmailViewed                    string
	AgreementEmailBounced                   string
	AgreementAutoCancelledConversionProblem string
	AgreementOfflineSync                    string
	AgreementUploadedBySender               string
	AgreementVaulted                        string
	AgreementWebIdentityAuthenticated       string
	AgreementKbaAuthenticated               string
}{
	AgreementAll:                            "AGREEMENT_ALL",
	AgreementCreated:                        "AGREEMENT_CREATED",
	AgreementActionRequested:                "AGREEMENT_ACTION_REQUESTED",
	AgreementActionCompleted:                "AGREEMENT_ACTION_COMPLETED",
	AgreementWorkflowCompleted:              "AGREEMENT_WORKFLOW_COMPLETED",
	AgreementExpired:                        "AGREEMENT_EXPIRED",
	AgreementDocumentsDeleted:               "AGREEMENT_DOCUMENTS_DELETED",
	AgreementRecalled:                       "AGREEMENT_RECALLED",
	AgreementRejected:                       "AGREEMENT_REJECTED",
	AgreementShared:                         "AGREEMENT_SHARED",
	AgreementActionDelegated:                "AGREEMENT_ACTION_DELEGATED",
	AgreementActionReplacedSigner:           "AGREEMENT_ACTION_REPLACED_SIGNER",
	AgreementModified:                       "AGREEMENT_MODIFIED",
	AgreementUserAckAgreementModified:       "AGREEMENT_USER_ACK_AGREEMENT_MODIFIED",
	AgreementEmailViewed:                    "AGREEMENT_EMAIL_VIEWED",
	AgreementEmailBounced:                   "AGREEMENT_EMAIL_BOUNCED",
	AgreementAutoCancelledConversionProblem: "AGREEMENT_AUTO_CANCELLED_CONVERSION_PROBLEM",
	AgreementOfflineSync:                    "AGREEMENT_OFFLINE_SYNC",
	AgreementUploadedBySender:               "AGREEMENT_UPLOADED_BY_SENDER",
	AgreementVaulted:                        "AGREEMENT_VAULTED",
	AgreementWebIdentityAuthenticated:       "AGREEMENT_WEB_IDENTITY_AUTHENTICATED",
	AgreementKbaAuthenticated:               "AGREEMENT_KBA_AUTHENTICATED",
}

WebhookSubscriptionEvent defines the supported webhook events.

Functions

func CheckResponse

func CheckResponse(r *http.Response) error

func Endpoint

func Endpoint(baseUrl string) oauth2.Endpoint

Types

type Agreement

type Agreement struct {
	FileInfos           []FileInfo           `json:"fileInfos,omitempty"`
	Name                string               `json:"name,omitempty"`
	ParticipantSetsInfo []ParticipantSetInfo `json:"participantSetsInfo,omitempty"`
	SignatureType       string               `json:"signatureType,omitempty"`
	State               string               `json:"state,omitempty"`
	Ccs                 []Cc                 `json:"ccs,omitempty"`
	CreatedDate         string               `json:"createdDate,omitempty"`
	DeviceInfo          struct {
		ApplicationDescription string `json:"applicationDescription,omitempty"`
		DeviceDescription      string `json:"deviceDescription,omitempty"`
		DeviceTime             string `json:"deviceTime,omitempty"`
	} `json:"deviceInfo,omitempty"`
	DocumentVisibilityEnabled bool `json:"documentVisibilityEnabled,omitempty"`
	EmailOption               struct {
		SendOptions struct {
			CompletionEmails string `json:"completionEmails,omitempty"`
			InFlightEmails   string `json:"inFlightEmails,omitempty"`
			InitEmails       string `json:"initEmails,omitempty"`
		} `json:"sendOptions,omitempty"`
	} `json:"emailOption,omitempty"`
	ExpirationTime string `json:"expirationTime,omitempty"`
	ExternalId     struct {
		Id string `json:"id,omitempty"`
	} `json:"externalId,omitempty"`
	FirstReminderDelay      int `json:"firstReminderDelay,omitempty"`
	FormFieldLayerTemplates []struct {
		Document struct {
			CreatedDate string `json:"createdDate,omitempty"`
			Id          string `json:"id,omitempty"`
			Label       string `json:"label,omitempty"`
			NumPages    int    `json:"numPages,omitempty"`
			MimeType    string `json:"mimeType,omitempty"`
			Name        string `json:"name,omitempty"`
		} `json:"document,omitempty"`
		Label               string `json:"label,omitempty"`
		LibraryDocumentId   string `json:"libraryDocumentId,omitempty"`
		Notarize            bool   `json:"notarize,omitempty"`
		TransientDocumentId string `json:"transientDocumentId,omitempty"`
		UrlFileInfo         struct {
			MimeType string `json:"mimeType,omitempty"`
			Name     string `json:"name,omitempty"`
			Url      string `json:"url,omitempty"`
		} `json:"urlFileInfo,omitempty"`
	} `json:"formFieldLayerTemplates,omitempty"`
	GroupId                    string           `json:"groupId,omitempty"`
	HasFormFieldData           bool             `json:"hasFormFieldData,omitempty"`
	HasSignerIdentityReport    bool             `json:"hasSignerIdentityReport,omitempty"`
	Id                         string           `json:"id,omitempty"`
	IsDocumentRetentionApplied bool             `json:"isDocumentRetentionApplied,omitempty"`
	LastEventDate              string           `json:"lastEventDate,omitempty"`
	Locale                     string           `json:"locale,omitempty"`
	MergeFieldInfo             []MergeFieldInfo `json:"mergeFieldInfo,omitempty"`
	Message                    string           `json:"message,omitempty"`
	NotaryInfo                 struct {
		Appointment string `json:"appointment,omitempty"`
		NotaryEmail string `json:"notaryEmail,omitempty"`
		NotaryType  string `json:"notaryType,omitempty"`
		Note        string `json:"note,omitempty"`
		Payment     string `json:"payment,omitempty"`
	} `json:"notaryInfo,omitempty"`
	ParentId       string `json:"parentId,omitempty"`
	PostSignOption struct {
		RedirectDelay int    `json:"redirectDelay,omitempty"`
		RedirectUrl   string `json:"redirectUrl,omitempty"`
	} `json:"postSignOption,omitempty"`
	ReminderFrequency string `json:"reminderFrequency,omitempty"`
	SecurityOption    struct {
		OpenPassword string `json:"openPassword,omitempty"`
	} `json:"securityOption,omitempty"`
	SenderEmail  string `json:"senderEmail,omitempty"`
	Status       string `json:"status,omitempty"`
	Type         string `json:"type,omitempty"`
	VaultingInfo struct {
		Enabled bool `json:"enabled,omitempty"`
	} `json:"vaultingInfo,omitempty"`
	WorkflowId string `json:"workflowId,omitempty"`
}

Agreement defines the request body for creating an agreement ref: https://secure.na1.echosign.com/public/docs/restapi/v6#!/agreements/createAgreement

type AgreementCancellationInfo

type AgreementCancellationInfo struct {
	Comment      string `json:"comment"`
	NotifyOthers bool   `json:"notifyOthers"`
}

type AgreementService

type AgreementService service

AgreementService handles operations related to agreements

ref: https://secure.na1.echosign.com/public/docs/restapi/v6#!/agreements

func (*AgreementService) CreateAgreement

func (s *AgreementService) CreateAgreement(ctx context.Context, request Agreement) (*CreateAgreementResponse, error)

CreateAgreement creates a new Adobe Sign Agreement ref: https://secure.na1.echosign.com/public/docs/restapi/v6#!/agreements/createAgreement

func (*AgreementService) CreateReminder

func (s *AgreementService) CreateReminder(ctx context.Context, agreementId string, request ReminderInfo) (*ReminderCreationResult, error)

CreateReminder Creates a reminder on the specified participants of an existing AdobeSign Agreement ref: https://secure.na1.adobesign.com/public/docs/restapi/v6#!/agreements/createReminderOnParticipant

func (*AgreementService) GetAgreement

func (s *AgreementService) GetAgreement(ctx context.Context, agreementId string) (*Agreement, error)

GetAgreement retrieves an existing Adobe Sign Agreement ref: https://secure.na1.echosign.com/public/docs/restapi/v6#!/agreements/getAgreementInfo

func (*AgreementService) GetAgreementMembers

func (s *AgreementService) GetAgreementMembers(ctx context.Context, agreementId string) (*MembersInfo, error)

GetAgreementMembers Retrieves information of members of an existing AdobeSign Agreement ref: https://secure.na1.adobesign.com/public/docs/restapi/v6#!/agreements/getAllMembers

func (*AgreementService) GetAuditTrail

func (s *AgreementService) GetAuditTrail(ctx context.Context, agreementId string) (string, error)

GetAuditTrail retrieves the PDF file stream containing audit trail information ref: https://secure.na1.echosign.com/public/docs/restapi/v6#!/agreements/getAuditTrail

func (*AgreementService) GetCombinedDocument

func (s *AgreementService) GetCombinedDocument(ctx context.Context, agreementId string) ([]byte, error)

GetCombinedDocument retrieves a single combined PDF document for the documents associated with an agreement ref: https://secure.na1.echosign.com/public/docs/restapi/v6#!/agreements/getCombinedDocument

func (*AgreementService) UpdateAgreementState

func (s *AgreementService) UpdateAgreementState(ctx context.Context, agreementId string, request UpdateAgreementRequest) error

UpdateAgreementState updates the state of an existing Adobe Sign Agreement ref: https://secure.na1.echosign.com/public/docs/restapi/v6#!/agreements/updateAgreementState

type CCParticipantInfo

type CCParticipantInfo struct {
	// Company of the CC participant, if available
	Company string `json:"company,omitempty"`
	// Email of the CC participant of the agreement
	Email string `json:"email"`
	// Hidden True if the agreement is hidden for the user that is calling the API. Only returned if self is true
	Hidden bool `json:"hidden,omitempty"`
	// Name of the CC participant, if available
	Name string `json:"name,omitempty"`
	// ParticipantId The unique identifier of the CC participant of the agreement
	ParticipantId string `json:"participantId"`
	// Self True if the CC participant is the same user that is calling the API
	Self bool `json:"self"`
}

type Cc

type Cc struct {
	Email        string   `json:"email,omitempty"`
	Label        string   `json:"label,omitempty"`
	VisiblePages []string `json:"visiblePages,omitempty"`
}

type Client

type Client struct {

	// Base URL for API requests. Defaults to the public Adobe Sign API, but can be
	// set to a domain endpoint to use with Adobe Sign Enterprise. BaseURL should
	// always be specified with a trailing slash.
	BaseURL *url.URL

	// Send requests impersonating user
	ImpersonatedUser string

	// User agent used when communicating with the Adobe Sign API.
	UserAgent string

	//// Services used for talking to different parts of the Adobe Sign API.
	TransientDocumentService *TransientDocumentService
	AgreementService         *AgreementService
	WebhookService           *WebhookService
	// contains filtered or unexported fields
}

A Client manages communication with the Adobe Sign API.

func NewClient

func NewClient(integrationKey string, shard string, impersonating string) *Client

NewClient creates an adobe sign client using an Integration Key, this method is deprecated. New integrations should use the NewOauth2Client method. ref: https://helpx.adobe.com/sign/kb/how-to-create-an-integration-key.html

func NewOauth2Client

func NewOauth2Client(params Oauth2Params) *Client

func (*Client) BareDo

func (c *Client) BareDo(ctx context.Context, req *http.Request) (*Response, error)

BareDo sends an API request and lets you handle the api response. If an error or API Error occurs, the error will contain more information. Otherwise you are supposed to read and close the response's Body. If rate limit is exceeded and reset time is in the future, BareDo returns *RateLimitError immediately without making a network API call.

The provided ctx must be non-nil, if it is nil an error is returned. If it is canceled or times out, ctx.Err() will be returned.

func (*Client) Client

func (c *Client) Client() *http.Client

Client returns the http.Client used by this Adobe Sign client.

func (*Client) Do

func (c *Client) Do(ctx context.Context, req *http.Request, v interface{}) (*Response, error)

Do sends an API request and returns the API response. The API response is JSON decoded and stored in the value pointed to by v, or returned as an error if an API error has occurred. If v implements the io.Writer interface, the raw response body will be written to v, without attempting to first decode it. If v is nil, and no error happens, the response is returned as is. If rate limit is exceeded and reset time is in the future, Do returns *RateLimitError immediately without making a network API call.

The provided ctx must be non-nil, if it is nil an error is returned. If it is canceled or times out, ctx.Err() will be returned.

func (*Client) NewMultiPartRequest

func (c *Client) NewMultiPartRequest(urlStr string, body io.ReadWriter) (*http.Request, error)

func (*Client) NewRequest

func (c *Client) NewRequest(method, urlStr string, body interface{}) (*http.Request, error)

NewRequest creates an API request. A relative URL can be provided in urlStr, in which case it is resolved relative to the BaseURL of the Client. Relative URLs should always be specified without a preceding slash. If specified, the value pointed to by body is JSON encoded and included as the request body.

type CreateAgreementResponse

type CreateAgreementResponse struct {
	Id string `json:"id,omitempty"`
}

type CreateWebhookRequest

type CreateWebhookRequest struct {
	Name                      string         `json:"name,omitempty"`
	Scope                     string         `json:"scope,omitempty"`
	State                     string         `json:"state,omitempty"`
	WebhookSubscriptionEvents []string       `json:"webhookSubscriptionEvents,omitempty"`
	WebhookUrlInfo            WebhookUrlInfo `json:"webhookUrlInfo,omitempty"`
	ApplicationDisplayName    string         `json:"applicationDisplayName,omitempty"`
	ApplicationName           string         `json:"applicationName,omitempty"`
	Created                   string         `json:"created,omitempty"`
	Id                        string         `json:"id,omitempty"`
	LastModified              string         `json:"lastModified,omitempty"`
	ProblemNotificationEmails []struct {
		Email string `json:"email,omitempty"`
	} `json:"problemNotificationEmails,omitempty"`
	ResourceId               string                   `json:"resourceId,omitempty"`
	ResourceType             string                   `json:"resourceType,omitempty"`
	Status                   string                   `json:"status,omitempty"`
	WebhookConditionalParams WebhookConditionalParams `json:"webhookConditionalParams,omitempty"`
}

type CreateWebhookResponse

type CreateWebhookResponse struct {
	Id string `json:"id"`
}

type DetailedParticipantInfo

type DetailedParticipantInfo struct {
	// Email of the participant. In case of modifying a participant set (PUT) this is a required field. In case of GET,
	//this is the required field and will always be returned unless it is a fax workflow (legacy agreements) that were
	//created using fax as input,
	Email string `json:"email"`
	// ParticipantSetInfo Security options that apply to the participant.
	SecurityOption ParticipantSecurityOption `json:"securityOption"`
	// Company of the participant, if available. This cannot be changed as part of the PUT call.
	Company string `json:"company,omitempty"`
	// CreatedDate The date when the participant was added. This will be returned as part of GET call but is ignored if
	//passed as part of PUT call.,
	CreatedDate string `json:"createdDate,omitempty"`
	// Hidden True if the agreement is hidden for the user that is calling the API. Only returned if self is true.
	//Ignored (not required) if modifying a participant (PUT).
	Hidden bool `json:"hidden,omitempty"`
	// Id The unique identifier of the participant. This will be returned as part of Get call but is not mandatory to
	//be passed as part of PUT call for agreements/{id}/members/participantSets/{id}.,
	Id string `json:"id,omitempty"`
	// Name The name of the participant, if available. This cannot be changed as part of the PUT call.
	Name string `json:"name,omitempty"`
	// PrivateMessage The private message of the participant, if available. This cannot be changed as part of the PUT
	//call.
	PrivateMessage string `json:"privateMessage,omitempty"`
	// True if this participant is the same user that is calling the API. Returned as part of Get. Ignored
	//(not required) if modifying a participant set (PUT).,
	Self bool `json:"self,omitempty"`
	// Status ['REPLACED' or 'ACTIVE']: The status of the participant. This cannot be changed as part of the PUT call.
	//New participants will be ignored if added with a REPLACED status.,
	Status string `json:"status,omitempty"`
	// UserId The user ID of the participant. This will be returned as part of GET call but is ignored if passed as
	//part of PUT call.
	UserId string `json:"userId,omitempty"`
}

type DetailedParticipantSetInfo

type DetailedParticipantSetInfo struct {
	// MemberInfos  Array of ParticipantInfo objects, containing participant-specific data (e.g. email). All
	//participants in the array belong to the same set
	MemberInfos []DetailedParticipantInfo `json:"memberInfos"`
	// Order Index indicating sequential signing group (specified for hybrid routing). This cannot be changed as part
	//of the PUT call.
	Order int `json:"order"`
	// Role ['SIGNER' or 'SENDER' or 'APPROVER' or 'ACCEPTOR' or 'CERTIFIED_RECIPIENT' or 'FORM_FILLER' or
	//'DELEGATE_TO_SIGNER' or 'DELEGATE_TO_APPROVER' or 'DELEGATE_TO_ACCEPTOR' or 'DELEGATE_TO_CERTIFIED_RECIPIENT' or
	//'DELEGATE_TO_FORM_FILLER' or 'SHARE' or 'NOTARY_SIGNER']: Role assumed by all participants in the set (signer,
	//approver etc.). This cannot be changed as part of the PUT call.,
	Role string `json:"role"`
	// Id The unique identifier of the participant set. This cannot be changed as part of the PUT call.
	Id string `json:"id,omitempty"`
	// Name of ParticipantSet (it can be empty, but needs not to be unique in a single agreement). Maximum no of
	//characters in participant set name is restricted to 255. This cannot be changed as part of the PUT call.
	Name string `json:"name,omitempty"`
	// PrivateMessage Participant set's private message - all participants in the set will receive the same message.
	//This cannot be changed as part of the PUT call.
	PrivateMessage string `json:"privateMessage,omitempty"`
	// Status ['CANCELLED' or 'COMPLETED' or 'EXPIRED' or 'NOT_YET_VISIBLE' or 'WAITING_FOR_NOTARIZATION' or
	//'WAITING_FOR_OTHERS' or 'WAITING_FOR_MY_APPROVAL' or 'WAITING_FOR_AUTHORING' or 'WAITING_FOR_MY_ACKNOWLEDGEMENT'
	//or 'WAITING_FOR_MY_ACCEPTANCE' or 'WAITING_FOR_MY_FORM_FILLING' or 'WAITING_FOR_MY_DELEGATION' or
	//'WAITING_FOR_MY_SIGNATURE' or 'WAITING_FOR_MY_VERIFICATION' or 'WAITING_FOR_PREFILL']: The agreement status with
	//respect to the participant set. This cannot be changed as part of the PUT call.
	Status string `json:"status,omitempty"`
}

type DigAuthInfo

type DigAuthInfo struct {
	// ProviderId Digital Identity Gateway Provider Id. When replacing a participant that has DIG_ID authentication
	//specified, you must supply a provider id for the new participant.,
	ProviderId string `json:"providerId"`
	// ProviderDesc Digital Identity Gateway Provider Description. This will be ignored as part of POST or PUT calls.,
	ProviderDesc string `json:"providerDesc,omitempty"`
	// ProviderName Digital Identity Gateway Provider Name. This will be ignored as part of POST or PUT calls.
	ProviderName string `json:"ProviderName,omitempty"`
}

type Document

type Document struct {
	CreatedDate string `json:"createdDate,omitempty"`
	Id          string `json:"id,omitempty"`
	Label       string `json:"label,omitempty"`
	NumPages    int    `json:"numPages,omitempty"`
	MimeType    string `json:"mimeType,omitempty"`
	Name        string `json:"name,omitempty"`
}

type ErrorResponse

type ErrorResponse struct {
	Response *http.Response // HTTP response that caused this error
	Message  string         `json:"message"`
	Code     string         `json:"code"`
	Err      string         `json:"err"`
}

An ErrorResponse reports one or more errors caused by an API request.

func (*ErrorResponse) Error

func (r *ErrorResponse) Error() string

type FileInfo

type FileInfo struct {
	Document            Document `json:"document,omitempty"`
	Label               string   `json:"label,omitempty"`
	LibraryDocumentId   string   `json:"libraryDocumentId,omitempty"`
	Notarize            bool     `json:"notarize,omitempty"`
	TransientDocumentId string   `json:"transientDocumentId,omitempty"`
	UrlFileInfo         struct {
		MimeType string `json:"mimeType,omitempty"`
		Name     string `json:"name,omitempty"`
		Url      string `json:"url,omitempty"`
	} `json:"urlFileInfo,omitempty"`
}

type ListOptions

type ListOptions struct {
	// Maximum number of Items to be returned (max limit: 100)
	Cursor int `url:"cursor,omitempty"`

	// 	Offset used for pagination if collection has more than limit items
	PageSize int `url:"pageSize,omitempty"`
}

ListOptions specifies the optional parameters to various List methods that support offset pagination.

type MemberInfo

type MemberInfo struct {
	Email          string `json:"email,omitempty"`
	Id             string `json:"id,omitempty"`
	SecurityOption struct {
		AuthenticationMethod string    `json:"authenticationMethod,omitempty"`
		NameInfo             NameInfo  `json:"nameInfo,omitempty"`
		NotaryAuthentication string    `json:"notaryAuthentication,omitempty"`
		Password             string    `json:"password,omitempty"`
		PhoneInfo            PhoneInfo `json:"phoneInfo,omitempty"`
	} `json:"securityOption,omitempty"`
}

type MembersInfo

type MembersInfo struct {
	// CCsInfo Information of CC participants of the agreement.
	CCsInfo []CCParticipantInfo `json:"ccsInfo"`
	// NextParticipantSets Information of next participant sets.,
	NextParticipantSets []DetailedParticipantSetInfo `json:"nextParticipantSets"`
	// ParticipantSets Information about the participant Sets.,
	ParticipantSets []DetailedParticipantSetInfo `json:"participantSets"`
	// SenderInfo Information of the sender of the agreement.,
	SenderInfo SenderInfo `json:"senderInfo"`
	// Information of the participants with whom the agreement has been shared.
	SharesInfo []ShareParticipantInfo `json:"sharesInfo"`
}

type MergeFieldInfo

type MergeFieldInfo struct {
	DefaultValue string `json:"defaultValue,omitempty"`
	FieldName    string `json:"fieldName,omitempty"`
}

type NameInfo

type NameInfo struct {
	// FirstName Recipient's first name,
	FirstName string `json:"firstName,omitempty"`
	// LastName Recipient's last name
	LastName string `json:"lastName,omitempty"`
}

type Oauth2Params

type Oauth2Params struct {
	ClientId     string   `json:"clientId"`
	ClientSecret string   `json:"clientSecret"`
	Scopes       []string `json:"scopes"`
	BaseUrl      string   `json:"baseUrl"`
	RedirectUri  string   `json:"redirectUri"`
}

type PageInfo

type PageInfo struct {
	NextCursor int `json:"nextCursor,omitempty"`
}

PageInfo holds the pagination information for a Adobe Sign API request

type ParticipantSecurityOption

type ParticipantSecurityOption struct {
	// AuthenticationMethod ['NONE' or 'PASSWORD' or 'PHONE' or 'KBA' or 'WEB_IDENTITY' or 'ADOBE_SIGN' or 'GOV_ID' or
	//'DIG_ID']: The authentication method for the participants to have access to view and sign the document. When
	//replacing a participant that has PASSWORD or PHONE authentication specified, you must supply a password or phone
	//number for the new participant, and you cannot change the authentication method,
	AuthenticationMethod string `json:"authenticationMethod"`
	// DigAuthInfo Digital Identity Gateway Provider information.
	DigAuthInfo DigAuthInfo `json:"digAuthInfo,omitempty"`
	// NameInfo Recipient's full name,
	NameInfo NameInfo `json:"nameInfo,omitempty"`
	// NotaryAuthentication ['MULTI_FACTOR_AUTHENTICATION' or 'NONE']: The authentication method of the notary
	//participant to the notary,
	NotaryAuthentication string `json:"notaryAuthentication,omitempty"`
	// Password The password required for the participant to view and sign the document. Note that AdobeSign will never
	//show this password to anyone, so you will need to separately communicate it to any relevant parties. The password
	//will not be returned in GET call. When replacing a participant that has PASSWORD authentication specified, you
	//must supply a password for the new participant.
	Password string `json:"password,omitempty"`
	// PhoneInfo The phoneInfo required for the participant to view and sign the document
	PhoneInfo PhoneInfo `json:"phoneInfo,omitempty"`
}

type ParticipantSetInfo

type ParticipantSetInfo struct {
	MemberInfos    []MemberInfo `json:"memberInfos,omitempty"`
	Order          int          `json:"order,omitempty"`
	Role           string       `json:"role,omitempty"`
	Id             string       `json:"id,omitempty"`
	Label          string       `json:"label,omitempty"`
	Name           string       `json:"name,omitempty"`
	PrivateMessage string       `json:"privateMessage,omitempty"`
	VisiblePages   []string     `json:"visiblePages,omitempty"`
}

type PhoneInfo

type PhoneInfo struct {
	// CountryCode The numeric country calling code (ISD code) required for the participant to view and sign the
	//document if authentication type is PHONE
	CountryCode string `json:"countryCode,omitempty"`
	// CountryIsoCode The country ISO Alpha-2 code required for the participant to view and sign the document if
	//authentication method is PHONE
	CountryIsoCode string `json:"countryIsoCode,omitempty"`
	// Phone The phone number required for the participant to view and sign the document if authentication method is
	//PHONE. When replacing a participant that has PHONE authentication specified, you must supply a phone number for
	//the new participant
	Phone string `json:"phone,omitempty"`
}

type Rate

type Rate struct {
	// RetryAfter is the number of seconds that the client should wait before retrying new requests.
	RetryAfterSeconds int `json:"retryAfter"`
}

Rate represents the rate limit for the current client. ref: https://www.adobe.io/apis/documentcloud/sign/docs.html#!adobedocs/adobe-sign/master/api_usage/throttling.md

type RateLimitError

type RateLimitError struct {
	Rate     Rate           // Rate specifies last known rate limit for the client
	Response *http.Response // HTTP response that caused this error
	Message  string         `json:"message"` // error message
}

RateLimitError occurs when Adobe Sign returns 403 Forbidden response with a rate limit remaining value of 0.

func (*RateLimitError) Error

func (r *RateLimitError) Error() string

func (*RateLimitError) Is

func (r *RateLimitError) Is(target error) bool

Is returns whether the provided error equals this error.

type ReminderCreationResult

type ReminderCreationResult struct {
	Id string `json:"id"`
}

type ReminderInfo

type ReminderInfo struct {
	// RecipientParticipantIds A list of one or more participant IDs that the reminder should be sent to. These must
	//be recipients of the agreement and not sharees or cc's.
	RecipientParticipantIds []string `json:"recipientParticipantIds"`
	// Status ['ACTIVE' or 'CANCELED' or 'COMPLETE']: Current status of the reminder. The only valid update in a PUT
	//is from ACTIVE to CANCELED. Must be provided as ACTIVE in a POST.
	Status string `json:"status"`
	// FirstReminderDelay Integer which specifies the delay in hours before sending the first reminder.
	//This is an optional field. The minimum value allowed is 1 hour and the maximum value can’t be more than the
	//difference of agreement creation and expiry time of the agreement in hours.
	//If this is not specified but the reminder frequency is specified, then the first reminder will be sent based
	//on frequency. Cannot be updated in a PUT.
	FirstReminderDelay int `json:"firstReminderDelay,omitempty"`
	// Frequency ['DAILY_UNTIL_SIGNED' or 'WEEKDAILY_UNTIL_SIGNED' or 'EVERY_OTHER_DAY_UNTIL_SIGNED' or
	//'EVERY_THIRD_DAY_UNTIL_SIGNED' or 'EVERY_FIFTH_DAY_UNTIL_SIGNED' or 'WEEKLY_UNTIL_SIGNED' or 'ONCE']: The
	//frequency at which reminder will be sent until the agreement is completed.
	//If frequency is not provided, the reminder will be sent once (if the agreement is available at the specified
	//time) with the delay based on the firstReminderDelay field and will never repeat again. If the agreement is
	//not available at that time, reminder will not be sent. Cannot be updated in a PUT,
	Frequency string `json:"frequency,omitempty"`
	// LastSentDate The date when the reminder was last sent. Only provided in GET.
	LastSentDate string `json:"lastSentDate,omitempty"`
	// NextSentDate The date when the reminder is scheduled to be sent next. When provided in POST request, frequency
	//needs to be ONCE (or not specified), startReminderCounterFrom needs to be REMINDER_CREATION (or not specified)
	//and firstReminderDelay needs to be 0 (or not specified). Cannot be updated in a PUT. Format would be
	//yyyy-MM-dd'T'HH:mm:ssZ
	NextSentDate string `json:"nextSentDate,omitempty"`
	// Note An optional message sent to the recipients, describing why their participation is required.
	Note string `json:"note,omitempty"`
	// ReminderId An identifier of the reminder resource created on the server. If provided in POST or PUT, it will
	//be ignored
	ReminderId string `json:"reminderId,omitempty"`
	// StartReminderCounterFrom ['AGREEMENT_AVAILABILITY' or 'REMINDER_CREATION']: Reminder can be sent based on when
	//the agreement becomes available or when the reminder is created
	StartReminderCounterFrom string `json:"startReminderCounterFrom,omitempty"`
}

type Response

type Response struct {
	*http.Response

	//// These fields provide the page values for paginating through a set of
	//// results. Any or all of these may be set to the zero value for
	//// responses that are not part of a paginated set, or for which there
	//// are no additional pages.
	////
	//// These fields support what is called "offset pagination" and should
	//// be used with the ListOptions struct.
	NextCursor int

	// Explicitly specify the Rate type so Rate's String() receiver doesn't
	// propagate to Response.
	Rate Rate
}

Response is a Adobe Sign API response. This wraps the standard http.Response returned from Adobe Sign and provides convenient access to things like pagination links.

type SenderInfo

type SenderInfo struct {
	// Company of the sender, if available.
	Company string `json:"company"`
	// Email of the sender of the agreement.
	Email string `json:"email`
	// Hidden True if the agreement is hidden for the user that is calling the API. Only returned if self is true.
	Hidden bool `json:"hidden"`
	// Name of the sender, if available.
	Name string `json:"name"`
	// ParticipantId The unique identifier of the sender of the agreement.
	ParticipantId string `json:"participantId"`
	// Self True if the sender is the same user that is calling the API.
	Self bool `json:"self"`
	// Status ['CANCELLED' or 'COMPLETED' or 'EXPIRED' or 'NOT_YET_VISIBLE' or 'WAITING_FOR_AUTHORING' or
	//'WAITING_FOR_MY_DELEGATION' or 'WAITING_FOR_MY_ACCEPTANCE' or 'WAITING_FOR_MY_ACKNOWLEDGEMENT' or
	//'WAITING_FOR_MY_APPROVAL' or 'WAITING_FOR_MY_FORM_FILLING' or 'WAITING_FOR_MY_SIGNATURE' or
	//'WAITING_FOR_NOTARIZATION' or 'WAITING_FOR_OTHERS']: The agreement status with respect to the participant set.
	//This cannot be changed as part of the PUT call.,
	Status string `json:"status"`
	// CreatedDate The date when the sender was added. This will be returned as part of GET call but is ignored if
	//passed as part of PUT call.,
	CreatedDate string `json:"createdDate"`
	// UserId The user ID of the sender. This will be returned as part of GET call but is ignored if passed as part of
	//PUT call.
	UserId string `json:"userId"`
}

type ShareParticipantInfo

type ShareParticipantInfo struct {
	// Company of the sharee participant, if available.
	Company string `json:"company"`
	// Email of the sharee participant of the agreement.
	Email string `json:"email"`
	// Hidden True if the agreement is hidden for the user that is calling the API. Only returned if self is true.
	Hidden bool `json:"hidden"`
	// Name of the sharee participant, if available.
	Name string `json:"name"`
	// The unique identifier of the sharee participant of the agreement.
	ParticipantId string `json:"participantId"`
	// Self True if the Share participant is the same user that is calling the API.,
	Self bool `json:"self"`
	// SharerParticipantId The unique identifier of the participant who shared the agreement.
	SharerParticipantId string `json:"sharerParticipantId"`
}

type TransientDocument

type TransientDocument struct {
	TransientDocumentId string `json:"transientDocumentId"`
}

type TransientDocumentService

type TransientDocumentService service

TransientDocumentService handles operations related to agreement documents.

ref: https://secure.na1.echosign.com/public/docs/restapi/v6#!/transientDocuments

func (*TransientDocumentService) UploadTransientDocument

func (s *TransientDocumentService) UploadTransientDocument(ctx context.Context, file []byte, filename string) (*TransientDocument, error)

type UpdateAgreementRequest

type UpdateAgreementRequest struct {
	State                     string                    `json:"state"`
	AgreementCancellationInfo AgreementCancellationInfo `json:"agreementCancellationInfo"`
}

type WebhookAgreementEvents

type WebhookAgreementEvents struct {
	IncludeDetailedInfo     bool `json:"includeDetailedInfo,omitempty"`
	IncludeDocumentsInfo    bool `json:"includeDocumentsInfo,omitempty"`
	IncludeParticipantsInfo bool `json:"includeParticipantsInfo,omitempty"`
	IncludeSignedDocuments  bool `json:"includeSignedDocuments,omitempty"`
}

type WebhookConditionalParams

type WebhookConditionalParams struct {
	WebhookAgreementEvents       WebhookAgreementEvents       `json:"webhookAgreementEvents,omitempty"`
	WebhookLibraryDocumentEvents WebhookLibraryDocumentEvents `json:"webhookLibraryDocumentEvents,omitempty"`
	WebhookMegaSignEvents        WebhookMegaSignEvents        `json:"webhookMegaSignEvents,omitempty"`
	WebhookWidgetEvents          WebhookWidgetEvents          `json:"webhookWidgetEvents,omitempty"`
}

type WebhookLibraryDocumentEvents

type WebhookLibraryDocumentEvents struct {
	IncludeDetailedInfo  bool `json:"includeDetailedInfo,omitempty"`
	IncludeDocumentsInfo bool `json:"includeDocumentsInfo,omitempty"`
}

type WebhookMegaSignEvents

type WebhookMegaSignEvents struct {
	IncludeDetailedInfo bool `json:"includeDetailedInfo,omitempty"`
}

type WebhookPayload

type WebhookPayload struct {
	WebhookId                          string         `json:"webhookId"`
	WebhookName                        string         `json:"webhookName"`
	WebhookNotificationId              string         `json:"webhookNotificationId"`
	WebhookUrlInfo                     WebhookUrlInfo `json:"webhookUrlInfo"`
	WebhookScope                       string         `json:"webhookScope"`
	WebhookNotificationApplicableUsers []struct {
		Id                string `json:"id"`
		Email             string `json:"email"`
		Role              string `json:"role"`
		PayloadApplicable string `json:"payloadApplicable"`
	} `json:"webhookNotificationApplicableUsers"`
	Event                   string `json:"event"`
	SubEvent                string `json:"subEvent"`
	EventDate               string `json:"eventDate"`
	EventResourceType       string `json:"eventResourceType"`
	EventResourceParentType string `json:"eventResourceParentType"`
	EventResourceParentId   string `json:"eventResourceParentId"`
	ParticipantRole         string `json:"participantRole"`
	ActionType              string `json:"actionType"`
	ParticipantUserId       string `json:"participantUserId"`
	ParticipantUserEmail    string `json:"participantUserEmail"`
	ActingUserId            string `json:"actingUserId"`
	ActingUserEmail         string `json:"actingUserEmail"`
	ActingUserIpAddress     string `json:"actingUserIpAddress"`
	InitiatingUserId        string `json:"initiatingUserId"`
	InitiatingUserEmail     string `json:"initiatingUserEmail"`
	Agreement               struct {
		Id            string `json:"id"`
		Name          string `json:"name"`
		SignatureType string `json:"signatureType"`
		Status        string `json:"status"`
		Ccs           []struct {
			Email        string   `json:"email"`
			Label        string   `json:"label"`
			VisiblePages []string `json:"visiblePages"`
		} `json:"ccs"`
		DeviceInfo struct {
			ApplicationDescription string `json:"applicationDescription"`
			DeviceDescription      string `json:"deviceDescription"`
			Location               struct {
				Latitude  string `json:"latitude"`
				Longitude string `json:"longitude"`
			} `json:"location"`
			DeviceTime string `json:"deviceTime"`
		} `json:"deviceInfo"`
		DocumentVisibilityEnabled string `json:"documentVisibilityEnabled"`
		CreatedDate               string `json:"createdDate"`
		ExpirationTime            string `json:"expirationTime"`
		ExternalId                struct {
			Id string `json:"id"`
		} `json:"externalId"`
		PostSignOption struct {
			RedirectDelay string `json:"redirectDelay"`
			RedirectUrl   string `json:"redirectUrl"`
		} `json:"postSignOption"`
		FirstReminderDelay string `json:"firstReminderDelay"`
		Locale             string `json:"locale"`
		Message            string `json:"message"`
		ReminderFrequency  string `json:"reminderFrequency"`
		SenderEmail        string `json:"senderEmail"`
		VaultingInfo       struct {
			Enabled string `json:"enabled"`
		} `json:"vaultingInfo"`
		WorkflowId          string `json:"workflowId"`
		ParticipantSetsInfo struct {
			ParticipantSets []struct {
				MemberInfos []struct {
					Id             string `json:"id"`
					Email          string `json:"email"`
					Company        string `json:"company"`
					Name           string `json:"name"`
					PrivateMessage string `json:"privateMessage"`
					Status         string `json:"status"`
				} `json:"memberInfos"`
				Order          string `json:"order"`
				Role           string `json:"role"`
				Status         string `json:"status"`
				Id             string `json:"id"`
				Name           string `json:"name"`
				PrivateMessage string `json:"privateMessage"`
			} `json:"participantSets"`
		} `json:"participantSetsInfo"`
		DocumentsInfo struct {
			Documents []struct {
				Id       string `json:"id"`
				Label    string `json:"label"`
				NumPages string `json:"numPages"`
				MimeType string `json:"mimeType"`
				Name     string `json:"name"`
			} `json:"documents"`
			SupportingDocuments []struct {
				DisplayLabel string `json:"displayLabel"`
				FieldName    string `json:"fieldName"`
				Id           string `json:"id"`
				MimeType     string `json:"mimeType"`
				NumPages     string `json:"numPages"`
			} `json:"supportingDocuments"`
		} `json:"documentsInfo"`
	} `json:"agreement"`
}

type WebhookService

type WebhookService service

WebhookService handles operations related to webhooks.

ref: https://helpx.adobe.com/sign/using/adobe-sign-webhooks-api.html ref: https://secure.na1.echosign.com/public/docs/restapi/v6#!/webhooks/

func (*WebhookService) CreateWebhook

CreateWebhook creates a new Adobe Sign Agreement ref: https://secure.na1.echosign.com/public/docs/restapi/v6#!/webhooks/createWebhook requires: `webhook_write` permissions https://secure.na1.echosign.com/public/static/oauthDoc.jsp#scope-webhook_write

type WebhookUrlInfo

type WebhookUrlInfo struct {
	Url string `json:"url,omitempty"`
}

type WebhookWidgetEvents

type WebhookWidgetEvents struct {
	IncludeDetailedInfo     bool `json:"includeDetailedInfo,omitempty"`
	IncludeDocumentsInfo    bool `json:"includeDocumentsInfo,omitempty"`
	IncludeParticipantsInfo bool `json:"includeParticipantsInfo,omitempty"`
}

Jump to

Keyboard shortcuts

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