phraseapp-ruby 1.0.10 → 1.0.11

Sign up to get free protection for your applications and to get access to all the features.
Files changed (4) hide show
  1. checksums.yaml +4 -4
  2. data/lib/phraseapp-ruby.rb +119 -119
  3. data/lib/version.rb +1 -1
  4. metadata +2 -2
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 0dfa1f550de287309ddd921b363913e49275ce78
4
- data.tar.gz: 18af36c3f0a9fec2c9bb1c2c50d14cc499c23711
3
+ metadata.gz: 54f919fa8a15b87882f8dfb6863700ff344ff7f0
4
+ data.tar.gz: 75b65bc820cca4f5597dca66bd86c8284c877fb9
5
5
  SHA512:
6
- metadata.gz: 3e51d64d87a3472282cbbf9912383f90f4f836a15e99090b8e90e2d664a204d87652e6f1ab4b263ad23f2b4f051304aa4e8a05be766bc07ec574f7d2113a86a6
7
- data.tar.gz: 806a524411734994f6ec27bea6220bac845b665f7d82b5fc965cf2129a8920354504fb227afa64d7d65e7e9b8d70c46f22ab7070d41fafa741207d8ae903ed8f
6
+ metadata.gz: 059a7f0652709c87e48d36ebc951f4f59d6a92df6921f2ef5cc44b86d8a5a4e9dc5dd10acbb05e36d1db302caa6890652b0fab53aaa7ed7d41239a6145d8b20e
7
+ data.tar.gz: 4573d41b19d656b038475b7e4f579e9f71b5b9b4a142fb622832cf9c1c261b7b67febdbd8226059131b1440b135bf37f5ee8a1960801f51d3b0e45547fa3679e
@@ -296,11 +296,11 @@ module RequestParams
296
296
  # AuthorizationParams
297
297
  # == Parameters:
298
298
  # expires_at::
299
- # expires_at
299
+ # Expiration date for the authorization token. Null means no expiration date (default).
300
300
  # note::
301
- # note
301
+ # A note to help you remember what the access is used for.
302
302
  # scopes::
303
- # scopes
303
+ # A list of scopes that the access can be used for.
304
304
  class AuthorizationParams < ::OpenStruct
305
305
  def expires_at=(val)
306
306
  self.expires_at = Time.parse(val)
@@ -327,7 +327,7 @@ module RequestParams
327
327
  # CommentParams
328
328
  # == Parameters:
329
329
  # message::
330
- # message
330
+ # Comment message
331
331
  class CommentParams < ::OpenStruct
332
332
  def message=(val)
333
333
  self.message = val
@@ -346,7 +346,7 @@ module RequestParams
346
346
  # ExcludeRuleParams
347
347
  # == Parameters:
348
348
  # name::
349
- # name
349
+ # Blacklisted key name
350
350
  class ExcludeRuleParams < ::OpenStruct
351
351
  def name=(val)
352
352
  self.name = val
@@ -365,33 +365,33 @@ module RequestParams
365
365
  # TranslationKeyParams
366
366
  # == Parameters:
367
367
  # data_type::
368
- # data_type
368
+ # Type of the key. Can be one of the following: string, number, boolean, number, array.
369
369
  # description::
370
- # description
370
+ # Key description (usually includes contextual information for translators)
371
371
  # localized_format_key::
372
- # localized_format_key
372
+ # NSStringLocalizedFormatKey attribute. Used in .stringsdict format.
373
373
  # localized_format_string::
374
- # localized_format_string
374
+ # NSStringLocalizedFormatKey attribute. Used in .stringsdict format.
375
375
  # max_characters_allowed::
376
- # max_characters_allowed
376
+ # Max. number of characters translations for this key can have.
377
377
  # name::
378
- # name
378
+ # Key name
379
379
  # name_plural::
380
- # name_plural
380
+ # Plural name for the key (used in some file formats, e.g. Gettext)
381
381
  # original_file::
382
- # original_file
382
+ # Original file attribute. Used in some formats, e.g. XLIFF.
383
383
  # plural::
384
- # plural
384
+ # Indicates whether key supports pluralization
385
385
  # remove_screenshot::
386
- # remove_screenshot
386
+ # Indicates whether the screenshot will be deleted.
387
387
  # screenshot::
