UNPKG

22.9 kBTypeScriptView Raw
1/// <reference types="node" />
2import { Cluster } from './cluster';
3import { NodeCallback } from './utilities';
4/**
5 * Represents the type of an analytics link.
6 *
7 * @category Analytics
8 */
9export declare enum AnalyticsLinkType {
10 /**
11 * Indicates that the link is for S3.
12 */
13 S3External = "s3",
14 /**
15 * Indicates that the link is for Azure.
16 */
17 AzureBlobExternal = "azureblob",
18 /**
19 * Indicates that the link is for a remote Couchbase cluster.
20 */
21 CouchbaseRemote = "couchbase"
22}
23/**
24 * Represents what level of encryption to use for analytics remote links.
25 *
26 * @category Analytics
27 */
28export declare enum AnalyticsEncryptionLevel {
29 /**
30 * Indicates that no encryption should be used.
31 */
32 None = "none",
33 /**
34 * Indicates that half encryption should be used.
35 */
36 Half = "half",
37 /**
38 * Indicates that full encryption should be used.
39 */
40 Full = "full"
41}
42/**
43 * Contains a specific dataset configuration for the analytics service.
44 *
45 * @category Management
46 */
47export declare class AnalyticsDataset {
48 /**
49 * The name of the dataset.
50 */
51 name: string;
52 /**
53 * The name of the dataverse that this dataset exists within.
54 */
55 dataverseName: string;
56 /**
57 * The name of the link that is associated with this dataset.
58 */
59 linkName: string;
60 /**
61 * The name of the bucket that this dataset includes.
62 */
63 bucketName: string;
64 /**
65 * @internal
66 */
67 constructor(data: AnalyticsDataset);
68}
69/**
70 * Contains a specific index configuration for the analytics service.
71 *
72 * @category Management
73 */
74export declare class AnalyticsIndex {
75 /**
76 * The name of the index.
77 */
78 name: string;
79 /**
80 * The name of the dataset this index belongs to.
81 */
82 datasetName: string;
83 /**
84 * The name of the dataverse this index belongs to.
85 */
86 dataverseName: string;
87 /**
88 * Whether or not this is a primary index or not.
89 */
90 isPrimary: boolean;
91 /**
92 * @internal
93 */
94 constructor(data: AnalyticsIndex);
95}
96/**
97 * Specifies encryption options for an analytics remote link.
98 */
99export interface ICouchbaseAnalyticsEncryptionSettings {
100 /**
101 * Specifies what level of encryption should be used.
102 */
103 encryptionLevel: AnalyticsEncryptionLevel;
104 /**
105 * Provides a certificate to use for connecting when encryption level is set
106 * to full. Required when encryptionLevel is set to Full.
107 */
108 certificate?: Buffer;
109 /**
110 * Provides a client certificate to use for connecting when encryption level
111 * is set to full. Cannot be set if a username/password are used.
112 */
113 clientCertificate?: Buffer;
114 /**
115 * Provides a client key to use for connecting when encryption level is set
116 * to full. Cannot be set if a username/password are used.
117 */
118 clientKey?: Buffer;
119}
120/**
121 * Includes information about an analytics remote links encryption.
122 */
123export declare class CouchbaseAnalyticsEncryptionSettings implements ICouchbaseAnalyticsEncryptionSettings {
124 /**
125 * Specifies what level of encryption should be used.
126 */
127 encryptionLevel: AnalyticsEncryptionLevel;
128 /**
129 * Provides a certificate to use for connecting when encryption level is set
130 * to full. Required when encryptionLevel is set to Full.
131 */
132 certificate?: Buffer;
133 /**
134 * Provides a client certificate to use for connecting when encryption level
135 * is set to full. Cannot be set if a username/password are used.
136 */
137 clientCertificate?: Buffer;
138 /**
139 * Provides a client key to use for connecting when encryption level is set
140 * to full. Cannot be set if a username/password are used.
141 */
142 clientKey?: Buffer;
143 /**
144 * @internal
145 */
146 constructor(data: CouchbaseAnalyticsEncryptionSettings);
147}
148/**
149 * Provides a base class for specifying options for an analytics link.
150 *
151 * @category Management
152 */
153export interface IAnalyticsLink {
154 /**
155 * Specifies what type of analytics link this represents.
156 */
157 linkType: AnalyticsLinkType;
158}
159/**
160 * This is a base class for specific link configurations for the analytics service.
161 */
162export declare abstract class AnalyticsLink implements IAnalyticsLink {
163 /**
164 * @internal
165 */
166 constructor();
167 /**
168 * Specifies what type of analytics link this represents.
169 */
170 linkType: AnalyticsLinkType;
171 /**
172 * @internal
173 */
174 static _toHttpData(data: IAnalyticsLink): any;
175 /**
176 * @internal
177 */
178 static _fromHttpData(data: any): AnalyticsLink;
179}
180/**
181 * Provides options for configuring an analytics remote couchbase cluster link.
182 */
183export interface ICouchbaseRemoteAnalyticsLink extends IAnalyticsLink {
184 /**
185 * Specifies what type of analytics link this represents.
186 */
187 linkType: AnalyticsLinkType.CouchbaseRemote;
188 /**
189 * The dataverse that this link belongs to.
190 */
191 dataverse: string;
192 /**
193 * The name of this link.
194 */
195 name: string;
196 /**
197 * The hostname of the target Couchbase cluster.
198 */
199 hostname: string;
200 /**
201 * The encryption settings to be used for the link.
202 */
203 encryption?: ICouchbaseAnalyticsEncryptionSettings;
204 /**
205 * The username to use for authentication with the remote cluster. Optional
206 * if client-certificate authentication
207 * (@see ICouchbaseAnalyticsEncryptionSettings.clientCertificate) is being used.
208 */
209 username?: string;
210 /**
211 * The password to use for authentication with the remote cluster. Optional
212 * if client-certificate authentication
213 * (@see ICouchbaseAnalyticsEncryptionSettings.clientCertificate) is being used.
214 */
215 password?: string;
216}
217/**
218 * Provides information about a analytics remote Couchbase link.
219 */
220export declare class CouchbaseRemoteAnalyticsLink extends AnalyticsLink implements ICouchbaseRemoteAnalyticsLink {
221 /**
222 * Specifies what type of analytics link this represents.
223 */
224 linkType: AnalyticsLinkType.CouchbaseRemote;
225 /**
226 * The dataverse that this link belongs to.
227 */
228 dataverse: string;
229 /**
230 * The name of this link.
231 */
232 name: string;
233 /**
234 * The hostname of the target Couchbase cluster.
235 */
236 hostname: string;
237 /**
238 * The encryption settings to be used for the link.
239 */
240 encryption?: CouchbaseAnalyticsEncryptionSettings;
241 /**
242 * The username to use for authentication with the remote cluster. Optional
243 * if client-certificate authentication
244 * (@see ICouchbaseAnalyticsEncryptionSettings.clientCertificate) is being used.
245 */
246 username?: string;
247 /**
248 * The password to use for authentication with the remote cluster. Optional
249 * if client-certificate authentication
250 * (@see ICouchbaseAnalyticsEncryptionSettings.clientCertificate) is being used.
251 */
252 password?: string;
253 /**
254 * @internal
255 */
256 constructor(data: CouchbaseRemoteAnalyticsLink);
257 /**
258 * @internal
259 */
260 static _toHttpData(data: ICouchbaseRemoteAnalyticsLink): any;
261 /**
262 * @internal
263 */
264 static _fromHttpData(data: any): CouchbaseRemoteAnalyticsLink;
265}
266/**
267 * Provides options for configuring an analytics remote S3 link.
268 */
269export interface IS3ExternalAnalyticsLink extends IAnalyticsLink {
270 /**
271 * Specifies what type of analytics link this represents.
272 */
273 linkType: AnalyticsLinkType.S3External;
274 /**
275 * The dataverse that this link belongs to.
276 */
277 dataverse: string;
278 /**
279 * The name of this link.
280 */
281 name: string;
282 /**
283 * The AWS S3 access key.
284 */
285 accessKeyId: string;
286 /**
287 * The AWS S3 secret key.
288 */
289 secretAccessKey?: string;
290 /**
291 * The AWS S3 token if temporary credentials are provided. Only available
292 * in Couchbase Server 7.0 and above.
293 */
294 sessionToken?: string;
295 /**
296 * The AWS S3 region.
297 */
298 region: string;
299 /**
300 * The AWS S3 service endpoint.
301 */
302 serviceEndpoint?: string;
303}
304/**
305 * Provides information about a analytics remote S3 link.
306 */
307export declare class S3ExternalAnalyticsLink extends AnalyticsLink implements IS3ExternalAnalyticsLink {
308 /**
309 * Specifies what type of analytics link this represents.
310 */
311 linkType: AnalyticsLinkType.S3External;
312 /**
313 * The dataverse that this link belongs to.
314 */
315 dataverse: string;
316 /**
317 * The name of this link.
318 */
319 name: string;
320 /**
321 * The AWS S3 access key.
322 */
323 accessKeyId: string;
324 /**
325 * The AWS S3 secret key.
326 */
327 secretAccessKey?: string;
328 /**
329 * The AWS S3 token if temporary credentials are provided. Only available
330 * in Couchbase Server 7.0 and above.
331 */
332 sessionToken?: string;
333 /**
334 * The AWS S3 region.
335 */
336 region: string;
337 /**
338 * The AWS S3 service endpoint.
339 */
340 serviceEndpoint?: string;
341 /**
342 * @internal
343 */
344 constructor(data: S3ExternalAnalyticsLink);
345 /**
346 * @internal
347 */
348 static _toHttpData(data: IS3ExternalAnalyticsLink): any;
349 /**
350 * @internal
351 */
352 static _fromHttpData(data: any): S3ExternalAnalyticsLink;
353}
354/**
355 * Provides options for configuring an analytics remote Azure link.
356 */
357export interface IAzureExternalAnalyticsLink extends IAnalyticsLink {
358 /**
359 * Specifies what type of analytics link this represents.
360 */
361 linkType: AnalyticsLinkType.AzureBlobExternal;
362 /**
363 * The dataverse that this link belongs to.
364 */
365 dataverse: string;
366 /**
367 * The name of this link.
368 */
369 name: string;
370 /**
371 * The connection string to use to connect to the external Azure store.
372 */
373 connectionString?: string;
374 /**
375 * The Azure blob storage account name.
376 */
377 accountName?: string;
378 /**
379 * The Azure blob storage account key.
380 */
381 accountKey?: string;
382 /**
383 * The shared access signature to use for authentication.
384 */
385 sharedAccessSignature?: string;
386 /**
387 * The Azure blob storage endpoint.
388 */
389 blobEndpoint?: string;
390 /**
391 * The Azure blob endpoint suffix.
392 */
393 endpointSuffix?: string;
394}
395/**
396 * Provides information about a analytics remote S3 link.
397 */
398export declare class AzureExternalAnalyticsLink extends AnalyticsLink implements IAzureExternalAnalyticsLink {
399 /**
400 * Specifies what type of analytics link this represents.
401 */
402 linkType: AnalyticsLinkType.AzureBlobExternal;
403 /**
404 * The dataverse that this link belongs to.
405 */
406 dataverse: string;
407 /**
408 * The name of this link.
409 */
410 name: string;
411 /**
412 * The connection string to use to connect to the external Azure store.
413 */
414 connectionString?: string;
415 /**
416 * The Azure blob storage account name.
417 */
418 accountName?: string;
419 /**
420 * The Azure blob storage account key.
421 */
422 accountKey?: string;
423 /**
424 * The shared access signature to use for authentication.
425 */
426 sharedAccessSignature?: string;
427 /**
428 * The Azure blob storage endpoint.
429 */
430 blobEndpoint?: string;
431 /**
432 * The Azure blob endpoint suffix.
433 */
434 endpointSuffix?: string;
435 /**
436 * @internal
437 */
438 constructor(data: AzureExternalAnalyticsLink);
439 /**
440 * @internal
441 */
442 static _toHttpData(data: IAzureExternalAnalyticsLink): any;
443 /**
444 * @internal
445 */
446 static _fromHttpData(data: any): AzureExternalAnalyticsLink;
447}
448/**
449 * @category Management
450 */
451export interface CreateAnalyticsDataverseOptions {
452 /**
453 * Whether or not the call should ignore the dataverse already existing when
454 * determining whether the call was successful.
455 */
456 ignoreIfExists?: boolean;
457 /**
458 * The timeout for this operation, represented in milliseconds.
459 */
460 timeout?: number;
461}
462/**
463 * @category Management
464 */
465export interface DropAnalyticsDataverseOptions {
466 /**
467 * Whether or not the call should ignore the dataverse not existing when
468 * determining whether the call was successful.
469 */
470 ignoreIfNotExists?: boolean;
471 /**
472 * The timeout for this operation, represented in milliseconds.
473 */
474 timeout?: number;
475}
476/**
477 * @category Management
478 */
479export interface CreateAnalyticsDatasetOptions {
480 /**
481 * Whether or not the call should ignore the dataset already existing when
482 * determining whether the call was successful.
483 */
484 ignoreIfExists?: boolean;
485 /**
486 * The name of the dataverse the dataset should belong to.
487 */
488 dataverseName?: string;
489 /**
490 * A conditional expression to limit the indexes scope.
491 */
492 condition?: string;
493 /**
494 * The timeout for this operation, represented in milliseconds.
495 */
496 timeout?: number;
497}
498/**
499 * @category Management
500 */
501export interface DropAnalyticsDatasetOptions {
502 /**
503 * Whether or not the call should ignore the dataset already existing when
504 * determining whether the call was successful.
505 */
506 ignoreIfNotExists?: boolean;
507 /**
508 * The name of the dataverse the dataset belongs to.
509 */
510 dataverseName?: string;
511 /**
512 * The timeout for this operation, represented in milliseconds.
513 */
514 timeout?: number;
515}
516/**
517 * @category Management
518 */
519export interface GetAllAnalyticsDatasetsOptions {
520 /**
521 * The timeout for this operation, represented in milliseconds.
522 */
523 timeout?: number;
524}
525/**
526 * @category Management
527 */
528export interface CreateAnalyticsIndexOptions {
529 /**
530 * Whether or not the call should ignore the dataverse not existing when
531 * determining whether the call was successful.
532 */
533 ignoreIfExists?: boolean;
534 /**
535 * The name of the dataverse the index should belong to.
536 */
537 dataverseName?: string;
538 /**
539 * The timeout for this operation, represented in milliseconds.
540 */
541 timeout?: number;
542}
543/**
544 * @category Management
545 */
546export interface DropAnalyticsIndexOptions {
547 /**
548 * Whether or not the call should ignore the index already existing when
549 * determining whether the call was successful.
550 */
551 ignoreIfNotExists?: boolean;
552 /**
553 * The name of the dataverse the index belongs to.
554 */
555 dataverseName?: string;
556 /**
557 * The timeout for this operation, represented in milliseconds.
558 */
559 timeout?: number;
560}
561/**
562 * @category Management
563 */
564export interface GetAllAnalyticsIndexesOptions {
565 /**
566 * The timeout for this operation, represented in milliseconds.
567 */
568 timeout?: number;
569}
570/**
571 * @category Management
572 */
573export interface ConnectAnalyticsLinkOptions {
574 /**
575 * The timeout for this operation, represented in milliseconds.
576 */
577 timeout?: number;
578}
579/**
580 * @category Management
581 */
582export interface DisconnectAnalyticsLinkOptions {
583 /**
584 * The timeout for this operation, represented in milliseconds.
585 */
586 timeout?: number;
587}
588/**
589 * @category Management
590 */
591export interface GetPendingAnalyticsMutationsOptions {
592 /**
593 * The timeout for this operation, represented in milliseconds.
594 */
595 timeout?: number;
596}
597/**
598 * @category Management
599 */
600export interface CreateAnalyticsLinkOptions {
601 /**
602 * The timeout for this operation, represented in milliseconds.
603 */
604 timeout?: number;
605}
606/**
607 * @category Management
608 */
609export interface ReplaceAnalyticsLinkOptions {
610 /**
611 * The timeout for this operation, represented in milliseconds.
612 */
613 timeout?: number;
614}
615/**
616 * @category Management
617 */
618export interface DropAnalyticsLinkOptions {
619 /**
620 * The timeout for this operation, represented in milliseconds.
621 */
622 timeout?: number;
623}
624/**
625 * @category Management
626 */
627export interface GetAllAnalyticsLinksOptions {
628 /**
629 * The name of a dataverse to filter the links list to.
630 */
631 dataverse?: string;
632 /**
633 * The name of a specific link to fetch.
634 */
635 name?: string;
636 /**
637 * The type of link to filter the links list to.
638 */
639 linkType?: AnalyticsLinkType;
640 /**
641 * The timeout for this operation, represented in milliseconds.
642 */
643 timeout?: number;
644}
645/**
646 * AnalyticsIndexManager provides an interface for performing management
647 * operations against the analytics service of the cluster.
648 *
649 * @category Management
650 */
651export declare class AnalyticsIndexManager {
652 private _cluster;
653 /**
654 * @internal
655 */
656 constructor(cluster: Cluster);
657 private get _http();
658 /**
659 * Creates a new dataverse.
660 *
661 * @param dataverseName The name of the dataverse to create.
662 * @param options Optional parameters for this operation.
663 * @param callback A node-style callback to be invoked after execution.
664 */
665 createDataverse(dataverseName: string, options?: CreateAnalyticsDataverseOptions, callback?: NodeCallback<void>): Promise<void>;
666 /**
667 * Drops a previously created dataverse.
668 *
669 * @param dataverseName The name of the dataverse to drop.
670 * @param options Optional parameters for this operation.
671 * @param callback A node-style callback to be invoked after execution.
672 */
673 dropDataverse(dataverseName: string, options?: DropAnalyticsDataverseOptions, callback?: NodeCallback<void>): Promise<void>;
674 /**
675 * Creates a new dataset.
676 *
677 * @param bucketName The name of the bucket to create this dataset of.
678 * @param datasetName The name of the new dataset.
679 * @param options Optional parameters for this operation.
680 * @param callback A node-style callback to be invoked after execution.
681 */
682 createDataset(bucketName: string, datasetName: string, options?: CreateAnalyticsDatasetOptions, callback?: NodeCallback<void>): Promise<void>;
683 /**
684 * Drops a previously created dataset.
685 *
686 * @param datasetName The name of the dataset to drop.
687 * @param options Optional parameters for this operation.
688 * @param callback A node-style callback to be invoked after execution.
689 */
690 dropDataset(datasetName: string, options?: DropAnalyticsDatasetOptions, callback?: NodeCallback<void>): Promise<void>;
691 /**
692 * Returns a list of all existing datasets.
693 *
694 * @param options Optional parameters for this operation.
695 * @param callback A node-style callback to be invoked after execution.
696 */
697 getAllDatasets(options?: GetAllAnalyticsDatasetsOptions, callback?: NodeCallback<AnalyticsDataset[]>): Promise<AnalyticsDataset[]>;
698 /**
699 * Creates a new index.
700 *
701 * @param datasetName The name of the dataset to create this index on.
702 * @param indexName The name of index to create.
703 * @param fields A map of fields that the index should contain.
704 * @param options Optional parameters for this operation.
705 * @param callback A node-style callback to be invoked after execution.
706 */
707 createIndex(datasetName: string, indexName: string, fields: {
708 [key: string]: string;
709 }, options?: CreateAnalyticsIndexOptions, callback?: NodeCallback<void>): Promise<void>;
710 /**
711 * Drops a previously created index.
712 *
713 * @param datasetName The name of the dataset containing the index to drop.
714 * @param indexName The name of the index to drop.
715 * @param options Optional parameters for this operation.
716 * @param callback A node-style callback to be invoked after execution.
717 */
718 dropIndex(datasetName: string, indexName: string, options?: DropAnalyticsIndexOptions, callback?: NodeCallback<void>): Promise<void>;
719 /**
720 * Returns a list of all existing indexes.
721 *
722 * @param options Optional parameters for this operation.
723 * @param callback A node-style callback to be invoked after execution.
724 */
725 getAllIndexes(options?: GetAllAnalyticsIndexesOptions, callback?: NodeCallback<AnalyticsIndex[]>): Promise<AnalyticsIndex[]>;
726 /**
727 * Connects a not yet connected link.
728 *
729 * @param linkName The name of the link to connect.
730 * @param options Optional parameters for this operation.
731 * @param callback A node-style callback to be invoked after execution.
732 */
733 connectLink(linkName: string, options?: ConnectAnalyticsLinkOptions, callback?: NodeCallback<void>): Promise<void>;
734 /**
735 * Disconnects a previously connected link.
736 *
737 * @param linkName The name of the link to disconnect.
738 * @param options Optional parameters for this operation.
739 * @param callback A node-style callback to be invoked after execution.
740 */
741 disconnectLink(linkName: string, options?: DisconnectAnalyticsLinkOptions, callback?: NodeCallback<void>): Promise<void>;
742 /**
743 * Returns a list of all pending mutations.
744 *
745 * @param options Optional parameters for this operation.
746 * @param callback A node-style callback to be invoked after execution.
747 */
748 getPendingMutations(options?: GetPendingAnalyticsMutationsOptions, callback?: NodeCallback<{
749 [k: string]: {
750 [k: string]: number;
751 };
752 }>): Promise<{
753 [k: string]: {
754 [k: string]: number;
755 };
756 }>;
757 /**
758 * Creates a new analytics remote link.
759 *
760 * @param link The settings for the link to create.
761 * @param options Optional parameters for this operation.
762 * @param callback A node-style callback to be invoked after execution.
763 */
764 createLink(link: IAnalyticsLink, options?: CreateAnalyticsLinkOptions, callback?: NodeCallback<void>): Promise<void>;
765 /**
766 * Replaces an existing analytics remote link.
767 *
768 * @param link The settings for the updated link.
769 * @param options Optional parameters for this operation.
770 * @param callback A node-style callback to be invoked after execution.
771 */
772 replaceLink(link: IAnalyticsLink, options?: ReplaceAnalyticsLinkOptions, callback?: NodeCallback<void>): Promise<void>;
773 /**
774 * Drops an existing analytics remote link.
775 *
776 * @param linkName The name of the link to drop.
777 * @param dataverseName The dataverse containing the link to drop.
778 * @param options Optional parameters for this operation.
779 * @param callback A node-style callback to be invoked after execution.
780 */
781 dropLink(linkName: string, dataverseName: string, options?: DropAnalyticsLinkOptions, callback?: NodeCallback<void>): Promise<void>;
782 /**
783 * Returns a list of existing analytics remote links.
784 *
785 * @param options Optional parameters for this operation.
786 * @param callback A node-style callback to be invoked after execution.
787 */
788 getAllLinks(options?: GetAllAnalyticsLinksOptions, callback?: NodeCallback<AnalyticsLink[]>): Promise<AnalyticsLink[]>;
789}