aws-sdk-connectcases 1.39.0 → 1.41.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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 5c2ed92728df78a07f322e2ac82dea88181d1b4d7c17d0558495c136cc22187f
4
- data.tar.gz: 45d3b13f05336dd010a4b568db3932f2b24621a48527bc316645c410fb4fbd81
3
+ metadata.gz: 6e8ee13c0822398a7190ef7a372a3d1765ce99f8837fb56bc4a680f27558207b
4
+ data.tar.gz: f99af048f04027c4947cf0ae7049d8aea301536b5a27c557ddb5a4fefb3723f8
5
5
  SHA512:
6
- metadata.gz: 30cc29da5c815952af9fd378308369cfc1f5bd5eb16a9cbf069f2e8baadb8eabbddb95dad6bcf2e099b6f10121fa81ab1427d479651c4139dc4bbf060c3a70eb
7
- data.tar.gz: b1de8a05af721b8244cd10d1f0e09a20b3d92892f6ad587eae02b5c7c2a7f23343674d916d993c91d5203d33746f549d47f7d53ed2d9c4895e81f15ebc866092
6
+ metadata.gz: ca668776c0482566e773f10bb63dc925bb4752504f1ef2b7955ec73021e214160de64ef017bd795672a6be0bff1113d8aa924551ccd130f72e26d16323cc156c
7
+ data.tar.gz: cd72d847091872e3307266cdc4a8469c4f9084218d15289ced6f83f427891173a4a41ed64da11b801d36499c4636cb241a60dc8345e017b6401a28ff46df4baa
data/CHANGELOG.md CHANGED
@@ -1,6 +1,16 @@
1
1
  Unreleased Changes
2
2
  ------------------
3
3
 
4
+ 1.41.0 (2025-04-29)
5
+ ------------------
6
+
7
+ * Feature - Introduces CustomEntity as part of the UserUnion data type. This field is used to indicate the entity who is performing the API action.
8
+
9
+ 1.40.0 (2025-04-16)
10
+ ------------------
11
+
12
+ * Feature - This feature provides capabilities to help track and meet service level agreements (SLAs) on cases programmatically. It allows configuring a new related item of type `Sla` on a case using CreateRelatedItem API and provides the ability to search for this new related item using SearchRelatedItems API.
13
+
4
14
  1.39.0 (2025-02-18)
5
15
  ------------------
6
16
 
data/VERSION CHANGED
@@ -1 +1 @@
1
- 1.39.0
1
+ 1.41.0
@@ -650,7 +650,11 @@ module Aws::ConnectCases
650
650
  #
651
651
  # The following fields are required when creating a case:
652
652
  #
653
- # <ul> <li> <p> <code>customer_id</code> - You must provide the full customer profile ARN in this format: <code>arn:aws:profile:your_AWS_Region:your_AWS_account ID:domains/your_profiles_domain_name/profiles/profile_ID</code> </p> </li> <li> <p> <code>title</code> </p> </li> </ul>
653
+ # * `customer_id` - You must provide the full customer profile ARN in
654
+ # this format: `arn:aws:profile:your_AWS_Region:your_AWS_account
655
+ # ID:domains/your_profiles_domain_name/profiles/profile_ID`
656
+ #
657
+ # * `title`
654
658
  #
655
659
  #
656
660
  #
@@ -677,7 +681,7 @@ module Aws::ConnectCases
677
681
  # and value union data.
678
682
  #
679
683
  # @option params [Types::UserUnion] :performed_by
680
- # Represents the identity of the person who performed the action.
684
+ # Represents the entity that performed the action.
681
685
  #
682
686
  # @option params [required, String] :template_id
683
687
  # A unique identifier of a template.
@@ -706,6 +710,7 @@ module Aws::ConnectCases
706
710
  # },
707
711
  # ],
708
712
  # performed_by: {
713
+ # custom_entity: "CustomEntity",
709
714
  # user_arn: "UserArn",
710
715
  # },
711
716
  # template_id: "TemplateId", # required
@@ -812,15 +817,11 @@ module Aws::ConnectCases
812
817
  # cases, fields, templates and layouts. Each Amazon Connect instance can
813
818
  # be associated with only one Cases domain.
814
819
  #
815
- # <important markdown="1"> This will not associate your connect instance to Cases domain.
820
+ # This will not associate your connect instance to Cases domain.
816
821
  # Instead, use the Amazon Connect [CreateIntegrationAssociation][1] API.
817
822
  # You need specific IAM permissions to successfully associate the Cases
818
823
  # domain. For more information, see [Onboard to Cases][2].
819
824
  #
820
- # </important>
821
- #
822
- # </important>
823
- #
824
825
  #
825
826
  #
826
827
  # [1]: https://docs.aws.amazon.com/connect/latest/APIReference/API_CreateIntegrationAssociation.html
@@ -1039,12 +1040,31 @@ module Aws::ConnectCases
1039
1040
  # file: {
1040
1041
  # file_arn: "FileArn", # required
1041
1042
  # },
1043
+ # sla: {
1044
+ # sla_input_configuration: {
1045
+ # field_id: "FieldId",
1046
+ # name: "SlaName", # required
1047
+ # target_field_values: [
1048
+ # {
1049
+ # boolean_value: false,
1050
+ # double_value: 1.0,
1051
+ # empty_value: {
1052
+ # },
1053
+ # string_value: "FieldValueUnionStringValueString",
1054
+ # user_arn_value: "String",
1055
+ # },
1056
+ # ],
1057
+ # target_sla_minutes: 1, # required
1058
+ # type: "CaseField", # required, accepts CaseField
1059
+ # },
1060
+ # },
1042
1061
  # },
1043
1062
  # domain_id: "DomainId", # required
1044
1063
  # performed_by: {
1064
+ # custom_entity: "CustomEntity",
1045
1065
  # user_arn: "UserArn",
1046
1066
  # },
1047
- # type: "Contact", # required, accepts Contact, Comment, File
1067
+ # type: "Contact", # required, accepts Contact, Comment, File, Sla
1048
1068
  # })
1049
1069
  #
1050
1070
  # @example Response structure
@@ -1191,7 +1211,16 @@ module Aws::ConnectCases
1191
1211
 
1192
1212
  # Deletes a Cases domain.
1193
1213
  #