388
- # screenshot
388
+ # Screenshot/image for the key.
389
389
  # tags::
390
- # tags
390
+ # List of tags (identified by their name) to be associated with the key.
391
391
  # unformatted::
392
- # unformatted
392
+ # Indicates whether the key should be exported as "unformatted". Supported by Android XML and other formats.
393
393
  # xml_space_preserve::
394
- # xml_space_preserve
394
+ # Indicates whether the key should be exported with "xml:space=preserve". Supported by several XML-based formats.
395
395
  class TranslationKeyParams < ::OpenStruct
396
396
  def data_type=(val)
397
397
  self.data_type = val
@@ -486,17 +486,17 @@ module RequestParams
486
486
  # LocaleParams
487
487
  # == Parameters:
488
488
  # code::
489
- # code
489
+ # Locale ISO code
490
490
  # default::
491
- # default
491
+ # Indicates whether locale is the default locale. If set to true, the previous default locale the project is no longer the default locale.
492
492
  # main::
493
- # main
493
+ # Indicates whether locale is a main locale.
494
494
  # name::
495
- # name
495
+ # Locale name
496
496
  # rtl::
497
- # rtl
497
+ # Indicates whether locale is a RTL (Right-to-Left) locale.
498
498
  # source_locale_id::
499
- # source_locale_id
499
+ # Source locale. Can be the name or public id of the locale. Preferred is the public id.
500
500
  class LocaleParams < ::OpenStruct
501
501
  def code=(val)
502
502
  self.code = val
@@ -555,31 +555,31 @@ module RequestParams
555
555
  # TranslationOrderParams
556
556
  # == Parameters:
557
557
  # category::
558
- # category
558
+ # Category to use (required for orders processed by TextMaster). <a href="#categories">Category List</a>
559
559
  # include_untranslated_keys::
560
- # include_untranslated_keys
560
+ # Order translations for keys with untranslated content in the selected target locales.
561
561
  # include_unverified_translations::
562
- # include_unverified_translations
562
+ # Order translations for keys with unverified content in the selected target locales.
563
563
  # lsp::
564
- # lsp
564
+ # Name of the LSP that should process this order. Can be one of gengo, textmaster.
565
565
  # message::
566
- # message
566
+ # Message that is displayed to the translators for description.
567
567
  # priority::
568
- # priority
568
+ # Indicates whether the priority option should be ordered which decreases turnaround time by 30%. Available only for orders processed by TextMaster.
569
569
  # quality::
570
- # quality
570
+ # Extra proofreading option to ensure consistency in vocabulary and style. Only available for orders processed by TextMaster.
571
571
  # source_locale_id::
572
- # source_locale_id
572
+ # Source locale for the order. Can be the name or public id of the source locale. Preferred is the public id.
573
573
  # styleguide_id::
574
- # styleguide_id
574
+ # Style guide for translators to be sent with the order.
575
575
  # tag::
576
- # tag
576
+ # Tag you want to order translations for.
577
577
  # target_locale_ids::
578
- # target_locale_ids
578
+ # Target locales you want the source content translate to. Can be the name or public id of the target locales. Preferred is the public id.
579
579
  # translation_type::
580
- # translation_type
580
+ # Name of the quality level, availability depends on the LSP. Can be one of: standard, pro (for orders processed by Gengo) and one of regular, premium, enterprise (for orders processed by TextMaster)
581
581
  # unverify_translations_upon_delivery::
582
- # unverify_translations_upon_delivery
582
+ # Unverify translations upon delivery.
583
583
  class TranslationOrderParams < ::OpenStruct
584
584
  def category=(val)
585
585
  self.category = val
@@ -684,9 +684,9 @@ module RequestParams
684
684
  # ProjectParams
685
685
  # == Parameters:
686
686
  # name::
687
- # name
687
+ # Name of the project
688
688
  # shares_translation_memory::
689
- # shares_translation_memory
689
+ # Indicates whether the project should share the account's translation memory
690
690
  class ProjectParams < ::OpenStruct
691
691
  def name=(val)
692
692
  self.name = val
@@ -715,31 +715,31 @@ module RequestParams
715
715
  # StyleguideParams
716
716
  # == Parameters:
717
717
  # audience::
718
- # audience
718
+ # Audience description
719
719
  # business::
720
- # business
720
+ # Description of the business
721
721
  # company_branding::
722
- # company_branding
722
+ # Company branding to remain consistent.
723
723
  # formatting::
724
- # formatting
724
+ # Formatting requirements and character limitations.
725
725
  # glossary_terms::
726
- # glossary_terms
726
+ # List of terms and/or phrases that need to be translated consistently.
727
727
  # grammar_consistency::
728
- # grammar_consistency
728
+ # Formal or informal pronouns, consistent conjugation, grammatical gender
729
729
  # grammatical_person::
730
- # grammatical_person
730
+ # Can be one of: not_specified, first_person_singular, second_person_singular, third_person_singular_masculine, third_person_singular_feminine, third_person_singular_neuter, first_person_plural, second_person_plural, third_person_plural.
731
731
  # literal_translation::
732
- # literal_translation
732
+ # Can be one of: Cultural/Conversational, Literal, Neutral.
733
733
  # overall_tone::
734
- # overall_tone
734
+ # Tone requirement descriptions
735
735
  # samples::
736
- # samples
736
+ # Provide links to sample product pages, FAQ pages, etc. to give the translator a point of reference. You can also provide past translations. Even snippets or short paragraphs are helpful for maintaining consistency.
737
737
  # target_audience::
738
- # target_audience
738
+ # Can be one of: not_specified, children, teenager, young_adults, adults, old_adults.
739
739
  # title::
740
- # title
740
+ # Style guide title
741
741
  # vocabulary_type::
742
- # vocabulary_type
742
+ # Can be one of: not_specified, popular, technical, fictional.
743
743
  class StyleguideParams < ::OpenStruct
744
744
  def audience=(val)
745
745
  self.audience = val
@@ -806,7 +806,7 @@ module RequestParams
806
806
  # TagParams
807
807
  # == Parameters:
808
808
  # name::
809
- # name
809
+ # Name of the tag
810
810
  class TagParams < ::OpenStruct
811
811
  def name=(val)
812
812
  self.name = val
@@ -825,17 +825,17 @@ module RequestParams
825
825
  # TranslationParams
826
826
  # == Parameters:
827
827
  # content::
828
- # content
828
+ # Translation content
829
829
  # excluded::
830
- # excluded
830
+ # Indicates whether translation is excluded.
831
831
  # key_id::
832
- # key_id
832
+ # Key
833
833
  # locale_id::
834
- # locale_id
834
+ # Locale. Can be the name or public id of the locale. Preferred is the public id.
835
835
  # plural_suffix::
836
- # plural_suffix
836
+ # Plural suffix. Can be one of: zero, one, two, few, many, other.
837
837
  # unverified::
838
- # unverified
838
+ # Indicates whether translation is unverified.
839
839
  class TranslationParams < ::OpenStruct
840
840
  def content=(val)
841
841
  self.content = val
@@ -890,23 +890,23 @@ module RequestParams
890
890
  # LocaleFileImportParams
891
891
  # == Parameters:
892
892
  # convert_emoji::
893
- # convert_emoji
893
+ # Indicates whether the file contains Emoji symbols that should be converted.
894
894
  # file::
895
- # file
895
+ # File to be imported
896
896
  # file_format::
897
- # file_format
897
+ # File format. Auto-detected when possible and not specified.
898
898
  # format_options::
899
- # format_options
899
+ # Additional options available for specific formats. See our format guide for complete list.
900
900
  # locale_id::
901
- # locale_id
901
+ # Locale of the file's content. Can be the name or public id of the locale. Preferred is the public id.
902
902
  # skip_unverification::
903
- # skip_unverification
903
+ # Indicates whether the upload should unverify updated translations.
904
904
  # skip_upload_tags::
905
- # skip_upload_tags
905
+ # Indicates whether the upload should not create upload tags.
906
906
  # tags::
907
- # tags
907
+ # Tags to be assigned to the new keys, contained in the upload.
908
908
  # update_translations::
909
- # update_translations
909
+ # Indicates whether existing translations should be updated with the file content.
910
910
  class LocaleFileImportParams < ::OpenStruct
911
911
  def convert_emoji=(val)
