Amazon Outposts Sites API

The Sites API from Amazon Outposts — 5 operation(s) for sites.

GitHub OpenAPI

Operations 8

POST /sites Create Site #
GET /sites List Sites #
DELETE /sites/{SiteId} Delete Site #
GET /sites/{SiteId} Get Site #
PATCH /sites/{SiteId} Update Site #
GET /sites/{SiteId}/address Get Site Address #
PUT /sites/{SiteId}/address Update Site Address #
PATCH /sites/{SiteId}/rackPhysicalProperties Update Site Rack Physical Properties #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/amazon-outposts:amazon-outposts-sites-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Calls without X-API-Key need no key. Calls with it need a paid plan — get a key.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

amazon-outposts-sites-api-openapi.yml Raw ↑
openapi: 3.1.0
info:
  title: AWS Outposts Sites API
  version: '2019-12-03'
  description: Generated from AWS's published Smithy model for AWS Outposts. 8 operation(s).
  contact:
    name: Amazon Web Services
    url: https://aws.amazon.com/contact-us/
  license:
    name: Apache 2.0
    identifier: Apache-2.0
    url: https://github.com/aws/api-models-aws/blob/main/LICENSE
servers:
- url: https://outposts.{region}.amazonaws.com
  variables:
    region:
      default: us-east-1
security:
- sigv4: []
paths:
  /sites:
    post:
      operationId: CreateSite
      summary: Create Site
      description: Creates a site for an Outpost.
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CreateSiteOutput'
        '403':
          description: AccessDeniedException
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AccessDeniedException'
        '409':
          description: ConflictException
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ConflictException'
        '500':
          description: InternalServerException
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerException'
        '402':
          description: ServiceQuotaExceededException
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ServiceQuotaExceededException'
        '400':
          description: ValidationException
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ValidationException'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateSiteInput'
      tags:
      - Sites
    get:
      operationId: ListSites
      summary: List Sites
      description: Lists the Outpost sites for your Amazon Web Services account. Use filters to return specific results. Use
        filters to return specific results. If you specify multiple filters, the results include only the resources that match
        all of the specified filters. For a filter where you can specify multiple values, the results include items that match
        any of the values that you specify for the filter.
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ListSitesOutput'
        '403':
          description: AccessDeniedException
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AccessDeniedException'
        '500':
          description: InternalServerException
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerException'
        '400':
          description: ValidationException
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ValidationException'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ListSitesInput'
      tags:
      - Sites
  /sites/{SiteId}:
    delete:
      operationId: DeleteSite
      summary: Delete Site
      description: Deletes the specified site.
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DeleteSiteOutput'
        '403':
          description: AccessDeniedException
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AccessDeniedException'
        '409':
          description: ConflictException
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ConflictException'
        '500':
          description: InternalServerException
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerException'
        '404':
          description: NotFoundException
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/NotFoundException'
        '400':
          description: ValidationException
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ValidationException'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/DeleteSiteInput'
      tags:
      - Sites
    get:
      operationId: GetSite
      summary: Get Site
      description: Gets information about the specified Outpost site.
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetSiteOutput'
        '403':
          description: AccessDeniedException
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AccessDeniedException'
        '500':
          description: InternalServerException
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerException'
        '404':
          description: NotFoundException
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/NotFoundException'
        '400':
          description: ValidationException
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ValidationException'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/GetSiteInput'
      tags:
      - Sites
    patch:
      operationId: UpdateSite
      summary: Update Site
      description: Updates the specified site.
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UpdateSiteOutput'
        '403':
          description: AccessDeniedException
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AccessDeniedException'
        '409':
          description: ConflictException
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ConflictException'
        '500':
          description: InternalServerException
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerException'
        '404':
          description: NotFoundException
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/NotFoundException'
        '400':
          description: ValidationException
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ValidationException'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UpdateSiteInput'
      tags:
      - Sites
  /sites/{SiteId}/address:
    get:
      operationId: GetSiteAddress
      summary: Get Site Address
      description: Gets the site address of the specified site.
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetSiteAddressOutput'
        '403':
          description: AccessDeniedException
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AccessDeniedException'
        '500':
          description: InternalServerException
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerException'
        '404':
          description: NotFoundException
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/NotFoundException'
        '400':
          description: ValidationException
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ValidationException'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/GetSiteAddressInput'
      tags:
      - Sites
    put:
      operationId: UpdateSiteAddress
      summary: Update Site Address
      description: Updates the address of the specified site. You can't update a site address if there is an order in progress.
        You must wait for the order to complete or cancel the order. You can update the operating address before you place
        an order at the site, or after all Outposts that belong to the site have been deactivated.
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UpdateSiteAddressOutput'
        '403':
          description: AccessDeniedException
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AccessDeniedException'
        '409':
          description: ConflictException
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ConflictException'
        '500':
          description: InternalServerException
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerException'
        '404':
          description: NotFoundException
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/NotFoundException'
        '400':
          description: ValidationException
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ValidationException'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UpdateSiteAddressInput'
      tags:
      - Sites
  /sites/{SiteId}/rackPhysicalProperties:
    patch:
      operationId: UpdateSiteRackPhysicalProperties
      summary: Update Site Rack Physical Properties
      description: Update the physical and logistical details for a rack at a site. For more information about hardware requirements
        for racks, see Network readiness checklist in the Amazon Web Services Outposts User Guide. To update a rack at a site
        with an order of IN_PROGRESS, you must wait for the order to complete or cancel the order.
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UpdateSiteRackPhysicalPropertiesOutput'
        '403':
          description: AccessDeniedException
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AccessDeniedException'
        '409':
          description: ConflictException
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ConflictException'
        '500':
          description: InternalServerException
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerException'
        '404':
          description: NotFoundException
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/NotFoundException'
        '400':
          description: ValidationException
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ValidationException'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UpdateSiteRackPhysicalPropertiesInput'
      tags:
      - Sites
