1{ 2 "version":"2.0", 3 "metadata":{ 4 "apiVersion":"2018-05-14", 5 "endpointPrefix":"projects.iot1click", 6 "jsonVersion":"1.1", 7 "protocol":"rest-json", 8 "serviceAbbreviation":"AWS IoT 1-Click Projects", 9 "serviceFullName":"AWS IoT 1-Click Projects Service", 10 "serviceId":"IoT 1Click Projects", 11 "signatureVersion":"v4", 12 "signingName":"iot1click", 13 "uid":"iot1click-projects-2018-05-14" 14 }, 15 "operations":{ 16 "AssociateDeviceWithPlacement":{ 17 "name":"AssociateDeviceWithPlacement", 18 "http":{ 19 "method":"PUT", 20 "requestUri":"/projects/{projectName}/placements/{placementName}/devices/{deviceTemplateName}" 21 }, 22 "input":{"shape":"AssociateDeviceWithPlacementRequest"}, 23 "output":{"shape":"AssociateDeviceWithPlacementResponse"}, 24 "errors":[ 25 {"shape":"InternalFailureException"}, 26 {"shape":"InvalidRequestException"}, 27 {"shape":"ResourceConflictException"}, 28 {"shape":"ResourceNotFoundException"} 29 ] 30 }, 31 "CreatePlacement":{ 32 "name":"CreatePlacement", 33 "http":{ 34 "method":"POST", 35 "requestUri":"/projects/{projectName}/placements" 36 }, 37 "input":{"shape":"CreatePlacementRequest"}, 38 "output":{"shape":"CreatePlacementResponse"}, 39 "errors":[ 40 {"shape":"InternalFailureException"}, 41 {"shape":"InvalidRequestException"}, 42 {"shape":"ResourceConflictException"}, 43 {"shape":"ResourceNotFoundException"} 44 ] 45 }, 46 "CreateProject":{ 47 "name":"CreateProject", 48 "http":{ 49 "method":"POST", 50 "requestUri":"/projects" 51 }, 52 "input":{"shape":"CreateProjectRequest"}, 53 "output":{"shape":"CreateProjectResponse"}, 54 "errors":[ 55 {"shape":"InternalFailureException"}, 56 {"shape":"InvalidRequestException"}, 57 {"shape":"ResourceConflictException"} 58 ] 59 }, 60 "DeletePlacement":{ 61 "name":"DeletePlacement", 62 "http":{ 63 "method":"DELETE", 64 "requestUri":"/projects/{projectName}/placements/{placementName}" 65 }, 66 "input":{"shape":"DeletePlacementRequest"}, 67 "output":{"shape":"DeletePlacementResponse"}, 68 "errors":[ 69 {"shape":"InternalFailureException"}, 70 {"shape":"InvalidRequestException"}, 71 {"shape":"ResourceNotFoundException"}, 72 {"shape":"TooManyRequestsException"} 73 ] 74 }, 75 "DeleteProject":{ 76 "name":"DeleteProject", 77 "http":{ 78 "method":"DELETE", 79 "requestUri":"/projects/{projectName}" 80 }, 81 "input":{"shape":"DeleteProjectRequest"}, 82 "output":{"shape":"DeleteProjectResponse"}, 83 "errors":[ 84 {"shape":"InternalFailureException"}, 85 {"shape":"InvalidRequestException"}, 86 {"shape":"ResourceNotFoundException"}, 87 {"shape":"TooManyRequestsException"} 88 ] 89 }, 90 "DescribePlacement":{ 91 "name":"DescribePlacement", 92 "http":{ 93 "method":"GET", 94 "requestUri":"/projects/{projectName}/placements/{placementName}" 95 }, 96 "input":{"shape":"DescribePlacementRequest"}, 97 "output":{"shape":"DescribePlacementResponse"}, 98 "errors":[ 99 {"shape":"InternalFailureException"}, 100 {"shape":"InvalidRequestException"}, 101 {"shape":"ResourceNotFoundException"} 102 ] 103 }, 104 "DescribeProject":{ 105 "name":"DescribeProject", 106 "http":{ 107 "method":"GET", 108 "requestUri":"/projects/{projectName}" 109 }, 110 "input":{"shape":"DescribeProjectRequest"}, 111 "output":{"shape":"DescribeProjectResponse"}, 112 "errors":[ 113 {"shape":"InternalFailureException"}, 114 {"shape":"InvalidRequestException"}, 115 {"shape":"ResourceNotFoundException"} 116 ] 117 }, 118 "DisassociateDeviceFromPlacement":{ 119 "name":"DisassociateDeviceFromPlacement", 120 "http":{ 121 "method":"DELETE", 122 "requestUri":"/projects/{projectName}/placements/{placementName}/devices/{deviceTemplateName}" 123 }, 124 "input":{"shape":"DisassociateDeviceFromPlacementRequest"}, 125 "output":{"shape":"DisassociateDeviceFromPlacementResponse"}, 126 "errors":[ 127 {"shape":"InternalFailureException"}, 128 {"shape":"InvalidRequestException"}, 129 {"shape":"ResourceNotFoundException"}, 130 {"shape":"TooManyRequestsException"} 131 ] 132 }, 133 "GetDevicesInPlacement":{ 134 "name":"GetDevicesInPlacement", 135 "http":{ 136 "method":"GET", 137 "requestUri":"/projects/{projectName}/placements/{placementName}/devices" 138 }, 139 "input":{"shape":"GetDevicesInPlacementRequest"}, 140 "output":{"shape":"GetDevicesInPlacementResponse"}, 141 "errors":[ 142 {"shape":"InternalFailureException"}, 143 {"shape":"InvalidRequestException"}, 144 {"shape":"ResourceNotFoundException"} 145 ] 146 }, 147 "ListPlacements":{ 148 "name":"ListPlacements", 149 "http":{ 150 "method":"GET", 151 "requestUri":"/projects/{projectName}/placements" 152 }, 153 "input":{"shape":"ListPlacementsRequest"}, 154 "output":{"shape":"ListPlacementsResponse"}, 155 "errors":[ 156 {"shape":"InternalFailureException"}, 157 {"shape":"InvalidRequestException"}, 158 {"shape":"ResourceNotFoundException"} 159 ] 160 }, 161 "ListProjects":{ 162 "name":"ListProjects", 163 "http":{ 164 "method":"GET", 165 "requestUri":"/projects" 166 }, 167 "input":{"shape":"ListProjectsRequest"}, 168 "output":{"shape":"ListProjectsResponse"}, 169 "errors":[ 170 {"shape":"InternalFailureException"}, 171 {"shape":"InvalidRequestException"} 172 ] 173 }, 174 "UpdatePlacement":{ 175 "name":"UpdatePlacement", 176 "http":{ 177 "method":"PUT", 178 "requestUri":"/projects/{projectName}/placements/{placementName}" 179 }, 180 "input":{"shape":"UpdatePlacementRequest"}, 181 "output":{"shape":"UpdatePlacementResponse"}, 182 "errors":[ 183 {"shape":"InternalFailureException"}, 184 {"shape":"InvalidRequestException"}, 185 {"shape":"ResourceNotFoundException"}, 186 {"shape":"TooManyRequestsException"} 187 ] 188 }, 189 "UpdateProject":{ 190 "name":"UpdateProject", 191 "http":{ 192 "method":"PUT", 193 "requestUri":"/projects/{projectName}" 194 }, 195 "input":{"shape":"UpdateProjectRequest"}, 196 "output":{"shape":"UpdateProjectResponse"}, 197 "errors":[ 198 {"shape":"InternalFailureException"}, 199 {"shape":"InvalidRequestException"}, 200 {"shape":"ResourceNotFoundException"}, 201 {"shape":"TooManyRequestsException"} 202 ] 203 } 204 }, 205 "shapes":{ 206 "AssociateDeviceWithPlacementRequest":{ 207 "type":"structure", 208 "required":[ 209 "projectName", 210 "placementName", 211 "deviceId", 212 "deviceTemplateName" 213 ], 214 "members":{ 215 "projectName":{ 216 "shape":"ProjectName", 217 "location":"uri", 218 "locationName":"projectName" 219 }, 220 "placementName":{ 221 "shape":"PlacementName", 222 "location":"uri", 223 "locationName":"placementName" 224 }, 225 "deviceId":{"shape":"DeviceId"}, 226 "deviceTemplateName":{ 227 "shape":"DeviceTemplateName", 228 "location":"uri", 229 "locationName":"deviceTemplateName" 230 } 231 } 232 }, 233 "AssociateDeviceWithPlacementResponse":{ 234 "type":"structure", 235 "members":{ 236 } 237 }, 238 "AttributeDefaultValue":{ 239 "type":"string", 240 "max":800 241 }, 242 "AttributeName":{ 243 "type":"string", 244 "max":128, 245 "min":1 246 }, 247 "AttributeValue":{ 248 "type":"string", 249 "max":800 250 }, 251 "Code":{"type":"string"}, 252 "CreatePlacementRequest":{ 253 "type":"structure", 254 "required":[ 255 "placementName", 256 "projectName" 257 ], 258 "members":{ 259 "placementName":{"shape":"PlacementName"}, 260 "projectName":{ 261 "shape":"ProjectName", 262 "location":"uri", 263 "locationName":"projectName" 264 }, 265 "attributes":{"shape":"PlacementAttributeMap"} 266 } 267 }, 268 "CreatePlacementResponse":{ 269 "type":"structure", 270 "members":{ 271 } 272 }, 273 "CreateProjectRequest":{ 274 "type":"structure", 275 "required":["projectName"], 276 "members":{ 277 "projectName":{"shape":"ProjectName"}, 278 "description":{"shape":"Description"}, 279 "placementTemplate":{"shape":"PlacementTemplate"} 280 } 281 }, 282 "CreateProjectResponse":{ 283 "type":"structure", 284 "members":{ 285 } 286 }, 287 "DefaultPlacementAttributeMap":{ 288 "type":"map", 289 "key":{"shape":"AttributeName"}, 290 "value":{"shape":"AttributeDefaultValue"} 291 }, 292 "DeletePlacementRequest":{ 293 "type":"structure", 294 "required":[ 295 "placementName", 296 "projectName" 297 ], 298 "members":{ 299 "placementName":{ 300 "shape":"PlacementName", 301 "location":"uri", 302 "locationName":"placementName" 303 }, 304 "projectName":{ 305 "shape":"ProjectName", 306 "location":"uri", 307 "locationName":"projectName" 308 } 309 } 310 }, 311 "DeletePlacementResponse":{ 312 "type":"structure", 313 "members":{ 314 } 315 }, 316 "DeleteProjectRequest":{ 317 "type":"structure", 318 "required":["projectName"], 319 "members":{ 320 "projectName":{ 321 "shape":"ProjectName", 322 "location":"uri", 323 "locationName":"projectName" 324 } 325 } 326 }, 327 "DeleteProjectResponse":{ 328 "type":"structure", 329 "members":{ 330 } 331 }, 332 "DescribePlacementRequest":{ 333 "type":"structure", 334 "required":[ 335 "placementName", 336 "projectName" 337 ], 338 "members":{ 339 "placementName":{ 340 "shape":"PlacementName", 341 "location":"uri", 342 "locationName":"placementName" 343 }, 344 "projectName":{ 345 "shape":"ProjectName", 346 "location":"uri", 347 "locationName":"projectName" 348 } 349 } 350 }, 351 "DescribePlacementResponse":{ 352 "type":"structure", 353 "required":["placement"], 354 "members":{ 355 "placement":{"shape":"PlacementDescription"} 356 } 357 }, 358 "DescribeProjectRequest":{ 359 "type":"structure", 360 "required":["projectName"], 361 "members":{ 362 "projectName":{ 363 "shape":"ProjectName", 364 "location":"uri", 365 "locationName":"projectName" 366 } 367 } 368 }, 369 "DescribeProjectResponse":{ 370 "type":"structure", 371 "required":["project"], 372 "members":{ 373 "project":{"shape":"ProjectDescription"} 374 } 375 }, 376 "Description":{ 377 "type":"string", 378 "max":500, 379 "min":0 380 }, 381 "DeviceCallbackKey":{ 382 "type":"string", 383 "max":128, 384 "min":1 385 }, 386 "DeviceCallbackOverrideMap":{ 387 "type":"map", 388 "key":{"shape":"DeviceCallbackKey"}, 389 "value":{"shape":"DeviceCallbackValue"} 390 }, 391 "DeviceCallbackValue":{ 392 "type":"string", 393 "max":200 394 }, 395 "DeviceId":{ 396 "type":"string", 397 "max":32, 398 "min":1 399 }, 400 "DeviceMap":{ 401 "type":"map", 402 "key":{"shape":"DeviceTemplateName"}, 403 "value":{"shape":"DeviceId"} 404 }, 405 "DeviceTemplate":{ 406 "type":"structure", 407 "members":{ 408 "deviceType":{"shape":"DeviceType"}, 409 "callbackOverrides":{"shape":"DeviceCallbackOverrideMap"} 410 } 411 }, 412 "DeviceTemplateMap":{ 413 "type":"map", 414 "key":{"shape":"DeviceTemplateName"}, 415 "value":{"shape":"DeviceTemplate"} 416 }, 417 "DeviceTemplateName":{ 418 "type":"string", 419 "max":128, 420 "min":1, 421 "pattern":"^[a-zA-Z0-9_-]+$" 422 }, 423 "DeviceType":{ 424 "type":"string", 425 "max":128 426 }, 427 "DisassociateDeviceFromPlacementRequest":{ 428 "type":"structure", 429 "required":[ 430 "projectName", 431 "placementName", 432 "deviceTemplateName" 433 ], 434 "members":{ 435 "projectName":{ 436 "shape":"ProjectName", 437 "location":"uri", 438 "locationName":"projectName" 439 }, 440 "placementName":{ 441 "shape":"PlacementName", 442 "location":"uri", 443 "locationName":"placementName" 444 }, 445 "deviceTemplateName":{ 446 "shape":"DeviceTemplateName", 447 "location":"uri", 448 "locationName":"deviceTemplateName" 449 } 450 } 451 }, 452 "DisassociateDeviceFromPlacementResponse":{ 453 "type":"structure", 454 "members":{ 455 } 456 }, 457 "GetDevicesInPlacementRequest":{ 458 "type":"structure", 459 "required":[ 460 "projectName", 461 "placementName" 462 ], 463 "members":{ 464 "projectName":{ 465 "shape":"ProjectName", 466 "location":"uri", 467 "locationName":"projectName" 468 }, 469 "placementName":{ 470 "shape":"PlacementName", 471 "location":"uri", 472 "locationName":"placementName" 473 } 474 } 475 }, 476 "GetDevicesInPlacementResponse":{ 477 "type":"structure", 478 "required":["devices"], 479 "members":{ 480 "devices":{"shape":"DeviceMap"} 481 } 482 }, 483 "InternalFailureException":{ 484 "type":"structure", 485 "required":[ 486 "code", 487 "message" 488 ], 489 "members":{ 490 "code":{"shape":"Code"}, 491 "message":{"shape":"Message"} 492 }, 493 "error":{"httpStatusCode":500}, 494 "exception":true 495 }, 496 "InvalidRequestException":{ 497 "type":"structure", 498 "required":[ 499 "code", 500 "message" 501 ], 502 "members":{ 503 "code":{"shape":"Code"}, 504 "message":{"shape":"Message"} 505 }, 506 "error":{"httpStatusCode":400}, 507 "exception":true 508 }, 509 "ListPlacementsRequest":{ 510 "type":"structure", 511 "required":["projectName"], 512 "members":{ 513 "projectName":{ 514 "shape":"ProjectName", 515 "location":"uri", 516 "locationName":"projectName" 517 }, 518 "nextToken":{ 519 "shape":"NextToken", 520 "location":"querystring", 521 "locationName":"nextToken" 522 }, 523 "maxResults":{ 524 "shape":"MaxResults", 525 "location":"querystring", 526 "locationName":"maxResults" 527 } 528 } 529 }, 530 "ListPlacementsResponse":{ 531 "type":"structure", 532 "required":["placements"], 533 "members":{ 534 "placements":{"shape":"PlacementSummaryList"}, 535 "nextToken":{"shape":"NextToken"} 536 } 537 }, 538 "ListProjectsRequest":{ 539 "type":"structure", 540 "members":{ 541 "nextToken":{ 542 "shape":"NextToken", 543 "location":"querystring", 544 "locationName":"nextToken" 545 }, 546 "maxResults":{ 547 "shape":"MaxResults", 548 "location":"querystring", 549 "locationName":"maxResults" 550 } 551 } 552 }, 553 "ListProjectsResponse":{ 554 "type":"structure", 555 "required":["projects"], 556 "members":{ 557 "projects":{"shape":"ProjectSummaryList"}, 558 "nextToken":{"shape":"NextToken"} 559 } 560 }, 561 "MaxResults":{ 562 "type":"integer", 563 "max":250, 564 "min":1 565 }, 566 "Message":{"type":"string"}, 567 "NextToken":{ 568 "type":"string", 569 "max":1024, 570 "min":1 571 }, 572 "PlacementAttributeMap":{ 573 "type":"map", 574 "key":{"shape":"AttributeName"}, 575 "value":{"shape":"AttributeValue"} 576 }, 577 "PlacementDescription":{ 578 "type":"structure", 579 "required":[ 580 "projectName", 581 "placementName", 582 "attributes", 583 "createdDate", 584 "updatedDate" 585 ], 586 "members":{ 587 "projectName":{"shape":"ProjectName"}, 588 "placementName":{"shape":"PlacementName"}, 589 "attributes":{"shape":"PlacementAttributeMap"}, 590 "createdDate":{"shape":"Time"}, 591 "updatedDate":{"shape":"Time"} 592 } 593 }, 594 "PlacementName":{ 595 "type":"string", 596 "max":128, 597 "min":1, 598 "pattern":"^[a-zA-Z0-9_-]+$" 599 }, 600 "PlacementSummary":{ 601 "type":"structure", 602 "required":[ 603 "projectName", 604 "placementName", 605 "createdDate", 606 "updatedDate" 607 ], 608 "members":{ 609 "projectName":{"shape":"ProjectName"}, 610 "placementName":{"shape":"PlacementName"}, 611 "createdDate":{"shape":"Time"}, 612 "updatedDate":{"shape":"Time"} 613 } 614 }, 615 "PlacementSummaryList":{ 616 "type":"list", 617 "member":{"shape":"PlacementSummary"} 618 }, 619 "PlacementTemplate":{ 620 "type":"structure", 621 "members":{ 622 "defaultAttributes":{"shape":"DefaultPlacementAttributeMap"}, 623 "deviceTemplates":{"shape":"DeviceTemplateMap"} 624 } 625 }, 626 "ProjectDescription":{ 627 "type":"structure", 628 "required":[ 629 "projectName", 630 "createdDate", 631 "updatedDate" 632 ], 633 "members":{ 634 "projectName":{"shape":"ProjectName"}, 635 "description":{"shape":"Description"}, 636 "createdDate":{"shape":"Time"}, 637 "updatedDate":{"shape":"Time"}, 638 "placementTemplate":{"shape":"PlacementTemplate"} 639 } 640 }, 641 "ProjectName":{ 642 "type":"string", 643 "max":128, 644 "min":1, 645 "pattern":"^[0-9A-Za-z_-]+$" 646 }, 647 "ProjectSummary":{ 648 "type":"structure", 649 "required":[ 650 "projectName", 651 "createdDate", 652 "updatedDate" 653 ], 654 "members":{ 655 "projectName":{"shape":"ProjectName"}, 656 "createdDate":{"shape":"Time"}, 657 "updatedDate":{"shape":"Time"} 658 } 659 }, 660 "ProjectSummaryList":{ 661 "type":"list", 662 "member":{"shape":"ProjectSummary"} 663 }, 664 "ResourceConflictException":{ 665 "type":"structure", 666 "required":[ 667 "code", 668 "message" 669 ], 670 "members":{ 671 "code":{"shape":"Code"}, 672 "message":{"shape":"Message"} 673 }, 674 "error":{"httpStatusCode":409}, 675 "exception":true 676 }, 677 "ResourceNotFoundException":{ 678 "type":"structure", 679 "required":[ 680 "code", 681 "message" 682 ], 683 "members":{ 684 "code":{"shape":"Code"}, 685 "message":{"shape":"Message"} 686 }, 687 "error":{"httpStatusCode":404}, 688 "exception":true 689 }, 690 "Time":{"type":"timestamp"}, 691 "TooManyRequestsException":{ 692 "type":"structure", 693 "required":[ 694 "code", 695 "message" 696 ], 697 "members":{ 698 "code":{"shape":"Code"}, 699 "message":{"shape":"Message"} 700 }, 701 "error":{"httpStatusCode":429}, 702 "exception":true 703 }, 704 "UpdatePlacementRequest":{ 705 "type":"structure", 706 "required":[ 707 "placementName", 708 "projectName" 709 ], 710 "members":{ 711 "placementName":{ 712 "shape":"PlacementName", 713 "location":"uri", 714 "locationName":"placementName" 715 }, 716 "projectName":{ 717 "shape":"ProjectName", 718 "location":"uri", 719 "locationName":"projectName" 720 }, 721 "attributes":{"shape":"PlacementAttributeMap"} 722 } 723 }, 724 "UpdatePlacementResponse":{ 725 "type":"structure", 726 "members":{ 727 } 728 }, 729 "UpdateProjectRequest":{ 730 "type":"structure", 731 "required":["projectName"], 732 "members":{ 733 "projectName":{ 734 "shape":"ProjectName", 735 "location":"uri", 736 "locationName":"projectName" 737 }, 738 "description":{"shape":"Description"}, 739 "placementTemplate":{"shape":"PlacementTemplate"} 740 } 741 }, 742 "UpdateProjectResponse":{ 743 "type":"structure", 744 "members":{ 745 } 746 } 747 } 748} 749