{"files":{"SKILL.md":"---\nname: aws-iot-1-click-projects-service\ndescription: \"AWS IoT 1-Click Projects Service API skill. Use when working with AWS IoT 1-Click Projects Service for projects, tags. Covers 16 endpoints.\"\nversion: 1.0.0\ngenerator: lapsh\n---\n\n# AWS IoT 1-Click Projects Service\nAPI version: 2018-05-14\n\n## Auth\nAWS SigV4\n\n## Base URL\nNot specified.\n\n## Setup\n1. Configure auth: AWS SigV4\n2. GET /projects -- lists the aws iot 1-click project(s) associated with your aws account and region.\n3. POST /projects/{projectName}/placements -- create first placement\n\n## Endpoints\n16 endpoints across 2 groups. See references/api-spec.lap for full details.\n\n### Projects\n| Method | Path | Description |\n|--------|------|-------------|\n| PUT | /projects/{projectName}/placements/{placementName}/devices/{deviceTemplateName} | Associates a physical device with a placement. |\n| POST | /projects/{projectName}/placements | Creates an empty placement. |\n| POST | /projects | Creates an empty project with a placement template. A project contains zero or more placements that adhere to the placement template defined in the project. |\n| DELETE | /projects/{projectName}/placements/{placementName} | Deletes a placement. To delete a placement, it must not have any devices associated with it.  When you delete a placement, all associated data becomes irretrievable. |\n| DELETE | /projects/{projectName} | Deletes a project. To delete a project, it must not have any placements associated with it.  When you delete a project, all associated data becomes irretrievable. |\n| GET | /projects/{projectName}/placements/{placementName} | Describes a placement in a project. |\n| GET | /projects/{projectName} | Returns an object describing a project. |\n| DELETE | /projects/{projectName}/placements/{placementName}/devices/{deviceTemplateName} | Removes a physical device from a placement. |\n| GET | /projects/{projectName}/placements/{placementName}/devices | Returns an object enumerating the devices in a placement. |\n| GET | /projects/{projectName}/placements | Lists the placement(s) of a project. |\n| GET | /projects | Lists the AWS IoT 1-Click project(s) associated with your AWS account and region. |\n| PUT | /projects/{projectName}/placements/{placementName} | Updates a placement with the given attributes. To clear an attribute, pass an empty value (i.e., \"\"). |\n| PUT | /projects/{projectName} | Updates a project associated with your AWS account and region. With the exception of device template names, you can pass just the values that need to be updated because the update request will change only the values that are provided. To clear a value, pass the empty string (i.e., \"\"). |\n\n### Tags\n| Method | Path | Description |\n|--------|------|-------------|\n| GET | /tags/{resourceArn} | Lists the tags (metadata key/value pairs) which you have assigned to the resource. |\n| POST | /tags/{resourceArn} | Creates or modifies tags for a resource. Tags are key/value pairs (metadata) that can be used to manage a resource. For more information, see AWS Tagging Strategies. |\n| DELETE | /tags/{resourceArn} | Removes one or more tags (metadata key/value pairs) from a resource. |\n\n## Common Questions\nMatch user requests to endpoints in references/api-spec.lap. Key patterns:\n- \"Update a device?\" -> PUT /projects/{projectName}/placements/{placementName}/devices/{deviceTemplateName}\n- \"Create a placement?\" -> POST /projects/{projectName}/placements\n- \"Create a project?\" -> POST /projects\n- \"Delete a placement?\" -> DELETE /projects/{projectName}/placements/{placementName}\n- \"Delete a project?\" -> DELETE /projects/{projectName}\n- \"Get placement details?\" -> GET /projects/{projectName}/placements/{placementName}\n- \"Get project details?\" -> GET /projects/{projectName}\n- \"Delete a device?\" -> DELETE /projects/{projectName}/placements/{placementName}/devices/{deviceTemplateName}\n- \"List all devices?\" -> GET /projects/{projectName}/placements/{placementName}/devices\n- \"List all placements?\" -> GET /projects/{projectName}/placements\n- \"List all projects?\" -> GET /projects\n- \"Get tag details?\" -> GET /tags/{resourceArn}\n- \"Delete a tag?\" -> DELETE /tags/{resourceArn}\n- \"Update a placement?\" -> PUT /projects/{projectName}/placements/{placementName}\n- \"Update a project?\" -> PUT /projects/{projectName}\n- \"How to authenticate?\" -> See Auth section above\n\n## Response Tips\n- Check response schemas in references/api-spec.lap for field details\n- Create/update endpoints return the modified resource on success\n\n## References\n- Full spec: See references/api-spec.lap for complete endpoint details, parameter tables, and response schemas\n\n> Generated from the official API spec by [LAP](https://lap.sh)\n","references/api-spec.lap":"@lap v0.3\n# Machine-readable API spec. Each @endpoint block is one API call.\n@api AWS IoT 1-Click Projects Service\n@version 2018-05-14\n@auth AWS SigV4\n@endpoints 16\n@toc projects(13), tags(3)\n\n@group projects\n@endpoint PUT /projects/{projectName}/placements/{placementName}/devices/{deviceTemplateName}\n@desc Associates a physical device with a placement.\n@required {projectName: str, placementName: str, deviceTemplateName: str, deviceId: str}\n\n@endpoint POST /projects/{projectName}/placements\n@desc Creates an empty placement.\n@required {projectName: str, placementName: str}\n@optional {attributes: map<str,str>}\n\n@endpoint POST /projects\n@desc Creates an empty project with a placement template. A project contains zero or more placements that adhere to the placement template defined in the project.\n@required {projectName: str}\n@optional {description: str, placementTemplate: PlacementTemplate, tags: map<str,str>}\n\n@endpoint DELETE /projects/{projectName}/placements/{placementName}\n@desc Deletes a placement. To delete a placement, it must not have any devices associated with it.  When you delete a placement, all associated data becomes irretrievable.\n@required {placementName: str, projectName: str}\n\n@endpoint DELETE /projects/{projectName}\n@desc Deletes a project. To delete a project, it must not have any placements associated with it.  When you delete a project, all associated data becomes irretrievable.\n@required {projectName: str}\n\n@endpoint GET /projects/{projectName}/placements/{placementName}\n@desc Describes a placement in a project.\n@required {placementName: str, projectName: str}\n@returns(200) {placement: PlacementDescription{projectName: str, placementName: str, attributes: map<str, str>: any, createdDate: str(timestamp), updatedDate: str(timestamp)}}\n\n@endpoint GET /projects/{projectName}\n@desc Returns an object describing a project.\n@required {projectName: str}\n@returns(200) {project: ProjectDescription{arn: str?, projectName: str, description: str?, createdDate: str(timestamp), updatedDate: str(timestamp), placementTemplate: PlacementTemplate?{defaultAttributes: map<str, str>?: any, deviceTemplates: map<str, DeviceTemplate>?: any}, tags: map<str, str>?: any}}\n\n@endpoint DELETE /projects/{projectName}/placements/{placementName}/devices/{deviceTemplateName}\n@desc Removes a physical device from a placement.\n@required {projectName: str, placementName: str, deviceTemplateName: str}\n\n@endpoint GET /projects/{projectName}/placements/{placementName}/devices\n@desc Returns an object enumerating the devices in a placement.\n@required {projectName: str, placementName: str}\n@returns(200) {devices: map<str,str>}\n\n@endpoint GET /projects/{projectName}/placements\n@desc Lists the placement(s) of a project.\n@required {projectName: str}\n@optional {nextToken: str, maxResults: int}\n@returns(200) {placements: [PlacementSummary], nextToken: str?}\n\n@endpoint GET /projects\n@desc Lists the AWS IoT 1-Click project(s) associated with your AWS account and region.\n@optional {nextToken: str, maxResults: int}\n@returns(200) {projects: [ProjectSummary], nextToken: str?}\n\n@endgroup\n\n@group tags\n@endpoint GET /tags/{resourceArn}\n@desc Lists the tags (metadata key/value pairs) which you have assigned to the resource.\n@required {resourceArn: str}\n@returns(200) {tags: map<str,str>?}\n\n@endpoint POST /tags/{resourceArn}\n@desc Creates or modifies tags for a resource. Tags are key/value pairs (metadata) that can be used to manage a resource. For more information, see AWS Tagging Strategies.\n@required {resourceArn: str, tags: map<str,str>}\n\n@endpoint DELETE /tags/{resourceArn}\n@desc Removes one or more tags (metadata key/value pairs) from a resource.\n@required {resourceArn: str, tagKeys: [str]}\n\n@endgroup\n\n@group projects\n@endpoint PUT /projects/{projectName}/placements/{placementName}\n@desc Updates a placement with the given attributes. To clear an attribute, pass an empty value (i.e., \"\").\n@required {placementName: str, projectName: str}\n@optional {attributes: map<str,str>}\n\n@endpoint PUT /projects/{projectName}\n@desc Updates a project associated with your AWS account and region. With the exception of device template names, you can pass just the values that need to be updated because the update request will change only the values that are provided. To clear a value, pass the empty string (i.e., \"\").\n@required {projectName: str}\n@optional {description: str, placementTemplate: PlacementTemplate}\n\n@endgroup\n\n@end\n"}}