META-INF.smithy.outposts.smithy Maven / Gradle / Ivy
$version: "2.0"
metadata suppressions = [
{
id: "HttpMethodSemantics"
namespace: "*"
}
{
id: "HttpResponseCodeSemantics"
namespace: "*"
}
{
id: "PaginatedTrait"
namespace: "*"
}
{
id: "HttpHeaderTrait"
namespace: "*"
}
{
id: "HttpUriConflict"
namespace: "*"
}
{
id: "Service"
namespace: "*"
}
]
namespace com.amazonaws.outposts
use aws.api#service
use aws.auth#sigv4
use aws.protocols#restJson1
/// Amazon Web Services Outposts is a fully managed service that extends Amazon Web Services infrastructure, APIs, and tools to
/// customer premises. By providing local access to Amazon Web Services managed infrastructure, Amazon Web Services Outposts enables
/// customers to build and run applications on premises using the same programming interfaces as
/// in Amazon Web Services Regions, while using local compute and storage resources for lower latency and local
/// data processing needs.
@service(
sdkId: "Outposts"
arnNamespace: "outposts"
cloudFormationName: "Outposts"
cloudTrailEventSource: "outposts.amazonaws.com"
endpointPrefix: "outposts"
)
@sigv4(
name: "outposts"
)
@restJson1
@title("AWS Outposts")
service OutpostsOlafService {
version: "2019-12-03"
operations: [
CancelOrder
CreateOrder
CreateOutpost
CreateSite
DeleteOutpost
DeleteSite
GetCatalogItem
GetConnection
GetOrder
GetOutpost
GetOutpostInstanceTypes
GetSite
GetSiteAddress
ListAssets
ListCatalogItems
ListOrders
ListOutposts
ListSites
ListTagsForResource
StartConnection
TagResource
UntagResource
UpdateOutpost
UpdateSite
UpdateSiteAddress
UpdateSiteRackPhysicalProperties
]
}
/// Cancels the specified order for an Outpost.
@http(
method: "POST"
uri: "/orders/{OrderId}/cancel"
code: 200
)
operation CancelOrder {
input := {
/// The ID of the order.
@httpLabel
@required
OrderId: OrderId
}
output := {}
errors: [
AccessDeniedException
ConflictException
InternalServerException
NotFoundException
ValidationException
]
}
/// Creates an order for an Outpost.
@http(
method: "POST"
uri: "/orders"
code: 200
)
operation CreateOrder {
input := {
/// The ID or the Amazon Resource Name (ARN) of the Outpost.
@required
OutpostIdentifier: OutpostIdentifier
/// The line items that make up the order.
@required
LineItems: LineItemRequestListDefinition
/// The payment option.
@required
PaymentOption: PaymentOption
/// The payment terms.
PaymentTerm: PaymentTerm
}
output := {
/// Information about this order.
Order: Order
}
errors: [
AccessDeniedException
ConflictException
InternalServerException
NotFoundException
ServiceQuotaExceededException
ValidationException
]
}
/// Creates an Outpost.
/// You can specify either an Availability one or an AZ ID.
@http(
method: "POST"
uri: "/outposts"
code: 200
)
operation CreateOutpost {
input := {
@required
Name: OutpostName
Description: OutpostDescription
/// The ID or the Amazon Resource Name (ARN) of the site.
@required
SiteId: SiteId
AvailabilityZone: AvailabilityZone
AvailabilityZoneId: AvailabilityZoneId
/// The tags to apply to the Outpost.
Tags: TagMap
/// The type of hardware for this Outpost.
SupportedHardwareType: SupportedHardwareType
}
output := {
Outpost: Outpost
}
errors: [
AccessDeniedException
ConflictException
InternalServerException
NotFoundException
ServiceQuotaExceededException
ValidationException
]
}
/// Creates a site for an Outpost.
@http(
method: "POST"
uri: "/sites"
code: 200
)
operation CreateSite {
input := {
@required
Name: SiteName
Description: SiteDescription
/// 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.
Notes: SiteNotes
/// The tags to apply to a site.
Tags: TagMap
/// The location to install and power on the hardware. This address might be different from
/// the shipping address.
OperatingAddress: Address
/// The location to ship the hardware. This address might be different from the operating
/// address.
ShippingAddress: Address
/// Information about the physical and logistical details for the rack at this site.
/// For more information
/// about hardware requirements for racks, see Network
/// readiness checklist in the Amazon Web Services Outposts User Guide.
///
RackPhysicalProperties: RackPhysicalProperties
}
output := {
Site: Site
}
errors: [
AccessDeniedException
ConflictException
InternalServerException
ServiceQuotaExceededException
ValidationException
]
}
/// Deletes the specified Outpost.
@http(
method: "DELETE"
uri: "/outposts/{OutpostId}"
code: 200
)
operation DeleteOutpost {
input := {
/// The ID or the Amazon Resource Name (ARN) of the Outpost.
@httpLabel
@required
OutpostId: OutpostId
}
output := {}
errors: [
AccessDeniedException
ConflictException
InternalServerException
NotFoundException
ValidationException
]
}
/// Deletes the specified site.
@http(
method: "DELETE"
uri: "/sites/{SiteId}"
code: 200
)
operation DeleteSite {
input := {
/// The ID or the Amazon Resource Name (ARN) of the site.
@httpLabel
@required
SiteId: SiteId
}
output := {}
errors: [
AccessDeniedException
ConflictException
InternalServerException
NotFoundException
ValidationException
]
}
/// Gets information about the specified catalog item.
@http(
method: "GET"
uri: "/catalog/item/{CatalogItemId}"
code: 200
)
operation GetCatalogItem {
input := {
/// The ID of the catalog item.
@httpLabel
@required
CatalogItemId: SkuCode
}
output := {
/// Information about this catalog item.
CatalogItem: CatalogItem
}
errors: [
InternalServerException
NotFoundException
ValidationException
]
}
///
///
/// Amazon Web Services uses this action to install Outpost servers.
///
/// Gets information about the specified connection.
///
/// Use CloudTrail to monitor this action or Amazon Web Services managed policy for Amazon Web Services Outposts to secure it. For
/// more information, see
/// Amazon Web Services managed policies for Amazon Web Services Outposts and
/// Logging Amazon Web Services Outposts API calls with Amazon Web Services CloudTrail in the Amazon Web Services Outposts User Guide.
///
@http(
method: "GET"
uri: "/connections/{ConnectionId}"
code: 200
)
operation GetConnection {
input: GetConnectionRequest
output: GetConnectionResponse
errors: [
AccessDeniedException
InternalServerException
NotFoundException
ValidationException
]
}
/// Gets information about the specified order.
@http(
method: "GET"
uri: "/orders/{OrderId}"
code: 200
)
operation GetOrder {
input := {
/// The ID of the order.
@httpLabel
@required
OrderId: OrderId
}
output := {
Order: Order
}
errors: [
InternalServerException
NotFoundException
ValidationException
]
}
/// Gets information about the specified Outpost.
@http(
method: "GET"
uri: "/outposts/{OutpostId}"
code: 200
)
operation GetOutpost {
input := {
/// The ID or the Amazon Resource Name (ARN) of the Outpost.
@httpLabel
@required
OutpostId: OutpostId
}
output := {
Outpost: Outpost
}
errors: [
AccessDeniedException
InternalServerException
NotFoundException
ValidationException
]
}
/// Gets the instance types for the specified Outpost.
@http(
method: "GET"
uri: "/outposts/{OutpostId}/instanceTypes"
code: 200
)
@paginated(
inputToken: "NextToken"
outputToken: "NextToken"
items: "InstanceTypes"
pageSize: "MaxResults"
)
operation GetOutpostInstanceTypes {
input := {
/// The ID or the Amazon Resource Name (ARN) of the Outpost.
@httpLabel
@required
OutpostId: OutpostId
@httpQuery("NextToken")
NextToken: Token
@httpQuery("MaxResults")
MaxResults: MaxResults1000
}
output := {
InstanceTypes: InstanceTypeListDefinition
NextToken: Token
/// The ID of the Outpost.
OutpostId: OutpostId
OutpostArn: OutpostArn
}
errors: [
AccessDeniedException
InternalServerException
NotFoundException
ValidationException
]
}
/// Gets information about the specified Outpost site.
@http(
method: "GET"
uri: "/sites/{SiteId}"
code: 200
)
operation GetSite {
input := {
/// The ID or the Amazon Resource Name (ARN) of the site.
@httpLabel
@required
SiteId: SiteId
}
output := {
Site: Site
}
errors: [
AccessDeniedException
InternalServerException
NotFoundException
ValidationException
]
}
/// Gets the site address of the specified site.
@http(
method: "GET"
uri: "/sites/{SiteId}/address"
code: 200
)
operation GetSiteAddress {
input := {
/// The ID or the Amazon Resource Name (ARN) of the site.
@httpLabel
@required
SiteId: SiteId
/// The type of the address you request.
@httpQuery("AddressType")
@required
AddressType: AddressType
}
output := {
SiteId: SiteId
/// The type of the address you receive.
AddressType: AddressType
/// Information about the address.
Address: Address
}
errors: [
AccessDeniedException
InternalServerException
NotFoundException
ValidationException
]
}
/// Lists the hardware assets for the specified Outpost.
/// 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.
@http(
method: "GET"
uri: "/outposts/{OutpostIdentifier}/assets"
code: 200
)
@paginated(
inputToken: "NextToken"
outputToken: "NextToken"
items: "Assets"
pageSize: "MaxResults"
)
operation ListAssets {
input := {
/// The ID or the Amazon Resource Name (ARN) of the Outpost.
@httpLabel
@required
OutpostIdentifier: OutpostIdentifier
/// Filters the results by the host ID of a Dedicated Host.
@httpQuery("HostIdFilter")
HostIdFilter: HostIdList
@httpQuery("MaxResults")
MaxResults: MaxResults1000
@httpQuery("NextToken")
NextToken: Token
/// Filters the results by state.
@httpQuery("StatusFilter")
StatusFilter: StatusList
}
output := {
/// Information about the hardware assets.
Assets: AssetListDefinition
NextToken: Token
}
errors: [
AccessDeniedException
InternalServerException
NotFoundException
ValidationException
]
}
/// Lists the items in the catalog.
/// 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.
@http(
method: "GET"
uri: "/catalog/items"
code: 200
)
@paginated(
inputToken: "NextToken"
outputToken: "NextToken"
items: "CatalogItems"
pageSize: "MaxResults"
)
operation ListCatalogItems {
input := {
@httpQuery("NextToken")
NextToken: Token
@httpQuery("MaxResults")
MaxResults: MaxResults1000
/// Filters the results by item class.
@httpQuery("ItemClassFilter")
ItemClassFilter: CatalogItemClassList
/// Filters the results by storage option.
@httpQuery("SupportedStorageFilter")
SupportedStorageFilter: SupportedStorageList
/// Filters the results by EC2 family (for example, M5).
@httpQuery("EC2FamilyFilter")
EC2FamilyFilter: EC2FamilyList
}
output := {
/// Information about the catalog items.
CatalogItems: CatalogItemListDefinition
NextToken: Token
}
errors: [
InternalServerException
NotFoundException
ValidationException
]
}
/// Lists the Outpost orders for your Amazon Web Services account.
@http(
method: "GET"
uri: "/list-orders"
code: 200
)
@paginated(
inputToken: "NextToken"
outputToken: "NextToken"
items: "Orders"
pageSize: "MaxResults"
)
operation ListOrders {
input := {
/// The ID or the Amazon Resource Name (ARN) of the Outpost.
@httpQuery("OutpostIdentifierFilter")
OutpostIdentifierFilter: OutpostIdentifier
@httpQuery("NextToken")
NextToken: Token
@httpQuery("MaxResults")
MaxResults: MaxResults1000
}
output := {
/// Information about the orders.
Orders: OrderSummaryListDefinition
NextToken: Token
}
errors: [
AccessDeniedException
InternalServerException
NotFoundException
ValidationException
]
}
/// Lists the Outposts for your Amazon Web Services account.
/// 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.
@http(
method: "GET"
uri: "/outposts"
code: 200
)
@paginated(
inputToken: "NextToken"
outputToken: "NextToken"
items: "Outposts"
pageSize: "MaxResults"
)
operation ListOutposts {
input := {
@httpQuery("NextToken")
NextToken: Token
@httpQuery("MaxResults")
MaxResults: MaxResults1000
/// Filters the results by the lifecycle status.
@httpQuery("LifeCycleStatusFilter")
LifeCycleStatusFilter: LifeCycleStatusList
/// Filters the results by Availability Zone (for example, us-east-1a
).
@httpQuery("AvailabilityZoneFilter")
AvailabilityZoneFilter: AvailabilityZoneList
/// Filters the results by AZ ID (for example, use1-az1
).
@httpQuery("AvailabilityZoneIdFilter")
AvailabilityZoneIdFilter: AvailabilityZoneIdList
}
output := {
Outposts: outpostListDefinition
NextToken: Token
}
errors: [
AccessDeniedException
InternalServerException
ValidationException
]
}
/// 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.
@http(
method: "GET"
uri: "/sites"
code: 200
)
@paginated(
inputToken: "NextToken"
outputToken: "NextToken"
items: "Sites"
pageSize: "MaxResults"
)
operation ListSites {
input := {
@httpQuery("NextToken")
NextToken: Token
@httpQuery("MaxResults")
MaxResults: MaxResults1000
/// Filters the results by country code.
@httpQuery("OperatingAddressCountryCodeFilter")
OperatingAddressCountryCodeFilter: CountryCodeList
/// Filters the results by state or region.
@httpQuery("OperatingAddressStateOrRegionFilter")
OperatingAddressStateOrRegionFilter: StateOrRegionList
/// Filters the results by city.
@httpQuery("OperatingAddressCityFilter")
OperatingAddressCityFilter: CityList
}
output := {
Sites: siteListDefinition
NextToken: Token
}
errors: [
AccessDeniedException
InternalServerException
ValidationException
]
}
/// Lists the tags for the specified resource.
@http(
method: "GET"
uri: "/tags/{ResourceArn}"
code: 200
)
operation ListTagsForResource {
input: ListTagsForResourceRequest
output: ListTagsForResourceResponse
errors: [
InternalServerException
NotFoundException
ValidationException
]
}
///
///
/// Amazon Web Services uses this action to install Outpost servers.
///
/// Starts the connection required for Outpost server installation.
///
/// Use CloudTrail to monitor this action or Amazon Web Services managed policy for Amazon Web Services Outposts to secure it. For
/// more information, see
/// Amazon Web Services managed policies for Amazon Web Services Outposts and
/// Logging Amazon Web Services Outposts API calls with Amazon Web Services CloudTrail in the Amazon Web Services Outposts User Guide.
///
@http(
method: "POST"
uri: "/connections"
code: 200
)
operation StartConnection {
input: StartConnectionRequest
output: StartConnectionResponse
errors: [
AccessDeniedException
InternalServerException
NotFoundException
ValidationException
]
}
/// Adds tags to the specified resource.
@http(
method: "POST"
uri: "/tags/{ResourceArn}"
code: 200
)
operation TagResource {
input: TagResourceRequest
output: TagResourceResponse
errors: [
InternalServerException
NotFoundException
ValidationException
]
}
/// Removes tags from the specified resource.
@http(
method: "DELETE"
uri: "/tags/{ResourceArn}"
code: 200
)
operation UntagResource {
input: UntagResourceRequest
output: UntagResourceResponse
errors: [
InternalServerException
NotFoundException
ValidationException
]
}
/// Updates an Outpost.
@http(
method: "PATCH"
uri: "/outposts/{OutpostId}"
code: 200
)
operation UpdateOutpost {
input := {
/// The ID or the Amazon Resource Name (ARN) of the Outpost.
@httpLabel
@required
OutpostId: OutpostId
Name: OutpostName
Description: OutpostDescription
/// The type of hardware for this Outpost.
SupportedHardwareType: SupportedHardwareType
}
output := {
Outpost: Outpost
}
errors: [
AccessDeniedException
ConflictException
InternalServerException
NotFoundException
ValidationException
]
}
/// Updates the specified site.
@http(
method: "PATCH"
uri: "/sites/{SiteId}"
code: 200
)
operation UpdateSite {
input := {
/// The ID or the Amazon Resource Name (ARN) of the site.
@httpLabel
@required
SiteId: SiteId
Name: SiteName
Description: SiteDescription
/// Notes about a site.
Notes: SiteNotes
}
output := {
Site: Site
}
errors: [
AccessDeniedException
ConflictException
InternalServerException
NotFoundException
ValidationException
]
}
/// 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.
@http(
method: "PUT"
uri: "/sites/{SiteId}/address"
code: 200
)
operation UpdateSiteAddress {
input := {
/// The ID or the Amazon Resource Name (ARN) of the site.
@httpLabel
@required
SiteId: SiteId
/// The type of the address.
@required
AddressType: AddressType
/// The address for the site.
@required
Address: Address
}
output := {
/// The type of the address.
AddressType: AddressType
/// Information about an address.
Address: Address
}
errors: [
AccessDeniedException
ConflictException
InternalServerException
NotFoundException
ValidationException
]
}
/// 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.
@http(
method: "PATCH"
uri: "/sites/{SiteId}/rackPhysicalProperties"
code: 200
)
operation UpdateSiteRackPhysicalProperties {
input := {
/// The ID or the Amazon Resource Name (ARN) of the site.
@httpLabel
@required
SiteId: SiteId
/// The power draw, in kVA, available at the hardware placement position for the rack.
PowerDrawKva: PowerDrawKva
/// 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
///
///
PowerPhase: PowerPhase
/// 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
///
///
///
///
PowerConnector: PowerConnector
/// Indicates whether the power feed comes above or below the rack.
PowerFeedDrop: PowerFeedDrop
/// The uplink speed the rack should support for the connection to the Region.
UplinkGbps: UplinkGbps
/// 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
///
///
UplinkCount: UplinkCount
/// The type of fiber that you will use to attach the Outpost to your network.
FiberOpticCableType: FiberOpticCableType
/// 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_100GBASE_LR4
: 100GBASE-LR4
///
/// -
///
/// OPTIC_100G_PSM4_MSA
: 100G PSM4 MSA
///
/// -
///
/// OPTIC_1000BASE_LX
: 1000Base-LX
///
/// -
///
/// OPTIC_1000BASE_SX
: 1000Base-SX
///
///
OpticalStandard: OpticalStandard
/// The maximum rack weight that this site can support. NO_LIMIT
is over 2000lbs.
///
MaximumSupportedWeightLbs: MaximumSupportedWeightLbs
}
output := {
Site: Site
}
errors: [
AccessDeniedException
ConflictException
InternalServerException
NotFoundException
ValidationException
]
}
/// You do not have permission to perform this operation.
@error("client")
@httpError(403)
structure AccessDeniedException {
Message: ErrorMessage
}
/// Information about an address.
structure Address {
/// The name of the contact.
ContactName: ContactName
/// The phone number of the contact.
ContactPhoneNumber: ContactPhoneNumber
/// The first line of the address.
@required
AddressLine1: AddressLine1
/// The second line of the address.
AddressLine2: AddressLine2
/// The third line of the address.
AddressLine3: AddressLine3
/// The city for the address.
@required
City: City
/// The state for the address.
@required
StateOrRegion: StateOrRegion
/// The district or county for the address.
DistrictOrCounty: DistrictOrCounty
/// The postal code for the address.
@required
PostalCode: PostalCode
/// The ISO-3166 two-letter country code for the address.
@required
CountryCode: CountryCode
/// The municipality for the address.
Municipality: Municipality
}
/// Information about hardware assets.
structure AssetInfo {
/// The ID of the asset.
AssetId: AssetId
/// The rack ID of the asset.
RackId: RackId
/// The type of the asset.
AssetType: AssetType
/// Information about compute hardware assets.
ComputeAttributes: ComputeAttributes
/// The position of an asset in a rack.
AssetLocation: AssetLocation
}
/// Information about the position of the asset in a rack.
structure AssetLocation {
/// The position of an asset in a rack measured in rack units.
RackElevation: RackElevation
}
/// Information about a catalog item.
structure CatalogItem {
/// The ID of the catalog item.
CatalogItemId: SkuCode
/// The status of a catalog item.
ItemStatus: CatalogItemStatus
/// Information about the EC2 capacity of an item.
EC2Capacities: EC2CapacityListDefinition
/// Information about the power draw of an item.
PowerKva: CatalogItemPowerKva
/// The weight of the item in pounds.
WeightLbs: CatalogItemWeightLbs
/// The uplink speed this catalog item requires for the connection to the Region.
SupportedUplinkGbps: SupportedUplinkGbpsListDefinition
/// The supported storage options for the catalog item.
SupportedStorage: SupportedStorageList
}
/// Information about compute hardware assets.
structure ComputeAttributes {
/// The host ID of the Dedicated Host on the asset.
HostId: HostId
/// The state.
///
/// -
///
ACTIVE - The asset is available and can provide capacity for new compute
/// resources.
///
/// -
///
ISOLATED - The asset is undergoing maintenance and can't provide capacity for new
/// compute resources. Existing compute resources on the asset are not affected.
///
/// -
///
RETIRING - The underlying hardware for the asset is degraded. Capacity for new compute
/// resources is reduced. Amazon Web Services sends notifications for resources that must be stopped before
/// the asset can be replaced.
///
///
State: ComputeAssetState
/// A list of the names of instance families that are currently associated with a given
/// asset.
InstanceFamilies: InstanceFamilies
}
/// Updating or deleting this resource can cause an inconsistent state.
@error("client")
@httpError(409)
structure ConflictException {
Message: ErrorMessage
/// The ID of the resource causing the conflict.
ResourceId: String
/// The type of the resource causing the conflict.
ResourceType: ResourceType
}
/// Information about a connection.
structure ConnectionDetails {
/// The public key of the client.
ClientPublicKey: WireGuardPublicKey
/// The public key of the server.
ServerPublicKey: WireGuardPublicKey
/// The endpoint for the server.
ServerEndpoint: ServerEndpoint
/// The client tunnel address.
ClientTunnelAddress: CIDR
/// The server tunnel address.
ServerTunnelAddress: CIDR
/// The allowed IP addresses.
AllowedIps: CIDRList
}
/// Information about EC2 capacity.
structure EC2Capacity {
/// The family of the EC2 capacity.
Family: Family
/// The maximum size of the EC2 capacity.
MaxSize: MaxSize
/// The quantity of the EC2 capacity.
Quantity: Quantity
}
@input
structure GetConnectionRequest {
/// The ID of the connection.
@httpLabel
@required
ConnectionId: ConnectionId
}
@output
structure GetConnectionResponse {
/// The ID of the connection.
ConnectionId: ConnectionId
/// Information about the connection.
ConnectionDetails: ConnectionDetails
}
/// Information about an instance type.
structure InstanceTypeItem {
InstanceType: InstanceType
}
/// An internal error has occurred.
@error("server")
@httpError(500)
structure InternalServerException {
Message: ErrorMessage
}
/// Information about a line item.
structure LineItem {
/// The ID of the catalog item.
CatalogItemId: SkuCode
/// The ID of the line item.
LineItemId: LineItemId
/// The quantity of the line item.
Quantity: LineItemQuantity = 0
/// The status of the line item.
Status: LineItemStatus
/// Information about a line item shipment.
ShipmentInformation: ShipmentInformation
/// Information about assets.
AssetInformationList: LineItemAssetInformationList
/// The ID of the previous line item.
PreviousLineItemId: LineItemId
/// The ID of the previous order.
PreviousOrderId: OrderId
}
/// Information about a line item asset.
structure LineItemAssetInformation {
/// The ID of the asset.
AssetId: AssetId
/// The MAC addresses of the asset.
MacAddressList: MacAddressList
}
/// Information about a line item request.
structure LineItemRequest {
/// The ID of the catalog item.
CatalogItemId: SkuCode
/// The quantity of a line item request.
Quantity: LineItemQuantity = 0
}
@input
structure ListTagsForResourceRequest {
/// The Amazon Resource Name (ARN) of the resource.
@httpLabel
@required
ResourceArn: Arn
}
@output
structure ListTagsForResourceResponse {
/// The resource tags.
Tags: TagMap
}
/// The specified request is not valid.
@error("client")
@httpError(404)
structure NotFoundException {
Message: ErrorMessage
}
/// Information about an order.
structure Order {
/// The ID of the Outpost in the order.
OutpostId: OutpostIdOnly
/// The ID of the order.
OrderId: OrderId
/// The status of the order.
///
/// -
///
/// PREPARING
- Order is received and being prepared.
///
/// -
///
/// IN_PROGRESS
- Order is either being built, shipped, or installed. To get
/// more details, see the line item status.
///
/// -
///
/// COMPLETED
- Order is complete.
///
/// -
///
/// CANCELLED
- Order is cancelled.
///
/// -
///
/// ERROR
- Customer should contact support.
///
///
///
/// The following status are deprecated: RECEIVED
, PENDING
,
/// PROCESSING
, INSTALLING
, and FULFILLED
.
///
Status: OrderStatus
/// The line items for the order
LineItems: LineItemListDefinition
/// The payment option for the order.
PaymentOption: PaymentOption
/// The submission date for the order.
OrderSubmissionDate: ISO8601Timestamp
/// The fulfillment date of the order.
OrderFulfilledDate: ISO8601Timestamp
/// The payment term.
PaymentTerm: PaymentTerm
/// The type of order.
OrderType: OrderType
}
/// A summary of line items in your order.
structure OrderSummary {
/// The ID of the Outpost.
OutpostId: OutpostIdOnly
/// The ID of the order.
OrderId: OrderId
/// The type of order.
OrderType: OrderType
/// The status of the order.
///
/// -
///
/// PREPARING
- Order is received and is being prepared.
///
/// -
///
/// IN_PROGRESS
- Order is either being built, shipped, or installed. For
/// more information, see the LineItem
status.
///
/// -
///
/// COMPLETED
- Order is complete.
///
/// -
///
/// CANCELLED
- Order is cancelled.
///
/// -
///
/// ERROR
- Customer should contact support.
///
///
///
/// The following statuses are deprecated: RECEIVED
, PENDING
,
/// PROCESSING
, INSTALLING
, and FULFILLED
.
///
Status: OrderStatus
/// The status of all line items in the order.
LineItemCountsByStatus: LineItemStatusCounts
/// The submission date for the order.
OrderSubmissionDate: ISO8601Timestamp
/// The fulfilment date for the order.
OrderFulfilledDate: ISO8601Timestamp
}
/// Information about an Outpost.
structure Outpost {
/// The ID of the Outpost.
OutpostId: OutpostId
OwnerId: OwnerId
OutpostArn: OutpostArn
SiteId: SiteId
Name: OutpostName
Description: OutpostDescription
LifeCycleStatus: LifeCycleStatus
AvailabilityZone: AvailabilityZone
AvailabilityZoneId: AvailabilityZoneId
/// The Outpost tags.
Tags: TagMap
SiteArn: SiteArn
/// The hardware type.
SupportedHardwareType: SupportedHardwareType
}
/// Information about the physical and logistical details for racks at sites.
/// For more information
/// about hardware requirements for racks, see Network
/// readiness checklist in the Amazon Web Services Outposts User Guide.
///
structure RackPhysicalProperties {
/// The power draw available at the hardware placement position for the rack.
PowerDrawKva: PowerDrawKva
/// The power option that you can provide for hardware.
PowerPhase: PowerPhase
/// The power connector for the hardware.
PowerConnector: PowerConnector
/// The position of the power feed.
PowerFeedDrop: PowerFeedDrop
/// The uplink speed the rack supports for the connection to the Region.
UplinkGbps: UplinkGbps
/// The number of uplinks each Outpost network device.
UplinkCount: UplinkCount
/// The type of fiber used to attach the Outpost to the network.
FiberOpticCableType: FiberOpticCableType
/// 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.
///
OpticalStandard: OpticalStandard
/// The maximum rack weight that this site can support. NO_LIMIT
is over 2000 lbs
/// (907 kg).
MaximumSupportedWeightLbs: MaximumSupportedWeightLbs
}
/// You have exceeded a service quota.
@error("client")
@httpError(402)
structure ServiceQuotaExceededException {
Message: ErrorMessage
}
/// Information about a line item shipment.
structure ShipmentInformation {
/// The tracking number of the shipment.
ShipmentTrackingNumber: TrackingId
/// The carrier of the shipment.
ShipmentCarrier: ShipmentCarrier
}
/// Information about a site.
structure Site {
SiteId: SiteId
AccountId: AccountId
Name: SiteName
Description: SiteDescription
/// The site tags.
Tags: TagMap
SiteArn: SiteArn
/// Notes about a site.
Notes: SiteNotes
/// The ISO-3166 two-letter country code where the hardware is installed and powered on.
///
OperatingAddressCountryCode: CountryCode
/// State or region where the hardware is installed and powered on.
OperatingAddressStateOrRegion: StateOrRegion
/// City where the hardware is installed and powered on.
OperatingAddressCity: City
/// Information about the physical and logistical details for a rack at the site.
RackPhysicalProperties: RackPhysicalProperties
}
@input
structure StartConnectionRequest {
/// The serial number of the dongle.
@required
DeviceSerialNumber: DeviceSerialNumber
/// The ID of the Outpost server.
@required
AssetId: AssetId
/// The public key of the client.
@required
ClientPublicKey: WireGuardPublicKey
/// The device index of the network interface on the Outpost server.
@required
NetworkInterfaceDeviceIndex: NetworkInterfaceDeviceIndex = 0
}
@output
structure StartConnectionResponse {
/// The ID of the connection.
ConnectionId: ConnectionId
/// The underlay IP address.
UnderlayIpAddress: UnderlayIpAddress
}
@input
structure TagResourceRequest {
/// The Amazon Resource Name (ARN) of the resource.
@httpLabel
@required
ResourceArn: Arn
/// The tags to add to the resource.
@required
Tags: TagMap
}
@output
structure TagResourceResponse {}
@input
structure UntagResourceRequest {
/// The Amazon Resource Name (ARN) of the resource.
@httpLabel
@required
ResourceArn: Arn
/// The tag keys.
@httpQuery("tagKeys")
@required
TagKeys: TagKeyList
}
@output
structure UntagResourceResponse {}
/// A parameter is not valid.
@error("client")
@httpError(400)
structure ValidationException {
Message: ErrorMessage
}
list AssetListDefinition {
member: AssetInfo
}
@length(
min: 1
max: 5
)
list AvailabilityZoneIdList {
member: AvailabilityZoneId
}
@length(
min: 1
max: 5
)
list AvailabilityZoneList {
member: AvailabilityZone
}
list CatalogItemClassList {
member: CatalogItemClass
}
list CatalogItemListDefinition {
member: CatalogItem
}
list CIDRList {
member: CIDR
}
list CityList {
member: City
}
list CountryCodeList {
member: CountryCode
}
list EC2CapacityListDefinition {
member: EC2Capacity
}
list EC2FamilyList {
member: Family
}
list HostIdList {
member: HostId
}
list InstanceFamilies {
member: InstanceFamilyName
}
/// Information about the instance types.
list InstanceTypeListDefinition {
member: InstanceTypeItem
}
@length(
min: 1
max: 5
)
list LifeCycleStatusList {
member: LifeCycleStatus
}
list LineItemAssetInformationList {
member: LineItemAssetInformation
}
list LineItemListDefinition {
member: LineItem
}
@length(
min: 1
max: 20
)
list LineItemRequestListDefinition {
member: LineItemRequest
}
list MacAddressList {
member: MacAddress
}
list OrderSummaryListDefinition {
member: OrderSummary
}
/// Information about the Outposts.
list outpostListDefinition {
member: Outpost
}
/// Information about the sites.
list siteListDefinition {
member: Site
}
list StateOrRegionList {
member: StateOrRegion
}
@length(
min: 1
max: 3
)
list StatusList {
member: AssetState
}
list SupportedStorageList {
member: SupportedStorageEnum
}
list SupportedUplinkGbpsListDefinition {
member: SupportedUplinkGbps
}
@length(
min: 1
max: 50
)
list TagKeyList {
member: TagKey
}
map LineItemStatusCounts {
key: LineItemStatus
value: LineItemQuantity
}
@length(
min: 1
max: 50
)
map TagMap {
key: TagKey
value: TagValue
}
/// The ID of the Amazon Web Services account.
@length(
min: 12
max: 12
)
@pattern("^\\d{12}$")
string AccountId
@length(
min: 1
max: 180
)
@pattern("^\\S[\\S ]*$")
string AddressLine1
@length(
min: 0
max: 60
)
@pattern("^\\S[\\S ]*$")
string AddressLine2
@length(
min: 0
max: 60
)
@pattern("^\\S[\\S ]*$")
string AddressLine3
enum AddressType {
SHIPPING_ADDRESS
OPERATING_ADDRESS
}
@length(
min: 0
max: 1011
)
@pattern("^(arn:aws([a-z-]+)?:outposts:[a-z\\d-]+:\\d{12}:([a-z\\d-]+)/)[a-z]{2,8}-[a-f0-9]{17}$")
string Arn
@length(
min: 1
max: 100
)
@pattern("^(\\w+)$")
string AssetId
enum AssetState {
ACTIVE
RETIRING
ISOLATED
}
enum AssetType {
COMPUTE
}
/// The Availability Zone.
@length(
min: 1
max: 1000
)
@pattern("^([a-zA-Z]+-){1,3}([a-zA-Z]+)?(\\d+[a-zA-Z]?)?$")
string AvailabilityZone
/// The ID of the Availability Zone.
@length(
min: 1
max: 255
)
@pattern("^[a-zA-Z]+\\d-[a-zA-Z]+\\d$")
string AvailabilityZoneId
enum CatalogItemClass {
RACK
SERVER
}
float CatalogItemPowerKva
enum CatalogItemStatus {
AVAILABLE
DISCONTINUED
}
integer CatalogItemWeightLbs
@length(
min: 9
max: 18
)
@pattern("^([0-9]{1,3}\\.){3}[0-9]{1,3}/[0-9]{1,2}$")
string CIDR
@length(
min: 1
max: 50
)
@pattern("^\\S[\\S ]*$")
string City
enum ComputeAssetState {
ACTIVE
ISOLATED
RETIRING
}
@length(
min: 1
max: 1024
)
@pattern("^[a-zA-Z0-9+/=]{1,1024}$")
string ConnectionId
@length(
min: 1
max: 255
)
@pattern("^\\S[\\S ]*$")
string ContactName
@length(
min: 1
max: 20
)
@pattern("^[\\S ]+$")
string ContactPhoneNumber
@length(
min: 2
max: 2
)
@pattern("^[A-Z]{2}$")
string CountryCode
@length(
min: 1
max: 100
)
@pattern("^(\\w+)$")
string DeviceSerialNumber
@length(
min: 1
max: 60
)
@pattern("^\\S[\\S ]*$")
string DistrictOrCounty
@length(
min: 1
max: 1000
)
@pattern("^[\\S \\n]+$")
string ErrorMessage
@length(
min: 1
max: 10
)
@pattern("^[a-z0-9]+$")
string Family
enum FiberOpticCableType {
SINGLE_MODE
MULTI_MODE
}
@length(
min: 1
max: 50
)
@pattern("^[A-Za-z0-9-]*$")
string HostId
@length(
min: 1
max: 200
)
@pattern("^(?:.{1,200}/)?(?:[a-z0-9-_A-Z])+$")
string InstanceFamilyName
/// The instance type.
string InstanceType
timestamp ISO8601Timestamp
/// The life cycle status.
@length(
min: 1
max: 20
)
@pattern("^[ A-Za-z]+$")
string LifeCycleStatus
@pattern("^ooi-[a-f0-9]{17}$")
string LineItemId
@default(0)
@range(
min: 1
max: 20
)
integer LineItemQuantity
enum LineItemStatus {
PREPARING
BUILDING
SHIPPED
DELIVERED
INSTALLING
INSTALLED
ERROR
CANCELLED
REPLACED
}
@length(
min: 17
max: 17
)
@pattern("^([0-9A-Fa-f]{2}[:-]){5}([0-9A-Fa-f]{2})$")
string MacAddress
enum MaximumSupportedWeightLbs {
NO_LIMIT
MAX_1400_LBS
MAX_1600_LBS
MAX_1800_LBS
MAX_2000_LBS
}
/// The maximum page size.
@range(
min: 1
max: 1000
)
integer MaxResults1000
string MaxSize
@length(
min: 0
max: 180
)
@pattern("^\\S[\\S ]*$")
string Municipality
@default(0)
@range(
min: 0
max: 1
)
integer NetworkInterfaceDeviceIndex
enum OpticalStandard {
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
}
@length(
min: 1
max: 20
)
@pattern("^oo-[a-f0-9]{17}$")
string OrderId
enum OrderStatus {
RECEIVED
PENDING
PROCESSING
INSTALLING
FULFILLED
CANCELLED
PREPARING
IN_PROGRESS
COMPLETED
ERROR
}
enum OrderType {
OUTPOST
REPLACEMENT
}
/// The Amazon Resource Name (ARN) of the Outpost.
@length(
min: 1
max: 255
)
@pattern("^arn:aws([a-z-]+)?:outposts:[a-z\\d-]+:\\d{12}:outpost/op-[a-f0-9]{17}$")
string OutpostArn
/// The description of the Outpost.
@length(
min: 0
max: 1000
)
@pattern("^[\\S ]*$")
string OutpostDescription
@length(
min: 1
max: 180
)
@pattern("^(arn:aws([a-z-]+)?:outposts:[a-z\\d-]+:\\d{12}:outpost/)?op-[a-f0-9]{17}$")
string OutpostId
@length(
min: 1
max: 180
)
@pattern("^(arn:aws([a-z-]+)?:outposts:[a-z\\d-]+:\\d{12}:outpost/)?op-[a-f0-9]{17}$")
string OutpostIdentifier
@length(
min: 1
max: 20
)
@pattern("^op-[a-f0-9]{17}$")
string OutpostIdOnly
/// The name of the Outpost.
@length(
min: 1
max: 255
)
@pattern("^[\\S ]+$")
string OutpostName
/// The Amazon Web Services account ID of the Outpost owner.
@length(
min: 12
max: 12
)
@pattern("^\\d{12}$")
string OwnerId
enum PaymentOption {
ALL_UPFRONT
NO_UPFRONT
PARTIAL_UPFRONT
}
enum PaymentTerm {
THREE_YEARS
ONE_YEAR
}
@length(
min: 1
max: 20
)
@pattern("^[a-zA-Z0-9 -]+$")
string PostalCode
enum PowerConnector {
L6_30P
IEC309
AH530P7W
AH532P6W
}
enum PowerDrawKva {
POWER_5_KVA
POWER_10_KVA
POWER_15_KVA
POWER_30_KVA
}
enum PowerFeedDrop {
ABOVE_RACK
BELOW_RACK
}
enum PowerPhase {
SINGLE_PHASE
THREE_PHASE
}
string Quantity
@range(
min: 0
max: 99
)
float RackElevation
@length(
min: 5
max: 20
)
@pattern("^[\\S \\n]+$")
string RackId
enum ResourceType {
OUTPOST
ORDER
}
@length(
min: 9
max: 21
)
@pattern("^([0-9]{1,3}\\.){3}[0-9]{1,3}:[0-9]{1,5}$")
string ServerEndpoint
enum ShipmentCarrier {
DHL
DBS
FEDEX
UPS
}
/// The Amazon Resource Name (ARN) of the site.
@length(
min: 1
max: 255
)
@pattern("^arn:aws([a-z-]+)?:outposts:[a-z\\d-]+:\\d{12}:site/(os-[a-f0-9]{17})$")
string SiteArn
/// The description of the site.
@length(
min: 1
max: 1001
)
@pattern("^[\\S ]+$")
string SiteDescription
/// The ID of the site.
@length(
min: 1
max: 255
)
@pattern("^(arn:aws([a-z-]+)?:outposts:[a-z\\d-]+:\\d{12}:site/)?(os-[a-f0-9]{17})$")
string SiteId
/// The name of the site.
@length(
min: 1
max: 1000
)
@pattern("^[\\S ]+$")
string SiteName
@length(
min: 1
max: 2000
)
@pattern("^[\\S \\n]+$")
string SiteNotes
@length(
min: 1
max: 10
)
@pattern("^OR-[A-Z0-9]{7}$")
string SkuCode
@length(
min: 1
max: 50
)
@pattern("^\\S[\\S ]*$")
string StateOrRegion
@length(
min: 1
max: 1000
)
@pattern("^[\\S \\n]+$")
string String
enum SupportedHardwareType {
RACK
SERVER
}
enum SupportedStorageEnum {
EBS
S3
}
@default(0)
integer SupportedUplinkGbps
@length(
min: 1
max: 128
)
@pattern("^(?!aws:)[a-zA-Z+-=._:/]+$")
string TagKey
@length(
min: 0
max: 256
)
@pattern("^[\\S \\n]+$")
string TagValue
/// The pagination token.
@length(
min: 1
max: 2048
)
@pattern("^(\\d+)##(\\S+)$")
string Token
@length(
min: 6
max: 42
)
@pattern("^[a-zA-Z0-9]+$")
string TrackingId
@length(
min: 7
max: 15
)
@pattern("^([0-9]{1,3}\\.){3}[0-9]{1,3}$")
string UnderlayIpAddress
enum UplinkCount {
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
}
enum UplinkGbps {
UPLINK_1G
UPLINK_10G
UPLINK_40G
UPLINK_100G
}
@length(
min: 44
max: 44
)
@pattern("^[a-zA-Z0-9/+]{43}=$")
string WireGuardPublicKey