UNPKG

@azure/app-configuration

Version:

An isomorphic client library for the Azure App Configuration service.

880 lines (813 loc) • 32 kB
import type { CommonClientOptions } from '@azure/core-client'; import type { CompatResponse } from '@azure/core-http-compat'; import type { OperationOptions } from '@azure/core-client'; import type { OperationState } from '@azure/core-lro'; import type { PagedAsyncIterableIterator } from '@azure/core-paging'; import type { SimplePollerLike } from '@azure/core-lro'; import type { TokenCredential } from '@azure/core-auth'; /** * Options used when adding a ConfigurationSetting. */ export declare interface AddConfigurationSettingOptions extends OperationOptions { } /** * Parameters for adding a new configuration setting */ export declare type AddConfigurationSettingParam<T extends string | FeatureFlagValue | SecretReferenceValue = string> = ConfigurationSettingParam<T>; /** * Response from adding a ConfigurationSetting. */ export declare interface AddConfigurationSettingResponse extends ConfigurationSetting, SyncTokenHeaderField, HttpResponseField<SyncTokenHeaderField> { } /** * Client for the Azure App Configuration service. */ export declare class AppConfigurationClient { private client; private _syncTokens; /** * Initializes a new instance of the AppConfigurationClient class. * @param connectionString - Connection string needed for a client to connect to Azure. * @param options - Options for the AppConfigurationClient. */ constructor(connectionString: string, options?: AppConfigurationClientOptions); /** * Initializes a new instance of the AppConfigurationClient class using * a TokenCredential. * @param endpoint - The endpoint of the App Configuration service (ex: https://sample.azconfig.io). * @param tokenCredential - An object that implements the `TokenCredential` interface used to authenticate requests to the service. Use the \@azure/identity package to create a credential that suits your needs. * @param options - Options for the AppConfigurationClient. */ constructor(endpoint: string, tokenCredential: TokenCredential, options?: AppConfigurationClientOptions); /** * Add a setting into the Azure App Configuration service, failing if it * already exists. * * Example usage: * ```ts * const result = await client.addConfigurationSetting({ key: "MyKey", label: "MyLabel", value: "MyValue" }); * ``` * @param configurationSetting - A configuration setting. * @param options - Optional parameters for the request. */ addConfigurationSetting(configurationSetting: AddConfigurationSettingParam | AddConfigurationSettingParam<FeatureFlagValue> | AddConfigurationSettingParam<SecretReferenceValue>, options?: AddConfigurationSettingOptions): Promise<AddConfigurationSettingResponse>; /** * Delete a setting from the Azure App Configuration service * * Example usage: * ```ts * const deletedSetting = await client.deleteConfigurationSetting({ key: "MyKey", label: "MyLabel" }); * ``` * @param id - The id of the configuration setting to delete. * @param options - Optional parameters for the request (ex: etag, label) */ deleteConfigurationSetting(id: ConfigurationSettingId, options?: DeleteConfigurationSettingOptions): Promise<DeleteConfigurationSettingResponse>; /** * Gets a setting from the Azure App Configuration service. * * Example code: * ```ts * const setting = await client.getConfigurationSetting({ key: "MyKey", label: "MyLabel" }); * ``` * @param id - The id of the configuration setting to get. * @param options - Optional parameters for the request. */ getConfigurationSetting(id: ConfigurationSettingId, options?: GetConfigurationSettingOptions): Promise<GetConfigurationSettingResponse>; /** * Lists settings from the Azure App Configuration service, optionally * filtered by key names, labels and accept datetime. * * Example code: * ```ts * const allSettingsWithLabel = client.listConfigurationSettings({ labelFilter: "MyLabel" }); * ``` * @param options - Optional parameters for the request. */ listConfigurationSettings(options?: ListConfigurationSettingsOptions): PagedAsyncIterableIterator<ConfigurationSetting, ListConfigurationSettingPage, PageSettings>; /** * Lists settings from the Azure App Configuration service for snapshots based on name, optionally * filtered by key names, labels and accept datetime. * * Example code: * ```ts * const allSettingsWithLabel = client.listConfigurationSettingsForSnashots({ snapshotName: "MySnapshot" }); * ``` * @param options - Optional parameters for the request. */ listConfigurationSettingsForSnapshot(snapshotName: string, options?: ListConfigurationSettingsForSnapshotOptions): PagedAsyncIterableIterator<ConfigurationSetting, ListConfigurationSettingPage, PageSettings>; /** * Get a list of labels from the Azure App Configuration service * * Example code: * ```ts * const allSettingsWithLabel = client.listLabels({ nameFilter: "prod*" }); * ``` * @param options - Optional parameters for the request. */ listLabels(options?: ListLabelsOptions): PagedAsyncIterableIterator<SettingLabel, ListLabelsPage, PageSettings>; private sendLabelsRequest; private sendConfigurationSettingsRequest; /** * Lists revisions of a set of keys, optionally filtered by key names, * labels and accept datetime. * * Example code: * ```ts * const revisionsIterator = client.listRevisions({ keys: ["MyKey"] }); * ``` * @param options - Optional parameters for the request. */ listRevisions(options?: ListRevisionsOptions): PagedAsyncIterableIterator<ConfigurationSetting, ListRevisionsPage, PageSettings>; private sendRevisionsRequest; /** * Sets the value of a key in the Azure App Configuration service, allowing for an optional etag. * @param key - The name of the key. * @param configurationSetting - A configuration value. * @param options - Optional parameters for the request. * * Example code: * ```ts * await client.setConfigurationSetting({ key: "MyKey", value: "MyValue" }); * ``` */ setConfigurationSetting(configurationSetting: SetConfigurationSettingParam | SetConfigurationSettingParam<FeatureFlagValue> | SetConfigurationSettingParam<SecretReferenceValue>, options?: SetConfigurationSettingOptions): Promise<SetConfigurationSettingResponse>; /** * Sets or clears a key's read-only status. * @param id - The id of the configuration setting to modify. */ setReadOnly(id: ConfigurationSettingId, readOnly: boolean, options?: SetReadOnlyOptions): Promise<SetReadOnlyResponse>; /** * Adds an external synchronization token to ensure service requests receive up-to-date values. * * @param syncToken - The synchronization token value. */ updateSyncToken(syncToken: string): void; /** * Begins creating a snapshot for Azure App Configuration service, fails if it * already exists. */ beginCreateSnapshot(snapshot: SnapshotInfo, options?: CreateSnapshotOptions): Promise<SimplePollerLike<OperationState<CreateSnapshotResponse>, CreateSnapshotResponse>>; /** * Begins creating a snapshot for Azure App Configuration service, waits until it is done, * fails if it already exists. */ beginCreateSnapshotAndWait(snapshot: SnapshotInfo, options?: CreateSnapshotOptions): Promise<CreateSnapshotResponse>; /** * Get a snapshot from Azure App Configuration service * * Example usage: * ```ts * const result = await client.getSnapshot("MySnapshot"); * ``` * @param name - The name of the snapshot. * @param options - Optional parameters for the request. */ getSnapshot(name: string, options?: GetSnapshotOptions): Promise<GetSnapshotResponse>; /** * Recover an archived snapshot back to ready status * * Example usage: * ```ts * const result = await client.recoverSnapshot("MySnapshot"); * ``` * @param name - The name of the snapshot. * @param options - Optional parameters for the request. */ recoverSnapshot(name: string, options?: UpdateSnapshotOptions): Promise<UpdateSnapshotResponse>; /** * Archive a ready snapshot * * Example usage: * ```ts * const result = await client.archiveSnapshot({name: "MySnapshot"}); * ``` * @param name - The name of the snapshot. * @param options - Optional parameters for the request. */ archiveSnapshot(name: string, options?: UpdateSnapshotOptions): Promise<UpdateSnapshotResponse>; /** * List all snapshots from Azure App Configuration service * * Example usage: * ```ts * const result = await client.listSnapshots(); * ``` * @param options - Optional parameters for the request. */ listSnapshots(options?: ListSnapshotsOptions): PagedAsyncIterableIterator<ConfigurationSnapshot, ListSnapshotsPage, PageSettings>; private sendSnapShotsRequest; } /** * Provides configuration options for AppConfigurationClient. */ export declare interface AppConfigurationClientOptions extends CommonClientOptions { /** * The API version to use when interacting with the service. The default value is `2023-11-01`. * Note that overriding this default value may result in unsupported behavior. */ apiVersion?: string; } /** * Configuration setting with extra metadata from the server, indicating * its etag, whether it is currently readOnly and when it was last modified. */ export declare type ConfigurationSetting<T extends string | FeatureFlagValue | SecretReferenceValue = string> = ConfigurationSettingParam<T> & { /** * Whether or not the setting is read-only */ isReadOnly: boolean; /** * The date when this setting was last modified */ lastModified?: Date; }; /** * Fields that uniquely identify a configuration setting */ export declare interface ConfigurationSettingId { /** * The etag for this setting */ etag?: string; /** * The key for this setting. * Feature flags must be prefixed with `.appconfig.featureflag/<feature-flag-name>`. */ key: string; /** * The label for this setting. Leaving this undefined means this * setting does not have a label. */ label?: string; } /** * Necessary fields for updating or creating a new configuration setting */ export declare type ConfigurationSettingParam<T extends string | FeatureFlagValue | SecretReferenceValue = string> = ConfigurationSettingId & { /** * The content type of the setting's value */ contentType?: string; /** * Tags for this key */ tags?: { [propertyName: string]: string; }; } & (T extends string ? { /** * The setting's value */ value?: string; } : { /** * The setting's value */ value: T; }); /** * Standard base response for getting, deleting or updating a configuration setting */ export declare type ConfigurationSettingResponse<HeadersT> = ConfigurationSetting & HttpResponseField<HeadersT> & Pick<HeadersT, Exclude<keyof HeadersT, "eTag">>; /** Enables filtering of key-values. Syntax reference: https://aka.ms/azconfig/docs/restapisnapshots */ export declare interface ConfigurationSettingsFilter { /** Filters key-values by their key field. */ keyFilter: string; /** Filters key-values by their label field. */ labelFilter?: string; /** Filters key-values by their tags field. */ tagsFilter?: string[]; } /** Snapshot details include name, filters, expiresOn, sizeInBytes, status, itemCount, and more */ export declare interface ConfigurationSnapshot { /** * The name of the snapshot. * NOTE: This property will not be serialized. It can only be populated by the server. */ readonly name: string; /** * The current status of the snapshot. * NOTE: This property will not be serialized. It can only be populated by the server. */ readonly status?: ConfigurationSnapshotStatus; /** A list of filters used to filter the key-values included in the snapshot. */ filters: ConfigurationSettingsFilter[]; /** The composition type describes how the key-values within the snapshot are composed. The 'key' composition type ensures there are no two key-values containing the same key. The 'key_label' composition type ensures there are no two key-values containing the same key and label. */ compositionType?: SnapshotComposition; /** * The time that the snapshot was created. * NOTE: This property will not be serialized. It can only be populated by the server. */ readonly createdOn?: Date; /** * The time that the snapshot will expire. * NOTE: This property will not be serialized. It can only be populated by the server. */ readonly expiresOn?: Date; /** The amount of time, in seconds, that a snapshot will remain in the archived state before expiring. This property is only writable during the creation of a snapshot. If not specified, the default lifetime of key-value revisions will be used. */ retentionPeriodInSeconds?: number; /** * The size in bytes of the snapshot. * NOTE: This property will not be serialized. It can only be populated by the server. */ readonly sizeInBytes?: number; /** * The amount of key-values in the snapshot. * NOTE: This property will not be serialized. It can only be populated by the server. */ readonly itemCount?: number; /** The tags of the snapshot. */ tags?: { [propertyName: string]: string; }; /** * A value representing the current state of the snapshot. * NOTE: This property will not be serialized. It can only be populated by the server. */ readonly etag?: string; } /** * Defines values for ConfigurationSnapshotStatus. \ * {@link KnownConfigurationSnapshotStatus} can be used interchangeably with ConfigurationSnapshotStatus, * this enum contains the known values that the service supports. * ### Known values supported by the service * **provisioning** \ * **ready** \ * **archived** \ * **failed** */ export declare type ConfigurationSnapshotStatus = string; /** * Options used when creating a Snapshot. */ export declare interface CreateSnapshotOptions extends OperationOptions { /** * The amount of time to wait (in milliseconds) between subsequent requests relating to the same operation. */ updateIntervalInMs?: number; } /** * Response from updating a Snapshot. */ export declare interface CreateSnapshotResponse extends SnapshotResponse { } /** * Options for deleting a ConfigurationSetting. */ export declare interface DeleteConfigurationSettingOptions extends HttpOnlyIfUnchangedField, OperationOptions { } /** * Response from deleting a ConfigurationSetting. */ export declare interface DeleteConfigurationSettingResponse extends SyncTokenHeaderField, HttpResponseFields, HttpResponseField<SyncTokenHeaderField> { } /** * Entity with etag. */ export declare interface EtagEntity { /** * The etag for this entity */ etag?: string; } /** * The content type for a FeatureFlag */ export declare const featureFlagContentType = "application/vnd.microsoft.appconfig.ff+json;charset=utf-8"; /** * The prefix for feature flags. */ export declare const featureFlagPrefix = ".appconfig.featureflag/"; /** * Value of a feature flag */ export declare interface FeatureFlagValue { /** * Id for the feature flag. */ id?: string; /** * A Feature filter consistently evaluates the state of a feature flag. * Our feature management library supports three types of built-in filters: Targeting, TimeWindow, and Percentage. * Custom filters can also be created based on different factors, such as device used, browser types, geographic location, etc. * * [More Info](https://docs.microsoft.com/en-us/azure/azure-app-configuration/howto-feature-filters-aspnet-core) */ conditions: { clientFilters: { name: string; parameters?: Record<string, unknown>; }[]; }; /** * Description of the feature. */ description?: string; /** * Boolean flag to say if the feature flag is enabled. */ enabled: boolean; /** * Display name for the feature to use for display rather than the ID. */ displayName?: string; } /** * Headers from getting a ConfigurationSetting. */ export declare interface GetConfigurationHeaders extends SyncTokenHeaderField { } /** * Options for getting a ConfigurationSetting. */ export declare interface GetConfigurationSettingOptions extends OperationOptions, HttpOnlyIfChangedField, OptionalFields { /** * Requests the server to respond with the state of the resource at the specified time. */ acceptDateTime?: Date; } /** * Response from retrieving a ConfigurationSetting. */ export declare interface GetConfigurationSettingResponse extends ConfigurationSetting, GetConfigurationHeaders, HttpResponseFields, HttpResponseField<GetConfigurationHeaders> { } /** * Options used when getting a Snapshot. */ export declare interface GetSnapshotOptions extends OperationOptions, OptionalSnapshotFields { } /** * Response from getting a Snapshot. */ export declare interface GetSnapshotResponse extends SnapshotResponse { } /** * Options used to provide if-none-match for an HTTP request */ export declare interface HttpOnlyIfChangedField { /** * Used to perform an operation only if the targeted resource's etag does not match the value * provided. */ onlyIfChanged?: boolean; } /** * Options used to provide if-match for an HTTP request */ export declare interface HttpOnlyIfUnchangedField { /** * Used to perform an operation only if the targeted resource's etag matches the value provided. */ onlyIfUnchanged?: boolean; } /** * HTTP response related information - headers and raw body. */ export declare interface HttpResponseField<HeadersT> { /** * The underlying HTTP response. */ _response: CompatResponse & { /** * The parsed HTTP response headers. */ parsedHeaders: HeadersT; /** * The response body as text (string format) */ bodyAsText: string; }; } /** * Fields that are hoisted up from the _response field of the object * Used in cases where individual HTTP response fields are important for * the user to use in common-use cases like handling http status codes 204 or 304. */ export declare interface HttpResponseFields { /** * The HTTP status code for the response */ statusCode: number; } /** * Lets you know if the ConfigurationSetting is a feature flag. * * [Checks if the content type is featureFlagContentType `"application/vnd.microsoft.appconfig.ff+json;charset=utf-8"`] */ export declare function isFeatureFlag(setting: ConfigurationSetting): setting is ConfigurationSetting & Required<Pick<ConfigurationSetting, "value">>; /** * Lets you know if the ConfigurationSetting is a secret reference. * * [Checks if the content type is secretReferenceContentType `"application/vnd.microsoft.appconfig.keyvaultref+json;charset=utf-8"`] */ export declare function isSecretReference(setting: ConfigurationSetting): setting is ConfigurationSetting & Required<Pick<ConfigurationSetting, "value">>; /** Known values of {@link ConfigurationSnapshotStatus} that the service accepts. */ export declare enum KnownConfigurationSnapshotStatus { /** Provisioning */ Provisioning = "provisioning", /** Ready */ Ready = "ready", /** Archived */ Archived = "archived", /** Failed */ Failed = "failed" } /** Known values of {@link SnapshotComposition} that the service accepts. */ export declare enum KnownSnapshotComposition { /** Key */ Key = "key", /** KeyLabel */ KeyLabel = "key_label" } /** * A page of configuration settings and the corresponding HTTP response */ export declare interface ListConfigurationSettingPage extends HttpResponseField<SyncTokenHeaderField>, PageSettings, EtagEntity { /** * The configuration settings for this page of results. */ items: ConfigurationSetting[]; } /** * Common options for 'list' style APIs in AppConfig used to specify wildcards as well as * the accept date time header. */ export declare interface ListConfigurationSettingsForSnapshotOptions extends OperationOptions, OptionalFields { } /** * Options for listConfigurationSettings that allow for filtering based on keys, labels and other fields. * Also provides `fields` which allows you to selectively choose which fields are populated in the * result. */ export declare interface ListConfigurationSettingsOptions extends OperationOptions, ListSettingsOptions { /** * Etags list for page */ pageEtags?: string[]; } /** * Options for listLabels */ export declare interface ListLabelsOptions extends OperationOptions, OptionalLabelsFields { /** A filter for the name of the returned labels. */ nameFilter?: string; /** * Requests the server to respond with the state of the resource at the specified time. */ acceptDateTime?: Date; } /** * A page of configuration settings and the corresponding HTTP response */ export declare interface ListLabelsPage extends HttpResponseField<SyncTokenHeaderField>, PageSettings, EtagEntity { /** * The collection of labels */ items: SettingLabel[]; } /** * Options for listRevisions that allow for filtering based on keys, labels and other fields. * Also provides `fields` which allows you to selectively choose which fields are populated in the * result. */ export declare interface ListRevisionsOptions extends OperationOptions, ListSettingsOptions { } /** * A page of configuration settings and the corresponding HTTP response */ export declare interface ListRevisionsPage extends HttpResponseField<SyncTokenHeaderField>, PageSettings { /** * The configuration settings for this page of results. */ items: ConfigurationSetting[]; } /** * Common options for 'list' style APIs in AppConfig used to specify wildcards as well as * the accept date time header. */ export declare interface ListSettingsOptions extends OptionalFields { /** * Requests the server to respond with the state of the resource at the specified time. */ acceptDateTime?: Date; /** * Filters for keys. There are two types of matching: * * 1. Exact matching. Up to 5 key names are allowed, separated by commas (',') * 2. Wildcard matching. A single wildcard expression can be specified. * * | Value | Matches | * |--------------|---------------------------------------| * | omitted or * | Matches any key | * | abc | Matches a key named abc | * | abc* | Matches key names that start with abc | * * These characters are reserved and must be prefixed with backslash in order * to be specified: * or \\ or , */ keyFilter?: string; /** * Filters for labels. There are two types of matching: * * 1. Exact matching. Up to 5 labels are allowed, separated by commas (',') * 2. Wildcard matching. A single wildcard expression can be specified. * * | Value | Matches | * |--------------|------------------------------------------------------| * | omitted or * | Matches any key | * | \0 | Matches any key without a label (URL encoded as %00) | * | prod | Matches a key with label named prod | * | prod* | Matches key with label names that start with prod | * These characters are reserved and must be prefixed with backslash in order * to be specified: * or \\ or , * * Reference: https://learn.microsoft.com/azure/azure-app-configuration/rest-api-key-value */ labelFilter?: string; /** A filter used to query by tags. Syntax reference: https://aka.ms/azconfig/docs/keyvaluefiltering */ tagsFilter?: string[]; } /** * Common options for 'list' style APIs in AppConfig used to specify wildcards as well as * the accept date time header. */ export declare interface ListSnapshots extends OptionalSnapshotFields { /** A filter for the name of the returned snapshots. */ nameFilter?: string; /** Used to filter returned snapshots by their status property. */ statusFilter?: ConfigurationSnapshotStatus[]; } /** * Options for listConfigurationSettings that allow for filtering based on keys, labels and other fields. * Also provides `fields` which allows you to selectively choose which fields are populated in the * result. */ export declare interface ListSnapshotsOptions extends OperationOptions, ListSnapshots, OptionalSnapshotFields { } /** * A page of configuration settings and the corresponding HTTP response */ export declare interface ListSnapshotsPage extends SyncTokenHeaderField, PageSettings { /** * The configuration settings for this page of results. */ items: ConfigurationSnapshot[]; } /** * Used when the API supports selectively returning fields. */ export declare interface OptionalFields { /** * Which fields to return for each ConfigurationSetting */ fields?: (keyof ConfigurationSetting)[]; } /** * Used when the API supports selectively returning labels fields. */ export declare interface OptionalLabelsFields { /** * Which fields to return for each ConfigurationSetting */ fields?: (keyof SettingLabel)[]; } /** * Used when the API supports selectively returning fields. */ export declare interface OptionalSnapshotFields { /** * Which fields to return for each ConfigurationSetting */ fields?: (keyof ConfigurationSnapshot)[]; } /** * An interface that tracks the settings for paged iteration */ export declare interface PageSettings { /** * The token that keeps track of where to continue the iterator */ continuationToken?: string; } /** * Takes the ConfigurationSetting as input and returns the ConfigurationSetting<FeatureFlagValue> by parsing the value string. */ export declare function parseFeatureFlag(setting: ConfigurationSetting): ConfigurationSetting<FeatureFlagValue>; /** * Takes the ConfigurationSetting as input and returns the ConfigurationSetting<SecretReferenceValue> by parsing the value string. */ export declare function parseSecretReference(setting: ConfigurationSetting): ConfigurationSetting<SecretReferenceValue>; /** * Options that control how to retry failed requests. */ export declare interface RetryOptions { /** * The maximum number of retry attempts. Defaults to 3. */ maxRetries?: number; /** * The maximum delay in milliseconds allowed before retrying an operation. */ maxRetryDelayInMs?: number; } /** * content-type for the secret reference. */ export declare const secretReferenceContentType = "application/vnd.microsoft.appconfig.keyvaultref+json;charset=utf-8"; /** * Necessary fields for updating or creating a new secret reference. */ export declare interface SecretReferenceValue { /** * Id for the secret reference. */ secretId: string; } /** * Options used when saving a ConfigurationSetting. */ export declare interface SetConfigurationSettingOptions extends HttpOnlyIfUnchangedField, OperationOptions { } /** * Parameters for creating or updating a new configuration setting */ export declare type SetConfigurationSettingParam<T extends string | FeatureFlagValue | SecretReferenceValue = string> = ConfigurationSettingParam<T>; /** * Response from setting a ConfigurationSetting. */ export declare interface SetConfigurationSettingResponse extends ConfigurationSetting, SyncTokenHeaderField, HttpResponseField<SyncTokenHeaderField> { } /** * Options for setReadOnly */ export declare interface SetReadOnlyOptions extends HttpOnlyIfUnchangedField, OperationOptions { } /** * Response when setting a value to read-only. */ export declare interface SetReadOnlyResponse extends ConfigurationSetting, SyncTokenHeaderField, HttpResponseField<SyncTokenHeaderField> { } /** Label details, with name property that can only be populated by the server */ export declare interface SettingLabel { /** * The name of the label. * NOTE: This property will not be serialized. It can only be populated by the server. */ readonly name?: string; } /** * Defines values for SnapshotComposition. \ * {@link KnownSnapshotComposition} can be used interchangeably with SnapshotComposition, * this enum contains the known values that the service supports. * ### Known values supported by the service * **key** \ * **key_label** */ export declare type SnapshotComposition = string; /** * Fields that uniquely identify a snapshot */ export declare interface SnapshotInfo { /** The name for this snapshot */ name: string; /** A list of filters used to filter the key-values included in the snapshot. */ filters: ConfigurationSettingsFilter[]; /** The composition type describes how the key-values within the snapshot are composed. The 'all' composition type includes all key-values. The 'group_by_key' composition type ensures there are no two key-values containing the same key. */ compositionType?: SnapshotComposition; /** The amount of time, in seconds, that a snapshot will remain in the archived state before expiring. This property is only writable during the creation of a snapshot. If not specified, the default lifetime of key-value revisions will be used. */ retentionPeriodInSeconds?: number; /** The tags of the snapshot. */ tags?: { [propertyName: string]: string; }; } /** * Response from adding a Snapshot. */ export declare interface SnapshotResponse extends ConfigurationSnapshot, SyncTokenHeaderField { } /** * Sync token header field */ export declare interface SyncTokenHeaderField { /** * Enables real-time consistency between requests by providing the returned value in the next * request made to the server. */ syncToken?: string; } /** * Options used when updating a Snapshot. */ export declare interface UpdateSnapshotOptions extends OperationOptions { /** * The etag for this snapshot */ etag?: string; } /** * Response from updating a Snapshot. */ export declare interface UpdateSnapshotResponse extends SnapshotResponse { } export { }