@azure/communication-email 1.0.0-beta.1 → 1.0.0-beta.2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (43) hide show
  1. package/README.md +51 -45
  2. package/dist/index.js +341 -214
  3. package/dist/index.js.map +1 -1
  4. package/dist-esm/samples-dev/sendEmailMultipleRecipients.js +11 -24
  5. package/dist-esm/samples-dev/sendEmailMultipleRecipients.js.map +1 -1
  6. package/dist-esm/samples-dev/sendEmailSingleRecipient.js +7 -10
  7. package/dist-esm/samples-dev/sendEmailSingleRecipient.js.map +1 -1
  8. package/dist-esm/samples-dev/sendEmailWithAttachments.js +9 -12
  9. package/dist-esm/samples-dev/sendEmailWithAttachments.js.map +1 -1
  10. package/dist-esm/src/emailClient.js +8 -34
  11. package/dist-esm/src/emailClient.js.map +1 -1
  12. package/dist-esm/src/generated/src/emailRestApiClient.js +53 -10
  13. package/dist-esm/src/generated/src/emailRestApiClient.js.map +1 -1
  14. package/dist-esm/src/generated/src/index.js +11 -0
  15. package/dist-esm/src/generated/src/index.js.map +1 -0
  16. package/dist-esm/src/generated/src/lroImpl.js +25 -0
  17. package/dist-esm/src/generated/src/lroImpl.js.map +1 -0
  18. package/dist-esm/src/generated/src/models/index.js +14 -1
  19. package/dist-esm/src/generated/src/models/index.js.map +1 -1
  20. package/dist-esm/src/generated/src/models/mappers.js +134 -86
  21. package/dist-esm/src/generated/src/models/mappers.js.map +1 -1
  22. package/dist-esm/src/generated/src/models/parameters.js +25 -16
  23. package/dist-esm/src/generated/src/models/parameters.js.map +1 -1
  24. package/dist-esm/src/generated/src/operations/email.js +79 -40
  25. package/dist-esm/src/generated/src/operations/email.js.map +1 -1
  26. package/dist-esm/src/generated/src/operationsInterfaces/email.js +9 -0
  27. package/dist-esm/src/generated/src/operationsInterfaces/email.js.map +1 -0
  28. package/dist-esm/src/generated/src/operationsInterfaces/index.js +9 -0
  29. package/dist-esm/src/generated/src/operationsInterfaces/index.js.map +1 -0
  30. package/dist-esm/src/models.js +1 -1
  31. package/dist-esm/src/models.js.map +1 -1
  32. package/dist-esm/test/public/emailClient.spec.js +98 -127
  33. package/dist-esm/test/public/emailClient.spec.js.map +1 -1
  34. package/dist-esm/test/public/utils/recordedClient.js +46 -32
  35. package/dist-esm/test/public/utils/recordedClient.js.map +1 -1
  36. package/package.json +16 -15
  37. package/types/communication-email.d.ts +147 -134
  38. package/dist-esm/samples-dev/checkMessageStatus.js +0 -46
  39. package/dist-esm/samples-dev/checkMessageStatus.js.map +0 -1
  40. package/dist-esm/src/constants.js +0 -4
  41. package/dist-esm/src/constants.js.map +0 -1
  42. package/dist-esm/src/generated/src/emailRestApiClientContext.js +0 -38
  43. package/dist-esm/src/generated/src/emailRestApiClientContext.js.map +0 -1
package/dist/index.js CHANGED
@@ -2,10 +2,12 @@
2
2
 
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
- var coreHttp = require('@azure/core-http');
5
+ var coreAuth = require('@azure/core-auth');
6
6
  var communicationCommon = require('@azure/communication-common');
7
+ var coreClient = require('@azure/core-client');
8
+ var coreLro = require('@azure/core-lro');
9
+ var tslib = require('tslib');
7
10
  var logger$1 = require('@azure/logger');
8
- var uuid = require('uuid');
9
11
 