912
912
  if val == "true"
@@ -1025,9 +1025,9 @@ module RequestParams
1025
1025
  # KeysDeleteParams
1026
1026
  # == Parameters:
1027
1027
  # locale_id::
1028
- # locale_id
1028
+ # Locale used to determine the translation state of a key when filtering for untranslated or translated keys.
1029
1029
  # q::
1030
- # q
1030
+ # Filter the results. Supports text queries for key name with 'name:key_name' and qualifiers like translated/untranslated 'translated:true/false'. Requires an additional <code>locale_id</code> parameter if 'translated:true/false' is used.
1031
1031
  class KeysDeleteParams < ::OpenStruct
1032
1032
  def locale_id=(val)
1033
1033
  self.locale_id = val
@@ -1048,13 +1048,13 @@ module RequestParams
1048
1048
  # KeysListParams
1049
1049
  # == Parameters:
1050
1050
  # locale_id::
1051
- # locale_id
1051
+ # Locale used to determine the translation state of a key when filtering for untranslated or translated keys.
1052
1052
  # order::
1053
- # order
1053
+ # Order direction. Can be one of: asc, desc.
1054
1054
  # q::
1055
- # q
1055
+ # Specify a <a href="/guides/working-with-phraseapp/search-terms">search term query</a> including wildcard or exact matching. It will search the key metadata for matching results. Searched fields include key name, description, tags, translations.<br><br> Also supports the following qualifiers in the query:<br> <ul> <li><code>name:key_name</code> for text queries on key names</li> <li><code>translated:{true|false}</code> for translation status*</li> <li><code>updated_at{>=|<=}21-02-2013</code> for date range queries</li> </ul> *Also requires <code>locale_id</code> to be specified.
1056
1056
  # sort::
1057
- # sort
1057
+ # Sort by field. Can be one of: name, created_at, updated_at.
1058
1058
  class KeysListParams < ::OpenStruct
1059
1059
  def locale_id=(val)
1060
1060
  self.locale_id = val
@@ -1083,13 +1083,13 @@ module RequestParams
1083
1083
  # KeysSearchParams
1084
1084
  # == Parameters:
1085
1085
  # locale_id::
1086
- # locale_id
1086
+ # Locale used to determine the translation state of a key when filtering for untranslated or translated keys.
1087
1087
  # order::
1088
- # order
1088
+ # Order direction. Can be one of: asc, desc.
1089
1089
  # q::
1090
- # q
1090
+ # Filter the results. Supports text queries for name:key_name and qualifiers translated:true/false as well as date range queries. Requires an additional <code>locale_id</code> parameter if 'translated:true/false' is used.
1091
1091
  # sort::
1092
- # sort
1092
+ # Sort by field. Can be one of: name, created_at, updated_at.
1093
1093
  class KeysSearchParams < ::OpenStruct
1094
1094
  def locale_id=(val)
1095
1095
  self.locale_id = val
@@ -1118,11 +1118,11 @@ module RequestParams
1118
1118
  # KeysTagParams
1119
1119
  # == Parameters:
1120
1120
  # locale_id::
1121
- # locale_id
1121
+ # Locale used to determine the translation state of a key when filtering for untranslated or translated keys.
1122
1122
  # q::
1123
- # q
1123
+ # Filter the results. Supports text queries for key name with 'name:key_name' and qualifiers like translated/untranslated 'translated:true/false'. Requires an additional <code>locale_id</code> parameter if 'translated:true/false' is used.
1124
1124
  # tags::
1125
- # tags
1125
+ # Tag or comma-separated list of tags to add to the matching collection of keys
1126
1126
  class KeysTagParams < ::OpenStruct
1127
1127
  def locale_id=(val)
1128
1128
  self.locale_id = val
@@ -1149,11 +1149,11 @@ module RequestParams
1149
1149
  # KeysUntagParams
1150
1150
  # == Parameters:
1151
1151
  # locale_id::
1152
- # locale_id
1152
+ # Locale used to determine the translation state of a key when filtering for untranslated or translated keys.
1153
1153
  # q::
1154
- # q
1154
+ # Filter the results. Supports text queries for key name with 'name:key_name' and qualifiers like translated/untranslated 'translated:true/false'. Requires an additional <code>locale_id</code> parameter if 'translated:true/false' is used.
1155
1155
  # tags::