1194
- # <note> <p>After deleting your domain you must disassociate the deleted domain from your Amazon Connect instance with another API call before being able to use Cases again with this Amazon Connect instance. See <a href="https://docs.aws.amazon.com/connect/latest/APIReference/API_DeleteIntegrationAssociation.html">DeleteIntegrationAssociation</a>.</p> </note>
1214
+ # <note markdown="1"> After deleting your domain you must disassociate the deleted domain
1215
+ # from your Amazon Connect instance with another API call before being
1216
+ # able to use Cases again with this Amazon Connect instance. See
1217
+ # [DeleteIntegrationAssociation][1].
1218
+ #
1219
+ # </note>
1220
+ #
1221
+ #
1222
+ #
1223
+ # [1]: https://docs.aws.amazon.com/connect/latest/APIReference/API_DeleteIntegrationAssociation.html
1195
1224
  #
1196
1225
  # @option params [required, String] :domain_id
1197
1226
  # The unique identifier of the Cases domain.
@@ -1281,7 +1310,14 @@ module Aws::ConnectCases
1281
1310
  # Deletes a layout from a cases template. You can delete up to 100
1282
1311
  # layouts per domain.
1283
1312
  #
1284
- # <p>After a layout is deleted:</p> <ul> <li> <p>You can still retrieve the layout by calling <code>GetLayout</code>.</p> </li> <li> <p>You cannot update a deleted layout by calling <code>UpdateLayout</code>; it throws a <code>ValidationException</code>.</p> </li> <li> <p>Deleted layouts are not included in the <code>ListLayouts</code> response.</p> </li> </ul>
1313
+ # After a layout is deleted:
1314
+ #
1315
+ # * You can still retrieve the layout by calling `GetLayout`.
1316
+ #
1317
+ # * You cannot update a deleted layout by calling `UpdateLayout`; it
1318
+ # throws a `ValidationException`.
1319
+ #
1320
+ # * Deleted layouts are not included in the `ListLayouts` response.
1285
1321
  #
1286
1322
  # @option params [required, String] :domain_id
1287
1323
  # The unique identifier of the Cases domain.
@@ -1310,7 +1346,15 @@ module Aws::ConnectCases
1310
1346
  # Deletes a cases template. You can delete up to 100 templates per
1311
1347
  # domain.
1312
1348
  #
1313
- # <p>After a cases template is deleted:</p> <ul> <li> <p>You can still retrieve the template by calling <code>GetTemplate</code>.</p> </li> <li> <p>You cannot update the template. </p> </li> <li> <p>You cannot create a case by using the deleted template.</p> </li> <li> <p>Deleted templates are not included in the <code>ListTemplates</code> response.</p> </li> </ul>
1349
+ # After a cases template is deleted:
1350
+ #
1351
+ # * You can still retrieve the template by calling `GetTemplate`.
1352
+ #
1353
+ # * You cannot update the template.
1354
+ #
1355
+ # * You cannot create a case by using the deleted template.
1356
+ #
1357
+ # * Deleted templates are not included in the `ListTemplates` response.
1314
1358
  #
1315
1359
  # @option params [required, String] :domain_id
1316
1360
  # The unique identifier of the Cases domain.
@@ -1445,9 +1489,10 @@ module Aws::ConnectCases
1445
1489
  # resp.audit_events[0].fields[0].old_value.string_value #=> String
1446
1490
  # resp.audit_events[0].fields[0].old_value.user_arn_value #=> String
1447
1491
  # resp.audit_events[0].performed_by.iam_principal_arn #=> String
1492
+ # resp.audit_events[0].performed_by.user.custom_entity #=> String
1448
1493
  # resp.audit_events[0].performed_by.user.user_arn #=> String
1449
1494
  # resp.audit_events[0].performed_time #=> Time
1450
- # resp.audit_events[0].related_item_type #=> String, one of "Contact", "Comment", "File"
1495
+ # resp.audit_events[0].related_item_type #=> String, one of "Contact", "Comment", "File", "Sla"
1451
1496
  # resp.audit_events[0].type #=> String, one of "Case.Created", "Case.Updated", "RelatedItem.Created"
1452
1497
  # resp.next_token #=> String
1453
1498
  #
@@ -2309,6 +2354,10 @@ module Aws::ConnectCases
2309
2354
  # file: {
2310
2355
  # file_arn: "FileArn",
2311
2356
  # },
2357
+ # sla: {
2358
+ # name: "SlaName",
2359
+ # status: "Active", # accepts Active, Overdue, Met, NotMet
2360
+ # },
2312
2361
  # },
2313
2362
  # ],
2314
2363
  # max_results: 1,
@@ -2326,11 +2375,23 @@ module Aws::ConnectCases
2326
2375
  # resp.related_items[0].content.contact.connected_to_system_time #=> Time
2327
2376
  # resp.related_items[0].content.contact.contact_arn #=> String
2328
2377
  # resp.related_items[0].content.file.file_arn #=> String
2378
+ # resp.related_items[0].content.sla.sla_configuration.completion_time #=> Time
2379
+ # resp.related_items[0].content.sla.sla_configuration.field_id #=> String
2380
+ # resp.related_items[0].content.sla.sla_configuration.name #=> String
2381
+ # resp.related_items[0].content.sla.sla_configuration.status #=> String, one of "Active", "Overdue", "Met", "NotMet"
2382
+ # resp.related_items[0].content.sla.sla_configuration.target_field_values #=> Array
2383
+ # resp.related_items[0].content.sla.sla_configuration.target_field_values[0].boolean_value #=> Boolean
2384
+ # resp.related_items[0].content.sla.sla_configuration.target_field_values[0].double_value #=> Float
2385
+ # resp.related_items[0].content.sla.sla_configuration.target_field_values[0].string_value #=> String
2386
+ # resp.related_items[0].content.sla.sla_configuration.target_field_values[0].user_arn_value #=> String
2387
+ # resp.related_items[0].content.sla.sla_configuration.target_time #=> Time
2388
+ # resp.related_items[0].content.sla.sla_configuration.type #=> String, one of "CaseField"
2389
+ # resp.related_items[0].performed_by.custom_entity #=> String
2329
2390
  # resp.related_items[0].performed_by.user_arn #=> String
2330
2391
  # resp.related_items[0].related_item_id #=> String
2331
2392
  # resp.related_items[0].tags #=> Hash