10
12
  function _interopNamespace(e) {
11
13
  if (e && e.__esModule) return e;
@@ -25,7 +27,7 @@ function _interopNamespace(e) {
25
27
  return Object.freeze(n);
26
28
  }
27
29
 
28
- var coreHttp__namespace = /*#__PURE__*/_interopNamespace(coreHttp);
30
+ var coreClient__namespace = /*#__PURE__*/_interopNamespace(coreClient);
29
31
 
30
32
  /*
31
33
  * Copyright (c) Microsoft Corporation.
@@ -34,13 +36,13 @@ var coreHttp__namespace = /*#__PURE__*/_interopNamespace(coreHttp);
34
36
  * Code generated by Microsoft (R) AutoRest Code Generator.
35
37
  * Changes may cause incorrect behavior and will be lost if the code is regenerated.
36
38
  */
37
- const SendStatusResult = {
39
+ const EmailSendResult = {
38
40
  type: {
39
41
  name: "Composite",
40
- className: "SendStatusResult",
42
+ className: "EmailSendResult",
41
43
  modelProperties: {
42
- messageId: {
43
- serializedName: "messageId",
44
+ id: {
45
+ serializedName: "id",
44
46
  required: true,
45
47
  type: {
46
48
  name: "String"
@@ -52,40 +54,32 @@ const SendStatusResult = {
52
54
  type: {
53
55
  name: "String"
54
56
  }
55
- }
56
- }
57
- }
58
- };
59
- const CommunicationErrorResponse = {
60
- type: {
61
- name: "Composite",
62
- className: "CommunicationErrorResponse",
63
- modelProperties: {
57
+ },
64
58
  error: {
65
59
  serializedName: "error",
66
60
  type: {
67
61
  name: "Composite",
68
- className: "CommunicationError"
62
+ className: "ErrorDetail"
69
63
  }
70
64
  }
71
65
  }
72
66
  }
73
67
  };
74
- const CommunicationError = {
68
+ const ErrorDetail = {
75
69
  type: {
76
70
  name: "Composite",
77
- className: "CommunicationError",
71
+ className: "ErrorDetail",
78
72
  modelProperties: {
79
73
  code: {
80
74
  serializedName: "code",
81
- required: true,
75
+ readOnly: true,
82
76
  type: {
83
77
  name: "String"
84
78
  }
85
79
  },
86
80
  message: {
87
81
  serializedName: "message",
88
- required: true,
82
+ readOnly: true,
89
83
  type: {
90
84
  name: "String"
91
85
  }
@@ -103,15 +97,62 @@ const CommunicationError = {
103
97
  type: {
104
98
  name: "Sequence",
105
99
  element: {
106
- type: { name: "Composite", className: "CommunicationError" }
100
+ type: {
101
+ name: "Composite",
102
+ className: "ErrorDetail"
103
+ }
107
104
  }
108
105
  }
109
106
  },
110
- innerError: {
111
- serializedName: "innererror",
107
+ additionalInfo: {
108
+ serializedName: "additionalInfo",
109
+ readOnly: true,
110
+ type: {
111
+ name: "Sequence",
112
+ element: {
113
+ type: {
114
+ name: "Composite",
115
+ className: "ErrorAdditionalInfo"
116
+ }
117
+ }
118
+ }
119
+ }
120
+ }
121
+ }
122
+ };
123
+ const ErrorAdditionalInfo = {
124
+ type: {
125
+ name: "Composite",
126
+ className: "ErrorAdditionalInfo",
127
+ modelProperties: {
128
+ type: {
129
+ serializedName: "type",
130
+ readOnly: true,
131
+ type: {
132
+ name: "String"
133
+ }
134
+ },
135
+ info: {
136
+ serializedName: "info",
137
+ readOnly: true,
138
+ type: {
139
+ name: "Dictionary",
140
+ value: { type: { name: "any" } }
141
+ }
142
+ }
143
+ }
144
+ }
145
+ };
146
+ const ErrorResponse = {
147
+ type: {
148
+ name: "Composite",
149
+ className: "ErrorResponse",
150
+ modelProperties: {
151
+ error: {
152
+ serializedName: "error",
112
153
  type: {
113
154
  name: "Composite",
114
- className: "CommunicationError"
155
+ className: "ErrorDetail"
115
156
  }
116
157
  }
117
158
  }
@@ -122,17 +163,15 @@ const EmailMessage = {
122
163
  name: "Composite",
123
164
  className: "EmailMessage",
124
165
  modelProperties: {
125
- customHeaders: {
166
+ headers: {
126
167
  serializedName: "headers",
127
168
  type: {
128
- name: "Sequence",
129
- element: {
130
- type: { name: "Composite", className: "EmailCustomHeader" }
131
- }
169
+ name: "Dictionary",
170
+ value: { type: { name: "String" } }
132
171
  }
133
172
  },
134
- sender: {
135
- serializedName: "sender",
173
+ senderAddress: {
174
+ serializedName: "senderAddress",
136
175
  required: true,
137
176
  type: {
138
177
  name: "String"
@@ -145,13 +184,6 @@ const EmailMessage = {
145
184
  className: "EmailContent"
146
185
  }
147
186
  },
148
- importance: {
149
- defaultValue: "normal",
150
- serializedName: "importance",
151
- type: {
152
- name: "String"
153
- }
154
- },
155
187
  recipients: {
156
188
  serializedName: "recipients",
157
189
  type: {
@@ -163,18 +195,28 @@ const EmailMessage = {
163
195
  serializedName: "attachments",
164
196
  type: {
165
197
  name: "Sequence",
166
- element: { type: { name: "Composite", className: "EmailAttachment" } }
198
+ element: {
199
+ type: {
200
+ name: "Composite",
201
+ className: "EmailAttachment"
202
+ }
203
+ }
167
204
  }
168
205
  },
169
206
  replyTo: {
170
207
  serializedName: "replyTo",
171
208
  type: {
172
209
  name: "Sequence",
173
- element: { type: { name: "Composite", className: "EmailAddress" } }
210
+ element: {
211
+ type: {
212
+ name: "Composite",
213
+ className: "EmailAddress"
214
+ }
215
+ }
174
216
  }
175
217
  },
176
- disableUserEngagementTracking: {
177
- serializedName: "disableUserEngagementTracking",
218
+ userEngagementTrackingDisabled: {
219
+ serializedName: "userEngagementTrackingDisabled",
178
220
  type: {
179
221
  name: "Boolean"
180
222
  }
@@ -182,28 +224,6 @@ const EmailMessage = {
182
224
  }
183
225
  }
184
226
  };
185
- const EmailCustomHeader = {
186
- type: {
187
- name: "Composite",
188
- className: "EmailCustomHeader",
189
- modelProperties: {
190
- name: {
191
- serializedName: "name",
192
- required: true,
193
- type: {
194
- name: "String"
195
- }
196
- },
197
- value: {
198
- serializedName: "value",
199
- required: true,
200
- type: {
201
- name: "String"
202
- }
203
- }
204
- }
205
- }
206
- };
207
227
  const EmailContent = {
208
228
  type: {
209
229
  name: "Composite",
@@ -238,24 +258,38 @@ const EmailRecipients = {
238
258
  modelProperties: {
239
259
  to: {
240
260
  serializedName: "to",
241
- required: true,
242
261
  type: {
243
262
  name: "Sequence",
244
- element: { type: { name: "Composite", className: "EmailAddress" } }
263
+ element: {
264
+ type: {
265
+ name: "Composite",
266
+ className: "EmailAddress"
267
+ }
268
+ }
245
269
  }
246
270
  },
247
- cC: {
248
- serializedName: "cC",
271
+ cc: {
272
+ serializedName: "cc",
249
273
  type: {
250
274
  name: "Sequence",
251
- element: { type: { name: "Composite", className: "EmailAddress" } }
275
+ element: {
276
+ type: {
277
+ name: "Composite",
278
+ className: "EmailAddress"
279
+ }
280
+ }
252
281
  }
253
282
  },
254
- bCC: {
255
- serializedName: "bCC",
283
+ bcc: {
284
+ serializedName: "bcc",
256
285
  type: {
257
286
  name: "Sequence",
258
- element: { type: { name: "Composite", className: "EmailAddress" } }
287
+ element: {
288
+ type: {
289
+ name: "Composite",
290
+ className: "EmailAddress"
291
+ }
292
+ }
259
293
  }
260
294
  }
261
295
  }
@@ -266,8 +300,8 @@ const EmailAddress = {
266
300
  name: "Composite",
267
301
  className: "EmailAddress",
268
302
  modelProperties: {
269
- email: {
270
- serializedName: "email",
303
+ address: {
304
+ serializedName: "address",
271
305
  required: true,
272
306
  type: {
273
307
  name: "String"
@@ -294,15 +328,15 @@ const EmailAttachment = {
294
328
  name: "String"
295
329
  }
296
330
  },
297
- attachmentType: {
298
- serializedName: "attachmentType",
331
+ contentType: {
332
+ serializedName: "contentType",
299
333
  required: true,
300
334
  type: {
301
335
  name: "String"
302
336
  }
303
337
  },
304
- contentBytesBase64: {
305
- serializedName: "contentBytesBase64",
338
+ contentInBase64: {
339
+ serializedName: "contentInBase64",
306
340
  required: true,
307
341
  type: {
308
342
  name: "String"
@@ -311,10 +345,10 @@ const EmailAttachment = {
311
345
  }
312
346
  }
313
347
  };
314
- const EmailGetSendStatusHeaders = {
348
+ const EmailGetSendResultHeaders = {
315
349
  type: {
316
350
  name: "Composite",
317
- className: "EmailGetSendStatusHeaders",
351
+ className: "EmailGetSendResultHeaders",
318
352
  modelProperties: {
319
353
  retryAfter: {
320
354
  serializedName: "retry-after",
@@ -325,17 +359,25 @@ const EmailGetSendStatusHeaders = {
325
359
  }
326
360
  }
327
361
  };
328
- const EmailSendHeaders = {
362
+ const EmailGetSendResultExceptionHeaders = {
329
363
  type: {
330
364
  name: "Composite",
331
- className: "EmailSendHeaders",
365
+ className: "EmailGetSendResultExceptionHeaders",
332
366
  modelProperties: {
333
- repeatabilityResult: {
334
- serializedName: "repeatability-result",
367
+ xMsErrorCode: {
368
+ serializedName: "x-ms-error-code",
335
369
  type: {
336
370
  name: "String"
337
371
  }
338
- },
372
+ }
373
+ }
374
+ }
375
+ };
376
+ const EmailSendHeaders = {
377
+ type: {
378
+ name: "Composite",
379
+ className: "EmailSendHeaders",
380
+ modelProperties: {
339
381
  operationLocation: {
340
382
  serializedName: "operation-location",
341
383
  type: {
@@ -347,9 +389,17 @@ const EmailSendHeaders = {
347
389
  type: {
348
390
  name: "Number"
349
391
  }
350
- },
351
- xMsRequestId: {
352
- serializedName: "x-ms-request-id",
392
+ }
393
+ }
394
+ }
395
+ };
396
+ const EmailSendExceptionHeaders = {
397
+ type: {
398
+ name: "Composite",
399
+ className: "EmailSendExceptionHeaders",
400
+ modelProperties: {
401
+ xMsErrorCode: {
402
+ serializedName: "x-ms-error-code",
353
403
  type: {
354
404
  name: "String"
355
405
  }
@@ -360,17 +410,19 @@ const EmailSendHeaders = {
360
410
 
361
411
  var Mappers = /*#__PURE__*/Object.freeze({
362
412
  __proto__: null,
363
- SendStatusResult: SendStatusResult,
364
- CommunicationErrorResponse: CommunicationErrorResponse,
365
- CommunicationError: CommunicationError,
413
+ EmailSendResult: EmailSendResult,
414
+ ErrorDetail: ErrorDetail,
415
+ ErrorAdditionalInfo: ErrorAdditionalInfo,
416
+ ErrorResponse: ErrorResponse,
366
417
  EmailMessage: EmailMessage,
367
- EmailCustomHeader: EmailCustomHeader,
368
418
  EmailContent: EmailContent,
369
419
  EmailRecipients: EmailRecipients,
370
420
  EmailAddress: EmailAddress,
371
421
  EmailAttachment: EmailAttachment,
372
- EmailGetSendStatusHeaders: EmailGetSendStatusHeaders,
373
- EmailSendHeaders: EmailSendHeaders
422
+ EmailGetSendResultHeaders: EmailGetSendResultHeaders,
423
+ EmailGetSendResultExceptionHeaders: EmailGetSendResultExceptionHeaders,
424
+ EmailSendHeaders: EmailSendHeaders,
425
+ EmailSendExceptionHeaders: EmailSendExceptionHeaders
374
426
  });
375
427
 
376
428
  /*
@@ -380,6 +432,17 @@ var Mappers = /*#__PURE__*/Object.freeze({
380
432
  * Code generated by Microsoft (R) AutoRest Code Generator.
381
433
  * Changes may cause incorrect behavior and will be lost if the code is regenerated.
382
434
  */
435
+ const accept = {
436
+ parameterPath: "accept",
437
+ mapper: {
438
+ defaultValue: "application/json",
439
+ isConstant: true,
440
+ serializedName: "Accept",
441
+ type: {
442
+ name: "String"
443
+ }
444
+ }
445
+ };
383
446
  const endpoint = {
384
447
  parameterPath: "endpoint",
385
448
  mapper: {
@@ -391,10 +454,10 @@ const endpoint = {
391
454
  },
392
455
  skipEncoding: true
393
456
  };
394
- const messageId = {
395
- parameterPath: "messageId",
457
+ const operationId = {
458
+ parameterPath: "operationId",
396
459
  mapper: {
397
- serializedName: "messageId",
460
+ serializedName: "operationId",
398
461
  required: true,
399
462
  type: {
400
463
  name: "String"
@@ -404,7 +467,7 @@ const messageId = {
404
467
  const apiVersion = {
405
468
  parameterPath: "apiVersion",
406
469
  mapper: {
407
- defaultValue: "2021-10-01-preview",
470
+ defaultValue: "2023-01-15-preview",
408
471
  isConstant: true,
409
472
  serializedName: "api-version",
410
473
  type: {
@@ -423,27 +486,25 @@ const contentType = {
423
486
  }
424
487
  }
425
488
  };
426
- const emailMessage = {
427
- parameterPath: "emailMessage",
489
+ const message = {
490
+ parameterPath: "message",
428
491
  mapper: EmailMessage
429
492
  };
430
- const repeatabilityRequestId = {
431
- parameterPath: "repeatabilityRequestId",
493
+ const operationId1 = {
494
+ parameterPath: ["options", "operationId"],
432
495
  mapper: {
433
- serializedName: "repeatability-request-id",
434
- required: true,
496
+ serializedName: "Operation-Id",
435
497
  type: {
436
- name: "String"
498
+ name: "Uuid"
437
499
  }
438
500
  }
439
501
  };
440
- const repeatabilityFirstSent = {
441
- parameterPath: "repeatabilityFirstSent",
502
+ const clientRequestId = {
503
+ parameterPath: ["options", "clientRequestId"],
442
504
  mapper: {
443
- serializedName: "repeatability-first-sent",
444
- required: true,
505
+ serializedName: "x-ms-client-request-id",
445
506
  type: {
446
- name: "String"
507
+ name: "Uuid"
447
508
  }
448
509
  }
449
510
  };
@@ -455,10 +516,32 @@ const repeatabilityFirstSent = {
455
516
  * Code generated by Microsoft (R) AutoRest Code Generator.
456
517
  * Changes may cause incorrect behavior and will be lost if the code is regenerated.
457
518
  */
458
- /**
459
- * Class representing a Email.
519
+ class LroImpl {
520
+ constructor(sendOperationFn, args, spec, requestPath = spec.path, requestMethod = spec.httpMethod) {
521
+ this.sendOperationFn = sendOperationFn;
522
+ this.args = args;
523
+ this.spec = spec;
524
+ this.requestPath = requestPath;
525
+ this.requestMethod = requestMethod;
526
+ }
527
+ async sendInitialRequest() {
528
+ return this.sendOperationFn(this.args, this.spec);
529
+ }
530
+ async sendPollRequest(path) {
531
+ const _a = this.spec, restSpec = tslib.__rest(_a, ["requestBody"]);
532
+ return this.sendOperationFn(this.args, Object.assign(Object.assign({}, restSpec), { path, httpMethod: "GET" }));
533
+ }
534
+ }
535
+
536
+ /*
537
+ * Copyright (c) Microsoft Corporation.
538
+ * Licensed under the MIT License.
539
+ *
540
+ * Code generated by Microsoft (R) AutoRest Code Generator.
541
+ * Changes may cause incorrect behavior and will be lost if the code is regenerated.
460
542
  */
461
- class Email {
543
+ /** Class containing Email operations. */
544
+ class EmailImpl {
462
545
  /**
463
546
  * Initialize a new instance of the class Email class.
464
547
  * @param client Reference to the service client
@@ -467,75 +550,114 @@ class Email {
467
550
  this.client = client;
468
551
  }
469
552
  /**
470
- * Gets the status of a message sent previously.
471
- * @param messageId System generated message id (GUID) returned from a previous call to send email
553
+ * Gets the status of the email send operation.
554
+ * @param operationId ID of the long running operation (GUID) returned from a previous call to send
555
+ * email
472
556
  * @param options The options parameters.
473
557
  */
474
- getSendStatus(messageId, options) {
475
- const operationOptions = coreHttp__namespace.operationOptionsToRequestOptionsBase(options || {});
476
- return this.client.sendOperationRequest({ messageId, options: operationOptions }, getSendStatusOperationSpec);
558
+ getSendResult(operationId, options) {
559
+ return this.client.sendOperationRequest({ operationId, options }, getSendResultOperationSpec);
477
560
  }
478
561
  /**
479
562
  * Queues an email message to be sent to one or more recipients
480
- * @param repeatabilityRequestId If specified, the client directs that the request is repeatable; that
481
- * is, that the client can make the request multiple times with the same Repeatability-Request-Id and
482
- * get back an appropriate response without the server executing the request multiple times. The value
483
- * of the Repeatability-Request-Id is an opaque string representing a client-generated, globally unique
484
- * for all time, identifier for the request. It is recommended to use version 4 (random) UUIDs.
485
- * @param repeatabilityFirstSent Must be sent by clients to specify that a request is repeatable.
486
- * Repeatability-First-Sent is used to specify the date and time at which the request was first created
487
- * in the IMF-fix date form of HTTP-date as defined in RFC7231. eg- Tue, 26 Mar 2019 16:06:51 GMT
488
- * @param emailMessage Message payload for sending an email
563
+ * @param message Message payload for sending an email
489
564
  * @param options The options parameters.
490
565
  */
491
- send(repeatabilityRequestId, repeatabilityFirstSent, emailMessage, options) {
492
- const operationOptions = coreHttp__namespace.operationOptionsToRequestOptionsBase(options || {});
493
- return this.client.sendOperationRequest({
494
- repeatabilityRequestId,
495
- repeatabilityFirstSent,
496
- emailMessage,
497
- options: operationOptions
498
- }, sendOperationSpec);
566
+ async beginSend(message, options) {
567
+ const directSendOperation = async (args, spec) => {
568
+ return this.client.sendOperationRequest(args, spec);
569
+ };
570
+ const sendOperation = async (args, spec) => {
571
+ var _a;
572
+ let currentRawResponse = undefined;
573
+ const providedCallback = (_a = args.options) === null || _a === void 0 ? void 0 : _a.onResponse;
574
+ const callback = (rawResponse, flatResponse) => {
575
+ currentRawResponse = rawResponse;
576
+ providedCallback === null || providedCallback === void 0 ? void 0 : providedCallback(rawResponse, flatResponse);
577
+ };
578
+ const updatedArgs = Object.assign(Object.assign({}, args), { options: Object.assign(Object.assign({}, args.options), { onResponse: callback }) });
579
+ const flatResponse = await directSendOperation(updatedArgs, spec);
580
+ return {
581
+ flatResponse,
582
+ rawResponse: {
583
+ statusCode: currentRawResponse.status,
584
+ body: currentRawResponse.parsedBody,
585
+ headers: currentRawResponse.headers.toJSON()
586
+ }
587
+ };
588
+ };
589
+ const lro = new LroImpl(sendOperation, { message, options }, sendOperationSpec);
590
+ const poller = new coreLro.LroEngine(lro, {
591
+ resumeFrom: options === null || options === void 0 ? void 0 : options.resumeFrom,
592
+ intervalInMs: options === null || options === void 0 ? void 0 : options.updateIntervalInMs,
593
+ lroResourceLocationConfig: "azure-async-operation"
594
+ });
595
+ await poller.poll();
596
+ return poller;
597
+ }
598
+ /**
599
+ * Queues an email message to be sent to one or more recipients
600
+ * @param message Message payload for sending an email
601
+ * @param options The options parameters.
602
+ */
603
+ async beginSendAndWait(message, options) {
604
+ const poller = await this.beginSend(message, options);
605
+ return poller.pollUntilDone();
499
606
  }
500
607
  }
501
608
  // Operation Specifications
502
- const serializer = new coreHttp__namespace.Serializer(Mappers, /* isXml */ false);
503
- const getSendStatusOperationSpec = {
504
- path: "/emails/{messageId}/status",
609
+ const serializer = coreClient__namespace.createSerializer(Mappers, /* isXml */ false);
610
+ const getSendResultOperationSpec = {
611
+ path: "/emails/operations/{operationId}",
505
612
  httpMethod: "GET",
506
613
  responses: {
507
614
  200: {
508
- bodyMapper: SendStatusResult,
509
- headersMapper: EmailGetSendStatusHeaders
615
+ bodyMapper: EmailSendResult,
616
+ headersMapper: EmailGetSendResultHeaders
510
617
  },
511
618
  default: {
512
- bodyMapper: CommunicationErrorResponse,
513
- headersMapper: EmailGetSendStatusHeaders
619
+ bodyMapper: ErrorResponse,
620
+ headersMapper: EmailGetSendResultExceptionHeaders
514
621
  }
515
622
  },
516
623
  queryParameters: [apiVersion],
517
- urlParameters: [endpoint, messageId],
624
+ urlParameters: [endpoint, operationId],
625
+ headerParameters: [accept],
518
626
  serializer
519
627
  };
520
628
  const sendOperationSpec = {
521
629
  path: "/emails:send",
522
630
  httpMethod: "POST",
523
631
  responses: {
632
+ 200: {
633
+ bodyMapper: EmailSendResult,
634
+ headersMapper: EmailSendHeaders
635
+ },
636
+ 201: {
637
+ bodyMapper: EmailSendResult,
638
+ headersMapper: EmailSendHeaders
639
+ },
524
640
  202: {
641
+ bodyMapper: EmailSendResult,
525
642
  headersMapper: EmailSendHeaders
526
643
  },
527
- default: {
528
- bodyMapper: CommunicationErrorResponse,
644
+ 204: {
645
+ bodyMapper: EmailSendResult,
529
646
  headersMapper: EmailSendHeaders
647
+ },
648
+ default: {
649
+ bodyMapper: ErrorResponse,
650
+ headersMapper: EmailSendExceptionHeaders
530
651
  }
531
652
  },
532
- requestBody: emailMessage,
653
+ requestBody: message,
533
654
  queryParameters: [apiVersion],
534
655
  urlParameters: [endpoint],
535
656
  headerParameters: [
657
+ accept,
536
658
  contentType,
537
- repeatabilityRequestId,
538
- repeatabilityFirstSent
659
+ operationId1,
660
+ clientRequestId
539
661
  ],
540
662
  mediaType: "json",
541
663
  serializer
@@ -548,15 +670,14 @@ const sendOperationSpec = {
548
670
  * Code generated by Microsoft (R) AutoRest Code Generator.
549
671
  * Changes may cause incorrect behavior and will be lost if the code is regenerated.
550
672
  */
551
- const packageName = "@azure/communication-email";
552
- const packageVersion = "1.0.0-beta.1";
553
- class EmailRestApiClientContext extends coreHttp__namespace.ServiceClient {
673
+ class EmailRestApiClient extends coreClient__namespace.ServiceClient {
554
674
  /**
555
- * Initializes a new instance of the EmailRestApiClientContext class.
675
+ * Initializes a new instance of the EmailRestApiClient class.
556
676
  * @param endpoint The communication resource, for example https://my-resource.communication.azure.com
557
677
  * @param options The parameter options
558
678
  */
559
679
  constructor(endpoint, options) {
680
+ var _a, _b;
560
681
  if (endpoint === undefined) {
561
682
  throw new Error("'endpoint' cannot be null");
562
683
  }
@@ -564,43 +685,51 @@ class EmailRestApiClientContext extends coreHttp__namespace.ServiceClient {
564
685
  if (!options) {
565
686
  options = {};
566
687
  }
567
- if (!options.userAgent) {
568
- const defaultUserAgent = coreHttp__namespace.getDefaultUserAgentValue();
569
- options.userAgent = `${packageName}/${packageVersion} ${defaultUserAgent}`;
570
- }
571
- super(undefined, options);
572
- this.requestContentType = "application/json; charset=utf-8";
573
- this.baseUri = options.endpoint || "{endpoint}";
688
+ const defaults = {
689
+ requestContentType: "application/json; charset=utf-8"
690
+ };
691
+ const packageDetails = `azsdk-js-communication-email/1.0.0-beta.2`;
692
+ const userAgentPrefix = options.userAgentOptions && options.userAgentOptions.userAgentPrefix
693
+ ? `${options.userAgentOptions.userAgentPrefix} ${packageDetails}`
694
+ : `${packageDetails}`;
695
+ const optionsWithDefaults = Object.assign(Object.assign(Object.assign({}, defaults), options), { userAgentOptions: {
696
+ userAgentPrefix
697
+ }, baseUri: (_b = (_a = options.endpoint) !== null && _a !== void 0 ? _a : options.baseUri) !== null && _b !== void 0 ? _b : "{endpoint}" });
698
+ super(optionsWithDefaults);
574
699
  // Parameter assignments
575
700
  this.endpoint = endpoint;
576
701
  // Assigning values to Constant parameters
577
- this.apiVersion = options.apiVersion || "2021-10-01-preview";
702
+ this.apiVersion = options.apiVersion || "2023-01-15-preview";
703
+ this.email = new EmailImpl(this);
704
+ this.addCustomApiVersionPolicy(options.apiVersion);
578
705
  }
579
- }
580
-
581
- /*
582
- * Copyright (c) Microsoft Corporation.
583
- * Licensed under the MIT License.
584
- *
585
- * Code generated by Microsoft (R) AutoRest Code Generator.
586
- * Changes may cause incorrect behavior and will be lost if the code is regenerated.
587
- */
588
- class EmailRestApiClient extends EmailRestApiClientContext {
589
- /**
590
- * Initializes a new instance of the EmailRestApiClient class.
591
- * @param endpoint The communication resource, for example https://my-resource.communication.azure.com
592
- * @param options The parameter options
593
- */
594
- constructor(endpoint, options) {
595
- super(endpoint, options);
596
- this.email = new Email(this);
706
+ /** A function that adds a policy that sets the api-version (or equivalent) to reflect the library version. */
707
+ addCustomApiVersionPolicy(apiVersion) {
708
+ if (!apiVersion) {
709
+ return;
710
+ }
711
+ const apiVersionPolicy = {
712
+ name: "CustomApiVersionPolicy",
713
+ async sendRequest(request, next) {
714
+ const param = request.url.split("?");
715
+ if (param.length > 1) {
716
+ const newParams = param[1].split("&").map((item) => {
717
+ if (item.indexOf("api-version") > -1) {
718
+ return "api-version=" + apiVersion;
719
+ }
720
+ else {
721
+ return item;
722
+ }
723
+ });
724
+ request.url = param[0] + "?" + newParams.join("&");
725
+ }
726
+ return next(request);
727
+ }
728
+ };
729
+ this.pipeline.addPolicy(apiVersionPolicy);
597
730
  }
598
731
  }
599
732
 
600
- // Copyright (c) Microsoft Corporation.
601
- // Licensed under the MIT license.
602
- const SDK_VERSION = "1.0.0-beta.1";
603
-
604
733
  // Copyright (c) Microsoft Corporation.
605
734
  /**
606
735
  * The \@azure/logger configuration for this package.
@@ -613,7 +742,7 @@ const logger = logger$1.createClientLogger("communication-email");
613
742
  *
614
743
  * @param options - The value being checked.
615
744
  */
616
- const isEmailClientOptions = (options) => !!options && !communicationCommon.isKeyCredential(options);
745
+ const isEmailClientOptions = (options) => !!options && !coreAuth.isTokenCredential(options) && !communicationCommon.isKeyCredential(options);
617
746
  /**
618
747
  * The Email service client.
619
748
  */
@@ -621,48 +750,46 @@ class EmailClient {
621
750
  constructor(connectionStringOrUrl, credentialOrOptions, maybeOptions = {}) {
622
751
  const { url, credential } = communicationCommon.parseClientArguments(connectionStringOrUrl, credentialOrOptions);
623
752
  const options = isEmailClientOptions(credentialOrOptions) ? credentialOrOptions : maybeOptions;
624
- const libInfo = `azsdk-js-communication-email/${SDK_VERSION}`;
625
- if (!options.userAgentOptions) {
626
- options.userAgentOptions = {};
627
- }
628
- if (options.userAgentOptions.userAgentPrefix) {
629
- options.userAgentOptions.userAgentPrefix = `${options.userAgentOptions.userAgentPrefix} ${libInfo}`;
630
- }
631
- else {
632
- options.userAgentOptions.userAgentPrefix = libInfo;
633
- }
634
753
  const internalPipelineOptions = Object.assign(Object.assign({}, options), {
635
754
  loggingOptions: {
636
755
  logger: logger.info,
637
756
  },
638
757
  });
639
758
  const authPolicy = communicationCommon.createCommunicationAuthPolicy(credential);
640
- const pipeline = coreHttp.createPipelineFromOptions(internalPipelineOptions, authPolicy);
641
- this.api = new EmailRestApiClient(url, pipeline);
759
+ this.generatedClient = new EmailRestApiClient(url, internalPipelineOptions);
760
+ this.generatedClient.pipeline.addPolicy(authPolicy);
642
761
  }
643
762
  /**
644
763
  * Queues an email message to be sent to one or more recipients
645
- * @param emailMessage - Message payload for sending an email
646
- */
647
- async send(emailMessage) {
648
- var _a;
649
- const response = await this.api.email.send(uuid.v4(), new Date().toUTCString(), emailMessage);
650
- return {
651
- messageId: (_a = response.xMsRequestId) !== null && _a !== void 0 ? _a : "",
652
- };
653
- }
654
- /**
655
- * Gets the status of a message sent previously.
656
- * @param messageId - System generated message id (GUID) returned from a previous call to send email
764
+ * @param message - Message payload for sending an email
765
+ * @param options - The options parameters.
657
766
  */
658
- async getSendStatus(messageId) {
659
- const response = await this.api.email.getSendStatus(messageId);
660
- return {
661
- messageId: response.messageId,
662
- status: response.status,
663
- };
767
+ beginSend(message, options) {
768
+ return this.generatedClient.email.beginSend(message, options);
664
769
  }
665
770
  }
666
771
 
772
+ /*
773
+ * Copyright (c) Microsoft Corporation.
774
+ * Licensed under the MIT License.
775
+ *
776
+ * Code generated by Microsoft (R) AutoRest Code Generator.
777
+ * Changes may cause incorrect behavior and will be lost if the code is regenerated.
778
+ */
779
+ /** Known values of {@link EmailSendStatus} that the service accepts. */
780
+ exports.KnownEmailSendStatus = void 0;
781
+ (function (KnownEmailSendStatus) {
782
+ /** NotStarted */
783
+ KnownEmailSendStatus["NotStarted"] = "NotStarted";
784
+ /** Running */
785
+ KnownEmailSendStatus["Running"] = "Running";
786
+ /** Succeeded */
787
+ KnownEmailSendStatus["Succeeded"] = "Succeeded";
788
+ /** Failed */
789
+ KnownEmailSendStatus["Failed"] = "Failed";
790
+ /** Canceled */
791
+ KnownEmailSendStatus["Canceled"] = "Canceled";
792
+ })(exports.KnownEmailSendStatus || (exports.KnownEmailSendStatus = {}));
793
+
667
794
  exports.EmailClient = EmailClient;
668
795
  //# sourceMappingURL=index.js.map