1156
- # tags
1156
+ # Tag or comma-separated list of tags to add to the matching collection of keys
1157
1157
  class KeysUntagParams < ::OpenStruct
1158
1158
  def locale_id=(val)
1159
1159
  self.locale_id = val
@@ -1180,17 +1180,17 @@ module RequestParams
1180
1180
  # LocaleDownloadParams
1181
1181
  # == Parameters:
1182
1182
  # convert_emoji::
1183
- # convert_emoji
1183
+ # Indicates whether Emoji symbols should be converted to actual Emojis.
1184
1184
  # file_format::
1185
- # file_format
1185
+ # File format name. See the format guide for all supported file formats.
1186
1186
  # format_options::
1187
- # format_options
1187
+ # Additional options available for specific formats. See our format guide for complete list. [EXAMPLE]
1188
1188
  # include_empty_translations::
1189
- # include_empty_translations
1189
+ # Indicates whether keys without translations should be included in the output as well.
1190
1190
  # keep_notranslate_tags::
1191
- # keep_notranslate_tags
1191
+ # Indicates whether [NOTRANSLATE] tags should be kept.
1192
1192
  # tag_id::
1193
- # tag_id
1193
+ # Limit result to keys tagged with the given tag (identified by its id).
1194
1194
  class LocaleDownloadParams < ::OpenStruct
1195
1195
  def convert_emoji=(val)
1196
1196
  if val == "true"
@@ -1247,13 +1247,13 @@ module RequestParams
1247
1247
  # TranslationUpdateParams
1248
1248
  # == Parameters:
1249
1249
  # content::
1250
- # content
1250
+ # Translation content
1251
1251
  # excluded::
1252
- # excluded
1252
+ # Indicates whether translation is excluded.
1253
1253
  # plural_suffix::
1254
- # plural_suffix
1254
+ # Plural suffix. Can be one of: zero, one, two, few, many, other.
1255
1255
  # unverified::
1256
- # unverified
1256
+ # Indicates whether translation is unverified.
1257
1257
  class TranslationUpdateParams < ::OpenStruct
1258
1258
  def content=(val)
1259
1259
  self.content = val
@@ -1296,11 +1296,11 @@ module RequestParams
1296
1296
  # TranslationsByKeyParams
1297
1297
  # == Parameters:
1298
1298
  # order::
1299
- # order
1299
+ # Order direction. Can be one of: asc, desc.
1300
1300
  # q::
1301
- # q
1301
+ # Filter the results. Supports text queries with the same results as in the Translation Center as well as qualifiers like unverified:true/false and date range queries.
1302
1302
  # sort::
1303
- # sort
1303
+ # Sort criteria. Can be one of: key_name, created_at, updated_at.
1304
1304
  class TranslationsByKeyParams < ::OpenStruct
1305
1305
  def order=(val)
1306
1306
  self.order = val
@@ -1325,11 +1325,11 @@ module RequestParams
1325
1325
  # TranslationsByLocaleParams
1326
1326
  # == Parameters:
1327
1327
  # order::
1328
- # order
1328
+ # Order direction. Can be one of: asc, desc.
1329
1329
  # q::
1330
- # q
1330
+ # Filter the results. Supports text queries with the same results as in the Translation Center as well as qualifiers like unverified:true/false and date range queries.
1331
1331
  # sort::
1332
- # sort
1332
+ # Sort criteria. Can be one of: key_name, created_at, updated_at.
1333
1333
  class TranslationsByLocaleParams < ::OpenStruct
1334
1334
  def order=(val)
1335
1335
  self.order = val
@@ -1354,11 +1354,11 @@ module RequestParams
1354
1354
  # TranslationsExcludeParams
1355
1355
  # == Parameters:
1356
1356
  # order::
1357
- # order
1357
+ # Order direction. Can be one of: asc, desc.
1358
1358
  # q::
1359
- # q
1359
+ # Filter the results. Supports text queries with same results as in Translation Center and qualifiers such as unverified:true/false as well as date range queries.
1360
1360
  # sort::