2332
2393
  # resp.related_items[0].tags["String"] #=> String
2333
- # resp.related_items[0].type #=> String, one of "Contact", "Comment", "File"
2394
+ # resp.related_items[0].type #=> String, one of "Contact", "Comment", "File", "Sla"
2334
2395
  #
2335
2396
  # @see http://docs.aws.amazon.com/goto/WebAPI/connectcases-2022-10-03/SearchRelatedItems AWS API Documentation
2336
2397
  #
@@ -2424,7 +2485,7 @@ module Aws::ConnectCases
2424
2485
  # and value union data, structured identical to `CreateCase`.
2425
2486
  #
2426
2487
  # @option params [Types::UserUnion] :performed_by
2427
- # Represents the identity of the person who performed the action.
2488
+ # Represents the entity that performed the action.
2428
2489
  #
2429
2490
  # @return [Struct] Returns an empty {Seahorse::Client::Response response}.
2430
2491
  #
@@ -2447,6 +2508,7 @@ module Aws::ConnectCases
2447
2508
  # },
2448
2509
  # ],
2449
2510
  # performed_by: {
2511
+ # custom_entity: "CustomEntity",
2450
2512
  # user_arn: "UserArn",
2451
2513
  # },
2452
2514
  # })
@@ -2757,7 +2819,7 @@ module Aws::ConnectCases
2757
2819
  tracer: tracer
2758
2820
  )
2759
2821
  context[:gem_name] = 'aws-sdk-connectcases'
2760
- context[:gem_version] = '1.39.0'
2822
+ context[:gem_version] = '1.41.0'
2761
2823
  Seahorse::Client::Request.new(handlers, context)
2762
2824
  end
2763
2825
 
@@ -91,6 +91,7 @@ module Aws::ConnectCases
91
91
  CreateTemplateRequest = Shapes::StructureShape.new(name: 'CreateTemplateRequest')
92
92
  CreateTemplateResponse = Shapes::StructureShape.new(name: 'CreateTemplateResponse')
93
93
  CreatedTime = Shapes::TimestampShape.new(name: 'CreatedTime', timestampFormat: "iso8601")
94
+ CustomEntity = Shapes::StringShape.new(name: 'CustomEntity')
94
95
  DeleteCaseRuleRequest = Shapes::StructureShape.new(name: 'DeleteCaseRuleRequest')
95
96
  DeleteCaseRuleResponse = Shapes::StructureShape.new(name: 'DeleteCaseRuleResponse')
96
97
  DeleteDomainRequest = Shapes::StructureShape.new(name: 'DeleteDomainRequest')
@@ -228,12 +229,24 @@ module Aws::ConnectCases
228
229
  Section = Shapes::UnionShape.new(name: 'Section')
229
230
  SectionsList = Shapes::ListShape.new(name: 'SectionsList')
230
231
  ServiceQuotaExceededException = Shapes::StructureShape.new(name: 'ServiceQuotaExceededException')
232
+ SlaCompletionTime = Shapes::TimestampShape.new(name: 'SlaCompletionTime', timestampFormat: "iso8601")
233
+ SlaConfiguration = Shapes::StructureShape.new(name: 'SlaConfiguration')
234
+ SlaContent = Shapes::StructureShape.new(name: 'SlaContent')
235
+ SlaFieldValueUnionList = Shapes::ListShape.new(name: 'SlaFieldValueUnionList')
236
+ SlaFilter = Shapes::StructureShape.new(name: 'SlaFilter')
237
+ SlaInputConfiguration = Shapes::StructureShape.new(name: 'SlaInputConfiguration')
238
+ SlaInputContent = Shapes::UnionShape.new(name: 'SlaInputContent')
239
+ SlaName = Shapes::StringShape.new(name: 'SlaName')
240
+ SlaStatus = Shapes::StringShape.new(name: 'SlaStatus')
241
+ SlaTargetTime = Shapes::TimestampShape.new(name: 'SlaTargetTime', timestampFormat: "iso8601")
242
+ SlaType = Shapes::StringShape.new(name: 'SlaType')
231
243
  Sort = Shapes::StructureShape.new(name: 'Sort')
232
244
  String = Shapes::StringShape.new(name: 'String')
233
245
  TagKey = Shapes::StringShape.new(name: 'TagKey')
234
246
  TagKeyList = Shapes::ListShape.new(name: 'TagKeyList')
235
247
  TagResourceRequest = Shapes::StructureShape.new(name: 'TagResourceRequest')
236
248
  Tags = Shapes::MapShape.new(name: 'Tags')
249
+ TargetSlaMinutes = Shapes::IntegerShape.new(name: 'TargetSlaMinutes')
237
250
  TemplateArn = Shapes::StringShape.new(name: 'TemplateArn')
238
251
  TemplateCaseRuleList = Shapes::ListShape.new(name: 'TemplateCaseRuleList')
239
252
  TemplateDescription = Shapes::StringShape.new(name: 'TemplateDescription')
@@ -854,10 +867,12 @@ module Aws::ConnectCases
854
867
  RelatedItemContent.add_member(:comment, Shapes::ShapeRef.new(shape: CommentContent, location_name: "comment"))
855
868
  RelatedItemContent.add_member(:contact, Shapes::ShapeRef.new(shape: ContactContent, location_name: "contact"))
856
869
  RelatedItemContent.add_member(:file, Shapes::ShapeRef.new(shape: FileContent, location_name: "file"))
870
+ RelatedItemContent.add_member(:sla, Shapes::ShapeRef.new(shape: SlaContent, location_name: "sla"))
857
871
  RelatedItemContent.add_member(:unknown, Shapes::ShapeRef.new(shape: nil, location_name: 'unknown'))
858
872
  RelatedItemContent.add_member_subclass(:comment, Types::RelatedItemContent::Comment)
859
873
  RelatedItemContent.add_member_subclass(:contact, Types::RelatedItemContent::Contact)
860
874
  RelatedItemContent.add_member_subclass(:file, Types::RelatedItemContent::File)
875
+ RelatedItemContent.add_member_subclass(:sla, Types::RelatedItemContent::Sla)
861
876
  RelatedItemContent.add_member_subclass(:unknown, Types::RelatedItemContent::Unknown)
862
877
  RelatedItemContent.struct_class = Types::RelatedItemContent
