No op gvt restore

This commit is contained in:
Jonathan Lange
2016-12-06 16:42:47 +00:00
parent 9d5d431a59
commit ce561d648c
2195 changed files with 88312 additions and 268370 deletions

View File

@@ -1,45 +0,0 @@
## Overview
Package `statsd` provides a Go [dogstatsd](http://docs.datadoghq.com/guides/dogstatsd/) client. Dogstatsd extends Statsd, adding tags
and histograms.
## Get the code
$ go get github.com/DataDog/datadog-go/statsd
## Usage
```go
// Create the client
c, err := statsd.New("127.0.0.1:8125")
if err != nil {
log.Fatal(err)
}
// Prefix every metric with the app name
c.Namespace = "flubber."
// Send the EC2 availability zone as a tag with every metric
c.Tags = append(c.Tags, "us-east-1a")
err = c.Gauge("request.duration", 1.2, nil, 1)
```
## Buffering Client
Dogstatsd accepts packets with multiple statsd payloads in them. Using the BufferingClient via `NewBufferingClient` will buffer up commands and send them when the buffer is reached or after 100msec.
## Development
Run the tests with:
$ go test
## Documentation
Please see: http://godoc.org/github.com/DataDog/datadog-go/statsd
## License
go-dogstatsd is released under the [MIT license](http://www.opensource.org/licenses/mit-license.php).
## Credits
Original code by [ooyala](https://github.com/ooyala/go-dogstatsd).

View File

@@ -1,83 +0,0 @@
# Ghost
Ghost is a web development library loosely inspired by node's [Connect library][connect]. It provides a number of simple, single-responsibility HTTP handlers that can be combined to build a full-featured web server, and a generic template engine integration interface.
It stays close to the metal, not abstracting Go's standard library away. As a matter of fact, any stdlib handler can be used with Ghost's handlers, they simply are `net/http.Handler`'s.
## Installation and documentation
`go get github.com/PuerkitoBio/ghost`
[API reference][godoc]
*Status* : Still under development, things will change.
## Example
See the /ghostest directory for a complete working example of a website built with Ghost. It shows all handlers and template support of Ghost.
## Handlers
Ghost offers the following handlers:
* BasicAuthHandler : basic authentication support.
* ContextHandler : key-value map provider for the duration of the request.
* FaviconHandler : simple and efficient favicon renderer.
* GZIPHandler : gzip-compresser for the body of the response.
* LogHandler : fully customizable request logger.
* PanicHandler : panic-catching handler to control the error response.
* SessionHandler : store-agnostic server-side session provider.
* StaticHandler : convenience handler that wraps a call to `net/http.ServeFile`.
Two stores are provided for the session persistence, `MemoryStore`, an in-memory map that is not suited for production environment, and `RedisStore`, a more robust and scalable [redigo][]-based Redis store. Because of the generic `SessionStore` interface, custom stores can easily be created as needed.
The `handlers` package also offers the `ChainableHandler` interface, which supports combining HTTP handlers in a sequential fashion, and the `ChainHandlers()` function that creates a new handler from the sequential combination of any number of handlers.
As a convenience, all functions that take a `http.Handler` as argument also have a corresponding function with the `Func` suffix that take a `http.HandlerFunc` instead as argument. This saves the type-cast when a simple handler function is passed (for example, `SessionHandler()` and `SessionHandlerFunc()`).
### Handlers Design
The HTTP handlers such as Basic Auth and Context need to store some state information to provide their functionality. Instead of using variables and a mutex to control shared access, Ghost augments the `http.ResponseWriter` interface that is part of the Handler's `ServeHTTP()` function signature. Because this instance is unique for each request and is not shared, there is no locking involved to access the state information.
However, when combining such handlers, Ghost needs a way to move through the chain of augmented ResponseWriters. This is why these *augmented writers* need to implement the `WrapWriter` interface. A single method is required, `WrappedWriter() http.ResponseWriter`, which returns the wrapped ResponseWriter.
And to get back a specific augmented writer, the `GetResponseWriter()` function is provided. It takes a ResponseWriter and a predicate function as argument, and returns the requested specific writer using the *comma-ok* pattern. Example, for the session writer:
```Go
func getSessionWriter(w http.ResponseWriter) (*sessResponseWriter, bool) {
ss, ok := GetResponseWriter(w, func(tst http.ResponseWriter) bool {
_, ok := tst.(*sessResponseWriter)
return ok
})
if ok {
return ss.(*sessResponseWriter), true
}
return nil, false
}
```
Ghost does not provide a muxer, there are already many great ones available, but I would recommend Go's native `http.ServeMux` or [pat][] because it has great features and plays well with Ghost's design. Gorilla's muxer is very popular, but since it depends on Gorilla's (mutex-based) context provider, this is redundant with Ghost's context.
## Templates
Ghost supports the following template engines:
* Go's native templates (needs work, at the moment does not work with nested templates)
* [Amber][]
TODO : Go's mustache implementation.
### Templates Design
The template engines can be registered much in the same way as database drivers, just by importing for side effects (using `_ "import/path"`). The `init()` function of the template engine's package registers the template compiler with the correct file extension, and the engine can be used.
## License
The [BSD 3-Clause license][lic].
[connect]: https://github.com/senchalabs/connect
[godoc]: http://godoc.org/github.com/PuerkitoBio/ghost
[lic]: http://opensource.org/licenses/BSD-3-Clause
[redigo]: https://github.com/garyburd/redigo
[pat]: https://github.com/bmizerany/pat
[amber]: https://github.com/eknkc/amber

View File

@@ -1,22 +0,0 @@
<html>
<head>
<title>Ghost Test</title>
<link type="text/css" rel="stylesheet" href="/public/styles.css">
<link type="text/css" rel="stylesheet" href="/public/bootstrap-combined.min.css">
</head>
<body>
<h1>Welcome to Ghost Test</h1>
<img src="/public/logo.png" alt="peace" />
<ol>
<li><a href="/session">Session</a></li>
<li><a href="/session/auth">Authenticated Session</a></li>
<li><a href="/context">Chained Context</a></li>
<li><a href="/panic">Panic</a></li>
<li><a href="/public/styles.css">Styles.css</a></li>
<li><a href="/public/jquery-2.0.0.min.js">JQuery</a></li>
<li><a href="/public/logo.png">Logo</a></li>
</ol>
<script src="/public/jquery-2.0.0.min.js"></script>
</body>
</html>

File diff suppressed because one or more lines are too long

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.4 KiB

File diff suppressed because one or more lines are too long

Binary file not shown.

Before

Width:  |  Height:  |  Size: 20 KiB

View File

@@ -1,3 +0,0 @@
body {
background-color: silver;
}

View File

@@ -1,8 +0,0 @@
!!! 5
html
head
title Chained Context
link[type="text/css"][rel="stylesheet"][href="/public/bootstrap-combined.min.css"]
body
h1 Chained Context
h2 Value found: #{Val}

View File

@@ -1,28 +0,0 @@
<html>
<head>
<title>{{ .Title }}</title>
<link type="text/css" rel="stylesheet" href="/public/styles.css">
<link type="text/css" rel="stylesheet" href="/public/bootstrap-combined.min.css">
</head>
<body>
<h1>Session: {{ .SessionID }}</h1>
<ol>
<li><a href="/">Home</a></li>
<li><a href="/session">Session</a></li>
<li><a href="/session/auth">Authenticated Session</a></li>
<li><a href="/context">Chained Context</a></li>
<li><a href="/panic">Panic</a></li>
<li><a href="/public/styles.css">Styles.css</a></li>
<li><a href="/public/jquery-2.0.0.min.js">JQuery</a></li>
<li><a href="/public/logo.png">Logo</a></li>
</ol>
<h2>Current Value: {{ .Text }}</h2>
<form method="POST">
<input type="text" name="txt" placeholder="some value to save to session"></input>
<button type="submit">Submit</button>
</form>
<script src="/public/jquery-2.0.0.min.js"></script>
</body>
</html>

File diff suppressed because one or more lines are too long

View File

@@ -1,55 +0,0 @@
# 0.9.0 (Unreleased)
* logrus/text_formatter: don't emit empty msg
* logrus/hooks/airbrake: move out of main repository
* logrus/hooks/sentry: move out of main repository
* logrus/hooks/papertrail: move out of main repository
* logrus/hooks/bugsnag: move out of main repository
# 0.8.7
* logrus/core: fix possible race (#216)
* logrus/doc: small typo fixes and doc improvements
# 0.8.6
* hooks/raven: allow passing an initialized client
# 0.8.5
* logrus/core: revert #208
# 0.8.4
* formatter/text: fix data race (#218)
# 0.8.3
* logrus/core: fix entry log level (#208)
* logrus/core: improve performance of text formatter by 40%
* logrus/core: expose `LevelHooks` type
* logrus/core: add support for DragonflyBSD and NetBSD
* formatter/text: print structs more verbosely
# 0.8.2
* logrus: fix more Fatal family functions
# 0.8.1
* logrus: fix not exiting on `Fatalf` and `Fatalln`
# 0.8.0
* logrus: defaults to stderr instead of stdout
* hooks/sentry: add special field for `*http.Request`
* formatter/text: ignore Windows for colors
# 0.7.3
* formatter/\*: allow configuration of timestamp layout
# 0.7.2
* formatter/text: Add configuration option for time format (#158)

View File

@@ -1,365 +0,0 @@
# Logrus <img src="http://i.imgur.com/hTeVwmJ.png" width="40" height="40" alt=":walrus:" class="emoji" title=":walrus:"/>&nbsp;[![Build Status](https://travis-ci.org/Sirupsen/logrus.svg?branch=master)](https://travis-ci.org/Sirupsen/logrus)&nbsp;[![godoc reference](https://godoc.org/github.com/Sirupsen/logrus?status.png)][godoc]
Logrus is a structured logger for Go (golang), completely API compatible with
the standard library logger. [Godoc][godoc]. **Please note the Logrus API is not
yet stable (pre 1.0). Logrus itself is completely stable and has been used in
many large deployments. The core API is unlikely to change much but please
version control your Logrus to make sure you aren't fetching latest `master` on
every build.**
Nicely color-coded in development (when a TTY is attached, otherwise just
plain text):
![Colored](http://i.imgur.com/PY7qMwd.png)
With `log.Formatter = new(logrus.JSONFormatter)`, for easy parsing by logstash
or Splunk:
```json
{"animal":"walrus","level":"info","msg":"A group of walrus emerges from the
ocean","size":10,"time":"2014-03-10 19:57:38.562264131 -0400 EDT"}
{"level":"warning","msg":"The group's number increased tremendously!",
"number":122,"omg":true,"time":"2014-03-10 19:57:38.562471297 -0400 EDT"}
{"animal":"walrus","level":"info","msg":"A giant walrus appears!",
"size":10,"time":"2014-03-10 19:57:38.562500591 -0400 EDT"}
{"animal":"walrus","level":"info","msg":"Tremendously sized cow enters the ocean.",
"size":9,"time":"2014-03-10 19:57:38.562527896 -0400 EDT"}
{"level":"fatal","msg":"The ice breaks!","number":100,"omg":true,
"time":"2014-03-10 19:57:38.562543128 -0400 EDT"}
```
With the default `log.Formatter = new(&log.TextFormatter{})` when a TTY is not
attached, the output is compatible with the
[logfmt](http://godoc.org/github.com/kr/logfmt) format:
```text
time="2015-03-26T01:27:38-04:00" level=debug msg="Started observing beach" animal=walrus number=8
time="2015-03-26T01:27:38-04:00" level=info msg="A group of walrus emerges from the ocean" animal=walrus size=10
time="2015-03-26T01:27:38-04:00" level=warning msg="The group's number increased tremendously!" number=122 omg=true
time="2015-03-26T01:27:38-04:00" level=debug msg="Temperature changes" temperature=-4
time="2015-03-26T01:27:38-04:00" level=panic msg="It's over 9000!" animal=orca size=9009
time="2015-03-26T01:27:38-04:00" level=fatal msg="The ice breaks!" err=&{0x2082280c0 map[animal:orca size:9009] 2015-03-26 01:27:38.441574009 -0400 EDT panic It's over 9000!} number=100 omg=true
exit status 1
```
#### Example
The simplest way to use Logrus is simply the package-level exported logger:
```go
package main
import (
log "github.com/Sirupsen/logrus"
)
func main() {
log.WithFields(log.Fields{
"animal": "walrus",
}).Info("A walrus appears")
}
```
Note that it's completely api-compatible with the stdlib logger, so you can
replace your `log` imports everywhere with `log "github.com/Sirupsen/logrus"`
and you'll now have the flexibility of Logrus. You can customize it all you
want:
```go
package main
import (
"os"
log "github.com/Sirupsen/logrus"
)
func init() {
// Log as JSON instead of the default ASCII formatter.
log.SetFormatter(&log.JSONFormatter{})
// Output to stderr instead of stdout, could also be a file.
log.SetOutput(os.Stderr)
// Only log the warning severity or above.
log.SetLevel(log.WarnLevel)
}
func main() {
log.WithFields(log.Fields{
"animal": "walrus",
"size": 10,
}).Info("A group of walrus emerges from the ocean")
log.WithFields(log.Fields{
"omg": true,
"number": 122,
}).Warn("The group's number increased tremendously!")
log.WithFields(log.Fields{
"omg": true,
"number": 100,
}).Fatal("The ice breaks!")
// A common pattern is to re-use fields between logging statements by re-using
// the logrus.Entry returned from WithFields()
contextLogger := log.WithFields(log.Fields{
"common": "this is a common field",
"other": "I also should be logged always",
})
contextLogger.Info("I'll be logged with common and other field")
contextLogger.Info("Me too")
}
```
For more advanced usage such as logging to multiple locations from the same
application, you can also create an instance of the `logrus` Logger:
```go
package main
import (
"github.com/Sirupsen/logrus"
)
// Create a new instance of the logger. You can have any number of instances.
var log = logrus.New()
func main() {
// The API for setting attributes is a little different than the package level
// exported logger. See Godoc.
log.Out = os.Stderr
log.WithFields(logrus.Fields{
"animal": "walrus",
"size": 10,
}).Info("A group of walrus emerges from the ocean")
}
```
#### Fields
Logrus encourages careful, structured logging though logging fields instead of
long, unparseable error messages. For example, instead of: `log.Fatalf("Failed
to send event %s to topic %s with key %d")`, you should log the much more
discoverable:
```go
log.WithFields(log.Fields{
"event": event,
"topic": topic,
"key": key,
}).Fatal("Failed to send event")
```
We've found this API forces you to think about logging in a way that produces
much more useful logging messages. We've been in countless situations where just
a single added field to a log statement that was already there would've saved us
hours. The `WithFields` call is optional.
In general, with Logrus using any of the `printf`-family functions should be
seen as a hint you should add a field, however, you can still use the
`printf`-family functions with Logrus.
#### Hooks
You can add hooks for logging levels. For example to send errors to an exception
tracking service on `Error`, `Fatal` and `Panic`, info to StatsD or log to
multiple places simultaneously, e.g. syslog.
Logrus comes with [built-in hooks](hooks/). Add those, or your custom hook, in
`init`:
```go
import (
log "github.com/Sirupsen/logrus"
"gopkg.in/gemnasium/logrus-airbrake-hook.v2" // the package is named "aibrake"
logrus_syslog "github.com/Sirupsen/logrus/hooks/syslog"
"log/syslog"
)
func init() {
// Use the Airbrake hook to report errors that have Error severity or above to
// an exception tracker. You can create custom hooks, see the Hooks section.
log.AddHook(airbrake.NewHook(123, "xyz", "production"))
hook, err := logrus_syslog.NewSyslogHook("udp", "localhost:514", syslog.LOG_INFO, "")
if err != nil {
log.Error("Unable to connect to local syslog daemon")
} else {
log.AddHook(hook)
}
}
```
Note: Syslog hook also support connecting to local syslog (Ex. "/dev/log" or "/var/run/syslog" or "/var/run/log"). For the detail, please check the [syslog hook README](hooks/syslog/README.md).
| Hook | Description |
| ----- | ----------- |
| [Airbrake](https://github.com/gemnasium/logrus-airbrake-hook) | Send errors to the Airbrake API V3. Uses the official [`gobrake`](https://github.com/airbrake/gobrake) behind the scenes. |
| [Airbrake "legacy"](https://github.com/gemnasium/logrus-airbrake-legacy-hook) | Send errors to an exception tracking service compatible with the Airbrake API V2. Uses [`airbrake-go`](https://github.com/tobi/airbrake-go) behind the scenes. |
| [Papertrail](https://github.com/polds/logrus-papertrail-hook) | Send errors to the [Papertrail](https://papertrailapp.com) hosted logging service via UDP. |
| [Syslog](https://github.com/Sirupsen/logrus/blob/master/hooks/syslog/syslog.go) | Send errors to remote syslog server. Uses standard library `log/syslog` behind the scenes. |
| [Bugsnag](https://github.com/Shopify/logrus-bugsnag/blob/master/bugsnag.go) | Send errors to the Bugsnag exception tracking service. |
| [Sentry](https://github.com/evalphobia/logrus_sentry) | Send errors to the Sentry error logging and aggregation service. |
| [Hiprus](https://github.com/nubo/hiprus) | Send errors to a channel in hipchat. |
| [Logrusly](https://github.com/sebest/logrusly) | Send logs to [Loggly](https://www.loggly.com/) |
| [Slackrus](https://github.com/johntdyer/slackrus) | Hook for Slack chat. |
| [Journalhook](https://github.com/wercker/journalhook) | Hook for logging to `systemd-journald` |
| [Graylog](https://github.com/gemnasium/logrus-graylog-hook) | Hook for logging to [Graylog](http://graylog2.org/) |
| [Raygun](https://github.com/squirkle/logrus-raygun-hook) | Hook for logging to [Raygun.io](http://raygun.io/) |
| [LFShook](https://github.com/rifflock/lfshook) | Hook for logging to the local filesystem |
| [Honeybadger](https://github.com/agonzalezro/logrus_honeybadger) | Hook for sending exceptions to Honeybadger |
| [Mail](https://github.com/zbindenren/logrus_mail) | Hook for sending exceptions via mail |
| [Rollrus](https://github.com/heroku/rollrus) | Hook for sending errors to rollbar |
| [Fluentd](https://github.com/evalphobia/logrus_fluent) | Hook for logging to fluentd |
| [Mongodb](https://github.com/weekface/mgorus) | Hook for logging to mongodb |
| [InfluxDB](https://github.com/Abramovic/logrus_influxdb) | Hook for logging to influxdb |
| [Octokit](https://github.com/dorajistyle/logrus-octokit-hook) | Hook for logging to github via octokit |
| [DeferPanic](https://github.com/deferpanic/dp-logrus) | Hook for logging to DeferPanic |
#### Level logging
Logrus has six logging levels: Debug, Info, Warning, Error, Fatal and Panic.
```go
log.Debug("Useful debugging information.")
log.Info("Something noteworthy happened!")
log.Warn("You should probably take a look at this.")
log.Error("Something failed but I'm not quitting.")
// Calls os.Exit(1) after logging
log.Fatal("Bye.")
// Calls panic() after logging
log.Panic("I'm bailing.")
```
You can set the logging level on a `Logger`, then it will only log entries with
that severity or anything above it:
```go
// Will log anything that is info or above (warn, error, fatal, panic). Default.
log.SetLevel(log.InfoLevel)
```
It may be useful to set `log.Level = logrus.DebugLevel` in a debug or verbose
environment if your application has that.
#### Entries
Besides the fields added with `WithField` or `WithFields` some fields are
automatically added to all logging events:
1. `time`. The timestamp when the entry was created.
2. `msg`. The logging message passed to `{Info,Warn,Error,Fatal,Panic}` after
the `AddFields` call. E.g. `Failed to send event.`
3. `level`. The logging level. E.g. `info`.
#### Environments
Logrus has no notion of environment.
If you wish for hooks and formatters to only be used in specific environments,
you should handle that yourself. For example, if your application has a global
variable `Environment`, which is a string representation of the environment you
could do:
```go
import (
log "github.com/Sirupsen/logrus"
)
init() {
// do something here to set environment depending on an environment variable
// or command-line flag
if Environment == "production" {
log.SetFormatter(&log.JSONFormatter{})
} else {
// The TextFormatter is default, you don't actually have to do this.
log.SetFormatter(&log.TextFormatter{})
}
}
```
This configuration is how `logrus` was intended to be used, but JSON in
production is mostly only useful if you do log aggregation with tools like
Splunk or Logstash.
#### Formatters
The built-in logging formatters are:
* `logrus.TextFormatter`. Logs the event in colors if stdout is a tty, otherwise
without colors.
* *Note:* to force colored output when there is no TTY, set the `ForceColors`
field to `true`. To force no colored output even if there is a TTY set the
`DisableColors` field to `true`
* `logrus.JSONFormatter`. Logs fields as JSON.
* `logrus/formatters/logstash.LogstashFormatter`. Logs fields as [Logstash](http://logstash.net) Events.
```go
logrus.SetFormatter(&logstash.LogstashFormatter{Type: “application_name"})
```
Third party logging formatters:
* [`prefixed`](https://github.com/x-cray/logrus-prefixed-formatter). Displays log entry source along with alternative layout.
* [`zalgo`](https://github.com/aybabtme/logzalgo). Invoking the P͉̫o̳̼̊w̖͈̰͎e̬͔̭͂r͚̼̹̲ ̫͓͉̳͈ō̠͕͖̚f̝͍̠ ͕̲̞͖͑Z̖̫̤̫ͪa͉̬͈̗l͖͎g̳̥o̰̥̅!̣͔̲̻͊̄ ̙̘̦̹̦.
You can define your formatter by implementing the `Formatter` interface,
requiring a `Format` method. `Format` takes an `*Entry`. `entry.Data` is a
`Fields` type (`map[string]interface{}`) with all your fields as well as the
default ones (see Entries section above):
```go
type MyJSONFormatter struct {
}
log.SetFormatter(new(MyJSONFormatter))
func (f *MyJSONFormatter) Format(entry *Entry) ([]byte, error) {
// Note this doesn't include Time, Level and Message which are available on
// the Entry. Consult `godoc` on information about those fields or read the
// source of the official loggers.
serialized, err := json.Marshal(entry.Data)
if err != nil {
return nil, fmt.Errorf("Failed to marshal fields to JSON, %v", err)
}
return append(serialized, '\n'), nil
}
```
#### Logger as an `io.Writer`
Logrus can be transformed into an `io.Writer`. That writer is the end of an `io.Pipe` and it is your responsibility to close it.
```go
w := logger.Writer()
defer w.Close()
srv := http.Server{
// create a stdlib log.Logger that writes to
// logrus.Logger.
ErrorLog: log.New(w, "", 0),
}
```
Each line written to that writer will be printed the usual way, using formatters
and hooks. The level for those entries is `info`.
#### Rotation
Log rotation is not provided with Logrus. Log rotation should be done by an
external program (like `logrotate(8)`) that can compress and delete old log
entries. It should not be a feature of the application-level logger.
#### Tools
| Tool | Description |
| ---- | ----------- |
|[Logrus Mate](https://github.com/gogap/logrus_mate)|Logrus mate is a tool for Logrus to manage loggers, you can initial logger's level, hook and formatter by config file, the logger will generated with different config at different environment.|
[godoc]: https://godoc.org/github.com/Sirupsen/logrus

View File

@@ -1,39 +0,0 @@
# Syslog Hooks for Logrus <img src="http://i.imgur.com/hTeVwmJ.png" width="40" height="40" alt=":walrus:" class="emoji" title=":walrus:"/>
## Usage
```go
import (
"log/syslog"
"github.com/Sirupsen/logrus"
logrus_syslog "github.com/Sirupsen/logrus/hooks/syslog"
)
func main() {
log := logrus.New()
hook, err := logrus_syslog.NewSyslogHook("udp", "localhost:514", syslog.LOG_INFO, "")
if err == nil {
log.Hooks.Add(hook)
}
}
```
If you want to connect to local syslog (Ex. "/dev/log" or "/var/run/syslog" or "/var/run/log"). Just assign empty string to the first two parameters of `NewSyslogHook`. It should look like the following.
```go
import (
"log/syslog"
"github.com/Sirupsen/logrus"
logrus_syslog "github.com/Sirupsen/logrus/hooks/syslog"
)
func main() {
log := logrus.New()
hook, err := logrus_syslog.NewSyslogHook("", "", syslog.LOG_INFO, "")
if err == nil {
log.Hooks.Add(hook)
}
}
```

View File

@@ -1,71 +0,0 @@
go-metrics
==========
This library provides a `metrics` package which can be used to instrument code,
expose application metrics, and profile runtime performance in a flexible manner.
Current API: [![GoDoc](https://godoc.org/github.com/armon/go-metrics?status.svg)](https://godoc.org/github.com/armon/go-metrics)
Sinks
=====
The `metrics` package makes use of a `MetricSink` interface to support delivery
to any type of backend. Currently the following sinks are provided:
* StatsiteSink : Sinks to a [statsite](https://github.com/armon/statsite/) instance (TCP)
* StatsdSink: Sinks to a [StatsD](https://github.com/etsy/statsd/) / statsite instance (UDP)
* PrometheusSink: Sinks to a [Prometheus](http://prometheus.io/) metrics endpoint (exposed via HTTP for scrapes)
* InmemSink : Provides in-memory aggregation, can be used to export stats
* FanoutSink : Sinks to multiple sinks. Enables writing to multiple statsite instances for example.
* BlackholeSink : Sinks to nowhere
In addition to the sinks, the `InmemSignal` can be used to catch a signal,
and dump a formatted output of recent metrics. For example, when a process gets
a SIGUSR1, it can dump to stderr recent performance metrics for debugging.
Examples
========
Here is an example of using the package:
func SlowMethod() {
// Profiling the runtime of a method
defer metrics.MeasureSince([]string{"SlowMethod"}, time.Now())
}
// Configure a statsite sink as the global metrics sink
sink, _ := metrics.NewStatsiteSink("statsite:8125")
metrics.NewGlobal(metrics.DefaultConfig("service-name"), sink)
// Emit a Key/Value pair
metrics.EmitKey([]string{"questions", "meaning of life"}, 42)
Here is an example of setting up an signal handler:
// Setup the inmem sink and signal handler
inm := metrics.NewInmemSink(10*time.Second, time.Minute)
sig := metrics.DefaultInmemSignal(inm)
metrics.NewGlobal(metrics.DefaultConfig("service-name"), inm)
// Run some code
inm.SetGauge([]string{"foo"}, 42)
inm.EmitKey([]string{"bar"}, 30)
inm.IncrCounter([]string{"baz"}, 42)
inm.IncrCounter([]string{"baz"}, 1)
inm.IncrCounter([]string{"baz"}, 80)
inm.AddSample([]string{"method", "wow"}, 42)
inm.AddSample([]string{"method", "wow"}, 100)
inm.AddSample([]string{"method", "wow"}, 22)
....
When a signal comes in, output like the following will be dumped to stderr:
[2014-01-28 14:57:33.04 -0800 PST][G] 'foo': 42.000
[2014-01-28 14:57:33.04 -0800 PST][P] 'bar': 30.000
[2014-01-28 14:57:33.04 -0800 PST][C] 'baz': Count: 3 Min: 1.000 Mean: 41.000 Max: 80.000 Stddev: 39.509
[2014-01-28 14:57:33.04 -0800 PST][S] 'method.wow': Count: 3 Min: 22.000 Mean: 54.667 Max: 100.000 Stddev: 40.513

View File

@@ -1,6 +0,0 @@
source 'https://rubygems.org'
gem 'yard', git: 'git://github.com/lsegal/yard'
gem 'yard-go', git: 'git://github.com/lsegal/yard-go'
gem 'rdiscount'

View File

@@ -1,98 +0,0 @@
LINTIGNOREDOT='awstesting/integration.+should not use dot imports'
LINTIGNOREDOC='service/[^/]+/(api|service|waiters)\.go:.+(comment on exported|should have comment or be unexported)'
LINTIGNORECONST='service/[^/]+/(api|service|waiters)\.go:.+(type|struct field|const|func) ([^ ]+) should be ([^ ]+)'
LINTIGNORESTUTTER='service/[^/]+/(api|service)\.go:.+(and that stutters)'
LINTIGNOREINFLECT='service/[^/]+/(api|service)\.go:.+method .+ should be '
LINTIGNOREDEPS='vendor/.+\.go'
SDK_WITH_VENDOR_PKGS=$(shell go list ./... | grep -v "/vendor/src")
SDK_ONLY_PKGS=$(shell go list ./... | grep -v "/vendor/")
all: generate unit
help:
@echo "Please use \`make <target>' where <target> is one of"
@echo " api_info to print a list of services and versions"
@echo " docs to build SDK documentation"
@echo " build to go build the SDK"
@echo " unit to run unit tests"
@echo " integration to run integration tests"
@echo " verify to verify tests"
@echo " lint to lint the SDK"
@echo " vet to vet the SDK"
@echo " generate to go generate and make services"
@echo " gen-test to generate protocol tests"
@echo " gen-services to generate services"
@echo " get-deps to go get the SDK dependencies"
@echo " get-deps-unit to get the SDK's unit test dependencies"
@echo " get-deps-integ to get the SDK's integration test dependencies"
@echo " get-deps-verify to get the SDK's verification dependencies"
generate: gen-test gen-endpoints gen-services
gen-test: gen-protocol-test
gen-services:
go generate ./service
gen-protocol-test:
go generate ./private/protocol/...
gen-endpoints:
go generate ./private/endpoints
build:
@echo "go build SDK and vendor packages"
@go build $(SDK_WITH_VENDOR_PKGS)
unit: get-deps-unit build verify
@echo "go test SDK and vendor packages"
@go test $(SDK_WITH_VENDOR_PKGS)
integration: get-deps-integ
go test -tags=integration ./awstesting/integration/customizations/...
gucumber ./awstesting/integration/smoke
verify: get-deps-verify lint vet
lint:
@echo "go lint SDK and vendor packages"
@lint=`golint ./...`; \
lint=`echo "$$lint" | grep -E -v -e ${LINTIGNOREDOT} -e ${LINTIGNOREDOC} -e ${LINTIGNORECONST} -e ${LINTIGNORESTUTTER} -e ${LINTIGNOREINFLECT} -e ${LINTIGNOREDEPS}`; \
echo "$$lint"; \
if [ "$$lint" != "" ]; then exit 1; fi
vet:
go tool vet -all -shadow $(shell ls -d */ | grep -v vendor)
get-deps: get-deps-unit get-deps-integ get-deps-verify
@echo "go get SDK dependencies"
@go get -v $(SDK_ONLY_PKGS)
get-deps-unit:
@echo "go get SDK unit testing dependancies"
go get github.com/stretchr/testify
go get github.com/smartystreets/goconvey
get-deps-integ: get-deps-unit
@echo "go get SDK integration testing dependencies"
go get github.com/lsegal/gucumber/cmd/gucumber
get-deps-verify:
@echo "go get SDK verification utilities"
go get github.com/golang/lint/golint
bench:
@echo "go bench SDK packages"
@go test -run NONE -bench . -benchmem -tags 'bench' $(SDK_ONLY_PKGS)
bench-protocol:
@echo "go bench SDK protocol marshallers"
@go test -run NONE -bench . -benchmem -tags 'bench' ./private/protocol/...
docs:
@echo "generate SDK docs"
rm -rf doc && bundle install && bundle exec yard
api_info:
@go run private/model/cli/api-info/api-info.go

View File

@@ -1,3 +0,0 @@
AWS SDK for Go
Copyright 2015 Amazon.com, Inc. or its affiliates. All Rights Reserved.
Copyright 2014-2015 Stripe, Inc.

View File

@@ -1,93 +0,0 @@
# AWS SDK for Go
[![API Reference](http://img.shields.io/badge/api-reference-blue.svg)](http://docs.aws.amazon.com/sdk-for-go/api)
[![Join the chat at https://gitter.im/aws/aws-sdk-go](https://badges.gitter.im/Join%20Chat.svg)](https://gitter.im/aws/aws-sdk-go?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)
[![Build Status](https://img.shields.io/travis/aws/aws-sdk-go.svg)](https://travis-ci.org/aws/aws-sdk-go)
[![Apache V2 License](http://img.shields.io/badge/license-Apache%20V2-blue.svg)](https://github.com/aws/aws-sdk-go/blob/master/LICENSE.txt)
aws-sdk-go is the official AWS SDK for the Go programming language.
Checkout our [release notes](https://github.com/aws/aws-sdk-go/releases) for information about the latest bug fixes, updates, and features added to the SDK.
## Installing
If you are using Go 1.5 with the `GO15VENDOREXPERIMENT=1` vendoring flag you can use the following to get the SDK as the SDK's runtime dependancies are vendored in the `vendor` folder.
$ go get -u github.com/aws/aws-sdk-go
Otherwise you'll need to tell Go to get the SDK and all of its dependancies.
$ go get -u github.com/aws/aws-sdk-go/...
## Configuring Credentials
Before using the SDK, ensure that you've configured credentials. The best
way to configure credentials on a development machine is to use the
`~/.aws/credentials` file, which might look like:
```
[default]
aws_access_key_id = AKID1234567890
aws_secret_access_key = MY-SECRET-KEY
```
You can learn more about the credentials file from this
[blog post](http://blogs.aws.amazon.com/security/post/Tx3D6U6WSFGOK2H/A-New-and-Standardized-Way-to-Manage-Credentials-in-the-AWS-SDKs).
Alternatively, you can set the following environment variables:
```
AWS_ACCESS_KEY_ID=AKID1234567890
AWS_SECRET_ACCESS_KEY=MY-SECRET-KEY
```
## Using the Go SDK
To use a service in the SDK, create a service variable by calling the `New()`
function. Once you have a service client, you can call API operations which each
return response data and a possible error.
To list a set of instance IDs from EC2, you could run:
```go
package main
import (
"fmt"
"github.com/aws/aws-sdk-go/aws"
"github.com/aws/aws-sdk-go/aws/session"
"github.com/aws/aws-sdk-go/service/ec2"
)
func main() {
// Create an EC2 service object in the "us-west-2" region
// Note that you can also configure your region globally by
// exporting the AWS_REGION environment variable
svc := ec2.New(session.New(), &aws.Config{Region: aws.String("us-west-2")})
// Call the DescribeInstances Operation
resp, err := svc.DescribeInstances(nil)
if err != nil {
panic(err)
}
// resp has all of the response data, pull out instance IDs:
fmt.Println("> Number of reservation sets: ", len(resp.Reservations))
for idx, res := range resp.Reservations {
fmt.Println(" > Number of instances: ", len(res.Instances))
for _, inst := range resp.Reservations[idx].Instances {
fmt.Println(" - Instance ID: ", *inst.InstanceId)
}
}
}
```
You can find more information and operations in our
[API documentation](http://docs.aws.amazon.com/sdk-for-go/api/).
## License
This SDK is distributed under the
[Apache License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0),
see LICENSE.txt and NOTICE.txt for more information.

View File

@@ -1,12 +0,0 @@
[default]
aws_access_key_id = accessKey
aws_secret_access_key = secret
aws_session_token = token
[no_token]
aws_access_key_id = accessKey
aws_secret_access_key = secret
[with_colon]
aws_access_key_id: accessKey
aws_secret_access_key: secret

View File

@@ -1,16 +0,0 @@
# language: en
@apigateway @client
Feature: Amazon API Gateway
Scenario: Making a request
When I call the "GetAccountRequest" API
Then the request should be successful
Scenario: Handing errors
When I attempt to call the "GetRestApi" API with:
| RestApiId | api123 |
Then I expect the response error code to be "NotFoundException"
And I expect the response error message to include:
"""
Invalid REST API identifier specified
"""

View File

@@ -1,18 +0,0 @@
# language: en
@autoscaling @client
Feature: Auto Scaling
Scenario: Making a request
When I call the "DescribeScalingProcessTypes" API
Then the value at "Processes" should be a list
Scenario: Handing errors
When I attempt to call the "CreateLaunchConfiguration" API with:
| LaunchConfigurationName | |
| ImageId | ami-12345678 |
| InstanceType | m1.small |
Then I expect the response error code to be "InvalidParameter"
And I expect the response error message to include:
"""
LaunchConfigurationName
"""

View File

@@ -1,17 +0,0 @@
# language: en
@cloudformation @client
Feature: AWS CloudFormation
Scenario: Making a request
When I call the "ListStacks" API
Then the value at "StackSummaries" should be a list
Scenario: Handling errors
When I attempt to call the "CreateStack" API with:
| StackName | fakestack |
| TemplateURL | http://s3.amazonaws.com/foo/bar |
Then I expect the response error code to be "ValidationError"
And I expect the response error message to include:
"""
TemplateURL must reference a valid S3 object to which you have access.
"""

View File

@@ -1,17 +0,0 @@
# language: en
@cloudfront @client
Feature: Amazon CloudFront
Scenario: Making a basic request
When I call the "ListDistributions" API with:
| MaxItems | 1 |
Then the value at "DistributionList.Items" should be a list
Scenario: Error handling
When I attempt to call the "GetDistribution" API with:
| Id | fake-id |
Then I expect the response error code to be "NoSuchDistribution"
And I expect the response error message to include:
"""
The specified distribution does not exist.
"""

View File

@@ -1,16 +0,0 @@
# language: en
@cloudhsm @client
Feature: Amazon CloudHSM
Scenario: Making a request
When I call the "ListHapgs" API
Then the value at "HapgList" should be a list
Scenario: Handling errors
When I attempt to call the "DescribeHapg" API with:
| HapgArn | bogus-arn |
Then I expect the response error code to be "ValidationException"
And I expect the response error message to include:
"""
Value 'bogus-arn' at 'hapgArn' failed to satisfy constraint
"""

View File

@@ -1,16 +0,0 @@
# language: en
@cloudsearch @client
Feature: Amazon CloudSearch
Scenario: Making a request
When I call the "DescribeDomains" API
Then the response should contain a "DomainStatusList"
Scenario: Handling errors
When I attempt to call the "DescribeIndexFields" API with:
| DomainName | fakedomain |
Then I expect the response error code to be "ResourceNotFound"
And I expect the response error message to include:
"""
Domain not found: fakedomain
"""

View File

@@ -1,16 +0,0 @@
# language: en
@cloudtrail @client
Feature: AWS CloudTrail
Scenario: Making a request
When I call the "DescribeTrails" API
Then the response should contain a "trailList"
Scenario: Handling errors
When I attempt to call the "DeleteTrail" API with:
| Name | faketrail |
Then I expect the response error code to be "TrailNotFoundException"
And I expect the response error message to include:
"""
Unknown trail
"""

View File

@@ -1,19 +0,0 @@
# language: en
@cloudwatch @monitoring @client
Feature: Amazon CloudWatch
Scenario: Making a request
When I call the "ListMetrics" API with:
| Namespace | AWS/EC2 |
Then the value at "Metrics" should be a list
Scenario: Handling errors
When I attempt to call the "SetAlarmState" API with:
| AlarmName | abc |
| StateValue | mno |
| StateReason | xyz |
Then I expect the response error code to be "ValidationError"
And I expect the response error message to include:
"""
failed to satisfy constraint
"""

View File

@@ -1,17 +0,0 @@
# language: en
@cloudwatchlogs @logs
Feature: Amazon CloudWatch Logs
Scenario: Making a request
When I call the "DescribeLogGroups" API
Then the value at "logGroups" should be a list
Scenario: Handling errors
When I attempt to call the "GetLogEvents" API with:
| logGroupName | fakegroup |
| logStreamName | fakestream |
Then I expect the response error code to be "ResourceNotFoundException"
And I expect the response error message to include:
"""
The specified log group does not exist.
"""

View File

@@ -1,16 +0,0 @@
# language: en
@codecommit @client
Feature: Amazon CodeCommit
Scenario: Making a request
When I call the "ListRepositories" API
Then the value at "repositories" should be a list
Scenario: Handling errors
When I attempt to call the "ListBranches" API with:
| repositoryName | fake-repo |
Then I expect the response error code to be "RepositoryDoesNotExistException"
And I expect the response error message to include:
"""
fake-repo does not exist
"""

View File

@@ -1,16 +0,0 @@
# language: en
@codedeploy @client
Feature: Amazon CodeDeploy
Scenario: Making a request
When I call the "ListApplications" API
Then the value at "applications" should be a list
Scenario: Handling errors
When I attempt to call the "GetDeployment" API with:
| deploymentId | d-USUAELQEX |
Then I expect the response error code to be "DeploymentDoesNotExistException"
And I expect the response error message to include:
"""
The deployment d-USUAELQEX could not be found
"""

View File

@@ -1,16 +0,0 @@
# language: en
@codepipeline @client
Feature: Amazon CodePipeline
Scenario: Making a request
When I call the "ListPipelines" API
Then the value at "pipelines" should be a list
Scenario: Handling errors
When I attempt to call the "GetPipeline" API with:
| name | fake-pipeline |
Then I expect the response error code to be "PipelineNotFoundException"
And I expect the response error message to include:
"""
does not have a pipeline with name 'fake-pipeline'
"""

View File

@@ -1,19 +0,0 @@
# language: en
@cognitoidentity @client
Feature: Amazon Cognito Idenity
Scenario: Making a request
When I call the "ListIdentityPools" API with JSON:
"""
{"MaxResults": 10}
"""
Then the value at "IdentityPools" should be a list
Scenario: Handling errors
When I attempt to call the "DescribeIdentityPool" API with:
| IdentityPoolId | us-east-1:aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee |
Then I expect the response error code to be "ResourceNotFoundException"
And I expect the response error message to include:
"""
IdentityPool 'us-east-1:aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee' not found
"""

View File

@@ -1,16 +0,0 @@
# language: en
@cognitosync @client
Feature: Amazon Cognito Sync
Scenario: Making a request
When I call the "ListIdentityPoolUsage" API
Then the value at "IdentityPoolUsages" should be a list
Scenario: Handling errors
When I attempt to call the "DescribeIdentityPoolUsage" API with:
| IdentityPoolId | us-east-1:aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee |
Then I expect the response error code to be "ResourceNotFoundException"
And I expect the response error message to include:
"""
IdentityPool 'us-east-1:aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee' not found
"""

View File

@@ -1,17 +0,0 @@
# language: en
@configservice @config @client
Feature: AWS Config
Scenario: Making a request
When I call the "DescribeConfigurationRecorders" API
Then the value at "ConfigurationRecorders" should be a list
Scenario: Handling errors
When I attempt to call the "GetResourceConfigHistory" API with:
| resourceType | fake-type |
| resourceId | fake-id |
Then I expect the response error code to be "ValidationException"
And I expect the response error message to include:
"""
failed to satisfy constraint
"""

View File

@@ -1,16 +0,0 @@
# language: en
@datapipeline @client
Feature: AWS Data Pipeline
Scenario: Making a request
When I call the "ListPipelines" API
Then the response should contain a "pipelineIdList"
Scenario: Handling errors
When I attempt to call the "GetPipelineDefinition" API with:
| pipelineId | fake-id |
Then I expect the response error code to be "PipelineNotFoundException"
And I expect the response error message to include:
"""
does not exist
"""

View File

@@ -1,16 +0,0 @@
# language: en
@devicefarm @client
Feature: AWS Device Farm
Scenario: Making a request
When I call the "ListDevices" API
Then the value at "devices" should be a list
Scenario: Handling errors
When I attempt to call the "GetDevice" API with:
| arn | arn:aws:devicefarm:us-west-2::device:000000000000000000000000fake-arn |
Then I expect the response error code to be "NotFoundException"
And I expect the response error message to include:
"""
No device was found for arn
"""

View File

@@ -1,16 +0,0 @@
# language: en
@directconnect @client
Feature: AWS Direct Connect
Scenario: Making a request
When I call the "DescribeConnections" API
Then the value at "connections" should be a list
Scenario: Handling errors
When I attempt to call the "DescribeConnections" API with:
| connectionId | fake-connection |
Then I expect the response error code to be "DirectConnectClientException"
And I expect the response error message to include:
"""
Connection ID fake-connection has an invalid format
"""

View File

@@ -1,17 +0,0 @@
# language: en
@directoryservice @ds @client
Feature: AWS Directory Service
I want to use AWS Directory Service
Scenario: Making a request
When I call the "DescribeDirectories" API
Then the value at "DirectoryDescriptions" should be a list
Scenario: Handling errors
When I attempt to call the "CreateDirectory" API with:
| Name | |
| Password | |
| Size | |
Then I expect the response error code to be "ValidationException"

View File

@@ -1,19 +0,0 @@
# language: en
@dynamodb @client
Feature: Amazon DynamoDB
Scenario: Making a request
When I call the "ListTables" API with JSON:
"""
{"Limit": 1}
"""
Then the value at "TableNames" should be a list
Scenario: Handling errors
When I attempt to call the "DescribeTable" API with:
| TableName | fake-table |
Then I expect the response error code to be "ResourceNotFoundException"
And I expect the response error message to include:
"""
Requested resource not found: Table: fake-table not found
"""

View File

@@ -1,16 +0,0 @@
# language: en
@dynamodbstreams @client
Feature: Amazon DynamoDB Streams
Scenario: Making a request
When I call the "ListStreams" API
Then the value at "Streams" should be a list
Scenario: Handling errors
When I attempt to call the "DescribeStream" API with:
| StreamArn | fake-stream |
Then I expect the response error code to be "InvalidParameter"
And I expect the response error message to include:
"""
StreamArn
"""

View File

@@ -1,18 +0,0 @@
# language: en
@ec2 @client
Feature: Amazon Elastic Compute Cloud
Scenario: Making a request
When I call the "DescribeRegions" API
Then the value at "Regions" should be a list
Scenario: Handling errors
When I attempt to call the "DescribeInstances" API with JSON:
"""
{"InstanceIds": ["i-12345678"]}
"""
Then I expect the response error code to be "InvalidInstanceID.NotFound"
And I expect the response error message to include:
"""
The instance ID 'i-12345678' does not exist
"""

View File

@@ -1,14 +0,0 @@
# language: en
@ecs @client
Feature: Amazon ECS
I want to use Amazon ECS
Scenario: Making a request
When I call the "ListClusters" API
Then the value at "clusterArns" should be a list
Scenario: Handling errors
When I attempt to call the "StopTask" API with:
| task | xxxxxxxxxxx-xxxxxxxxxxxx-xxxxxxxxxxx |
Then the error code should be "ClusterNotFoundException"

View File

@@ -1,14 +0,0 @@
# language: en
@efs @elasticfilesystem @client
Feature: Amazon Elastic File System
I want to use Amazon Elastic File System
Scenario: Making a request
When I call the "DescribeFileSystems" API
Then the value at "FileSystems" should be a list
Scenario: Handling errors
When I attempt to call the "DeleteFileSystem" API with:
| FileSystemId | fake-id |
Then the error code should be "BadRequest"

View File

@@ -1,16 +0,0 @@
# language: en
@elasticache @client
Feature: ElastiCache
Scenario: Making a request
When I call the "DescribeEvents" API
Then the value at "Events" should be a list
Scenario: Handling errors
When I attempt to call the "DescribeCacheClusters" API with:
| CacheClusterId | fake_cluster |
Then I expect the response error code to be "InvalidParameterValue"
And I expect the response error message to include:
"""
The parameter CacheClusterIdentifier is not a valid identifier.
"""

View File

@@ -1,16 +0,0 @@
# language: en
@elasticbeanstalk @client
Feature: AWS Elastic Beanstalk
Scenario: Making a request
When I call the "ListAvailableSolutionStacks" API
Then the value at "SolutionStacks" should be a list
Scenario: Handling errors
When I attempt to call the "DescribeEnvironmentResources" API with:
| EnvironmentId | fake_environment |
Then I expect the response error code to be "InvalidParameterValue"
And I expect the response error message to include:
"""
No Environment found for EnvironmentId = 'fake_environment'.
"""

View File

@@ -1,18 +0,0 @@
# language: en
@elasticloadbalancing @client
Feature: Elastic Load Balancing
Scenario: Making a request
When I call the "DescribeLoadBalancers" API
Then the value at "LoadBalancerDescriptions" should be a list
Scenario: Handling errors
When I attempt to call the "DescribeLoadBalancers" API with JSON:
"""
{"LoadBalancerNames": ["fake_load_balancer"]}
"""
Then I expect the response error code to be "ValidationError"
And I expect the response error message to include:
"""
LoadBalancer name cannot contain characters that are not letters, or digits or the dash.
"""

View File

@@ -1,16 +0,0 @@
# language: en
@elastictranscoder @client
Feature: Amazon Elastic Transcoder
Scenario: Making a request
When I call the "ListPresets" API
Then the value at "Presets" should be a list
Scenario: Handling errors
When I attempt to call the "ReadJob" API with:
| Id | fake_job |
Then I expect the response error code to be "ValidationException"
And I expect the response error message to include:
"""
Value 'fake_job' at 'id' failed to satisfy constraint
"""

View File

@@ -1,16 +0,0 @@
# language: en
@emr @client @elasticmapreduce
Feature: Amazon EMR
Scenario: Making a request
When I call the "ListClusters" API
Then the value at "Clusters" should be a list
Scenario: Handling errors
When I attempt to call the "DescribeCluster" API with:
| ClusterId | fake_cluster |
Then I expect the response error code to be "InvalidRequestException"
And I expect the response error message to include:
"""
Cluster id 'fake_cluster' is not valid.
"""

View File

@@ -1,16 +0,0 @@
# language: en
@es @elasticsearchservice
Feature: Amazon ElasticsearchService
Scenario: Making a request
When I call the "ListDomainNames" API
Then the value at "DomainNames" should be a list
Scenario: Handling errors
When I attempt to call the "DescribeElasticsearchDomain" API with:
| DomainName | not-a-domain |
Then the error code should be "ResourceNotFoundException"
And I expect the response error message to include:
"""
Domain not found: not-a-domain
"""

View File

@@ -1,16 +0,0 @@
# language: en
@glacier @client
Feature: Amazon Glacier
Scenario: Making a request
When I call the "ListVaults" API
Then the response should contain a "VaultList"
Scenario: Handling errors
When I attempt to call the "ListVaults" API with:
| accountId | abcmnoxyz |
Then I expect the response error code to be "UnrecognizedClientException"
And I expect the response error message to include:
"""
No account found for the given parameters
"""

View File

@@ -1,16 +0,0 @@
# language: en
@iam @client
Feature: AWS Identity and Access Management
Scenario: Making a request
When I call the "ListUsers" API
Then the value at "Users" should be a list
Scenario: Handling errors
When I attempt to call the "GetUser" API with:
| UserName | fake_user |
Then I expect the response error code to be "NoSuchEntity"
And I expect the response error message to include:
"""
The user with name fake_user cannot be found.
"""

View File

@@ -1,12 +0,0 @@
# language: en
@iotdataplane @client
Feature: AWS IoT Data Plane
Scenario: Handling errors
When I attempt to call the "GetThingShadow" API with:
| ThingName | "fake_thing" |
Then I expect the response error code to be "ResourceNotFoundException"
And I expect the response error message to include:
"""
Not Found
"""

View File

@@ -1,16 +0,0 @@
# language: en
@kinesis @client
Feature: AWS Kinesis
Scenario: Making a request
When I call the "ListStreams" API
Then the value at "StreamNames" should be a list
Scenario: Handling errors
When I attempt to call the "DescribeStream" API with:
| StreamName | bogus-stream-name |
Then I expect the response error code to be "ResourceNotFoundException"
And I expect the response error message to include:
"""
Stream bogus-stream-name under account
"""

View File

@@ -1,13 +0,0 @@
# language: en
@kms @client
Feature: Amazon Key Management Service
Scenario: Making a request
When I call the "ListAliases" API
Then the value at "Aliases" should be a list
Scenario: Handling errors
When I attempt to call the "GetKeyPolicy" API with:
| KeyId | fake-key |
| PolicyName | fake-policy |
Then I expect the response error code to be "NotFoundException"

View File

@@ -1,16 +0,0 @@
# language: en
@lambda @client
Feature: Amazon Lambda
Scenario: Making a request
When I call the "ListFunctions" API
Then the value at "Functions" should be a list
Scenario: Handling errors
When I attempt to call the "Invoke" API with:
| FunctionName | bogus-function |
Then I expect the response error code to be "ResourceNotFoundException"
And I expect the response error message to include:
"""
Function not found
"""

View File

@@ -1,18 +0,0 @@
# language: en
@machinelearning @client
Feature: Amazon Machine Learning
I want to use Amazon Machine Learning
Scenario: Making a request
When I call the "DescribeMLModels" API
Then the value at "Results" should be a list
Scenario: Error handling
When I attempt to call the "GetBatchPrediction" API with:
| BatchPredictionId | fake-id |
Then the error code should be "ResourceNotFoundException"
And the error message should contain:
"""
No BatchPrediction with id fake-id exists
"""

View File

@@ -1,16 +0,0 @@
# language: en
@opsworks @client
Feature: AWS OpsWorks
Scenario: Making a request
When I call the "DescribeStacks" API
Then the value at "Stacks" should be a list
Scenario: Handling errors
When I attempt to call the "DescribeLayers" API with:
| StackId | fake_stack |
Then I expect the response error code to be "ResourceNotFoundException"
And I expect the response error message to include:
"""
Unable to find stack with ID fake_stack
"""

View File

@@ -1,16 +0,0 @@
# language: en
@rds @client
Feature: Amazon RDS
Scenario: Making a request
When I call the "DescribeDBEngineVersions" API
Then the value at "DBEngineVersions" should be a list
Scenario: Handling errors
When I attempt to call the "DescribeDBInstances" API with:
| DBInstanceIdentifier | fake-id |
Then I expect the response error code to be "DBInstanceNotFound"
And I expect the response error message to include:
"""
DBInstance fake-id not found.
"""

View File

@@ -1,16 +0,0 @@
# language: en
@redshift @client
Feature: Amazon Redshift
Scenario: Making a request
When I call the "DescribeClusterVersions" API
Then the value at "ClusterVersions" should be a list
Scenario: Handling errors
When I attempt to call the "DescribeClusters" API with:
| ClusterIdentifier | fake-cluster |
Then I expect the response error code to be "ClusterNotFound"
And I expect the response error message to include:
"""
Cluster fake-cluster not found.
"""

View File

@@ -1,16 +0,0 @@
# language: en
@route53 @client
Feature: Amazon Route 53
Scenario: Making a request
When I call the "ListHostedZones" API
Then the value at "HostedZones" should be a list
Scenario: Handling errors
When I attempt to call the "GetHostedZone" API with:
| Id | fake-zone |
Then I expect the response error code to be "NoSuchHostedZone"
And I expect the response error message to include:
"""
No hosted zone found with ID: fake-zone
"""

View File

@@ -1,16 +0,0 @@
# language: en
@route53domains @client
Feature: Amazon Route53 Domains
Scenario: Making a request
When I call the "ListDomains" API
Then the value at "Domains" should be a list
Scenario: Handling errors
When I attempt to call the "GetDomainDetail" API with:
| DomainName | fake-domain-name |
Then I expect the response error code to be "InvalidInput"
And I expect the response error message to include:
"""
domain name must contain more than 1 label
"""

View File

@@ -1,16 +0,0 @@
# language: en
@ses @email @client
Feature: Amazon Simple Email Service
Scenario: Making a request
When I call the "ListIdentities" API
Then the value at "Identities" should be a list
Scenario: Handling errors
When I attempt to call the "VerifyEmailIdentity" API with:
| EmailAddress | fake_email |
Then I expect the response error code to be "InvalidParameterValue"
And I expect the response error message to include:
"""
Invalid email address<fake_email>.
"""

View File

@@ -1,24 +0,0 @@
# language: en
@simpledb @sdb
Feature: Amazon SimpleDB
I want to use Amazon SimpleDB
Scenario: Making a request
When I call the "CreateDomain" API with:
| DomainName | sample-domain |
Then the request should be successful
And I call the "ListDomains" API
Then the value at "DomainNames" should be a list
And I call the "DeleteDomain" API with:
| DomainName | sample-domain |
Then the request should be successful
Scenario: Handling errors
When I attempt to call the "CreateDomain" API with:
| DomainName | |
Then I expect the response error code to be "InvalidParameterValue"
And I expect the response error message to include:
"""
DomainName is invalid
"""

View File

@@ -1,17 +0,0 @@
# language: en
@sns @client
Feature: Amazon Simple Notification Service
Scenario: Making a request
When I call the "ListTopics" API
Then the value at "Topics" should be a list
Scenario: Handling errors
When I attempt to call the "Publish" API with:
| Message | hello |
| TopicArn | fake_topic |
Then I expect the response error code to be "InvalidParameter"
And I expect the response error message to include:
"""
Invalid parameter: TopicArn Reason: fake_topic does not start with arn
"""

View File

@@ -1,16 +0,0 @@
# language: en
@sqs @client
Feature: Amazon Simple Queue Service
Scenario: Making a request
When I call the "ListQueues" API
Then the value at "QueueUrls" should be a list
Scenario: Handling errors
When I attempt to call the "GetQueueUrl" API with:
| QueueName | fake_queue |
Then I expect the response error code to be "AWS.SimpleQueueService.NonExistentQueue"
And I expect the response error message to include:
"""
The specified queue does not exist for this wsdl version.
"""

View File

@@ -1,16 +0,0 @@
# language: en
@ssm @client
Feature: Amazon SSM
Scenario: Making a request
When I call the "ListDocuments" API
Then the value at "DocumentIdentifiers" should be a list
Scenario: Handling errors
When I attempt to call the "GetDocument" API with:
| Name | 'fake-name' |
Then I expect the response error code to be "ValidationException"
And I expect the response error message to include:
"""
validation error detected
"""

View File

@@ -1,16 +0,0 @@
# language: en
@storagegateway @client
Feature: AWS Storage Gateway
Scenario: Making a request
When I call the "ListGateways" API
Then the value at "Gateways" should be a list
Scenario: Handling errors
When I attempt to call the "ListVolumes" API with:
| GatewayARN | fake_gateway |
Then I expect the response error code to be "InvalidParameter"
And I expect the response error message to include:
"""
GatewayARN
"""

View File

@@ -1,17 +0,0 @@
# language: en
@sts @client
Feature: AWS STS
Scenario: Making a request
When I call the "GetSessionToken" API
Then the response should contain a "Credentials"
Scenario: Handling errors
When I attempt to call the "GetFederationToken" API with:
| Name | temp |
| Policy | |
Then I expect the response error code to be "InvalidParameter"
And I expect the response error message to include:
"""
Policy
"""

View File

@@ -1,22 +0,0 @@
# language: en
@support @client
Feature: AWS Support
I want to use AWS Support
Scenario: Making a request
When I call the "DescribeServices" API
Then the value at "services" should be a list
Scenario: Handling errors
When I attempt to call the "CreateCase" API with:
| subject | subject |
| communicationBody | communication |
| categoryCode | category |
| serviceCode | amazon-dynamodb |
| severityCode | low |
Then I expect the response error code to be "InvalidParameterValueException"
And the error message should contain:
"""
Invalid category code
"""

View File

@@ -1,17 +0,0 @@
# language: en
@swf @client
Feature: Amazon Simple Workflow Service
Scenario: Making a request
When I call the "ListDomains" API with:
| registrationStatus | REGISTERED |
Then the value at "domainInfos" should be a list
Scenario: Handling errors
When I attempt to call the "DescribeDomain" API with:
| name | fake_domain |
Then I expect the response error code to be "UnknownResourceFault"
And I expect the response error message to include:
"""
Unknown domain: fake_domain
"""

View File

@@ -1,20 +0,0 @@
# language: en
@waf
Feature: AWS WAF
Scenario: Making a request
When I call the "ListRules" API with JSON:
"""
{"Limit":20}
"""
Then the value at "Rules" should be a list
Scenario: Handling errors
When I attempt to call the "CreateSqlInjectionMatchSet" API with:
| Name | fake_name |
| ChangeToken | fake_token |
Then I expect the response error code to be "WAFStaleDataException"
And I expect the response error message to include:
"""
The input token is no longer current
"""

View File

@@ -1,18 +0,0 @@
# language: en
@workspaces @client
Feature: Amazon WorkSpaces
I want to use Amazon WorkSpaces
Scenario: Making a request
When I call the "DescribeWorkspaces" API
Then the value at "Workspaces" should be a list
Scenario: Handling errors
When I attempt to call the "DescribeWorkspaces" API with:
| DirectoryId | fake-id |
Then I expect the response error code to be "ValidationException"
And I expect the response error message to include:
"""
The Directory ID fake-id in the request is invalid.
"""

View File

@@ -1,187 +0,0 @@
require 'yard'
require 'yard-go'
module GoLinksHelper
def signature(obj, link = true, show_extras = true, full_attr_name = true)
case obj
when YARDGo::CodeObjects::FuncObject
if link && obj.has_tag?(:service_operation)
ret = signature_types(obj, !link)
args = obj.parameters.map {|m| m[0].split(/\s+/).last }.join(", ")
line = "<strong>#{obj.name}</strong>(#{args}) #{ret}"
return link ? linkify(obj, line) : line
end
end
super(obj, link, show_extras, full_attr_name)
end
def html_syntax_highlight(source, type = nil)
src = super(source, type || :go)
object.has_tag?(:service_operation) ? link_types(src) : src
end
end
YARD::Templates::Helpers::HtmlHelper.send(:prepend, GoLinksHelper)
YARD::Templates::Engine.register_template_path(File.dirname(__FILE__) + '/templates')
YARD::Parser::SourceParser.after_parse_list do
YARD::Registry.all(:struct).each do |obj|
if obj.file =~ /\/?service\/(.+?)\/(service|api)\.go$/
obj.add_tag YARD::Tags::Tag.new(:service, $1)
obj.groups = ["Constructor Functions", "Service Operations", "Request Methods", "Pagination Methods"]
end
end
YARD::Registry.all(:method).each do |obj|
if obj.file =~ /service\/.+?\/api\.go$/ && obj.scope == :instance
if obj.name.to_s =~ /Pages$/
obj.group = "Pagination Methods"
opname = obj.name.to_s.sub(/Pages$/, '')
obj.docstring = <<-eof
#{obj.name} iterates over the pages of a {#{opname} #{opname}()} operation, calling the `fn`
function callback with the response data in each page. To stop iterating, return `false` from
the function callback.
@note This operation can generate multiple requests to a service.
@example Iterating over at most 3 pages of a #{opname} operation
pageNum := 0
err := client.#{obj.name}(params, func(page *#{obj.parent.parent.name}.#{obj.parameters[1][0].split("*").last}, lastPage bool) bool {
pageNum++
fmt.Println(page)
return pageNum <= 3
})
@see #{opname}
eof
obj.add_tag YARD::Tags::Tag.new(:paginator, '')
elsif obj.name.to_s =~ /Request$/
obj.group = "Request Methods"
obj.signature = obj.name.to_s
obj.parameters = []
opname = obj.name.to_s.sub(/Request$/, '')
obj.docstring = <<-eof
#{obj.name} generates a {aws/request.Request} object representing the client request for
the {#{opname} #{opname}()} operation. The `output` return value can be used to capture
response data after {aws/request.Request.Send Request.Send()} is called.
Creating a request object using this method should be used when you want to inject
custom logic into the request lifecycle using a custom handler, or if you want to
access properties on the request object before or after sending the request. If
you just want the service response, call the {#{opname} service operation method}
directly instead.
@note You must call the {aws/request.Request.Send Send()} method on the returned
request object in order to execute the request.
@example Sending a request using the #{obj.name}() method
req, resp := client.#{obj.name}(params)
err := req.Send()
if err == nil { // resp is now filled
fmt.Println(resp)
}
eof
obj.add_tag YARD::Tags::Tag.new(:request_method, '')
else
obj.group = "Service Operations"
obj.add_tag YARD::Tags::Tag.new(:service_operation, '')
if ex = obj.tag(:example)
ex.name = "Calling the #{obj.name} operation"
end
end
end
end
apply_docs
end
def apply_docs
svc_pkg = YARD::Registry.at('service')
return if svc_pkg.nil?
pkgs = svc_pkg.children.select {|t| t.type == :package }
pkgs.each do |pkg|
svc = pkg.children.find {|t| t.has_tag?(:service) }
ctor = P(svc, ".New")
svc_name = ctor.source[/ServiceName:\s*"(.+?)",/, 1]
api_ver = ctor.source[/APIVersion:\s*"(.+?)",/, 1]
log.progress "Parsing service documentation for #{svc_name} (#{api_ver})"
file = Dir.glob("models/apis/#{svc_name}/#{api_ver}/docs-2.json").sort.last
next if file.nil?
next if svc.nil?
exmeth = svc.children.find {|s| s.has_tag?(:service_operation) }
pkg.docstring += <<-eof
@example Sending a request using the {#{svc.name}} client
client := #{pkg.name}.New(nil)
params := &#{pkg.name}.#{exmeth.parameters.first[0].split("*").last}{...}
resp, err := client.#{exmeth.name}(params)
@see #{svc.name}
@version #{api_ver}
eof
ctor.docstring += <<-eof
@example Constructing a client using default configuration
client := #{pkg.name}.New(nil)
@example Constructing a client with custom configuration
config := aws.NewConfig().WithRegion("us-west-2")
client := #{pkg.name}.New(config)
eof
json = JSON.parse(File.read(file))
if svc
apply_doc(svc, json["service"])
end
json["operations"].each do |op, doc|
if doc && obj = svc.children.find {|t| t.name.to_s.downcase == op.downcase }
apply_doc(obj, doc)
end
end
json["shapes"].each do |shape, data|
shape = shape_name(shape)
if obj = pkg.children.find {|t| t.name.to_s.downcase == shape.downcase }
apply_doc(obj, data["base"])
end
data["refs"].each do |refname, doc|
refshape, member = *refname.split("$")
refshape = shape_name(refshape)
if refobj = pkg.children.find {|t| t.name.to_s.downcase == refshape.downcase }
if m = refobj.children.find {|t| t.name.to_s.downcase == member.downcase }
apply_doc(m, doc || data["base"])
end
end
end if data["refs"]
end
end
end
def apply_doc(obj, doc)
tags = obj.docstring.tags || []
obj.docstring = clean_docstring(doc)
tags.each {|t| obj.docstring.add_tag(t) }
end
def shape_name(shape)
shape.sub(/Request$/, "Input").sub(/Response$/, "Output")
end
def clean_docstring(docs)
return nil unless docs
docs = docs.gsub(/<!--.*?-->/m, '')
docs = docs.gsub(/<fullname>.+?<\/fullname?>/m, '')
docs = docs.gsub(/<examples?>.+?<\/examples?>/m, '')
docs = docs.gsub(/<note>\s*<\/note>/m, '')
docs = docs.gsub(/<a>(.+?)<\/a>/, '\1')
docs = docs.gsub(/<note>(.+?)<\/note>/m) do
text = $1.gsub(/<\/?p>/, '')
"<div class=\"note\"><strong>Note:</strong> #{text}</div>"
end
docs = docs.gsub(/\{(.+?)\}/, '`{\1}`')
docs = docs.gsub(/\s+/, ' ').strip
docs == '' ? nil : docs
end

View File

@@ -1,31 +0,0 @@
<div id="footer">
Generated on <%= Time.now.strftime("%c") %> by
<a href="http://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
<%= YARD::VERSION %> (ruby-<%= RUBY_VERSION %>).
</div>
<!-- BEGIN-SECTION -->
<script type="text/javascript" src="https://media.amazonwebservices.com/amznUrchin.js"></script>
<!-- SiteCatalyst code version: H.25.2. Copyright 1996-2012 Adobe, Inc. All Rights Reserved.
More info available at http://www.omniture.com -->
<script language="JavaScript" type="text/javascript" src="https://media.amazonwebservices.com/js/sitecatalyst/s_code.min.js">
</script>
<script language="JavaScript" type="text/javascript">
<!--
s.prop66='AWS SDK for Go';
s.eVar66='D=c66';
s.prop65='API Reference';
s.eVar65='D=c65';
var s_code=s.t();if(s_code)document.write(s_code)
//-->
</script>
<script language="JavaScript" type="text/javascript">
<!--if(navigator.appVersion.indexOf('MSIE')>=0)document.write(unescape('%3C')+'\!-'+'-')
//-->
</script>
<noscript>
<img src="http://amazonwebservices.d2.sc.omtrdc.net/b/ss/awsamazondev/1/H.25.2--NS/0" height="1" width="1" border="0" alt="">
</noscript>
<!--/DO NOT REMOVE/-->
<!-- End SiteCatalyst code version: H.25.2. -->
<!-- END-SECTION -->

View File

@@ -1,4 +0,0 @@
<h2>Client Structure <small><a href="#" class="summary_toggle">collapse</a></small></h2>
<ul class="summary">
<%= yieldall :item => @client %>
</ul>

View File

@@ -1,28 +0,0 @@
<% if !@item.has_tag?(:paginator) %>
<li class="<%= @item.visibility %> <%= @item.has_tag?(:deprecated) ? 'deprecated' : '' %>">
<span class="summary_signature"><%= signature(@item) %></span>
<% if object != @item.namespace %>
<span class="note title not_defined_here">
<%= @item.namespace.type == :class ? 'inherited' : (@item.scope == :class ? 'extended' : 'included') %>
from <%= linkify @item, object.relative_path(@item.namespace) %>
</span>
<% end %>
<% if @item.type == :enum %><span class="note title writeonly">enum</span><% end %>
<% if @item.type == :bare_struct || @item.type == :struct %><span class="note title readonly">struct</span><% end %>
<% if @item.has_tag?(:service) %><span class="note title writeonly">client</span><% end %>
<% if @item.has_tag?(:service_operation) %><span class="note title readonly">operation</span><% end %>
<% if @item.type == :interface %><span class="note title interface">interface</span><% end %>
<% if @item.has_tag?(:readonly) %><span class="note title readonly">readonly</span><% end %>
<% if @item.has_tag?(:writeonly) %><span class="note title writeonly">writeonly</span><% end %>
<% if @item.visibility != :public %><span class="note title <%= @item.visibility %>"><%= @item.visibility %></span><% end %>
<% if @item.has_tag?(:abstract) %><span class="abstract note title">interface</span><% end %>
<% if @item.has_tag?(:deprecated) %><span class="deprecated note title">deprecated</span><% end %>
<% if @item.has_tag?(:api) && @item.tag(:api).text == 'private' %><span class="private note title">private</span><% end %>
<% if @item.has_tag?(:deprecated) %>
<span class="summary_desc"><strong>Deprecated.</strong> <%= htmlify_line @item.tag(:deprecated).text %></span>
<% else %>
<span class="summary_desc"><%= htmlify_line docstring_summary(@item) %></span>
<% end %>
</li>
<% end %>

View File

@@ -1,9 +0,0 @@
def init
super
sections.place(:client, [:item_summary]).before(:constant_summary)
end
def client
@client = object.children.find {|c| c.has_tag?(:service) }
erb(:client) if @client
end

View File

@@ -1,8 +0,0 @@
def type_summary
@items = object.children.
select {|c| c.type == :bare_struct || c.type == :struct || c.type == :enum }.
reject {|c| c.has_tag?(:service) }.
sort_by {|c| c.name.to_s }
@name = "Type"
erb :list_summary
end

View File

@@ -1,4 +0,0 @@
<div id="paginators" class="inline-objects">
<h2 class="paginators">Pagination Methods</h2>
<p class="children"><%= @items.map {|pkg| link_object(pkg, pkg.name) }.join(" ") %></p>
</div>

View File

@@ -1,4 +0,0 @@
<div id="request_methods" class="inline-objects">
<h2 class="request_methods">Request Methods</h2>
<p class="children"><%= @items.map {|pkg| link_object(pkg, pkg.name) }.join(" ") %></p>
</div>

View File

@@ -1,20 +0,0 @@
def init
super
sections.place(:request_methods, :paginators).after(:method_summary)
end
def groups(list, type = "Method")
super(list.reject {|o| o.has_tag?(:paginator) || o.has_tag?(:request_method) }, type)
end
def paginators
@items = object.children.select {|o| o.has_tag?(:paginator) }
return if @items.size == 0
erb(:paginators)
end
def request_methods
@items = object.children.select {|o| o.has_tag?(:request_method) }
return if @items.size == 0
erb(:request_methods)
end

View File

@@ -1,11 +0,0 @@
## Example
listS3EncryptedObjects is an example using the AWS SDK for Go concurrently to list the the encrypted objects in the S3 buckets owned by an account.
## Usage
The example's `accounts` string slice contains a list of the SharedCredentials profiles which will be used to look up the buckets owned by each profile. Each bucket's objects will be queried.
```
AWS_REGION=us-east-1 go run example/listS3EncryptedObjects/main.go
```

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@@ -1,52 +0,0 @@
{
"pagination": {
"GetApiKeys": {
"input_token": "position",
"output_token": "position",
"limit_key": "limit",
"result_key": "items"
},
"GetBasePathMappings": {
"input_token": "position",
"output_token": "position",
"limit_key": "limit",
"result_key": "items"
},
"GetClientCertificates": {
"input_token": "position",
"output_token": "position",
"limit_key": "limit",
"result_key": "items"
},
"GetDeployments": {
"input_token": "position",
"output_token": "position",
"limit_key": "limit",
"result_key": "items"
},
"GetDomainNames": {
"input_token": "position",
"output_token": "position",
"limit_key": "limit",
"result_key": "items"
},
"GetModels": {
"input_token": "position",
"output_token": "position",
"limit_key": "limit",
"result_key": "items"
},
"GetResources": {
"input_token": "position",
"output_token": "position",
"limit_key": "limit",
"result_key": "items"
},
"GetRestApis": {
"input_token": "position",
"output_token": "position",
"limit_key": "limit",
"result_key": "items"
}
}
}

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@@ -1,5 +0,0 @@
{
"version": "1.0",
"examples": {
}
}

View File

@@ -1,52 +0,0 @@
{
"pagination": {
"DescribeAutoScalingGroups": {
"input_token": "NextToken",
"output_token": "NextToken",
"limit_key": "MaxRecords",
"result_key": "AutoScalingGroups"
},
"DescribeAutoScalingInstances": {
"input_token": "NextToken",
"output_token": "NextToken",
"limit_key": "MaxRecords",
"result_key": "AutoScalingInstances"
},
"DescribeLaunchConfigurations": {
"input_token": "NextToken",
"output_token": "NextToken",
"limit_key": "MaxRecords",
"result_key": "LaunchConfigurations"
},
"DescribeNotificationConfigurations": {
"input_token": "NextToken",
"output_token": "NextToken",
"limit_key": "MaxRecords",
"result_key": "NotificationConfigurations"
},
"DescribePolicies": {
"input_token": "NextToken",
"output_token": "NextToken",
"limit_key": "MaxRecords",
"result_key": "ScalingPolicies"
},
"DescribeScalingActivities": {
"input_token": "NextToken",
"output_token": "NextToken",
"limit_key": "MaxRecords",
"result_key": "Activities"
},
"DescribeScheduledActions": {
"input_token": "NextToken",
"output_token": "NextToken",
"limit_key": "MaxRecords",
"result_key": "ScheduledUpdateGroupActions"
},
"DescribeTags": {
"input_token": "NextToken",
"output_token": "NextToken",
"limit_key": "MaxRecords",
"result_key": "Tags"
}
}
}

View File

@@ -1,931 +0,0 @@
{
"version":"2.0",
"metadata":{
"apiVersion":"2010-05-15",
"endpointPrefix":"cloudformation",
"serviceFullName":"AWS CloudFormation",
"signatureVersion":"v4",
"xmlNamespace":"http://cloudformation.amazonaws.com/doc/2010-05-15/",
"protocol":"query"
},
"operations":{
"CancelUpdateStack":{
"name":"CancelUpdateStack",
"http":{
"method":"POST",
"requestUri":"/"
},
"input":{"shape":"CancelUpdateStackInput"}
},
"CreateStack":{
"name":"CreateStack",
"http":{
"method":"POST",
"requestUri":"/"
},
"input":{"shape":"CreateStackInput"},
"output":{
"shape":"CreateStackOutput",
"resultWrapper":"CreateStackResult"
},
"errors":[
{
"shape":"LimitExceededException",
"error":{
"code":"LimitExceededException",
"httpStatusCode":400,
"senderFault":true
},
"exception":true
},
{
"shape":"AlreadyExistsException",
"error":{
"code":"AlreadyExistsException",
"httpStatusCode":400,
"senderFault":true
},
"exception":true
},
{
"shape":"InsufficientCapabilitiesException",
"error":{
"code":"InsufficientCapabilitiesException",
"httpStatusCode":400,
"senderFault":true
},
"exception":true
}
]
},
"DeleteStack":{
"name":"DeleteStack",
"http":{
"method":"POST",
"requestUri":"/"
},
"input":{"shape":"DeleteStackInput"}
},
"DescribeAccountLimits":{
"name":"DescribeAccountLimits",
"http":{
"method":"POST",
"requestUri":"/"
},
"input":{"shape":"DescribeAccountLimitsInput"},
"output":{
"shape":"DescribeAccountLimitsOutput",
"resultWrapper":"DescribeAccountLimitsResult"
}
},
"DescribeStackEvents":{
"name":"DescribeStackEvents",
"http":{
"method":"POST",
"requestUri":"/"
},
"input":{"shape":"DescribeStackEventsInput"},
"output":{
"shape":"DescribeStackEventsOutput",
"resultWrapper":"DescribeStackEventsResult"
}
},
"DescribeStackResource":{
"name":"DescribeStackResource",
"http":{
"method":"POST",
"requestUri":"/"
},
"input":{"shape":"DescribeStackResourceInput"},
"output":{
"shape":"DescribeStackResourceOutput",
"resultWrapper":"DescribeStackResourceResult"
}
},
"DescribeStackResources":{
"name":"DescribeStackResources",
"http":{
"method":"POST",
"requestUri":"/"
},
"input":{"shape":"DescribeStackResourcesInput"},
"output":{
"shape":"DescribeStackResourcesOutput",
"resultWrapper":"DescribeStackResourcesResult"
}
},
"DescribeStacks":{
"name":"DescribeStacks",
"http":{
"method":"POST",
"requestUri":"/"
},
"input":{"shape":"DescribeStacksInput"},
"output":{
"shape":"DescribeStacksOutput",
"resultWrapper":"DescribeStacksResult"
}
},
"EstimateTemplateCost":{
"name":"EstimateTemplateCost",
"http":{
"method":"POST",
"requestUri":"/"
},
"input":{"shape":"EstimateTemplateCostInput"},
"output":{
"shape":"EstimateTemplateCostOutput",
"resultWrapper":"EstimateTemplateCostResult"
}
},
"GetStackPolicy":{
"name":"GetStackPolicy",
"http":{
"method":"POST",
"requestUri":"/"
},
"input":{"shape":"GetStackPolicyInput"},
"output":{
"shape":"GetStackPolicyOutput",
"resultWrapper":"GetStackPolicyResult"
}
},
"GetTemplate":{
"name":"GetTemplate",
"http":{
"method":"POST",
"requestUri":"/"
},
"input":{"shape":"GetTemplateInput"},
"output":{
"shape":"GetTemplateOutput",
"resultWrapper":"GetTemplateResult"
}
},
"GetTemplateSummary":{
"name":"GetTemplateSummary",
"http":{
"method":"POST",
"requestUri":"/"
},
"input":{"shape":"GetTemplateSummaryInput"},
"output":{
"shape":"GetTemplateSummaryOutput",
"resultWrapper":"GetTemplateSummaryResult"
}
},
"ListStackResources":{
"name":"ListStackResources",
"http":{
"method":"POST",
"requestUri":"/"
},
"input":{"shape":"ListStackResourcesInput"},
"output":{
"shape":"ListStackResourcesOutput",
"resultWrapper":"ListStackResourcesResult"
}
},
"ListStacks":{
"name":"ListStacks",
"http":{
"method":"POST",
"requestUri":"/"
},
"input":{"shape":"ListStacksInput"},
"output":{
"shape":"ListStacksOutput",
"resultWrapper":"ListStacksResult"
}
},
"SetStackPolicy":{
"name":"SetStackPolicy",
"http":{
"method":"POST",
"requestUri":"/"
},
"input":{"shape":"SetStackPolicyInput"}
},
"SignalResource":{
"name":"SignalResource",
"http":{
"method":"POST",
"requestUri":"/"
},
"input":{"shape":"SignalResourceInput"}
},
"UpdateStack":{
"name":"UpdateStack",
"http":{
"method":"POST",
"requestUri":"/"
},
"input":{"shape":"UpdateStackInput"},
"output":{
"shape":"UpdateStackOutput",
"resultWrapper":"UpdateStackResult"
},
"errors":[
{
"shape":"InsufficientCapabilitiesException",
"error":{
"code":"InsufficientCapabilitiesException",
"httpStatusCode":400,
"senderFault":true
},
"exception":true
}
]
},
"ValidateTemplate":{
"name":"ValidateTemplate",
"http":{
"method":"POST",
"requestUri":"/"
},
"input":{"shape":"ValidateTemplateInput"},
"output":{
"shape":"ValidateTemplateOutput",
"resultWrapper":"ValidateTemplateResult"
}
}
},
"shapes":{
"AccountLimit":{
"type":"structure",
"members":{
"Name":{"shape":"LimitName"},
"Value":{"shape":"LimitValue"}
}
},
"AccountLimitList":{
"type":"list",
"member":{"shape":"AccountLimit"}
},
"AllowedValue":{"type":"string"},
"AllowedValues":{
"type":"list",
"member":{"shape":"AllowedValue"}
},
"AlreadyExistsException":{
"type":"structure",
"members":{
},
"error":{
"code":"AlreadyExistsException",
"httpStatusCode":400,
"senderFault":true
},
"exception":true
},
"CancelUpdateStackInput":{
"type":"structure",
"required":["StackName"],
"members":{
"StackName":{"shape":"StackName"}
}
},
"Capabilities":{
"type":"list",
"member":{"shape":"Capability"}
},
"CapabilitiesReason":{"type":"string"},
"Capability":{
"type":"string",
"enum":["CAPABILITY_IAM"]
},
"CreateStackInput":{
"type":"structure",
"required":["StackName"],
"members":{
"StackName":{"shape":"StackName"},
"TemplateBody":{"shape":"TemplateBody"},
"TemplateURL":{"shape":"TemplateURL"},
"Parameters":{"shape":"Parameters"},
"DisableRollback":{"shape":"DisableRollback"},
"TimeoutInMinutes":{"shape":"TimeoutMinutes"},
"NotificationARNs":{"shape":"NotificationARNs"},
"Capabilities":{"shape":"Capabilities"},
"ResourceTypes":{"shape":"ResourceTypes"},
"OnFailure":{"shape":"OnFailure"},
"StackPolicyBody":{"shape":"StackPolicyBody"},
"StackPolicyURL":{"shape":"StackPolicyURL"},
"Tags":{"shape":"Tags"}
}
},
"CreateStackOutput":{
"type":"structure",
"members":{
"StackId":{"shape":"StackId"}
}
},
"CreationTime":{"type":"timestamp"},
"DeleteStackInput":{
"type":"structure",
"required":["StackName"],
"members":{
"StackName":{"shape":"StackName"}
}
},
"DeletionTime":{"type":"timestamp"},
"DescribeAccountLimitsInput":{
"type":"structure",
"members":{
"NextToken":{"shape":"NextToken"}
}
},
"DescribeAccountLimitsOutput":{
"type":"structure",
"members":{
"AccountLimits":{"shape":"AccountLimitList"},
"NextToken":{"shape":"NextToken"}
}
},
"DescribeStackEventsInput":{
"type":"structure",
"members":{
"StackName":{"shape":"StackName"},
"NextToken":{"shape":"NextToken"}
}
},
"DescribeStackEventsOutput":{
"type":"structure",
"members":{
"StackEvents":{"shape":"StackEvents"},
"NextToken":{"shape":"NextToken"}
}
},
"DescribeStackResourceInput":{
"type":"structure",
"required":[
"StackName",
"LogicalResourceId"
],
"members":{
"StackName":{"shape":"StackName"},
"LogicalResourceId":{"shape":"LogicalResourceId"}
}
},
"DescribeStackResourceOutput":{
"type":"structure",
"members":{
"StackResourceDetail":{"shape":"StackResourceDetail"}
}
},
"DescribeStackResourcesInput":{
"type":"structure",
"members":{
"StackName":{"shape":"StackName"},
"LogicalResourceId":{"shape":"LogicalResourceId"},
"PhysicalResourceId":{"shape":"PhysicalResourceId"}
}
},
"DescribeStackResourcesOutput":{
"type":"structure",
"members":{
"StackResources":{"shape":"StackResources"}
}
},
"DescribeStacksInput":{
"type":"structure",
"members":{
"StackName":{"shape":"StackName"},
"NextToken":{"shape":"NextToken"}
}
},
"DescribeStacksOutput":{
"type":"structure",
"members":{
"Stacks":{"shape":"Stacks"},
"NextToken":{"shape":"NextToken"}
}
},
"Description":{"type":"string"},
"DisableRollback":{"type":"boolean"},
"EstimateTemplateCostInput":{
"type":"structure",
"members":{
"TemplateBody":{"shape":"TemplateBody"},
"TemplateURL":{"shape":"TemplateURL"},
"Parameters":{"shape":"Parameters"}
}
},
"EstimateTemplateCostOutput":{
"type":"structure",
"members":{
"Url":{"shape":"Url"}
}
},
"EventId":{"type":"string"},
"GetStackPolicyInput":{
"type":"structure",
"required":["StackName"],
"members":{
"StackName":{"shape":"StackName"}
}
},
"GetStackPolicyOutput":{
"type":"structure",
"members":{
"StackPolicyBody":{"shape":"StackPolicyBody"}
}
},
"GetTemplateInput":{
"type":"structure",
"required":["StackName"],
"members":{
"StackName":{"shape":"StackName"}
}
},
"GetTemplateOutput":{
"type":"structure",
"members":{
"TemplateBody":{"shape":"TemplateBody"}
}
},
"GetTemplateSummaryInput":{
"type":"structure",
"members":{
"TemplateBody":{"shape":"TemplateBody"},
"TemplateURL":{"shape":"TemplateURL"},
"StackName":{"shape":"StackNameOrId"}
}
},
"GetTemplateSummaryOutput":{
"type":"structure",
"members":{
"Parameters":{"shape":"ParameterDeclarations"},
"Description":{"shape":"Description"},
"Capabilities":{"shape":"Capabilities"},
"CapabilitiesReason":{"shape":"CapabilitiesReason"},
"ResourceTypes":{"shape":"ResourceTypes"},
"Version":{"shape":"Version"},
"Metadata":{"shape":"Metadata"}
}
},
"InsufficientCapabilitiesException":{
"type":"structure",
"members":{
},
"error":{
"code":"InsufficientCapabilitiesException",
"httpStatusCode":400,
"senderFault":true
},
"exception":true
},
"LastUpdatedTime":{"type":"timestamp"},
"LimitExceededException":{
"type":"structure",
"members":{
},
"error":{
"code":"LimitExceededException",
"httpStatusCode":400,
"senderFault":true
},
"exception":true
},
"LimitName":{"type":"string"},
"LimitValue":{"type":"integer"},
"ListStackResourcesInput":{
"type":"structure",
"required":["StackName"],
"members":{
"StackName":{"shape":"StackName"},
"NextToken":{"shape":"NextToken"}
}
},
"ListStackResourcesOutput":{
"type":"structure",
"members":{
"StackResourceSummaries":{"shape":"StackResourceSummaries"},
"NextToken":{"shape":"NextToken"}
}
},
"ListStacksInput":{
"type":"structure",
"members":{
"NextToken":{"shape":"NextToken"},
"StackStatusFilter":{"shape":"StackStatusFilter"}
}
},
"ListStacksOutput":{
"type":"structure",
"members":{
"StackSummaries":{"shape":"StackSummaries"},
"NextToken":{"shape":"NextToken"}
}
},
"LogicalResourceId":{"type":"string"},
"Metadata":{"type":"string"},
"NextToken":{
"type":"string",
"min":1,
"max":1024
},
"NoEcho":{"type":"boolean"},
"NotificationARN":{"type":"string"},
"NotificationARNs":{
"type":"list",
"member":{"shape":"NotificationARN"},
"max":5
},
"OnFailure":{
"type":"string",
"enum":[
"DO_NOTHING",
"ROLLBACK",
"DELETE"
]
},
"Output":{
"type":"structure",
"members":{
"OutputKey":{"shape":"OutputKey"},
"OutputValue":{"shape":"OutputValue"},
"Description":{"shape":"Description"}
}
},
"OutputKey":{"type":"string"},
"OutputValue":{"type":"string"},
"Outputs":{
"type":"list",
"member":{"shape":"Output"}
},
"Parameter":{
"type":"structure",
"members":{
"ParameterKey":{"shape":"ParameterKey"},
"ParameterValue":{"shape":"ParameterValue"},
"UsePreviousValue":{"shape":"UsePreviousValue"}
}
},
"ParameterConstraints":{
"type":"structure",
"members":{
"AllowedValues":{"shape":"AllowedValues"}
}
},
"ParameterDeclaration":{
"type":"structure",
"members":{
"ParameterKey":{"shape":"ParameterKey"},
"DefaultValue":{"shape":"ParameterValue"},
"ParameterType":{"shape":"ParameterType"},
"NoEcho":{"shape":"NoEcho"},
"Description":{"shape":"Description"},
"ParameterConstraints":{"shape":"ParameterConstraints"}
}
},
"ParameterDeclarations":{
"type":"list",
"member":{"shape":"ParameterDeclaration"}
},
"ParameterKey":{"type":"string"},
"ParameterType":{"type":"string"},
"ParameterValue":{"type":"string"},
"Parameters":{
"type":"list",
"member":{"shape":"Parameter"}
},
"PhysicalResourceId":{"type":"string"},
"ResourceProperties":{"type":"string"},
"ResourceSignalStatus":{
"type":"string",
"enum":[
"SUCCESS",
"FAILURE"
]
},
"ResourceSignalUniqueId":{
"type":"string",
"min":1,
"max":64
},
"ResourceStatus":{
"type":"string",
"enum":[
"CREATE_IN_PROGRESS",
"CREATE_FAILED",
"CREATE_COMPLETE",
"DELETE_IN_PROGRESS",
"DELETE_FAILED",
"DELETE_COMPLETE",
"DELETE_SKIPPED",
"UPDATE_IN_PROGRESS",
"UPDATE_FAILED",
"UPDATE_COMPLETE"
]
},
"ResourceStatusReason":{"type":"string"},
"ResourceType":{"type":"string"},
"ResourceTypes":{
"type":"list",
"member":{"shape":"ResourceType"}
},
"SetStackPolicyInput":{
"type":"structure",
"required":["StackName"],
"members":{
"StackName":{"shape":"StackName"},
"StackPolicyBody":{"shape":"StackPolicyBody"},
"StackPolicyURL":{"shape":"StackPolicyURL"}
}
},
"SignalResourceInput":{
"type":"structure",
"required":[
"StackName",
"LogicalResourceId",
"UniqueId",
"Status"
],
"members":{
"StackName":{"shape":"StackNameOrId"},
"LogicalResourceId":{"shape":"LogicalResourceId"},
"UniqueId":{"shape":"ResourceSignalUniqueId"},
"Status":{"shape":"ResourceSignalStatus"}
}
},
"Stack":{
"type":"structure",
"required":[
"StackName",
"CreationTime",
"StackStatus"
],
"members":{
"StackId":{"shape":"StackId"},
"StackName":{"shape":"StackName"},
"Description":{"shape":"Description"},
"Parameters":{"shape":"Parameters"},
"CreationTime":{"shape":"CreationTime"},
"LastUpdatedTime":{"shape":"LastUpdatedTime"},
"StackStatus":{"shape":"StackStatus"},
"StackStatusReason":{"shape":"StackStatusReason"},
"DisableRollback":{"shape":"DisableRollback"},
"NotificationARNs":{"shape":"NotificationARNs"},
"TimeoutInMinutes":{"shape":"TimeoutMinutes"},
"Capabilities":{"shape":"Capabilities"},
"Outputs":{"shape":"Outputs"},
"Tags":{"shape":"Tags"}
}
},
"StackEvent":{
"type":"structure",
"required":[
"StackId",
"EventId",
"StackName",
"Timestamp"
],
"members":{
"StackId":{"shape":"StackId"},
"EventId":{"shape":"EventId"},
"StackName":{"shape":"StackName"},
"LogicalResourceId":{"shape":"LogicalResourceId"},
"PhysicalResourceId":{"shape":"PhysicalResourceId"},
"ResourceType":{"shape":"ResourceType"},
"Timestamp":{"shape":"Timestamp"},
"ResourceStatus":{"shape":"ResourceStatus"},
"ResourceStatusReason":{"shape":"ResourceStatusReason"},
"ResourceProperties":{"shape":"ResourceProperties"}
}
},
"StackEvents":{
"type":"list",
"member":{"shape":"StackEvent"}
},
"StackId":{"type":"string"},
"StackName":{"type":"string"},
"StackNameOrId":{
"type":"string",
"min":1,
"pattern":"([a-zA-Z][-a-zA-Z0-9]*)|(arn:\\b(aws|aws-us-gov|aws-cn)\\b:[-a-zA-Z0-9:/._+]*)"
},
"StackPolicyBody":{
"type":"string",
"min":1,
"max":16384
},
"StackPolicyDuringUpdateBody":{
"type":"string",
"min":1,
"max":16384
},
"StackPolicyDuringUpdateURL":{
"type":"string",
"min":1,
"max":1350
},
"StackPolicyURL":{
"type":"string",
"min":1,
"max":1350
},
"StackResource":{
"type":"structure",
"required":[
"LogicalResourceId",
"ResourceType",
"Timestamp",
"ResourceStatus"
],
"members":{
"StackName":{"shape":"StackName"},
"StackId":{"shape":"StackId"},
"LogicalResourceId":{"shape":"LogicalResourceId"},
"PhysicalResourceId":{"shape":"PhysicalResourceId"},
"ResourceType":{"shape":"ResourceType"},
"Timestamp":{"shape":"Timestamp"},
"ResourceStatus":{"shape":"ResourceStatus"},
"ResourceStatusReason":{"shape":"ResourceStatusReason"},
"Description":{"shape":"Description"}
}
},
"StackResourceDetail":{
"type":"structure",
"required":[
"LogicalResourceId",
"ResourceType",
"LastUpdatedTimestamp",
"ResourceStatus"
],
"members":{
"StackName":{"shape":"StackName"},
"StackId":{"shape":"StackId"},
"LogicalResourceId":{"shape":"LogicalResourceId"},
"PhysicalResourceId":{"shape":"PhysicalResourceId"},
"ResourceType":{"shape":"ResourceType"},
"LastUpdatedTimestamp":{"shape":"Timestamp"},
"ResourceStatus":{"shape":"ResourceStatus"},
"ResourceStatusReason":{"shape":"ResourceStatusReason"},
"Description":{"shape":"Description"},
"Metadata":{"shape":"Metadata"}
}
},
"StackResourceSummaries":{
"type":"list",
"member":{"shape":"StackResourceSummary"}
},
"StackResourceSummary":{
"type":"structure",
"required":[
"LogicalResourceId",
"ResourceType",
"LastUpdatedTimestamp",
"ResourceStatus"
],
"members":{
"LogicalResourceId":{"shape":"LogicalResourceId"},
"PhysicalResourceId":{"shape":"PhysicalResourceId"},
"ResourceType":{"shape":"ResourceType"},
"LastUpdatedTimestamp":{"shape":"Timestamp"},
"ResourceStatus":{"shape":"ResourceStatus"},
"ResourceStatusReason":{"shape":"ResourceStatusReason"}
}
},
"StackResources":{
"type":"list",
"member":{"shape":"StackResource"}
},
"StackStatus":{
"type":"string",
"enum":[
"CREATE_IN_PROGRESS",
"CREATE_FAILED",
"CREATE_COMPLETE",
"ROLLBACK_IN_PROGRESS",
"ROLLBACK_FAILED",
"ROLLBACK_COMPLETE",
"DELETE_IN_PROGRESS",
"DELETE_FAILED",
"DELETE_COMPLETE",
"UPDATE_IN_PROGRESS",
"UPDATE_COMPLETE_CLEANUP_IN_PROGRESS",
"UPDATE_COMPLETE",
"UPDATE_ROLLBACK_IN_PROGRESS",
"UPDATE_ROLLBACK_FAILED",
"UPDATE_ROLLBACK_COMPLETE_CLEANUP_IN_PROGRESS",
"UPDATE_ROLLBACK_COMPLETE"
]
},
"StackStatusFilter":{
"type":"list",
"member":{"shape":"StackStatus"}
},
"StackStatusReason":{"type":"string"},
"StackSummaries":{
"type":"list",
"member":{"shape":"StackSummary"}
},
"StackSummary":{
"type":"structure",
"required":[
"StackName",
"CreationTime",
"StackStatus"
],
"members":{
"StackId":{"shape":"StackId"},
"StackName":{"shape":"StackName"},
"TemplateDescription":{"shape":"TemplateDescription"},
"CreationTime":{"shape":"CreationTime"},
"LastUpdatedTime":{"shape":"LastUpdatedTime"},
"DeletionTime":{"shape":"DeletionTime"},
"StackStatus":{"shape":"StackStatus"},
"StackStatusReason":{"shape":"StackStatusReason"}
}
},
"Stacks":{
"type":"list",
"member":{"shape":"Stack"}
},
"Tag":{
"type":"structure",
"members":{
"Key":{"shape":"TagKey"},
"Value":{"shape":"TagValue"}
}
},
"TagKey":{"type":"string"},
"TagValue":{"type":"string"},
"Tags":{
"type":"list",
"member":{"shape":"Tag"}
},
"TemplateBody":{
"type":"string",
"min":1
},
"TemplateDescription":{"type":"string"},
"TemplateParameter":{
"type":"structure",
"members":{
"ParameterKey":{"shape":"ParameterKey"},
"DefaultValue":{"shape":"ParameterValue"},
"NoEcho":{"shape":"NoEcho"},
"Description":{"shape":"Description"}
}
},
"TemplateParameters":{
"type":"list",
"member":{"shape":"TemplateParameter"}
},
"TemplateURL":{
"type":"string",
"min":1,
"max":1024
},
"TimeoutMinutes":{
"type":"integer",
"min":1
},
"Timestamp":{"type":"timestamp"},
"UpdateStackInput":{
"type":"structure",
"required":["StackName"],
"members":{
"StackName":{"shape":"StackName"},
"TemplateBody":{"shape":"TemplateBody"},
"TemplateURL":{"shape":"TemplateURL"},
"UsePreviousTemplate":{"shape":"UsePreviousTemplate"},
"StackPolicyDuringUpdateBody":{"shape":"StackPolicyDuringUpdateBody"},
"StackPolicyDuringUpdateURL":{"shape":"StackPolicyDuringUpdateURL"},
"Parameters":{"shape":"Parameters"},
"Capabilities":{"shape":"Capabilities"},
"ResourceTypes":{"shape":"ResourceTypes"},
"StackPolicyBody":{"shape":"StackPolicyBody"},
"StackPolicyURL":{"shape":"StackPolicyURL"},
"NotificationARNs":{"shape":"NotificationARNs"}
}
},
"UpdateStackOutput":{
"type":"structure",
"members":{
"StackId":{"shape":"StackId"}
}
},
"Url":{"type":"string"},
"UsePreviousTemplate":{"type":"boolean"},
"UsePreviousValue":{"type":"boolean"},
"ValidateTemplateInput":{
"type":"structure",
"members":{
"TemplateBody":{"shape":"TemplateBody"},
"TemplateURL":{"shape":"TemplateURL"}
}
},
"ValidateTemplateOutput":{
"type":"structure",
"members":{
"Parameters":{"shape":"TemplateParameters"},
"Description":{"shape":"Description"},
"Capabilities":{"shape":"Capabilities"},
"CapabilitiesReason":{"shape":"CapabilitiesReason"}
}
},
"Version":{"type":"string"}
}
}

View File

@@ -1,771 +0,0 @@
{
"version": "2.0",
"operations": {
"CancelUpdateStack": "<p>Cancels an update on the specified stack. If the call completes successfully, the stack rolls back the update and reverts to the previous stack configuration.</p> <note>You can cancel only stacks that are in the UPDATE_IN_PROGRESS state.</note>",
"CreateStack": "<p>Creates a stack as specified in the template. After the call completes successfully, the stack creation starts. You can check the status of the stack via the <a>DescribeStacks</a> API.</p>",
"DeleteStack": "<p>Deletes a specified stack. Once the call completes successfully, stack deletion starts. Deleted stacks do not show up in the <a>DescribeStacks</a> API if the deletion has been completed successfully.</p>",
"DescribeAccountLimits": "<p>Retrieves your account's AWS CloudFormation limits, such as the maximum number of stacks that you can create in your account.</p>",
"DescribeStackEvents": "<p>Returns all stack related events for a specified stack. For more information about a stack's event history, go to <a href=\"http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/concept-stack.html\">Stacks</a> in the AWS CloudFormation User Guide.</p> <note>You can list events for stacks that have failed to create or have been deleted by specifying the unique stack identifier (stack ID).</note>",
"DescribeStackResource": "<p>Returns a description of the specified resource in the specified stack.</p> <p>For deleted stacks, DescribeStackResource returns resource information for up to 90 days after the stack has been deleted.</p>",
"DescribeStackResources": "<p>Returns AWS resource descriptions for running and deleted stacks. If <code>StackName</code> is specified, all the associated resources that are part of the stack are returned. If <code>PhysicalResourceId</code> is specified, the associated resources of the stack that the resource belongs to are returned.</p> <note>Only the first 100 resources will be returned. If your stack has more resources than this, you should use <code>ListStackResources</code> instead.</note> <p>For deleted stacks, <code>DescribeStackResources</code> returns resource information for up to 90 days after the stack has been deleted.</p> <p>You must specify either <code>StackName</code> or <code>PhysicalResourceId</code>, but not both. In addition, you can specify <code>LogicalResourceId</code> to filter the returned result. For more information about resources, the <code>LogicalResourceId</code> and <code>PhysicalResourceId</code>, go to the <a href=\"http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide\">AWS CloudFormation User Guide</a>.</p> <note>A <code>ValidationError</code> is returned if you specify both <code>StackName</code> and <code>PhysicalResourceId</code> in the same request.</note>",
"DescribeStacks": "<p>Returns the description for the specified stack; if no stack name was specified, then it returns the description for all the stacks created.</p>",
"EstimateTemplateCost": "<p>Returns the estimated monthly cost of a template. The return value is an AWS Simple Monthly Calculator URL with a query string that describes the resources required to run the template.</p>",
"GetStackPolicy": "<p>Returns the stack policy for a specified stack. If a stack doesn't have a policy, a null value is returned.</p>",
"GetTemplate": "<p>Returns the template body for a specified stack. You can get the template for running or deleted stacks.</p> <p>For deleted stacks, GetTemplate returns the template for up to 90 days after the stack has been deleted.</p> <note> If the template does not exist, a <code>ValidationError</code> is returned. </note>",
"GetTemplateSummary": "<p>Returns information about a new or existing template. The <code>GetTemplateSummary</code> action is useful for viewing parameter information, such as default parameter values and parameter types, before you create or update a stack.</p> <p>You can use the <code>GetTemplateSummary</code> action when you submit a template, or you can get template information for a running or deleted stack.</p> <p>For deleted stacks, <code>GetTemplateSummary</code> returns the template information for up to 90 days after the stack has been deleted. If the template does not exist, a <code>ValidationError</code> is returned.</p>",
"ListStackResources": "<p>Returns descriptions of all resources of the specified stack.</p> <p>For deleted stacks, ListStackResources returns resource information for up to 90 days after the stack has been deleted.</p>",
"ListStacks": "<p>Returns the summary information for stacks whose status matches the specified StackStatusFilter. Summary information for stacks that have been deleted is kept for 90 days after the stack is deleted. If no StackStatusFilter is specified, summary information for all stacks is returned (including existing stacks and stacks that have been deleted).</p>",
"SetStackPolicy": "<p>Sets a stack policy for a specified stack.</p>",
"SignalResource": "<p>Sends a signal to the specified resource with a success or failure status. You can use the SignalResource API in conjunction with a creation policy or update policy. AWS CloudFormation doesn't proceed with a stack creation or update until resources receive the required number of signals or the timeout period is exceeded. The SignalResource API is useful in cases where you want to send signals from anywhere other than an Amazon EC2 instance.</p>",
"UpdateStack": "<p>Updates a stack as specified in the template. After the call completes successfully, the stack update starts. You can check the status of the stack via the <a>DescribeStacks</a> action.</p> <p>To get a copy of the template for an existing stack, you can use the <a>GetTemplate</a> action.</p> <p>Tags that were associated with this stack during creation time will still be associated with the stack after an <code>UpdateStack</code> operation.</p> <p>For more information about creating an update template, updating a stack, and monitoring the progress of the update, see <a href=\"http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks.html\">Updating a Stack</a>.</p>",
"ValidateTemplate": "<p>Validates a specified template.</p>"
},
"service": "<fullname>AWS CloudFormation</fullname> <p>AWS CloudFormation enables you to create and manage AWS infrastructure deployments predictably and repeatedly. AWS CloudFormation helps you leverage AWS products such as Amazon EC2, EBS, Amazon SNS, ELB, and Auto Scaling to build highly-reliable, highly scalable, cost effective applications without worrying about creating and configuring the underlying AWS infrastructure.</p> <p>With AWS CloudFormation, you declare all of your resources and dependencies in a template file. The template defines a collection of resources as a single unit called a stack. AWS CloudFormation creates and deletes all member resources of the stack together and manages all dependencies between the resources for you.</p> <p>For more information about this product, go to the <a href=\"http://aws.amazon.com/cloudformation/\">CloudFormation Product Page</a>.</p> <p>Amazon CloudFormation makes use of other AWS products. If you need additional technical information about a specific AWS product, you can find the product's technical documentation at <a href=\"http://aws.amazon.com/documentation/\">http://aws.amazon.com/documentation/</a>.</p>",
"shapes": {
"AccountLimit": {
"base": "<p>The AccountLimit data type.</p>",
"refs": {
"AccountLimitList$member": null
}
},
"AccountLimitList": {
"base": null,
"refs": {
"DescribeAccountLimitsOutput$AccountLimits": "<p>An account limit structure that contain a list of AWS CloudFormation account limits and their values.</p>"
}
},
"AllowedValue": {
"base": null,
"refs": {
"AllowedValues$member": null
}
},
"AllowedValues": {
"base": null,
"refs": {
"ParameterConstraints$AllowedValues": "<p>A list of values that are permitted for a parameter.</p>"
}
},
"AlreadyExistsException": {
"base": "<p>Resource with the name requested already exists.</p>",
"refs": {
}
},
"CancelUpdateStackInput": {
"base": "<p>The input for the <a>CancelUpdateStack</a> action.</p>",
"refs": {
}
},
"Capabilities": {
"base": null,
"refs": {
"CreateStackInput$Capabilities": "<p>A list of capabilities that you must specify before AWS CloudFormation can create or update certain stacks. Some stack templates might include resources that can affect permissions in your AWS account. For those stacks, you must explicitly acknowledge their capabilities by specifying this parameter.</p> <p>Currently, the only valid value is <code>CAPABILITY_IAM</code>, which is required for the following resources: <a href=\"http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-accesskey.html\"> AWS::IAM::AccessKey</a>, <a href=\"http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-group.html\"> AWS::IAM::Group</a>, <a href=\"http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-instanceprofile.html\"> AWS::IAM::InstanceProfile</a>, <a href=\"http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-policy.html\"> AWS::IAM::Policy</a>, <a href=\"http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-role.html\"> AWS::IAM::Role</a>, <a href=\"http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-user.html\"> AWS::IAM::User</a>, and <a href=\"http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-addusertogroup.html\"> AWS::IAM::UserToGroupAddition</a>. If your stack template contains these resources, we recommend that you review any permissions associated with them. If you don't specify this parameter, this action returns an <code>InsufficientCapabilities</code> error.</p>",
"GetTemplateSummaryOutput$Capabilities": "<p>The capabilities found within the template. Currently, AWS CloudFormation supports only the CAPABILITY_IAM capability. If your template contains IAM resources, you must specify the CAPABILITY_IAM value for this parameter when you use the <a>CreateStack</a> or <a>UpdateStack</a> actions with your template; otherwise, those actions return an InsufficientCapabilities error.</p>",
"Stack$Capabilities": "<p>The capabilities allowed in the stack.</p>",
"UpdateStackInput$Capabilities": "<p>A list of capabilities that you must specify before AWS CloudFormation can create or update certain stacks. Some stack templates might include resources that can affect permissions in your AWS account. For those stacks, you must explicitly acknowledge their capabilities by specifying this parameter. Currently, the only valid value is <code>CAPABILITY_IAM</code>, which is required for the following resources: <a href=\"http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-accesskey.html\"> AWS::IAM::AccessKey</a>, <a href=\"http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-group.html\"> AWS::IAM::Group</a>, <a href=\"http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-instanceprofile.html\"> AWS::IAM::InstanceProfile</a>, <a href=\"http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-policy.html\"> AWS::IAM::Policy</a>, <a href=\"http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-role.html\"> AWS::IAM::Role</a>, <a href=\"http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-user.html\"> AWS::IAM::User</a>, and <a href=\"http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-addusertogroup.html\"> AWS::IAM::UserToGroupAddition</a>. If your stack template contains these resources, we recommend that you review any permissions associated with them. If you don't specify this parameter, this action returns an InsufficientCapabilities error.</p>",
"ValidateTemplateOutput$Capabilities": "<p>The capabilities found within the template. Currently, AWS CloudFormation supports only the CAPABILITY_IAM capability. If your template contains IAM resources, you must specify the CAPABILITY_IAM value for this parameter when you use the <a>CreateStack</a> or <a>UpdateStack</a> actions with your template; otherwise, those actions return an InsufficientCapabilities error.</p>"
}
},
"CapabilitiesReason": {
"base": null,
"refs": {
"GetTemplateSummaryOutput$CapabilitiesReason": "<p>The list of resources that generated the values in the <code>Capabilities</code> response element.</p>",
"ValidateTemplateOutput$CapabilitiesReason": "<p>The list of resources that generated the values in the <code>Capabilities</code> response element.</p>"
}
},
"Capability": {
"base": null,
"refs": {
"Capabilities$member": null
}
},
"CreateStackInput": {
"base": "<p>The input for <a>CreateStack</a> action.</p>",
"refs": {
}
},
"CreateStackOutput": {
"base": "<p>The output for a <a>CreateStack</a> action.</p>",
"refs": {
}
},
"CreationTime": {
"base": null,
"refs": {
"Stack$CreationTime": "<p>The time at which the stack was created.</p>",
"StackSummary$CreationTime": "<p>The time the stack was created.</p>"
}
},
"DeleteStackInput": {
"base": "<p>The input for <a>DeleteStack</a> action.</p>",
"refs": {
}
},
"DeletionTime": {
"base": null,
"refs": {
"StackSummary$DeletionTime": "<p>The time the stack was deleted.</p>"
}
},
"DescribeAccountLimitsInput": {
"base": "<p>The input for the <a>DescribeAccountLimits</a> action.</p>",
"refs": {
}
},
"DescribeAccountLimitsOutput": {
"base": "<p>The output for the <a>DescribeAccountLimits</a> action.</p>",
"refs": {
}
},
"DescribeStackEventsInput": {
"base": "<p>The input for <a>DescribeStackEvents</a> action.</p>",
"refs": {
}
},
"DescribeStackEventsOutput": {
"base": "<p>The output for a <a>DescribeStackEvents</a> action.</p>",
"refs": {
}
},
"DescribeStackResourceInput": {
"base": "<p>The input for <a>DescribeStackResource</a> action.</p>",
"refs": {
}
},
"DescribeStackResourceOutput": {
"base": "<p>The output for a <a>DescribeStackResource</a> action.</p>",
"refs": {
}
},
"DescribeStackResourcesInput": {
"base": "<p>The input for <a>DescribeStackResources</a> action.</p>",
"refs": {
}
},
"DescribeStackResourcesOutput": {
"base": "<p>The output for a <a>DescribeStackResources</a> action.</p>",
"refs": {
}
},
"DescribeStacksInput": {
"base": "<p>The input for <a>DescribeStacks</a> action.</p>",
"refs": {
}
},
"DescribeStacksOutput": {
"base": "<p>The output for a <a>DescribeStacks</a> action.</p>",
"refs": {
}
},
"Description": {
"base": null,
"refs": {
"GetTemplateSummaryOutput$Description": "<p>The value that is defined in the <code>Description</code> property of the template.</p>",
"Output$Description": "<p>User defined description associated with the output.</p>",
"ParameterDeclaration$Description": "<p>The description that is associate with the parameter.</p>",
"Stack$Description": "<p>A user-defined description associated with the stack.</p>",
"StackResource$Description": "<p>User defined description associated with the resource.</p>",
"StackResourceDetail$Description": "<p>User defined description associated with the resource.</p>",
"TemplateParameter$Description": "<p>User defined description associated with the parameter.</p>",
"ValidateTemplateOutput$Description": "<p>The description found within the template.</p>"
}
},
"DisableRollback": {
"base": null,
"refs": {
"CreateStackInput$DisableRollback": "<p>Set to <code>true</code> to disable rollback of the stack if stack creation failed. You can specify either <code>DisableRollback</code> or <code>OnFailure</code>, but not both.</p> <p>Default: <code>false</code> </p>",
"Stack$DisableRollback": "<p>Boolean to enable or disable rollback on stack creation failures:</p> <p> <ul> <li> <code>true</code>: disable rollback</li> <li> <code>false</code>: enable rollback</li> </ul> </p>"
}
},
"EstimateTemplateCostInput": {
"base": null,
"refs": {
}
},
"EstimateTemplateCostOutput": {
"base": "<p>The output for a <a>EstimateTemplateCost</a> action.</p>",
"refs": {
}
},
"EventId": {
"base": null,
"refs": {
"StackEvent$EventId": "<p>The unique ID of this event.</p>"
}
},
"GetStackPolicyInput": {
"base": "<p>The input for the <a>GetStackPolicy</a> action.</p>",
"refs": {
}
},
"GetStackPolicyOutput": {
"base": "<p>The output for the <a>GetStackPolicy</a> action.</p>",
"refs": {
}
},
"GetTemplateInput": {
"base": "<p>The input for a <a>GetTemplate</a> action.</p>",
"refs": {
}
},
"GetTemplateOutput": {
"base": "<p>The output for <a>GetTemplate</a> action.</p>",
"refs": {
}
},
"GetTemplateSummaryInput": {
"base": "<p>The input for the <a>GetTemplateSummary</a> action.</p>",
"refs": {
}
},
"GetTemplateSummaryOutput": {
"base": "<p>The output for the <a>GetTemplateSummary</a> action.</p>",
"refs": {
}
},
"InsufficientCapabilitiesException": {
"base": "<p>The template contains resources with capabilities that were not specified in the Capabilities parameter.</p>",
"refs": {
}
},
"LastUpdatedTime": {
"base": null,
"refs": {
"Stack$LastUpdatedTime": "<p>The time the stack was last updated. This field will only be returned if the stack has been updated at least once.</p>",
"StackSummary$LastUpdatedTime": "<p>The time the stack was last updated. This field will only be returned if the stack has been updated at least once.</p>"
}
},
"LimitExceededException": {
"base": "<p>Quota for the resource has already been reached.</p>",
"refs": {
}
},
"LimitName": {
"base": null,
"refs": {
"AccountLimit$Name": "<p>The name of the account limit. Currently, the only account limit is <code>StackLimit</code>.</p>"
}
},
"LimitValue": {
"base": null,
"refs": {
"AccountLimit$Value": "<p>The value that is associated with the account limit name.</p>"
}
},
"ListStackResourcesInput": {
"base": "<p>The input for the <a>ListStackResource</a> action.</p>",
"refs": {
}
},
"ListStackResourcesOutput": {
"base": "<p>The output for a <a>ListStackResources</a> action.</p>",
"refs": {
}
},
"ListStacksInput": {
"base": "<p>The input for <a>ListStacks</a> action.</p>",
"refs": {
}
},
"ListStacksOutput": {
"base": "<p>The output for <a>ListStacks</a> action.</p>",
"refs": {
}
},
"LogicalResourceId": {
"base": null,
"refs": {
"DescribeStackResourceInput$LogicalResourceId": "<p>The logical name of the resource as specified in the template.</p> <p>Default: There is no default value.</p>",
"DescribeStackResourcesInput$LogicalResourceId": "<p>The logical name of the resource as specified in the template.</p> <p>Default: There is no default value.</p>",
"SignalResourceInput$LogicalResourceId": "<p>The logical ID of the resource that you want to signal. The logical ID is the name of the resource that given in the template.</p>",
"StackEvent$LogicalResourceId": "<p>The logical name of the resource specified in the template.</p>",
"StackResource$LogicalResourceId": "<p>The logical name of the resource specified in the template.</p>",
"StackResourceDetail$LogicalResourceId": "<p>The logical name of the resource specified in the template.</p>",
"StackResourceSummary$LogicalResourceId": "<p>The logical name of the resource specified in the template.</p>"
}
},
"Metadata": {
"base": null,
"refs": {
"GetTemplateSummaryOutput$Metadata": "<p>The value that is defined for the <code>Metadata</code> property of the template.</p>",
"StackResourceDetail$Metadata": "<p>The JSON format content of the <code>Metadata</code> attribute declared for the resource. For more information, see <a href=\"http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-metadata.html\">Metadata Attribute</a> in the AWS CloudFormation User Guide.</p>"
}
},
"NextToken": {
"base": null,
"refs": {
"DescribeAccountLimitsInput$NextToken": "<p>A string that identifies the next page of limits that you want to retrieve.</p>",
"DescribeAccountLimitsOutput$NextToken": "<p>A string that identifies the next page of limits. If no additional page exists, this value is null.</p>",
"DescribeStackEventsInput$NextToken": "<p>String that identifies the start of the next list of events, if there is one.</p> <p>Default: There is no default value.</p>",
"DescribeStackEventsOutput$NextToken": "<p>String that identifies the start of the next list of events, if there is one.</p>",
"DescribeStacksInput$NextToken": "String that identifies the start of the next list of stacks, if there is one.",
"DescribeStacksOutput$NextToken": "String that identifies the start of the next list of stacks, if there is one.",
"ListStackResourcesInput$NextToken": "<p>String that identifies the start of the next list of stack resource summaries, if there is one.</p> <p>Default: There is no default value.</p>",
"ListStackResourcesOutput$NextToken": "<p>String that identifies the start of the next list of stack resources, if there is one.</p>",
"ListStacksInput$NextToken": "<p>String that identifies the start of the next list of stacks, if there is one.</p> <p>Default: There is no default value.</p>",
"ListStacksOutput$NextToken": "<p>String that identifies the start of the next list of stacks, if there is one.</p>"
}
},
"NoEcho": {
"base": null,
"refs": {
"ParameterDeclaration$NoEcho": "<p>Flag that indicates whether the parameter value is shown as plain text in logs and in the AWS Management Console.</p>",
"TemplateParameter$NoEcho": "<p>Flag indicating whether the parameter should be displayed as plain text in logs and UIs.</p>"
}
},
"NotificationARN": {
"base": null,
"refs": {
"NotificationARNs$member": null
}
},
"NotificationARNs": {
"base": null,
"refs": {
"CreateStackInput$NotificationARNs": "<p>The Simple Notification Service (SNS) topic ARNs to publish stack related events. You can find your SNS topic ARNs using the <a href=\"http://console.aws.amazon.com/sns\">SNS console</a> or your Command Line Interface (CLI).</p>",
"Stack$NotificationARNs": "<p>SNS topic ARNs to which stack related events are published.</p>",
"UpdateStackInput$NotificationARNs": "<p>Update the ARNs for the Amazon SNS topics that are associated with the stack.</p>"
}
},
"OnFailure": {
"base": null,
"refs": {
"CreateStackInput$OnFailure": "<p>Determines what action will be taken if stack creation fails. This must be one of: DO_NOTHING, ROLLBACK, or DELETE. You can specify either <code>OnFailure</code> or <code>DisableRollback</code>, but not both.</p> <p>Default: <code>ROLLBACK</code></p>"
}
},
"Output": {
"base": "<p>The Output data type.</p>",
"refs": {
"Outputs$member": null
}
},
"OutputKey": {
"base": null,
"refs": {
"Output$OutputKey": "<p>The key associated with the output.</p>"
}
},
"OutputValue": {
"base": null,
"refs": {
"Output$OutputValue": "<p>The value associated with the output.</p>"
}
},
"Outputs": {
"base": null,
"refs": {
"Stack$Outputs": "<p>A list of output structures.</p>"
}
},
"Parameter": {
"base": "<p>The Parameter data type.</p>",
"refs": {
"Parameters$member": null
}
},
"ParameterConstraints": {
"base": "<p>A set of criteria that AWS CloudFormation uses to validate parameter values. Although other constraints might be defined in the stack template, AWS CloudFormation returns only the <code>AllowedValues</code> property.</p>",
"refs": {
"ParameterDeclaration$ParameterConstraints": "<p>The criteria that AWS CloudFormation uses to validate parameter values.</p>"
}
},
"ParameterDeclaration": {
"base": "<p>The ParameterDeclaration data type.</p>",
"refs": {
"ParameterDeclarations$member": null
}
},
"ParameterDeclarations": {
"base": null,
"refs": {
"GetTemplateSummaryOutput$Parameters": "<p>A list of parameter declarations that describe various properties for each parameter.</p>"
}
},
"ParameterKey": {
"base": null,
"refs": {
"Parameter$ParameterKey": "<p>The key associated with the parameter. If you don't specify a key and value for a particular parameter, AWS CloudFormation uses the default value that is specified in your template.</p>",
"ParameterDeclaration$ParameterKey": "<p>The name that is associated with the parameter.</p>",
"TemplateParameter$ParameterKey": "<p>The name associated with the parameter.</p>"
}
},
"ParameterType": {
"base": null,
"refs": {
"ParameterDeclaration$ParameterType": "<p>The type of parameter.</p>"
}
},
"ParameterValue": {
"base": null,
"refs": {
"Parameter$ParameterValue": "<p>The value associated with the parameter.</p>",
"ParameterDeclaration$DefaultValue": "<p>The default value of the parameter.</p>",
"TemplateParameter$DefaultValue": "<p>The default value associated with the parameter.</p>"
}
},
"Parameters": {
"base": null,
"refs": {
"CreateStackInput$Parameters": "<p>A list of <code>Parameter</code> structures that specify input parameters for the stack.</p>",
"EstimateTemplateCostInput$Parameters": "<p>A list of <code>Parameter</code> structures that specify input parameters.</p>",
"Stack$Parameters": "<p>A list of <code>Parameter</code> structures.</p>",
"UpdateStackInput$Parameters": "<p>A list of <code>Parameter</code> structures that specify input parameters for the stack. For more information, see the <a href=\"http://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_Parameter.html\">Parameter</a> data type.</p>"
}
},
"PhysicalResourceId": {
"base": null,
"refs": {
"DescribeStackResourcesInput$PhysicalResourceId": "<p>The name or unique identifier that corresponds to a physical instance ID of a resource supported by AWS CloudFormation.</p> <p>For example, for an Amazon Elastic Compute Cloud (EC2) instance, <code>PhysicalResourceId</code> corresponds to the <code>InstanceId</code>. You can pass the EC2 <code>InstanceId</code> to <code>DescribeStackResources</code> to find which stack the instance belongs to and what other resources are part of the stack.</p> <p>Required: Conditional. If you do not specify <code>PhysicalResourceId</code>, you must specify <code>StackName</code>.</p> <p>Default: There is no default value.</p>",
"StackEvent$PhysicalResourceId": "<p>The name or unique identifier associated with the physical instance of the resource.</p>",
"StackResource$PhysicalResourceId": "<p>The name or unique identifier that corresponds to a physical instance ID of a resource supported by AWS CloudFormation.</p>",
"StackResourceDetail$PhysicalResourceId": "<p>The name or unique identifier that corresponds to a physical instance ID of a resource supported by AWS CloudFormation.</p>",
"StackResourceSummary$PhysicalResourceId": "<p>The name or unique identifier that corresponds to a physical instance ID of the resource.</p>"
}
},
"ResourceProperties": {
"base": null,
"refs": {
"StackEvent$ResourceProperties": "<p>BLOB of the properties used to create the resource.</p>"
}
},
"ResourceSignalStatus": {
"base": null,
"refs": {
"SignalResourceInput$Status": "<p>The status of the signal, which is either success or failure. A failure signal causes AWS CloudFormation to immediately fail the stack creation or update.</p>"
}
},
"ResourceSignalUniqueId": {
"base": null,
"refs": {
"SignalResourceInput$UniqueId": "<p>A unique ID of the signal. When you signal Amazon EC2 instances or Auto Scaling groups, specify the instance ID that you are signaling as the unique ID. If you send multiple signals to a single resource (such as signaling a wait condition), each signal requires a different unique ID.</p>"
}
},
"ResourceStatus": {
"base": null,
"refs": {
"StackEvent$ResourceStatus": "<p>Current status of the resource.</p>",
"StackResource$ResourceStatus": "<p>Current status of the resource.</p>",
"StackResourceDetail$ResourceStatus": "<p>Current status of the resource.</p>",
"StackResourceSummary$ResourceStatus": "<p>Current status of the resource.</p>"
}
},
"ResourceStatusReason": {
"base": null,
"refs": {
"StackEvent$ResourceStatusReason": "<p>Success/failure message associated with the resource.</p>",
"StackResource$ResourceStatusReason": "<p>Success/failure message associated with the resource.</p>",
"StackResourceDetail$ResourceStatusReason": "<p>Success/failure message associated with the resource.</p>",
"StackResourceSummary$ResourceStatusReason": "<p>Success/failure message associated with the resource.</p>"
}
},
"ResourceType": {
"base": null,
"refs": {
"ResourceTypes$member": null,
"StackEvent$ResourceType": "<p>Type of resource. (For more information, go to <a href=\"http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-template-resource-type-ref.html\"> AWS Resource Types Reference</a> in the AWS CloudFormation User Guide.)</p>",
"StackResource$ResourceType": "<p>Type of resource. (For more information, go to <a href=\"http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-template-resource-type-ref.html\"> AWS Resource Types Reference</a> in the AWS CloudFormation User Guide.)</p>",
"StackResourceDetail$ResourceType": "<p>Type of resource. ((For more information, go to <a href=\"http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-template-resource-type-ref.html\"> AWS Resource Types Reference</a> in the AWS CloudFormation User Guide.)</p>",
"StackResourceSummary$ResourceType": "<p>Type of resource. (For more information, go to <a href=\"http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-template-resource-type-ref.html\"> AWS Resource Types Reference</a> in the AWS CloudFormation User Guide.)</p>"
}
},
"ResourceTypes": {
"base": null,
"refs": {
"CreateStackInput$ResourceTypes": "<p>The template resource types that you have permissions to work with for this create stack action, such as <code>AWS::EC2::Instance</code>, <code>AWS::EC2::*</code>, or <code>Custom::MyCustomInstance</code>. Use the following syntax to describe template resource types: <code>AWS::*</code> (for all AWS resource), <code>Custom::*</code> (for all custom resources), <code>Custom::<i>logical_ID</i></code> (for a specific custom resource), <code>AWS::<i>service_name</i>::*</code> (for all resources of a particular AWS service), and <code>AWS::<i>service_name</i>::<i>resource_logical_ID</i></code> (for a specific AWS resource).</p> <p>If the list of resource types doesn't include a resource that you're creating, the stack creation fails. By default, AWS CloudFormation grants permissions to all resource types. AWS Identity and Access Management (IAM) uses this parameter for AWS CloudFormation-specific condition keys in IAM policies. For more information, see <a href=\"http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-iam-template.html\">Controlling Access with AWS Identity and Access Management</a>.</p>",
"GetTemplateSummaryOutput$ResourceTypes": "<p>A list of all the template resource types that are defined in the template, such as <code>AWS::EC2::Instance</code>, <code>AWS::Dynamo::Table</code>, and <code>Custom::MyCustomInstance</code>. Use the following syntax to describe template resource types: <code>AWS::*</code> (for all AWS resources), <code>Custom::*</code> (for all custom resources), <code>Custom::<i>logical_ID</i></code> (for a specific custom resource), <code>AWS::<i>service_name</i>::*</code> (for all resources of a particular AWS service), and <code>AWS::<i>service_name</i>::<i>resource_logical_ID</i></code> (for a specific AWS resource).</p>",
"UpdateStackInput$ResourceTypes": "<p>The template resource types that you have permissions to work with for this update stack action, such as <code>AWS::EC2::Instance</code>, <code>AWS::EC2::*</code>, or <code>Custom::MyCustomInstance</code>.</p> <p>If the list of resource types doesn't include a resource that you're updating, the stack update fails. By default, AWS CloudFormation grants permissions to all resource types. AWS Identity and Access Management (IAM) uses this parameter for AWS CloudFormation-specific condition keys in IAM policies. For more information, see <a href=\"http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-iam-template.html\">Controlling Access with AWS Identity and Access Management</a></p>"
}
},
"SetStackPolicyInput": {
"base": "<p>The input for the <a>SetStackPolicy</a> action.</p>",
"refs": {
}
},
"SignalResourceInput": {
"base": "<p>The input for the <a>SignalResource</a> action.</p>",
"refs": {
}
},
"Stack": {
"base": "<p>The Stack data type.</p>",
"refs": {
"Stacks$member": null
}
},
"StackEvent": {
"base": "<p>The StackEvent data type.</p>",
"refs": {
"StackEvents$member": null
}
},
"StackEvents": {
"base": null,
"refs": {
"DescribeStackEventsOutput$StackEvents": "<p>A list of <code>StackEvents</code> structures.</p>"
}
},
"StackId": {
"base": null,
"refs": {
"CreateStackOutput$StackId": "<p>Unique identifier of the stack.</p>",
"Stack$StackId": "<p>Unique identifier of the stack.</p>",
"StackEvent$StackId": "<p>The unique ID name of the instance of the stack.</p>",
"StackResource$StackId": "<p>Unique identifier of the stack.</p>",
"StackResourceDetail$StackId": "<p>Unique identifier of the stack.</p>",
"StackSummary$StackId": "<p>Unique stack identifier.</p>",
"UpdateStackOutput$StackId": "<p>Unique identifier of the stack.</p>"
}
},
"StackName": {
"base": null,
"refs": {
"CancelUpdateStackInput$StackName": "<p>The name or the unique stack ID that is associated with the stack.</p>",
"CreateStackInput$StackName": "<p>The name that is associated with the stack. The name must be unique in the region in which you are creating the stack.</p> <note>A stack name can contain only alphanumeric characters (case sensitive) and hyphens. It must start with an alphabetic character and cannot be longer than 255 characters.</note>",
"DeleteStackInput$StackName": "<p>The name or the unique stack ID that is associated with the stack.</p>",
"DescribeStackEventsInput$StackName": "<p>The name or the unique stack ID that is associated with the stack, which are not always interchangeable:</p> <ul> <li>Running stacks: You can specify either the stack's name or its unique stack ID.</li> <li>Deleted stacks: You must specify the unique stack ID.</li> </ul> <p>Default: There is no default value.</p>",
"DescribeStackResourceInput$StackName": "<p>The name or the unique stack ID that is associated with the stack, which are not always interchangeable:</p> <ul> <li>Running stacks: You can specify either the stack's name or its unique stack ID.</li> <li>Deleted stacks: You must specify the unique stack ID.</li> </ul> <p>Default: There is no default value.</p>",
"DescribeStackResourcesInput$StackName": "<p>The name or the unique stack ID that is associated with the stack, which are not always interchangeable:</p> <ul> <li>Running stacks: You can specify either the stack's name or its unique stack ID.</li> <li>Deleted stacks: You must specify the unique stack ID.</li> </ul> <p>Default: There is no default value.</p> <p>Required: Conditional. If you do not specify <code>StackName</code>, you must specify <code>PhysicalResourceId</code>.</p>",
"DescribeStacksInput$StackName": "<p>The name or the unique stack ID that is associated with the stack, which are not always interchangeable:</p> <ul> <li>Running stacks: You can specify either the stack's name or its unique stack ID.</li> <li>Deleted stacks: You must specify the unique stack ID.</li> </ul> <p>Default: There is no default value.</p>",
"GetStackPolicyInput$StackName": "<p>The name or unique stack ID that is associated with the stack whose policy you want to get.</p>",
"GetTemplateInput$StackName": "<p>The name or the unique stack ID that is associated with the stack, which are not always interchangeable:</p> <ul> <li>Running stacks: You can specify either the stack's name or its unique stack ID.</li> <li>Deleted stacks: You must specify the unique stack ID.</li> </ul> <p>Default: There is no default value.</p>",
"ListStackResourcesInput$StackName": "<p>The name or the unique stack ID that is associated with the stack, which are not always interchangeable:</p> <ul> <li>Running stacks: You can specify either the stack's name or its unique stack ID.</li> <li>Deleted stacks: You must specify the unique stack ID.</li> </ul> <p>Default: There is no default value.</p>",
"SetStackPolicyInput$StackName": "<p>The name or unique stack ID that you want to associate a policy with.</p>",
"Stack$StackName": "<p>The name associated with the stack.</p>",
"StackEvent$StackName": "<p>The name associated with a stack.</p>",
"StackResource$StackName": "<p>The name associated with the stack.</p>",
"StackResourceDetail$StackName": "<p>The name associated with the stack.</p>",
"StackSummary$StackName": "<p>The name associated with the stack.</p>",
"UpdateStackInput$StackName": "<p>The name or unique stack ID of the stack to update.</p>"
}
},
"StackNameOrId": {
"base": null,
"refs": {
"GetTemplateSummaryInput$StackName": "<p>The name or the stack ID that is associated with the stack, which are not always interchangeable. For running stacks, you can specify either the stack's name or its unique stack ID. For deleted stack, you must specify the unique stack ID.</p> <p>Conditional: You must specify only one of the following parameters: <code>StackName</code>, <code>TemplateBody</code>, or <code>TemplateURL</code>.</p>",
"SignalResourceInput$StackName": "<p>The stack name or unique stack ID that includes the resource that you want to signal.</p>"
}
},
"StackPolicyBody": {
"base": null,
"refs": {
"CreateStackInput$StackPolicyBody": "<p>Structure containing the stack policy body. For more information, go to <a href=\"http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/protect-stack-resources.html\"> Prevent Updates to Stack Resources</a> in the AWS CloudFormation User Guide. You can specify either the <code>StackPolicyBody</code> or the <code>StackPolicyURL</code> parameter, but not both.</p>",
"GetStackPolicyOutput$StackPolicyBody": "<p>Structure containing the stack policy body. (For more information, go to <a href=\"http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/protect-stack-resources.html\"> Prevent Updates to Stack Resources</a> in the AWS CloudFormation User Guide.)</p>",
"SetStackPolicyInput$StackPolicyBody": "<p>Structure containing the stack policy body. For more information, go to <a href=\"http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/protect-stack-resources.html\"> Prevent Updates to Stack Resources</a> in the AWS CloudFormation User Guide. You can specify either the <code>StackPolicyBody</code> or the <code>StackPolicyURL</code> parameter, but not both.</p>",
"UpdateStackInput$StackPolicyBody": "<p>Structure containing a new stack policy body. You can specify either the <code>StackPolicyBody</code> or the <code>StackPolicyURL</code> parameter, but not both.</p> <p>You might update the stack policy, for example, in order to protect a new resource that you created during a stack update. If you do not specify a stack policy, the current policy that is associated with the stack is unchanged.</p>"
}
},
"StackPolicyDuringUpdateBody": {
"base": null,
"refs": {
"UpdateStackInput$StackPolicyDuringUpdateBody": "<p>Structure containing the temporary overriding stack policy body. You can specify either the <code>StackPolicyDuringUpdateBody</code> or the <code>StackPolicyDuringUpdateURL</code> parameter, but not both.</p> <p>If you want to update protected resources, specify a temporary overriding stack policy during this update. If you do not specify a stack policy, the current policy that is associated with the stack will be used.</p>"
}
},
"StackPolicyDuringUpdateURL": {
"base": null,
"refs": {
"UpdateStackInput$StackPolicyDuringUpdateURL": "<p>Location of a file containing the temporary overriding stack policy. The URL must point to a policy (max size: 16KB) located in an S3 bucket in the same region as the stack. You can specify either the <code>StackPolicyDuringUpdateBody</code> or the <code>StackPolicyDuringUpdateURL</code> parameter, but not both.</p> <p>If you want to update protected resources, specify a temporary overriding stack policy during this update. If you do not specify a stack policy, the current policy that is associated with the stack will be used.</p>"
}
},
"StackPolicyURL": {
"base": null,
"refs": {
"CreateStackInput$StackPolicyURL": "<p>Location of a file containing the stack policy. The URL must point to a policy (max size: 16KB) located in an S3 bucket in the same region as the stack. You can specify either the <code>StackPolicyBody</code> or the <code>StackPolicyURL</code> parameter, but not both.</p>",
"SetStackPolicyInput$StackPolicyURL": "<p>Location of a file containing the stack policy. The URL must point to a policy (max size: 16KB) located in an S3 bucket in the same region as the stack. You can specify either the <code>StackPolicyBody</code> or the <code>StackPolicyURL</code> parameter, but not both.</p>",
"UpdateStackInput$StackPolicyURL": "<p>Location of a file containing the updated stack policy. The URL must point to a policy (max size: 16KB) located in an S3 bucket in the same region as the stack. You can specify either the <code>StackPolicyBody</code> or the <code>StackPolicyURL</code> parameter, but not both.</p> <p>You might update the stack policy, for example, in order to protect a new resource that you created during a stack update. If you do not specify a stack policy, the current policy that is associated with the stack is unchanged.</p>"
}
},
"StackResource": {
"base": "<p>The StackResource data type.</p>",
"refs": {
"StackResources$member": null
}
},
"StackResourceDetail": {
"base": "<p>Contains detailed information about the specified stack resource.</p>",
"refs": {
"DescribeStackResourceOutput$StackResourceDetail": "<p>A <code>StackResourceDetail</code> structure containing the description of the specified resource in the specified stack.</p>"
}
},
"StackResourceSummaries": {
"base": null,
"refs": {
"ListStackResourcesOutput$StackResourceSummaries": "<p>A list of <code>StackResourceSummary</code> structures.</p>"
}
},
"StackResourceSummary": {
"base": "<p>Contains high-level information about the specified stack resource.</p>",
"refs": {
"StackResourceSummaries$member": null
}
},
"StackResources": {
"base": null,
"refs": {
"DescribeStackResourcesOutput$StackResources": "<p>A list of <code>StackResource</code> structures.</p>"
}
},
"StackStatus": {
"base": null,
"refs": {
"Stack$StackStatus": "<p>Current status of the stack.</p>",
"StackStatusFilter$member": null,
"StackSummary$StackStatus": "<p>The current status of the stack.</p>"
}
},
"StackStatusFilter": {
"base": null,
"refs": {
"ListStacksInput$StackStatusFilter": "<p>Stack status to use as a filter. Specify one or more stack status codes to list only stacks with the specified status codes. For a complete list of stack status codes, see the <code>StackStatus</code> parameter of the <a>Stack</a> data type.</p>"
}
},
"StackStatusReason": {
"base": null,
"refs": {
"Stack$StackStatusReason": "<p>Success/failure message associated with the stack status.</p>",
"StackSummary$StackStatusReason": "<p>Success/Failure message associated with the stack status.</p>"
}
},
"StackSummaries": {
"base": null,
"refs": {
"ListStacksOutput$StackSummaries": "<p>A list of <code>StackSummary</code> structures containing information about the specified stacks.</p>"
}
},
"StackSummary": {
"base": "<p>The StackSummary Data Type</p>",
"refs": {
"StackSummaries$member": null
}
},
"Stacks": {
"base": null,
"refs": {
"DescribeStacksOutput$Stacks": "<p>A list of stack structures.</p>"
}
},
"Tag": {
"base": "<p>The Tag type is used by <code>CreateStack</code> in the <code>Tags</code> parameter. It allows you to specify a key/value pair that can be used to store information related to cost allocation for an AWS CloudFormation stack.</p>",
"refs": {
"Tags$member": null
}
},
"TagKey": {
"base": null,
"refs": {
"Tag$Key": "<p><i>Required</i>. A string used to identify this tag. You can specify a maximum of 128 characters for a tag key. Tags owned by Amazon Web Services (AWS) have the reserved prefix: <code>aws:</code>.</p>"
}
},
"TagValue": {
"base": null,
"refs": {
"Tag$Value": "<p><i>Required</i>. A string containing the value for this tag. You can specify a maximum of 256 characters for a tag value.</p>"
}
},
"Tags": {
"base": null,
"refs": {
"CreateStackInput$Tags": "<p>A set of user-defined <code>Tags</code> to associate with this stack, represented by key/value pairs. Tags defined for the stack are propagated to EC2 resources that are created as part of the stack. A maximum number of 10 tags can be specified.</p>",
"Stack$Tags": "<p>A list of <code>Tag</code>s that specify cost allocation information for the stack.</p>"
}
},
"TemplateBody": {
"base": null,
"refs": {
"CreateStackInput$TemplateBody": "<p>Structure containing the template body with a minimum length of 1 byte and a maximum length of 51,200 bytes. For more information, go to <a href=\"http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/template-anatomy.html\">Template Anatomy</a> in the AWS CloudFormation User Guide.</p> <p>Conditional: You must specify either the <code>TemplateBody</code> or the <code>TemplateURL</code> parameter, but not both.</p>",
"EstimateTemplateCostInput$TemplateBody": "<p>Structure containing the template body with a minimum length of 1 byte and a maximum length of 51,200 bytes. (For more information, go to <a href=\"http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/template-anatomy.html\">Template Anatomy</a> in the AWS CloudFormation User Guide.)</p> <p>Conditional: You must pass <code>TemplateBody</code> or <code>TemplateURL</code>. If both are passed, only <code>TemplateBody</code> is used.</p>",
"GetTemplateOutput$TemplateBody": "<p>Structure containing the template body. (For more information, go to <a href=\"http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/template-anatomy.html\">Template Anatomy</a> in the AWS CloudFormation User Guide.)</p>",
"GetTemplateSummaryInput$TemplateBody": "<p>Structure containing the template body with a minimum length of 1 byte and a maximum length of 51,200 bytes. For more information about templates, see <a href=\"http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/template-anatomy.html\">Template Anatomy</a> in the AWS CloudFormation User Guide.</p> <p>Conditional: You must specify only one of the following parameters: <code>StackName</code>, <code>TemplateBody</code>, or <code>TemplateURL</code>.</p>",
"UpdateStackInput$TemplateBody": "<p>Structure containing the template body with a minimum length of 1 byte and a maximum length of 51,200 bytes. (For more information, go to <a href=\"http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/template-anatomy.html\">Template Anatomy</a> in the AWS CloudFormation User Guide.)</p> <p>Conditional: You must specify either the <code>TemplateBody</code> or the <code>TemplateURL</code> parameter, but not both.</p>",
"ValidateTemplateInput$TemplateBody": "<p>Structure containing the template body with a minimum length of 1 byte and a maximum length of 51,200 bytes. For more information, go to <a href=\"http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/template-anatomy.html\">Template Anatomy</a> in the AWS CloudFormation User Guide.</p> <p>Conditional: You must pass <code>TemplateURL</code> or <code>TemplateBody</code>. If both are passed, only <code>TemplateBody</code> is used.</p>"
}
},
"TemplateDescription": {
"base": null,
"refs": {
"StackSummary$TemplateDescription": "<p>The template description of the template used to create the stack.</p>"
}
},
"TemplateParameter": {
"base": "<p>The TemplateParameter data type.</p>",
"refs": {
"TemplateParameters$member": null
}
},
"TemplateParameters": {
"base": null,
"refs": {
"ValidateTemplateOutput$Parameters": "<p>A list of <code>TemplateParameter</code> structures.</p>"
}
},
"TemplateURL": {
"base": null,
"refs": {
"CreateStackInput$TemplateURL": "<p>Location of file containing the template body. The URL must point to a template (max size: 460,800 bytes) that is located in an Amazon S3 bucket. For more information, go to the <a href=\"http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/template-anatomy.html\">Template Anatomy</a> in the AWS CloudFormation User Guide.</p> <p>Conditional: You must specify either the <code>TemplateBody</code> or the <code>TemplateURL</code> parameter, but not both.</p>",
"EstimateTemplateCostInput$TemplateURL": "<p>Location of file containing the template body. The URL must point to a template that is located in an Amazon S3 bucket. For more information, go to <a href=\"http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/template-anatomy.html\">Template Anatomy</a> in the AWS CloudFormation User Guide.</p> <p>Conditional: You must pass <code>TemplateURL</code> or <code>TemplateBody</code>. If both are passed, only <code>TemplateBody</code> is used.</p>",
"GetTemplateSummaryInput$TemplateURL": "<p>Location of file containing the template body. The URL must point to a template (max size: 460,800 bytes) that is located in an Amazon S3 bucket. For more information about templates, see <a href=\"http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/template-anatomy.html\">Template Anatomy</a> in the AWS CloudFormation User Guide.</p> <p>Conditional: You must specify only one of the following parameters: <code>StackName</code>, <code>TemplateBody</code>, or <code>TemplateURL</code>.</p>",
"UpdateStackInput$TemplateURL": "<p>Location of file containing the template body. The URL must point to a template that is located in an Amazon S3 bucket. For more information, go to <a href=\"http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/template-anatomy.html\">Template Anatomy</a> in the AWS CloudFormation User Guide.</p> <p>Conditional: You must specify either the <code>TemplateBody</code> or the <code>TemplateURL</code> parameter, but not both.</p>",
"ValidateTemplateInput$TemplateURL": "<p>Location of file containing the template body. The URL must point to a template (max size: 460,800 bytes) that is located in an Amazon S3 bucket. For more information, go to <a href=\"http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/template-anatomy.html\">Template Anatomy</a> in the AWS CloudFormation User Guide.</p> <p>Conditional: You must pass <code>TemplateURL</code> or <code>TemplateBody</code>. If both are passed, only <code>TemplateBody</code> is used.</p>"
}
},
"TimeoutMinutes": {
"base": null,
"refs": {
"CreateStackInput$TimeoutInMinutes": "<p>The amount of time that can pass before the stack status becomes CREATE_FAILED; if <code>DisableRollback</code> is not set or is set to <code>false</code>, the stack will be rolled back.</p>",
"Stack$TimeoutInMinutes": "<p>The amount of time within which stack creation should complete.</p>"
}
},
"Timestamp": {
"base": null,
"refs": {
"StackEvent$Timestamp": "<p>Time the status was updated.</p>",
"StackResource$Timestamp": "<p>Time the status was updated.</p>",
"StackResourceDetail$LastUpdatedTimestamp": "<p>Time the status was updated.</p>",
"StackResourceSummary$LastUpdatedTimestamp": "<p>Time the status was updated.</p>"
}
},
"UpdateStackInput": {
"base": "<p>The input for <a>UpdateStack</a> action.</p>",
"refs": {
}
},
"UpdateStackOutput": {
"base": "<p>The output for a <a>UpdateStack</a> action.</p>",
"refs": {
}
},
"Url": {
"base": null,
"refs": {
"EstimateTemplateCostOutput$Url": "<p>An AWS Simple Monthly Calculator URL with a query string that describes the resources required to run the template.</p>"
}
},
"UsePreviousTemplate": {
"base": null,
"refs": {
"UpdateStackInput$UsePreviousTemplate": "<p>Reuse the existing template that is associated with the stack that you are updating.</p>"
}
},
"UsePreviousValue": {
"base": null,
"refs": {
"Parameter$UsePreviousValue": "<p>During a stack update, use the existing parameter value that the stack is using for a given parameter key. If you specify <code>true</code>, do not specify a parameter value.</p>"
}
},
"ValidateTemplateInput": {
"base": "<p>The input for <a>ValidateTemplate</a> action.</p>",
"refs": {
}
},
"ValidateTemplateOutput": {
"base": "<p>The output for <a>ValidateTemplate</a> action.</p>",
"refs": {
}
},
"Version": {
"base": null,
"refs": {
"GetTemplateSummaryOutput$Version": "<p>The AWS template format version, which identifies the capabilities of the template.</p>"
}
}
}
}

View File

@@ -1,27 +0,0 @@
{
"pagination": {
"DescribeStackEvents": {
"input_token": "NextToken",
"output_token": "NextToken",
"result_key": "StackEvents"
},
"DescribeStackResources": {
"result_key": "StackResources"
},
"DescribeStacks": {
"input_token": "NextToken",
"output_token": "NextToken",
"result_key": "Stacks"
},
"ListStackResources": {
"input_token": "NextToken",
"output_token": "NextToken",
"result_key": "StackResourceSummaries"
},
"ListStacks": {
"input_token": "NextToken",
"output_token": "NextToken",
"result_key": "StackSummaries"
}
}
}

View File

@@ -1,70 +0,0 @@
{
"version": 2,
"waiters": {
"StackCreateComplete": {
"delay": 30,
"operation": "DescribeStacks",
"maxAttempts": 50,
"description": "Wait until stack status is CREATE_COMPLETE.",
"acceptors": [
{
"expected": "CREATE_COMPLETE",
"matcher": "pathAll",
"state": "success",
"argument": "Stacks[].StackStatus"
},
{
"expected": "CREATE_FAILED",
"matcher": "pathAny",
"state": "failure",
"argument": "Stacks[].StackStatus"
}
]
},
"StackDeleteComplete": {
"delay": 30,
"operation": "DescribeStacks",
"maxAttempts": 25,
"description": "Wait until stack status is DELETE_COMPLETE.",
"acceptors": [
{
"expected": "DELETE_COMPLETE",
"matcher": "pathAll",
"state": "success",
"argument": "Stacks[].StackStatus"
},
{
"expected": "ValidationError",
"matcher": "error",
"state": "success"
},
{
"expected": "DELETE_FAILED",
"matcher": "pathAny",
"state": "failure",
"argument": "Stacks[].StackStatus"
}
]
},
"StackUpdateComplete": {
"delay": 30,
"operation": "DescribeStacks",
"maxAttempts": 5,
"description": "Wait until stack status is UPDATE_COMPLETE.",
"acceptors": [
{
"expected": "UPDATE_COMPLETE",
"matcher": "pathAll",
"state": "success",
"argument": "Stacks[].StackStatus"
},
{
"expected": "UPDATE_FAILED",
"matcher": "pathAny",
"state": "failure",
"argument": "Stacks[].StackStatus"
}
]
}
}
}

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@@ -1,32 +0,0 @@
{
"pagination": {
"ListCloudFrontOriginAccessIdentities": {
"input_token": "Marker",
"output_token": "CloudFrontOriginAccessIdentityList.NextMarker",
"limit_key": "MaxItems",
"more_results": "CloudFrontOriginAccessIdentityList.IsTruncated",
"result_key": "CloudFrontOriginAccessIdentityList.Items"
},
"ListDistributions": {
"input_token": "Marker",
"output_token": "DistributionList.NextMarker",
"limit_key": "MaxItems",
"more_results": "DistributionList.IsTruncated",
"result_key": "DistributionList.Items"
},
"ListInvalidations": {
"input_token": "Marker",
"output_token": "InvalidationList.NextMarker",
"limit_key": "MaxItems",
"more_results": "InvalidationList.IsTruncated",
"result_key": "InvalidationList.Items"
},
"ListStreamingDistributions": {
"input_token": "Marker",
"output_token": "StreamingDistributionList.NextMarker",
"limit_key": "MaxItems",
"more_results": "StreamingDistributionList.IsTruncated",
"result_key": "StreamingDistributionList.Items"
}
}
}

View File

@@ -1,47 +0,0 @@
{
"version": 2,
"waiters": {
"DistributionDeployed": {
"delay": 60,
"operation": "GetDistribution",
"maxAttempts": 25,
"description": "Wait until a distribution is deployed.",
"acceptors": [
{
"expected": "Deployed",
"matcher": "path",
"state": "success",
"argument": "Distribution.Status"
}
]
},
"InvalidationCompleted": {
"delay": 20,
"operation": "GetInvalidation",
"maxAttempts": 30,
"description": "Wait until an invalidation has completed.",
"acceptors": [
{
"expected": "Completed",
"matcher": "path",
"state": "success",
"argument": "Invalidation.Status"
}
]
},
"StreamingDistributionDeployed": {
"delay": 60,
"operation": "GetStreamingDistribution",
"maxAttempts": 25,
"description": "Wait until a streaming distribution is deployed.",
"acceptors": [
{
"expected": "Deployed",
"matcher": "path",
"state": "success",
"argument": "StreamingDistribution.Status"
}
]
}
}
}

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

Some files were not shown because too many files have changed in this diff Show More