nexmo_api_specification 0.11.1 → 0.11.4
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/definitions/number-insight.yml +7 -7
- data/definitions/sms.yml +72 -26
- data/definitions/stitch.yml +191 -53
- data/guidelines/GUIDELINES.md +55 -19
- data/lib/nexmo_api_specification/version.rb +1 -1
- data/ncco-schema.json +5 -0
- metadata +3 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: b5c8c40ce265d614d8a602e3cf2652dddb5c3fbb
|
4
|
+
data.tar.gz: e2545074caadbf429c03c1c319b656a7967c587a
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 01c84df8c3f285993f87ae39816bf4879c69f7506b686a7807beb39c6d0ff1b871264f5faac25b9d3d6f4660be46df0582065afbd824aa39853503aad6fde986
|
7
|
+
data.tar.gz: 55e0bab7af7b6136b79bae403c592c2e6356928f6b80c47e742eed1e1dae4650b8d18fc4f81f71d3aba08ecbf97b14802d9cec9f4f6fc470f3214c1afb33fe7f
|
@@ -331,7 +331,7 @@ components:
|
|
331
331
|
attribute: true
|
332
332
|
caller-name:
|
333
333
|
type: string
|
334
|
-
description: 'Full name of the person who owns the phone number. `unknown` if this information is not available. This parameter is only present if `cnam` had a value of `true` within the request.'
|
334
|
+
description: 'Full name of the person or business who owns the phone number. `unknown` if this information is not available. This parameter is only present if `cnam` had a value of `true` within the request.'
|
335
335
|
example: 'John Smith'
|
336
336
|
xml:
|
337
337
|
attribute: true
|
@@ -353,7 +353,7 @@ components:
|
|
353
353
|
attribute: true
|
354
354
|
caller_name:
|
355
355
|
type: string
|
356
|
-
description: 'Full name of the person who owns the phone number. `unknown` if this information is not available. This parameter is only present if `cnam` had a value of `true` within the request.'
|
356
|
+
description: 'Full name of the person or business who owns the phone number. `unknown` if this information is not available. This parameter is only present if `cnam` had a value of `true` within the request.'
|
357
357
|
example: 'John Smith'
|
358
358
|
last_name:
|
359
359
|
type: string
|
@@ -422,7 +422,7 @@ components:
|
|
422
422
|
attribute: true
|
423
423
|
caller-name:
|
424
424
|
type: string
|
425
|
-
description: 'Full name of the person who owns the phone number. `unknown` if this information is not available. This parameter is only present if `cnam` had a value of `true` within the request.'
|
425
|
+
description: 'Full name of the person or business who owns the phone number. `unknown` if this information is not available. This parameter is only present if `cnam` had a value of `true` within the request.'
|
426
426
|
example: 'John Smith'
|
427
427
|
xml:
|
428
428
|
attribute: true
|
@@ -444,7 +444,7 @@ components:
|
|
444
444
|
attribute: true
|
445
445
|
caller_name:
|
446
446
|
type: string
|
447
|
-
description: 'Full name of the person who owns the phone number. `unknown` if this information is not available. This parameter is only present if `cnam` had a value of `true` within the request.'
|
447
|
+
description: 'Full name of the person or business who owns the phone number. `unknown` if this information is not available. This parameter is only present if `cnam` had a value of `true` within the request.'
|
448
448
|
example: 'John Smith'
|
449
449
|
last_name:
|
450
450
|
type: string
|
@@ -646,7 +646,7 @@ components:
|
|
646
646
|
$ref: '#/components/schemas/niCallerIdentity'
|
647
647
|
caller_name:
|
648
648
|
type: string
|
649
|
-
description: 'Full name of the person who owns the phone number. `unknown` if this information is not available. This parameter is only present if `cnam` had a value of `true` within the request.'
|
649
|
+
description: 'Full name of the person or business who owns the phone number. `unknown` if this information is not available. This parameter is only present if `cnam` had a value of `true` within the request.'
|
650
650
|
example: 'John Smith'
|
651
651
|
last_name:
|
652
652
|
type: string
|
@@ -741,7 +741,7 @@ components:
|
|
741
741
|
$ref: '#/components/schemas/niCallerIdentity'
|
742
742
|
caller_name:
|
743
743
|
type: string
|
744
|
-
description: 'Full name of the person who owns the phone number. `unknown` if this information is not available. This parameter is only present if `cnam` had a value of `true` within the request.'
|
744
|
+
description: 'Full name of the person or business who owns the phone number. `unknown` if this information is not available. This parameter is only present if `cnam` had a value of `true` within the request.'
|
745
745
|
example: 'John Smith'
|
746
746
|
last_name:
|
747
747
|
type: string
|
@@ -926,7 +926,7 @@ components:
|
|
926
926
|
example: 'consumer'
|
927
927
|
caller_name:
|
928
928
|
type: string
|
929
|
-
description: 'Full name of the person who owns the phone number. `unknown` if this information is not available. This parameter is only present if `cnam` had a value of `true` within the request.'
|
929
|
+
description: 'Full name of the person or business who owns the phone number. `unknown` if this information is not available. This parameter is only present if `cnam` had a value of `true` within the request.'
|
930
930
|
example: 'John Smith'
|
931
931
|
first_name:
|
932
932
|
type: string
|
data/definitions/sms.yml
CHANGED
@@ -119,9 +119,9 @@ components:
|
|
119
119
|
to:
|
120
120
|
description: The number that the message should be sent to
|
121
121
|
type: string
|
122
|
-
minLength:
|
123
|
-
maxLength:
|
124
|
-
pattern: '\d{
|
122
|
+
minLength: 7
|
123
|
+
maxLength: 15
|
124
|
+
pattern: '\d{7,15}'
|
125
125
|
example: 447700900000
|
126
126
|
text:
|
127
127
|
description: The body of the message being sent
|
@@ -395,29 +395,7 @@ components:
|
|
395
395
|
example: '2001011400'
|
396
396
|
err-code:
|
397
397
|
type: string
|
398
|
-
description:
|
399
|
-
The status of the request. Will be a non `0` value if there has been an error.
|
400
|
-
|
401
|
-
Code | Description
|
402
|
-
-- | --
|
403
|
-
`0` | Delivered.
|
404
|
-
`1` | ^[Unknown](Either: An unknown error was received from the carrier who tried to send this this message. Depending on the carrier, that to is unknown. When you see this error, and status is rejected, always check if to in your request was valid.)
|
405
|
-
`2` | ^[Absent Subscriber Temporary](This message was not delivered because to was temporarily unavailable. For example, the handset used for to was out of coverage or switched off. This is a temporary failure, retry later for a positive result.)
|
406
|
-
`3` | ^[Absent Subscriber Permanent](To is no longer active, you should remove this phone number from your database.)
|
407
|
-
`4` | ^[Call barred by user](You should remove this phone number from your database. If the user wants to receive messages from you, they need to contact their carrier directly.)
|
408
|
-
`5` | ^[Portability Error](There is an issue after the user has changed carrier for to. If the user wants to receive messages from you, they need to contact their carrier directly.)
|
409
|
-
`6` | ^[Anti-Spam Rejection](Carriers often apply restrictions that block messages following different criteria. For example, on SenderID or message content.)
|
410
|
-
`7` | ^[Handset Busy](The handset associated with to was not available when this message was sent. If status is Failed, this is a temporary failure; retry later for a positive result. If status is Accepted, this message has is in the retry scheme and will be resent until it expires in 24-48 hours.)
|
411
|
-
`8` | ^[Network Error](A network failure while sending your message. This is a temporary failure, retry later for a positive result.)
|
412
|
-
`9` | ^[Illegal Number](You tried to send a message to a blacklisted phone number. That is, the user has already sent a STOP opt-out message and no longer wishes to receive messages from you.)
|
413
|
-
`10` | ^[Invalid Message](The message could not be sent because one of the parameters in the message was incorrect. For example, incorrect type or udh.)
|
414
|
-
`11` | ^[Unroutable](The chosen route to send your message is not available. This is because the phone number is either currently on an unsupported network or on a pre-paid or reseller account that could not receive a message sent by from. To resolve this issue either email us at support@nexmo.com or create a helpdesk ticket at https://help.nexmo.com.)
|
415
|
-
`12` | ^[Destination unreachable](The message could not be delivered to the phone number.)
|
416
|
-
`13` | ^[Subscriber Age Restriction](The carrier blocked this message because the content is not suitable for to based on age restrictions.)
|
417
|
-
`14` | ^[Number Blocked by Carrier](The carrier blocked this message. This could be due to several reasons. For example, to's plan does not include SMS or the account is suspended.)
|
418
|
-
`15` | ^[Pre-Paid](Insufficent funds. To’s pre-paid account does not have enough credit to receive the message.)
|
419
|
-
`99` | ^[General Error](There is a problem with the chosen route to send your message. To resolve this issue either email us at support@nexmo.com or create a helpdesk ticket at https://help.nexmo.com.)
|
420
|
-
|
398
|
+
description: The status of the request. Will be a non `0` value if there has been an error. See the [SMS error reference](/api-errors/sms) for more details
|
421
399
|
example: '0'
|
422
400
|
message-timestamp:
|
423
401
|
description: The time when Nexmo started to push this Delivery Receipt to your webhook endpoint.
|
@@ -433,3 +411,71 @@ x-groups:
|
|
433
411
|
$ref: '#/components/schemas/SMS'
|
434
412
|
text/xml:
|
435
413
|
$ref: '#/components/schemas/MessageXmlWrapper'
|
414
|
+
|
415
|
+
x-errors:
|
416
|
+
1:
|
417
|
+
description: An unknown error was received from the carrier who tried to send this this message. Depending on the carrier, that `to` is unknown.
|
418
|
+
resolution: When you see this error, and status is rejected, always check if `to` in your request was valid.
|
419
|
+
|
420
|
+
2:
|
421
|
+
description: This message was not delivered because `to` was temporarily unavailable. For example, the handset used for to was out of coverage or switched off.
|
422
|
+
resolution: This is a temporary failure, retry later for a positive result.
|
423
|
+
|
424
|
+
3:
|
425
|
+
description: The `to` number is no longer active
|
426
|
+
resolution: Remove this phone number from your database.
|
427
|
+
|
428
|
+
4:
|
429
|
+
description: Call barred by user
|
430
|
+
resolution: You should remove this phone number from your database. If the user wants to receive messages from you, they need to contact their carrier directly.
|
431
|
+
|
432
|
+
5:
|
433
|
+
description: Portability error. There is an issue after the user has changed carrier for `to`
|
434
|
+
resolution: If the user wants to receive messages from you, they need to contact their carrier directly.
|
435
|
+
|
436
|
+
6:
|
437
|
+
description: Anti-Spam rejection. Carriers often apply restrictions that block messages following different criteria. For example, on SenderID or message content
|
438
|
+
resolution: If you believe that your message is being blocked incorrectly, either email us at support@nexmo.com or create a helpdesk ticket at https://help.nexmo.com
|
439
|
+
|
440
|
+
7:
|
441
|
+
description: Handset busy. The handset associated with to was not available when this message was sent.
|
442
|
+
resolution: If status is Failed, this is a temporary failure; retry later for a positive result. If status is Accepted, this message has is in the retry scheme and will be resent until it expires in 24-48 hours.
|
443
|
+
|
444
|
+
8:
|
445
|
+
description: Network error. A network failure occured while sending your message
|
446
|
+
resolution: This is a temporary failure, retry later for a positive result.
|
447
|
+
|
448
|
+
9:
|
449
|
+
description: Insufficent funds. `To`’s pre-paid account does not have enough credit to receive the message.
|
450
|
+
resolution: The `to` number must top up, then you can retry sending the message
|
451
|
+
|
452
|
+
10:
|
453
|
+
description: The message could not be sent because one of the parameters in the message was incorrect. For example, incorrect type or udh.
|
454
|
+
resolution: Check your outbound request and try again
|
455
|
+
link:
|
456
|
+
text: View API reference
|
457
|
+
url: /api/sms#send-an-sms
|
458
|
+
|
459
|
+
11:
|
460
|
+
description: The chosen route to send your message is not available. This is because the phone number is either currently on an unsupported network or on a pre-paid or reseller account that could not receive a message sent by `from`.
|
461
|
+
resolution: Either email us at support@nexmo.com or create a helpdesk ticket at https://help.nexmo.com
|
462
|
+
|
463
|
+
12:
|
464
|
+
description: Desintation unreachable. The message could not be delivered to the phone number.
|
465
|
+
resolution: Check that your `to` number is valid. Make sure to use the country prefix (e.g. `44` for the UK) and not a `0`
|
466
|
+
|
467
|
+
13:
|
468
|
+
description: The carrier blocked this message because the content is not suitable for `to` based on age restrictions.)
|
469
|
+
resolution: N/A
|
470
|
+
|
471
|
+
14:
|
472
|
+
description: The carrier blocked this message. This could be due to several reasons. For example, `to`'s plan does not include SMS or the account is suspended.
|
473
|
+
resolution: N/A
|
474
|
+
|
475
|
+
15:
|
476
|
+
description: You tried to send a message to a blacklisted phone number. That is, the user has already sent a STOP opt-out message and no longer wishes to receive messages from you.
|
477
|
+
resolution: N/A
|
478
|
+
|
479
|
+
99:
|
480
|
+
description: There is a problem with the chosen route to send your message
|
481
|
+
resolution: To resolve this issue either email us at support@nexmo.com or create a helpdesk ticket at https://help.nexmo.com.
|
data/definitions/stitch.yml
CHANGED
@@ -12,6 +12,35 @@ info:
|
|
12
12
|
email: ea-support@nexmo.com
|
13
13
|
x-label: Developer Preview
|
14
14
|
paths:
|
15
|
+
/legs:
|
16
|
+
get:
|
17
|
+
x-swagger-router-controller: listLegs
|
18
|
+
operationId: listLegs
|
19
|
+
x-group: leg
|
20
|
+
summary: List legs
|
21
|
+
responses:
|
22
|
+
'200':
|
23
|
+
$ref: '#/components/responses/LegsListed'
|
24
|
+
'400':
|
25
|
+
$ref: '#/components/responses/ValidationError'
|
26
|
+
'/legs/{leg_id}':
|
27
|
+
parameters:
|
28
|
+
- name: leg_id
|
29
|
+
in: path
|
30
|
+
required: true
|
31
|
+
description: Leg ID
|
32
|
+
schema:
|
33
|
+
type: string
|
34
|
+
delete:
|
35
|
+
x-swagger-router-controller: deleteLeg
|
36
|
+
operationId: deleteLeg
|
37
|
+
x-group: leg
|
38
|
+
summary: Delete a leg
|
39
|
+
responses:
|
40
|
+
'200':
|
41
|
+
$ref: '#/components/responses/Success'
|
42
|
+
'400':
|
43
|
+
$ref: '#/components/responses/ClientError'
|
15
44
|
/conversations:
|
16
45
|
post:
|
17
46
|
x-swagger-router-controller: createConversation
|
@@ -332,6 +361,12 @@ paths:
|
|
332
361
|
$ref: '#/components/responses/FoundList'
|
333
362
|
components:
|
334
363
|
responses:
|
364
|
+
LegsListed:
|
365
|
+
description: List Legs Succesfully
|
366
|
+
content:
|
367
|
+
application/json:
|
368
|
+
schema:
|
369
|
+
$ref: '#/components/schemas/LegsListed'
|
335
370
|
ConversationUpdated:
|
336
371
|
description: Create / Update Conversation Successfully
|
337
372
|
content:
|
@@ -519,6 +554,86 @@ components:
|
|
519
554
|
schema:
|
520
555
|
$ref: '#/components/schemas/UserDetails'
|
521
556
|
schemas:
|
557
|
+
Leg:
|
558
|
+
discriminator:
|
559
|
+
propertyName: Leg
|
560
|
+
type: object
|
561
|
+
description: Leg
|
562
|
+
properties:
|
563
|
+
uuid:
|
564
|
+
type: string
|
565
|
+
description: Leg ID
|
566
|
+
type:
|
567
|
+
type: string
|
568
|
+
conversation_uuid:
|
569
|
+
type: string
|
570
|
+
status:
|
571
|
+
type: string
|
572
|
+
from:
|
573
|
+
type: string
|
574
|
+
to:
|
575
|
+
type: string
|
576
|
+
direction:
|
577
|
+
type: string
|
578
|
+
rate:
|
579
|
+
type: string
|
580
|
+
price:
|
581
|
+
type: string
|
582
|
+
duration:
|
583
|
+
type: string
|
584
|
+
network:
|
585
|
+
type: string
|
586
|
+
start_time:
|
587
|
+
type: string
|
588
|
+
end_time:
|
589
|
+
type: string
|
590
|
+
required:
|
591
|
+
- uuid
|
592
|
+
- type
|
593
|
+
- start_time
|
594
|
+
- end_time
|
595
|
+
Legs:
|
596
|
+
discriminator:
|
597
|
+
propertyName: Legs
|
598
|
+
type: object
|
599
|
+
description: Legs Object
|
600
|
+
properties:
|
601
|
+
count:
|
602
|
+
type: number
|
603
|
+
description: Count
|
604
|
+
page_size:
|
605
|
+
type: number
|
606
|
+
record_index:
|
607
|
+
type: number
|
608
|
+
_links:
|
609
|
+
type: object
|
610
|
+
properties:
|
611
|
+
self:
|
612
|
+
type: object
|
613
|
+
properties:
|
614
|
+
href:
|
615
|
+
type: string
|
616
|
+
_embedded:
|
617
|
+
type: object
|
618
|
+
properties:
|
619
|
+
legs:
|
620
|
+
type: object
|
621
|
+
properties:
|
622
|
+
_links:
|
623
|
+
type: array
|
624
|
+
items:
|
625
|
+
allOf:
|
626
|
+
- $ref: '#/components/schemas/Leg'
|
627
|
+
- type: object
|
628
|
+
properties:
|
629
|
+
_links:
|
630
|
+
type: object
|
631
|
+
properties:
|
632
|
+
self:
|
633
|
+
type: object
|
634
|
+
properties:
|
635
|
+
href:
|
636
|
+
type: string
|
522
637
|
CreateConversation:
|
523
638
|
discriminator:
|
524
639
|
propertyName: CreateConversation
|
@@ -532,22 +647,8 @@ components:
|
|
532
647
|
not provided, one will be automatically generated.
|
533
648
|
display_name:
|
534
649
|
type: string
|
535
|
-
|
536
|
-
|
537
|
-
numbers:
|
538
|
-
type: object
|
539
|
-
properties:
|
540
|
-
pstn:
|
541
|
-
type: string
|
542
|
-
sms:
|
543
|
-
type: string
|
544
|
-
sip:
|
545
|
-
type: string
|
546
|
-
properties:
|
547
|
-
type: object
|
548
|
-
properties:
|
549
|
-
ttl:
|
550
|
-
type: string
|
650
|
+
description: The display name of the conversation
|
651
|
+
|
551
652
|
required:
|
552
653
|
- display_name
|
553
654
|
- image_url
|
@@ -579,22 +680,7 @@ components:
|
|
579
680
|
not provided, one will be automatically generated.
|
580
681
|
display_name:
|
581
682
|
type: string
|
582
|
-
|
583
|
-
type: string
|
584
|
-
numbers:
|
585
|
-
type: object
|
586
|
-
properties:
|
587
|
-
pstn:
|
588
|
-
type: string
|
589
|
-
sms:
|
590
|
-
type: string
|
591
|
-
sip:
|
592
|
-
type: string
|
593
|
-
properties:
|
594
|
-
type: object
|
595
|
-
properties:
|
596
|
-
ttl:
|
597
|
-
type: string
|
683
|
+
|
598
684
|
Conversation:
|
599
685
|
discriminator:
|
600
686
|
propertyName: Conversation
|
@@ -609,30 +695,14 @@ components:
|
|
609
695
|
description: Conversation Name
|
610
696
|
display_name:
|
611
697
|
type: string
|
612
|
-
description:
|
613
|
-
image_url:
|
614
|
-
type: string
|
615
|
-
description: Display Name
|
698
|
+
description: The display name of the conversation
|
616
699
|
timestamp:
|
617
700
|
type: string
|
618
|
-
description:
|
701
|
+
description: time when conversation was created
|
619
702
|
sequence_number:
|
620
703
|
type: string
|
621
|
-
description:
|
622
|
-
|
623
|
-
type: object
|
624
|
-
properties:
|
625
|
-
pstn:
|
626
|
-
type: string
|
627
|
-
sms:
|
628
|
-
type: string
|
629
|
-
sip:
|
630
|
-
type: string
|
631
|
-
properties:
|
632
|
-
type: object
|
633
|
-
properties:
|
634
|
-
ttl:
|
635
|
-
type: string
|
704
|
+
description: the last event id
|
705
|
+
|
636
706
|
members:
|
637
707
|
type: array
|
638
708
|
items:
|
@@ -667,12 +737,15 @@ components:
|
|
667
737
|
properties:
|
668
738
|
name:
|
669
739
|
type: string
|
740
|
+
description: Unique name (within the same application) for the conversation.
|
670
741
|
date_start:
|
671
742
|
type: string
|
672
743
|
format: dateTime
|
744
|
+
description: Return the records that occurred after this point in time.
|
673
745
|
date_end:
|
674
746
|
type: string
|
675
747
|
format: dateTime
|
748
|
+
description: Return the records that occurred at this point in time.
|
676
749
|
page_size:
|
677
750
|
type: number
|
678
751
|
minimum: 1
|
@@ -682,6 +755,7 @@ components:
|
|
682
755
|
minimum: 0
|
683
756
|
order:
|
684
757
|
type: string
|
758
|
+
description: Return the records that in ascending or descending order.
|
685
759
|
enum:
|
686
760
|
- asc
|
687
761
|
- desc
|
@@ -691,16 +765,21 @@ components:
|
|
691
765
|
discriminator:
|
692
766
|
propertyName: ConversationsListed
|
693
767
|
type: object
|
694
|
-
description: List Conversations Response Payload Object
|
768
|
+
description: List Conversations Response Payload Object.
|
695
769
|
properties:
|
696
770
|
count:
|
697
771
|
type: number
|
772
|
+
description: The total number of records returned by your request.
|
698
773
|
page_size:
|
699
774
|
type: number
|
775
|
+
description: The amount of records returned in this response.
|
776
|
+
|
700
777
|
record_index:
|
701
778
|
type: number
|
779
|
+
description: Return page_size calls from this index in the response. That is, if your request returns 300 concersations, set record_index to 5 in order to return calls 50 to 59. The default value is 0. That is, the first page_size calls.
|
702
780
|
_links:
|
703
781
|
type: object
|
782
|
+
description: A series of links between resources in this API in the http://stateless.co/hal_specification.html.
|
704
783
|
properties:
|
705
784
|
self:
|
706
785
|
type: object
|
@@ -737,6 +816,56 @@ components:
|
|
737
816
|
- record_index
|
738
817
|
- _links
|
739
818
|
- _embedded
|
819
|
+
LegsListed:
|
820
|
+
discriminator:
|
821
|
+
propertyName: LegsListed
|
822
|
+
type: object
|
823
|
+
description: List Legs Response Payload Object
|
824
|
+
properties:
|
825
|
+
count:
|
826
|
+
type: number
|
827
|
+
page_size:
|
828
|
+
type: number
|
829
|
+
record_index:
|
830
|
+
type: number
|
831
|
+
_links:
|
832
|
+
type: object
|
833
|
+
properties:
|
834
|
+
self:
|
835
|
+
type: object
|
836
|
+
properties:
|
837
|
+
href:
|
838
|
+
type: string
|
839
|
+
required:
|
840
|
+
- href
|
841
|
+
required:
|
842
|
+
- self
|
843
|
+
_embedded:
|
844
|
+
type: object
|
845
|
+
properties:
|
846
|
+
conversations:
|
847
|
+
type: array
|
848
|
+
items:
|
849
|
+
type: object
|
850
|
+
properties:
|
851
|
+
uuid:
|
852
|
+
type: string
|
853
|
+
name:
|
854
|
+
type: string
|
855
|
+
href:
|
856
|
+
type: string
|
857
|
+
required:
|
858
|
+
- uuid
|
859
|
+
- name
|
860
|
+
- href
|
861
|
+
required:
|
862
|
+
- legs
|
863
|
+
required:
|
864
|
+
- count
|
865
|
+
- page_size
|
866
|
+
- record_index
|
867
|
+
- _links
|
868
|
+
- _embedded
|
740
869
|
CreateDeviceObject:
|
741
870
|
discriminator:
|
742
871
|
propertyName: CreateDeviceObject
|
@@ -792,6 +921,7 @@ components:
|
|
792
921
|
description: Event ID
|
793
922
|
timestamp:
|
794
923
|
type: string
|
924
|
+
description: time when event was created
|
795
925
|
href:
|
796
926
|
type: string
|
797
927
|
EventRetrieved:
|
@@ -1309,3 +1439,11 @@ x-groups:
|
|
1309
1439
|
schema:
|
1310
1440
|
application/json:
|
1311
1441
|
$ref: '#/components/schemas/EventCreated'
|
1442
|
+
leg:
|
1443
|
+
name: "Leg"
|
1444
|
+
order: 4
|
1445
|
+
description: >-
|
1446
|
+
A leg can be a video call, IP call, or PSTN call that users participate in using multiple platforms. With this endpoint you can retrieve the details about all of the legs that took place in your application.
|
1447
|
+
schema:
|
1448
|
+
application/json:
|
1449
|
+
$ref: '#/components/schemas/Leg'
|
data/guidelines/GUIDELINES.md
CHANGED
@@ -208,35 +208,53 @@ Generic, like a 200 used in most cases when no more specific code applies. More
|
|
208
208
|
### Error Messages
|
209
209
|
Any non 200 response body should follow a standard format. This should be consistent for all products, as an error may be product specific (invalid parameters) or global in nature (invalid authorization). The [HTTP Problem draft][http_problem], specifically the [JSON Object][http-problem-object] provide a familiar format used by other APIs that provides a set of standard properties while allowing additional properties when needed for a particular error condition.
|
210
210
|
|
211
|
-
|
211
|
+
This is the minimum required in a response:
|
212
|
+
|
212
213
|
```
|
213
214
|
HTTP/1.1 403 Forbidden
|
214
215
|
Content-Type: application/problem+json
|
215
216
|
Content-Language: en
|
216
217
|
{
|
217
218
|
"type": "https://example.com/Error#out-of-credit",
|
218
|
-
"
|
219
|
-
"instance": "
|
220
|
-
|
221
|
-
|
222
|
-
|
219
|
+
"title": "You do not have enough credit",
|
220
|
+
"instance": "<trace_id>"
|
221
|
+
}
|
222
|
+
```
|
223
|
+
|
224
|
+
In some cases, you may wish to add additional detail to the error by adding a `detail` key
|
225
|
+
|
226
|
+
```
|
227
|
+
HTTP/1.1 403 Forbidden
|
228
|
+
Content-Type: application/problem+json
|
229
|
+
Content-Language: en
|
230
|
+
{
|
231
|
+
"type": "https://example.com/Error#out-of-credit",
|
232
|
+
"title": "You do not have enough credit",
|
233
|
+
"detail": "Your current balance is 30, but that costs 50.",
|
234
|
+
"instance": "<trace_id>"
|
223
235
|
}
|
224
236
|
```
|
237
|
+
|
238
|
+
If there are lots of errors, you may choose to return them as structured data. In this case, you would not return `detail`, but instead add a new key at the top level and put the data inside that (see below for a list of additional keys). In this case, we're returning a set of validation errors:
|
239
|
+
|
225
240
|
```
|
226
241
|
HTTP/1.1 400 Bad Request
|
227
242
|
Content-Type: application/problem+json
|
228
243
|
Content-Language: en
|
229
244
|
{
|
230
|
-
|
231
|
-
|
232
|
-
|
233
|
-
|
234
|
-
|
235
|
-
|
236
|
-
|
237
|
-
|
238
|
-
|
239
|
-
|
245
|
+
"type": "https://example.net/validation-error",
|
246
|
+
"title": "Your request parameters didn't validate.",
|
247
|
+
"instance": "<trace_id>",
|
248
|
+
"invalid_parameters": [
|
249
|
+
{
|
250
|
+
"name": "age",
|
251
|
+
"reason": "must be a positive integer"
|
252
|
+
},
|
253
|
+
{
|
254
|
+
"name": "color",
|
255
|
+
"reason": "must be 'green', 'red' or 'blue'"
|
256
|
+
}
|
257
|
+
]
|
240
258
|
}
|
241
259
|
```
|
242
260
|
|
@@ -244,6 +262,18 @@ Following REST patterns, `type` is both the identifier for the specific error (U
|
|
244
262
|
`type`, `title`, `status`, `detail`, and `instance` [are the standard properties][http-problem-properties], as the example shows additional properties can be added if relevant to the error.
|
245
263
|
Note that this means a single response can not contain both a success and a failure (or even two failures that are significant enough to require two different high level problems).
|
246
264
|
|
265
|
+
To keep things consistent, only the following additional keys are available:
|
266
|
+
|
267
|
+
| Key | Example value |
|
268
|
+
|--------------------|----------------------------------------------------------|
|
269
|
+
| invalid_parameters | [{"name": "age","reason": "must be a positive integer"}] |
|
270
|
+
|
271
|
+
If you require an additional key, raise a pull request against this file with the new key and example value
|
272
|
+
|
273
|
+
Error messages should be clear and instructive: as best as you can, tell the developer what they need to fix about their request to make it successful.
|
274
|
+
|
275
|
+
Error messages MUST not reveal underlying implementation details (e.g. parser state, class/package names). This is both unhelpful (it tells the user what is wrong with the server's software rather than what is wrong with their request) and also potentially leaks valuable information that would enable a malicious actor to break the security of the system.
|
276
|
+
|
247
277
|
### Collection and Links
|
248
278
|
- [HAL-JSON][hal] provides a consistent format supported by consumer and provider tooling. [Current Draft][hal-draft]
|
249
279
|
- Allows resources to be embedded using an `_embedded` property (with a distinguishing key).
|
@@ -268,13 +298,19 @@ All new API's shall adhere to the principles of REST (http://www.ics.uci.edu/~fi
|
|
268
298
|
- Collections are the collective term for Resources e.g. member
|
269
299
|
- Resources are nouns not verbs
|
270
300
|
- Collections are plurals
|
271
|
-
- Use HTTP methods to map CRUD actions on Resources i.e.
|
301
|
+
- Use HTTP methods to map CRUD actions on Resources i.e.
|
302
|
+
- POST creates a new Resources in a Collection
|
303
|
+
- DELETE removes a Resource
|
304
|
+
- GET lists Resources
|
305
|
+
- PUT replaces a complete Resource
|
306
|
+
- PATCH partially updates a Resource
|
272
307
|
|
273
308
|
#### Examples
|
274
309
|
- `GET members/` - lists all the resources of the collection members
|
275
310
|
- `GET members/bob` - lists the details of bob who is a resources of the collection members
|
276
|
-
- `POST members
|
277
|
-
- `PUT members/harry
|
311
|
+
- `POST members -d '{"name": "Harry", "age": 22, "phone_number": "14155550100"}'` - create a new member called Harry
|
312
|
+
- `PUT members/harry -d '{"name": "Harry", "age": 23, "phone_number": "14155550100"}'` - replace all of Harry's details
|
313
|
+
- `PATCH members/harry -d '{"age": 23}'` - update Harry's age only
|
278
314
|
- `DELETE members/steve` - remove the member Steve from the collection
|
279
315
|
|
280
316
|
### Pagination
|
data/ncco-schema.json
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: nexmo_api_specification
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.11.
|
4
|
+
version: 0.11.4
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Adam Butler
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2018-
|
11
|
+
date: 2018-06-04 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -96,7 +96,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
96
96
|
version: '0'
|
97
97
|
requirements: []
|
98
98
|
rubyforge_project:
|
99
|
-
rubygems_version: 2.6.
|
99
|
+
rubygems_version: 2.6.8
|
100
100
|
signing_key:
|
101
101
|
specification_version: 4
|
102
102
|
summary: Provides Open API Spec 3 definitions for Nexmo APIs
|