1361
- # sort
1361
+ # Sort criteria. Can be one of: key_name, created_at, updated_at.
1362
1362
  class TranslationsExcludeParams < ::OpenStruct
1363
1363
  def order=(val)
1364
1364
  self.order = val
@@ -1383,11 +1383,11 @@ module RequestParams
1383
1383
  # TranslationsIncludeParams
1384
1384
  # == Parameters:
1385
1385
  # order::
1386
- # order
1386
+ # Order direction. Can be one of: asc, desc.
1387
1387
  # q::
1388
- # q
1388
+ # Filter the results. Supports text queries with same results as in Translation Center and qualifiers such as unverified:true/false as well as date range queries.
1389
1389
  # sort::
1390
- # sort
1390
+ # Sort criteria. Can be one of: key_name, created_at, updated_at.
1391
1391
  class TranslationsIncludeParams < ::OpenStruct
1392
1392
  def order=(val)
1393
1393
  self.order = val
@@ -1412,11 +1412,11 @@ module RequestParams
1412
1412
  # TranslationsListParams
1413
1413
  # == Parameters:
1414
1414
  # order::
1415
- # order
1415
+ # Order direction. Can be one of: asc, desc.
1416
1416
  # q::
1417
- # q
1417
+ # Filter the results. Supports text queries with the same results as in the Translation Center as well as qualifiers like unverified:true/false and date range queries.
1418
1418
  # sort::
1419
- # sort
1419
+ # Sort criteria. Can be one of: key_name, created_at, updated_at.
1420
1420
  class TranslationsListParams < ::OpenStruct
1421
1421
  def order=(val)
1422
1422
  self.order = val
@@ -1441,11 +1441,11 @@ module RequestParams
1441
1441
  # TranslationsSearchParams
1442
1442
  # == Parameters:
1443
1443
  # order::
1444
- # order
1444
+ # Order direction. Can be one of: asc, desc.
1445
1445
  # q::
1446
- # q
1446
+ # Filter the results. Supports text queries with the same results as in the Translation Center as well as qualifiers like unverified:true/false and date range queries.
1447
1447
  # sort::
1448
- # sort
1448
+ # Sort criteria. Can be one of: key_name, created_at, updated_at.
1449
1449
  class TranslationsSearchParams < ::OpenStruct
1450
1450
  def order=(val)
1451
1451
  self.order = val
@@ -1470,11 +1470,11 @@ module RequestParams
1470
1470
  # TranslationsUnverifyParams
1471
1471
  # == Parameters:
1472
1472
  # order::
1473
- # order
1473
+ # Order direction. Can be one of: asc, desc.
1474
1474
  # q::
1475
- # q
1475
+ # Filter the results. Supports text queries with same results as in Translation Center and qualifiers such as unverified:true/false as well as date range queries.
1476
1476
  # sort::
1477
- # sort
1477
+ # Sort criteria. Can be one of: key_name, created_at, updated_at.
1478
1478
  class TranslationsUnverifyParams < ::OpenStruct
1479
1479
  def order=(val)
1480
1480
  self.order = val
@@ -1499,11 +1499,11 @@ module RequestParams
1499
1499
  # TranslationsVerifyParams
1500
1500
  # == Parameters:
1501
1501
  # order::
1502
- # order
1502
+ # Order direction. Can be one of: asc, desc.
1503
1503
  # q::
1504
- # q
1504
+ # Filter the results. Supports text queries with the same results as in the Translation Center as well as qualifiers like unverified:true/false and date range queries.
1505
1505
  # sort::
1506
- # sort
1506
+ # Sort criteria. Can be one of: key_name, created_at, updated_at.
1507
1507
  class TranslationsVerifyParams < ::OpenStruct
1508
1508
  def order=(val)
1509
1509
  self.order = val
@@ -1,3 +1,3 @@
1
1
  module PhraseApp
2
- VERSION = '1.0.10'
2
+ VERSION = '1.0.11'
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: phraseapp-ruby
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.10
4
+ version: 1.0.11
5
5
  platform: ruby
6
6
  authors:
7
7
  - PhraseApp
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-07-06 00:00:00.000000000 Z
11
+ date: 2015-07-07 00:00:00.000000000 Z
12
12
  dependencies: []
13
13
  description: PhraseApp API client libary
14
14
  email: