@scaleway/sdk 2.43.0 → 2.45.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -17,13 +17,7 @@ export declare class API extends ParentAPI {
17
17
  */
18
18
  listConsumptions: (request?: Readonly<ListConsumptionsRequest>) => Promise<ListConsumptionsResponse> & {
19
19
  all: () => Promise<import("./types.gen").ListConsumptionsResponseConsumption[]>;
20
- [Symbol.asyncIterator]: () => AsyncGenerator<import("./types.gen").ListConsumptionsResponseConsumption[], void, void>; /**
21
- * Get monthly consumption taxes. Consumption Tax allows you to retrieve your
22
- * past or current tax charges, by project or category.
23
- *
24
- * @param request - The request {@link ListTaxesRequest}
25
- * @returns A Promise of ListTaxesResponse
26
- */
20
+ [Symbol.asyncIterator]: () => AsyncGenerator<import("./types.gen").ListConsumptionsResponseConsumption[], void, void>;
27
21
  };
28
22
  protected pageOfListTaxes: (request?: Readonly<ListTaxesRequest>) => Promise<ListTaxesResponse>;
29
23
  /**
@@ -35,13 +29,7 @@ export declare class API extends ParentAPI {
35
29
  */
36
30
  listTaxes: (request?: Readonly<ListTaxesRequest>) => Promise<ListTaxesResponse> & {
37
31
  all: () => Promise<import("./types.gen").ListTaxesResponseTax[]>;
38
- [Symbol.asyncIterator]: () => AsyncGenerator<import("./types.gen").ListTaxesResponseTax[], void, void>; /**
39
- * Get monthly consumption taxes. Consumption Tax allows you to retrieve your
40
- * past or current tax charges, by project or category.
41
- *
42
- * @param request - The request {@link ListTaxesRequest}
43
- * @returns A Promise of ListTaxesResponse
44
- */
32
+ [Symbol.asyncIterator]: () => AsyncGenerator<import("./types.gen").ListTaxesResponseTax[], void, void>;
45
33
  };
46
34
  protected pageOfListInvoices: (request?: Readonly<ListInvoicesRequest>) => Promise<ListInvoicesResponse>;
47
35
  /**
@@ -53,13 +41,7 @@ export declare class API extends ParentAPI {
53
41
  */
54
42
  listInvoices: (request?: Readonly<ListInvoicesRequest>) => Promise<ListInvoicesResponse> & {
55
43
  all: () => Promise<Invoice[]>;
56
- [Symbol.asyncIterator]: () => AsyncGenerator<Invoice[], void, void>; /**
57
- * Get monthly consumption taxes. Consumption Tax allows you to retrieve your
58
- * past or current tax charges, by project or category.
59
- *
60
- * @param request - The request {@link ListTaxesRequest}
61
- * @returns A Promise of ListTaxesResponse
62
- */
44
+ [Symbol.asyncIterator]: () => AsyncGenerator<Invoice[], void, void>;
63
45
  };
64
46
  /**
65
47
  * Export invoices. Export invoices in a CSV file.
@@ -93,12 +75,6 @@ export declare class API extends ParentAPI {
93
75
  */
94
76
  listDiscounts: (request?: Readonly<ListDiscountsRequest>) => Promise<ListDiscountsResponse> & {
95
77
  all: () => Promise<import("./types.gen").Discount[]>;
96
- [Symbol.asyncIterator]: () => AsyncGenerator<import("./types.gen").Discount[], void, void>; /**
97
- * Get monthly consumption taxes. Consumption Tax allows you to retrieve your
98
- * past or current tax charges, by project or category.
99
- *
100
- * @param request - The request {@link ListTaxesRequest}
101
- * @returns A Promise of ListTaxesResponse
102
- */
78
+ [Symbol.asyncIterator]: () => AsyncGenerator<import("./types.gen").Discount[], void, void>;
103
79
  };
104
80
  }
@@ -16,6 +16,7 @@ class API extends api.API {
16
16
  "fr-par-1",
17
17
  "fr-par-2",
18
18
  "nl-ams-1",
19
+ "nl-ams-2",
19
20
  "nl-ams-3",
20
21
  "pl-waw-3"
21
22
  ];
@@ -14,6 +14,7 @@ class API extends API$1 {
14
14
  "fr-par-1",
15
15
  "fr-par-2",
16
16
  "nl-ams-1",
17
+ "nl-ams-2",
17
18
  "nl-ams-3",
18
19
  "pl-waw-3"
19
20
  ];
@@ -12,6 +12,7 @@ const unmarshalDatabaseBackup = (data) => {
12
12
  return {
13
13
  createdAt: marshalling.unmarshalDate(data.created_at),
14
14
  databaseId: data.database_id,
15
+ dbSize: data.db_size,
15
16
  downloadUrl: data.download_url,
16
17
  downloadUrlExpiresAt: marshalling.unmarshalDate(data.download_url_expires_at),
17
18
  expiresAt: marshalling.unmarshalDate(data.expires_at),
@@ -10,6 +10,7 @@ const unmarshalDatabaseBackup = (data) => {
10
10
  return {
11
11
  createdAt: unmarshalDate(data.created_at),
12
12
  databaseId: data.database_id,
13
+ dbSize: data.db_size,
13
14
  downloadUrl: data.download_url,
14
15
  downloadUrlExpiresAt: unmarshalDate(data.download_url_expires_at),
15
16
  expiresAt: unmarshalDate(data.expires_at),
@@ -21,8 +21,10 @@ export interface DatabaseBackup {
21
21
  createdAt?: Date;
22
22
  /** Expiration date. */
23
23
  expiresAt?: Date;
24
- /** Size of the database backup. */
24
+ /** Size (in bytes) of the database backup file. */
25
25
  size?: number;
26
+ /** Size (in bytes) of the database when backup has been done. */
27
+ dbSize?: number;
26
28
  /** Download URL of the exported database backup. */
27
29
  downloadUrl?: string;
28
30
  /** Expiration date of the download URL. */
@@ -257,6 +257,23 @@ class API extends api.API {
257
257
  },
258
258
  marshalling_gen.unmarshalDomainLastStatus
259
259
  );
260
+ /**
261
+ * Update a domain. Update a domain auto-configuration.
262
+ *
263
+ * @param request - The request {@link UpdateDomainRequest}
264
+ * @returns A Promise of Domain
265
+ */
266
+ updateDomain = (request) => this.client.fetch(
267
+ {
268
+ body: JSON.stringify(
269
+ marshalling_gen.marshalUpdateDomainRequest(request, this.client.settings)
270
+ ),
271
+ headers: jsonContentHeaders,
272
+ method: "PATCH",
273
+ path: `/transactional-email/v1alpha1/regions/${marshalling.validatePathParam("region", request.region ?? this.client.settings.defaultRegion)}/domains/${marshalling.validatePathParam("domainId", request.domainId)}`
274
+ },
275
+ marshalling_gen.unmarshalDomain
276
+ );
260
277
  /**
261
278
  * Create a Webhook. Create a new Webhook triggered by a list of event types
262
279
  * and pushed to a Scaleway SNS ARN.
@@ -1,6 +1,6 @@
1
1
  import { API as ParentAPI } from '../../../bridge';
2
2
  import type { Region, WaitForOptions } from '../../../bridge';
3
- import type { CancelEmailRequest, CheckDomainRequest, CreateDomainRequest, CreateEmailRequest, CreateEmailResponse, CreateWebhookRequest, DeleteWebhookRequest, Domain, DomainLastStatus, Email, GetDomainLastStatusRequest, GetDomainRequest, GetEmailRequest, GetStatisticsRequest, GetWebhookRequest, ListDomainsRequest, ListDomainsResponse, ListEmailsRequest, ListEmailsResponse, ListWebhookEventsRequest, ListWebhookEventsResponse, ListWebhooksRequest, ListWebhooksResponse, RevokeDomainRequest, Statistics, UpdateWebhookRequest, Webhook } from './types.gen';
3
+ import type { CancelEmailRequest, CheckDomainRequest, CreateDomainRequest, CreateEmailRequest, CreateEmailResponse, CreateWebhookRequest, DeleteWebhookRequest, Domain, DomainLastStatus, Email, GetDomainLastStatusRequest, GetDomainRequest, GetEmailRequest, GetStatisticsRequest, GetWebhookRequest, ListDomainsRequest, ListDomainsResponse, ListEmailsRequest, ListEmailsResponse, ListWebhookEventsRequest, ListWebhookEventsResponse, ListWebhooksRequest, ListWebhooksResponse, RevokeDomainRequest, Statistics, UpdateDomainRequest, UpdateWebhookRequest, Webhook } from './types.gen';
4
4
  /**
5
5
  * Transactional Email API.
6
6
  *
@@ -131,6 +131,13 @@ export declare class API extends ParentAPI {
131
131
  * @returns A Promise of DomainLastStatus
132
132
  */
133
133
  getDomainLastStatus: (request: Readonly<GetDomainLastStatusRequest>) => Promise<DomainLastStatus>;
134
+ /**
135
+ * Update a domain. Update a domain auto-configuration.
136
+ *
137
+ * @param request - The request {@link UpdateDomainRequest}
138
+ * @returns A Promise of Domain
139
+ */
140
+ updateDomain: (request: Readonly<UpdateDomainRequest>) => Promise<Domain>;
134
141
  /**
135
142
  * Create a Webhook. Create a new Webhook triggered by a list of event types
136
143
  * and pushed to a Scaleway SNS ARN.
@@ -4,7 +4,7 @@ import { validatePathParam, urlParams } from "../../../helpers/marshalling.js";
4
4
  import "../../../vendor/base64/index.js";
5
5
  import { enrichForPagination } from "../../../scw/fetch/resource-paginator.js";
6
6
  import { EMAIL_TRANSIENT_STATUSES, DOMAIN_TRANSIENT_STATUSES } from "./content.gen.js";
7
- import { marshalCreateEmailRequest, unmarshalCreateEmailResponse, unmarshalEmail, unmarshalListEmailsResponse, unmarshalStatistics, marshalCreateDomainRequest, unmarshalDomain, unmarshalListDomainsResponse, unmarshalDomainLastStatus, marshalCreateWebhookRequest, unmarshalWebhook, unmarshalListWebhooksResponse, marshalUpdateWebhookRequest, unmarshalListWebhookEventsResponse } from "./marshalling.gen.js";
7
+ import { marshalCreateEmailRequest, unmarshalCreateEmailResponse, unmarshalEmail, unmarshalListEmailsResponse, unmarshalStatistics, marshalCreateDomainRequest, unmarshalDomain, unmarshalListDomainsResponse, unmarshalDomainLastStatus, marshalUpdateDomainRequest, marshalCreateWebhookRequest, unmarshalWebhook, unmarshalListWebhooksResponse, marshalUpdateWebhookRequest, unmarshalListWebhookEventsResponse } from "./marshalling.gen.js";
8
8
  const jsonContentHeaders = {
9
9
  "Content-Type": "application/json; charset=utf-8"
10
10
  };
@@ -255,6 +255,23 @@ class API extends API$1 {
255
255
  },
256
256
  unmarshalDomainLastStatus
257
257
  );
258
+ /**
259
+ * Update a domain. Update a domain auto-configuration.
260
+ *
261
+ * @param request - The request {@link UpdateDomainRequest}
262
+ * @returns A Promise of Domain
263
+ */
264
+ updateDomain = (request) => this.client.fetch(
265
+ {
266
+ body: JSON.stringify(
267
+ marshalUpdateDomainRequest(request, this.client.settings)
268
+ ),
269
+ headers: jsonContentHeaders,
270
+ method: "PATCH",
271
+ path: `/transactional-email/v1alpha1/regions/${validatePathParam("region", request.region ?? this.client.settings.defaultRegion)}/domains/${validatePathParam("domainId", request.domainId)}`
272
+ },
273
+ unmarshalDomain
274
+ );
258
275
  /**
259
276
  * Create a Webhook. Create a new Webhook triggered by a list of event types
260
277
  * and pushed to a Scaleway SNS ARN.
@@ -1,4 +1,4 @@
1
1
  export { API } from './api.gen';
2
2
  export * from './content.gen';
3
- export type { CancelEmailRequest, CheckDomainRequest, CreateDomainRequest, CreateEmailRequest, CreateEmailRequestAddress, CreateEmailRequestAttachment, CreateEmailRequestHeader, CreateEmailResponse, CreateWebhookRequest, DeleteWebhookRequest, Domain, DomainLastStatus, DomainLastStatusDkimRecord, DomainLastStatusDmarcRecord, DomainLastStatusRecordStatus, DomainLastStatusSpfRecord, DomainRecords, DomainRecordsDMARC, DomainReputation, DomainReputationStatus, DomainStatistics, DomainStatus, Email, EmailFlag, EmailRcptType, EmailStatus, EmailTry, GetDomainLastStatusRequest, GetDomainRequest, GetEmailRequest, GetStatisticsRequest, GetWebhookRequest, ListDomainsRequest, ListDomainsResponse, ListEmailsRequest, ListEmailsRequestOrderBy, ListEmailsResponse, ListWebhookEventsRequest, ListWebhookEventsRequestOrderBy, ListWebhookEventsResponse, ListWebhooksRequest, ListWebhooksRequestOrderBy, ListWebhooksResponse, RevokeDomainRequest, Statistics, UpdateWebhookRequest, Webhook, WebhookEvent, WebhookEventStatus, WebhookEventType, } from './types.gen';
3
+ export type { CancelEmailRequest, CheckDomainRequest, CreateDomainRequest, CreateEmailRequest, CreateEmailRequestAddress, CreateEmailRequestAttachment, CreateEmailRequestHeader, CreateEmailResponse, CreateWebhookRequest, DeleteWebhookRequest, Domain, DomainLastStatus, DomainLastStatusDkimRecord, DomainLastStatusDmarcRecord, DomainLastStatusRecordStatus, DomainLastStatusSpfRecord, DomainRecords, DomainRecordsDMARC, DomainReputation, DomainReputationStatus, DomainStatistics, DomainStatus, Email, EmailFlag, EmailRcptType, EmailStatus, EmailTry, GetDomainLastStatusRequest, GetDomainRequest, GetEmailRequest, GetStatisticsRequest, GetWebhookRequest, ListDomainsRequest, ListDomainsResponse, ListEmailsRequest, ListEmailsRequestOrderBy, ListEmailsResponse, ListWebhookEventsRequest, ListWebhookEventsRequestOrderBy, ListWebhookEventsResponse, ListWebhooksRequest, ListWebhooksRequestOrderBy, ListWebhooksResponse, RevokeDomainRequest, Statistics, UpdateDomainRequest, UpdateWebhookRequest, Webhook, WebhookEvent, WebhookEventStatus, WebhookEventType, } from './types.gen';
4
4
  export * as ValidationRules from './validation-rules.gen';
@@ -317,6 +317,9 @@ const marshalCreateWebhookRequest = (request, defaults) => ({
317
317
  project_id: request.projectId ?? defaults.defaultProjectId,
318
318
  sns_arn: request.snsArn
319
319
  });
320
+ const marshalUpdateDomainRequest = (request, defaults) => ({
321
+ autoconfig: request.autoconfig
322
+ });
320
323
  const marshalUpdateWebhookRequest = (request, defaults) => ({
321
324
  event_types: request.eventTypes !== void 0 ? request.eventTypes : void 0,
322
325
  name: request.name,
@@ -325,6 +328,7 @@ const marshalUpdateWebhookRequest = (request, defaults) => ({
325
328
  exports.marshalCreateDomainRequest = marshalCreateDomainRequest;
326
329
  exports.marshalCreateEmailRequest = marshalCreateEmailRequest;
327
330
  exports.marshalCreateWebhookRequest = marshalCreateWebhookRequest;
331
+ exports.marshalUpdateDomainRequest = marshalUpdateDomainRequest;
328
332
  exports.marshalUpdateWebhookRequest = marshalUpdateWebhookRequest;
329
333
  exports.unmarshalCreateEmailResponse = unmarshalCreateEmailResponse;
330
334
  exports.unmarshalDomain = unmarshalDomain;
@@ -1,5 +1,5 @@
1
1
  import type { DefaultValues } from '../../../bridge';
2
- import type { CreateDomainRequest, CreateEmailRequest, CreateEmailResponse, CreateWebhookRequest, Domain, DomainLastStatus, Email, ListDomainsResponse, ListEmailsResponse, ListWebhookEventsResponse, ListWebhooksResponse, Statistics, UpdateWebhookRequest, Webhook } from './types.gen';
2
+ import type { CreateDomainRequest, CreateEmailRequest, CreateEmailResponse, CreateWebhookRequest, Domain, DomainLastStatus, Email, ListDomainsResponse, ListEmailsResponse, ListWebhookEventsResponse, ListWebhooksResponse, Statistics, UpdateDomainRequest, UpdateWebhookRequest, Webhook } from './types.gen';
3
3
  export declare const unmarshalEmail: (data: unknown) => Email;
4
4
  export declare const unmarshalDomain: (data: unknown) => Domain;
5
5
  export declare const unmarshalWebhook: (data: unknown) => Webhook;
@@ -13,4 +13,5 @@ export declare const unmarshalStatistics: (data: unknown) => Statistics;
13
13
  export declare const marshalCreateDomainRequest: (request: CreateDomainRequest, defaults: DefaultValues) => Record<string, unknown>;
14
14
  export declare const marshalCreateEmailRequest: (request: CreateEmailRequest, defaults: DefaultValues) => Record<string, unknown>;
15
15
  export declare const marshalCreateWebhookRequest: (request: CreateWebhookRequest, defaults: DefaultValues) => Record<string, unknown>;
16
+ export declare const marshalUpdateDomainRequest: (request: UpdateDomainRequest, defaults: DefaultValues) => Record<string, unknown>;
16
17
  export declare const marshalUpdateWebhookRequest: (request: UpdateWebhookRequest, defaults: DefaultValues) => Record<string, unknown>;
@@ -315,6 +315,9 @@ const marshalCreateWebhookRequest = (request, defaults) => ({
315
315
  project_id: request.projectId ?? defaults.defaultProjectId,
316
316
  sns_arn: request.snsArn
317
317
  });
318
+ const marshalUpdateDomainRequest = (request, defaults) => ({
319
+ autoconfig: request.autoconfig
320
+ });
318
321
  const marshalUpdateWebhookRequest = (request, defaults) => ({
319
322
  event_types: request.eventTypes !== void 0 ? request.eventTypes : void 0,
320
323
  name: request.name,
@@ -324,6 +327,7 @@ export {
324
327
  marshalCreateDomainRequest,
325
328
  marshalCreateEmailRequest,
326
329
  marshalCreateWebhookRequest,
330
+ marshalUpdateDomainRequest,
327
331
  marshalUpdateWebhookRequest,
328
332
  unmarshalCreateEmailResponse,
329
333
  unmarshalDomain,
@@ -545,6 +545,20 @@ export interface Statistics {
545
545
  */
546
546
  canceledCount: number;
547
547
  }
548
+ export type UpdateDomainRequest = {
549
+ /**
550
+ * Region to target. If none is passed will use default region from the
551
+ * config.
552
+ */
553
+ region?: Region;
554
+ /** ID of the domain to update. */
555
+ domainId: string;
556
+ /**
557
+ * (Optional) If set to true, activate auto-configuration of the domain's DNS
558
+ * zone.
559
+ */
560
+ autoconfig?: boolean;
561
+ };
548
562
  export type UpdateWebhookRequest = {
549
563
  /**
550
564
  * Region to target. If none is passed will use default region from the
@@ -38,10 +38,7 @@ type URLParameterValue = string | number | boolean | Date | null;
38
38
  *
39
39
  * @internal
40
40
  */
41
- export declare const urlParams: (...paramTuples: Readonly<[
42
- string,
43
- URLParameterValue | URLParameterValue[] | undefined
44
- ]>[]) => URLSearchParams;
41
+ export declare const urlParams: (...paramTuples: Readonly<[string, URLParameterValue | URLParameterValue[] | undefined]>[]) => URLSearchParams;
45
42
  /**
46
43
  * Unmarshals data to Date object.
47
44
  *
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
- const version = "v2.42.0";
3
+ const version = "v2.44.0";
4
4
  const userAgent = `scaleway-sdk-js/${version}`;
5
5
  exports.userAgent = userAgent;
6
6
  exports.version = version;
@@ -1,2 +1,2 @@
1
- export declare const version = "v2.42.0";
2
- export declare const userAgent = "scaleway-sdk-js/v2.42.0";
1
+ export declare const version = "v2.44.0";
2
+ export declare const userAgent = "scaleway-sdk-js/v2.44.0";
@@ -1,4 +1,4 @@
1
- const version = "v2.42.0";
1
+ const version = "v2.44.0";
2
2
  const userAgent = `scaleway-sdk-js/${version}`;
3
3
  export {
4
4
  userAgent,
@@ -9,7 +9,7 @@ export type PaginatedFetcher<T, R extends PaginationOptions = PaginationOptions>
9
9
  export type PaginatedContent<K extends string, T = unknown> = PaginatedResponse & {
10
10
  [key in K]: T[];
11
11
  };
12
- export declare const extract: <K extends string>(key: K) => <T extends PaginatedContent<K, unknown>>(result: T) => T[K];
12
+ export declare const extract: <K extends string>(key: K) => <T extends PaginatedContent<K>>(result: T) => T[K];
13
13
  /**
14
14
  * Fetches a paginated resource.
15
15
  *
@@ -29,7 +29,7 @@ export declare function fetchPaginated<K extends string, T extends PaginatedCont
29
29
  * @param initial - The first page
30
30
  * @returns A resources array Promise
31
31
  */
32
- export declare const fetchAll: <K extends string, T extends PaginatedContent<K, unknown>, R extends PaginationOptions>(key: K, fetcher: PaginatedFetcher<T, R>, request: R, initial?: Promise<T>) => Promise<(Awaited<T[K]> extends infer T_1 ? T_1 extends Awaited<T[K]> ? T_1 extends readonly (infer InnerArr)[] ? InnerArr : T_1 : never : never)[]>;
32
+ export declare const fetchAll: <K extends string, T extends PaginatedContent<K>, R extends PaginationOptions>(key: K, fetcher: PaginatedFetcher<T, R>, request: R, initial?: Promise<T>) => Promise<(Awaited<T[K]> extends infer T_1 ? T_1 extends Awaited<T[K]> ? T_1 extends readonly (infer InnerArr)[] ? InnerArr : T_1 : never : never)[]>;
33
33
  /**
34
34
  * Enriches a listing method with helpers.
35
35
  *
@@ -40,7 +40,7 @@ export declare const fetchAll: <K extends string, T extends PaginatedContent<K,
40
40
  *
41
41
  * @internal
42
42
  */
43
- export declare const enrichForPagination: <K extends string, T extends PaginatedContent<K, unknown>, R extends PaginationOptions>(key: K, fetcher: PaginatedFetcher<T, R>, request: R) => Promise<T> & {
43
+ export declare const enrichForPagination: <K extends string, T extends PaginatedContent<K>, R extends PaginationOptions>(key: K, fetcher: PaginatedFetcher<T, R>, request: R) => Promise<T> & {
44
44
  all: () => Promise<(Awaited<T[K]> extends infer T_1 ? T_1 extends Awaited<T[K]> ? T_1 extends readonly (infer InnerArr)[] ? InnerArr : T_1 : never : never)[]>;
45
45
  [Symbol.asyncIterator]: () => AsyncGenerator<T[K], void, void>;
46
46
  };
@@ -22,4 +22,4 @@ export declare const fixLegacyTotalCount: <T>(obj: T, headers: Headers) => T;
22
22
  *
23
23
  * @internal
24
24
  */
25
- export declare const responseParser: <T>(unmarshaller: ResponseUnmarshaller<T>, responseType: 'json' | 'text' | 'blob') => (response: Response) => Promise<T>;
25
+ export declare const responseParser: <T>(unmarshaller: ResponseUnmarshaller<T>, responseType: "json" | "text" | "blob") => (response: Response) => Promise<T>;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@scaleway/sdk",
3
- "version": "2.43.0",
3
+ "version": "2.45.0",
4
4
  "license": "Apache-2.0",
5
5
  "description": "Scaleway SDK.",
6
6
  "keywords": [
@@ -39,5 +39,5 @@
39
39
  "bundledDependencies": [
40
40
  "@scaleway/random-name"
41
41
  ],
42
- "gitHead": "b76c60686842c92f35cadea75bdb5c5c65a3b76b"
42
+ "gitHead": "ebf37bea086ff3929e2ba023f93535bcb1d8bc4e"
43
43
  }