863
878
 
@@ -867,20 +882,24 @@ module Aws::ConnectCases
867
882
  RelatedItemInputContent.add_member(:comment, Shapes::ShapeRef.new(shape: CommentContent, location_name: "comment"))
868
883
  RelatedItemInputContent.add_member(:contact, Shapes::ShapeRef.new(shape: Contact, location_name: "contact"))
869
884
  RelatedItemInputContent.add_member(:file, Shapes::ShapeRef.new(shape: FileContent, location_name: "file"))
885
+ RelatedItemInputContent.add_member(:sla, Shapes::ShapeRef.new(shape: SlaInputContent, location_name: "sla"))
870
886
  RelatedItemInputContent.add_member(:unknown, Shapes::ShapeRef.new(shape: nil, location_name: 'unknown'))
871
887
  RelatedItemInputContent.add_member_subclass(:comment, Types::RelatedItemInputContent::Comment)
872
888
  RelatedItemInputContent.add_member_subclass(:contact, Types::RelatedItemInputContent::Contact)
873
889
  RelatedItemInputContent.add_member_subclass(:file, Types::RelatedItemInputContent::File)
890
+ RelatedItemInputContent.add_member_subclass(:sla, Types::RelatedItemInputContent::Sla)
874
891
  RelatedItemInputContent.add_member_subclass(:unknown, Types::RelatedItemInputContent::Unknown)
875
892
  RelatedItemInputContent.struct_class = Types::RelatedItemInputContent
876
893
 
877
894
  RelatedItemTypeFilter.add_member(:comment, Shapes::ShapeRef.new(shape: CommentFilter, location_name: "comment"))
878
895
  RelatedItemTypeFilter.add_member(:contact, Shapes::ShapeRef.new(shape: ContactFilter, location_name: "contact"))
879
896
  RelatedItemTypeFilter.add_member(:file, Shapes::ShapeRef.new(shape: FileFilter, location_name: "file"))
897
+ RelatedItemTypeFilter.add_member(:sla, Shapes::ShapeRef.new(shape: SlaFilter, location_name: "sla"))
880
898
  RelatedItemTypeFilter.add_member(:unknown, Shapes::ShapeRef.new(shape: nil, location_name: 'unknown'))
881
899
  RelatedItemTypeFilter.add_member_subclass(:comment, Types::RelatedItemTypeFilter::Comment)
882
900
  RelatedItemTypeFilter.add_member_subclass(:contact, Types::RelatedItemTypeFilter::Contact)
883
901
  RelatedItemTypeFilter.add_member_subclass(:file, Types::RelatedItemTypeFilter::File)
902
+ RelatedItemTypeFilter.add_member_subclass(:sla, Types::RelatedItemTypeFilter::Sla)
884
903
  RelatedItemTypeFilter.add_member_subclass(:unknown, Types::RelatedItemTypeFilter::Unknown)
885
904
  RelatedItemTypeFilter.struct_class = Types::RelatedItemTypeFilter
886
905
 
@@ -959,6 +978,37 @@ module Aws::ConnectCases
959
978
  ServiceQuotaExceededException.add_member(:message, Shapes::ShapeRef.new(shape: String, required: true, location_name: "message"))
960
979
  ServiceQuotaExceededException.struct_class = Types::ServiceQuotaExceededException
961
980
 
981
+ SlaConfiguration.add_member(:completion_time, Shapes::ShapeRef.new(shape: SlaCompletionTime, location_name: "completionTime"))
982
+ SlaConfiguration.add_member(:field_id, Shapes::ShapeRef.new(shape: FieldId, location_name: "fieldId"))
983
+ SlaConfiguration.add_member(:name, Shapes::ShapeRef.new(shape: SlaName, required: true, location_name: "name"))
984
+ SlaConfiguration.add_member(:status, Shapes::ShapeRef.new(shape: SlaStatus, required: true, location_name: "status"))
985
+ SlaConfiguration.add_member(:target_field_values, Shapes::ShapeRef.new(shape: SlaFieldValueUnionList, location_name: "targetFieldValues"))
986
+ SlaConfiguration.add_member(:target_time, Shapes::ShapeRef.new(shape: SlaTargetTime, required: true, location_name: "targetTime"))
987
+ SlaConfiguration.add_member(:type, Shapes::ShapeRef.new(shape: SlaType, required: true, location_name: "type"))
988
+ SlaConfiguration.struct_class = Types::SlaConfiguration
989
+
990
+ SlaContent.add_member(:sla_configuration, Shapes::ShapeRef.new(shape: SlaConfiguration, required: true, location_name: "slaConfiguration"))
991
+ SlaContent.struct_class = Types::SlaContent
992
+
993
+ SlaFieldValueUnionList.member = Shapes::ShapeRef.new(shape: FieldValueUnion)
994
+
995
+ SlaFilter.add_member(:name, Shapes::ShapeRef.new(shape: SlaName, location_name: "name"))
996
+ SlaFilter.add_member(:status, Shapes::ShapeRef.new(shape: SlaStatus, location_name: "status"))
997
+ SlaFilter.struct_class = Types::SlaFilter
998
+
999
+ SlaInputConfiguration.add_member(:field_id, Shapes::ShapeRef.new(shape: FieldId, location_name: "fieldId"))
1000
+ SlaInputConfiguration.add_member(:name, Shapes::ShapeRef.new(shape: SlaName, required: true, location_name: "name"))
1001
+ SlaInputConfiguration.add_member(:target_field_values, Shapes::ShapeRef.new(shape: SlaFieldValueUnionList, location_name: "targetFieldValues"))
1002
+ SlaInputConfiguration.add_member(:target_sla_minutes, Shapes::ShapeRef.new(shape: TargetSlaMinutes, required: true, location_name: "targetSlaMinutes"))
1003
+ SlaInputConfiguration.add_member(:type, Shapes::ShapeRef.new(shape: SlaType, required: true, location_name: "type"))
1004
+ SlaInputConfiguration.struct_class = Types::SlaInputConfiguration
1005
+
1006
+ SlaInputContent.add_member(:sla_input_configuration, Shapes::ShapeRef.new(shape: SlaInputConfiguration, location_name: "slaInputConfiguration"))
1007
+ SlaInputContent.add_member(:unknown, Shapes::ShapeRef.new(shape: nil, location_name: 'unknown'))
1008
+ SlaInputContent.add_member_subclass(:sla_input_configuration, Types::SlaInputContent::SlaInputConfiguration)
1009
+ SlaInputContent.add_member_subclass(:unknown, Types::SlaInputContent::Unknown)
1010
+ SlaInputContent.struct_class = Types::SlaInputContent
1011
+
962
1012
  Sort.add_member(:field_id, Shapes::ShapeRef.new(shape: FieldId, required: true, location_name: "fieldId"))
963
1013
  Sort.add_member(:sort_order, Shapes::ShapeRef.new(shape: Order, required: true, location_name: "sortOrder"))
964
1014
  Sort.struct_class = Types::Sort
@@ -1040,8 +1090,10 @@ module Aws::ConnectCases
1040
1090
 
1041
1091
  UpdateTemplateResponse.struct_class = Types::UpdateTemplateResponse
1042
1092
 
1093
+ UserUnion.add_member(:custom_entity, Shapes::ShapeRef.new(shape: CustomEntity, location_name: "customEntity"))
1043
1094
  UserUnion.add_member(:user_arn, Shapes::ShapeRef.new(shape: UserArn, location_name: "userArn"))
1044
1095
  UserUnion.add_member(:unknown, Shapes::ShapeRef.new(shape: nil, location_name: 'unknown'))
1096
+ UserUnion.add_member_subclass(:custom_entity, Types::UserUnion::CustomEntity)
1045
1097
  UserUnion.add_member_subclass(:user_arn, Types::UserUnion::UserArn)
1046
1098
  UserUnion.add_member_subclass(:unknown, Types::UserUnion::Unknown)
1047
1099
  UserUnion.struct_class = Types::UserUnion
@@ -1059,9 +1111,11 @@ module Aws::ConnectCases
1059
1111
 
1060
1112
  api.metadata = {
1061
1113
  "apiVersion" => "2022-10-03",
1114
+ "auth" => ["aws.auth#sigv4"],
1062
1115
  "endpointPrefix" => "cases",
1063
1116
  "jsonVersion" => "1.1",
1064
1117
  "protocol" => "rest-json",
1118
+ "protocols" => ["rest-json"],
1065
1119
  "serviceAbbreviation" => "ConnectCases",
1066
1120
  "serviceFullName" => "Amazon Connect Cases",
1067
1121
  "serviceId" => "ConnectCases",
@@ -1527,6 +1581,7 @@ module Aws::ConnectCases
1527
1581
  o.errors << Shapes::ShapeRef.new(shape: ValidationException)
1528
1582
  o.errors << Shapes::ShapeRef.new(shape: ThrottlingException)
1529
1583
  o.errors << Shapes::ShapeRef.new(shape: AccessDeniedException)
1584
+ o.errors << Shapes::ShapeRef.new(shape: ConflictException)
1530
1585
  end)
1531
1586
 
