@@ -7,12 +7,25 @@ import {
77 validatePathParam ,
88} from '../../../bridge'
99import {
10+ marshalContractApiCheckContractSignatureRequest ,
11+ marshalContractApiCreateContractSignatureRequest ,
1012 marshalProjectApiCreateProjectRequest ,
1113 marshalProjectApiUpdateProjectRequest ,
14+ unmarshalCheckContractSignatureResponse ,
15+ unmarshalContractSignature ,
16+ unmarshalListContractSignaturesResponse ,
1217 unmarshalListProjectsResponse ,
1318 unmarshalProject ,
1419} from './marshalling.gen'
1520import type {
21+ CheckContractSignatureResponse ,
22+ ContractApiCheckContractSignatureRequest ,
23+ ContractApiCreateContractSignatureRequest ,
24+ ContractApiDownloadContractSignatureRequest ,
25+ ContractApiListContractSignaturesRequest ,
26+ ContractApiValidateContractSignatureRequest ,
27+ ContractSignature ,
28+ ListContractSignaturesResponse ,
1629 ListProjectsResponse ,
1730 Project ,
1831 ProjectApiCreateProjectRequest ,
@@ -26,6 +39,141 @@ const jsonContentHeaders = {
2639 'Content-Type' : 'application/json; charset=utf-8' ,
2740}
2841
42+ /**
43+ * Contract API.
44+ *
45+ * The Contract API allows you to manage contracts.
46+ */
47+ export class ContractAPI extends ParentAPI {
48+ /**
49+ * Download a contract content.
50+ *
51+ * @param request - The request
52+ * {@link ContractApiDownloadContractSignatureRequest}
53+ * @returns A Promise of Blob
54+ */
55+ downloadContractSignature = (
56+ request : Readonly < ContractApiDownloadContractSignatureRequest > ,
57+ ) =>
58+ this . client . fetch < Blob > ( {
59+ method : 'GET' ,
60+ path : `/account/v3/contract-signatures/${ validatePathParam ( 'contractSignatureId' , request . contractSignatureId ) } /download` ,
61+ urlParams : urlParams ( [ 'dl' , 1 ] , [ 'locale' , request . locale ] ) ,
62+ responseType : 'blob' ,
63+ } )
64+
65+ /**
66+ * Create a signature for your Organization for the latest version of the
67+ * requested contract.
68+ *
69+ * @param request - The request
70+ * {@link ContractApiCreateContractSignatureRequest}
71+ * @returns A Promise of ContractSignature
72+ */
73+ createContractSignature = (
74+ request : Readonly < ContractApiCreateContractSignatureRequest > ,
75+ ) =>
76+ this . client . fetch < ContractSignature > (
77+ {
78+ body : JSON . stringify (
79+ marshalContractApiCreateContractSignatureRequest (
80+ request ,
81+ this . client . settings ,
82+ ) ,
83+ ) ,
84+ headers : jsonContentHeaders ,
85+ method : 'POST' ,
86+ path : `/account/v3/contract-signatures` ,
87+ } ,
88+ unmarshalContractSignature ,
89+ )
90+
91+ /**
92+ * Sign a contract for your Organization.
93+ *
94+ * @param request - The request
95+ * {@link ContractApiValidateContractSignatureRequest}
96+ * @returns A Promise of ContractSignature
97+ */
98+ validateContractSignature = (
99+ request : Readonly < ContractApiValidateContractSignatureRequest > ,
100+ ) =>
101+ this . client . fetch < ContractSignature > (
102+ {
103+ body : '{}' ,
104+ headers : jsonContentHeaders ,
105+ method : 'POST' ,
106+ path : `/account/v3/contract-signatures/${ validatePathParam ( 'contractSignatureId' , request . contractSignatureId ) } /validate` ,
107+ } ,
108+ unmarshalContractSignature ,
109+ )
110+
111+ /**
112+ * Check if a contract is signed for your Organization.
113+ *
114+ * @param request - The request
115+ * {@link ContractApiCheckContractSignatureRequest}
116+ * @returns A Promise of CheckContractSignatureResponse
117+ */
118+ checkContractSignature = (
119+ request : Readonly < ContractApiCheckContractSignatureRequest > ,
120+ ) =>
121+ this . client . fetch < CheckContractSignatureResponse > (
122+ {
123+ body : JSON . stringify (
124+ marshalContractApiCheckContractSignatureRequest (
125+ request ,
126+ this . client . settings ,
127+ ) ,
128+ ) ,
129+ headers : jsonContentHeaders ,
130+ method : 'POST' ,
131+ path : `/account/v3/contract-signatures/check` ,
132+ } ,
133+ unmarshalCheckContractSignatureResponse ,
134+ )
135+
136+ protected pageOfListContractSignatures = (
137+ request : Readonly < ContractApiListContractSignaturesRequest > = { } ,
138+ ) =>
139+ this . client . fetch < ListContractSignaturesResponse > (
140+ {
141+ method : 'GET' ,
142+ path : `/account/v3/contract-signatures` ,
143+ urlParams : urlParams (
144+ [ 'order_by' , request . orderBy ] ,
145+ [
146+ 'organization_id' ,
147+ request . organizationId ??
148+ this . client . settings . defaultOrganizationId ,
149+ ] ,
150+ [ 'page' , request . page ] ,
151+ [
152+ 'page_size' ,
153+ request . pageSize ?? this . client . settings . defaultPageSize ,
154+ ] ,
155+ ) ,
156+ } ,
157+ unmarshalListContractSignaturesResponse ,
158+ )
159+
160+ /**
161+ * List contract signatures for an Organization.
162+ *
163+ * @param request - The request
164+ * {@link ContractApiListContractSignaturesRequest}
165+ * @returns A Promise of ListContractSignaturesResponse
166+ */
167+ listContractSignatures = (
168+ request : Readonly < ContractApiListContractSignaturesRequest > = { } ,
169+ ) =>
170+ enrichForPagination (
171+ 'contractSignatures' ,
172+ this . pageOfListContractSignatures ,
173+ request ,
174+ )
175+ }
176+
29177/**
30178 * Account API.
31179 *
0 commit comments