components:
  securitySchemes:
    sigv4:
      type: apiKey
      in: header
      name: Authorization
      description: AWS Signature Version 4. The Authorization header carries an AWS4-HMAC-SHA256 signature over the canonical
        request, with X-Amz-Date (and X-Amz-Security-Token for temporary credentials). Not a bearer token.
      x-aws-sigv4:
        signingName: outposts
  schemas:
    AccessDeniedException:
      type: object
      properties:
        Message:
          type: string
    Address:
      type: object
      properties:
        ContactName:
          type: string
          description: The name of the contact.
        ContactPhoneNumber:
          type: string
          description: The phone number of the contact, including the country code (for example, +12065550100).
        AddressLine1:
          type: string
          description: The first line of the address.
        AddressLine2:
          type: string
          description: The second line of the address.
        AddressLine3:
          type: string
          description: The third line of the address.
        City:
          type: string
          description: The city for the address.
        StateOrRegion:
          type: string
          description: The state for the address.
        DistrictOrCounty:
          type: string
          description: The district or county for the address.
        PostalCode:
          type: string
          description: The postal code for the address.
        CountryCode:
          type: string
          description: The ISO-3166 two-letter country code for the address.
        Municipality:
          type: string
          description: The municipality for the address.
      required:
      - ContactName
      - ContactPhoneNumber
      - AddressLine1
      - City
      - StateOrRegion
      - PostalCode
      - CountryCode
    ConflictException:
      type: object
      properties:
        Message:
          type: string
        ResourceId:
          type: string
          description: The ID of the resource causing the conflict.
        ResourceType:
          type: string
          enum:
          - OUTPOST
          - ORDER
          description: The type of the resource causing the conflict.
    CreateSiteInput:
      type: object
      properties:
        Name:
          type: string
        Description:
          type: string
        Notes:
          type: string
          description: Additional information that you provide about site access requirements, electrician scheduling, personal
            protective equipment, or regulation of equipment materials that could affect your installation process.
        Tags:
          type: object
          additionalProperties:
            type: string
          description: The tags to apply to a site.
        OperatingAddress:
          $ref: '#/components/schemas/Address'
        ShippingAddress:
          $ref: '#/components/schemas/Address'
        RackPhysicalProperties:
          $ref: '#/components/schemas/RackPhysicalProperties'
      required:
      - Name
    CreateSiteOutput:
      type: object
      properties:
        Site:
          $ref: '#/components/schemas/Site'
    DeleteSiteInput:
      type: object
      properties:
        SiteId:
          type: string
          description: The ID or the Amazon Resource Name (ARN) of the site.
      required:
      - SiteId
    DeleteSiteOutput:
      type: object
      properties: {}
    GetSiteAddressInput:
      type: object
      properties:
        SiteId:
          type: string
          description: The ID or the Amazon Resource Name (ARN) of the site.
        AddressType:
          type: string
          enum:
          - SHIPPING_ADDRESS
          - OPERATING_ADDRESS
          description: The type of the address you request.
      required:
      - SiteId
      - AddressType
    GetSiteAddressOutput:
      type: object
      properties:
        SiteId:
          type: string
        AddressType:
          type: string
          enum:
          - SHIPPING_ADDRESS
          - OPERATING_ADDRESS
          description: The type of the address you receive.
        Address:
          $ref: '#/components/schemas/Address'
    GetSiteInput:
      type: object
      properties:
        SiteId:
          type: string
          description: The ID or the Amazon Resource Name (ARN) of the site.
      required:
      - SiteId
    GetSiteOutput:
      type: object
      properties:
        Site:
          $ref: '#/components/schemas/Site'
    InternalServerException:
      type: object
      properties:
        Message:
          type: string
    ListSitesInput:
      type: object
      properties:
        NextToken:
          type: string
        MaxResults:
          type: integer
        OperatingAddressCountryCodeFilter:
          type: array
          items:
            type: string
          description: Filters the results by country code.
        OperatingAddressStateOrRegionFilter:
          type: array
          items:
            type: string
          description: Filters the results by state or region.
        OperatingAddressCityFilter:
          type: array
          items:
            type: string
          description: Filters the results by city.
    ListSitesOutput:
      type: object
      properties:
        Sites:
          type: array
          items:
            $ref: '#/components/schemas/Site'
        NextToken:
          type: string
    NotFoundException:
      type: object
      properties:
        Message:
          type: string
    RackPhysicalProperties:
      type: object
      properties:
        PowerDrawKva:
          type: string
          enum:
          - POWER_5_KVA
          - POWER_10_KVA
          - POWER_15_KVA
          - POWER_30_KVA
          description: The power draw available at the hardware placement position for the rack.
        PowerPhase:
          type: string
          enum:
          - SINGLE_PHASE
          - THREE_PHASE
          description: The power option that you can provide for hardware.
        PowerConnector:
          type: string
          enum:
          - L6_30P
          - IEC309
          - AH530P7W
          - AH532P6W
          - CS8365C
          description: The power connector for the hardware.
        PowerFeedDrop:
          type: string
          enum:
          - ABOVE_RACK
          - BELOW_RACK
          description: The position of the power feed.
        UplinkGbps:
          type: string
          enum:
          - UPLINK_1G
          - UPLINK_10G
          - UPLINK_40G
          - UPLINK_100G
          description: The uplink speed the rack supports for the connection to the Region.
        UplinkCount:
          type: string
          enum:
          - UPLINK_COUNT_1
          - UPLINK_COUNT_2
          - UPLINK_COUNT_3
          - UPLINK_COUNT_4
          - UPLINK_COUNT_5
          - UPLINK_COUNT_6
          - UPLINK_COUNT_7
          - UPLINK_COUNT_8
          - UPLINK_COUNT_12
          - UPLINK_COUNT_16
          description: The number of uplinks each Outpost network device.
        FiberOpticCableType:
          type: string
          enum:
          - SINGLE_MODE
          - MULTI_MODE
          description: The type of fiber used to attach the Outpost to the network.
        OpticalStandard:
          type: string
          enum:
          - OPTIC_10GBASE_SR
          - OPTIC_10GBASE_IR
          - OPTIC_10GBASE_LR
          - OPTIC_40GBASE_SR
          - OPTIC_40GBASE_ESR
          - OPTIC_40GBASE_IR4_LR4L
          - OPTIC_40GBASE_LR4
          - OPTIC_100GBASE_SR4
          - OPTIC_100GBASE_CWDM4
          - OPTIC_100GBASE_LR4
          - OPTIC_100G_PSM4_MSA
          - OPTIC_1000BASE_LX
          - OPTIC_1000BASE_SX
          description: The type of optical standard used to attach the Outpost to the network. This field is dependent on
            uplink speed, fiber type, and distance to the upstream device. For more information about networking requirements
            for racks, see Network in the Amazon Web Services Outposts User Guide.
        MaximumSupportedWeightLbs:
          type: string
          enum:
          - NO_LIMIT
          - MAX_1400_LBS
          - MAX_1600_LBS
          - MAX_1800_LBS
          - MAX_2000_LBS
          description: The maximum rack weight that this site can support. NO_LIMIT is over 2000 lbs (907 kg).
    ServiceQuotaExceededException:
      type: object
      properties:
        Message:
          type: string
    Site:
      type: object
      properties:
        SiteId:
          type: string
        AccountId:
          type: string
        Name:
          type: string
        Description:
          type: string
        Tags:
          type: object
          additionalProperties:
            type: string
          description: The site tags.
        SiteArn:
          type: string
        Notes:
          type: string
          description: Notes about a site.
        OperatingAddressCountryCode:
          type: string
          description: The ISO-3166 two-letter country code where the hardware is installed and powered on.
        OperatingAddressStateOrRegion:
          type: string
          description: State or region where the hardware is installed and powered on.
        OperatingAddressCity:
          type: string
          description: City where the hardware is installed and powered on.
        RackPhysicalProperties:
          $ref: '#/components/schemas/RackPhysicalProperties'
    UpdateSiteAddressInput:
      type: object
      properties:
        SiteId:
          type: string
          description: The ID or the Amazon Resource Name (ARN) of the site.
        AddressType:
          type: string
          enum:
          - SHIPPING_ADDRESS
          - OPERATING_ADDRESS
          description: The type of the address.
        Address:
          $ref: '#/components/schemas/Address'
      required:
      - SiteId
      - AddressType
      - Address
    UpdateSiteAddressOutput:
      type: object
      properties:
        AddressType:
          type: string
          enum:
          - SHIPPING_ADDRESS
          - OPERATING_ADDRESS
          description: The type of the address.
        Address:
          $ref: '#/components/schemas/Address'
    UpdateSiteInput:
      type: object
      properties:
        SiteId:
          type: string
          description: The ID or the Amazon Resource Name (ARN) of the site.
        Name:
          type: string
        Description:
          type: string
        Notes:
          type: string
          description: Notes about a site.
      required:
      - SiteId
    UpdateSiteOutput:
      type: object
      properties:
        Site:
          $ref: '#/components/schemas/Site'
    UpdateSiteRackPhysicalPropertiesInput:
      type: object
      properties:
        SiteId:
          type: string
          description: The ID or the Amazon Resource Name (ARN) of the site.
        PowerDrawKva:
          type: string
          enum:
          - POWER_5_KVA
          - POWER_10_KVA
          - POWER_15_KVA
          - POWER_30_KVA
          description: The power draw, in kVA, available at the hardware placement position for the rack.
        PowerPhase:
          type: string
          enum:
          - SINGLE_PHASE
          - THREE_PHASE
          description: 'The power option that you can provide for hardware. Single-phase AC feed: 200 V to 277 V, 50 Hz or
            60 Hz Three-phase AC feed: 346 V to 480 V, 50 Hz or 60 Hz'
        PowerConnector:
          type: string
          enum:
          - L6_30P
          - IEC309
          - AH530P7W
          - AH532P6W
          - CS8365C
          description: The power connector that Amazon Web Services should plan to provide for connections to the hardware.
            Note the correlation between PowerPhase and PowerConnector. Single-phase AC feed L6-30P – (common in US); 30A;
            single phase IEC309 (blue) – P+N+E, 6hr; 32 A; single phase Three-phase AC feed AH530P7W (red) – 3P+N+E, 7hr;
            30A; three phase AH532P6W (red) – 3P+N+E, 6hr; 32A; three phase CS8365C – (common in US); 3P+E, 50A; three phase
        PowerFeedDrop:
          type: string
          enum:
          - ABOVE_RACK
          - BELOW_RACK
          description: Indicates whether the power feed comes above or below the rack.
        UplinkGbps:
          type: string
          enum:
          - UPLINK_1G
          - UPLINK_10G
          - UPLINK_40G
          - UPLINK_100G
          description: The uplink speed the rack should support for the connection to the Region.
        UplinkCount:
          type: string
          enum:
          - UPLINK_COUNT_1
          - UPLINK_COUNT_2
          - UPLINK_COUNT_3
          - UPLINK_COUNT_4
          - UPLINK_COUNT_5
          - UPLINK_COUNT_6
          - UPLINK_COUNT_7
          - UPLINK_COUNT_8
          - UPLINK_COUNT_12
          - UPLINK_COUNT_16
          description: 'Racks come with two Outpost network devices. Depending on the supported uplink speed at the site,
            the Outpost network devices provide a variable number of uplinks. Specify the number of uplinks for each Outpost
            network device that you intend to use to connect the rack to your network. Note the correlation between UplinkGbps
            and UplinkCount. 1Gbps - Uplinks available: 1, 2, 4, 6, 8 10Gbps - Uplinks available: 1, 2, 4, 8, 12, 16 40 and
            100 Gbps- Uplinks available: 1, 2, 4'
        FiberOpticCableType:
          type: string
          enum:
          - SINGLE_MODE
          - MULTI_MODE
          description: The type of fiber that you will use to attach the Outpost to your network.
        OpticalStandard:
          type: string
          enum:
          - OPTIC_10GBASE_SR
          - OPTIC_10GBASE_IR
          - OPTIC_10GBASE_LR
          - OPTIC_40GBASE_SR
          - OPTIC_40GBASE_ESR
          - OPTIC_40GBASE_IR4_LR4L
          - OPTIC_40GBASE_LR4
          - OPTIC_100GBASE_SR4
          - OPTIC_100GBASE_CWDM4
          - OPTIC_100GBASE_LR4
          - OPTIC_100G_PSM4_MSA
          - OPTIC_1000BASE_LX
          - OPTIC_1000BASE_SX
          description: 'The type of optical standard that you will use to attach the Outpost to your network. This field is
            dependent on uplink speed, fiber type, and distance to the upstream device. For more information about networking
            requirements for racks, see Network in the Amazon Web Services Outposts User Guide. OPTIC_10GBASE_SR: 10GBASE-SR
            OPTIC_10GBASE_IR: 10GBASE-IR OPTIC_10GBASE_LR: 10GBASE-LR OPTIC_40GBASE_SR: 40GBASE-SR OPTIC_40GBASE_ESR: 40GBASE-ESR
            OPTIC_40GBASE_IR4_LR4L: 40GBASE-IR (LR4L) OPTIC_40GBASE_LR4: 40GBASE-LR4 OPTIC_100GBASE_SR4: 100GBASE-SR4 OPTIC_100GBASE_CWDM4:
            100GBASE-CWDM4 OPTIC_100GBA'
        MaximumSupportedWeightLbs:
          type: string
          enum:
          - NO_LIMIT
          - MAX_1400_LBS
          - MAX_1600_LBS
          - MAX_1800_LBS
          - MAX_2000_LBS
          description: The maximum rack weight that this site can support. NO_LIMIT is over 2000lbs.
      required:
      - SiteId
    UpdateSiteRackPhysicalPropertiesOutput:
      type: object
      properties:
        Site:
          $ref: '#/components/schemas/Site'
    ValidationException:
      type: object
      properties:
        Message:
          type: string
x-provenance:
  method: harvested
  publisher: Amazon Web Services
  source: https://raw.githubusercontent.com/aws/api-models-aws/3cd98287b471c106254abd89279cc87308d38bfd/models/outposts/service/2019-12-03/outposts-2019-12-03.json
  note: converted by smithy-to-openapi.py from AWS's Smithy model (roadmap#1001)