1532
1587
  api.add_operation(:search_cases, Seahorse::Model::Operation.new.tap do |o|
@@ -146,7 +146,7 @@ module Aws::ConnectCases
146
146
  # @return [String]
147
147
  #
148
148
  # @!attribute [rw] user
149
- # Represents the identity of the person who performed the action.
149
+ # Represents the entity that performed the action.
150
150
  # @return [Types::UserUnion]
151
151
  #
152
152
  # @see http://docs.aws.amazon.com/goto/WebAPI/connectcases-2022-10-03/AuditEventPerformedBy AWS API Documentation
@@ -661,7 +661,7 @@ module Aws::ConnectCases
661
661
  # @return [Array<Types::FieldValue>]
662
662
  #
663
663
  # @!attribute [rw] performed_by
664
- # Represents the identity of the person who performed the action.
664
+ # Represents the entity that performed the action.
665
665
  # @return [Types::UserUnion]
666
666
  #
667
667
  # @!attribute [rw] template_id
@@ -2485,12 +2485,17 @@ module Aws::ConnectCases
2485
2485
  # Represents the content of a File to be returned to agents.
2486
2486
  # @return [Types::FileContent]
2487
2487
  #
2488
+ # @!attribute [rw] sla
2489
+ # Represents the content of an SLA to be returned to agents.
2490
+ # @return [Types::SlaContent]
2491
+ #
2488
2492
  # @see http://docs.aws.amazon.com/goto/WebAPI/connectcases-2022-10-03/RelatedItemContent AWS API Documentation
2489
2493
  #
2490
2494
  class RelatedItemContent < Struct.new(
2491
2495
  :comment,
2492
2496
  :contact,
2493
2497
  :file,
2498
+ :sla,
2494
2499
  :unknown)
2495
2500
  SENSITIVE = []
2496
2501
  include Aws::Structure
@@ -2499,6 +2504,7 @@ module Aws::ConnectCases
2499
2504
  class Comment < RelatedItemContent; end
2500
2505
  class Contact < RelatedItemContent; end
2501
2506
  class File < RelatedItemContent; end
2507
+ class Sla < RelatedItemContent; end
2502
2508
  class Unknown < RelatedItemContent; end
2503
2509
  end
2504
2510
 
@@ -2535,12 +2541,17 @@ module Aws::ConnectCases
2535
2541
  # A file of related items.
2536
2542
  # @return [Types::FileContent]
2537
2543
  #
2544
+ # @!attribute [rw] sla
2545
+ # Represents the content of an SLA to be created.
2546
+ # @return [Types::SlaInputContent]
2547
+ #
2538
2548
  # @see http://docs.aws.amazon.com/goto/WebAPI/connectcases-2022-10-03/RelatedItemInputContent AWS API Documentation
2539
2549
  #
2540
2550
  class RelatedItemInputContent < Struct.new(
2541
2551
  :comment,
2542
2552
  :contact,
2543
2553
  :file,
2554
+ :sla,
2544
2555
  :unknown)
2545
2556
  SENSITIVE = []
2546
2557
  include Aws::Structure
@@ -2549,6 +2560,7 @@ module Aws::ConnectCases
2549
2560
  class Comment < RelatedItemInputContent; end
2550
2561
  class Contact < RelatedItemInputContent; end
2551
2562
  class File < RelatedItemInputContent; end
2563
+ class Sla < RelatedItemInputContent; end
2552
2564
  class Unknown < RelatedItemInputContent; end
2553
2565
  end
2554
2566
 
@@ -2569,12 +2581,17 @@ module Aws::ConnectCases
2569
2581
  # A filter for related items of this type of `File`.
2570
2582
  # @return [Types::FileFilter]
2571
2583
  #
2584
+ # @!attribute [rw] sla
2585
+ # Filter for related items of type `SLA`.
2586
+ # @return [Types::SlaFilter]
2587
+ #
2572
2588
  # @see http://docs.aws.amazon.com/goto/WebAPI/connectcases-2022-10-03/RelatedItemTypeFilter AWS API Documentation
2573
2589
  #
2574
2590
  class RelatedItemTypeFilter < Struct.new(
2575
2591
  :comment,
2576
2592
  :contact,
2577
2593
  :file,
2594
+ :sla,
2578
2595
  :unknown)
2579
2596
  SENSITIVE = []
2580
2597
  include Aws::Structure
@@ -2583,6 +2600,7 @@ module Aws::ConnectCases
2583
2600
  class Comment < RelatedItemTypeFilter; end
2584
2601
  class Contact < RelatedItemTypeFilter; end
2585
2602
  class File < RelatedItemTypeFilter; end
2603
+ class Sla < RelatedItemTypeFilter; end
2586
2604
  class Unknown < RelatedItemTypeFilter; end
2587
2605
  end
2588
2606
 
@@ -2885,6 +2903,141 @@ module Aws::ConnectCases
2885
2903
  include Aws::Structure
2886
2904
  end
2887
2905
 
2906
+ # Represents an SLA configuration.
2907
+ #
2908
+ # @!attribute [rw] completion_time
2909
+ # Time at which an SLA was completed.
2910
+ # @return [Time]
2911
+ #
2912
+ # @!attribute [rw] field_id
2913
+ # Unique identifier of a field.
2914
+ # @return [String]
2915
+ #
2916
+ # @!attribute [rw] name
2917
+ # Name of an SLA.
2918
+ # @return [String]
2919
+ #
2920
+ # @!attribute [rw] status
2921
+ # Status of an SLA.
2922
+ # @return [String]
2923
+ #
2924
+ # @!attribute [rw] target_field_values
2925
+ # Represents a list of target field values for the fieldId specified
2926
+ # in SlaConfiguration.
2927
+ # @return [Array<Types::FieldValueUnion>]
2928
+ #
2929
+ # @!attribute [rw] target_time
2930
+ # Target time by which an SLA should be completed.
2931
+ # @return [Time]
2932
+ #
2933
+ # @!attribute [rw] type
2934
+ # Type of SLA.
2935
+ # @return [String]
2936
+ #
2937
+ # @see http://docs.aws.amazon.com/goto/WebAPI/connectcases-2022-10-03/SlaConfiguration AWS API Documentation
2938
+ #
2939
+ class SlaConfiguration < Struct.new(
2940
+ :completion_time,
2941
+ :field_id,
2942
+ :name,
2943
+ :status,
2944
+ :target_field_values,
2945
+ :target_time,
2946
+ :type)
2947
+ SENSITIVE = [:name]
2948
+ include Aws::Structure
2949
+ end
2950
+
2951
+ # Represents the content of an SLA to be returned to agents.
2952
+ #
2953
+ # @!attribute [rw] sla_configuration
2954
+ # Represents an SLA configuration.
2955
+ # @return [Types::SlaConfiguration]
2956
+ #
2957
+ # @see http://docs.aws.amazon.com/goto/WebAPI/connectcases-2022-10-03/SlaContent AWS API Documentation
2958
+ #
2959
+ class SlaContent < Struct.new(
2960
+ :sla_configuration)
2961
+ SENSITIVE = []
2962
+ include Aws::Structure
2963
+ end
2964
+
2965
+ # A filter for related items of type `SLA`.
2966
+ #
2967
+ # @!attribute [rw] name
2968
+ # Name of an SLA.
2969
+ # @return [String]
2970
+ #
2971
+ # @!attribute [rw] status
2972
+ # Status of an SLA.
2973
+ # @return [String]
2974
+ #
2975
+ # @see http://docs.aws.amazon.com/goto/WebAPI/connectcases-2022-10-03/SlaFilter AWS API Documentation
2976
+ #
2977
+ class SlaFilter < Struct.new(
2978
+ :name,
2979
+ :status)
2980
+ SENSITIVE = [:name]
2981
+ include Aws::Structure
2982
+ end
2983
+
2984
+ # Represents the input configuration of an SLA being created.
2985
+ #
2986
+ # @!attribute [rw] field_id
2987
+ # Unique identifier of a field.
2988
+ # @return [String]
2989
+ #
2990
+ # @!attribute [rw] name
2991
+ # Name of an SLA.
2992
+ # @return [String]
2993
+ #
2994
+ # @!attribute [rw] target_field_values
2995
+ # Represents a list of target field values for the fieldId specified
2996
+ # in SlaInputConfiguration. The SLA is considered met if any one of
2997
+ # these target field values matches the actual field value.
2998
+ # @return [Array<Types::FieldValueUnion>]
2999
+ #
3000
+ # @!attribute [rw] target_sla_minutes
3001
+ # Target duration in minutes within which an SLA should be completed.
3002
+ # @return [Integer]
3003
+ #
3004
+ # @!attribute [rw] type
3005
+ # Type of SLA.
3006
+ # @return [String]
3007
+ #
3008
+ # @see http://docs.aws.amazon.com/goto/WebAPI/connectcases-2022-10-03/SlaInputConfiguration AWS API Documentation
3009
+ #
3010
+ class SlaInputConfiguration < Struct.new(
3011
+ :field_id,
3012
+ :name,
3013
+ :target_field_values,
3014
+ :target_sla_minutes,
3015
+ :type)
3016
+ SENSITIVE = [:name]
3017
+ include Aws::Structure
3018
+ end
3019
+
3020
+ # Represents the content of an SLA.
3021
+ #
3022
+ # @note SlaInputContent is a union - when making an API calls you must set exactly one of the members.
3023
+ #
3024
+ # @!attribute [rw] sla_input_configuration
3025
+ # Represents an input SLA configuration.
3026
+ # @return [Types::SlaInputConfiguration]
3027
+ #
3028
+ # @see http://docs.aws.amazon.com/goto/WebAPI/connectcases-2022-10-03/SlaInputContent AWS API Documentation
3029
+ #
3030
+ class SlaInputContent < Struct.new(
3031
+ :sla_input_configuration,
3032
+ :unknown)
3033
+ SENSITIVE = []
3034
+ include Aws::Structure
3035
+ include Aws::Structure::Union
3036
+
3037
+ class SlaInputConfiguration < SlaInputContent; end
3038
+ class Unknown < SlaInputContent; end
3039
+ end
3040
+
2888
3041
  # A structured set of sort terms.
2889
3042
  #
2890
3043
  # @!attribute [rw] field_id
@@ -3023,7 +3176,7 @@ module Aws::ConnectCases
3023
3176
  # @return [Array<Types::FieldValue>]
3024
3177
  #
3025
3178
  # @!attribute [rw] performed_by
3026
- # Represents the identity of the person who performed the action.
3179
+ # Represents the entity that performed the action.
3027
3180
  # @return [Types::UserUnion]
3028
3181
  #
3029
3182
  # @see http://docs.aws.amazon.com/goto/WebAPI/connectcases-2022-10-03/UpdateCaseRequest AWS API Documentation
@@ -3197,12 +3350,16 @@ module Aws::ConnectCases
3197
3350
  #
3198
3351
  class UpdateTemplateResponse < Aws::EmptyStructure; end
3199
3352
 
3200
- # Represents the identity of the person who performed the action.
3353
+ # Represents the entity that performed the action.
3201
3354
  #
3202
3355
  # @note UserUnion is a union - when making an API calls you must set exactly one of the members.
3203
3356
  #
3204
3357
  # @note UserUnion is a union - when returned from an API call exactly one value will be set and the returned type will be a subclass of UserUnion corresponding to the set member.
3205
3358
  #
3359
+ # @!attribute [rw] custom_entity
3360
+ # Any provided entity.
3361
+ # @return [String]
3362
+ #
3206
3363
  # @!attribute [rw] user_arn
3207
3364
  # Represents the Amazon Connect ARN of the user.
3208
3365
  # @return [String]
@@ -3210,12 +3367,14 @@ module Aws::ConnectCases
3210
3367
  # @see http://docs.aws.amazon.com/goto/WebAPI/connectcases-2022-10-03/UserUnion AWS API Documentation
3211
3368
  #
3212
3369
  class UserUnion < Struct.new(
3370
+ :custom_entity,
3213
3371
  :user_arn,
3214
3372
  :unknown)
3215
- SENSITIVE = []
3373
+ SENSITIVE = [:custom_entity]
3216
3374
  include Aws::Structure
3217
3375
  include Aws::Structure::Union
3218
3376
 
3377
+ class CustomEntity < UserUnion; end
3219
3378
  class UserArn < UserUnion; end
3220
3379
  class Unknown < UserUnion; end
3221
3380
  end
@@ -54,7 +54,7 @@ module Aws::ConnectCases
54
54
  autoload :EndpointProvider, 'aws-sdk-connectcases/endpoint_provider'
55
55
  autoload :Endpoints, 'aws-sdk-connectcases/endpoints'
56
56
 
57
- GEM_VERSION = '1.39.0'
57
+ GEM_VERSION = '1.41.0'
58
58
 
59
59
  end
60
60
 
data/sig/client.rbs CHANGED
@@ -150,6 +150,7 @@ module Aws
150
150
  },
151
151
  ],
152
152
  ?performed_by: {
153
+ custom_entity: ::String?,
153
154
  user_arn: ::String?
154
155
  },
155
156
  template_id: ::String
@@ -292,13 +293,32 @@ module Aws
292
293
  }?,
293
294
  file: {
294
295
  file_arn: ::String
296
+ }?,
297
+ sla: {
298
+ sla_input_configuration: {
299
+ field_id: ::String?,
300
+ name: ::String,
301
+ target_field_values: Array[
302
+ {
303
+ boolean_value: bool?,
304
+ double_value: ::Float?,
305
+ empty_value: {
306
+ }?,
307
+ string_value: ::String?,
308
+ user_arn_value: ::String?
309
+ },
310
+ ]?,
311
+ target_sla_minutes: ::Integer,
312
+ type: ("CaseField")
313
+ }?
295
314
  }?
296
315
  },
297
316
  domain_id: ::String,
298
317
  ?performed_by: {
318
+ custom_entity: ::String?,
299
319
  user_arn: ::String?
300
320
  },
301
- type: ("Contact" | "Comment" | "File")
321
+ type: ("Contact" | "Comment" | "File" | "Sla")
302
322
  ) -> _CreateRelatedItemResponseSuccess
303
323
  | (Hash[Symbol, untyped] params, ?Hash[Symbol, untyped] options) -> _CreateRelatedItemResponseSuccess
304
324
 
@@ -727,6 +747,10 @@ module Aws
727
747
  }?,
728
748
  file: {
729
749
  file_arn: ::String?
750
+ }?,
751
+ sla: {
752
+ name: ::String?,
753
+ status: ("Active" | "Overdue" | "Met" | "NotMet")?
730
754
  }?
731
755
  },
732
756
  ],
@@ -770,6 +794,7 @@ module Aws
770
794
  },
771
795
  ],
772
796
  ?performed_by: {
797
+ custom_entity: ::String?,
773
798
  user_arn: ::String?
774
799
  }
775
800
  ) -> _UpdateCaseResponseSuccess
data/sig/types.rbs CHANGED
@@ -18,7 +18,7 @@ module Aws::ConnectCases
18
18
  attr_accessor fields: ::Array[Types::AuditEventField]
19
19
  attr_accessor performed_by: Types::AuditEventPerformedBy
20
20
  attr_accessor performed_time: ::Time
21
- attr_accessor related_item_type: ("Contact" | "Comment" | "File")
21
+ attr_accessor related_item_type: ("Contact" | "Comment" | "File" | "Sla")
22
22
  attr_accessor type: ("Case.Created" | "Case.Updated" | "RelatedItem.Created")
23
23
  SENSITIVE: []
24
24
  end
@@ -290,7 +290,7 @@ module Aws::ConnectCases
290
290
  attr_accessor content: Types::RelatedItemInputContent
291
291
  attr_accessor domain_id: ::String
292
292
  attr_accessor performed_by: Types::UserUnion
293
- attr_accessor type: ("Contact" | "Comment" | "File")
293
+ attr_accessor type: ("Contact" | "Comment" | "File" | "Sla")
294
294
  SENSITIVE: []
295
295
  end
296
296
 
@@ -801,6 +801,7 @@ module Aws::ConnectCases
801
801
  attr_accessor comment: Types::CommentContent
802
802
  attr_accessor contact: Types::ContactContent
803
803
  attr_accessor file: Types::FileContent
804
+ attr_accessor sla: Types::SlaContent
804
805
  attr_accessor unknown: untyped
805
806
  SENSITIVE: []
806
807
 
@@ -810,6 +811,8 @@ module Aws::ConnectCases
810
811
  end
811
812
  class File < RelatedItemContent
812
813
  end
814
+ class Sla < RelatedItemContent
815
+ end
813
816
  class Unknown < RelatedItemContent
814
817
  end
815
818
  end
@@ -823,6 +826,7 @@ module Aws::ConnectCases
823
826
  attr_accessor comment: Types::CommentContent
824
827
  attr_accessor contact: Types::Contact
825
828
  attr_accessor file: Types::FileContent
829
+ attr_accessor sla: Types::SlaInputContent
826
830
  attr_accessor unknown: untyped
827
831
  SENSITIVE: []
828
832
 
@@ -832,6 +836,8 @@ module Aws::ConnectCases
832
836
  end
833
837
  class File < RelatedItemInputContent
834
838
  end
839
+ class Sla < RelatedItemInputContent
840
+ end
835
841
  class Unknown < RelatedItemInputContent
836
842
  end
837
843
  end
@@ -840,6 +846,7 @@ module Aws::ConnectCases
840
846
  attr_accessor comment: Types::CommentFilter
841
847
  attr_accessor contact: Types::ContactFilter
842
848
  attr_accessor file: Types::FileFilter
849
+ attr_accessor sla: Types::SlaFilter
843
850
  attr_accessor unknown: untyped
844
851
  SENSITIVE: []
845
852
 
@@ -849,6 +856,8 @@ module Aws::ConnectCases
849
856
  end
850
857
  class File < RelatedItemTypeFilter
851
858
  end
859
+ class Sla < RelatedItemTypeFilter
860
+ end
852
861
  class Unknown < RelatedItemTypeFilter
853
862
  end
854
863
  end
@@ -917,7 +926,7 @@ module Aws::ConnectCases
917
926
  attr_accessor performed_by: Types::UserUnion
918
927
  attr_accessor related_item_id: ::String
919
928
  attr_accessor tags: ::Hash[::String, ::String]
920
- attr_accessor type: ("Contact" | "Comment" | "File")
929
+ attr_accessor type: ("Contact" | "Comment" | "File" | "Sla")
921
930
  SENSITIVE: []
922
931
  end
923
932
 
@@ -937,6 +946,48 @@ module Aws::ConnectCases
937
946
  SENSITIVE: []
938
947
  end
939
948
 
949
+ class SlaConfiguration
950
+ attr_accessor completion_time: ::Time
951
+ attr_accessor field_id: ::String
952
+ attr_accessor name: ::String
953
+ attr_accessor status: ("Active" | "Overdue" | "Met" | "NotMet")
954
+ attr_accessor target_field_values: ::Array[Types::FieldValueUnion]
955
+ attr_accessor target_time: ::Time
956
+ attr_accessor type: ("CaseField")
957
+ SENSITIVE: [:name]
958
+ end
959
+
960
+ class SlaContent
961
+ attr_accessor sla_configuration: Types::SlaConfiguration
962
+ SENSITIVE: []
963
+ end
964
+
965
+ class SlaFilter
966
+ attr_accessor name: ::String
967
+ attr_accessor status: ("Active" | "Overdue" | "Met" | "NotMet")
968
+ SENSITIVE: [:name]
969
+ end
970
+
971
+ class SlaInputConfiguration
972
+ attr_accessor field_id: ::String
973
+ attr_accessor name: ::String
974
+ attr_accessor target_field_values: ::Array[Types::FieldValueUnion]
975
+ attr_accessor target_sla_minutes: ::Integer
976
+ attr_accessor type: ("CaseField")
977
+ SENSITIVE: [:name]
978
+ end
979
+
980
+ class SlaInputContent
981
+ attr_accessor sla_input_configuration: Types::SlaInputConfiguration
982
+ attr_accessor unknown: untyped
983
+ SENSITIVE: []
984
+
985
+ class SlaInputConfiguration < SlaInputContent
986
+ end
987
+ class Unknown < SlaInputContent
988
+ end
989
+ end
990
+
940
991
  class Sort
941
992
  attr_accessor field_id: ::String
942
993
  attr_accessor sort_order: ("Asc" | "Desc")
@@ -1035,10 +1086,13 @@ module Aws::ConnectCases
1035
1086
  end
1036
1087
 
1037
1088
  class UserUnion
1089
+ attr_accessor custom_entity: ::String
1038
1090
  attr_accessor user_arn: ::String
1039
1091
  attr_accessor unknown: untyped
1040
- SENSITIVE: []
1092
+ SENSITIVE: [:custom_entity]
1041
1093
 
1094
+ class CustomEntity < UserUnion
1095
+ end
1042
1096
  class UserArn < UserUnion
1043
1097
  end
1044
1098
  class Unknown < UserUnion
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: aws-sdk-connectcases
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.39.0
4
+ version: 1.41.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Amazon Web Services
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2025-02-18 00:00:00.000000000 Z
11
+ date: 2025-04-29 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: aws-sdk-core
@@ -36,14 +36,14 @@ dependencies:
36
36
  requirements:
37
37
  - - "~>"
38
38
  - !ruby/object:Gem::Version
39
- version: '1.1'
39
+ version: '1.5'
40
40
  type: :runtime
41
41
  prerelease: false
42
42
  version_requirements: !ruby/object:Gem::Requirement
43
43
  requirements:
44
44
  - - "~>"
45
45
  - !ruby/object:Gem::Version
46
- version: '1.1'
46
+ version: '1.5'
47
47
  description: Official AWS Ruby gem for Amazon Connect Cases (ConnectCases). This gem
48
48
  is part of the AWS SDK for Ruby.
49
49
  email: