diff --git a/CHANGELOG.md b/CHANGELOG.md
index 7164f5d99a9..4bddf5e0f32 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -2,6 +2,11 @@
### Minor
* **Pushover**: Adds support for images in pushover notifier [#10780](https://github.com/grafana/grafana/issues/10780), thx [@jpenalbae](https://github.com/jpenalbae)
+* **Stackdriver**: Template variables in filters using globbing format [#15182](https://github.com/grafana/grafana/issues/15182)
+* **Cloudwatch**: Add `resource_arns` template variable query function [#8207](https://github.com/grafana/grafana/issues/8207), thx [@jeroenvollenbrock](https://github.com/jeroenvollenbrock)
+* **Cloudwatch**: Add AWS/Neptune metrics [#14231](https://github.com/grafana/grafana/issues/14231), thx [@tcpatterson](https://github.com/tcpatterson)
+* **Cloudwatch**: Add AWS RDS ServerlessDatabaseCapacity metric [#15265](https://github.com/grafana/grafana/pull/15265), thx [@larsjoergensen](https://github.com/larsjoergensen)
+* **Annotations**: Support PATCH verb in annotations http api [#12546](https://github.com/grafana/grafana/issues/12546), thx [@SamuelToh](https://github.com/SamuelToh)
# 6.0.0-beta1 (2019-01-30)
diff --git a/Gopkg.lock b/Gopkg.lock
index d7795cbd6ba..dca36f1b3d0 100644
--- a/Gopkg.lock
+++ b/Gopkg.lock
@@ -37,6 +37,7 @@
"aws/credentials",
"aws/credentials/ec2rolecreds",
"aws/credentials/endpointcreds",
+ "aws/credentials/processcreds",
"aws/credentials/stscreds",
"aws/csm",
"aws/defaults",
@@ -45,13 +46,18 @@
"aws/request",
"aws/session",
"aws/signer/v4",
+ "internal/ini",
+ "internal/s3err",
"internal/sdkio",
"internal/sdkrand",
+ "internal/sdkuri",
"internal/shareddefaults",
"private/protocol",
"private/protocol/ec2query",
"private/protocol/eventstream",
"private/protocol/eventstream/eventstreamapi",
+ "private/protocol/json/jsonutil",
+ "private/protocol/jsonrpc",
"private/protocol/query",
"private/protocol/query/queryutil",
"private/protocol/rest",
@@ -60,11 +66,13 @@
"service/cloudwatch",
"service/ec2",
"service/ec2/ec2iface",
+ "service/resourcegroupstaggingapi",
+ "service/resourcegroupstaggingapi/resourcegroupstaggingapiiface",
"service/s3",
"service/sts"
]
- revision = "fde4ded7becdeae4d26bf1212916aabba79349b4"
- version = "v1.14.12"
+ revision = "62936e15518acb527a1a9cb4a39d96d94d0fd9a2"
+ version = "v1.16.15"
[[projects]]
branch = "master"
diff --git a/devenv/docker/blocks/loki/config.yaml b/devenv/docker/blocks/loki/config.yaml
new file mode 100644
index 00000000000..9451b6ba79b
--- /dev/null
+++ b/devenv/docker/blocks/loki/config.yaml
@@ -0,0 +1,27 @@
+server:
+ http_listen_port: 9080
+ grpc_listen_port: 0
+
+positions:
+ filename: /tmp/positions.yaml
+
+client:
+ url: http://loki:3100/api/prom/push
+
+scrape_configs:
+- job_name: system
+ entry_parser: raw
+ static_configs:
+ - targets:
+ - localhost
+ labels:
+ job: varlogs
+ __path__: /var/log/*log
+- job_name: grafana
+ entry_parser: raw
+ static_configs:
+ - targets:
+ - localhost
+ labels:
+ job: grafana
+ __path__: /var/log/grafana/*log
diff --git a/devenv/docker/blocks/loki/docker-compose.yaml b/devenv/docker/blocks/loki/docker-compose.yaml
index d6cf21f7856..0ac5d439354 100644
--- a/devenv/docker/blocks/loki/docker-compose.yaml
+++ b/devenv/docker/blocks/loki/docker-compose.yaml
@@ -1,22 +1,14 @@
-version: "3"
-
-networks:
- loki:
-
-services:
loki:
image: grafana/loki:master
ports:
- "3100:3100"
command: -config.file=/etc/loki/local-config.yaml
- networks:
- - loki
promtail:
image: grafana/promtail:master
volumes:
+ - ./docker/blocks/loki/config.yaml:/etc/promtail/docker-config.yaml
- /var/log:/var/log
+ - ../data/log:/var/log/grafana
command:
-config.file=/etc/promtail/docker-config.yaml
- networks:
- - loki
diff --git a/docs/sources/features/datasources/cloudwatch.md b/docs/sources/features/datasources/cloudwatch.md
index 22f9f38c854..6ca10b2f8e8 100644
--- a/docs/sources/features/datasources/cloudwatch.md
+++ b/docs/sources/features/datasources/cloudwatch.md
@@ -74,6 +74,12 @@ Here is a minimal policy example:
"ec2:DescribeRegions"
],
"Resource": "*"
+ },
+ {
+ "Sid": "AllowReadingResourcesForTags",
+ "Effect" : "Allow",
+ "Action" : "tag:GetResources",
+ "Resource" : "*"
}
]
}
@@ -128,6 +134,7 @@ Name | Description
*dimension_values(region, namespace, metric, dimension_key, [filters])* | Returns a list of dimension values matching the specified `region`, `namespace`, `metric`, `dimension_key` or you can use dimension `filters` to get more specific result as well.
*ebs_volume_ids(region, instance_id)* | Returns a list of volume ids matching the specified `region`, `instance_id`.
*ec2_instance_attribute(region, attribute_name, filters)* | Returns a list of attributes matching the specified `region`, `attribute_name`, `filters`.
+*resource_arns(region, resource_type, tags)* | Returns a list of ARNs matching the specified `region`, `resource_type` and `tags`.
For details about the metrics CloudWatch provides, please refer to the [CloudWatch documentation](https://docs.aws.amazon.com/AmazonCloudWatch/latest/DeveloperGuide/CW_Support_For_AWS.html).
@@ -143,6 +150,8 @@ Query | Service
*dimension_values(us-east-1,AWS/RDS,CPUUtilization,DBInstanceIdentifier)* | RDS
*dimension_values(us-east-1,AWS/S3,BucketSizeBytes,BucketName)* | S3
*dimension_values(us-east-1,CWAgent,disk_used_percent,device,{"InstanceId":"$instance_id"})* | CloudWatch Agent
+*resource_arns(eu-west-1,elasticloadbalancing:loadbalancer,{"elasticbeanstalk:environment-name":["myApp-dev","myApp-prod"]})* | ELB
+*resource_arns(eu-west-1,ec2:instance,{"elasticbeanstalk:environment-name":["myApp-dev","myApp-prod"]})* | EC2
## ec2_instance_attribute examples
@@ -205,6 +214,16 @@ Example `ec2_instance_attribute()` query
ec2_instance_attribute(us-east-1, Tags.Name, { "tag:Team": [ "sysops" ] })
```
+## Using json format template variables
+
+Some of query takes JSON format filter. Grafana support to interpolate template variable to JSON format string, it can use as filter string.
+
+If `env = 'production', 'staging'`, following query will return ARNs of EC2 instances which `Environment` tag is `production` or `staging`.
+
+```
+resource_arns(us-east-1, ec2:instance, {"Environment":${env:json}})
+```
+
## Cost
Amazon provides 1 million CloudWatch API requests each month at no additional charge. Past this,
diff --git a/docs/sources/http_api/annotations.md b/docs/sources/http_api/annotations.md
index 6633714d77b..e1d2876f48a 100644
--- a/docs/sources/http_api/annotations.md
+++ b/docs/sources/http_api/annotations.md
@@ -97,7 +97,7 @@ Creates an annotation in the Grafana database. The `dashboardId` and `panelId` f
**Example Request**:
-```json
+```http
POST /api/annotations HTTP/1.1
Accept: application/json
Content-Type: application/json
@@ -115,7 +115,7 @@ Content-Type: application/json
**Example Response**:
-```json
+```http
HTTP/1.1 200
Content-Type: application/json
@@ -135,7 +135,7 @@ format (string with multiple tags being separated by a space).
**Example Request**:
-```json
+```http
POST /api/annotations/graphite HTTP/1.1
Accept: application/json
Content-Type: application/json
@@ -150,7 +150,7 @@ Content-Type: application/json
**Example Response**:
-```json
+```http
HTTP/1.1 200
Content-Type: application/json
@@ -164,11 +164,14 @@ Content-Type: application/json
`PUT /api/annotations/:id`
+Updates all properties of an annotation that matches the specified id. To only update certain property, consider using the [Patch Annotation](#patch-annotation) operation.
+
**Example Request**:
-```json
+```http
PUT /api/annotations/1141 HTTP/1.1
Accept: application/json
+Authorization: Bearer eyJrIjoiT0tTcG1pUlY2RnVKZTFVaDFsNFZXdE9ZWmNrMkZYbk
Content-Type: application/json
{
@@ -180,6 +183,50 @@ Content-Type: application/json
}
```
+**Example Response**:
+
+```http
+HTTP/1.1 200
+Content-Type: application/json
+
+{
+ "message":"Annotation updated"
+}
+```
+
+## Patch Annotation
+
+`PATCH /api/annotations/:id`
+
+Updates one or more properties of an annotation that matches the specified id.
+
+This operation currently supports updating of the `text`, `tags`, `time` and `timeEnd` properties. It does not handle updating of the `isRegion` and `regionId` properties. To make an annotation regional or vice versa, consider using the [Update Annotation](#update-annotation) operation.
+
+**Example Request**:
+
+```http
+PATCH /api/annotations/1145 HTTP/1.1
+Accept: application/json
+Authorization: Bearer eyJrIjoiT0tTcG1pUlY2RnVKZTFVaDFsNFZXdE9ZWmNrMkZYbk
+Content-Type: application/json
+
+{
+ "text":"New Annotation Description",
+ "tags":["tag6","tag7","tag8"]
+}
+```
+
+**Example Response**:
+
+```http
+HTTP/1.1 200
+Content-Type: application/json
+
+{
+ "message":"Annotation patched"
+}
+```
+
## Delete Annotation By Id
`DELETE /api/annotations/:id`
@@ -201,7 +248,9 @@ Authorization: Bearer eyJrIjoiT0tTcG1pUlY2RnVKZTFVaDFsNFZXdE9ZWmNrMkZYbk
HTTP/1.1 200
Content-Type: application/json
-{"message":"Annotation deleted"}
+{
+ "message":"Annotation deleted"
+}
```
## Delete Annotation By RegionId
@@ -225,5 +274,7 @@ Authorization: Bearer eyJrIjoiT0tTcG1pUlY2RnVKZTFVaDFsNFZXdE9ZWmNrMkZYbk
HTTP/1.1 200
Content-Type: application/json
-{"message":"Annotation region deleted"}
+{
+ "message":"Annotation region deleted"
+}
```
diff --git a/docs/sources/installation/configuration.md b/docs/sources/installation/configuration.md
index 46bab83654e..ac3dc6ebfd0 100644
--- a/docs/sources/installation/configuration.md
+++ b/docs/sources/installation/configuration.md
@@ -393,9 +393,7 @@ Analytics ID here. By default this feature is disabled.
### check_for_updates
-Set to false to disable all checks to https://grafana.com for new versions of Grafana and installed plugins. Check is used
-in some UI views to notify that a Grafana or plugin update exists. This option does not cause any auto updates, nor
-send any sensitive information.
+Set to false to disable all checks to https://grafana.com for new versions of installed plugins and to the Grafana GitHub repository to check for a newer version of Grafana. The version information is used in some UI views to notify that a new Grafana update or a plugin update exists. This option does not cause any auto updates, nor send any sensitive information. The check is run every 10 minutes.
diff --git a/docs/sources/reference/templating.md b/docs/sources/reference/templating.md
index 7426877654b..bf3fbd6a229 100644
--- a/docs/sources/reference/templating.md
+++ b/docs/sources/reference/templating.md
@@ -50,6 +50,7 @@ Filter Option | Example | Raw | Interpolated | Description
`regex` | ${servers:regex} | `'test.', 'test2'` | (test\.|test2)
| Formats multi-value variable into a regex string
`pipe` | ${servers:pipe} | `'test.', 'test2'` | test.|test2
| Formats multi-value variable into a pipe-separated string
`csv`| ${servers:csv} | `'test1', 'test2'` | `test1,test2` | Formats multi-value variable as a comma-separated string
+`json`| ${servers:json} | `'test1', 'test2'` | `["test1","test2"]` | Formats multi-value variable as a JSON string
`distributed`| ${servers:distributed} | `'test1', 'test2'` | `test1,servers=test2` | Formats multi-value variable in custom format for OpenTSDB.
`lucene`| ${servers:lucene} | `'test', 'test2'` | `("test" OR "test2")` | Formats multi-value variable as a lucene expression.
`percentencode` | ${servers:percentencode} | `'foo()bar BAZ', 'test2'` | `{foo%28%29bar%20BAZ%2Ctest2}` | Formats multi-value variable into a glob, percent-encoded.
diff --git a/packages/grafana-ui/src/components/Select/SelectOptionGroup.tsx b/packages/grafana-ui/src/components/Select/SelectOptionGroup.tsx
index efc5e4516fc..9a787a84819 100644
--- a/packages/grafana-ui/src/components/Select/SelectOptionGroup.tsx
+++ b/packages/grafana-ui/src/components/Select/SelectOptionGroup.tsx
@@ -49,7 +49,7 @@ export default class SelectOptionGroup extends PureComponent
- {label}
+ {label}
{' '}
{expanded && children}
diff --git a/packages/grafana-ui/src/components/ValueMappingsEditor/ValueMappingsEditor.story.tsx b/packages/grafana-ui/src/components/ValueMappingsEditor/ValueMappingsEditor.story.tsx
new file mode 100644
index 00000000000..85504f6cd09
--- /dev/null
+++ b/packages/grafana-ui/src/components/ValueMappingsEditor/ValueMappingsEditor.story.tsx
@@ -0,0 +1,10 @@
+import React from 'react';
+import { storiesOf } from '@storybook/react';
+import { action } from '@storybook/addon-actions';
+import { ValueMappingsEditor } from './ValueMappingsEditor';
+
+const ValueMappingsEditorStories = storiesOf('UI/ValueMappingsEditor', module);
+
+ValueMappingsEditorStories.add('default', () => {
+ return ;
+});
diff --git a/packages/grafana-ui/src/types/plugin.ts b/packages/grafana-ui/src/types/plugin.ts
index 00735827825..c8f156c08dc 100644
--- a/packages/grafana-ui/src/types/plugin.ts
+++ b/packages/grafana-ui/src/types/plugin.ts
@@ -1,6 +1,6 @@
import { ComponentClass } from 'react';
import { PanelProps, PanelOptionsProps } from './panel';
-import { DataQueryOptions, DataQuery, DataQueryResponse, QueryHint } from './datasource';
+import { DataQueryOptions, DataQuery, DataQueryResponse, QueryHint, QueryFixAction } from './datasource';
export interface DataSourceApi {
/**
@@ -41,6 +41,12 @@ export interface DataSourceApi {
pluginExports?: PluginExports;
}
+export interface ExploreDataSourceApi extends DataSourceApi {
+ modifyQuery?(query: TQuery, action: QueryFixAction): TQuery;
+ getHighlighterExpression?(query: TQuery): string;
+ languageProvider?: any;
+}
+
export interface QueryEditorProps {
datasource: DSType;
query: TQuery;
@@ -48,15 +54,30 @@ export interface QueryEditorProps void;
}
+export interface ExploreQueryFieldProps {
+ datasource: DSType;
+ query: TQuery;
+ error?: string | JSX.Element;
+ hint?: QueryHint;
+ history: any[];
+ onExecuteQuery?: () => void;
+ onQueryChange?: (value: TQuery) => void;
+ onExecuteHint?: (action: QueryFixAction) => void;
+}
+
+export interface ExploreStartPageProps {
+ onClickExample: (query: DataQuery) => void;
+}
+
export interface PluginExports {
Datasource?: DataSourceApi;
QueryCtrl?: any;
- QueryEditor?: ComponentClass>;
+ QueryEditor?: ComponentClass>;
ConfigCtrl?: any;
AnnotationsQueryCtrl?: any;
VariableQueryEditor?: any;
- ExploreQueryField?: any;
- ExploreStartPage?: any;
+ ExploreQueryField?: ComponentClass>;
+ ExploreStartPage?: ComponentClass;
// Panel plugin
PanelCtrl?: any;
@@ -114,5 +135,3 @@ export interface PluginMetaInfo {
updated: string;
version: string;
}
-
-
diff --git a/pkg/api/annotations.go b/pkg/api/annotations.go
index 242b5531f51..de9d2517caa 100644
--- a/pkg/api/annotations.go
+++ b/pkg/api/annotations.go
@@ -210,6 +210,65 @@ func UpdateAnnotation(c *m.ReqContext, cmd dtos.UpdateAnnotationsCmd) Response {
return Success("Annotation updated")
}
+func PatchAnnotation(c *m.ReqContext, cmd dtos.PatchAnnotationsCmd) Response {
+ annotationID := c.ParamsInt64(":annotationId")
+
+ repo := annotations.GetRepository()
+
+ if resp := canSave(c, repo, annotationID); resp != nil {
+ return resp
+ }
+
+ items, err := repo.Find(&annotations.ItemQuery{AnnotationId: annotationID, OrgId: c.OrgId})
+
+ if err != nil || len(items) == 0 {
+ return Error(404, "Could not find annotation to update", err)
+ }
+
+ existing := annotations.Item{
+ OrgId: c.OrgId,
+ UserId: c.UserId,
+ Id: annotationID,
+ Epoch: items[0].Time,
+ Text: items[0].Text,
+ Tags: items[0].Tags,
+ RegionId: items[0].RegionId,
+ }
+
+ if cmd.Tags != nil {
+ existing.Tags = cmd.Tags
+ }
+
+ if cmd.Text != "" && cmd.Text != existing.Text {
+ existing.Text = cmd.Text
+ }
+
+ if cmd.Time > 0 && cmd.Time != existing.Epoch {
+ existing.Epoch = cmd.Time
+ }
+
+ if err := repo.Update(&existing); err != nil {
+ return Error(500, "Failed to update annotation", err)
+ }
+
+ // Update region end time if provided
+ if existing.RegionId != 0 && cmd.TimeEnd > 0 {
+ itemRight := existing
+ itemRight.RegionId = existing.Id
+ itemRight.Epoch = cmd.TimeEnd
+
+ // We don't know id of region right event, so set it to 0 and find then using query like
+ // ... WHERE region_id = AND id != ...
+ itemRight.Id = 0
+
+ if err := repo.Update(&itemRight); err != nil {
+ return Error(500, "Failed to update annotation for region end time", err)
+ }
+ }
+
+ return Success("Annotation patched")
+}
+
func DeleteAnnotations(c *m.ReqContext, cmd dtos.DeleteAnnotationsCmd) Response {
repo := annotations.GetRepository()
diff --git a/pkg/api/annotations_test.go b/pkg/api/annotations_test.go
index 08f3018c694..ebdd867a031 100644
--- a/pkg/api/annotations_test.go
+++ b/pkg/api/annotations_test.go
@@ -27,6 +27,12 @@ func TestAnnotationsApiEndpoint(t *testing.T) {
IsRegion: false,
}
+ patchCmd := dtos.PatchAnnotationsCmd{
+ Time: 1000,
+ Text: "annotation text",
+ Tags: []string{"tag1", "tag2"},
+ }
+
Convey("When user is an Org Viewer", func() {
role := m.ROLE_VIEWER
Convey("Should not be allowed to save an annotation", func() {
@@ -40,6 +46,11 @@ func TestAnnotationsApiEndpoint(t *testing.T) {
So(sc.resp.Code, ShouldEqual, 403)
})
+ patchAnnotationScenario("When calling PATCH on", "/api/annotations/1", "/api/annotations/:annotationId", role, patchCmd, func(sc *scenarioContext) {
+ sc.fakeReqWithParams("PATCH", sc.url, map[string]string{}).exec()
+ So(sc.resp.Code, ShouldEqual, 403)
+ })
+
loggedInUserScenarioWithRole("When calling DELETE on", "DELETE", "/api/annotations/1", "/api/annotations/:annotationId", role, func(sc *scenarioContext) {
sc.handlerFunc = DeleteAnnotationByID
sc.fakeReqWithParams("DELETE", sc.url, map[string]string{}).exec()
@@ -67,6 +78,11 @@ func TestAnnotationsApiEndpoint(t *testing.T) {
So(sc.resp.Code, ShouldEqual, 200)
})
+ patchAnnotationScenario("When calling PATCH on", "/api/annotations/1", "/api/annotations/:annotationId", role, patchCmd, func(sc *scenarioContext) {
+ sc.fakeReqWithParams("PATCH", sc.url, map[string]string{}).exec()
+ So(sc.resp.Code, ShouldEqual, 200)
+ })
+
loggedInUserScenarioWithRole("When calling DELETE on", "DELETE", "/api/annotations/1", "/api/annotations/:annotationId", role, func(sc *scenarioContext) {
sc.handlerFunc = DeleteAnnotationByID
sc.fakeReqWithParams("DELETE", sc.url, map[string]string{}).exec()
@@ -100,6 +116,13 @@ func TestAnnotationsApiEndpoint(t *testing.T) {
Id: 1,
}
+ patchCmd := dtos.PatchAnnotationsCmd{
+ Time: 8000,
+ Text: "annotation text 50",
+ Tags: []string{"foo", "bar"},
+ Id: 1,
+ }
+
deleteCmd := dtos.DeleteAnnotationsCmd{
DashboardId: 1,
PanelId: 1,
@@ -136,6 +159,11 @@ func TestAnnotationsApiEndpoint(t *testing.T) {
So(sc.resp.Code, ShouldEqual, 403)
})
+ patchAnnotationScenario("When calling PATCH on", "/api/annotations/1", "/api/annotations/:annotationId", role, patchCmd, func(sc *scenarioContext) {
+ sc.fakeReqWithParams("PATCH", sc.url, map[string]string{}).exec()
+ So(sc.resp.Code, ShouldEqual, 403)
+ })
+
loggedInUserScenarioWithRole("When calling DELETE on", "DELETE", "/api/annotations/1", "/api/annotations/:annotationId", role, func(sc *scenarioContext) {
sc.handlerFunc = DeleteAnnotationByID
sc.fakeReqWithParams("DELETE", sc.url, map[string]string{}).exec()
@@ -163,6 +191,11 @@ func TestAnnotationsApiEndpoint(t *testing.T) {
So(sc.resp.Code, ShouldEqual, 200)
})
+ patchAnnotationScenario("When calling PATCH on", "/api/annotations/1", "/api/annotations/:annotationId", role, patchCmd, func(sc *scenarioContext) {
+ sc.fakeReqWithParams("PATCH", sc.url, map[string]string{}).exec()
+ So(sc.resp.Code, ShouldEqual, 200)
+ })
+
loggedInUserScenarioWithRole("When calling DELETE on", "DELETE", "/api/annotations/1", "/api/annotations/:annotationId", role, func(sc *scenarioContext) {
sc.handlerFunc = DeleteAnnotationByID
sc.fakeReqWithParams("DELETE", sc.url, map[string]string{}).exec()
@@ -189,6 +222,12 @@ func TestAnnotationsApiEndpoint(t *testing.T) {
sc.fakeReqWithParams("PUT", sc.url, map[string]string{}).exec()
So(sc.resp.Code, ShouldEqual, 200)
})
+
+ patchAnnotationScenario("When calling PATCH on", "/api/annotations/1", "/api/annotations/:annotationId", role, patchCmd, func(sc *scenarioContext) {
+ sc.fakeReqWithParams("PATCH", sc.url, map[string]string{}).exec()
+ So(sc.resp.Code, ShouldEqual, 200)
+ })
+
deleteAnnotationsScenario("When calling POST on", "/api/annotations/mass-delete", "/api/annotations/mass-delete", role, deleteCmd, func(sc *scenarioContext) {
sc.fakeReqWithParams("POST", sc.url, map[string]string{}).exec()
So(sc.resp.Code, ShouldEqual, 200)
@@ -264,6 +303,29 @@ func putAnnotationScenario(desc string, url string, routePattern string, role m.
})
}
+func patchAnnotationScenario(desc string, url string, routePattern string, role m.RoleType, cmd dtos.PatchAnnotationsCmd, fn scenarioFunc) {
+ Convey(desc+" "+url, func() {
+ defer bus.ClearBusHandlers()
+
+ sc := setupScenarioContext(url)
+ sc.defaultHandler = Wrap(func(c *m.ReqContext) Response {
+ sc.context = c
+ sc.context.UserId = TestUserID
+ sc.context.OrgId = TestOrgID
+ sc.context.OrgRole = role
+
+ return PatchAnnotation(c, cmd)
+ })
+
+ fakeAnnoRepo = &fakeAnnotationsRepo{}
+ annotations.SetRepository(fakeAnnoRepo)
+
+ sc.m.Patch(routePattern, sc.defaultHandler)
+
+ fn(sc)
+ })
+}
+
func deleteAnnotationsScenario(desc string, url string, routePattern string, role m.RoleType, cmd dtos.DeleteAnnotationsCmd, fn scenarioFunc) {
Convey(desc+" "+url, func() {
defer bus.ClearBusHandlers()
diff --git a/pkg/api/api.go b/pkg/api/api.go
index 07cb712f794..0685ef3814d 100644
--- a/pkg/api/api.go
+++ b/pkg/api/api.go
@@ -108,8 +108,8 @@ func (hs *HTTPServer) registerRoutes() {
r.Get("/api/snapshots-delete/:deleteKey", Wrap(DeleteDashboardSnapshotByDeleteKey))
r.Delete("/api/snapshots/:key", reqEditorRole, Wrap(DeleteDashboardSnapshot))
- // api renew session based on remember cookie
- r.Get("/api/login/ping", quota("session"), hs.LoginAPIPing)
+ // api renew session based on cookie
+ r.Get("/api/login/ping", quota("session"), Wrap(hs.LoginAPIPing))
// authed api
r.Group("/api", func(apiRoute routing.RouteRegister) {
@@ -354,6 +354,7 @@ func (hs *HTTPServer) registerRoutes() {
annotationsRoute.Post("/", bind(dtos.PostAnnotationsCmd{}), Wrap(PostAnnotation))
annotationsRoute.Delete("/:annotationId", Wrap(DeleteAnnotationByID))
annotationsRoute.Put("/:annotationId", bind(dtos.UpdateAnnotationsCmd{}), Wrap(UpdateAnnotation))
+ annotationsRoute.Patch("/:annotationId", bind(dtos.PatchAnnotationsCmd{}), Wrap(PatchAnnotation))
annotationsRoute.Delete("/region/:regionId", Wrap(DeleteAnnotationRegion))
annotationsRoute.Post("/graphite", reqEditorRole, bind(dtos.PostGraphiteAnnotationsCmd{}), Wrap(PostGraphiteAnnotation))
})
diff --git a/pkg/api/common_test.go b/pkg/api/common_test.go
index eb1f89e3f22..fe02c94e277 100644
--- a/pkg/api/common_test.go
+++ b/pkg/api/common_test.go
@@ -149,4 +149,4 @@ func (s *fakeUserAuthTokenService) UserAuthenticatedHook(user *m.User, c *m.ReqC
return nil
}
-func (s *fakeUserAuthTokenService) UserSignedOutHook(c *m.ReqContext) {}
+func (s *fakeUserAuthTokenService) SignOutUser(c *m.ReqContext) error { return nil }
diff --git a/pkg/api/dtos/annotations.go b/pkg/api/dtos/annotations.go
index c917b0d9feb..bdee8599fea 100644
--- a/pkg/api/dtos/annotations.go
+++ b/pkg/api/dtos/annotations.go
@@ -22,6 +22,14 @@ type UpdateAnnotationsCmd struct {
TimeEnd int64 `json:"timeEnd"`
}
+type PatchAnnotationsCmd struct {
+ Id int64 `json:"id"`
+ Time int64 `json:"time"`
+ Text string `json:"text"`
+ Tags []string `json:"tags"`
+ TimeEnd int64 `json:"timeEnd"`
+}
+
type DeleteAnnotationsCmd struct {
AlertId int64 `json:"alertId"`
DashboardId int64 `json:"dashboardId"`
diff --git a/pkg/api/login.go b/pkg/api/login.go
index 50c62e0835a..49da147724e 100644
--- a/pkg/api/login.go
+++ b/pkg/api/login.go
@@ -136,7 +136,7 @@ func (hs *HTTPServer) loginUserWithUser(user *m.User, c *m.ReqContext) {
}
func (hs *HTTPServer) Logout(c *m.ReqContext) {
- hs.AuthTokenService.UserSignedOutHook(c)
+ hs.AuthTokenService.SignOutUser(c)
if setting.SignoutRedirectUrl != "" {
c.Redirect(setting.SignoutRedirectUrl)
diff --git a/pkg/middleware/middleware_test.go b/pkg/middleware/middleware_test.go
index 11740574d0b..4679c449853 100644
--- a/pkg/middleware/middleware_test.go
+++ b/pkg/middleware/middleware_test.go
@@ -602,4 +602,4 @@ func (s *fakeUserAuthTokenService) UserAuthenticatedHook(user *m.User, c *m.ReqC
return nil
}
-func (s *fakeUserAuthTokenService) UserSignedOutHook(c *m.ReqContext) {}
+func (s *fakeUserAuthTokenService) SignOutUser(c *m.ReqContext) error { return nil }
diff --git a/pkg/services/auth/auth_token.go b/pkg/services/auth/auth_token.go
index 98687f2013d..13b9ef607f5 100644
--- a/pkg/services/auth/auth_token.go
+++ b/pkg/services/auth/auth_token.go
@@ -3,6 +3,7 @@ package auth
import (
"crypto/sha256"
"encoding/hex"
+ "errors"
"net/http"
"net/url"
"time"
@@ -31,7 +32,7 @@ var (
type UserAuthTokenService interface {
InitContextWithToken(ctx *models.ReqContext, orgID int64) bool
UserAuthenticatedHook(user *models.User, c *models.ReqContext) error
- UserSignedOutHook(c *models.ReqContext)
+ SignOutUser(c *models.ReqContext) error
}
type UserAuthTokenServiceImpl struct {
@@ -85,7 +86,7 @@ func (s *UserAuthTokenServiceImpl) InitContextWithToken(ctx *models.ReqContext,
func (s *UserAuthTokenServiceImpl) writeSessionCookie(ctx *models.ReqContext, value string, maxAge int) {
if setting.Env == setting.DEV {
- ctx.Logger.Info("new token", "unhashed token", value)
+ ctx.Logger.Debug("new token", "unhashed token", value)
}
ctx.Resp.Header().Del("Set-Cookie")
@@ -112,8 +113,19 @@ func (s *UserAuthTokenServiceImpl) UserAuthenticatedHook(user *models.User, c *m
return nil
}
-func (s *UserAuthTokenServiceImpl) UserSignedOutHook(c *models.ReqContext) {
+func (s *UserAuthTokenServiceImpl) SignOutUser(c *models.ReqContext) error {
+ unhashedToken := c.GetCookie(s.Cfg.LoginCookieName)
+ if unhashedToken == "" {
+ return errors.New("cannot logout without session token")
+ }
+
+ hashedToken := hashToken(unhashedToken)
+
+ sql := `DELETE FROM user_auth_token WHERE auth_token = ?`
+ _, err := s.SQLStore.NewSession().Exec(sql, hashedToken)
+
s.writeSessionCookie(c, "", -1)
+ return err
}
func (s *UserAuthTokenServiceImpl) CreateToken(userId int64, clientIP, userAgent string) (*userAuthToken, error) {
diff --git a/pkg/services/auth/auth_token_test.go b/pkg/services/auth/auth_token_test.go
index 2f75c660d9d..312e53a3970 100644
--- a/pkg/services/auth/auth_token_test.go
+++ b/pkg/services/auth/auth_token_test.go
@@ -1,10 +1,15 @@
package auth
import (
+ "fmt"
+ "net/http"
+ "net/http/httptest"
"testing"
"time"
+ "github.com/grafana/grafana/pkg/models"
"github.com/grafana/grafana/pkg/setting"
+ macaron "gopkg.in/macaron.v1"
"github.com/grafana/grafana/pkg/log"
"github.com/grafana/grafana/pkg/services/sqlstore"
@@ -46,6 +51,40 @@ func TestUserAuthToken(t *testing.T) {
So(err, ShouldEqual, ErrAuthTokenNotFound)
So(LookupToken, ShouldBeNil)
})
+
+ Convey("signing out should delete token and cookie if present", func() {
+ httpreq := &http.Request{Header: make(http.Header)}
+ httpreq.AddCookie(&http.Cookie{Name: userAuthTokenService.Cfg.LoginCookieName, Value: token.UnhashedToken})
+
+ ctx := &models.ReqContext{Context: &macaron.Context{
+ Req: macaron.Request{Request: httpreq},
+ Resp: macaron.NewResponseWriter("POST", httptest.NewRecorder()),
+ },
+ Logger: log.New("fakelogger"),
+ }
+
+ err = userAuthTokenService.SignOutUser(ctx)
+ So(err, ShouldBeNil)
+
+ // makes sure we tell the browser to overwrite the cookie
+ cookieHeader := fmt.Sprintf("%s=; Path=/; Max-Age=0; HttpOnly", userAuthTokenService.Cfg.LoginCookieName)
+ So(ctx.Resp.Header().Get("Set-Cookie"), ShouldEqual, cookieHeader)
+ })
+
+ Convey("signing out an none existing session should return an error", func() {
+ httpreq := &http.Request{Header: make(http.Header)}
+ httpreq.AddCookie(&http.Cookie{Name: userAuthTokenService.Cfg.LoginCookieName, Value: ""})
+
+ ctx := &models.ReqContext{Context: &macaron.Context{
+ Req: macaron.Request{Request: httpreq},
+ Resp: macaron.NewResponseWriter("POST", httptest.NewRecorder()),
+ },
+ Logger: log.New("fakelogger"),
+ }
+
+ err = userAuthTokenService.SignOutUser(ctx)
+ So(err, ShouldNotBeNil)
+ })
})
Convey("expires correctly", func() {
diff --git a/pkg/services/sqlstore/sqlstore.go b/pkg/services/sqlstore/sqlstore.go
index fb0f0938573..6debaca89a1 100644
--- a/pkg/services/sqlstore/sqlstore.go
+++ b/pkg/services/sqlstore/sqlstore.go
@@ -242,10 +242,7 @@ func (ss *SqlStore) buildConnectionString() (string, error) {
cnnstr += ss.buildExtraConnectionString('&')
case migrator.POSTGRES:
- host, port, err := util.SplitIPPort(ss.dbCfg.Host, "5432")
- if err != nil {
- return "", err
- }
+ host, port := util.SplitHostPortDefault(ss.dbCfg.Host, "127.0.0.1", "5432")
if ss.dbCfg.Pwd == "" {
ss.dbCfg.Pwd = "''"
}
diff --git a/pkg/tsdb/cloudwatch/cloudwatch.go b/pkg/tsdb/cloudwatch/cloudwatch.go
index 8bb1ab6c928..8d67fe7db8c 100644
--- a/pkg/tsdb/cloudwatch/cloudwatch.go
+++ b/pkg/tsdb/cloudwatch/cloudwatch.go
@@ -21,6 +21,7 @@ import (
"github.com/aws/aws-sdk-go/aws/request"
"github.com/aws/aws-sdk-go/service/cloudwatch"
"github.com/aws/aws-sdk-go/service/ec2/ec2iface"
+ "github.com/aws/aws-sdk-go/service/resourcegroupstaggingapi/resourcegroupstaggingapiiface"
"github.com/grafana/grafana/pkg/components/null"
"github.com/grafana/grafana/pkg/components/simplejson"
"github.com/grafana/grafana/pkg/metrics"
@@ -28,7 +29,8 @@ import (
type CloudWatchExecutor struct {
*models.DataSource
- ec2Svc ec2iface.EC2API
+ ec2Svc ec2iface.EC2API
+ rgtaSvc resourcegroupstaggingapiiface.ResourceGroupsTaggingAPIAPI
}
type DatasourceInfo struct {
diff --git a/pkg/tsdb/cloudwatch/metric_find_query.go b/pkg/tsdb/cloudwatch/metric_find_query.go
index dfa03d2dfa9..34181d19673 100644
--- a/pkg/tsdb/cloudwatch/metric_find_query.go
+++ b/pkg/tsdb/cloudwatch/metric_find_query.go
@@ -15,6 +15,7 @@ import (
"github.com/aws/aws-sdk-go/aws/session"
"github.com/aws/aws-sdk-go/service/cloudwatch"
"github.com/aws/aws-sdk-go/service/ec2"
+ "github.com/aws/aws-sdk-go/service/resourcegroupstaggingapi"
"github.com/grafana/grafana/pkg/components/simplejson"
"github.com/grafana/grafana/pkg/metrics"
"github.com/grafana/grafana/pkg/tsdb"
@@ -95,10 +96,11 @@ func init() {
"AWS/Logs": {"IncomingBytes", "IncomingLogEvents", "ForwardedBytes", "ForwardedLogEvents", "DeliveryErrors", "DeliveryThrottling"},
"AWS/ML": {"PredictCount", "PredictFailureCount"},
"AWS/NATGateway": {"PacketsOutToDestination", "PacketsOutToSource", "PacketsInFromSource", "PacketsInFromDestination", "BytesOutToDestination", "BytesOutToSource", "BytesInFromSource", "BytesInFromDestination", "ErrorPortAllocation", "ActiveConnectionCount", "ConnectionAttemptCount", "ConnectionEstablishedCount", "IdleTimeoutCount", "PacketsDropCount"},
+ "AWS/Neptune": {"CPUUtilization", "ClusterReplicaLag", "ClusterReplicaLagMaximum", "ClusterReplicaLagMinimum", "EngineUptime", "FreeableMemory", "FreeLocalStorage", "GremlinHttp1xx", "GremlinHttp2xx", "GremlinHttp4xx", "GremlinHttp5xx", "GremlinErrors", "GremlinRequests", "GremlinRequestsPerSec", "GremlinWebSocketSuccess", "GremlinWebSocketClientErrors", "GremlinWebSocketServerErrors", "GremlinWebSocketAvailableConnections", "Http1xx", "Http2xx", "Http4xx", "Http5xx", "Http100", "Http101", "Http200", "Http400", "Http403", "Http405", "Http413", "Http429", "Http500", "Http501", "LoaderErrors", "LoaderRequests", "NetworkReceiveThroughput", "NetworkThroughput", "NetworkTransmitThroughput", "SparqlHttp1xx", "SparqlHttp2xx", "SparqlHttp4xx", "SparqlHttp5xx", "SparqlErrors", "SparqlRequests", "SparqlRequestsPerSec", "StatusErrors", "StatusRequests", "VolumeBytesUsed", "VolumeReadIOPs", "VolumeWriteIOPs"},
"AWS/NetworkELB": {"ActiveFlowCount", "ConsumedLCUs", "HealthyHostCount", "NewFlowCount", "ProcessedBytes", "TCP_Client_Reset_Count", "TCP_ELB_Reset_Count", "TCP_Target_Reset_Count", "UnHealthyHostCount"},
"AWS/OpsWorks": {"cpu_idle", "cpu_nice", "cpu_system", "cpu_user", "cpu_waitio", "load_1", "load_5", "load_15", "memory_buffers", "memory_cached", "memory_free", "memory_swap", "memory_total", "memory_used", "procs"},
"AWS/Redshift": {"CPUUtilization", "DatabaseConnections", "HealthStatus", "MaintenanceMode", "NetworkReceiveThroughput", "NetworkTransmitThroughput", "PercentageDiskSpaceUsed", "QueriesCompletedPerSecond", "QueryDuration", "QueryRuntimeBreakdown", "ReadIOPS", "ReadLatency", "ReadThroughput", "WLMQueriesCompletedPerSecond", "WLMQueryDuration", "WLMQueueLength", "WriteIOPS", "WriteLatency", "WriteThroughput"},
- "AWS/RDS": {"ActiveTransactions", "AuroraBinlogReplicaLag", "AuroraReplicaLag", "AuroraReplicaLagMaximum", "AuroraReplicaLagMinimum", "BinLogDiskUsage", "BlockedTransactions", "BufferCacheHitRatio", "BurstBalance", "CommitLatency", "CommitThroughput", "BinLogDiskUsage", "CPUCreditBalance", "CPUCreditUsage", "CPUUtilization", "DatabaseConnections", "DDLLatency", "DDLThroughput", "Deadlocks", "DeleteLatency", "DeleteThroughput", "DiskQueueDepth", "DMLLatency", "DMLThroughput", "EngineUptime", "FailedSqlStatements", "FreeableMemory", "FreeLocalStorage", "FreeStorageSpace", "InsertLatency", "InsertThroughput", "LoginFailures", "NetworkReceiveThroughput", "NetworkTransmitThroughput", "NetworkThroughput", "Queries", "ReadIOPS", "ReadLatency", "ReadThroughput", "ReplicaLag", "ResultSetCacheHitRatio", "SelectLatency", "SelectThroughput", "SwapUsage", "TotalConnections", "UpdateLatency", "UpdateThroughput", "VolumeBytesUsed", "VolumeReadIOPS", "VolumeWriteIOPS", "WriteIOPS", "WriteLatency", "WriteThroughput"},
+ "AWS/RDS": {"ActiveTransactions", "AuroraBinlogReplicaLag", "AuroraReplicaLag", "AuroraReplicaLagMaximum", "AuroraReplicaLagMinimum", "BinLogDiskUsage", "BlockedTransactions", "BufferCacheHitRatio", "BurstBalance", "CommitLatency", "CommitThroughput", "BinLogDiskUsage", "CPUCreditBalance", "CPUCreditUsage", "CPUUtilization", "DatabaseConnections", "DDLLatency", "DDLThroughput", "Deadlocks", "DeleteLatency", "DeleteThroughput", "DiskQueueDepth", "DMLLatency", "DMLThroughput", "EngineUptime", "FailedSqlStatements", "FreeableMemory", "FreeLocalStorage", "FreeStorageSpace", "InsertLatency", "InsertThroughput", "LoginFailures", "NetworkReceiveThroughput", "NetworkTransmitThroughput", "NetworkThroughput", "Queries", "ReadIOPS", "ReadLatency", "ReadThroughput", "ReplicaLag", "ResultSetCacheHitRatio", "SelectLatency", "SelectThroughput", "ServerlessDatabaseCapacity", "SwapUsage", "TotalConnections", "UpdateLatency", "UpdateThroughput", "VolumeBytesUsed", "VolumeReadIOPS", "VolumeWriteIOPS", "WriteIOPS", "WriteLatency", "WriteThroughput"},
"AWS/Route53": {"ChildHealthCheckHealthyCount", "HealthCheckStatus", "HealthCheckPercentageHealthy", "ConnectionTime", "SSLHandshakeTime", "TimeToFirstByte"},
"AWS/S3": {"BucketSizeBytes", "NumberOfObjects", "AllRequests", "GetRequests", "PutRequests", "DeleteRequests", "HeadRequests", "PostRequests", "ListRequests", "BytesDownloaded", "BytesUploaded", "4xxErrors", "5xxErrors", "FirstByteLatency", "TotalRequestLatency"},
"AWS/SES": {"Bounce", "Complaint", "Delivery", "Reject", "Send", "Reputation.BounceRate", "Reputation.ComplaintRate"},
@@ -149,6 +151,7 @@ func init() {
"AWS/Logs": {"LogGroupName", "DestinationType", "FilterName"},
"AWS/ML": {"MLModelId", "RequestMode"},
"AWS/NATGateway": {"NatGatewayId"},
+ "AWS/Neptune": {"DBClusterIdentifier", "Role", "DatabaseClass", "EngineName"},
"AWS/NetworkELB": {"LoadBalancer", "TargetGroup", "AvailabilityZone"},
"AWS/OpsWorks": {"StackId", "LayerId", "InstanceId"},
"AWS/Redshift": {"NodeID", "ClusterIdentifier", "latency", "service class", "wmlid"},
@@ -198,6 +201,8 @@ func (e *CloudWatchExecutor) executeMetricFindQuery(ctx context.Context, queryCo
data, err = e.handleGetEbsVolumeIds(ctx, parameters, queryContext)
case "ec2_instance_attribute":
data, err = e.handleGetEc2InstanceAttribute(ctx, parameters, queryContext)
+ case "resource_arns":
+ data, err = e.handleGetResourceArns(ctx, parameters, queryContext)
}
transformToTable(data, queryResult)
@@ -534,6 +539,65 @@ func (e *CloudWatchExecutor) handleGetEc2InstanceAttribute(ctx context.Context,
return result, nil
}
+func (e *CloudWatchExecutor) ensureRGTAClientSession(region string) error {
+ if e.rgtaSvc == nil {
+ dsInfo := e.getDsInfo(region)
+ cfg, err := e.getAwsConfig(dsInfo)
+ if err != nil {
+ return fmt.Errorf("Failed to call ec2:getAwsConfig, %v", err)
+ }
+ sess, err := session.NewSession(cfg)
+ if err != nil {
+ return fmt.Errorf("Failed to call ec2:NewSession, %v", err)
+ }
+ e.rgtaSvc = resourcegroupstaggingapi.New(sess, cfg)
+ }
+ return nil
+}
+
+func (e *CloudWatchExecutor) handleGetResourceArns(ctx context.Context, parameters *simplejson.Json, queryContext *tsdb.TsdbQuery) ([]suggestData, error) {
+ region := parameters.Get("region").MustString()
+ resourceType := parameters.Get("resourceType").MustString()
+ filterJson := parameters.Get("tags").MustMap()
+
+ err := e.ensureRGTAClientSession(region)
+ if err != nil {
+ return nil, err
+ }
+
+ var filters []*resourcegroupstaggingapi.TagFilter
+ for k, v := range filterJson {
+ if vv, ok := v.([]interface{}); ok {
+ var vvvvv []*string
+ for _, vvv := range vv {
+ if vvvv, ok := vvv.(string); ok {
+ vvvvv = append(vvvvv, &vvvv)
+ }
+ }
+ filters = append(filters, &resourcegroupstaggingapi.TagFilter{
+ Key: aws.String(k),
+ Values: vvvvv,
+ })
+ }
+ }
+
+ var resourceTypes []*string
+ resourceTypes = append(resourceTypes, &resourceType)
+
+ resources, err := e.resourceGroupsGetResources(region, filters, resourceTypes)
+ if err != nil {
+ return nil, err
+ }
+
+ result := make([]suggestData, 0)
+ for _, resource := range resources.ResourceTagMappingList {
+ data := *resource.ResourceARN
+ result = append(result, suggestData{Text: data, Value: data})
+ }
+
+ return result, nil
+}
+
func (e *CloudWatchExecutor) cloudwatchListMetrics(region string, namespace string, metricName string, dimensions []*cloudwatch.DimensionFilter) (*cloudwatch.ListMetricsOutput, error) {
svc, err := e.getClient(region)
if err != nil {
@@ -585,6 +649,28 @@ func (e *CloudWatchExecutor) ec2DescribeInstances(region string, filters []*ec2.
return &resp, nil
}
+func (e *CloudWatchExecutor) resourceGroupsGetResources(region string, filters []*resourcegroupstaggingapi.TagFilter, resourceTypes []*string) (*resourcegroupstaggingapi.GetResourcesOutput, error) {
+ params := &resourcegroupstaggingapi.GetResourcesInput{
+ ResourceTypeFilters: resourceTypes,
+ TagFilters: filters,
+ }
+
+ var resp resourcegroupstaggingapi.GetResourcesOutput
+ err := e.rgtaSvc.GetResourcesPages(params,
+ func(page *resourcegroupstaggingapi.GetResourcesOutput, lastPage bool) bool {
+ resources, _ := awsutil.ValuesAtPath(page, "ResourceTagMappingList")
+ for _, resource := range resources {
+ resp.ResourceTagMappingList = append(resp.ResourceTagMappingList, resource.(*resourcegroupstaggingapi.ResourceTagMapping))
+ }
+ return !lastPage
+ })
+ if err != nil {
+ return nil, errors.New("Failed to call tags:GetResources")
+ }
+
+ return &resp, nil
+}
+
func getAllMetrics(cwData *DatasourceInfo) (cloudwatch.ListMetricsOutput, error) {
creds, err := GetCredentials(cwData)
if err != nil {
diff --git a/pkg/tsdb/cloudwatch/metric_find_query_test.go b/pkg/tsdb/cloudwatch/metric_find_query_test.go
index 34c3379b4df..bc6c8b163a0 100644
--- a/pkg/tsdb/cloudwatch/metric_find_query_test.go
+++ b/pkg/tsdb/cloudwatch/metric_find_query_test.go
@@ -8,6 +8,8 @@ import (
"github.com/aws/aws-sdk-go/service/cloudwatch"
"github.com/aws/aws-sdk-go/service/ec2"
"github.com/aws/aws-sdk-go/service/ec2/ec2iface"
+ "github.com/aws/aws-sdk-go/service/resourcegroupstaggingapi"
+ "github.com/aws/aws-sdk-go/service/resourcegroupstaggingapi/resourcegroupstaggingapiiface"
"github.com/bmizerany/assert"
"github.com/grafana/grafana/pkg/components/securejsondata"
"github.com/grafana/grafana/pkg/components/simplejson"
@@ -22,6 +24,11 @@ type mockedEc2 struct {
RespRegions ec2.DescribeRegionsOutput
}
+type mockedRGTA struct {
+ resourcegroupstaggingapiiface.ResourceGroupsTaggingAPIAPI
+ Resp resourcegroupstaggingapi.GetResourcesOutput
+}
+
func (m mockedEc2) DescribeInstancesPages(in *ec2.DescribeInstancesInput, fn func(*ec2.DescribeInstancesOutput, bool) bool) error {
fn(&m.Resp, true)
return nil
@@ -30,6 +37,11 @@ func (m mockedEc2) DescribeRegions(in *ec2.DescribeRegionsInput) (*ec2.DescribeR
return &m.RespRegions, nil
}
+func (m mockedRGTA) GetResourcesPages(in *resourcegroupstaggingapi.GetResourcesInput, fn func(*resourcegroupstaggingapi.GetResourcesOutput, bool) bool) error {
+ fn(&m.Resp, true)
+ return nil
+}
+
func TestCloudWatchMetrics(t *testing.T) {
Convey("When calling getMetricsForCustomMetrics", t, func() {
@@ -209,6 +221,51 @@ func TestCloudWatchMetrics(t *testing.T) {
So(result[7].Text, ShouldEqual, "vol-4-2")
})
})
+
+ Convey("When calling handleGetResourceArns", t, func() {
+ executor := &CloudWatchExecutor{
+ rgtaSvc: mockedRGTA{
+ Resp: resourcegroupstaggingapi.GetResourcesOutput{
+ ResourceTagMappingList: []*resourcegroupstaggingapi.ResourceTagMapping{
+ {
+ ResourceARN: aws.String("arn:aws:ec2:us-east-1:123456789012:instance/i-12345678901234567"),
+ Tags: []*resourcegroupstaggingapi.Tag{
+ {
+ Key: aws.String("Environment"),
+ Value: aws.String("production"),
+ },
+ },
+ },
+ {
+ ResourceARN: aws.String("arn:aws:ec2:us-east-1:123456789012:instance/i-76543210987654321"),
+ Tags: []*resourcegroupstaggingapi.Tag{
+ {
+ Key: aws.String("Environment"),
+ Value: aws.String("production"),
+ },
+ },
+ },
+ },
+ },
+ },
+ }
+
+ json := simplejson.New()
+ json.Set("region", "us-east-1")
+ json.Set("resourceType", "ec2:instance")
+ tags := make(map[string]interface{})
+ tags["Environment"] = []string{"production"}
+ json.Set("tags", tags)
+ result, _ := executor.handleGetResourceArns(context.Background(), json, &tsdb.TsdbQuery{})
+
+ Convey("Should return all two instances", func() {
+ So(result[0].Text, ShouldEqual, "arn:aws:ec2:us-east-1:123456789012:instance/i-12345678901234567")
+ So(result[0].Value, ShouldEqual, "arn:aws:ec2:us-east-1:123456789012:instance/i-12345678901234567")
+ So(result[1].Text, ShouldEqual, "arn:aws:ec2:us-east-1:123456789012:instance/i-76543210987654321")
+ So(result[1].Value, ShouldEqual, "arn:aws:ec2:us-east-1:123456789012:instance/i-76543210987654321")
+
+ })
+ })
}
func TestParseMultiSelectValue(t *testing.T) {
diff --git a/pkg/tsdb/mssql/mssql.go b/pkg/tsdb/mssql/mssql.go
index bd4510f6cf3..12f2b6c03c9 100644
--- a/pkg/tsdb/mssql/mssql.go
+++ b/pkg/tsdb/mssql/mssql.go
@@ -49,10 +49,7 @@ func generateConnectionString(datasource *models.DataSource) (string, error) {
}
}
- server, port, err := util.SplitIPPort(datasource.Url, "1433")
- if err != nil {
- return "", err
- }
+ server, port := util.SplitHostPortDefault(datasource.Url, "localhost", "1433")
encrypt := datasource.JsonData.Get("encrypt").MustString("false")
connStr := fmt.Sprintf("server=%s;port=%s;database=%s;user id=%s;password=%s;",
diff --git a/pkg/util/ip.go b/pkg/util/ip.go
deleted file mode 100644
index d3809318191..00000000000
--- a/pkg/util/ip.go
+++ /dev/null
@@ -1,25 +0,0 @@
-package util
-
-import (
- "net"
-)
-
-// SplitIPPort splits the ip string and port.
-func SplitIPPort(ipStr string, portDefault string) (ip string, port string, err error) {
- ipAddr := net.ParseIP(ipStr)
-
- if ipAddr == nil {
- // Port was included
- ip, port, err = net.SplitHostPort(ipStr)
-
- if err != nil {
- return "", "", err
- }
- } else {
- // No port was included
- ip = ipAddr.String()
- port = portDefault
- }
-
- return ip, port, nil
-}
diff --git a/pkg/util/ip_address.go b/pkg/util/ip_address.go
index d8d95ef3acd..b5ffb361e0b 100644
--- a/pkg/util/ip_address.go
+++ b/pkg/util/ip_address.go
@@ -7,23 +7,48 @@ import (
// ParseIPAddress parses an IP address and removes port and/or IPV6 format
func ParseIPAddress(input string) string {
- s := input
- lastIndex := strings.LastIndex(input, ":")
+ host, _ := SplitHostPort(input)
- if lastIndex != -1 {
- if lastIndex > 0 && input[lastIndex-1:lastIndex] != ":" {
- s = input[:lastIndex]
- }
+ ip := net.ParseIP(host)
+
+ if ip == nil {
+ return host
}
- s = strings.Replace(s, "[", "", -1)
- s = strings.Replace(s, "]", "", -1)
-
- ip := net.ParseIP(s)
-
if ip.IsLoopback() {
return "127.0.0.1"
}
return ip.String()
}
+
+// SplitHostPortDefault splits ip address/hostname string by host and port. Defaults used if no match found
+func SplitHostPortDefault(input, defaultHost, defaultPort string) (host string, port string) {
+ port = defaultPort
+ s := input
+ lastIndex := strings.LastIndex(input, ":")
+
+ if lastIndex != -1 {
+ if lastIndex > 0 && input[lastIndex-1:lastIndex] != ":" {
+ s = input[:lastIndex]
+ port = input[lastIndex+1:]
+ } else if lastIndex == 0 {
+ s = defaultHost
+ port = input[lastIndex+1:]
+ }
+ } else {
+ port = defaultPort
+ }
+
+ s = strings.Replace(s, "[", "", -1)
+ s = strings.Replace(s, "]", "", -1)
+ port = strings.Replace(port, "[", "", -1)
+ port = strings.Replace(port, "]", "", -1)
+
+ return s, port
+}
+
+// SplitHostPort splits ip address/hostname string by host and port
+func SplitHostPort(input string) (host string, port string) {
+ return SplitHostPortDefault(input, "", "")
+}
diff --git a/pkg/util/ip_address_test.go b/pkg/util/ip_address_test.go
index fd3e3ea8587..b926de1a36b 100644
--- a/pkg/util/ip_address_test.go
+++ b/pkg/util/ip_address_test.go
@@ -9,8 +9,90 @@ import (
func TestParseIPAddress(t *testing.T) {
Convey("Test parse ip address", t, func() {
So(ParseIPAddress("192.168.0.140:456"), ShouldEqual, "192.168.0.140")
+ So(ParseIPAddress("192.168.0.140"), ShouldEqual, "192.168.0.140")
So(ParseIPAddress("[::1:456]"), ShouldEqual, "127.0.0.1")
So(ParseIPAddress("[::1]"), ShouldEqual, "127.0.0.1")
- So(ParseIPAddress("192.168.0.140"), ShouldEqual, "192.168.0.140")
+ So(ParseIPAddress("::1"), ShouldEqual, "127.0.0.1")
+ So(ParseIPAddress("::1:123"), ShouldEqual, "127.0.0.1")
+ })
+}
+
+func TestSplitHostPortDefault(t *testing.T) {
+ Convey("Test split ip address to host and port", t, func() {
+ host, port := SplitHostPortDefault("192.168.0.140:456", "", "")
+ So(host, ShouldEqual, "192.168.0.140")
+ So(port, ShouldEqual, "456")
+
+ host, port = SplitHostPortDefault("192.168.0.140", "", "123")
+ So(host, ShouldEqual, "192.168.0.140")
+ So(port, ShouldEqual, "123")
+
+ host, port = SplitHostPortDefault("[::1:456]", "", "")
+ So(host, ShouldEqual, "::1")
+ So(port, ShouldEqual, "456")
+
+ host, port = SplitHostPortDefault("[::1]", "", "123")
+ So(host, ShouldEqual, "::1")
+ So(port, ShouldEqual, "123")
+
+ host, port = SplitHostPortDefault("::1:123", "", "")
+ So(host, ShouldEqual, "::1")
+ So(port, ShouldEqual, "123")
+
+ host, port = SplitHostPortDefault("::1", "", "123")
+ So(host, ShouldEqual, "::1")
+ So(port, ShouldEqual, "123")
+
+ host, port = SplitHostPortDefault(":456", "1.2.3.4", "")
+ So(host, ShouldEqual, "1.2.3.4")
+ So(port, ShouldEqual, "456")
+
+ host, port = SplitHostPortDefault("xyz.rds.amazonaws.com", "", "123")
+ So(host, ShouldEqual, "xyz.rds.amazonaws.com")
+ So(port, ShouldEqual, "123")
+
+ host, port = SplitHostPortDefault("xyz.rds.amazonaws.com:123", "", "")
+ So(host, ShouldEqual, "xyz.rds.amazonaws.com")
+ So(port, ShouldEqual, "123")
+ })
+}
+
+func TestSplitHostPort(t *testing.T) {
+ Convey("Test split ip address to host and port", t, func() {
+ host, port := SplitHostPort("192.168.0.140:456")
+ So(host, ShouldEqual, "192.168.0.140")
+ So(port, ShouldEqual, "456")
+
+ host, port = SplitHostPort("192.168.0.140")
+ So(host, ShouldEqual, "192.168.0.140")
+ So(port, ShouldEqual, "")
+
+ host, port = SplitHostPort("[::1:456]")
+ So(host, ShouldEqual, "::1")
+ So(port, ShouldEqual, "456")
+
+ host, port = SplitHostPort("[::1]")
+ So(host, ShouldEqual, "::1")
+ So(port, ShouldEqual, "")
+
+ host, port = SplitHostPort("::1:123")
+ So(host, ShouldEqual, "::1")
+ So(port, ShouldEqual, "123")
+
+ host, port = SplitHostPort("::1")
+ So(host, ShouldEqual, "::1")
+ So(port, ShouldEqual, "")
+
+ host, port = SplitHostPort(":456")
+ So(host, ShouldEqual, "")
+ So(port, ShouldEqual, "456")
+
+ host, port = SplitHostPort("xyz.rds.amazonaws.com")
+ So(host, ShouldEqual, "xyz.rds.amazonaws.com")
+ So(port, ShouldEqual, "")
+
+ host, port = SplitHostPort("xyz.rds.amazonaws.com:123")
+ So(host, ShouldEqual, "xyz.rds.amazonaws.com")
+ So(port, ShouldEqual, "123")
})
}
diff --git a/pkg/util/ip_test.go b/pkg/util/ip_test.go
deleted file mode 100644
index 3a62a080e26..00000000000
--- a/pkg/util/ip_test.go
+++ /dev/null
@@ -1,43 +0,0 @@
-package util
-
-import (
- "testing"
-
- . "github.com/smartystreets/goconvey/convey"
-)
-
-func TestSplitIPPort(t *testing.T) {
-
- Convey("When parsing an IPv4 without explicit port", t, func() {
- ip, port, err := SplitIPPort("1.2.3.4", "5678")
-
- So(err, ShouldEqual, nil)
- So(ip, ShouldEqual, "1.2.3.4")
- So(port, ShouldEqual, "5678")
- })
-
- Convey("When parsing an IPv6 without explicit port", t, func() {
- ip, port, err := SplitIPPort("::1", "5678")
-
- So(err, ShouldEqual, nil)
- So(ip, ShouldEqual, "::1")
- So(port, ShouldEqual, "5678")
- })
-
- Convey("When parsing an IPv4 with explicit port", t, func() {
- ip, port, err := SplitIPPort("1.2.3.4:56", "78")
-
- So(err, ShouldEqual, nil)
- So(ip, ShouldEqual, "1.2.3.4")
- So(port, ShouldEqual, "56")
- })
-
- Convey("When parsing an IPv6 with explicit port", t, func() {
- ip, port, err := SplitIPPort("[::1]:56", "78")
-
- So(err, ShouldEqual, nil)
- So(ip, ShouldEqual, "::1")
- So(port, ShouldEqual, "56")
- })
-
-}
diff --git a/public/app/core/services/backend_srv.ts b/public/app/core/services/backend_srv.ts
index 38d7f2b76cb..c73cc7661f5 100644
--- a/public/app/core/services/backend_srv.ts
+++ b/public/app/core/services/backend_srv.ts
@@ -1,6 +1,7 @@
import _ from 'lodash';
import coreModule from 'app/core/core_module';
import appEvents from 'app/core/app_events';
+import config from 'app/core/config';
import { DashboardModel } from 'app/features/dashboard/state/DashboardModel';
export class BackendSrv {
@@ -103,10 +104,17 @@ export class BackendSrv {
err => {
// handle unauthorized
if (err.status === 401 && this.contextSrv.user.isSignedIn && firstAttempt) {
- return this.loginPing().then(() => {
- options.retry = 1;
- return this.request(options);
- });
+ return this.loginPing()
+ .then(() => {
+ options.retry = 1;
+ return this.request(options);
+ })
+ .catch(err => {
+ if (err.status === 401) {
+ window.location.href = config.appSubUrl + '/logout';
+ throw err;
+ }
+ });
}
this.$timeout(this.requestErrorHandler.bind(this, err), 50);
@@ -184,13 +192,20 @@ export class BackendSrv {
// handle unauthorized for backend requests
if (requestIsLocal && firstAttempt && err.status === 401) {
- return this.loginPing().then(() => {
- options.retry = 1;
- if (canceler) {
- canceler.resolve();
- }
- return this.datasourceRequest(options);
- });
+ return this.loginPing()
+ .then(() => {
+ options.retry = 1;
+ if (canceler) {
+ canceler.resolve();
+ }
+ return this.datasourceRequest(options);
+ })
+ .catch(err => {
+ if (err.status === 401) {
+ window.location.href = config.appSubUrl + '/logout';
+ throw err;
+ }
+ });
}
// populate error obj on Internal Error
diff --git a/public/app/core/utils/explore.test.ts b/public/app/core/utils/explore.test.ts
index 32135eab90a..1c00142c3b8 100644
--- a/public/app/core/utils/explore.test.ts
+++ b/public/app/core/utils/explore.test.ts
@@ -13,6 +13,11 @@ const DEFAULT_EXPLORE_STATE: ExploreUrlState = {
datasource: null,
queries: [],
range: DEFAULT_RANGE,
+ ui: {
+ showingGraph: true,
+ showingTable: true,
+ showingLogs: true,
+ }
};
describe('state functions', () => {
@@ -69,9 +74,11 @@ describe('state functions', () => {
to: 'now',
},
};
+
expect(serializeStateToUrlParam(state)).toBe(
'{"datasource":"foo","queries":[{"expr":"metric{test=\\"a/b\\"}"},' +
- '{"expr":"super{foo=\\"x/z\\"}"}],"range":{"from":"now-5h","to":"now"}}'
+ '{"expr":"super{foo=\\"x/z\\"}"}],"range":{"from":"now-5h","to":"now"},' +
+ '"ui":{"showingGraph":true,"showingTable":true,"showingLogs":true}}'
);
});
@@ -93,7 +100,7 @@ describe('state functions', () => {
},
};
expect(serializeStateToUrlParam(state, true)).toBe(
- '["now-5h","now","foo",{"expr":"metric{test=\\"a/b\\"}"},{"expr":"super{foo=\\"x/z\\"}"}]'
+ '["now-5h","now","foo",{"expr":"metric{test=\\"a/b\\"}"},{"expr":"super{foo=\\"x/z\\"}"},{"ui":[true,true,true]}]'
);
});
});
@@ -118,7 +125,28 @@ describe('state functions', () => {
};
const serialized = serializeStateToUrlParam(state);
const parsed = parseUrlState(serialized);
+ expect(state).toMatchObject(parsed);
+ });
+ it('can parse the compact serialized state into the original state', () => {
+ const state = {
+ ...DEFAULT_EXPLORE_STATE,
+ datasource: 'foo',
+ queries: [
+ {
+ expr: 'metric{test="a/b"}',
+ },
+ {
+ expr: 'super{foo="x/z"}',
+ },
+ ],
+ range: {
+ from: 'now - 5h',
+ to: 'now',
+ },
+ };
+ const serialized = serializeStateToUrlParam(state, true);
+ const parsed = parseUrlState(serialized);
expect(state).toMatchObject(parsed);
});
});
diff --git a/public/app/core/utils/explore.ts b/public/app/core/utils/explore.ts
index 7a9f54a0cae..107f411353c 100644
--- a/public/app/core/utils/explore.ts
+++ b/public/app/core/utils/explore.ts
@@ -11,7 +11,7 @@ import { colors } from '@grafana/ui';
import TableModel, { mergeTablesIntoModel } from 'app/core/table_model';
// Types
-import { RawTimeRange, IntervalValues, DataQuery } from '@grafana/ui/src/types';
+import { RawTimeRange, IntervalValues, DataQuery, DataSourceApi } from '@grafana/ui/src/types';
import TimeSeries from 'app/core/time_series2';
import {
ExploreUrlState,
@@ -27,6 +27,12 @@ export const DEFAULT_RANGE = {
to: 'now',
};
+export const DEFAULT_UI_STATE = {
+ showingTable: true,
+ showingGraph: true,
+ showingLogs: true,
+};
+
const MAX_HISTORY_ITEMS = 100;
export const LAST_USED_DATASOURCE_KEY = 'grafana.explore.datasource';
@@ -147,7 +153,12 @@ export function buildQueryTransaction(
export const clearQueryKeys: ((query: DataQuery) => object) = ({ key, refId, ...rest }) => rest;
+const isMetricSegment = (segment: { [key: string]: string }) => segment.hasOwnProperty('expr');
+const isUISegment = (segment: { [key: string]: string }) => segment.hasOwnProperty('ui');
+
export function parseUrlState(initial: string | undefined): ExploreUrlState {
+ let uiState = DEFAULT_UI_STATE;
+
if (initial) {
try {
const parsed = JSON.parse(decodeURI(initial));
@@ -160,20 +171,41 @@ export function parseUrlState(initial: string | undefined): ExploreUrlState {
to: parsed[1],
};
const datasource = parsed[2];
- const queries = parsed.slice(3);
- return { datasource, queries, range };
+ let queries = [];
+
+ parsed.slice(3).forEach(segment => {
+ if (isMetricSegment(segment)) {
+ queries = [...queries, segment];
+ }
+
+ if (isUISegment(segment)) {
+ uiState = {
+ showingGraph: segment.ui[0],
+ showingLogs: segment.ui[1],
+ showingTable: segment.ui[2],
+ };
+ }
+ });
+
+ return { datasource, queries, range, ui: uiState };
}
return parsed;
} catch (e) {
console.error(e);
}
}
- return { datasource: null, queries: [], range: DEFAULT_RANGE };
+ return { datasource: null, queries: [], range: DEFAULT_RANGE, ui: uiState };
}
export function serializeStateToUrlParam(urlState: ExploreUrlState, compact?: boolean): string {
if (compact) {
- return JSON.stringify([urlState.range.from, urlState.range.to, urlState.datasource, ...urlState.queries]);
+ return JSON.stringify([
+ urlState.range.from,
+ urlState.range.to,
+ urlState.datasource,
+ ...urlState.queries,
+ { ui: [!!urlState.ui.showingGraph, !!urlState.ui.showingLogs, !!urlState.ui.showingTable] },
+ ]);
}
return JSON.stringify(urlState);
}
@@ -304,3 +336,12 @@ export function clearHistory(datasourceId: string) {
const historyKey = `grafana.explore.history.${datasourceId}`;
store.delete(historyKey);
}
+
+export const getQueryKeys = (queries: DataQuery[], datasourceInstance: DataSourceApi): string[] => {
+ const queryKeys = queries.reduce((newQueryKeys, query, index) => {
+ const primaryKey = datasourceInstance && datasourceInstance.name ? datasourceInstance.name : query.key;
+ return newQueryKeys.concat(`${primaryKey}-${index}`);
+ }, []);
+
+ return queryKeys;
+};
diff --git a/public/app/features/dashboard/components/AddPanelWidget/AddPanelWidget.test.tsx b/public/app/features/dashboard/components/AddPanelWidget/AddPanelWidget.test.tsx
new file mode 100644
index 00000000000..91da066e4cc
--- /dev/null
+++ b/public/app/features/dashboard/components/AddPanelWidget/AddPanelWidget.test.tsx
@@ -0,0 +1,23 @@
+import React from 'react';
+import { shallow } from 'enzyme';
+import { AddPanelWidget, Props } from './AddPanelWidget';
+import { DashboardModel, PanelModel } from '../../state';
+
+const setup = (propOverrides?: object) => {
+ const props: Props = {
+ dashboard: {} as DashboardModel,
+ panel: {} as PanelModel,
+ };
+
+ Object.assign(props, propOverrides);
+
+ return shallow( );
+};
+
+describe('Render', () => {
+ it('should render component', () => {
+ const wrapper = setup();
+
+ expect(wrapper).toMatchSnapshot();
+ });
+});
diff --git a/public/app/features/dashboard/components/AddPanelWidget/AddPanelWidget.tsx b/public/app/features/dashboard/components/AddPanelWidget/AddPanelWidget.tsx
index 8c1ab93cec1..135b04a8ac5 100644
--- a/public/app/features/dashboard/components/AddPanelWidget/AddPanelWidget.tsx
+++ b/public/app/features/dashboard/components/AddPanelWidget/AddPanelWidget.tsx
@@ -1,12 +1,20 @@
+// Libraries
import React from 'react';
import _ from 'lodash';
+
+// Utils
import config from 'app/core/config';
-import { PanelModel } from '../../state/PanelModel';
-import { DashboardModel } from '../../state/DashboardModel';
import store from 'app/core/store';
-import { LS_PANEL_COPY_KEY } from 'app/core/constants';
-import { updateLocation } from 'app/core/actions';
+
+// Store
import { store as reduxStore } from 'app/store/store';
+import { updateLocation } from 'app/core/actions';
+
+// Types
+import { PanelModel } from '../../state';
+import { DashboardModel } from '../../state';
+import { LS_PANEL_COPY_KEY } from 'app/core/constants';
+import { LocationUpdate } from 'app/types';
export interface Props {
panel: PanelModel;
@@ -46,6 +54,7 @@ export class AddPanelWidget extends React.Component {
copiedPanels.push(pluginCopy);
}
}
+
return _.sortBy(copiedPanels, 'sort');
}
@@ -54,28 +63,7 @@ export class AddPanelWidget extends React.Component {
this.props.dashboard.removePanel(this.props.dashboard.panels[0]);
}
- copyButton(panel) {
- return (
- this.onPasteCopiedPanel(panel)} title={panel.name}>
- Paste copied Panel
-
- );
- }
-
- moveToEdit(panel) {
- reduxStore.dispatch(
- updateLocation({
- query: {
- panelId: panel.id,
- edit: true,
- fullscreen: true,
- },
- partial: true,
- })
- );
- }
-
- onCreateNewPanel = () => {
+ onCreateNewPanel = (tab = 'queries') => {
const dashboard = this.props.dashboard;
const { gridPos } = this.props.panel;
@@ -88,7 +76,21 @@ export class AddPanelWidget extends React.Component {
dashboard.addPanel(newPanel);
dashboard.removePanel(this.props.panel);
- this.moveToEdit(newPanel);
+ const location: LocationUpdate = {
+ query: {
+ panelId: newPanel.id,
+ edit: true,
+ fullscreen: true,
+ },
+ partial: true,
+ };
+
+ if (tab === 'visualization') {
+ location.query.tab = 'visualization';
+ location.query.openVizPicker = true;
+ }
+
+ reduxStore.dispatch(updateLocation(location));
};
onPasteCopiedPanel = panelPluginInfo => {
@@ -125,30 +127,50 @@ export class AddPanelWidget extends React.Component {
dashboard.removePanel(this.props.panel);
};
- render() {
- let addCopyButton;
+ renderOptionLink = (icon, text, onClick) => {
+ return (
+
+ );
+ };
- if (this.state.copiedPanelPlugins.length === 1) {
- addCopyButton = this.copyButton(this.state.copiedPanelPlugins[0]);
- }
+ render() {
+ const { copiedPanelPlugins } = this.state;
return (
+ New Panel
-
- Edit Panel
-
- {addCopyButton}
-
- Add Row
-
+
+ {this.renderOptionLink('queries', 'Add Query', this.onCreateNewPanel)}
+ {this.renderOptionLink('visualization', 'Choose Visualization', () =>
+ this.onCreateNewPanel('visualization')
+ )}
+
+
+ Convert to row
+ {copiedPanelPlugins.length === 1 && (
+ this.onPasteCopiedPanel(copiedPanelPlugins[0])}
+ >
+ Paste copied panel
+
+ )}
+
diff --git a/public/app/features/dashboard/components/AddPanelWidget/_AddPanelWidget.scss b/public/app/features/dashboard/components/AddPanelWidget/_AddPanelWidget.scss
index 5a1cbee4b44..288b2e7a410 100644
--- a/public/app/features/dashboard/components/AddPanelWidget/_AddPanelWidget.scss
+++ b/public/app/features/dashboard/components/AddPanelWidget/_AddPanelWidget.scss
@@ -14,6 +14,9 @@
align-items: center;
width: 100%;
cursor: move;
+ background: $page-header-bg;
+ box-shadow: $page-header-shadow;
+ border-bottom: 1px solid $page-header-border-color;
.gicon {
font-size: 30px;
@@ -26,6 +29,29 @@
}
}
+.add-panel-widget__title {
+ font-size: $font-size-md;
+ font-weight: $font-weight-semi-bold;
+ margin-right: $spacer*2;
+}
+
+.add-panel-widget__link {
+ margin: 0 8px;
+ width: 154px;
+}
+
+.add-panel-widget__icon {
+ margin-bottom: 8px;
+
+ .gicon {
+ color: white;
+ height: 44px;
+ width: 53px;
+ position: relative;
+ left: 5px;
+ }
+}
+
.add-panel-widget__close {
margin-left: auto;
background-color: transparent;
@@ -34,14 +60,25 @@
margin-right: -10px;
}
+.add-panel-widget__create {
+ display: inherit;
+ margin-bottom: 24px;
+ // this is to have the big button appear centered
+ margin-top: 55px;
+}
+
+.add-panel-widget__actions {
+ display: inherit;
+}
+
+.add-panel-widget__action {
+ margin: 0 4px;
+}
+
.add-panel-widget__btn-container {
+ height: 100%;
display: flex;
justify-content: center;
align-items: center;
- height: 100%;
flex-direction: column;
-
- .btn {
- margin-bottom: 10px;
- }
}
diff --git a/public/app/features/dashboard/components/AddPanelWidget/__snapshots__/AddPanelWidget.test.tsx.snap b/public/app/features/dashboard/components/AddPanelWidget/__snapshots__/AddPanelWidget.test.tsx.snap
new file mode 100644
index 00000000000..00faf48d8df
--- /dev/null
+++ b/public/app/features/dashboard/components/AddPanelWidget/__snapshots__/AddPanelWidget.test.tsx.snap
@@ -0,0 +1,86 @@
+// Jest Snapshot v1, https://goo.gl/fbAQLP
+
+exports[`Render should render component 1`] = `
+
+
+
+
+
+ New Panel
+
+
+
+
+
+
+
+
+
+ Convert to row
+
+
+
+
+
+`;
diff --git a/public/app/features/dashboard/components/SaveModals/index.ts b/public/app/features/dashboard/components/SaveModals/index.ts
index afab0796d28..6f55cc2ce06 100644
--- a/public/app/features/dashboard/components/SaveModals/index.ts
+++ b/public/app/features/dashboard/components/SaveModals/index.ts
@@ -1,2 +1,3 @@
export { SaveDashboardAsModalCtrl } from './SaveDashboardAsModalCtrl';
export { SaveDashboardModalCtrl } from './SaveDashboardModalCtrl';
+export { SaveProvisionedDashboardModalCtrl } from './SaveProvisionedDashboardModalCtrl';
diff --git a/public/app/features/dashboard/panel_editor/PanelEditor.tsx b/public/app/features/dashboard/panel_editor/PanelEditor.tsx
index d7aafb89e55..bfdc13bc8f2 100644
--- a/public/app/features/dashboard/panel_editor/PanelEditor.tsx
+++ b/public/app/features/dashboard/panel_editor/PanelEditor.tsx
@@ -2,7 +2,7 @@ import React, { PureComponent } from 'react';
import classNames from 'classnames';
import { QueriesTab } from './QueriesTab';
-import { VisualizationTab } from './VisualizationTab';
+import VisualizationTab from './VisualizationTab';
import { GeneralTab } from './GeneralTab';
import { AlertTab } from '../../alerting/AlertTab';
@@ -38,7 +38,7 @@ export class PanelEditor extends PureComponent {
onChangeTab = (tab: PanelEditorTab) => {
store.dispatch(
updateLocation({
- query: { tab: tab.id },
+ query: { tab: tab.id, openVizPicker: null },
partial: true,
})
);
diff --git a/public/app/features/dashboard/panel_editor/QueriesTab.tsx b/public/app/features/dashboard/panel_editor/QueriesTab.tsx
index 491f255d761..d46ff020906 100644
--- a/public/app/features/dashboard/panel_editor/QueriesTab.tsx
+++ b/public/app/features/dashboard/panel_editor/QueriesTab.tsx
@@ -133,7 +133,7 @@ export class QueriesTab extends PureComponent {
return (
<>
-
+
{!isAddingMixed && (
Add Query
diff --git a/public/app/features/dashboard/panel_editor/VisualizationTab.tsx b/public/app/features/dashboard/panel_editor/VisualizationTab.tsx
index 35b9b71112a..94a403c11bf 100644
--- a/public/app/features/dashboard/panel_editor/VisualizationTab.tsx
+++ b/public/app/features/dashboard/panel_editor/VisualizationTab.tsx
@@ -3,6 +3,9 @@ import React, { PureComponent } from 'react';
// Utils & Services
import { AngularComponent, getAngularLoader } from 'app/core/services/AngularLoader';
+import { connectWithStore } from 'app/core/utils/connectWithReduxStore';
+import { StoreState } from 'app/types';
+import { updateLocation } from 'app/core/actions';
// Components
import { EditorTabBody, EditorToolbarView } from './EditorTabBody';
@@ -21,6 +24,8 @@ interface Props {
plugin: PanelPlugin;
angularPanel?: AngularComponent;
onTypeChanged: (newType: PanelPlugin) => void;
+ updateLocation: typeof updateLocation;
+ urlOpenVizPicker: boolean;
}
interface State {
@@ -38,7 +43,7 @@ export class VisualizationTab extends PureComponent {
super(props);
this.state = {
- isVizPickerOpen: false,
+ isVizPickerOpen: this.props.urlOpenVizPicker,
searchQuery: '',
scrollTop: 0,
};
@@ -149,6 +154,10 @@ export class VisualizationTab extends PureComponent {
};
onCloseVizPicker = () => {
+ if (this.props.urlOpenVizPicker) {
+ this.props.updateLocation({ query: { openVizPicker: null }, partial: true });
+ }
+
this.setState({ isVizPickerOpen: false });
};
@@ -236,3 +245,13 @@ export class VisualizationTab extends PureComponent {
);
}
}
+
+const mapStateToProps = (state: StoreState) => ({
+ urlOpenVizPicker: !!state.location.query.openVizPicker
+});
+
+const mapDispatchToProps = {
+ updateLocation
+};
+
+export default connectWithStore(VisualizationTab, mapStateToProps, mapDispatchToProps);
diff --git a/public/app/features/explore/Explore.tsx b/public/app/features/explore/Explore.tsx
index 06a6ae24cac..437b50db63c 100644
--- a/public/app/features/explore/Explore.tsx
+++ b/public/app/features/explore/Explore.tsx
@@ -1,5 +1,5 @@
// Libraries
-import React from 'react';
+import React, { ComponentClass } from 'react';
import { hot } from 'react-hot-loader';
import { connect } from 'react-redux';
import _ from 'lodash';
@@ -18,34 +18,26 @@ import TableContainer from './TableContainer';
import TimePicker, { parseTime } from './TimePicker';
// Actions
-import {
- changeSize,
- changeTime,
- initializeExplore,
- modifyQueries,
- scanStart,
- scanStop,
- setQueries,
-} from './state/actions';
+import { changeSize, changeTime, initializeExplore, modifyQueries, scanStart, setQueries } from './state/actions';
// Types
-import { RawTimeRange, TimeRange, DataQuery } from '@grafana/ui';
+import { RawTimeRange, TimeRange, DataQuery, ExploreStartPageProps, ExploreDataSourceApi } from '@grafana/ui';
import { ExploreItemState, ExploreUrlState, RangeScanner, ExploreId } from 'app/types/explore';
import { StoreState } from 'app/types';
-import { LAST_USED_DATASOURCE_KEY, ensureQueries, DEFAULT_RANGE } from 'app/core/utils/explore';
+import { LAST_USED_DATASOURCE_KEY, ensureQueries, DEFAULT_RANGE, DEFAULT_UI_STATE } from 'app/core/utils/explore';
import { Emitter } from 'app/core/utils/emitter';
import { ExploreToolbar } from './ExploreToolbar';
+import { scanStopAction } from './state/actionTypes';
interface ExploreProps {
- StartPage?: any;
+ StartPage?: ComponentClass;
changeSize: typeof changeSize;
changeTime: typeof changeTime;
datasourceError: string;
- datasourceInstance: any;
+ datasourceInstance: ExploreDataSourceApi;
datasourceLoading: boolean | null;
datasourceMissing: boolean;
exploreId: ExploreId;
- initialQueries: DataQuery[];
initializeExplore: typeof initializeExplore;
initialized: boolean;
modifyQueries: typeof modifyQueries;
@@ -54,7 +46,7 @@ interface ExploreProps {
scanning?: boolean;
scanRange?: RawTimeRange;
scanStart: typeof scanStart;
- scanStop: typeof scanStop;
+ scanStopAction: typeof scanStopAction;
setQueries: typeof setQueries;
split: boolean;
showingStartPage?: boolean;
@@ -62,6 +54,7 @@ interface ExploreProps {
supportsLogs: boolean | null;
supportsTable: boolean | null;
urlState: ExploreUrlState;
+ queryKeys: string[];
}
/**
@@ -107,18 +100,20 @@ export class Explore extends React.PureComponent {
// Don't initialize on split, but need to initialize urlparameters when present
if (!initialized) {
// Load URL state and parse range
- const { datasource, queries, range = DEFAULT_RANGE } = (urlState || {}) as ExploreUrlState;
+ const { datasource, queries, range = DEFAULT_RANGE, ui = DEFAULT_UI_STATE } = (urlState || {}) as ExploreUrlState;
const initialDatasource = datasource || store.get(LAST_USED_DATASOURCE_KEY);
const initialQueries: DataQuery[] = ensureQueries(queries);
const initialRange = { from: parseTime(range.from), to: parseTime(range.to) };
const width = this.el ? this.el.offsetWidth : 0;
+
this.props.initializeExplore(
exploreId,
initialDatasource,
initialQueries,
initialRange,
width,
- this.exploreEvents
+ this.exploreEvents,
+ ui
);
}
}
@@ -171,7 +166,7 @@ export class Explore extends React.PureComponent {
};
onStopScanning = () => {
- this.props.scanStop(this.props.exploreId);
+ this.props.scanStopAction({ exploreId: this.props.exploreId });
};
render() {
@@ -182,12 +177,12 @@ export class Explore extends React.PureComponent {
datasourceLoading,
datasourceMissing,
exploreId,
- initialQueries,
showingStartPage,
split,
supportsGraph,
supportsLogs,
supportsTable,
+ queryKeys,
} = this.props;
const exploreClass = split ? 'explore explore-split' : 'explore';
@@ -208,7 +203,7 @@ export class Explore extends React.PureComponent {
{datasourceInstance &&
!datasourceError && (
-
+
{({ width }) => (
@@ -216,7 +211,7 @@ export class Explore extends React.PureComponent {
{showingStartPage && }
{!showingStartPage && (
<>
- {supportsGraph && !supportsLogs && }
+ {supportsGraph && !supportsLogs && }
{supportsTable && }
{supportsLogs && (
{
this.props.runQuery(this.props.exploreId);
};
+ onCloseTimePicker = () => {
+ this.props.timepickerRef.current.setState({ isOpen: false });
+ };
+
render() {
const {
datasourceMissing,
@@ -137,7 +142,9 @@ export class UnConnectedExploreToolbar extends PureComponent {
) : null}
-
+
+
+
diff --git a/public/app/features/explore/Graph.test.tsx b/public/app/features/explore/Graph.test.tsx
index fe4deaf17aa..8976c677592 100644
--- a/public/app/features/explore/Graph.test.tsx
+++ b/public/app/features/explore/Graph.test.tsx
@@ -5,6 +5,7 @@ import { mockData } from './__mocks__/mockData';
const setup = (propOverrides?: object) => {
const props = {
+ size: { width: 10, height: 20 },
data: mockData().slice(0, 19),
range: { from: 'now-6h', to: 'now' },
...propOverrides,
diff --git a/public/app/features/explore/Graph.tsx b/public/app/features/explore/Graph.tsx
index 5d64dde28ce..3a641697781 100644
--- a/public/app/features/explore/Graph.tsx
+++ b/public/app/features/explore/Graph.tsx
@@ -1,7 +1,6 @@
import $ from 'jquery';
import React, { PureComponent } from 'react';
import moment from 'moment';
-import { withSize } from 'react-sizeme';
import 'vendor/flot/jquery.flot';
import 'vendor/flot/jquery.flot.time';
@@ -76,11 +75,11 @@ const FLOT_OPTIONS = {
interface GraphProps {
data: any[];
- height?: string; // e.g., '200px'
+ height?: number;
+ width?: number;
id?: string;
range: RawTimeRange;
split?: boolean;
- size?: { width: number; height: number };
userOptions?: any;
onChangeTime?: (range: RawTimeRange) => void;
onToggleSeries?: (alias: string, hiddenSeries: Set) => void;
@@ -122,7 +121,7 @@ export class Graph extends PureComponent {
prevProps.range !== this.props.range ||
prevProps.split !== this.props.split ||
prevProps.height !== this.props.height ||
- (prevProps.size && prevProps.size.width !== this.props.size.width) ||
+ prevProps.width !== this.props.width ||
!equal(prevState.hiddenSeries, this.state.hiddenSeries)
) {
this.draw();
@@ -144,8 +143,8 @@ export class Graph extends PureComponent {
};
getDynamicOptions() {
- const { range, size } = this.props;
- const ticks = (size.width || 0) / 100;
+ const { range, width } = this.props;
+ const ticks = (width || 0) / 100;
let { from, to } = range;
if (!moment.isMoment(from)) {
from = dateMath.parse(from, false);
@@ -237,7 +236,7 @@ export class Graph extends PureComponent {
}
render() {
- const { height = '100px', id = 'graph' } = this.props;
+ const { height = 100, id = 'graph' } = this.props;
const { hiddenSeries } = this.state;
const data = this.getGraphData();
@@ -261,4 +260,4 @@ export class Graph extends PureComponent {
}
}
-export default withSize()(Graph);
+export default Graph;
diff --git a/public/app/features/explore/GraphContainer.tsx b/public/app/features/explore/GraphContainer.tsx
index 7263fd09288..3950d89c11f 100644
--- a/public/app/features/explore/GraphContainer.tsx
+++ b/public/app/features/explore/GraphContainer.tsx
@@ -20,6 +20,7 @@ interface GraphContainerProps {
split: boolean;
toggleGraph: typeof toggleGraph;
changeTime: typeof changeTime;
+ width: number;
}
export class GraphContainer extends PureComponent {
@@ -32,8 +33,8 @@ export class GraphContainer extends PureComponent {
};
render() {
- const { exploreId, graphResult, loading, showingGraph, showingTable, range, split } = this.props;
- const graphHeight = showingGraph && showingTable ? '200px' : '400px';
+ const { exploreId, graphResult, loading, showingGraph, showingTable, range, split, width } = this.props;
+ const graphHeight = showingGraph && showingTable ? 200 : 400;
if (!graphResult) {
return null;
@@ -48,6 +49,7 @@ export class GraphContainer extends PureComponent {
onChangeTime={this.onChangeTime}
range={range}
split={split}
+ width={width}
/>
);
diff --git a/public/app/features/explore/Logs.tsx b/public/app/features/explore/Logs.tsx
index 490257cb9a9..b6c903bc504 100644
--- a/public/app/features/explore/Logs.tsx
+++ b/public/app/features/explore/Logs.tsx
@@ -214,7 +214,7 @@ export default class Logs extends PureComponent {
void;
- onQueryChange?: (value: DataQuery, override?: boolean) => void;
+ onQueryChange?: (value: DataQuery) => void;
initialQuery: DataQuery;
exploreEvents: Emitter;
range: RawTimeRange;
@@ -40,20 +40,17 @@ export default class QueryEditor extends PureComponent {
datasource,
target,
refresh: () => {
- this.props.onQueryChange(target, false);
+ this.props.onQueryChange(target);
this.props.onExecuteQuery();
},
events: exploreEvents,
- panel: {
- datasource,
- targets: [target],
- },
+ panel: { datasource, targets: [target] },
dashboard: {},
},
};
this.component = loader.load(this.element, scopeProps, template);
- this.props.onQueryChange(target, false);
+ this.props.onQueryChange(target);
}
componentWillUnmount() {
diff --git a/public/app/features/explore/QueryField.tsx b/public/app/features/explore/QueryField.tsx
index 85315d2bdef..810bca9ef5a 100644
--- a/public/app/features/explore/QueryField.tsx
+++ b/public/app/features/explore/QueryField.tsx
@@ -33,10 +33,9 @@ export interface QueryFieldProps {
cleanText?: (text: string) => string;
disabled?: boolean;
initialQuery: string | null;
- onBlur?: () => void;
- onFocus?: () => void;
+ onExecuteQuery?: () => void;
+ onQueryChange?: (value: string) => void;
onTypeahead?: (typeahead: TypeaheadInput) => TypeaheadOutput;
- onValueChanged?: (value: string) => void;
onWillApplySuggestion?: (suggestion: string, state: QueryFieldState) => string;
placeholder?: string;
portalOrigin?: string;
@@ -51,6 +50,7 @@ export interface QueryFieldState {
typeaheadPrefix: string;
typeaheadText: string;
value: Value;
+ lastExecutedValue: Value;
}
export interface TypeaheadInput {
@@ -90,6 +90,7 @@ export class QueryField extends React.PureComponent {
+ onChange = ({ value }, invokeParentOnValueChanged?: boolean) => {
const documentChanged = value.document !== this.state.value.document;
const prevValue = this.state.value;
@@ -144,8 +145,8 @@ export class QueryField extends React.PureComponent {
if (documentChanged) {
const textChanged = Plain.serialize(prevValue) !== Plain.serialize(value);
- if (textChanged) {
- this.handleChangeValue();
+ if (textChanged && invokeParentOnValueChanged) {
+ this.executeOnQueryChangeAndExecuteQueries();
}
}
});
@@ -159,11 +160,16 @@ export class QueryField extends React.PureComponent {
+ executeOnQueryChangeAndExecuteQueries = () => {
// Send text change to parent
- const { onValueChanged } = this.props;
- if (onValueChanged) {
- onValueChanged(Plain.serialize(this.state.value));
+ const { onQueryChange, onExecuteQuery } = this.props;
+ if (onQueryChange) {
+ onQueryChange(Plain.serialize(this.state.value));
+ }
+
+ if (onExecuteQuery) {
+ onExecuteQuery();
+ this.setState({ lastExecutedValue: this.state.value });
}
};
@@ -288,8 +294,37 @@ export class QueryField extends React.PureComponent {
+ handleEnterAndTabKey = change => {
const { typeaheadIndex, suggestions } = this.state;
+ if (this.menuEl) {
+ // Dont blur input
+ event.preventDefault();
+ if (!suggestions || suggestions.length === 0) {
+ return undefined;
+ }
+
+ const suggestion = getSuggestionByIndex(suggestions, typeaheadIndex);
+ const nextChange = this.applyTypeahead(change, suggestion);
+
+ const insertTextOperation = nextChange.operations.find(operation => operation.type === 'insert_text');
+ if (insertTextOperation) {
+ const suggestionText = insertTextOperation.text;
+ this.placeholdersBuffer.setNextPlaceholderValue(suggestionText);
+ if (this.placeholdersBuffer.hasPlaceholders()) {
+ nextChange.move(this.placeholdersBuffer.getNextMoveOffset()).focus();
+ }
+ }
+
+ return true;
+ } else {
+ this.executeOnQueryChangeAndExecuteQueries();
+
+ return undefined;
+ }
+ };
+
+ onKeyDown = (event, change) => {
+ const { typeaheadIndex } = this.state;
switch (event.key) {
case 'Escape': {
@@ -312,27 +347,7 @@ export class QueryField extends React.PureComponent operation.type === 'insert_text');
- if (insertTextOperation) {
- const suggestionText = insertTextOperation.text;
- this.placeholdersBuffer.setNextPlaceholderValue(suggestionText);
- if (this.placeholdersBuffer.hasPlaceholders()) {
- nextChange.move(this.placeholdersBuffer.getNextMoveOffset()).focus();
- }
- }
-
- return true;
- }
+ return this.handleEnterAndTabKey(change);
break;
}
@@ -364,39 +379,33 @@ export class QueryField extends React.PureComponent {
if (this.mounted) {
- this.setState({
- suggestions: [],
- typeaheadIndex: 0,
- typeaheadPrefix: '',
- typeaheadContext: null,
- });
+ this.setState({ suggestions: [], typeaheadIndex: 0, typeaheadPrefix: '', typeaheadContext: null });
this.resetTimer = null;
}
};
- handleBlur = () => {
- const { onBlur } = this.props;
+ handleBlur = (event, change) => {
+ const { lastExecutedValue } = this.state;
+ const previousValue = lastExecutedValue ? Plain.serialize(this.state.lastExecutedValue) : null;
+ const currentValue = Plain.serialize(change.value);
+
// If we dont wait here, menu clicks wont work because the menu
// will be gone.
this.resetTimer = setTimeout(this.resetTypeahead, 100);
// Disrupting placeholder entry wipes all remaining placeholders needing input
this.placeholdersBuffer.clearPlaceholders();
- if (onBlur) {
- onBlur();
+
+ if (previousValue !== currentValue) {
+ this.executeOnQueryChangeAndExecuteQueries();
}
};
- handleFocus = () => {
- const { onFocus } = this.props;
- if (onFocus) {
- onFocus();
- }
- };
+ handleFocus = () => {};
onClickMenu = (item: CompletionItem) => {
// Manually triggering change
const change = this.applyTypeahead(this.state.value.change(), item);
- this.onChange(change);
+ this.onChange(change, true);
};
updateMenu = () => {
@@ -459,6 +468,14 @@ export class QueryField extends React.PureComponent {
+ const pastedValue = event.clipboardData.getData('Text');
+ const newValue = change.value.change().insertText(pastedValue);
+ this.onChange(newValue);
+
+ return true;
+ };
+
render() {
const { disabled } = this.props;
const wrapperClassName = classnames('slate-query-field__wrapper', {
@@ -475,6 +492,7 @@ export class QueryField extends React.PureComponent qt.hints && qt.hints.length > 0);
@@ -37,16 +31,16 @@ interface QueryRowProps {
changeQuery: typeof changeQuery;
className?: string;
exploreId: ExploreId;
- datasourceInstance: any;
- highlightLogsExpression: typeof highlightLogsExpression;
+ datasourceInstance: ExploreDataSourceApi;
+ highlightLogsExpressionAction: typeof highlightLogsExpressionAction;
history: HistoryItem[];
index: number;
- initialQuery: DataQuery;
+ query: DataQuery;
modifyQueries: typeof modifyQueries;
queryTransactions: QueryTransaction[];
exploreEvents: Emitter;
range: RawTimeRange;
- removeQueryRow: typeof removeQueryRow;
+ removeQueryRowAction: typeof removeQueryRowAction;
runQueries: typeof runQueries;
}
@@ -78,29 +72,30 @@ export class QueryRow extends PureComponent {
this.onChangeQuery(null, true);
};
- onClickHintFix = action => {
+ onClickHintFix = (action: QueryFixAction) => {
const { datasourceInstance, exploreId, index } = this.props;
if (datasourceInstance && datasourceInstance.modifyQuery) {
- const modifier = (queries: DataQuery, action: any) => datasourceInstance.modifyQuery(queries, action);
+ const modifier = (queries: DataQuery, action: QueryFixAction) => datasourceInstance.modifyQuery(queries, action);
this.props.modifyQueries(exploreId, action, index, modifier);
}
};
onClickRemoveButton = () => {
const { exploreId, index } = this.props;
- this.props.removeQueryRow(exploreId, index);
+ this.props.removeQueryRowAction({ exploreId, index });
};
updateLogsHighlights = _.debounce((value: DataQuery) => {
const { datasourceInstance } = this.props;
if (datasourceInstance.getHighlighterExpression) {
+ const { exploreId } = this.props;
const expressions = [datasourceInstance.getHighlighterExpression(value)];
- this.props.highlightLogsExpression(this.props.exploreId, expressions);
+ this.props.highlightLogsExpressionAction({ exploreId, expressions });
}
}, 500);
render() {
- const { datasourceInstance, history, index, initialQuery, queryTransactions, exploreEvents, range } = this.props;
+ const { datasourceInstance, history, index, query, queryTransactions, exploreEvents, range } = this.props;
const transactions = queryTransactions.filter(t => t.rowIndex === index);
const transactionWithError = transactions.find(t => t.error !== undefined);
const hint = getFirstHintFromTransactions(transactions);
@@ -111,16 +106,16 @@ export class QueryRow extends PureComponent {
-
+
{QueryField ? (
) : (
@@ -129,13 +124,13 @@ export class QueryRow extends PureComponent {
error={queryError}
onQueryChange={this.onChangeQuery}
onExecuteQuery={this.onExecuteQuery}
- initialQuery={initialQuery}
+ initialQuery={query}
exploreEvents={exploreEvents}
range={range}
/>
)}
-
+
@@ -160,17 +155,17 @@ export class QueryRow extends PureComponent {
function mapStateToProps(state: StoreState, { exploreId, index }) {
const explore = state.explore;
const item: ExploreItemState = explore[exploreId];
- const { datasourceInstance, history, initialQueries, queryTransactions, range } = item;
- const initialQuery = initialQueries[index];
- return { datasourceInstance, history, initialQuery, queryTransactions, range };
+ const { datasourceInstance, history, queries, queryTransactions, range } = item;
+ const query = queries[index];
+ return { datasourceInstance, history, query, queryTransactions, range };
}
const mapDispatchToProps = {
addQueryRow,
changeQuery,
- highlightLogsExpression,
+ highlightLogsExpressionAction,
modifyQueries,
- removeQueryRow,
+ removeQueryRowAction,
runQueries,
};
diff --git a/public/app/features/explore/QueryRows.tsx b/public/app/features/explore/QueryRows.tsx
index f8bb6e5ce6b..4b5a16ef781 100644
--- a/public/app/features/explore/QueryRows.tsx
+++ b/public/app/features/explore/QueryRows.tsx
@@ -6,25 +6,23 @@ import QueryRow from './QueryRow';
// Types
import { Emitter } from 'app/core/utils/emitter';
-import { DataQuery } from '@grafana/ui/src/types';
import { ExploreId } from 'app/types/explore';
interface QueryRowsProps {
className?: string;
exploreEvents: Emitter;
exploreId: ExploreId;
- initialQueries: DataQuery[];
+ queryKeys: string[];
}
export default class QueryRows extends PureComponent {
render() {
- const { className = '', exploreEvents, exploreId, initialQueries } = this.props;
+ const { className = '', exploreEvents, exploreId, queryKeys } = this.props;
return (
- {initialQueries.map((query, index) => (
- // TODO instead of relying on initialQueries, move to react key list in redux
-
- ))}
+ {queryKeys.map((key, index) => {
+ return ;
+ })}
);
}
diff --git a/public/app/features/explore/Wrapper.tsx b/public/app/features/explore/Wrapper.tsx
index aca2e6d8cbd..f64b2704b71 100644
--- a/public/app/features/explore/Wrapper.tsx
+++ b/public/app/features/explore/Wrapper.tsx
@@ -7,16 +7,16 @@ import { StoreState } from 'app/types';
import { ExploreId, ExploreUrlState } from 'app/types/explore';
import { parseUrlState } from 'app/core/utils/explore';
-import { initializeExploreSplit, resetExplore } from './state/actions';
import ErrorBoundary from './ErrorBoundary';
import Explore from './Explore';
import { CustomScrollbar } from '@grafana/ui';
+import { initializeExploreSplitAction, resetExploreAction } from './state/actionTypes';
interface WrapperProps {
- initializeExploreSplit: typeof initializeExploreSplit;
+ initializeExploreSplitAction: typeof initializeExploreSplitAction;
split: boolean;
updateLocation: typeof updateLocation;
- resetExplore: typeof resetExplore;
+ resetExploreAction: typeof resetExploreAction;
urlStates: { [key: string]: string };
}
@@ -39,12 +39,12 @@ export class Wrapper extends Component {
componentDidMount() {
if (this.initialSplit) {
- this.props.initializeExploreSplit();
+ this.props.initializeExploreSplitAction();
}
}
componentWillUnmount() {
- this.props.resetExplore();
+ this.props.resetExploreAction();
}
render() {
@@ -77,9 +77,9 @@ const mapStateToProps = (state: StoreState) => {
};
const mapDispatchToProps = {
- initializeExploreSplit,
+ initializeExploreSplitAction,
updateLocation,
- resetExplore,
+ resetExploreAction,
};
export default hot(module)(connect(mapStateToProps, mapDispatchToProps)(Wrapper));
diff --git a/public/app/features/explore/__snapshots__/Graph.test.tsx.snap b/public/app/features/explore/__snapshots__/Graph.test.tsx.snap
index a7ec6deb22c..c38fb26a252 100644
--- a/public/app/features/explore/__snapshots__/Graph.test.tsx.snap
+++ b/public/app/features/explore/__snapshots__/Graph.test.tsx.snap
@@ -7,7 +7,7 @@ exports[`Render should render component 1`] = `
id="graph"
style={
Object {
- "height": "100px",
+ "height": 100,
}
}
/>
@@ -480,7 +480,7 @@ exports[`Render should render component with disclaimer 1`] = `
id="graph"
style={
Object {
- "height": "100px",
+ "height": 100,
}
}
/>
@@ -962,7 +962,7 @@ exports[`Render should show query return no time series 1`] = `
id="graph"
style={
Object {
- "height": "100px",
+ "height": 100,
}
}
/>
diff --git a/public/app/features/explore/state/actionTypes.ts b/public/app/features/explore/state/actionTypes.ts
index be7d5754bbe..98af5e8076e 100644
--- a/public/app/features/explore/state/actionTypes.ts
+++ b/public/app/features/explore/state/actionTypes.ts
@@ -1,6 +1,13 @@
// Types
import { Emitter } from 'app/core/core';
-import { RawTimeRange, TimeRange, DataQuery, DataSourceSelectItem, DataSourceApi } from '@grafana/ui/src/types';
+import {
+ RawTimeRange,
+ TimeRange,
+ DataQuery,
+ DataSourceSelectItem,
+ DataSourceApi,
+ QueryFixAction,
+} from '@grafana/ui/src/types';
import {
ExploreId,
ExploreItemState,
@@ -8,234 +15,28 @@ import {
RangeScanner,
ResultType,
QueryTransaction,
+ ExploreUIState,
} from 'app/types/explore';
+import { actionCreatorFactory, noPayloadActionCreatorFactory, ActionOf } from 'app/core/redux/actionCreatorFactory';
+/** Higher order actions
+ *
+ */
export enum ActionTypes {
- AddQueryRow = 'explore/ADD_QUERY_ROW',
- ChangeDatasource = 'explore/CHANGE_DATASOURCE',
- ChangeQuery = 'explore/CHANGE_QUERY',
- ChangeSize = 'explore/CHANGE_SIZE',
- ChangeTime = 'explore/CHANGE_TIME',
- ClearQueries = 'explore/CLEAR_QUERIES',
- HighlightLogsExpression = 'explore/HIGHLIGHT_LOGS_EXPRESSION',
- InitializeExplore = 'explore/INITIALIZE_EXPLORE',
InitializeExploreSplit = 'explore/INITIALIZE_EXPLORE_SPLIT',
- LoadDatasourceFailure = 'explore/LOAD_DATASOURCE_FAILURE',
- LoadDatasourceMissing = 'explore/LOAD_DATASOURCE_MISSING',
- LoadDatasourcePending = 'explore/LOAD_DATASOURCE_PENDING',
- LoadDatasourceSuccess = 'explore/LOAD_DATASOURCE_SUCCESS',
- ModifyQueries = 'explore/MODIFY_QUERIES',
- QueryTransactionFailure = 'explore/QUERY_TRANSACTION_FAILURE',
- QueryTransactionStart = 'explore/QUERY_TRANSACTION_START',
- QueryTransactionSuccess = 'explore/QUERY_TRANSACTION_SUCCESS',
- RemoveQueryRow = 'explore/REMOVE_QUERY_ROW',
- RunQueries = 'explore/RUN_QUERIES',
- RunQueriesEmpty = 'explore/RUN_QUERIES_EMPTY',
- ScanRange = 'explore/SCAN_RANGE',
- ScanStart = 'explore/SCAN_START',
- ScanStop = 'explore/SCAN_STOP',
- SetQueries = 'explore/SET_QUERIES',
SplitClose = 'explore/SPLIT_CLOSE',
SplitOpen = 'explore/SPLIT_OPEN',
- StateSave = 'explore/STATE_SAVE',
- ToggleGraph = 'explore/TOGGLE_GRAPH',
- ToggleLogs = 'explore/TOGGLE_LOGS',
- ToggleTable = 'explore/TOGGLE_TABLE',
- UpdateDatasourceInstance = 'explore/UPDATE_DATASOURCE_INSTANCE',
ResetExplore = 'explore/RESET_EXPLORE',
- QueriesImported = 'explore/QueriesImported',
-}
-
-export interface AddQueryRowAction {
- type: ActionTypes.AddQueryRow;
- payload: {
- exploreId: ExploreId;
- index: number;
- query: DataQuery;
- };
-}
-
-export interface ChangeQueryAction {
- type: ActionTypes.ChangeQuery;
- payload: {
- exploreId: ExploreId;
- query: DataQuery;
- index: number;
- override: boolean;
- };
-}
-
-export interface ChangeSizeAction {
- type: ActionTypes.ChangeSize;
- payload: {
- exploreId: ExploreId;
- width: number;
- height: number;
- };
-}
-
-export interface ChangeTimeAction {
- type: ActionTypes.ChangeTime;
- payload: {
- exploreId: ExploreId;
- range: TimeRange;
- };
-}
-
-export interface ClearQueriesAction {
- type: ActionTypes.ClearQueries;
- payload: {
- exploreId: ExploreId;
- };
-}
-
-export interface HighlightLogsExpressionAction {
- type: ActionTypes.HighlightLogsExpression;
- payload: {
- exploreId: ExploreId;
- expressions: string[];
- };
-}
-
-export interface InitializeExploreAction {
- type: ActionTypes.InitializeExplore;
- payload: {
- exploreId: ExploreId;
- containerWidth: number;
- eventBridge: Emitter;
- exploreDatasources: DataSourceSelectItem[];
- queries: DataQuery[];
- range: RawTimeRange;
- };
}
export interface InitializeExploreSplitAction {
type: ActionTypes.InitializeExploreSplit;
-}
-
-export interface LoadDatasourceFailureAction {
- type: ActionTypes.LoadDatasourceFailure;
- payload: {
- exploreId: ExploreId;
- error: string;
- };
-}
-
-export interface LoadDatasourcePendingAction {
- type: ActionTypes.LoadDatasourcePending;
- payload: {
- exploreId: ExploreId;
- requestedDatasourceName: string;
- };
-}
-
-export interface LoadDatasourceMissingAction {
- type: ActionTypes.LoadDatasourceMissing;
- payload: {
- exploreId: ExploreId;
- };
-}
-
-export interface LoadDatasourceSuccessAction {
- type: ActionTypes.LoadDatasourceSuccess;
- payload: {
- exploreId: ExploreId;
- StartPage?: any;
- datasourceInstance: any;
- history: HistoryItem[];
- logsHighlighterExpressions?: any[];
- showingStartPage: boolean;
- supportsGraph: boolean;
- supportsLogs: boolean;
- supportsTable: boolean;
- };
-}
-
-export interface ModifyQueriesAction {
- type: ActionTypes.ModifyQueries;
- payload: {
- exploreId: ExploreId;
- modification: any;
- index: number;
- modifier: (queries: DataQuery[], modification: any) => DataQuery[];
- };
-}
-
-export interface QueryTransactionFailureAction {
- type: ActionTypes.QueryTransactionFailure;
- payload: {
- exploreId: ExploreId;
- queryTransactions: QueryTransaction[];
- };
-}
-
-export interface QueryTransactionStartAction {
- type: ActionTypes.QueryTransactionStart;
- payload: {
- exploreId: ExploreId;
- resultType: ResultType;
- rowIndex: number;
- transaction: QueryTransaction;
- };
-}
-
-export interface QueryTransactionSuccessAction {
- type: ActionTypes.QueryTransactionSuccess;
- payload: {
- exploreId: ExploreId;
- history: HistoryItem[];
- queryTransactions: QueryTransaction[];
- };
-}
-
-export interface RemoveQueryRowAction {
- type: ActionTypes.RemoveQueryRow;
- payload: {
- exploreId: ExploreId;
- index: number;
- };
-}
-
-export interface RunQueriesEmptyAction {
- type: ActionTypes.RunQueriesEmpty;
- payload: {
- exploreId: ExploreId;
- };
-}
-
-export interface ScanStartAction {
- type: ActionTypes.ScanStart;
- payload: {
- exploreId: ExploreId;
- scanner: RangeScanner;
- };
-}
-
-export interface ScanRangeAction {
- type: ActionTypes.ScanRange;
- payload: {
- exploreId: ExploreId;
- range: RawTimeRange;
- };
-}
-
-export interface ScanStopAction {
- type: ActionTypes.ScanStop;
- payload: {
- exploreId: ExploreId;
- };
-}
-
-export interface SetQueriesAction {
- type: ActionTypes.SetQueries;
- payload: {
- exploreId: ExploreId;
- queries: DataQuery[];
- };
+ payload: {};
}
export interface SplitCloseAction {
type: ActionTypes.SplitClose;
+ payload: {};
}
export interface SplitOpenAction {
@@ -245,80 +46,385 @@ export interface SplitOpenAction {
};
}
-export interface StateSaveAction {
- type: ActionTypes.StateSave;
-}
-
-export interface ToggleTableAction {
- type: ActionTypes.ToggleTable;
- payload: {
- exploreId: ExploreId;
- };
-}
-
-export interface ToggleGraphAction {
- type: ActionTypes.ToggleGraph;
- payload: {
- exploreId: ExploreId;
- };
-}
-
-export interface ToggleLogsAction {
- type: ActionTypes.ToggleLogs;
- payload: {
- exploreId: ExploreId;
- };
-}
-
-export interface UpdateDatasourceInstanceAction {
- type: ActionTypes.UpdateDatasourceInstance;
- payload: {
- exploreId: ExploreId;
- datasourceInstance: DataSourceApi;
- };
-}
-
export interface ResetExploreAction {
type: ActionTypes.ResetExplore;
payload: {};
}
-export interface QueriesImported {
- type: ActionTypes.QueriesImported;
- payload: {
- exploreId: ExploreId;
- queries: DataQuery[];
- };
+/** Lower order actions
+ *
+ */
+export interface AddQueryRowPayload {
+ exploreId: ExploreId;
+ index: number;
+ query: DataQuery;
}
-export type Action =
- | AddQueryRowAction
- | ChangeQueryAction
- | ChangeSizeAction
- | ChangeTimeAction
- | ClearQueriesAction
- | HighlightLogsExpressionAction
- | InitializeExploreAction
+export interface ChangeQueryPayload {
+ exploreId: ExploreId;
+ query: DataQuery;
+ index: number;
+ override: boolean;
+}
+
+export interface ChangeSizePayload {
+ exploreId: ExploreId;
+ width: number;
+ height: number;
+}
+
+export interface ChangeTimePayload {
+ exploreId: ExploreId;
+ range: TimeRange;
+}
+
+export interface ClearQueriesPayload {
+ exploreId: ExploreId;
+}
+
+export interface HighlightLogsExpressionPayload {
+ exploreId: ExploreId;
+ expressions: string[];
+}
+
+export interface InitializeExplorePayload {
+ exploreId: ExploreId;
+ containerWidth: number;
+ eventBridge: Emitter;
+ exploreDatasources: DataSourceSelectItem[];
+ queries: DataQuery[];
+ range: RawTimeRange;
+ ui: ExploreUIState;
+}
+
+export interface LoadDatasourceFailurePayload {
+ exploreId: ExploreId;
+ error: string;
+}
+
+export interface LoadDatasourceMissingPayload {
+ exploreId: ExploreId;
+}
+
+export interface LoadDatasourcePendingPayload {
+ exploreId: ExploreId;
+ requestedDatasourceName: string;
+}
+
+export interface LoadDatasourceSuccessPayload {
+ exploreId: ExploreId;
+ StartPage?: any;
+ datasourceInstance: any;
+ history: HistoryItem[];
+ logsHighlighterExpressions?: any[];
+ showingStartPage: boolean;
+ supportsGraph: boolean;
+ supportsLogs: boolean;
+ supportsTable: boolean;
+}
+
+export interface ModifyQueriesPayload {
+ exploreId: ExploreId;
+ modification: QueryFixAction;
+ index: number;
+ modifier: (query: DataQuery, modification: QueryFixAction) => DataQuery;
+}
+
+export interface QueryTransactionFailurePayload {
+ exploreId: ExploreId;
+ queryTransactions: QueryTransaction[];
+}
+
+export interface QueryTransactionStartPayload {
+ exploreId: ExploreId;
+ resultType: ResultType;
+ rowIndex: number;
+ transaction: QueryTransaction;
+}
+
+export interface QueryTransactionSuccessPayload {
+ exploreId: ExploreId;
+ history: HistoryItem[];
+ queryTransactions: QueryTransaction[];
+}
+
+export interface RemoveQueryRowPayload {
+ exploreId: ExploreId;
+ index: number;
+}
+
+export interface RunQueriesEmptyPayload {
+ exploreId: ExploreId;
+}
+
+export interface ScanStartPayload {
+ exploreId: ExploreId;
+ scanner: RangeScanner;
+}
+
+export interface ScanRangePayload {
+ exploreId: ExploreId;
+ range: RawTimeRange;
+}
+
+export interface ScanStopPayload {
+ exploreId: ExploreId;
+}
+
+export interface SetQueriesPayload {
+ exploreId: ExploreId;
+ queries: DataQuery[];
+}
+
+export interface SplitOpenPayload {
+ itemState: ExploreItemState;
+}
+
+export interface ToggleTablePayload {
+ exploreId: ExploreId;
+}
+
+export interface ToggleGraphPayload {
+ exploreId: ExploreId;
+}
+
+export interface ToggleLogsPayload {
+ exploreId: ExploreId;
+}
+
+export interface UpdateDatasourceInstancePayload {
+ exploreId: ExploreId;
+ datasourceInstance: DataSourceApi;
+}
+
+export interface QueriesImportedPayload {
+ exploreId: ExploreId;
+ queries: DataQuery[];
+}
+
+/**
+ * Adds a query row after the row with the given index.
+ */
+export const addQueryRowAction = actionCreatorFactory('explore/ADD_QUERY_ROW').create();
+
+/**
+ * Loads a new datasource identified by the given name.
+ */
+export const changeDatasourceAction = noPayloadActionCreatorFactory('explore/CHANGE_DATASOURCE').create();
+
+/**
+ * Query change handler for the query row with the given index.
+ * If `override` is reset the query modifications and run the queries. Use this to set queries via a link.
+ */
+export const changeQueryAction = actionCreatorFactory('explore/CHANGE_QUERY').create();
+
+/**
+ * Keep track of the Explore container size, in particular the width.
+ * The width will be used to calculate graph intervals (number of datapoints).
+ */
+export const changeSizeAction = actionCreatorFactory('explore/CHANGE_SIZE').create();
+
+/**
+ * Change the time range of Explore. Usually called from the Timepicker or a graph interaction.
+ */
+export const changeTimeAction = actionCreatorFactory('explore/CHANGE_TIME').create();
+
+/**
+ * Clear all queries and results.
+ */
+export const clearQueriesAction = actionCreatorFactory('explore/CLEAR_QUERIES').create();
+
+/**
+ * Highlight expressions in the log results
+ */
+export const highlightLogsExpressionAction = actionCreatorFactory(
+ 'explore/HIGHLIGHT_LOGS_EXPRESSION'
+).create();
+
+/**
+ * Initialize Explore state with state from the URL and the React component.
+ * Call this only on components for with the Explore state has not been initialized.
+ */
+export const initializeExploreAction = actionCreatorFactory(
+ 'explore/INITIALIZE_EXPLORE'
+).create();
+
+/**
+ * Initialize the wrapper split state
+ */
+export const initializeExploreSplitAction = noPayloadActionCreatorFactory('explore/INITIALIZE_EXPLORE_SPLIT').create();
+
+/**
+ * Display an error that happened during the selection of a datasource
+ */
+export const loadDatasourceFailureAction = actionCreatorFactory(
+ 'explore/LOAD_DATASOURCE_FAILURE'
+).create();
+
+/**
+ * Display an error when no datasources have been configured
+ */
+export const loadDatasourceMissingAction = actionCreatorFactory(
+ 'explore/LOAD_DATASOURCE_MISSING'
+).create();
+
+/**
+ * Start the async process of loading a datasource to display a loading indicator
+ */
+export const loadDatasourcePendingAction = actionCreatorFactory(
+ 'explore/LOAD_DATASOURCE_PENDING'
+).create();
+
+/**
+ * Datasource loading was successfully completed. The instance is stored in the state as well in case we need to
+ * run datasource-specific code. Existing queries are imported to the new datasource if an importer exists,
+ * e.g., Prometheus -> Loki queries.
+ */
+export const loadDatasourceSuccessAction = actionCreatorFactory(
+ 'explore/LOAD_DATASOURCE_SUCCESS'
+).create();
+
+/**
+ * Action to modify a query given a datasource-specific modifier action.
+ * @param exploreId Explore area
+ * @param modification Action object with a type, e.g., ADD_FILTER
+ * @param index Optional query row index. If omitted, the modification is applied to all query rows.
+ * @param modifier Function that executes the modification, typically `datasourceInstance.modifyQueries`.
+ */
+export const modifyQueriesAction = actionCreatorFactory('explore/MODIFY_QUERIES').create();
+
+/**
+ * Mark a query transaction as failed with an error extracted from the query response.
+ * The transaction will be marked as `done`.
+ */
+export const queryTransactionFailureAction = actionCreatorFactory(
+ 'explore/QUERY_TRANSACTION_FAILURE'
+).create();
+
+/**
+ * Start a query transaction for the given result type.
+ * @param exploreId Explore area
+ * @param transaction Query options and `done` status.
+ * @param resultType Associate the transaction with a result viewer, e.g., Graph
+ * @param rowIndex Index is used to associate latency for this transaction with a query row
+ */
+export const queryTransactionStartAction = actionCreatorFactory(
+ 'explore/QUERY_TRANSACTION_START'
+).create();
+
+/**
+ * Complete a query transaction, mark the transaction as `done` and store query state in URL.
+ * If the transaction was started by a scanner, it keeps on scanning for more results.
+ * Side-effect: the query is stored in localStorage.
+ * @param exploreId Explore area
+ * @param transactionId ID
+ * @param result Response from `datasourceInstance.query()`
+ * @param latency Duration between request and response
+ * @param queries Queries from all query rows
+ * @param datasourceId Origin datasource instance, used to discard results if current datasource is different
+ */
+export const queryTransactionSuccessAction = actionCreatorFactory(
+ 'explore/QUERY_TRANSACTION_SUCCESS'
+).create();
+
+/**
+ * Remove query row of the given index, as well as associated query results.
+ */
+export const removeQueryRowAction = actionCreatorFactory('explore/REMOVE_QUERY_ROW').create();
+export const runQueriesAction = noPayloadActionCreatorFactory('explore/RUN_QUERIES').create();
+export const runQueriesEmptyAction = actionCreatorFactory('explore/RUN_QUERIES_EMPTY').create();
+
+/**
+ * Start a scan for more results using the given scanner.
+ * @param exploreId Explore area
+ * @param scanner Function that a) returns a new time range and b) triggers a query run for the new range
+ */
+export const scanStartAction = actionCreatorFactory('explore/SCAN_START').create();
+export const scanRangeAction = actionCreatorFactory('explore/SCAN_RANGE').create();
+
+/**
+ * Stop any scanning for more results.
+ */
+export const scanStopAction = actionCreatorFactory('explore/SCAN_STOP').create();
+
+/**
+ * Reset queries to the given queries. Any modifications will be discarded.
+ * Use this action for clicks on query examples. Triggers a query run.
+ */
+export const setQueriesAction = actionCreatorFactory('explore/SET_QUERIES').create();
+
+/**
+ * Close the split view and save URL state.
+ */
+export const splitCloseAction = noPayloadActionCreatorFactory('explore/SPLIT_CLOSE').create();
+
+/**
+ * Open the split view and copy the left state to be the right state.
+ * The right state is automatically initialized.
+ * The copy keeps all query modifications but wipes the query results.
+ */
+export const splitOpenAction = actionCreatorFactory('explore/SPLIT_OPEN').create();
+export const stateSaveAction = noPayloadActionCreatorFactory('explore/STATE_SAVE').create();
+
+/**
+ * Expand/collapse the table result viewer. When collapsed, table queries won't be run.
+ */
+export const toggleTableAction = actionCreatorFactory('explore/TOGGLE_TABLE').create();
+
+/**
+ * Expand/collapse the graph result viewer. When collapsed, graph queries won't be run.
+ */
+export const toggleGraphAction = actionCreatorFactory('explore/TOGGLE_GRAPH').create();
+
+/**
+ * Expand/collapse the logs result viewer. When collapsed, log queries won't be run.
+ */
+export const toggleLogsAction = actionCreatorFactory('explore/TOGGLE_LOGS').create();
+
+/**
+ * Updates datasource instance before datasouce loading has started
+ */
+export const updateDatasourceInstanceAction = actionCreatorFactory(
+ 'explore/UPDATE_DATASOURCE_INSTANCE'
+).create();
+
+/**
+ * Resets state for explore.
+ */
+export const resetExploreAction = noPayloadActionCreatorFactory('explore/RESET_EXPLORE').create();
+export const queriesImportedAction = actionCreatorFactory('explore/QueriesImported').create();
+
+export type HigherOrderAction =
| InitializeExploreSplitAction
- | LoadDatasourceFailureAction
- | LoadDatasourceMissingAction
- | LoadDatasourcePendingAction
- | LoadDatasourceSuccessAction
- | ModifyQueriesAction
- | QueryTransactionFailureAction
- | QueryTransactionStartAction
- | QueryTransactionSuccessAction
- | RemoveQueryRowAction
- | RunQueriesEmptyAction
- | ScanRangeAction
- | ScanStartAction
- | ScanStopAction
- | SetQueriesAction
| SplitCloseAction
| SplitOpenAction
- | ToggleGraphAction
- | ToggleLogsAction
- | ToggleTableAction
- | UpdateDatasourceInstanceAction
| ResetExploreAction
- | QueriesImported;
+ | ActionOf;
+
+export type Action =
+ | ActionOf
+ | ActionOf
+ | ActionOf
+ | ActionOf
+ | ActionOf
+ | ActionOf
+ | ActionOf
+ | ActionOf
+ | ActionOf
+ | ActionOf
+ | ActionOf
+ | ActionOf
+ | ActionOf
+ | ActionOf
+ | ActionOf
+ | ActionOf
+ | ActionOf
+ | ActionOf
+ | ActionOf
+ | ActionOf
+ | ActionOf
+ | ActionOf
+ | ActionOf
+ | ActionOf
+ | ActionOf
+ | ActionOf;
diff --git a/public/app/features/explore/state/actions.ts b/public/app/features/explore/state/actions.ts
index 1a11b7fcac9..f6fa5c05d63 100644
--- a/public/app/features/explore/state/actions.ts
+++ b/public/app/features/explore/state/actions.ts
@@ -30,40 +30,54 @@ import {
DataQuery,
DataSourceSelectItem,
QueryHint,
+ QueryFixAction,
} from '@grafana/ui/src/types';
+import { ExploreId, ExploreUrlState, RangeScanner, ResultType, QueryOptions, ExploreUIState } from 'app/types/explore';
import {
- ExploreId,
- ExploreUrlState,
- RangeScanner,
- ResultType,
- QueryOptions,
- QueryTransaction,
-} from 'app/types/explore';
-
-import {
- Action as ThunkableAction,
- ActionTypes,
- AddQueryRowAction,
- ChangeSizeAction,
- HighlightLogsExpressionAction,
- LoadDatasourceFailureAction,
- LoadDatasourceMissingAction,
- LoadDatasourcePendingAction,
- LoadDatasourceSuccessAction,
- QueryTransactionStartAction,
- ScanStopAction,
- UpdateDatasourceInstanceAction,
- QueriesImported,
+ Action,
+ updateDatasourceInstanceAction,
+ changeQueryAction,
+ changeSizeAction,
+ ChangeSizePayload,
+ changeTimeAction,
+ scanStopAction,
+ clearQueriesAction,
+ initializeExploreAction,
+ loadDatasourceMissingAction,
+ loadDatasourceFailureAction,
+ loadDatasourcePendingAction,
+ queriesImportedAction,
+ LoadDatasourceSuccessPayload,
+ loadDatasourceSuccessAction,
+ modifyQueriesAction,
+ queryTransactionFailureAction,
+ queryTransactionStartAction,
+ queryTransactionSuccessAction,
+ scanRangeAction,
+ runQueriesEmptyAction,
+ scanStartAction,
+ setQueriesAction,
+ splitCloseAction,
+ splitOpenAction,
+ addQueryRowAction,
+ AddQueryRowPayload,
+ toggleGraphAction,
+ toggleLogsAction,
+ toggleTableAction,
+ ToggleGraphPayload,
+ ToggleLogsPayload,
+ ToggleTablePayload,
} from './actionTypes';
+import { ActionOf, ActionCreator } from 'app/core/redux/actionCreatorFactory';
-type ThunkResult = ThunkAction;
+type ThunkResult = ThunkAction;
-/**
- * Adds a query row after the row with the given index.
- */
-export function addQueryRow(exploreId: ExploreId, index: number): AddQueryRowAction {
+// /**
+// * Adds a query row after the row with the given index.
+// */
+export function addQueryRow(exploreId: ExploreId, index: number): ActionOf {
const query = generateEmptyQuery(index + 1);
- return { type: ActionTypes.AddQueryRow, payload: { exploreId, index, query } };
+ return addQueryRowAction({ exploreId, index, query });
}
/**
@@ -73,12 +87,20 @@ export function changeDatasource(exploreId: ExploreId, datasource: string): Thun
return async (dispatch, getState) => {
const newDataSourceInstance = await getDatasourceSrv().get(datasource);
const currentDataSourceInstance = getState().explore[exploreId].datasourceInstance;
- const modifiedQueries = getState().explore[exploreId].modifiedQueries;
+ const queries = getState().explore[exploreId].queries;
- await dispatch(importQueries(exploreId, modifiedQueries, currentDataSourceInstance, newDataSourceInstance));
+ await dispatch(importQueries(exploreId, queries, currentDataSourceInstance, newDataSourceInstance));
- dispatch(updateDatasourceInstance(exploreId, newDataSourceInstance));
- dispatch(loadDatasource(exploreId, newDataSourceInstance));
+ dispatch(updateDatasourceInstanceAction({ exploreId, datasourceInstance: newDataSourceInstance }));
+
+ try {
+ await dispatch(loadDatasource(exploreId, newDataSourceInstance));
+ } catch (error) {
+ console.error(error);
+ return;
+ }
+
+ dispatch(runQueries(exploreId));
};
}
@@ -98,7 +120,7 @@ export function changeQuery(
query = { ...generateEmptyQuery(index) };
}
- dispatch({ type: ActionTypes.ChangeQuery, payload: { exploreId, query, index, override } });
+ dispatch(changeQueryAction({ exploreId, query, index, override }));
if (override) {
dispatch(runQueries(exploreId));
}
@@ -112,8 +134,8 @@ export function changeQuery(
export function changeSize(
exploreId: ExploreId,
{ height, width }: { height: number; width: number }
-): ChangeSizeAction {
- return { type: ActionTypes.ChangeSize, payload: { exploreId, height, width } };
+): ActionOf {
+ return changeSizeAction({ exploreId, height, width });
}
/**
@@ -121,7 +143,7 @@ export function changeSize(
*/
export function changeTime(exploreId: ExploreId, range: TimeRange): ThunkResult {
return dispatch => {
- dispatch({ type: ActionTypes.ChangeTime, payload: { exploreId, range } });
+ dispatch(changeTimeAction({ exploreId, range }));
dispatch(runQueries(exploreId));
};
}
@@ -131,19 +153,12 @@ export function changeTime(exploreId: ExploreId, range: TimeRange): ThunkResult<
*/
export function clearQueries(exploreId: ExploreId): ThunkResult {
return dispatch => {
- dispatch(scanStop(exploreId));
- dispatch({ type: ActionTypes.ClearQueries, payload: { exploreId } });
+ dispatch(scanStopAction({ exploreId }));
+ dispatch(clearQueriesAction({ exploreId }));
dispatch(stateSave());
};
}
-/**
- * Highlight expressions in the log results
- */
-export function highlightLogsExpression(exploreId: ExploreId, expressions: string[]): HighlightLogsExpressionAction {
- return { type: ActionTypes.HighlightLogsExpression, payload: { exploreId, expressions } };
-}
-
/**
* Initialize Explore state with state from the URL and the React component.
* Call this only on components for with the Explore state has not been initialized.
@@ -154,7 +169,8 @@ export function initializeExplore(
queries: DataQuery[],
range: RawTimeRange,
containerWidth: number,
- eventBridge: Emitter
+ eventBridge: Emitter,
+ ui: ExploreUIState
): ThunkResult {
return async dispatch => {
const exploreDatasources: DataSourceSelectItem[] = getDatasourceSrv()
@@ -165,18 +181,17 @@ export function initializeExplore(
meta: ds.meta,
}));
- dispatch({
- type: ActionTypes.InitializeExplore,
- payload: {
+ dispatch(
+ initializeExploreAction({
exploreId,
containerWidth,
- datasourceName,
eventBridge,
exploreDatasources,
queries,
range,
- },
- });
+ ui,
+ })
+ );
if (exploreDatasources.length >= 1) {
let instance;
@@ -193,75 +208,27 @@ export function initializeExplore(
instance = await getDatasourceSrv().get();
}
- dispatch(updateDatasourceInstance(exploreId, instance));
- dispatch(loadDatasource(exploreId, instance));
+ dispatch(updateDatasourceInstanceAction({ exploreId, datasourceInstance: instance }));
+
+ try {
+ await dispatch(loadDatasource(exploreId, instance));
+ } catch (error) {
+ console.error(error);
+ return;
+ }
+ dispatch(runQueries(exploreId, true));
} else {
- dispatch(loadDatasourceMissing(exploreId));
+ dispatch(loadDatasourceMissingAction({ exploreId }));
}
};
}
-/**
- * Initialize the wrapper split state
- */
-export function initializeExploreSplit() {
- return async dispatch => {
- dispatch({ type: ActionTypes.InitializeExploreSplit });
- };
-}
-
-/**
- * Display an error that happened during the selection of a datasource
- */
-export const loadDatasourceFailure = (exploreId: ExploreId, error: string): LoadDatasourceFailureAction => ({
- type: ActionTypes.LoadDatasourceFailure,
- payload: {
- exploreId,
- error,
- },
-});
-
-/**
- * Display an error when no datasources have been configured
- */
-export const loadDatasourceMissing = (exploreId: ExploreId): LoadDatasourceMissingAction => ({
- type: ActionTypes.LoadDatasourceMissing,
- payload: { exploreId },
-});
-
-/**
- * Start the async process of loading a datasource to display a loading indicator
- */
-export const loadDatasourcePending = (
- exploreId: ExploreId,
- requestedDatasourceName: string
-): LoadDatasourcePendingAction => ({
- type: ActionTypes.LoadDatasourcePending,
- payload: {
- exploreId,
- requestedDatasourceName,
- },
-});
-
-export const queriesImported = (exploreId: ExploreId, queries: DataQuery[]): QueriesImported => {
- return {
- type: ActionTypes.QueriesImported,
- payload: {
- exploreId,
- queries,
- },
- };
-};
-
/**
* Datasource loading was successfully completed. The instance is stored in the state as well in case we need to
* run datasource-specific code. Existing queries are imported to the new datasource if an importer exists,
* e.g., Prometheus -> Loki queries.
*/
-export const loadDatasourceSuccess = (
- exploreId: ExploreId,
- instance: any,
-): LoadDatasourceSuccessAction => {
+export const loadDatasourceSuccess = (exploreId: ExploreId, instance: any): ActionOf => {
// Capabilities
const supportsGraph = instance.meta.metrics;
const supportsLogs = instance.meta.logs;
@@ -274,37 +241,18 @@ export const loadDatasourceSuccess = (
// Save last-used datasource
store.set(LAST_USED_DATASOURCE_KEY, instance.name);
- return {
- type: ActionTypes.LoadDatasourceSuccess,
- payload: {
- exploreId,
- StartPage,
- datasourceInstance: instance,
- history,
- showingStartPage: Boolean(StartPage),
- supportsGraph,
- supportsLogs,
- supportsTable,
- },
- };
+ return loadDatasourceSuccessAction({
+ exploreId,
+ StartPage,
+ datasourceInstance: instance,
+ history,
+ showingStartPage: Boolean(StartPage),
+ supportsGraph,
+ supportsLogs,
+ supportsTable,
+ });
};
-/**
- * Updates datasource instance before datasouce loading has started
- */
-export function updateDatasourceInstance(
- exploreId: ExploreId,
- instance: DataSourceApi
-): UpdateDatasourceInstanceAction {
- return {
- type: ActionTypes.UpdateDatasourceInstance,
- payload: {
- exploreId,
- datasourceInstance: instance,
- },
- };
-}
-
export function importQueries(
exploreId: ExploreId,
queries: DataQuery[],
@@ -326,11 +274,11 @@ export function importQueries(
}
const nextQueries = importedQueries.map((q, i) => ({
- ...importedQueries[i],
+ ...q,
...generateEmptyQuery(i),
}));
- dispatch(queriesImported(exploreId, nextQueries));
+ dispatch(queriesImportedAction({ exploreId, queries: nextQueries }));
};
}
@@ -342,9 +290,9 @@ export function loadDatasource(exploreId: ExploreId, instance: DataSourceApi): T
const datasourceName = instance.name;
// Keep ID to track selection
- dispatch(loadDatasourcePending(exploreId, datasourceName));
-
+ dispatch(loadDatasourcePendingAction({ exploreId, requestedDatasourceName: datasourceName }));
let datasourceError = null;
+
try {
const testResult = await instance.testDatasource();
datasourceError = testResult.status === 'success' ? null : testResult.message;
@@ -353,8 +301,8 @@ export function loadDatasource(exploreId: ExploreId, instance: DataSourceApi): T
}
if (datasourceError) {
- dispatch(loadDatasourceFailure(exploreId, datasourceError));
- return;
+ dispatch(loadDatasourceFailureAction({ exploreId, error: datasourceError }));
+ return Promise.reject(`${datasourceName} loading failed`);
}
if (datasourceName !== getState().explore[exploreId].requestedDatasourceName) {
@@ -372,7 +320,7 @@ export function loadDatasource(exploreId: ExploreId, instance: DataSourceApi): T
}
dispatch(loadDatasourceSuccess(exploreId, instance));
- dispatch(runQueries(exploreId));
+ return Promise.resolve();
};
}
@@ -385,12 +333,12 @@ export function loadDatasource(exploreId: ExploreId, instance: DataSourceApi): T
*/
export function modifyQueries(
exploreId: ExploreId,
- modification: any,
+ modification: QueryFixAction,
index: number,
modifier: any
): ThunkResult {
return dispatch => {
- dispatch({ type: ActionTypes.ModifyQueries, payload: { exploreId, modification, index, modifier } });
+ dispatch(modifyQueriesAction({ exploreId, modification, index, modifier }));
if (!modification.preventSubmit) {
dispatch(runQueries(exploreId));
}
@@ -455,29 +403,10 @@ export function queryTransactionFailure(
return qt;
});
- dispatch({
- type: ActionTypes.QueryTransactionFailure,
- payload: { exploreId, queryTransactions: nextQueryTransactions },
- });
+ dispatch(queryTransactionFailureAction({ exploreId, queryTransactions: nextQueryTransactions }));
};
}
-/**
- * Start a query transaction for the given result type.
- * @param exploreId Explore area
- * @param transaction Query options and `done` status.
- * @param resultType Associate the transaction with a result viewer, e.g., Graph
- * @param rowIndex Index is used to associate latency for this transaction with a query row
- */
-export function queryTransactionStart(
- exploreId: ExploreId,
- transaction: QueryTransaction,
- resultType: ResultType,
- rowIndex: number
-): QueryTransactionStartAction {
- return { type: ActionTypes.QueryTransactionStart, payload: { exploreId, resultType, rowIndex, transaction } };
-}
-
/**
* Complete a query transaction, mark the transaction as `done` and store query state in URL.
* If the transaction was started by a scanner, it keeps on scanning for more results.
@@ -534,14 +463,13 @@ export function queryTransactionSuccess(
// Side-effect: Saving history in localstorage
const nextHistory = updateHistory(history, datasourceId, queries);
- dispatch({
- type: ActionTypes.QueryTransactionSuccess,
- payload: {
+ dispatch(
+ queryTransactionSuccessAction({
exploreId,
history: nextHistory,
queryTransactions: nextQueryTransactions,
- },
- });
+ })
+ );
// Keep scanning for results if this was the last scanning transaction
if (scanning) {
@@ -549,34 +477,24 @@ export function queryTransactionSuccess(
const other = nextQueryTransactions.find(qt => qt.scanning && !qt.done);
if (!other) {
const range = scanner();
- dispatch({ type: ActionTypes.ScanRange, payload: { exploreId, range } });
+ dispatch(scanRangeAction({ exploreId, range }));
}
} else {
// We can stop scanning if we have a result
- dispatch(scanStop(exploreId));
+ dispatch(scanStopAction({ exploreId }));
}
}
};
}
-/**
- * Remove query row of the given index, as well as associated query results.
- */
-export function removeQueryRow(exploreId: ExploreId, index: number): ThunkResult {
- return dispatch => {
- dispatch({ type: ActionTypes.RemoveQueryRow, payload: { exploreId, index } });
- dispatch(runQueries(exploreId));
- };
-}
-
/**
* Main action to run queries and dispatches sub-actions based on which result viewers are active
*/
-export function runQueries(exploreId: ExploreId) {
+export function runQueries(exploreId: ExploreId, ignoreUIState = false) {
return (dispatch, getState) => {
const {
datasourceInstance,
- modifiedQueries,
+ queries,
showingLogs,
showingGraph,
showingTable,
@@ -585,8 +503,8 @@ export function runQueries(exploreId: ExploreId) {
supportsTable,
} = getState().explore[exploreId];
- if (!hasNonEmptyQuery(modifiedQueries)) {
- dispatch({ type: ActionTypes.RunQueriesEmpty, payload: { exploreId } });
+ if (!hasNonEmptyQuery(queries)) {
+ dispatch(runQueriesEmptyAction({ exploreId }));
dispatch(stateSave()); // Remember to saves to state and update location
return;
}
@@ -596,7 +514,7 @@ export function runQueries(exploreId: ExploreId) {
const interval = datasourceInstance.interval;
// Keep table queries first since they need to return quickly
- if (showingTable && supportsTable) {
+ if ((ignoreUIState || showingTable) && supportsTable) {
dispatch(
runQueriesForType(
exploreId,
@@ -611,7 +529,7 @@ export function runQueries(exploreId: ExploreId) {
)
);
}
- if (showingGraph && supportsGraph) {
+ if ((ignoreUIState || showingGraph) && supportsGraph) {
dispatch(
runQueriesForType(
exploreId,
@@ -625,9 +543,10 @@ export function runQueries(exploreId: ExploreId) {
)
);
}
- if (showingLogs && supportsLogs) {
+ if ((ignoreUIState || showingLogs) && supportsLogs) {
dispatch(runQueriesForType(exploreId, 'Logs', { interval, format: 'logs' }));
}
+
dispatch(stateSave());
};
}
@@ -646,14 +565,7 @@ function runQueriesForType(
resultGetter?: any
) {
return async (dispatch, getState) => {
- const {
- datasourceInstance,
- eventBridge,
- modifiedQueries: queries,
- queryIntervals,
- range,
- scanning,
- } = getState().explore[exploreId];
+ const { datasourceInstance, eventBridge, queries, queryIntervals, range, scanning } = getState().explore[exploreId];
const datasourceId = datasourceInstance.meta.id;
// Run all queries concurrently
@@ -667,7 +579,7 @@ function runQueriesForType(
queryIntervals,
scanning
);
- dispatch(queryTransactionStart(exploreId, transaction, resultType, rowIndex));
+ dispatch(queryTransactionStartAction({ exploreId, resultType, rowIndex, transaction }));
try {
const now = Date.now();
const res = await datasourceInstance.query(transaction.options);
@@ -691,21 +603,14 @@ function runQueriesForType(
export function scanStart(exploreId: ExploreId, scanner: RangeScanner): ThunkResult {
return dispatch => {
// Register the scanner
- dispatch({ type: ActionTypes.ScanStart, payload: { exploreId, scanner } });
+ dispatch(scanStartAction({ exploreId, scanner }));
// Scanning must trigger query run, and return the new range
const range = scanner();
// Set the new range to be displayed
- dispatch({ type: ActionTypes.ScanRange, payload: { exploreId, range } });
+ dispatch(scanRangeAction({ exploreId, range }));
};
}
-/**
- * Stop any scanning for more results.
- */
-export function scanStop(exploreId: ExploreId): ScanStopAction {
- return { type: ActionTypes.ScanStop, payload: { exploreId } };
-}
-
/**
* Reset queries to the given queries. Any modifications will be discarded.
* Use this action for clicks on query examples. Triggers a query run.
@@ -714,13 +619,7 @@ export function setQueries(exploreId: ExploreId, rawQueries: DataQuery[]): Thunk
return dispatch => {
// Inject react keys into query objects
const queries = rawQueries.map(q => ({ ...q, ...generateEmptyQuery() }));
- dispatch({
- type: ActionTypes.SetQueries,
- payload: {
- exploreId,
- queries,
- },
- });
+ dispatch(setQueriesAction({ exploreId, queries }));
dispatch(runQueries(exploreId));
};
}
@@ -730,7 +629,7 @@ export function setQueries(exploreId: ExploreId, rawQueries: DataQuery[]): Thunk
*/
export function splitClose(): ThunkResult {
return dispatch => {
- dispatch({ type: ActionTypes.SplitClose });
+ dispatch(splitCloseAction());
dispatch(stateSave());
};
}
@@ -747,9 +646,9 @@ export function splitOpen(): ThunkResult {
const itemState = {
...leftState,
queryTransactions: [],
- initialQueries: leftState.modifiedQueries.slice(),
+ queries: leftState.queries.slice(),
};
- dispatch({ type: ActionTypes.SplitOpen, payload: { itemState } });
+ dispatch(splitOpenAction({ itemState }));
dispatch(stateSave());
};
}
@@ -764,63 +663,74 @@ export function stateSave() {
const urlStates: { [index: string]: string } = {};
const leftUrlState: ExploreUrlState = {
datasource: left.datasourceInstance.name,
- queries: left.modifiedQueries.map(clearQueryKeys),
+ queries: left.queries.map(clearQueryKeys),
range: left.range,
+ ui: {
+ showingGraph: left.showingGraph,
+ showingLogs: left.showingLogs,
+ showingTable: left.showingTable,
+ },
};
urlStates.left = serializeStateToUrlParam(leftUrlState, true);
if (split) {
const rightUrlState: ExploreUrlState = {
datasource: right.datasourceInstance.name,
- queries: right.modifiedQueries.map(clearQueryKeys),
+ queries: right.queries.map(clearQueryKeys),
range: right.range,
+ ui: { showingGraph: right.showingGraph, showingLogs: right.showingLogs, showingTable: right.showingTable },
};
+
urlStates.right = serializeStateToUrlParam(rightUrlState, true);
}
+
dispatch(updateLocation({ query: urlStates }));
};
}
/**
- * Expand/collapse the graph result viewer. When collapsed, graph queries won't be run.
+ * Creates action to collapse graph/logs/table panel. When panel is collapsed,
+ * queries won't be run
*/
-export function toggleGraph(exploreId: ExploreId): ThunkResult {
+const togglePanelActionCreator = (
+ actionCreator:
+ | ActionCreator
+ | ActionCreator
+ | ActionCreator
+) => (exploreId: ExploreId) => {
return (dispatch, getState) => {
- dispatch({ type: ActionTypes.ToggleGraph, payload: { exploreId } });
- if (getState().explore[exploreId].showingGraph) {
+ let shouldRunQueries;
+ dispatch(actionCreator({ exploreId }));
+ dispatch(stateSave());
+
+ switch (actionCreator.type) {
+ case toggleGraphAction.type:
+ shouldRunQueries = getState().explore[exploreId].showingGraph;
+ break;
+ case toggleLogsAction.type:
+ shouldRunQueries = getState().explore[exploreId].showingLogs;
+ break;
+ case toggleTableAction.type:
+ shouldRunQueries = getState().explore[exploreId].showingTable;
+ break;
+ }
+
+ if (shouldRunQueries) {
dispatch(runQueries(exploreId));
}
};
-}
+};
+
+/**
+ * Expand/collapse the graph result viewer. When collapsed, graph queries won't be run.
+ */
+export const toggleGraph = togglePanelActionCreator(toggleGraphAction);
/**
* Expand/collapse the logs result viewer. When collapsed, log queries won't be run.
*/
-export function toggleLogs(exploreId: ExploreId): ThunkResult {
- return (dispatch, getState) => {
- dispatch({ type: ActionTypes.ToggleLogs, payload: { exploreId } });
- if (getState().explore[exploreId].showingLogs) {
- dispatch(runQueries(exploreId));
- }
- };
-}
+export const toggleLogs = togglePanelActionCreator(toggleLogsAction);
/**
* Expand/collapse the table result viewer. When collapsed, table queries won't be run.
*/
-export function toggleTable(exploreId: ExploreId): ThunkResult {
- return (dispatch, getState) => {
- dispatch({ type: ActionTypes.ToggleTable, payload: { exploreId } });
- if (getState().explore[exploreId].showingTable) {
- dispatch(runQueries(exploreId));
- }
- };
-}
-
-/**
- * Resets state for explore.
- */
-export function resetExplore(): ThunkResult {
- return dispatch => {
- dispatch({ type: ActionTypes.ResetExplore, payload: {} });
- };
-}
+export const toggleTable = togglePanelActionCreator(toggleTableAction);
diff --git a/public/app/features/explore/state/reducers.test.ts b/public/app/features/explore/state/reducers.test.ts
index 8227a947c5b..44079313c04 100644
--- a/public/app/features/explore/state/reducers.test.ts
+++ b/public/app/features/explore/state/reducers.test.ts
@@ -1,42 +1,47 @@
-import { Action, ActionTypes } from './actionTypes';
import { itemReducer, makeExploreItemState } from './reducers';
-import { ExploreId } from 'app/types/explore';
+import { ExploreId, ExploreItemState } from 'app/types/explore';
+import { reducerTester } from 'test/core/redux/reducerTester';
+import { scanStartAction, scanStopAction } from './actionTypes';
+import { Reducer } from 'redux';
+import { ActionOf } from 'app/core/redux/actionCreatorFactory';
describe('Explore item reducer', () => {
describe('scanning', () => {
test('should start scanning', () => {
- let state = makeExploreItemState();
- const action: Action = {
- type: ActionTypes.ScanStart,
- payload: {
- exploreId: ExploreId.left,
- scanner: jest.fn(),
- },
+ const scanner = jest.fn();
+ const initalState = {
+ ...makeExploreItemState(),
+ scanning: false,
+ scanner: undefined,
};
- state = itemReducer(state, action);
- expect(state.scanning).toBeTruthy();
- expect(state.scanner).toBe(action.payload.scanner);
+
+ reducerTester()
+ .givenReducer(itemReducer as Reducer>, initalState)
+ .whenActionIsDispatched(scanStartAction({ exploreId: ExploreId.left, scanner }))
+ .thenStateShouldEqual({
+ ...makeExploreItemState(),
+ scanning: true,
+ scanner,
+ });
});
test('should stop scanning', () => {
- let state = makeExploreItemState();
- const start: Action = {
- type: ActionTypes.ScanStart,
- payload: {
- exploreId: ExploreId.left,
- scanner: jest.fn(),
- },
+ const scanner = jest.fn();
+ const initalState = {
+ ...makeExploreItemState(),
+ scanning: true,
+ scanner,
+ scanRange: {},
};
- state = itemReducer(state, start);
- expect(state.scanning).toBeTruthy();
- const action: Action = {
- type: ActionTypes.ScanStop,
- payload: {
- exploreId: ExploreId.left,
- },
- };
- state = itemReducer(state, action);
- expect(state.scanning).toBeFalsy();
- expect(state.scanner).toBeUndefined();
+
+ reducerTester()
+ .givenReducer(itemReducer as Reducer>, initalState)
+ .whenActionIsDispatched(scanStopAction({ exploreId: ExploreId.left }))
+ .thenStateShouldEqual({
+ ...makeExploreItemState(),
+ scanning: false,
+ scanner: undefined,
+ scanRange: undefined,
+ });
});
});
});
diff --git a/public/app/features/explore/state/reducers.ts b/public/app/features/explore/state/reducers.ts
index eb67beee3b3..76fc7d5de32 100644
--- a/public/app/features/explore/state/reducers.ts
+++ b/public/app/features/explore/state/reducers.ts
@@ -3,11 +3,41 @@ import {
generateEmptyQuery,
getIntervals,
ensureQueries,
+ getQueryKeys,
} from 'app/core/utils/explore';
import { ExploreItemState, ExploreState, QueryTransaction } from 'app/types/explore';
import { DataQuery } from '@grafana/ui/src/types';
-import { Action, ActionTypes } from './actionTypes';
+import { HigherOrderAction, ActionTypes } from './actionTypes';
+import { reducerFactory } from 'app/core/redux';
+import {
+ addQueryRowAction,
+ changeQueryAction,
+ changeSizeAction,
+ changeTimeAction,
+ clearQueriesAction,
+ highlightLogsExpressionAction,
+ initializeExploreAction,
+ updateDatasourceInstanceAction,
+ loadDatasourceFailureAction,
+ loadDatasourceMissingAction,
+ loadDatasourcePendingAction,
+ loadDatasourceSuccessAction,
+ modifyQueriesAction,
+ queryTransactionFailureAction,
+ queryTransactionStartAction,
+ queryTransactionSuccessAction,
+ removeQueryRowAction,
+ runQueriesEmptyAction,
+ scanRangeAction,
+ scanStartAction,
+ scanStopAction,
+ setQueriesAction,
+ toggleGraphAction,
+ toggleLogsAction,
+ toggleTableAction,
+ queriesImportedAction,
+} from './actionTypes';
export const DEFAULT_RANGE = {
from: 'now-6h',
@@ -30,9 +60,8 @@ export const makeExploreItemState = (): ExploreItemState => ({
datasourceMissing: false,
exploreDatasources: [],
history: [],
- initialQueries: [],
+ queries: [],
initialized: false,
- modifiedQueries: [],
queryTransactions: [],
queryIntervals: { interval: '15s', intervalMs: DEFAULT_GRAPH_INTERVAL },
range: DEFAULT_RANGE,
@@ -44,6 +73,7 @@ export const makeExploreItemState = (): ExploreItemState => ({
supportsGraph: null,
supportsLogs: null,
supportsTable: null,
+ queryKeys: [],
});
/**
@@ -58,21 +88,15 @@ export const initialExploreState: ExploreState = {
/**
* Reducer for an Explore area, to be used by the global Explore reducer.
*/
-export const itemReducer = (state, action: Action): ExploreItemState => {
- switch (action.type) {
- case ActionTypes.AddQueryRow: {
- const { initialQueries, modifiedQueries, queryTransactions } = state;
+export const itemReducer = reducerFactory({} as ExploreItemState)
+ .addMapper({
+ filter: addQueryRowAction,
+ mapper: (state, action): ExploreItemState => {
+ const { queries, queryTransactions } = state;
const { index, query } = action.payload;
- // Add new query row after given index, keep modifications of existing rows
- const nextModifiedQueries = [
- ...modifiedQueries.slice(0, index + 1),
- { ...query },
- ...initialQueries.slice(index + 1),
- ];
-
- // Add to initialQueries, which will cause a new row to be rendered
- const nextQueries = [...initialQueries.slice(0, index + 1), { ...query }, ...initialQueries.slice(index + 1)];
+ // Add to queries, which will cause a new row to be rendered
+ const nextQueries = [...queries.slice(0, index + 1), { ...query }, ...queries.slice(index + 1)];
// Ongoing transactions need to update their row indices
const nextQueryTransactions = queryTransactions.map(qt => {
@@ -87,48 +111,38 @@ export const itemReducer = (state, action: Action): ExploreItemState => {
return {
...state,
- initialQueries: nextQueries,
+ queries: nextQueries,
logsHighlighterExpressions: undefined,
- modifiedQueries: nextModifiedQueries,
queryTransactions: nextQueryTransactions,
+ queryKeys: getQueryKeys(nextQueries, state.datasourceInstance),
};
- }
-
- case ActionTypes.ChangeQuery: {
- const { initialQueries, queryTransactions } = state;
- let { modifiedQueries } = state;
- const { query, index, override } = action.payload;
-
- // Fast path: only change modifiedQueries to not trigger an update
- modifiedQueries[index] = query;
- if (!override) {
- return {
- ...state,
- modifiedQueries,
- };
- }
+ },
+ })
+ .addMapper({
+ filter: changeQueryAction,
+ mapper: (state, action): ExploreItemState => {
+ const { queries, queryTransactions } = state;
+ const { query, index } = action.payload;
// Override path: queries are completely reset
- const nextQuery: DataQuery = {
- ...query,
- ...generateEmptyQuery(index),
- };
- const nextQueries = [...initialQueries];
+ const nextQuery: DataQuery = { ...query, ...generateEmptyQuery(index) };
+ const nextQueries = [...queries];
nextQueries[index] = nextQuery;
- modifiedQueries = [...nextQueries];
// Discard ongoing transaction related to row query
const nextQueryTransactions = queryTransactions.filter(qt => qt.rowIndex !== index);
return {
...state,
- initialQueries: nextQueries,
- modifiedQueries: nextQueries.slice(),
+ queries: nextQueries,
queryTransactions: nextQueryTransactions,
+ queryKeys: getQueryKeys(nextQueries, state.datasourceInstance),
};
- }
-
- case ActionTypes.ChangeSize: {
+ },
+ })
+ .addMapper({
+ filter: changeSizeAction,
+ mapper: (state, action): ExploreItemState => {
const { range, datasourceInstance } = state;
let interval = '1s';
if (datasourceInstance && datasourceInstance.interval) {
@@ -137,67 +151,79 @@ export const itemReducer = (state, action: Action): ExploreItemState => {
const containerWidth = action.payload.width;
const queryIntervals = getIntervals(range, interval, containerWidth);
return { ...state, containerWidth, queryIntervals };
- }
-
- case ActionTypes.ChangeTime: {
- return {
- ...state,
- range: action.payload.range,
- };
- }
-
- case ActionTypes.ClearQueries: {
+ },
+ })
+ .addMapper({
+ filter: changeTimeAction,
+ mapper: (state, action): ExploreItemState => {
+ return { ...state, range: action.payload.range };
+ },
+ })
+ .addMapper({
+ filter: clearQueriesAction,
+ mapper: (state): ExploreItemState => {
const queries = ensureQueries();
return {
...state,
- initialQueries: queries.slice(),
- modifiedQueries: queries.slice(),
+ queries: queries.slice(),
queryTransactions: [],
showingStartPage: Boolean(state.StartPage),
+ queryKeys: getQueryKeys(queries, state.datasourceInstance),
};
- }
-
- case ActionTypes.HighlightLogsExpression: {
+ },
+ })
+ .addMapper({
+ filter: highlightLogsExpressionAction,
+ mapper: (state, action): ExploreItemState => {
const { expressions } = action.payload;
return { ...state, logsHighlighterExpressions: expressions };
- }
-
- case ActionTypes.InitializeExplore: {
- const { containerWidth, eventBridge, exploreDatasources, queries, range } = action.payload;
+ },
+ })
+ .addMapper({
+ filter: initializeExploreAction,
+ mapper: (state, action): ExploreItemState => {
+ const { containerWidth, eventBridge, exploreDatasources, queries, range, ui } = action.payload;
return {
...state,
containerWidth,
eventBridge,
exploreDatasources,
range,
- initialQueries: queries,
+ queries,
initialized: true,
- modifiedQueries: queries.slice(),
+ queryKeys: getQueryKeys(queries, state.datasourceInstance),
+ ...ui,
};
- }
-
- case ActionTypes.UpdateDatasourceInstance: {
+ },
+ })
+ .addMapper({
+ filter: updateDatasourceInstanceAction,
+ mapper: (state, action): ExploreItemState => {
const { datasourceInstance } = action.payload;
- return {
- ...state,
- datasourceInstance,
- datasourceName: datasourceInstance.name,
- };
- }
-
- case ActionTypes.LoadDatasourceFailure: {
+ return { ...state, datasourceInstance, queryKeys: getQueryKeys(state.queries, datasourceInstance) };
+ },
+ })
+ .addMapper({
+ filter: loadDatasourceFailureAction,
+ mapper: (state, action): ExploreItemState => {
return { ...state, datasourceError: action.payload.error, datasourceLoading: false };
- }
-
- case ActionTypes.LoadDatasourceMissing: {
+ },
+ })
+ .addMapper({
+ filter: loadDatasourceMissingAction,
+ mapper: (state): ExploreItemState => {
return { ...state, datasourceMissing: true, datasourceLoading: false };
- }
-
- case ActionTypes.LoadDatasourcePending: {
+ },
+ })
+ .addMapper({
+ filter: loadDatasourcePendingAction,
+ mapper: (state, action): ExploreItemState => {
return { ...state, datasourceLoading: true, requestedDatasourceName: action.payload.requestedDatasourceName };
- }
-
- case ActionTypes.LoadDatasourceSuccess: {
+ },
+ })
+ .addMapper({
+ filter: loadDatasourceSuccessAction,
+ mapper: (state, action): ExploreItemState => {
const { containerWidth, range } = state;
const {
StartPage,
@@ -226,32 +252,29 @@ export const itemReducer = (state, action: Action): ExploreItemState => {
logsHighlighterExpressions: undefined,
queryTransactions: [],
};
- }
-
- case ActionTypes.ModifyQueries: {
- const { initialQueries, modifiedQueries, queryTransactions } = state;
- const { modification, index, modifier } = action.payload as any;
+ },
+ })
+ .addMapper({
+ filter: modifyQueriesAction,
+ mapper: (state, action): ExploreItemState => {
+ const { queries, queryTransactions } = state;
+ const { modification, index, modifier } = action.payload;
let nextQueries: DataQuery[];
let nextQueryTransactions;
if (index === undefined) {
// Modify all queries
- nextQueries = initialQueries.map((query, i) => ({
- ...modifier(modifiedQueries[i], modification),
+ nextQueries = queries.map((query, i) => ({
+ ...modifier({ ...query }, modification),
...generateEmptyQuery(i),
}));
// Discard all ongoing transactions
nextQueryTransactions = [];
} else {
// Modify query only at index
- nextQueries = initialQueries.map((query, i) => {
+ nextQueries = queries.map((query, i) => {
// Synchronize all queries with local query cache to ensure consistency
// TODO still needed?
- return i === index
- ? {
- ...modifier(modifiedQueries[i], modification),
- ...generateEmptyQuery(i),
- }
- : query;
+ return i === index ? { ...modifier({ ...query }, modification), ...generateEmptyQuery(i) } : query;
});
nextQueryTransactions = queryTransactions
// Consume the hint corresponding to the action
@@ -266,22 +289,22 @@ export const itemReducer = (state, action: Action): ExploreItemState => {
}
return {
...state,
- initialQueries: nextQueries,
- modifiedQueries: nextQueries.slice(),
+ queries: nextQueries,
+ queryKeys: getQueryKeys(nextQueries, state.datasourceInstance),
queryTransactions: nextQueryTransactions,
};
- }
-
- case ActionTypes.QueryTransactionFailure: {
+ },
+ })
+ .addMapper({
+ filter: queryTransactionFailureAction,
+ mapper: (state, action): ExploreItemState => {
const { queryTransactions } = action.payload;
- return {
- ...state,
- queryTransactions,
- showingStartPage: false,
- };
- }
-
- case ActionTypes.QueryTransactionStart: {
+ return { ...state, queryTransactions, showingStartPage: false };
+ },
+ })
+ .addMapper({
+ filter: queryTransactionStartAction,
+ mapper: (state, action): ExploreItemState => {
const { queryTransactions } = state;
const { resultType, rowIndex, transaction } = action.payload;
// Discarding existing transactions of same type
@@ -292,14 +315,12 @@ export const itemReducer = (state, action: Action): ExploreItemState => {
// Append new transaction
const nextQueryTransactions: QueryTransaction[] = [...remainingTransactions, transaction];
- return {
- ...state,
- queryTransactions: nextQueryTransactions,
- showingStartPage: false,
- };
- }
-
- case ActionTypes.QueryTransactionSuccess: {
+ return { ...state, queryTransactions: nextQueryTransactions, showingStartPage: false };
+ },
+ })
+ .addMapper({
+ filter: queryTransactionSuccessAction,
+ mapper: (state, action): ExploreItemState => {
const { datasourceInstance, queryIntervals } = state;
const { history, queryTransactions } = action.payload;
const results = calculateResultsFromQueryTransactions(
@@ -308,30 +329,24 @@ export const itemReducer = (state, action: Action): ExploreItemState => {
queryIntervals.intervalMs
);
- return {
- ...state,
- ...results,
- history,
- queryTransactions,
- showingStartPage: false,
- };
- }
-
- case ActionTypes.RemoveQueryRow: {
- const { datasourceInstance, initialQueries, queryIntervals, queryTransactions } = state;
- let { modifiedQueries } = state;
+ return { ...state, ...results, history, queryTransactions, showingStartPage: false };
+ },
+ })
+ .addMapper({
+ filter: removeQueryRowAction,
+ mapper: (state, action): ExploreItemState => {
+ const { datasourceInstance, queries, queryIntervals, queryTransactions, queryKeys } = state;
const { index } = action.payload;
- modifiedQueries = [...modifiedQueries.slice(0, index), ...modifiedQueries.slice(index + 1)];
-
- if (initialQueries.length <= 1) {
+ if (queries.length <= 1) {
return state;
}
- const nextQueries = [...initialQueries.slice(0, index), ...initialQueries.slice(index + 1)];
+ const nextQueries = [...queries.slice(0, index), ...queries.slice(index + 1)];
+ const nextQueryKeys = [...queryKeys.slice(0, index), ...queryKeys.slice(index + 1)];
// Discard transactions related to row query
- const nextQueryTransactions = queryTransactions.filter(qt => qt.rowIndex !== index);
+ const nextQueryTransactions = queryTransactions.filter(qt => nextQueries.some(nq => nq.key === qt.query.key));
const results = calculateResultsFromQueryTransactions(
nextQueryTransactions,
datasourceInstance,
@@ -341,26 +356,34 @@ export const itemReducer = (state, action: Action): ExploreItemState => {
return {
...state,
...results,
- initialQueries: nextQueries,
+ queries: nextQueries,
logsHighlighterExpressions: undefined,
- modifiedQueries: nextQueries.slice(),
queryTransactions: nextQueryTransactions,
+ queryKeys: nextQueryKeys,
};
- }
-
- case ActionTypes.RunQueriesEmpty: {
+ },
+ })
+ .addMapper({
+ filter: runQueriesEmptyAction,
+ mapper: (state): ExploreItemState => {
return { ...state, queryTransactions: [] };
- }
-
- case ActionTypes.ScanRange: {
+ },
+ })
+ .addMapper({
+ filter: scanRangeAction,
+ mapper: (state, action): ExploreItemState => {
return { ...state, scanRange: action.payload.range };
- }
-
- case ActionTypes.ScanStart: {
+ },
+ })
+ .addMapper({
+ filter: scanStartAction,
+ mapper: (state, action): ExploreItemState => {
return { ...state, scanning: true, scanner: action.payload.scanner };
- }
-
- case ActionTypes.ScanStop: {
+ },
+ })
+ .addMapper({
+ filter: scanStopAction,
+ mapper: (state): ExploreItemState => {
const { queryTransactions } = state;
const nextQueryTransactions = queryTransactions.filter(qt => qt.scanning && !qt.done);
return {
@@ -370,14 +393,22 @@ export const itemReducer = (state, action: Action): ExploreItemState => {
scanRange: undefined,
scanner: undefined,
};
- }
-
- case ActionTypes.SetQueries: {
+ },
+ })
+ .addMapper({
+ filter: setQueriesAction,
+ mapper: (state, action): ExploreItemState => {
const { queries } = action.payload;
- return { ...state, initialQueries: queries.slice(), modifiedQueries: queries.slice() };
- }
-
- case ActionTypes.ToggleGraph: {
+ return {
+ ...state,
+ queries: queries.slice(),
+ queryKeys: getQueryKeys(queries, state.datasourceInstance),
+ };
+ },
+ })
+ .addMapper({
+ filter: toggleGraphAction,
+ mapper: (state): ExploreItemState => {
const showingGraph = !state.showingGraph;
let nextQueryTransactions = state.queryTransactions;
if (!showingGraph) {
@@ -385,9 +416,11 @@ export const itemReducer = (state, action: Action): ExploreItemState => {
nextQueryTransactions = state.queryTransactions.filter(qt => qt.resultType !== 'Graph');
}
return { ...state, queryTransactions: nextQueryTransactions, showingGraph };
- }
-
- case ActionTypes.ToggleLogs: {
+ },
+ })
+ .addMapper({
+ filter: toggleLogsAction,
+ mapper: (state): ExploreItemState => {
const showingLogs = !state.showingLogs;
let nextQueryTransactions = state.queryTransactions;
if (!showingLogs) {
@@ -395,9 +428,11 @@ export const itemReducer = (state, action: Action): ExploreItemState => {
nextQueryTransactions = state.queryTransactions.filter(qt => qt.resultType !== 'Logs');
}
return { ...state, queryTransactions: nextQueryTransactions, showingLogs };
- }
-
- case ActionTypes.ToggleTable: {
+ },
+ })
+ .addMapper({
+ filter: toggleTableAction,
+ mapper: (state): ExploreItemState => {
const showingTable = !state.showingTable;
if (showingTable) {
return { ...state, showingTable, queryTransactions: state.queryTransactions };
@@ -412,25 +447,26 @@ export const itemReducer = (state, action: Action): ExploreItemState => {
);
return { ...state, ...results, queryTransactions: nextQueryTransactions, showingTable };
- }
-
- case ActionTypes.QueriesImported: {
+ },
+ })
+ .addMapper({
+ filter: queriesImportedAction,
+ mapper: (state, action): ExploreItemState => {
+ const { queries } = action.payload;
return {
...state,
- initialQueries: action.payload.queries,
- modifiedQueries: action.payload.queries.slice(),
+ queries,
+ queryKeys: getQueryKeys(queries, state.datasourceInstance),
};
- }
- }
-
- return state;
-};
+ },
+ })
+ .create();
/**
* Global Explore reducer that handles multiple Explore areas (left and right).
* Actions that have an `exploreId` get routed to the ExploreItemReducer.
*/
-export const exploreReducer = (state = initialExploreState, action: Action): ExploreState => {
+export const exploreReducer = (state = initialExploreState, action: HigherOrderAction): ExploreState => {
switch (action.type) {
case ActionTypes.SplitClose: {
return { ...state, split: false };
@@ -453,10 +489,7 @@ export const exploreReducer = (state = initialExploreState, action: Action): Exp
const { exploreId } = action.payload as any;
if (exploreId !== undefined) {
const exploreItemState = state[exploreId];
- return {
- ...state,
- [exploreId]: itemReducer(exploreItemState, action),
- };
+ return { ...state, [exploreId]: itemReducer(exploreItemState, action) };
}
}
diff --git a/public/app/features/templating/template_srv.ts b/public/app/features/templating/template_srv.ts
index de5efabcf23..11e90cbb5f7 100644
--- a/public/app/features/templating/template_srv.ts
+++ b/public/app/features/templating/template_srv.ts
@@ -156,6 +156,9 @@ export class TemplateSrv {
}
return value;
}
+ case 'json': {
+ return JSON.stringify(value);
+ }
case 'percentencode': {
// like glob, but url escaped
if (_.isArray(value)) {
diff --git a/public/app/plugins/datasource/cloudwatch/datasource.ts b/public/app/plugins/datasource/cloudwatch/datasource.ts
index d9fb3450524..a098800c77b 100644
--- a/public/app/plugins/datasource/cloudwatch/datasource.ts
+++ b/public/app/plugins/datasource/cloudwatch/datasource.ts
@@ -232,6 +232,14 @@ export default class CloudWatchDatasource {
});
}
+ getResourceARNs(region, resourceType, tags) {
+ return this.doMetricQueryRequest('resource_arns', {
+ region: this.templateSrv.replace(this.getActualRegion(region)),
+ resourceType: this.templateSrv.replace(resourceType),
+ tags: tags,
+ });
+ }
+
metricFindQuery(query) {
let region;
let namespace;
@@ -293,6 +301,15 @@ export default class CloudWatchDatasource {
return this.getEc2InstanceAttribute(region, targetAttributeName, filterJson);
}
+
+ const resourceARNsQuery = query.match(/^resource_arns\(([^,]+?),\s?([^,]+?),\s?(.+?)\)/);
+ if (resourceARNsQuery) {
+ region = resourceARNsQuery[1];
+ const resourceType = resourceARNsQuery[2];
+ const tagsJSON = JSON.parse(this.templateSrv.replace(resourceARNsQuery[3]));
+ return this.getResourceARNs(region, resourceType, tagsJSON);
+ }
+
return this.$q.when([]);
}
diff --git a/public/app/plugins/datasource/cloudwatch/specs/datasource.test.ts b/public/app/plugins/datasource/cloudwatch/specs/datasource.test.ts
index 512767075a9..1b2a2f4eead 100644
--- a/public/app/plugins/datasource/cloudwatch/specs/datasource.test.ts
+++ b/public/app/plugins/datasource/cloudwatch/specs/datasource.test.ts
@@ -380,6 +380,29 @@ describe('CloudWatchDatasource', () => {
});
});
+ describeMetricFindQuery('resource_arns(default,ec2:instance,{"environment":["production"]})', scenario => {
+ scenario.setup(() => {
+ scenario.requestResponse = {
+ results: {
+ metricFindQuery: {
+ tables: [{
+ rows: [[
+ 'arn:aws:ec2:us-east-1:123456789012:instance/i-12345678901234567',
+ 'arn:aws:ec2:us-east-1:123456789012:instance/i-76543210987654321'
+ ]]
+ }],
+ },
+ },
+ };
+ });
+
+ it('should call __ListMetrics and return result', () => {
+ expect(scenario.result[0].text).toContain('arn:aws:ec2:us-east-1:123456789012:instance/i-12345678901234567');
+ expect(scenario.request.queries[0].type).toBe('metricFindQuery');
+ expect(scenario.request.queries[0].subtype).toBe('resource_arns');
+ });
+ });
+
it('should caclculate the correct period', () => {
const hourSec = 60 * 60;
const daySec = hourSec * 24;
diff --git a/public/app/plugins/datasource/loki/components/LokiQueryEditor.tsx b/public/app/plugins/datasource/loki/components/LokiQueryEditor.tsx
index 634a642c65e..a1b9e7a5df9 100644
--- a/public/app/plugins/datasource/loki/components/LokiQueryEditor.tsx
+++ b/public/app/plugins/datasource/loki/components/LokiQueryEditor.tsx
@@ -33,7 +33,7 @@ export class LokiQueryEditor extends PureComponent {
query: {
...this.state.query,
expr: query.expr,
- }
+ },
});
};
@@ -59,14 +59,20 @@ export class LokiQueryEditor extends PureComponent {
diff --git a/public/app/plugins/datasource/loki/components/LokiQueryField.tsx b/public/app/plugins/datasource/loki/components/LokiQueryField.tsx
index ccaca86d880..c9c893baf12 100644
--- a/public/app/plugins/datasource/loki/components/LokiQueryField.tsx
+++ b/public/app/plugins/datasource/loki/components/LokiQueryField.tsx
@@ -12,12 +12,12 @@ import QueryField, { TypeaheadInput, QueryFieldState } from 'app/features/explor
import { getNextCharacter, getPreviousCousin } from 'app/features/explore/utils/dom';
import BracesPlugin from 'app/features/explore/slate-plugins/braces';
import RunnerPlugin from 'app/features/explore/slate-plugins/runner';
-import LokiDatasource from '../datasource';
// Types
import { LokiQuery } from '../types';
-import { TypeaheadOutput } from 'app/types/explore';
+import { TypeaheadOutput, HistoryItem } from 'app/types/explore';
import { makePromiseCancelable, CancelablePromise } from 'app/core/utils/CancelablePromise';
+import { ExploreDataSourceApi, ExploreQueryFieldProps } from '@grafana/ui';
const PRISM_SYNTAX = 'promql';
@@ -65,15 +65,8 @@ interface CascaderOption {
disabled?: boolean;
}
-interface LokiQueryFieldProps {
- datasource: LokiDatasource;
- error?: string | JSX.Element;
- hint?: any;
- history?: any[];
- initialQuery?: LokiQuery;
- onClickHintFix?: (action: any) => void;
- onPressEnter?: () => void;
- onQueryChange?: (value: LokiQuery, override?: boolean) => void;
+interface LokiQueryFieldProps extends ExploreQueryFieldProps
{
+ history: HistoryItem[];
}
interface LokiQueryFieldState {
@@ -98,14 +91,14 @@ export class LokiQueryField extends React.PureComponent node.type === 'code_block',
getSyntax: node => 'promql',
}),
];
- this.pluginsSearch = [RunnerPlugin({ handler: props.onPressEnter })];
+ this.pluginsSearch = [RunnerPlugin({ handler: props.onExecuteQuery })];
this.state = {
logLabelOptions: [],
@@ -169,20 +162,21 @@ export class LokiQueryField extends React.PureComponent {
// Send text change to parent
- const { initialQuery, onQueryChange } = this.props;
+ const { query, onQueryChange, onExecuteQuery } = this.props;
if (onQueryChange) {
- const query = {
- ...initialQuery,
- expr: value,
- };
- onQueryChange(query, override);
+ const nextQuery = { ...query, expr: value };
+ onQueryChange(nextQuery);
+
+ if (override && onExecuteQuery) {
+ onExecuteQuery();
+ }
}
};
onClickHintFix = () => {
- const { hint, onClickHintFix } = this.props;
- if (onClickHintFix && hint && hint.fix) {
- onClickHintFix(hint.fix.action);
+ const { hint, onExecuteHint } = this.props;
+ if (onExecuteHint && hint && hint.fix) {
+ onExecuteHint(hint.fix.action);
}
};
@@ -220,7 +214,7 @@ export class LokiQueryField extends React.PureComponent 0;
@@ -240,10 +234,11 @@ export class LokiQueryField extends React.PureComponent void;
-}
-
-export default class LokiStartPage extends PureComponent {
+export default class LokiStartPage extends PureComponent {
render() {
return (
diff --git a/public/app/plugins/datasource/prometheus/components/PromQueryField.tsx b/public/app/plugins/datasource/prometheus/components/PromQueryField.tsx
index 9d68a093cc3..01cd8c02fbd 100644
--- a/public/app/plugins/datasource/prometheus/components/PromQueryField.tsx
+++ b/public/app/plugins/datasource/prometheus/components/PromQueryField.tsx
@@ -4,7 +4,7 @@ import Cascader from 'rc-cascader';
import PluginPrism from 'slate-prism';
import Prism from 'prismjs';
-import { TypeaheadOutput } from 'app/types/explore';
+import { TypeaheadOutput, HistoryItem } from 'app/types/explore';
// dom also includes Element polyfills
import { getNextCharacter, getPreviousCousin } from 'app/features/explore/utils/dom';
@@ -13,6 +13,7 @@ import RunnerPlugin from 'app/features/explore/slate-plugins/runner';
import QueryField, { TypeaheadInput, QueryFieldState } from 'app/features/explore/QueryField';
import { PromQuery } from '../types';
import { CancelablePromise, makePromiseCancelable } from 'app/core/utils/CancelablePromise';
+import { ExploreDataSourceApi, ExploreQueryFieldProps } from '@grafana/ui';
const HISTOGRAM_GROUP = '__histograms__';
const METRIC_MARK = 'metric';
@@ -86,15 +87,8 @@ interface CascaderOption {
disabled?: boolean;
}
-interface PromQueryFieldProps {
- datasource: any;
- error?: string | JSX.Element;
- initialQuery: PromQuery;
- hint?: any;
- history?: any[];
- onClickHintFix?: (action: any) => void;
- onPressEnter?: () => void;
- onQueryChange?: (value: PromQuery, override?: boolean) => void;
+interface PromQueryFieldProps extends ExploreQueryFieldProps
{
+ history: HistoryItem[];
}
interface PromQueryFieldState {
@@ -116,7 +110,7 @@ class PromQueryField extends React.PureComponent node.type === 'code_block',
getSyntax: node => 'promql',
@@ -174,20 +168,21 @@ class PromQueryField extends React.PureComponent {
// Send text change to parent
- const { initialQuery, onQueryChange } = this.props;
+ const { query, onQueryChange, onExecuteQuery } = this.props;
if (onQueryChange) {
- const query: PromQuery = {
- ...initialQuery,
- expr: value,
- };
- onQueryChange(query, override);
+ const nextQuery: PromQuery = { ...query, expr: value };
+ onQueryChange(nextQuery);
+
+ if (override && onExecuteQuery) {
+ onExecuteQuery();
+ }
}
};
onClickHintFix = () => {
- const { hint, onClickHintFix } = this.props;
- if (onClickHintFix && hint && hint.fix) {
- onClickHintFix(hint.fix.action);
+ const { hint, onExecuteHint } = this.props;
+ if (onExecuteHint && hint && hint.fix) {
+ onExecuteHint(hint.fix.action);
}
};
@@ -242,29 +237,30 @@ class PromQueryField extends React.PureComponent
-
-
+
+
{chooserText}
-
+
void;
-}
-
-export default class PromStart extends PureComponent {
+export default class PromStart extends PureComponent {
render() {
return (
diff --git a/public/app/plugins/datasource/stackdriver/components/QueryEditor.tsx b/public/app/plugins/datasource/stackdriver/components/QueryEditor.tsx
index 94521041416..c3bd9212b21 100644
--- a/public/app/plugins/datasource/stackdriver/components/QueryEditor.tsx
+++ b/public/app/plugins/datasource/stackdriver/components/QueryEditor.tsx
@@ -10,21 +10,21 @@ import { Alignments } from './Alignments';
import { AlignmentPeriods } from './AlignmentPeriods';
import { AliasBy } from './AliasBy';
import { Help } from './Help';
-import { Target, MetricDescriptor } from '../types';
+import { StackdriverQuery, MetricDescriptor } from '../types';
import { getAlignmentPickerData } from '../functions';
import StackdriverDatasource from '../datasource';
import { SelectOptionItem } from '@grafana/ui';
export interface Props {
- onQueryChange: (target: Target) => void;
+ onQueryChange: (target: StackdriverQuery) => void;
onExecuteQuery: () => void;
- target: Target;
+ target: StackdriverQuery;
events: any;
datasource: StackdriverDatasource;
templateSrv: TemplateSrv;
}
-interface State extends Target {
+interface State extends StackdriverQuery {
alignOptions: SelectOptionItem[];
lastQuery: string;
lastQueryError: string;
diff --git a/public/app/plugins/datasource/stackdriver/datasource.ts b/public/app/plugins/datasource/stackdriver/datasource.ts
index 025955105a7..4c1f07e0a06 100644
--- a/public/app/plugins/datasource/stackdriver/datasource.ts
+++ b/public/app/plugins/datasource/stackdriver/datasource.ts
@@ -2,9 +2,10 @@ import { stackdriverUnitMappings } from './constants';
import appEvents from 'app/core/app_events';
import _ from 'lodash';
import StackdriverMetricFindQuery from './StackdriverMetricFindQuery';
-import { MetricDescriptor } from './types';
+import { StackdriverQuery, MetricDescriptor } from './types';
+import { DataSourceApi, DataQueryOptions } from '@grafana/ui/src/types';
-export default class StackdriverDatasource {
+export default class StackdriverDatasource implements DataSourceApi
{
id: number;
url: string;
baseUrl: string;
@@ -39,9 +40,7 @@ export default class StackdriverDatasource {
alignmentPeriod: this.templateSrv.replace(t.alignmentPeriod, options.scopedVars || {}),
groupBys: this.interpolateGroupBys(t.groupBys, options.scopedVars),
view: t.view || 'FULL',
- filters: (t.filters || []).map(f => {
- return this.templateSrv.replace(f, options.scopedVars || {});
- }),
+ filters: this.interpolateFilters(t.filters, options.scopedVars),
aliasBy: this.templateSrv.replace(t.aliasBy, options.scopedVars || {}),
type: 'timeSeriesQuery',
};
@@ -63,7 +62,13 @@ export default class StackdriverDatasource {
}
}
- async getLabels(metricType, refId) {
+ interpolateFilters(filters: string[], scopedVars: object) {
+ return (filters || []).map(f => {
+ return this.templateSrv.replace(f, scopedVars || {}, 'regex');
+ });
+ }
+
+ async getLabels(metricType: string, refId: string) {
const response = await this.getTimeSeries({
targets: [
{
@@ -103,7 +108,7 @@ export default class StackdriverDatasource {
return unit;
}
- async query(options) {
+ async query(options: DataQueryOptions) {
const result = [];
const data = await this.getTimeSeries(options);
if (data.results) {
diff --git a/public/app/plugins/datasource/stackdriver/img/stackdriver_logo.png b/public/app/plugins/datasource/stackdriver/img/stackdriver_logo.png
deleted file mode 100644
index cd52e773deb..00000000000
Binary files a/public/app/plugins/datasource/stackdriver/img/stackdriver_logo.png and /dev/null differ
diff --git a/public/app/plugins/datasource/stackdriver/img/stackdriver_logo.svg b/public/app/plugins/datasource/stackdriver/img/stackdriver_logo.svg
new file mode 100644
index 00000000000..93878f20a06
--- /dev/null
+++ b/public/app/plugins/datasource/stackdriver/img/stackdriver_logo.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/public/app/plugins/datasource/stackdriver/plugin.json b/public/app/plugins/datasource/stackdriver/plugin.json
index e68100c0e59..1ee3d57e9b1 100644
--- a/public/app/plugins/datasource/stackdriver/plugin.json
+++ b/public/app/plugins/datasource/stackdriver/plugin.json
@@ -14,8 +14,8 @@
"description": "Google Stackdriver Datasource for Grafana",
"version": "1.0.0",
"logos": {
- "small": "img/stackdriver_logo.png",
- "large": "img/stackdriver_logo.png"
+ "small": "img/stackdriver_logo.svg",
+ "large": "img/stackdriver_logo.svg"
},
"author": {
"name": "Grafana Project",
diff --git a/public/app/plugins/datasource/stackdriver/query_ctrl.ts b/public/app/plugins/datasource/stackdriver/query_ctrl.ts
index c6a8a4d9782..3a2d0bb970a 100644
--- a/public/app/plugins/datasource/stackdriver/query_ctrl.ts
+++ b/public/app/plugins/datasource/stackdriver/query_ctrl.ts
@@ -1,7 +1,7 @@
import _ from 'lodash';
import { QueryCtrl } from 'app/plugins/sdk';
-import { Target } from './types';
+import { StackdriverQuery } from './types';
import { TemplateSrv } from 'app/features/templating/template_srv';
export class StackdriverQueryCtrl extends QueryCtrl {
@@ -16,7 +16,7 @@ export class StackdriverQueryCtrl extends QueryCtrl {
this.onExecuteQuery = this.onExecuteQuery.bind(this);
}
- onQueryChange(target: Target) {
+ onQueryChange(target: StackdriverQuery) {
Object.assign(this.target, target);
}
diff --git a/public/app/plugins/datasource/stackdriver/specs/datasource.test.ts b/public/app/plugins/datasource/stackdriver/specs/datasource.test.ts
index 46cdd77b7a9..032f10d8ca5 100644
--- a/public/app/plugins/datasource/stackdriver/specs/datasource.test.ts
+++ b/public/app/plugins/datasource/stackdriver/specs/datasource.test.ts
@@ -1,7 +1,8 @@
import StackdriverDataSource from '../datasource';
import { metricDescriptors } from './testData';
import moment from 'moment';
-import { TemplateSrvStub } from 'test/specs/helpers';
+import { TemplateSrv } from 'app/features/templating/template_srv';
+import { CustomVariable } from 'app/features/templating/all';
describe('StackdriverDataSource', () => {
const instanceSettings = {
@@ -9,7 +10,7 @@ describe('StackdriverDataSource', () => {
defaultProject: 'testproject',
},
};
- const templateSrv = new TemplateSrvStub();
+ const templateSrv = new TemplateSrv();
const timeSrv = {};
describe('when performing testDataSource', () => {
@@ -154,15 +155,41 @@ describe('StackdriverDataSource', () => {
});
});
+ describe('when interpolating a template variable for the filter', () => {
+ let interpolated;
+ describe('and is single value variable', () => {
+ beforeEach(() => {
+ const filterTemplateSrv = initTemplateSrv('filtervalue1');
+ const ds = new StackdriverDataSource(instanceSettings, {}, filterTemplateSrv, timeSrv);
+ interpolated = ds.interpolateFilters(['resource.label.zone', '=~', '${test}'], {});
+ });
+
+ it('should replace the variable with the value', () => {
+ expect(interpolated.length).toBe(3);
+ expect(interpolated[2]).toBe('filtervalue1');
+ });
+ });
+
+ describe('and is multi value variable', () => {
+ beforeEach(() => {
+ const filterTemplateSrv = initTemplateSrv(['filtervalue1', 'filtervalue2'], true);
+ const ds = new StackdriverDataSource(instanceSettings, {}, filterTemplateSrv, timeSrv);
+ interpolated = ds.interpolateFilters(['resource.label.zone', '=~', '[[test]]'], {});
+ });
+
+ it('should replace the variable with a regex expression', () => {
+ expect(interpolated[2]).toBe('(filtervalue1|filtervalue2)');
+ });
+ });
+ });
+
describe('when interpolating a template variable for group bys', () => {
let interpolated;
describe('and is single value variable', () => {
beforeEach(() => {
- templateSrv.data = {
- test: 'groupby1',
- };
- const ds = new StackdriverDataSource(instanceSettings, {}, templateSrv, timeSrv);
+ const groupByTemplateSrv = initTemplateSrv('groupby1');
+ const ds = new StackdriverDataSource(instanceSettings, {}, groupByTemplateSrv, timeSrv);
interpolated = ds.interpolateGroupBys(['[[test]]'], {});
});
@@ -174,10 +201,8 @@ describe('StackdriverDataSource', () => {
describe('and is multi value variable', () => {
beforeEach(() => {
- templateSrv.data = {
- test: 'groupby1,groupby2',
- };
- const ds = new StackdriverDataSource(instanceSettings, {}, templateSrv, timeSrv);
+ const groupByTemplateSrv = initTemplateSrv(['groupby1', 'groupby2'], true);
+ const ds = new StackdriverDataSource(instanceSettings, {}, groupByTemplateSrv, timeSrv);
interpolated = ds.interpolateGroupBys(['[[test]]'], {});
});
@@ -241,3 +266,19 @@ describe('StackdriverDataSource', () => {
});
});
});
+function initTemplateSrv(values: any, multi = false) {
+ const templateSrv = new TemplateSrv();
+ templateSrv.init([
+ new CustomVariable(
+ {
+ name: 'test',
+ current: {
+ value: values,
+ },
+ multi: multi,
+ },
+ {}
+ ),
+ ]);
+ return templateSrv;
+}
diff --git a/public/app/plugins/datasource/stackdriver/types.ts b/public/app/plugins/datasource/stackdriver/types.ts
index 29b12b4289d..b9a6893d4bd 100644
--- a/public/app/plugins/datasource/stackdriver/types.ts
+++ b/public/app/plugins/datasource/stackdriver/types.ts
@@ -1,3 +1,5 @@
+import { DataQuery } from '@grafana/ui/src/types';
+
export enum MetricFindQueryTypes {
Services = 'services',
MetricTypes = 'metricTypes',
@@ -20,20 +22,22 @@ export interface VariableQueryData {
services: Array<{ value: string; name: string }>;
}
-export interface Target {
- defaultProject: string;
- unit: string;
+export interface StackdriverQuery extends DataQuery {
+ defaultProject?: string;
+ unit?: string;
metricType: string;
- service: string;
+ service?: string;
refId: string;
crossSeriesReducer: string;
- alignmentPeriod: string;
+ alignmentPeriod?: string;
perSeriesAligner: string;
- groupBys: string[];
- filters: string[];
- aliasBy: string;
+ groupBys?: string[];
+ filters?: string[];
+ aliasBy?: string;
metricKind: string;
valueType: string;
+ datasourceId?: number;
+ view?: string;
}
export interface AnnotationTarget {
diff --git a/public/app/routes/GrafanaCtrl.ts b/public/app/routes/GrafanaCtrl.ts
index 70bdf49e5e4..c6945f26d08 100644
--- a/public/app/routes/GrafanaCtrl.ts
+++ b/public/app/routes/GrafanaCtrl.ts
@@ -280,6 +280,28 @@ export function grafanaAppDirective(playlistSrv, contextSrv, $timeout, $rootScop
if (popover.length > 0 && target.parents('.graph-legend').length === 0) {
popover.hide();
}
+
+ // hide time picker
+ const timePickerDropDownIsOpen = elem.find('.gf-timepicker-dropdown').length > 0;
+ if (timePickerDropDownIsOpen) {
+ const targetIsInTimePickerDropDown = target.parents('.gf-timepicker-dropdown').length > 0;
+ const targetIsInTimePickerNav = target.parents('.gf-timepicker-nav').length > 0;
+ const targetIsDatePickerRowBtn = target.parents('td[id^="datepicker-"]').length > 0;
+ const targetIsDatePickerHeaderBtn = target.parents('button[id^="datepicker-"]').length > 0;
+
+ if (
+ targetIsInTimePickerNav ||
+ targetIsInTimePickerDropDown ||
+ targetIsDatePickerRowBtn ||
+ targetIsDatePickerHeaderBtn
+ ) {
+ return;
+ }
+
+ scope.$apply(() => {
+ scope.appEvent('closeTimepicker');
+ });
+ }
});
},
};
diff --git a/public/app/store/configureStore.ts b/public/app/store/configureStore.ts
index dc9a478adf3..570a387cd74 100644
--- a/public/app/store/configureStore.ts
+++ b/public/app/store/configureStore.ts
@@ -1,6 +1,6 @@
import { createStore, applyMiddleware, compose, combineReducers } from 'redux';
import thunk from 'redux-thunk';
-// import { createLogger } from 'redux-logger';
+import { createLogger } from 'redux-logger';
import sharedReducers from 'app/core/reducers';
import alertingReducers from 'app/features/alerting/state/reducers';
import teamsReducers from 'app/features/teams/state/reducers';
@@ -39,7 +39,7 @@ export function configureStore() {
if (process.env.NODE_ENV !== 'production') {
// DEV builds we had the logger middleware
- setStore(createStore(rootReducer, {}, composeEnhancers(applyMiddleware(thunk))));
+ setStore(createStore(rootReducer, {}, composeEnhancers(applyMiddleware(thunk, createLogger()))));
} else {
setStore(createStore(rootReducer, {}, composeEnhancers(applyMiddleware(thunk))));
}
diff --git a/public/app/types/explore.ts b/public/app/types/explore.ts
index 34b7ff08c99..9c8d977c3ad 100644
--- a/public/app/types/explore.ts
+++ b/public/app/types/explore.ts
@@ -1,5 +1,14 @@
+import { ComponentClass } from 'react';
import { Value } from 'slate';
-import { RawTimeRange, TimeRange, DataQuery, DataSourceSelectItem, DataSourceApi, QueryHint } from '@grafana/ui';
+import {
+ RawTimeRange,
+ TimeRange,
+ DataQuery,
+ DataSourceSelectItem,
+ DataSourceApi,
+ QueryHint,
+ ExploreStartPageProps,
+} from '@grafana/ui';
import { Emitter } from 'app/core/core';
import { LogsModel } from 'app/core/logs_model';
@@ -102,7 +111,7 @@ export interface ExploreItemState {
/**
* React component to be shown when no queries have been run yet, e.g., for a query language cheat sheet.
*/
- StartPage?: any;
+ StartPage?: ComponentClass;
/**
* Width used for calculating the graph interval (can't have more datapoints than pixels)
*/
@@ -144,10 +153,10 @@ export interface ExploreItemState {
*/
history: HistoryItem[];
/**
- * Initial queries for this Explore, e.g., set via URL. Each query will be
- * converted to a query row. Query edits should be tracked in `modifiedQueries` though.
+ * Queries for this Explore, e.g., set via URL. Each query will be
+ * converted to a query row.
*/
- initialQueries: DataQuery[];
+ queries: DataQuery[];
/**
* True if this Explore area has been initialized.
* Used to distinguish URL state injection versus split view state injection.
@@ -162,12 +171,6 @@ export interface ExploreItemState {
* Log query result to be displayed in the logs result viewer.
*/
logsResult?: LogsModel;
- /**
- * Copy of `initialQueries` that tracks user edits.
- * Don't connect this property to a react component as it is updated on every query change.
- * Used when running queries. Needs to be reset to `initialQueries` when those are reset as well.
- */
- modifiedQueries: DataQuery[];
/**
* Query intervals for graph queries to determine how many datapoints to return.
* Needs to be updated when `datasourceInstance` or `containerWidth` is changed.
@@ -229,12 +232,24 @@ export interface ExploreItemState {
* Table model that combines all query table results into a single table.
*/
tableResult?: TableModel;
+
+ /**
+ * React keys for rendering of QueryRows
+ */
+ queryKeys: string[];
+}
+
+export interface ExploreUIState {
+ showingTable: boolean;
+ showingGraph: boolean;
+ showingLogs: boolean;
}
export interface ExploreUrlState {
datasource: string;
queries: any[]; // Should be a DataQuery, but we're going to strip refIds, so typing makes less sense
range: RawTimeRange;
+ ui: ExploreUIState;
}
export interface HistoryItem {
diff --git a/public/img/icons_dark_theme/icon_advanced.svg b/public/img/icons_dark_theme/icon_advanced.svg
index 5fd18a86dd5..dea3ddff685 100644
--- a/public/img/icons_dark_theme/icon_advanced.svg
+++ b/public/img/icons_dark_theme/icon_advanced.svg
@@ -4,7 +4,7 @@
diff --git a/public/img/icons_dark_theme/icon_advanced_active.svg b/public/img/icons_dark_theme/icon_advanced_active.svg
index 80672a2595b..1227ddc868c 100644
--- a/public/img/icons_dark_theme/icon_advanced_active.svg
+++ b/public/img/icons_dark_theme/icon_advanced_active.svg
@@ -5,7 +5,7 @@
width="121px" height="100px" viewBox="0 0 121 100" style="enable-background:new 0 0 121 100;" xml:space="preserve">
diff --git a/public/img/icons_dark_theme/icon_alerting_active.svg b/public/img/icons_dark_theme/icon_alerting_active.svg
index 5c70638f64c..4966761ba28 100644
--- a/public/img/icons_dark_theme/icon_alerting_active.svg
+++ b/public/img/icons_dark_theme/icon_alerting_active.svg
@@ -5,7 +5,7 @@
width="121px" height="100px" viewBox="0 0 121 100" style="enable-background:new 0 0 121 100;" xml:space="preserve">
diff --git a/public/img/icons_dark_theme/icon_query.svg b/public/img/icons_dark_theme/icon_query.svg
index fab09779936..7b9dce299b5 100644
--- a/public/img/icons_dark_theme/icon_query.svg
+++ b/public/img/icons_dark_theme/icon_query.svg
@@ -4,7 +4,7 @@
diff --git a/public/img/icons_dark_theme/icon_query_active.svg b/public/img/icons_dark_theme/icon_query_active.svg
index ed8141b51bf..4831d9c52c8 100644
--- a/public/img/icons_dark_theme/icon_query_active.svg
+++ b/public/img/icons_dark_theme/icon_query_active.svg
@@ -5,7 +5,7 @@
width="121px" height="100px" viewBox="0 0 121 100" style="enable-background:new 0 0 121 100;" xml:space="preserve">
diff --git a/public/img/icons_dark_theme/icon_visualize_active.svg b/public/img/icons_dark_theme/icon_visualize_active.svg
index 43207ebaae4..31b5938652e 100644
--- a/public/img/icons_dark_theme/icon_visualize_active.svg
+++ b/public/img/icons_dark_theme/icon_visualize_active.svg
@@ -5,7 +5,7 @@
width="121px" height="100px" viewBox="0 0 121 100" style="enable-background:new 0 0 121 100;" xml:space="preserve">
diff --git a/public/sass/_variables.dark.scss b/public/sass/_variables.dark.scss
index 61e2c8bfc76..16d29ce41f7 100644
--- a/public/sass/_variables.dark.scss
+++ b/public/sass/_variables.dark.scss
@@ -66,6 +66,7 @@ $text-color-emphasis: getThemeVariable('colors.textColorEmphasis', $theme-name);
$text-shadow-strong: 1px 1px 4px getThemeVariable('colors.black', $theme-name);
$text-shadow-faint: 1px 1px 4px #2d2d2d;
+$textShadow: none;
// gradients
$brand-gradient: linear-gradient(
@@ -97,8 +98,7 @@ $hr-border-color: $dark-4;
// Panel
// -------------------------
$panel-bg: #212124;
-$panel-border-color: $dark-1;
-$panel-border: solid 1px $panel-border-color;
+$panel-border: solid 1px $dark-1;
$panel-header-hover-bg: $dark-4;
$panel-corner: $panel-bg;
@@ -107,12 +107,12 @@ $page-header-bg: linear-gradient(90deg, #292a2d, black);
$page-header-shadow: inset 0px -4px 14px $dark-2;
$page-header-border-color: $dark-4;
-$divider-border-color: #555;
+$divider-border-color: $gray-1;
// Graphite Target Editor
$tight-form-bg: $dark-3;
-$tight-form-func-bg: #333334;
-$tight-form-func-highlight-bg: #444445;
+$tight-form-func-bg: $dark-4;
+$tight-form-func-highlight-bg: $dark-5;
$modal-backdrop-bg: #353c42;
$code-tag-bg: $dark-1;
@@ -134,14 +134,12 @@ $empty-list-cta-bg: $gray-blue;
// Scrollbars
$scrollbarBackground: #aeb5df;
$scrollbarBackground2: #3a3a3a;
-
$scrollbarBorder: black;
// Tables
// -------------------------
$table-bg: transparent; // overall background-color
$table-bg-accent: $dark-3; // for striping
-$table-bg-hover: $dark-4; // for hover
$table-border: $dark-3; // table and cell border
$table-bg-odd: $dark-2;
@@ -149,7 +147,6 @@ $table-bg-hover: $dark-3;
// Buttons
// -------------------------
-
$btn-primary-bg: #ff6600;
$btn-primary-bg-hl: #bc3e06;
@@ -170,9 +167,6 @@ $btn-inverse-bg-hl: lighten($dark-3, 4%);
$btn-inverse-text-color: $link-color;
$btn-inverse-text-shadow: 0px 1px 0 rgba(0, 0, 0, 0.1);
-$btn-active-bg: $gray-4;
-$btn-active-text-color: $blue-dark;
-
$btn-link-color: $gray-3;
$iconContainerBackground: $black;
@@ -197,6 +191,9 @@ $input-label-bg: $gray-blue;
$input-label-border-color: $dark-3;
$input-color-select-arrow: $white;
+// Input placeholder text color
+$placeholderText: darken($text-color, 25%);
+
// Search
$search-shadow: 0 0 30px 0 $black;
$search-filter-box-bg: $gray-blue;
@@ -212,28 +209,19 @@ $dropdownBackground: $dark-3;
$dropdownBorder: rgba(0, 0, 0, 0.2);
$dropdownDividerTop: transparent;
$dropdownDividerBottom: #444;
-$dropdownDivider: $dropdownDividerBottom;
$dropdownLinkColor: $text-color;
$dropdownLinkColorHover: $white;
$dropdownLinkColorActive: $white;
-$dropdownLinkBackgroundActive: $dark-4;
$dropdownLinkBackgroundHover: $dark-4;
-// COMPONENT VARIABLES
-// --------------------------------------------------
-
-// -------------------------
-$placeholderText: darken($text-color, 25%);
-
// Horizontal forms & lists
// -------------------------
$horizontalComponentOffset: 180px;
-// Wells
+// Navbar
// -------------------------
-
$navbarHeight: 55px;
$navbarBackground: $panel-bg;
@@ -261,9 +249,6 @@ $menu-dropdown-bg: $body-bg;
$menu-dropdown-hover-bg: $dark-2;
$menu-dropdown-shadow: 5px 5px 20px -5px $black;
-// Breadcrumb
-// -------------------------
-
// Tabs
// -------------------------
$tab-border-color: $dark-4;
@@ -271,9 +256,6 @@ $tab-border-color: $dark-4;
// Toolbar
$toolbar-bg: $input-black;
-// Pagination
-// -------------------------
-
// Form states and alerts
// -------------------------
$warning-text-color: $warn;
@@ -308,7 +290,6 @@ $tooltipBackground: $black;
$tooltipColor: $gray-4;
$tooltipArrowColor: $tooltipBackground;
$tooltipBackgroundError: $brand-danger;
-$tooltipBackgroundBrand: $brand-primary;
// images
$checkboxImageUrl: '../img/checkbox.png';
@@ -377,9 +358,7 @@ $checkbox-color: $dark-1;
//Panel Edit
// -------------------------
$panel-editor-shadow: 0 0 20px black;
-$panel-editor-border: 1px solid $dark-3;
$panel-editor-side-menu-shadow: drop-shadow(0 0 10px $black);
-$panel-editor-toolbar-view-bg: $input-black;
$panel-editor-viz-item-shadow: 0 0 8px $dark-5;
$panel-editor-viz-item-border: 1px solid $dark-5;
$panel-editor-viz-item-shadow-hover: 0 0 4px $blue;
@@ -387,7 +366,6 @@ $panel-editor-viz-item-border-hover: 1px solid $blue;
$panel-editor-viz-item-bg: $input-black;
$panel-editor-tabs-line-color: #e3e3e3;
$panel-editor-viz-item-bg-hover: darken($blue, 47%);
-$panel-editor-viz-item-bg-hover-active: darken($orange, 45%);
$panel-options-group-border: none;
$panel-options-group-header-bg: $gray-blue;
diff --git a/public/sass/_variables.light.scss b/public/sass/_variables.light.scss
index ad2b22e201a..a4e4e806a68 100644
--- a/public/sass/_variables.light.scss
+++ b/public/sass/_variables.light.scss
@@ -1,7 +1,3 @@
-// Cosmo 2.3.2
-// Variables
-// --------------------------------------------------
-
// Global values
// --------------------------------------------------
@@ -71,12 +67,17 @@ $text-color-weak: getThemeVariable('colors.textColorWeak', $theme-name);
$text-color-faint: getThemeVariable('colors.textColorFaint', $theme-name);
$text-color-emphasis: getThemeVariable('colors.textColorEmphasis', $theme-name);
-$text-shadow-strong: none;
$text-shadow-faint: none;
$textShadow: none;
// gradients
-$brand-gradient: linear-gradient(to right, hsl(50, 100%, 50%) 0%, rgba(255, 68, 0, 1) 99%, rgba(255, 68, 0, 1) 100%);
+$brand-gradient: linear-gradient(
+ to right,
+ rgba(255, 213, 0, 1) 0%,
+ rgba(255, 68, 0, 1) 99%,
+ rgba(255, 68, 0, 1) 100%
+);
+
$page-gradient: linear-gradient(180deg, $white 10px, $gray-7 100px);
$edit-gradient: linear-gradient(-60deg, $gray-7, #f5f6f9 70%, $gray-7 98%);
@@ -98,10 +99,8 @@ $hr-border-color: $dark-3 !default;
// Panel
// -------------------------
-
$panel-bg: $white;
-$panel-border-color: $gray-5;
-$panel-border: solid 1px $panel-border-color;
+$panel-border: solid 1px $gray-5;
$panel-header-hover-bg: $gray-6;
$panel-corner: $gray-4;
@@ -114,7 +113,6 @@ $divider-border-color: $gray-2;
// Graphite Target Editor
$tight-form-bg: #eaebee;
-
$tight-form-func-bg: $gray-5;
$tight-form-func-highlight-bg: $gray-6;
@@ -132,24 +130,23 @@ $list-item-bg: linear-gradient(135deg, $gray-5, $gray-6); //$card-background;
$list-item-hover-bg: darken($gray-5, 5%);
$list-item-link-color: $text-color;
$list-item-shadow: $card-shadow;
+
$empty-list-cta-bg: $gray-6;
-// Tables
-// -------------------------
-$table-bg: transparent; // overall background-color
-$table-bg-accent: $gray-5; // for striping
-$table-bg-hover: $gray-5; // for hover
-$table-bg-active: $table-bg-hover !default;
-$table-border: $gray-3; // table and cell border
-
-$table-bg-odd: $gray-6;
-$table-bg-hover: $gray-5;
-
// Scrollbars
$scrollbarBackground: $gray-5;
$scrollbarBackground2: $gray-5;
$scrollbarBorder: $gray-4;
+// Tables
+// -------------------------
+$table-bg: transparent; // overall background-color
+$table-bg-accent: $gray-5; // for striping
+$table-border: $gray-3; // table and cell border
+
+$table-bg-odd: $gray-6;
+$table-bg-hover: $gray-5;
+
// Buttons
// -------------------------
$btn-primary-bg: $brand-primary;
@@ -172,16 +169,14 @@ $btn-inverse-bg-hl: darken($gray-6, 5%);
$btn-inverse-text-color: $gray-1;
$btn-inverse-text-shadow: 0 1px 0 rgba(255, 255, 255, 0.4);
-$btn-active-bg: $white;
-$btn-active-text-color: $blue;
-
$btn-link-color: $gray-1;
+$iconContainerBackground: $white;
+
$btn-divider-left: $gray-4;
$btn-divider-right: $gray-7;
-$btn-drag-image: '../img/grab_light.svg';
-$iconContainerBackground: $white;
+$btn-drag-image: '../img/grab_light.svg';
// Forms
// -------------------------
@@ -198,29 +193,8 @@ $input-label-bg: $gray-5;
$input-label-border-color: $gray-5;
$input-color-select-arrow: $gray-1;
-// Sidemenu
-// -------------------------
-$side-menu-bg: $dark-2;
-$side-menu-bg-mobile: rgba(0, 0, 0, 0); //$gray-6;
-$side-menu-item-hover-bg: $gray-1;
-$side-menu-shadow: 5px 0px 10px -5px $gray-1;
-$side-menu-link-color: $gray-6;
-
-// Menu dropdowns
-// -------------------------
-$menu-dropdown-bg: $gray-7;
-$menu-dropdown-hover-bg: $gray-6;
-$menu-dropdown-shadow: 5px 5px 10px -5px $gray-1;
-
-// Breadcrumb
-// -------------------------
-
-// Tabs
-// -------------------------
-$tab-border-color: $gray-5;
-
-// Toolbar
-$toolbar-bg: white;
+// Input placeholder text color
+$placeholderText: $gray-2;
// search
$search-shadow: 0 5px 30px 0 $gray-4;
@@ -237,52 +211,52 @@ $dropdownBackground: $white;
$dropdownBorder: $gray-4;
$dropdownDividerTop: $gray-6;
$dropdownDividerBottom: $white;
-$dropdownDivider: $dropdownDividerTop;
$dropdownLinkColor: $dark-3;
$dropdownLinkColorHover: $link-color;
$dropdownLinkColorActive: $link-color;
-$dropdownLinkBackgroundActive: $gray-6;
$dropdownLinkBackgroundHover: $gray-6;
-// COMPONENT VARIABLES
-// --------------------------------------------------
-
-// Input placeholder text color
-// -------------------------
-$placeholderText: $gray-2;
-
-// Hr border color
-// -------------------------
-$hrBorder: $gray-3;
-
// Horizontal forms & lists
// -------------------------
$horizontalComponentOffset: 180px;
-// Wells
-// -------------------------
-
// Navbar
// -------------------------
-
$navbarHeight: 52px;
+
$navbarBackground: $white;
$navbarBorder: 1px solid $gray-4;
$navbarShadow: 0 0 3px #c1c1c1;
$navbarLinkColor: #444;
-$navbarBrandColor: $navbarLinkColor;
-
$navbarButtonBackground: lighten($navbarBackground, 3%);
$navbarButtonBackgroundHighlight: lighten($navbarBackground, 5%);
$navbar-button-border: $gray-4;
-// Pagination
+// Sidemenu
// -------------------------
+$side-menu-bg: $dark-2;
+$side-menu-bg-mobile: rgba(0, 0, 0, 0); //$gray-6;
+$side-menu-item-hover-bg: $gray-1;
+$side-menu-shadow: 5px 0px 10px -5px $gray-1;
+$side-menu-link-color: $gray-6;
+
+// Menu dropdowns
+// -------------------------
+$menu-dropdown-bg: $gray-7;
+$menu-dropdown-hover-bg: $gray-6;
+$menu-dropdown-shadow: 5px 5px 10px -5px $gray-1;
+
+// Tabs
+// -------------------------
+$tab-border-color: $gray-5;
+
+// Toolbar
+$toolbar-bg: white;
// Form states and alerts
// -------------------------
@@ -304,6 +278,7 @@ $popover-shadow: 0 0 20px $white;
$popover-help-bg: $blue;
$popover-help-color: $gray-6;
+
$popover-error-bg: $btn-danger-bg;
// Tooltips and popovers
@@ -317,7 +292,6 @@ $tooltipBackground: $gray-1;
$tooltipColor: $gray-7;
$tooltipArrowColor: $tooltipBackground; // Used by Angular tooltip
$tooltipBackgroundError: $brand-danger;
-$tooltipBackgroundBrand: $brand-primary;
// images
$checkboxImageUrl: '../img/checkbox_white.png';
@@ -329,8 +303,6 @@ $info-box-border-color: lighten($blue, 20%);
$footer-link-color: $gray-3;
$footer-link-hover: $dark-5;
-// collapse box
-
// json explorer
$json-explorer-default-color: black;
$json-explorer-string-color: green;
@@ -350,9 +322,6 @@ $json-explorer-url-color: blue;
$diff-label-bg: $gray-5;
$diff-label-fg: $gray-2;
-$diff-switch-bg: $gray-7;
-$diff-switch-disabled: $gray-5;
-
$diff-arrow-color: $dark-3;
$diff-group-bg: $gray-7;
@@ -367,6 +336,7 @@ $diff-json-new: #664e33;
$diff-json-changed-fg: $gray-6;
$diff-json-changed-num: $gray-4;
+
$diff-json-icon: $gray-4;
//Submenu
@@ -390,9 +360,7 @@ $checkbox-color: $gray-7;
//Panel Edit
// -------------------------
$panel-editor-shadow: 0px 0px 8px $gray-3;
-$panel-editor-border: 1px solid $dark-4;
$panel-editor-side-menu-shadow: drop-shadow(0 0 2px $gray-3);
-$panel-editor-toolbar-view-bg: $white;
$panel-editor-viz-item-shadow: 0 0 4px $gray-3;
$panel-editor-viz-item-border: 1px solid $gray-3;
$panel-editor-viz-item-shadow-hover: 0 0 4px $blue-light;
@@ -400,7 +368,6 @@ $panel-editor-viz-item-border-hover: 1px solid $blue-light;
$panel-editor-viz-item-bg: $white;
$panel-editor-tabs-line-color: $dark-5;
$panel-editor-viz-item-bg-hover: lighten($blue, 62%);
-$panel-editor-viz-item-bg-hover-active: lighten($orange, 34%);
$panel-options-group-border: none;
$panel-options-group-header-bg: $gray-5;
diff --git a/public/sass/base/_icons.scss b/public/sass/base/_icons.scss
index a60259ac0f2..a2649b31fcd 100644
--- a/public/sass/base/_icons.scss
+++ b/public/sass/base/_icons.scss
@@ -212,7 +212,7 @@
padding-right: 5px;
}
-.panel-editor-tabs {
+.panel-editor-tabs, .add-panel-widget__icon {
.gicon-advanced-active {
background-image: url('../img/icons_#{$theme-name}_theme/icon_advanced_active.svg');
}
diff --git a/public/sass/components/_code_editor.scss b/public/sass/components/_code_editor.scss
index 4f50495789d..a9c7ebf2e75 100644
--- a/public/sass/components/_code_editor.scss
+++ b/public/sass/components/_code_editor.scss
@@ -7,7 +7,7 @@
&.ace_editor {
@include font-family-monospace();
font-size: 1rem;
- min-height: 2.6rem;
+ min-height: 3.6rem; // Include space for horizontal scrollbar
@include border-radius($input-border-radius-sm);
border: $input-btn-border-width solid $input-border-color;
diff --git a/public/sass/components/_gf-form.scss b/public/sass/components/_gf-form.scss
index 3c598de8852..90ef1da30dc 100644
--- a/public/sass/components/_gf-form.scss
+++ b/public/sass/components/_gf-form.scss
@@ -84,6 +84,10 @@ $input-border: 1px solid $input-border-color;
.gf-form + .gf-form {
margin-left: $gf-form-margin;
}
+
+ &--nowrap {
+ flex-wrap: nowrap;
+ }
}
.gf-form-button-row {
diff --git a/public/sass/components/_toolbar.scss b/public/sass/components/_toolbar.scss
index 14db85f7e65..36be8a18739 100644
--- a/public/sass/components/_toolbar.scss
+++ b/public/sass/components/_toolbar.scss
@@ -4,7 +4,6 @@
align-items: center;
padding: 3px 20px 3px 20px;
position: relative;
- z-index: 1;
flex: 0 0 auto;
background: $toolbar-bg;
border-radius: 3px;
diff --git a/public/sass/utils/_utils.scss b/public/sass/utils/_utils.scss
index ce59c68a23f..16a84784de8 100644
--- a/public/sass/utils/_utils.scss
+++ b/public/sass/utils/_utils.scss
@@ -83,10 +83,18 @@ button.close {
position: absolute;
}
-.flex-grow {
+.flex-grow-1 {
flex-grow: 1;
}
+.flex-shrink-1 {
+ flex-shrink: 1;
+}
+
+.flex-shrink-0 {
+ flex-shrink: 0;
+}
+
.center-vh {
display: flex;
align-items: center;
diff --git a/vendor/github.com/aws/aws-sdk-go/aws/awsutil/string_value.go b/vendor/github.com/aws/aws-sdk-go/aws/awsutil/string_value.go
index b6432f1a118..645df2450fc 100644
--- a/vendor/github.com/aws/aws-sdk-go/aws/awsutil/string_value.go
+++ b/vendor/github.com/aws/aws-sdk-go/aws/awsutil/string_value.go
@@ -23,28 +23,27 @@ func stringValue(v reflect.Value, indent int, buf *bytes.Buffer) {
case reflect.Struct:
buf.WriteString("{\n")
- names := []string{}
for i := 0; i < v.Type().NumField(); i++ {
- name := v.Type().Field(i).Name
- f := v.Field(i)
- if name[0:1] == strings.ToLower(name[0:1]) {
+ ft := v.Type().Field(i)
+ fv := v.Field(i)
+
+ if ft.Name[0:1] == strings.ToLower(ft.Name[0:1]) {
continue // ignore unexported fields
}
- if (f.Kind() == reflect.Ptr || f.Kind() == reflect.Slice) && f.IsNil() {
+ if (fv.Kind() == reflect.Ptr || fv.Kind() == reflect.Slice) && fv.IsNil() {
continue // ignore unset fields
}
- names = append(names, name)
- }
- for i, n := range names {
- val := v.FieldByName(n)
buf.WriteString(strings.Repeat(" ", indent+2))
- buf.WriteString(n + ": ")
- stringValue(val, indent+2, buf)
+ buf.WriteString(ft.Name + ": ")
- if i < len(names)-1 {
- buf.WriteString(",\n")
+ if tag := ft.Tag.Get("sensitive"); tag == "true" {
+ buf.WriteString("")
+ } else {
+ stringValue(fv, indent+2, buf)
}
+
+ buf.WriteString(",\n")
}
buf.WriteString("\n" + strings.Repeat(" ", indent) + "}")
diff --git a/vendor/github.com/aws/aws-sdk-go/aws/client/client.go b/vendor/github.com/aws/aws-sdk-go/aws/client/client.go
index 212fe25e71e..70960538409 100644
--- a/vendor/github.com/aws/aws-sdk-go/aws/client/client.go
+++ b/vendor/github.com/aws/aws-sdk-go/aws/client/client.go
@@ -18,7 +18,7 @@ type Config struct {
// States that the signing name did not come from a modeled source but
// was derived based on other data. Used by service client constructors
- // to determine if the signin name can be overriden based on metadata the
+ // to determine if the signin name can be overridden based on metadata the
// service has.
SigningNameDerived bool
}
diff --git a/vendor/github.com/aws/aws-sdk-go/aws/config.go b/vendor/github.com/aws/aws-sdk-go/aws/config.go
index 5421b5d4e9b..10634d173d3 100644
--- a/vendor/github.com/aws/aws-sdk-go/aws/config.go
+++ b/vendor/github.com/aws/aws-sdk-go/aws/config.go
@@ -18,7 +18,7 @@ const UseServiceDefaultRetries = -1
type RequestRetryer interface{}
// A Config provides service configuration for service clients. By default,
-// all clients will use the defaults.DefaultConfig tructure.
+// all clients will use the defaults.DefaultConfig structure.
//
// // Create Session with MaxRetry configuration to be shared by multiple
// // service clients.
@@ -45,8 +45,8 @@ type Config struct {
// that overrides the default generated endpoint for a client. Set this
// to `""` to use the default generated endpoint.
//
- // @note You must still provide a `Region` value when specifying an
- // endpoint for a client.
+ // Note: You must still provide a `Region` value when specifying an
+ // endpoint for a client.
Endpoint *string
// The resolver to use for looking up endpoints for AWS service clients
@@ -65,8 +65,8 @@ type Config struct {
// noted. A full list of regions is found in the "Regions and Endpoints"
// document.
//
- // @see http://docs.aws.amazon.com/general/latest/gr/rande.html
- // AWS Regions and Endpoints
+ // See http://docs.aws.amazon.com/general/latest/gr/rande.html for AWS
+ // Regions and Endpoints.
Region *string
// Set this to `true` to disable SSL when sending requests. Defaults
@@ -120,9 +120,10 @@ type Config struct {
// will use virtual hosted bucket addressing when possible
// (`http://BUCKET.s3.amazonaws.com/KEY`).
//
- // @note This configuration option is specific to the Amazon S3 service.
- // @see http://docs.aws.amazon.com/AmazonS3/latest/dev/VirtualHosting.html
- // Amazon S3: Virtual Hosting of Buckets
+ // Note: This configuration option is specific to the Amazon S3 service.
+ //
+ // See http://docs.aws.amazon.com/AmazonS3/latest/dev/VirtualHosting.html
+ // for Amazon S3: Virtual Hosting of Buckets
S3ForcePathStyle *bool
// Set this to `true` to disable the SDK adding the `Expect: 100-Continue`
@@ -223,6 +224,28 @@ type Config struct {
// Key: aws.String("//foo//bar//moo"),
// })
DisableRestProtocolURICleaning *bool
+
+ // EnableEndpointDiscovery will allow for endpoint discovery on operations that
+ // have the definition in its model. By default, endpoint discovery is off.
+ //
+ // Example:
+ // sess := session.Must(session.NewSession(&aws.Config{
+ // EnableEndpointDiscovery: aws.Bool(true),
+ // }))
+ //
+ // svc := s3.New(sess)
+ // out, err := svc.GetObject(&s3.GetObjectInput {
+ // Bucket: aws.String("bucketname"),
+ // Key: aws.String("/foo/bar/moo"),
+ // })
+ EnableEndpointDiscovery *bool
+
+ // DisableEndpointHostPrefix will disable the SDK's behavior of prefixing
+ // request endpoint hosts with modeled information.
+ //
+ // Disabling this feature is useful when you want to use local endpoints
+ // for testing that do not support the modeled host prefix pattern.
+ DisableEndpointHostPrefix *bool
}
// NewConfig returns a new Config pointer that can be chained with builder
@@ -377,6 +400,19 @@ func (c *Config) WithSleepDelay(fn func(time.Duration)) *Config {
return c
}
+// WithEndpointDiscovery will set whether or not to use endpoint discovery.
+func (c *Config) WithEndpointDiscovery(t bool) *Config {
+ c.EnableEndpointDiscovery = &t
+ return c
+}
+
+// WithDisableEndpointHostPrefix will set whether or not to use modeled host prefix
+// when making requests.
+func (c *Config) WithDisableEndpointHostPrefix(t bool) *Config {
+ c.DisableEndpointHostPrefix = &t
+ return c
+}
+
// MergeIn merges the passed in configs into the existing config object.
func (c *Config) MergeIn(cfgs ...*Config) {
for _, other := range cfgs {
@@ -476,6 +512,14 @@ func mergeInConfig(dst *Config, other *Config) {
if other.EnforceShouldRetryCheck != nil {
dst.EnforceShouldRetryCheck = other.EnforceShouldRetryCheck
}
+
+ if other.EnableEndpointDiscovery != nil {
+ dst.EnableEndpointDiscovery = other.EnableEndpointDiscovery
+ }
+
+ if other.DisableEndpointHostPrefix != nil {
+ dst.DisableEndpointHostPrefix = other.DisableEndpointHostPrefix
+ }
}
// Copy will return a shallow copy of the Config object. If any additional
diff --git a/vendor/github.com/aws/aws-sdk-go/aws/corehandlers/handlers.go b/vendor/github.com/aws/aws-sdk-go/aws/corehandlers/handlers.go
index cfcddf3dc52..f8853d78af2 100644
--- a/vendor/github.com/aws/aws-sdk-go/aws/corehandlers/handlers.go
+++ b/vendor/github.com/aws/aws-sdk-go/aws/corehandlers/handlers.go
@@ -72,9 +72,9 @@ var ValidateReqSigHandler = request.NamedHandler{
signedTime = r.LastSignedAt
}
- // 10 minutes to allow for some clock skew/delays in transmission.
+ // 5 minutes to allow for some clock skew/delays in transmission.
// Would be improved with aws/aws-sdk-go#423
- if signedTime.Add(10 * time.Minute).After(time.Now()) {
+ if signedTime.Add(5 * time.Minute).After(time.Now()) {
return
}
diff --git a/vendor/github.com/aws/aws-sdk-go/aws/corehandlers/user_agent.go b/vendor/github.com/aws/aws-sdk-go/aws/corehandlers/user_agent.go
index a15f496bc08..ab69c7a6f38 100644
--- a/vendor/github.com/aws/aws-sdk-go/aws/corehandlers/user_agent.go
+++ b/vendor/github.com/aws/aws-sdk-go/aws/corehandlers/user_agent.go
@@ -17,7 +17,7 @@ var SDKVersionUserAgentHandler = request.NamedHandler{
}
const execEnvVar = `AWS_EXECUTION_ENV`
-const execEnvUAKey = `exec_env`
+const execEnvUAKey = `exec-env`
// AddHostExecEnvUserAgentHander is a request handler appending the SDK's
// execution environment to the user agent.
diff --git a/vendor/github.com/aws/aws-sdk-go/aws/credentials/chain_provider.go b/vendor/github.com/aws/aws-sdk-go/aws/credentials/chain_provider.go
index f298d659626..3ad1e798df8 100644
--- a/vendor/github.com/aws/aws-sdk-go/aws/credentials/chain_provider.go
+++ b/vendor/github.com/aws/aws-sdk-go/aws/credentials/chain_provider.go
@@ -9,9 +9,7 @@ var (
// providers in the ChainProvider.
//
// This has been deprecated. For verbose error messaging set
- // aws.Config.CredentialsChainVerboseErrors to true
- //
- // @readonly
+ // aws.Config.CredentialsChainVerboseErrors to true.
ErrNoValidProvidersFoundInChain = awserr.New("NoCredentialProviders",
`no valid providers in chain. Deprecated.
For verbose messaging see aws.Config.CredentialsChainVerboseErrors`,
diff --git a/vendor/github.com/aws/aws-sdk-go/aws/credentials/credentials.go b/vendor/github.com/aws/aws-sdk-go/aws/credentials/credentials.go
index ed086992f62..894bbc7f82c 100644
--- a/vendor/github.com/aws/aws-sdk-go/aws/credentials/credentials.go
+++ b/vendor/github.com/aws/aws-sdk-go/aws/credentials/credentials.go
@@ -49,6 +49,8 @@
package credentials
import (
+ "fmt"
+ "github.com/aws/aws-sdk-go/aws/awserr"
"sync"
"time"
)
@@ -64,8 +66,6 @@ import (
// Credentials: credentials.AnonymousCredentials,
// })))
// // Access public S3 buckets.
-//
-// @readonly
var AnonymousCredentials = NewStaticCredentials("", "", "")
// A Value is the AWS credentials value for individual credential fields.
@@ -99,6 +99,14 @@ type Provider interface {
IsExpired() bool
}
+// An Expirer is an interface that Providers can implement to expose the expiration
+// time, if known. If the Provider cannot accurately provide this info,
+// it should not implement this interface.
+type Expirer interface {
+ // The time at which the credentials are no longer valid
+ ExpiresAt() time.Time
+}
+
// An ErrorProvider is a stub credentials provider that always returns an error
// this is used by the SDK when construction a known provider is not possible
// due to an error.
@@ -158,13 +166,19 @@ func (e *Expiry) SetExpiration(expiration time.Time, window time.Duration) {
// IsExpired returns if the credentials are expired.
func (e *Expiry) IsExpired() bool {
- if e.CurrentTime == nil {
- e.CurrentTime = time.Now
+ curTime := e.CurrentTime
+ if curTime == nil {
+ curTime = time.Now
}
- return e.expiration.Before(e.CurrentTime())
+ return e.expiration.Before(curTime())
}
-// A Credentials provides synchronous safe retrieval of AWS credentials Value.
+// ExpiresAt returns the expiration time of the credential
+func (e *Expiry) ExpiresAt() time.Time {
+ return e.expiration
+}
+
+// A Credentials provides concurrency safe retrieval of AWS credentials Value.
// Credentials will cache the credentials value until they expire. Once the value
// expires the next Get will attempt to retrieve valid credentials.
//
@@ -256,3 +270,23 @@ func (c *Credentials) IsExpired() bool {
func (c *Credentials) isExpired() bool {
return c.forceRefresh || c.provider.IsExpired()
}
+
+// ExpiresAt provides access to the functionality of the Expirer interface of
+// the underlying Provider, if it supports that interface. Otherwise, it returns
+// an error.
+func (c *Credentials) ExpiresAt() (time.Time, error) {
+ c.m.RLock()
+ defer c.m.RUnlock()
+
+ expirer, ok := c.provider.(Expirer)
+ if !ok {
+ return time.Time{}, awserr.New("ProviderNotExpirer",
+ fmt.Sprintf("provider %s does not support ExpiresAt()", c.creds.ProviderName),
+ nil)
+ }
+ if c.forceRefresh {
+ // set expiration time to the distant past
+ return time.Time{}, nil
+ }
+ return expirer.ExpiresAt(), nil
+}
diff --git a/vendor/github.com/aws/aws-sdk-go/aws/credentials/ec2rolecreds/ec2_role_provider.go b/vendor/github.com/aws/aws-sdk-go/aws/credentials/ec2rolecreds/ec2_role_provider.go
index c39749524ec..0ed791be641 100644
--- a/vendor/github.com/aws/aws-sdk-go/aws/credentials/ec2rolecreds/ec2_role_provider.go
+++ b/vendor/github.com/aws/aws-sdk-go/aws/credentials/ec2rolecreds/ec2_role_provider.go
@@ -4,7 +4,6 @@ import (
"bufio"
"encoding/json"
"fmt"
- "path"
"strings"
"time"
@@ -12,6 +11,7 @@ import (
"github.com/aws/aws-sdk-go/aws/client"
"github.com/aws/aws-sdk-go/aws/credentials"
"github.com/aws/aws-sdk-go/aws/ec2metadata"
+ "github.com/aws/aws-sdk-go/internal/sdkuri"
)
// ProviderName provides a name of EC2Role provider
@@ -125,7 +125,7 @@ type ec2RoleCredRespBody struct {
Message string
}
-const iamSecurityCredsPath = "/iam/security-credentials"
+const iamSecurityCredsPath = "iam/security-credentials/"
// requestCredList requests a list of credentials from the EC2 service.
// If there are no credentials, or there is an error making or receiving the request
@@ -153,7 +153,7 @@ func requestCredList(client *ec2metadata.EC2Metadata) ([]string, error) {
// If the credentials cannot be found, or there is an error reading the response
// and error will be returned.
func requestCred(client *ec2metadata.EC2Metadata, credsName string) (ec2RoleCredRespBody, error) {
- resp, err := client.GetMetadata(path.Join(iamSecurityCredsPath, credsName))
+ resp, err := client.GetMetadata(sdkuri.PathJoin(iamSecurityCredsPath, credsName))
if err != nil {
return ec2RoleCredRespBody{},
awserr.New("EC2RoleRequestError",
diff --git a/vendor/github.com/aws/aws-sdk-go/aws/credentials/endpointcreds/provider.go b/vendor/github.com/aws/aws-sdk-go/aws/credentials/endpointcreds/provider.go
index a4cec5c553a..ace51313820 100644
--- a/vendor/github.com/aws/aws-sdk-go/aws/credentials/endpointcreds/provider.go
+++ b/vendor/github.com/aws/aws-sdk-go/aws/credentials/endpointcreds/provider.go
@@ -65,6 +65,10 @@ type Provider struct {
//
// If ExpiryWindow is 0 or less it will be ignored.
ExpiryWindow time.Duration
+
+ // Optional authorization token value if set will be used as the value of
+ // the Authorization header of the endpoint credential request.
+ AuthorizationToken string
}
// NewProviderClient returns a credentials Provider for retrieving AWS credentials
@@ -152,6 +156,9 @@ func (p *Provider) getCredentials() (*getCredentialsOutput, error) {
out := &getCredentialsOutput{}
req := p.Client.NewRequest(op, nil, out)
req.HTTPRequest.Header.Set("Accept", "application/json")
+ if authToken := p.AuthorizationToken; len(authToken) != 0 {
+ req.HTTPRequest.Header.Set("Authorization", authToken)
+ }
return out, req.Send()
}
diff --git a/vendor/github.com/aws/aws-sdk-go/aws/credentials/env_provider.go b/vendor/github.com/aws/aws-sdk-go/aws/credentials/env_provider.go
index c14231a16f2..54c5cf7333f 100644
--- a/vendor/github.com/aws/aws-sdk-go/aws/credentials/env_provider.go
+++ b/vendor/github.com/aws/aws-sdk-go/aws/credentials/env_provider.go
@@ -12,14 +12,10 @@ const EnvProviderName = "EnvProvider"
var (
// ErrAccessKeyIDNotFound is returned when the AWS Access Key ID can't be
// found in the process's environment.
- //
- // @readonly
ErrAccessKeyIDNotFound = awserr.New("EnvAccessKeyNotFound", "AWS_ACCESS_KEY_ID or AWS_ACCESS_KEY not found in environment", nil)
// ErrSecretAccessKeyNotFound is returned when the AWS Secret Access Key
// can't be found in the process's environment.
- //
- // @readonly
ErrSecretAccessKeyNotFound = awserr.New("EnvSecretNotFound", "AWS_SECRET_ACCESS_KEY or AWS_SECRET_KEY not found in environment", nil)
)
diff --git a/vendor/github.com/aws/aws-sdk-go/aws/credentials/processcreds/provider.go b/vendor/github.com/aws/aws-sdk-go/aws/credentials/processcreds/provider.go
new file mode 100644
index 00000000000..1980c8c140a
--- /dev/null
+++ b/vendor/github.com/aws/aws-sdk-go/aws/credentials/processcreds/provider.go
@@ -0,0 +1,425 @@
+/*
+Package processcreds is a credential Provider to retrieve `credential_process`
+credentials.
+
+WARNING: The following describes a method of sourcing credentials from an external
+process. This can potentially be dangerous, so proceed with caution. Other
+credential providers should be preferred if at all possible. If using this
+option, you should make sure that the config file is as locked down as possible
+using security best practices for your operating system.
+
+You can use credentials from a `credential_process` in a variety of ways.
+
+One way is to setup your shared config file, located in the default
+location, with the `credential_process` key and the command you want to be
+called. You also need to set the AWS_SDK_LOAD_CONFIG environment variable
+(e.g., `export AWS_SDK_LOAD_CONFIG=1`) to use the shared config file.
+
+ [default]
+ credential_process = /command/to/call
+
+Creating a new session will use the credential process to retrieve credentials.
+NOTE: If there are credentials in the profile you are using, the credential
+process will not be used.
+
+ // Initialize a session to load credentials.
+ sess, _ := session.NewSession(&aws.Config{
+ Region: aws.String("us-east-1")},
+ )
+
+ // Create S3 service client to use the credentials.
+ svc := s3.New(sess)
+
+Another way to use the `credential_process` method is by using
+`credentials.NewCredentials()` and providing a command to be executed to
+retrieve credentials:
+
+ // Create credentials using the ProcessProvider.
+ creds := processcreds.NewCredentials("/path/to/command")
+
+ // Create service client value configured for credentials.
+ svc := s3.New(sess, &aws.Config{Credentials: creds})
+
+You can set a non-default timeout for the `credential_process` with another
+constructor, `credentials.NewCredentialsTimeout()`, providing the timeout. To
+set a one minute timeout:
+
+ // Create credentials using the ProcessProvider.
+ creds := processcreds.NewCredentialsTimeout(
+ "/path/to/command",
+ time.Duration(500) * time.Millisecond)
+
+If you need more control, you can set any configurable options in the
+credentials using one or more option functions. For example, you can set a two
+minute timeout, a credential duration of 60 minutes, and a maximum stdout
+buffer size of 2k.
+
+ creds := processcreds.NewCredentials(
+ "/path/to/command",
+ func(opt *ProcessProvider) {
+ opt.Timeout = time.Duration(2) * time.Minute
+ opt.Duration = time.Duration(60) * time.Minute
+ opt.MaxBufSize = 2048
+ })
+
+You can also use your own `exec.Cmd`:
+
+ // Create an exec.Cmd
+ myCommand := exec.Command("/path/to/command")
+
+ // Create credentials using your exec.Cmd and custom timeout
+ creds := processcreds.NewCredentialsCommand(
+ myCommand,
+ func(opt *processcreds.ProcessProvider) {
+ opt.Timeout = time.Duration(1) * time.Second
+ })
+*/
+package processcreds
+
+import (
+ "bytes"
+ "encoding/json"
+ "fmt"
+ "io"
+ "io/ioutil"
+ "os"
+ "os/exec"
+ "runtime"
+ "strings"
+ "time"
+
+ "github.com/aws/aws-sdk-go/aws/awserr"
+ "github.com/aws/aws-sdk-go/aws/credentials"
+)
+
+const (
+ // ProviderName is the name this credentials provider will label any
+ // returned credentials Value with.
+ ProviderName = `ProcessProvider`
+
+ // ErrCodeProcessProviderParse error parsing process output
+ ErrCodeProcessProviderParse = "ProcessProviderParseError"
+
+ // ErrCodeProcessProviderVersion version error in output
+ ErrCodeProcessProviderVersion = "ProcessProviderVersionError"
+
+ // ErrCodeProcessProviderRequired required attribute missing in output
+ ErrCodeProcessProviderRequired = "ProcessProviderRequiredError"
+
+ // ErrCodeProcessProviderExecution execution of command failed
+ ErrCodeProcessProviderExecution = "ProcessProviderExecutionError"
+
+ // errMsgProcessProviderTimeout process took longer than allowed
+ errMsgProcessProviderTimeout = "credential process timed out"
+
+ // errMsgProcessProviderProcess process error
+ errMsgProcessProviderProcess = "error in credential_process"
+
+ // errMsgProcessProviderParse problem parsing output
+ errMsgProcessProviderParse = "parse failed of credential_process output"
+
+ // errMsgProcessProviderVersion version error in output
+ errMsgProcessProviderVersion = "wrong version in process output (not 1)"
+
+ // errMsgProcessProviderMissKey missing access key id in output
+ errMsgProcessProviderMissKey = "missing AccessKeyId in process output"
+
+ // errMsgProcessProviderMissSecret missing secret acess key in output
+ errMsgProcessProviderMissSecret = "missing SecretAccessKey in process output"
+
+ // errMsgProcessProviderPrepareCmd prepare of command failed
+ errMsgProcessProviderPrepareCmd = "failed to prepare command"
+
+ // errMsgProcessProviderEmptyCmd command must not be empty
+ errMsgProcessProviderEmptyCmd = "command must not be empty"
+
+ // errMsgProcessProviderPipe failed to initialize pipe
+ errMsgProcessProviderPipe = "failed to initialize pipe"
+
+ // DefaultDuration is the default amount of time in minutes that the
+ // credentials will be valid for.
+ DefaultDuration = time.Duration(15) * time.Minute
+
+ // DefaultBufSize limits buffer size from growing to an enormous
+ // amount due to a faulty process.
+ DefaultBufSize = 1024
+
+ // DefaultTimeout default limit on time a process can run.
+ DefaultTimeout = time.Duration(1) * time.Minute
+)
+
+// ProcessProvider satisfies the credentials.Provider interface, and is a
+// client to retrieve credentials from a process.
+type ProcessProvider struct {
+ staticCreds bool
+ credentials.Expiry
+ originalCommand []string
+
+ // Expiry duration of the credentials. Defaults to 15 minutes if not set.
+ Duration time.Duration
+
+ // ExpiryWindow will allow the credentials to trigger refreshing prior to
+ // the credentials actually expiring. This is beneficial so race conditions
+ // with expiring credentials do not cause request to fail unexpectedly
+ // due to ExpiredTokenException exceptions.
+ //
+ // So a ExpiryWindow of 10s would cause calls to IsExpired() to return true
+ // 10 seconds before the credentials are actually expired.
+ //
+ // If ExpiryWindow is 0 or less it will be ignored.
+ ExpiryWindow time.Duration
+
+ // A string representing an os command that should return a JSON with
+ // credential information.
+ command *exec.Cmd
+
+ // MaxBufSize limits memory usage from growing to an enormous
+ // amount due to a faulty process.
+ MaxBufSize int
+
+ // Timeout limits the time a process can run.
+ Timeout time.Duration
+}
+
+// NewCredentials returns a pointer to a new Credentials object wrapping the
+// ProcessProvider. The credentials will expire every 15 minutes by default.
+func NewCredentials(command string, options ...func(*ProcessProvider)) *credentials.Credentials {
+ p := &ProcessProvider{
+ command: exec.Command(command),
+ Duration: DefaultDuration,
+ Timeout: DefaultTimeout,
+ MaxBufSize: DefaultBufSize,
+ }
+
+ for _, option := range options {
+ option(p)
+ }
+
+ return credentials.NewCredentials(p)
+}
+
+// NewCredentialsTimeout returns a pointer to a new Credentials object with
+// the specified command and timeout, and default duration and max buffer size.
+func NewCredentialsTimeout(command string, timeout time.Duration) *credentials.Credentials {
+ p := NewCredentials(command, func(opt *ProcessProvider) {
+ opt.Timeout = timeout
+ })
+
+ return p
+}
+
+// NewCredentialsCommand returns a pointer to a new Credentials object with
+// the specified command, and default timeout, duration and max buffer size.
+func NewCredentialsCommand(command *exec.Cmd, options ...func(*ProcessProvider)) *credentials.Credentials {
+ p := &ProcessProvider{
+ command: command,
+ Duration: DefaultDuration,
+ Timeout: DefaultTimeout,
+ MaxBufSize: DefaultBufSize,
+ }
+
+ for _, option := range options {
+ option(p)
+ }
+
+ return credentials.NewCredentials(p)
+}
+
+type credentialProcessResponse struct {
+ Version int
+ AccessKeyID string `json:"AccessKeyId"`
+ SecretAccessKey string
+ SessionToken string
+ Expiration *time.Time
+}
+
+// Retrieve executes the 'credential_process' and returns the credentials.
+func (p *ProcessProvider) Retrieve() (credentials.Value, error) {
+ out, err := p.executeCredentialProcess()
+ if err != nil {
+ return credentials.Value{ProviderName: ProviderName}, err
+ }
+
+ // Serialize and validate response
+ resp := &credentialProcessResponse{}
+ if err = json.Unmarshal(out, resp); err != nil {
+ return credentials.Value{ProviderName: ProviderName}, awserr.New(
+ ErrCodeProcessProviderParse,
+ fmt.Sprintf("%s: %s", errMsgProcessProviderParse, string(out)),
+ err)
+ }
+
+ if resp.Version != 1 {
+ return credentials.Value{ProviderName: ProviderName}, awserr.New(
+ ErrCodeProcessProviderVersion,
+ errMsgProcessProviderVersion,
+ nil)
+ }
+
+ if len(resp.AccessKeyID) == 0 {
+ return credentials.Value{ProviderName: ProviderName}, awserr.New(
+ ErrCodeProcessProviderRequired,
+ errMsgProcessProviderMissKey,
+ nil)
+ }
+
+ if len(resp.SecretAccessKey) == 0 {
+ return credentials.Value{ProviderName: ProviderName}, awserr.New(
+ ErrCodeProcessProviderRequired,
+ errMsgProcessProviderMissSecret,
+ nil)
+ }
+
+ // Handle expiration
+ p.staticCreds = resp.Expiration == nil
+ if resp.Expiration != nil {
+ p.SetExpiration(*resp.Expiration, p.ExpiryWindow)
+ }
+
+ return credentials.Value{
+ ProviderName: ProviderName,
+ AccessKeyID: resp.AccessKeyID,
+ SecretAccessKey: resp.SecretAccessKey,
+ SessionToken: resp.SessionToken,
+ }, nil
+}
+
+// IsExpired returns true if the credentials retrieved are expired, or not yet
+// retrieved.
+func (p *ProcessProvider) IsExpired() bool {
+ if p.staticCreds {
+ return false
+ }
+ return p.Expiry.IsExpired()
+}
+
+// prepareCommand prepares the command to be executed.
+func (p *ProcessProvider) prepareCommand() error {
+
+ var cmdArgs []string
+ if runtime.GOOS == "windows" {
+ cmdArgs = []string{"cmd.exe", "/C"}
+ } else {
+ cmdArgs = []string{"sh", "-c"}
+ }
+
+ if len(p.originalCommand) == 0 {
+ p.originalCommand = make([]string, len(p.command.Args))
+ copy(p.originalCommand, p.command.Args)
+
+ // check for empty command because it succeeds
+ if len(strings.TrimSpace(p.originalCommand[0])) < 1 {
+ return awserr.New(
+ ErrCodeProcessProviderExecution,
+ fmt.Sprintf(
+ "%s: %s",
+ errMsgProcessProviderPrepareCmd,
+ errMsgProcessProviderEmptyCmd),
+ nil)
+ }
+ }
+
+ cmdArgs = append(cmdArgs, p.originalCommand...)
+ p.command = exec.Command(cmdArgs[0], cmdArgs[1:]...)
+ p.command.Env = os.Environ()
+
+ return nil
+}
+
+// executeCredentialProcess starts the credential process on the OS and
+// returns the results or an error.
+func (p *ProcessProvider) executeCredentialProcess() ([]byte, error) {
+
+ if err := p.prepareCommand(); err != nil {
+ return nil, err
+ }
+
+ // Setup the pipes
+ outReadPipe, outWritePipe, err := os.Pipe()
+ if err != nil {
+ return nil, awserr.New(
+ ErrCodeProcessProviderExecution,
+ errMsgProcessProviderPipe,
+ err)
+ }
+
+ p.command.Stderr = os.Stderr // display stderr on console for MFA
+ p.command.Stdout = outWritePipe // get creds json on process's stdout
+ p.command.Stdin = os.Stdin // enable stdin for MFA
+
+ output := bytes.NewBuffer(make([]byte, 0, p.MaxBufSize))
+
+ stdoutCh := make(chan error, 1)
+ go readInput(
+ io.LimitReader(outReadPipe, int64(p.MaxBufSize)),
+ output,
+ stdoutCh)
+
+ execCh := make(chan error, 1)
+ go executeCommand(*p.command, execCh)
+
+ finished := false
+ var errors []error
+ for !finished {
+ select {
+ case readError := <-stdoutCh:
+ errors = appendError(errors, readError)
+ finished = true
+ case execError := <-execCh:
+ err := outWritePipe.Close()
+ errors = appendError(errors, err)
+ errors = appendError(errors, execError)
+ if errors != nil {
+ return output.Bytes(), awserr.NewBatchError(
+ ErrCodeProcessProviderExecution,
+ errMsgProcessProviderProcess,
+ errors)
+ }
+ case <-time.After(p.Timeout):
+ finished = true
+ return output.Bytes(), awserr.NewBatchError(
+ ErrCodeProcessProviderExecution,
+ errMsgProcessProviderTimeout,
+ errors) // errors can be nil
+ }
+ }
+
+ out := output.Bytes()
+
+ if runtime.GOOS == "windows" {
+ // windows adds slashes to quotes
+ out = []byte(strings.Replace(string(out), `\"`, `"`, -1))
+ }
+
+ return out, nil
+}
+
+// appendError conveniently checks for nil before appending slice
+func appendError(errors []error, err error) []error {
+ if err != nil {
+ return append(errors, err)
+ }
+ return errors
+}
+
+func executeCommand(cmd exec.Cmd, exec chan error) {
+ // Start the command
+ err := cmd.Start()
+ if err == nil {
+ err = cmd.Wait()
+ }
+
+ exec <- err
+}
+
+func readInput(r io.Reader, w io.Writer, read chan error) {
+ tee := io.TeeReader(r, w)
+
+ _, err := ioutil.ReadAll(tee)
+
+ if err == io.EOF {
+ err = nil
+ }
+
+ read <- err // will only arrive here when write end of pipe is closed
+}
diff --git a/vendor/github.com/aws/aws-sdk-go/aws/credentials/shared_credentials_provider.go b/vendor/github.com/aws/aws-sdk-go/aws/credentials/shared_credentials_provider.go
index 51e21e0f38f..e1551495812 100644
--- a/vendor/github.com/aws/aws-sdk-go/aws/credentials/shared_credentials_provider.go
+++ b/vendor/github.com/aws/aws-sdk-go/aws/credentials/shared_credentials_provider.go
@@ -4,9 +4,8 @@ import (
"fmt"
"os"
- "github.com/go-ini/ini"
-
"github.com/aws/aws-sdk-go/aws/awserr"
+ "github.com/aws/aws-sdk-go/internal/ini"
"github.com/aws/aws-sdk-go/internal/shareddefaults"
)
@@ -77,36 +76,37 @@ func (p *SharedCredentialsProvider) IsExpired() bool {
// The credentials retrieved from the profile will be returned or error. Error will be
// returned if it fails to read from the file, or the data is invalid.
func loadProfile(filename, profile string) (Value, error) {
- config, err := ini.Load(filename)
+ config, err := ini.OpenFile(filename)
if err != nil {
return Value{ProviderName: SharedCredsProviderName}, awserr.New("SharedCredsLoad", "failed to load shared credentials file", err)
}
- iniProfile, err := config.GetSection(profile)
- if err != nil {
- return Value{ProviderName: SharedCredsProviderName}, awserr.New("SharedCredsLoad", "failed to get profile", err)
+
+ iniProfile, ok := config.GetSection(profile)
+ if !ok {
+ return Value{ProviderName: SharedCredsProviderName}, awserr.New("SharedCredsLoad", "failed to get profile", nil)
}
- id, err := iniProfile.GetKey("aws_access_key_id")
- if err != nil {
+ id := iniProfile.String("aws_access_key_id")
+ if len(id) == 0 {
return Value{ProviderName: SharedCredsProviderName}, awserr.New("SharedCredsAccessKey",
fmt.Sprintf("shared credentials %s in %s did not contain aws_access_key_id", profile, filename),
- err)
+ nil)
}
- secret, err := iniProfile.GetKey("aws_secret_access_key")
- if err != nil {
+ secret := iniProfile.String("aws_secret_access_key")
+ if len(secret) == 0 {
return Value{ProviderName: SharedCredsProviderName}, awserr.New("SharedCredsSecret",
fmt.Sprintf("shared credentials %s in %s did not contain aws_secret_access_key", profile, filename),
nil)
}
// Default to empty string if not found
- token := iniProfile.Key("aws_session_token")
+ token := iniProfile.String("aws_session_token")
return Value{
- AccessKeyID: id.String(),
- SecretAccessKey: secret.String(),
- SessionToken: token.String(),
+ AccessKeyID: id,
+ SecretAccessKey: secret,
+ SessionToken: token,
ProviderName: SharedCredsProviderName,
}, nil
}
diff --git a/vendor/github.com/aws/aws-sdk-go/aws/credentials/static_provider.go b/vendor/github.com/aws/aws-sdk-go/aws/credentials/static_provider.go
index 4f5dab3fcc4..531139e3971 100644
--- a/vendor/github.com/aws/aws-sdk-go/aws/credentials/static_provider.go
+++ b/vendor/github.com/aws/aws-sdk-go/aws/credentials/static_provider.go
@@ -9,8 +9,6 @@ const StaticProviderName = "StaticProvider"
var (
// ErrStaticCredentialsEmpty is emitted when static credentials are empty.
- //
- // @readonly
ErrStaticCredentialsEmpty = awserr.New("EmptyStaticCreds", "static credentials are empty", nil)
)
diff --git a/vendor/github.com/aws/aws-sdk-go/aws/csm/metric.go b/vendor/github.com/aws/aws-sdk-go/aws/csm/metric.go
index 4b0d630e4c1..5bacc791a1e 100644
--- a/vendor/github.com/aws/aws-sdk-go/aws/csm/metric.go
+++ b/vendor/github.com/aws/aws-sdk-go/aws/csm/metric.go
@@ -3,6 +3,8 @@ package csm
import (
"strconv"
"time"
+
+ "github.com/aws/aws-sdk-go/aws"
)
type metricTime time.Time
@@ -39,6 +41,12 @@ type metric struct {
SDKException *string `json:"SdkException,omitempty"`
SDKExceptionMessage *string `json:"SdkExceptionMessage,omitempty"`
+ FinalHTTPStatusCode *int `json:"FinalHttpStatusCode,omitempty"`
+ FinalAWSException *string `json:"FinalAwsException,omitempty"`
+ FinalAWSExceptionMessage *string `json:"FinalAwsExceptionMessage,omitempty"`
+ FinalSDKException *string `json:"FinalSdkException,omitempty"`
+ FinalSDKExceptionMessage *string `json:"FinalSdkExceptionMessage,omitempty"`
+
DestinationIP *string `json:"DestinationIp,omitempty"`
ConnectionReused *int `json:"ConnectionReused,omitempty"`
@@ -48,4 +56,54 @@ type metric struct {
DNSLatency *int `json:"DnsLatency,omitempty"`
TCPLatency *int `json:"TcpLatency,omitempty"`
SSLLatency *int `json:"SslLatency,omitempty"`
+
+ MaxRetriesExceeded *int `json:"MaxRetriesExceeded,omitempty"`
+}
+
+func (m *metric) TruncateFields() {
+ m.ClientID = truncateString(m.ClientID, 255)
+ m.UserAgent = truncateString(m.UserAgent, 256)
+
+ m.AWSException = truncateString(m.AWSException, 128)
+ m.AWSExceptionMessage = truncateString(m.AWSExceptionMessage, 512)
+
+ m.SDKException = truncateString(m.SDKException, 128)
+ m.SDKExceptionMessage = truncateString(m.SDKExceptionMessage, 512)
+
+ m.FinalAWSException = truncateString(m.FinalAWSException, 128)
+ m.FinalAWSExceptionMessage = truncateString(m.FinalAWSExceptionMessage, 512)
+
+ m.FinalSDKException = truncateString(m.FinalSDKException, 128)
+ m.FinalSDKExceptionMessage = truncateString(m.FinalSDKExceptionMessage, 512)
+}
+
+func truncateString(v *string, l int) *string {
+ if v != nil && len(*v) > l {
+ nv := (*v)[:l]
+ return &nv
+ }
+
+ return v
+}
+
+func (m *metric) SetException(e metricException) {
+ switch te := e.(type) {
+ case awsException:
+ m.AWSException = aws.String(te.exception)
+ m.AWSExceptionMessage = aws.String(te.message)
+ case sdkException:
+ m.SDKException = aws.String(te.exception)
+ m.SDKExceptionMessage = aws.String(te.message)
+ }
+}
+
+func (m *metric) SetFinalException(e metricException) {
+ switch te := e.(type) {
+ case awsException:
+ m.FinalAWSException = aws.String(te.exception)
+ m.FinalAWSExceptionMessage = aws.String(te.message)
+ case sdkException:
+ m.FinalSDKException = aws.String(te.exception)
+ m.FinalSDKExceptionMessage = aws.String(te.message)
+ }
}
diff --git a/vendor/github.com/aws/aws-sdk-go/aws/csm/metricChan.go b/vendor/github.com/aws/aws-sdk-go/aws/csm/metric_chan.go
similarity index 100%
rename from vendor/github.com/aws/aws-sdk-go/aws/csm/metricChan.go
rename to vendor/github.com/aws/aws-sdk-go/aws/csm/metric_chan.go
diff --git a/vendor/github.com/aws/aws-sdk-go/aws/csm/metric_exception.go b/vendor/github.com/aws/aws-sdk-go/aws/csm/metric_exception.go
new file mode 100644
index 00000000000..54a99280ce9
--- /dev/null
+++ b/vendor/github.com/aws/aws-sdk-go/aws/csm/metric_exception.go
@@ -0,0 +1,26 @@
+package csm
+
+type metricException interface {
+ Exception() string
+ Message() string
+}
+
+type requestException struct {
+ exception string
+ message string
+}
+
+func (e requestException) Exception() string {
+ return e.exception
+}
+func (e requestException) Message() string {
+ return e.message
+}
+
+type awsException struct {
+ requestException
+}
+
+type sdkException struct {
+ requestException
+}
diff --git a/vendor/github.com/aws/aws-sdk-go/aws/csm/reporter.go b/vendor/github.com/aws/aws-sdk-go/aws/csm/reporter.go
index 1484c8fc5b1..0b5571acfbf 100644
--- a/vendor/github.com/aws/aws-sdk-go/aws/csm/reporter.go
+++ b/vendor/github.com/aws/aws-sdk-go/aws/csm/reporter.go
@@ -82,27 +82,29 @@ func (rep *Reporter) sendAPICallAttemptMetric(r *request.Request) {
if r.Error != nil {
if awserr, ok := r.Error.(awserr.Error); ok {
- setError(&m, awserr)
+ m.SetException(getMetricException(awserr))
}
}
+ m.TruncateFields()
rep.metricsCh.Push(m)
}
-func setError(m *metric, err awserr.Error) {
- msg := err.Message()
+func getMetricException(err awserr.Error) metricException {
+ msg := err.Error()
code := err.Code()
switch code {
case "RequestError",
"SerializationError",
request.CanceledErrorCode:
-
- m.SDKException = &code
- m.SDKExceptionMessage = &msg
+ return sdkException{
+ requestException{exception: code, message: msg},
+ }
default:
- m.AWSException = &code
- m.AWSExceptionMessage = &msg
+ return awsException{
+ requestException{exception: code, message: msg},
+ }
}
}
@@ -113,16 +115,31 @@ func (rep *Reporter) sendAPICallMetric(r *request.Request) {
now := time.Now()
m := metric{
- ClientID: aws.String(rep.clientID),
- API: aws.String(r.Operation.Name),
- Service: aws.String(r.ClientInfo.ServiceID),
- Timestamp: (*metricTime)(&now),
- Type: aws.String("ApiCall"),
- AttemptCount: aws.Int(r.RetryCount + 1),
- Latency: aws.Int(int(time.Now().Sub(r.Time) / time.Millisecond)),
- XAmzRequestID: aws.String(r.RequestID),
+ ClientID: aws.String(rep.clientID),
+ API: aws.String(r.Operation.Name),
+ Service: aws.String(r.ClientInfo.ServiceID),
+ Timestamp: (*metricTime)(&now),
+ UserAgent: aws.String(r.HTTPRequest.Header.Get("User-Agent")),
+ Type: aws.String("ApiCall"),
+ AttemptCount: aws.Int(r.RetryCount + 1),
+ Region: r.Config.Region,
+ Latency: aws.Int(int(time.Now().Sub(r.Time) / time.Millisecond)),
+ XAmzRequestID: aws.String(r.RequestID),
+ MaxRetriesExceeded: aws.Int(boolIntValue(r.RetryCount >= r.MaxRetries())),
}
+ if r.HTTPResponse != nil {
+ m.FinalHTTPStatusCode = aws.Int(r.HTTPResponse.StatusCode)
+ }
+
+ if r.Error != nil {
+ if awserr, ok := r.Error.(awserr.Error); ok {
+ m.SetFinalException(getMetricException(awserr))
+ }
+ }
+
+ m.TruncateFields()
+
// TODO: Probably want to figure something out for logging dropped
// metrics
rep.metricsCh.Push(m)
@@ -222,9 +239,22 @@ func (rep *Reporter) InjectHandlers(handlers *request.Handlers) {
return
}
- apiCallHandler := request.NamedHandler{Name: APICallMetricHandlerName, Fn: rep.sendAPICallMetric}
- handlers.Complete.PushFrontNamed(apiCallHandler)
+ handlers.Complete.PushFrontNamed(request.NamedHandler{
+ Name: APICallMetricHandlerName,
+ Fn: rep.sendAPICallMetric,
+ })
- apiCallAttemptHandler := request.NamedHandler{Name: APICallAttemptMetricHandlerName, Fn: rep.sendAPICallAttemptMetric}
- handlers.AfterRetry.PushFrontNamed(apiCallAttemptHandler)
+ handlers.CompleteAttempt.PushFrontNamed(request.NamedHandler{
+ Name: APICallAttemptMetricHandlerName,
+ Fn: rep.sendAPICallAttemptMetric,
+ })
+}
+
+// boolIntValue return 1 for true and 0 for false.
+func boolIntValue(b bool) int {
+ if b {
+ return 1
+ }
+
+ return 0
}
diff --git a/vendor/github.com/aws/aws-sdk-go/aws/defaults/defaults.go b/vendor/github.com/aws/aws-sdk-go/aws/defaults/defaults.go
index 3cf1036b625..23bb639e018 100644
--- a/vendor/github.com/aws/aws-sdk-go/aws/defaults/defaults.go
+++ b/vendor/github.com/aws/aws-sdk-go/aws/defaults/defaults.go
@@ -24,6 +24,7 @@ import (
"github.com/aws/aws-sdk-go/aws/ec2metadata"
"github.com/aws/aws-sdk-go/aws/endpoints"
"github.com/aws/aws-sdk-go/aws/request"
+ "github.com/aws/aws-sdk-go/internal/shareddefaults"
)
// A Defaults provides a collection of default values for SDK clients.
@@ -92,17 +93,28 @@ func Handlers() request.Handlers {
func CredChain(cfg *aws.Config, handlers request.Handlers) *credentials.Credentials {
return credentials.NewCredentials(&credentials.ChainProvider{
VerboseErrors: aws.BoolValue(cfg.CredentialsChainVerboseErrors),
- Providers: []credentials.Provider{
- &credentials.EnvProvider{},
- &credentials.SharedCredentialsProvider{Filename: "", Profile: ""},
- RemoteCredProvider(*cfg, handlers),
- },
+ Providers: CredProviders(cfg, handlers),
})
}
+// CredProviders returns the slice of providers used in
+// the default credential chain.
+//
+// For applications that need to use some other provider (for example use
+// different environment variables for legacy reasons) but still fall back
+// on the default chain of providers. This allows that default chaint to be
+// automatically updated
+func CredProviders(cfg *aws.Config, handlers request.Handlers) []credentials.Provider {
+ return []credentials.Provider{
+ &credentials.EnvProvider{},
+ &credentials.SharedCredentialsProvider{Filename: "", Profile: ""},
+ RemoteCredProvider(*cfg, handlers),
+ }
+}
+
const (
- httpProviderEnvVar = "AWS_CONTAINER_CREDENTIALS_FULL_URI"
- ecsCredsProviderEnvVar = "AWS_CONTAINER_CREDENTIALS_RELATIVE_URI"
+ httpProviderAuthorizationEnvVar = "AWS_CONTAINER_AUTHORIZATION_TOKEN"
+ httpProviderEnvVar = "AWS_CONTAINER_CREDENTIALS_FULL_URI"
)
// RemoteCredProvider returns a credentials provider for the default remote
@@ -112,8 +124,8 @@ func RemoteCredProvider(cfg aws.Config, handlers request.Handlers) credentials.P
return localHTTPCredProvider(cfg, handlers, u)
}
- if uri := os.Getenv(ecsCredsProviderEnvVar); len(uri) > 0 {
- u := fmt.Sprintf("http://169.254.170.2%s", uri)
+ if uri := os.Getenv(shareddefaults.ECSCredsProviderEnvVar); len(uri) > 0 {
+ u := fmt.Sprintf("%s%s", shareddefaults.ECSContainerCredentialsURI, uri)
return httpCredProvider(cfg, handlers, u)
}
@@ -176,6 +188,7 @@ func httpCredProvider(cfg aws.Config, handlers request.Handlers, u string) crede
return endpointcreds.NewProviderClient(cfg, handlers, u,
func(p *endpointcreds.Provider) {
p.ExpiryWindow = 5 * time.Minute
+ p.AuthorizationToken = os.Getenv(httpProviderAuthorizationEnvVar)
},
)
}
diff --git a/vendor/github.com/aws/aws-sdk-go/aws/ec2metadata/api.go b/vendor/github.com/aws/aws-sdk-go/aws/ec2metadata/api.go
index 984407a580f..88e2fc70734 100644
--- a/vendor/github.com/aws/aws-sdk-go/aws/ec2metadata/api.go
+++ b/vendor/github.com/aws/aws-sdk-go/aws/ec2metadata/api.go
@@ -4,12 +4,12 @@ import (
"encoding/json"
"fmt"
"net/http"
- "path"
"strings"
"time"
"github.com/aws/aws-sdk-go/aws/awserr"
"github.com/aws/aws-sdk-go/aws/request"
+ "github.com/aws/aws-sdk-go/internal/sdkuri"
)
// GetMetadata uses the path provided to request information from the EC2
@@ -19,7 +19,7 @@ func (c *EC2Metadata) GetMetadata(p string) (string, error) {
op := &request.Operation{
Name: "GetMetadata",
HTTPMethod: "GET",
- HTTPPath: path.Join("/", "meta-data", p),
+ HTTPPath: sdkuri.PathJoin("/meta-data", p),
}
output := &metadataOutput{}
@@ -35,7 +35,7 @@ func (c *EC2Metadata) GetUserData() (string, error) {
op := &request.Operation{
Name: "GetUserData",
HTTPMethod: "GET",
- HTTPPath: path.Join("/", "user-data"),
+ HTTPPath: "/user-data",
}
output := &metadataOutput{}
@@ -56,7 +56,7 @@ func (c *EC2Metadata) GetDynamicData(p string) (string, error) {
op := &request.Operation{
Name: "GetDynamicData",
HTTPMethod: "GET",
- HTTPPath: path.Join("/", "dynamic", p),
+ HTTPPath: sdkuri.PathJoin("/dynamic", p),
}
output := &metadataOutput{}
@@ -118,6 +118,10 @@ func (c *EC2Metadata) Region() (string, error) {
return "", err
}
+ if len(resp) == 0 {
+ return "", awserr.New("EC2MetadataError", "invalid Region response", nil)
+ }
+
// returns region without the suffix. Eg: us-west-2a becomes us-west-2
return resp[:len(resp)-1], nil
}
diff --git a/vendor/github.com/aws/aws-sdk-go/aws/ec2metadata/service.go b/vendor/github.com/aws/aws-sdk-go/aws/ec2metadata/service.go
index ef5f73292ba..7d1f66e4e85 100644
--- a/vendor/github.com/aws/aws-sdk-go/aws/ec2metadata/service.go
+++ b/vendor/github.com/aws/aws-sdk-go/aws/ec2metadata/service.go
@@ -4,7 +4,7 @@
// This package's client can be disabled completely by setting the environment
// variable "AWS_EC2_METADATA_DISABLED=true". This environment variable set to
// true instructs the SDK to disable the EC2 Metadata client. The client cannot
-// be used while the environemnt variable is set to true, (case insensitive).
+// be used while the environment variable is set to true, (case insensitive).
package ec2metadata
import (
@@ -72,6 +72,7 @@ func NewClient(cfg aws.Config, handlers request.Handlers, endpoint, signingRegio
cfg,
metadata.ClientInfo{
ServiceName: ServiceName,
+ ServiceID: ServiceName,
Endpoint: endpoint,
APIVersion: "latest",
},
diff --git a/vendor/github.com/aws/aws-sdk-go/aws/endpoints/decode.go b/vendor/github.com/aws/aws-sdk-go/aws/endpoints/decode.go
index 74f72de0735..1ddeae10198 100644
--- a/vendor/github.com/aws/aws-sdk-go/aws/endpoints/decode.go
+++ b/vendor/github.com/aws/aws-sdk-go/aws/endpoints/decode.go
@@ -84,6 +84,7 @@ func decodeV3Endpoints(modelDef modelDefinition, opts DecodeModelOptions) (Resol
custAddEC2Metadata(p)
custAddS3DualStack(p)
custRmIotDataService(p)
+ custFixAppAutoscalingChina(p)
}
return ps, nil
@@ -94,7 +95,12 @@ func custAddS3DualStack(p *partition) {
return
}
- s, ok := p.Services["s3"]
+ custAddDualstack(p, "s3")
+ custAddDualstack(p, "s3-control")
+}
+
+func custAddDualstack(p *partition, svcName string) {
+ s, ok := p.Services[svcName]
if !ok {
return
}
@@ -102,7 +108,7 @@ func custAddS3DualStack(p *partition) {
s.Defaults.HasDualStack = boxedTrue
s.Defaults.DualStackHostname = "{service}.dualstack.{region}.{dnsSuffix}"
- p.Services["s3"] = s
+ p.Services[svcName] = s
}
func custAddEC2Metadata(p *partition) {
@@ -122,6 +128,27 @@ func custRmIotDataService(p *partition) {
delete(p.Services, "data.iot")
}
+func custFixAppAutoscalingChina(p *partition) {
+ if p.ID != "aws-cn" {
+ return
+ }
+
+ const serviceName = "application-autoscaling"
+ s, ok := p.Services[serviceName]
+ if !ok {
+ return
+ }
+
+ const expectHostname = `autoscaling.{region}.amazonaws.com`
+ if e, a := s.Defaults.Hostname, expectHostname; e != a {
+ fmt.Printf("custFixAppAutoscalingChina: ignoring customization, expected %s, got %s\n", e, a)
+ return
+ }
+
+ s.Defaults.Hostname = expectHostname + ".cn"
+ p.Services[serviceName] = s
+}
+
type decodeModelError struct {
awsError
}
diff --git a/vendor/github.com/aws/aws-sdk-go/aws/endpoints/defaults.go b/vendor/github.com/aws/aws-sdk-go/aws/endpoints/defaults.go
index c472a57fad2..2169b646432 100644
--- a/vendor/github.com/aws/aws-sdk-go/aws/endpoints/defaults.go
+++ b/vendor/github.com/aws/aws-sdk-go/aws/endpoints/defaults.go
@@ -22,6 +22,7 @@ const (
ApSoutheast2RegionID = "ap-southeast-2" // Asia Pacific (Sydney).
CaCentral1RegionID = "ca-central-1" // Canada (Central).
EuCentral1RegionID = "eu-central-1" // EU (Frankfurt).
+ EuNorth1RegionID = "eu-north-1" // EU (Stockholm).
EuWest1RegionID = "eu-west-1" // EU (Ireland).
EuWest2RegionID = "eu-west-2" // EU (London).
EuWest3RegionID = "eu-west-3" // EU (Paris).
@@ -40,140 +41,10 @@ const (
// AWS GovCloud (US) partition's regions.
const (
+ UsGovEast1RegionID = "us-gov-east-1" // AWS GovCloud (US-East).
UsGovWest1RegionID = "us-gov-west-1" // AWS GovCloud (US).
)
-// Service identifiers
-const (
- A4bServiceID = "a4b" // A4b.
- AcmServiceID = "acm" // Acm.
- AcmPcaServiceID = "acm-pca" // AcmPca.
- ApiMediatailorServiceID = "api.mediatailor" // ApiMediatailor.
- ApiPricingServiceID = "api.pricing" // ApiPricing.
- ApigatewayServiceID = "apigateway" // Apigateway.
- ApplicationAutoscalingServiceID = "application-autoscaling" // ApplicationAutoscaling.
- Appstream2ServiceID = "appstream2" // Appstream2.
- AthenaServiceID = "athena" // Athena.
- AutoscalingServiceID = "autoscaling" // Autoscaling.
- AutoscalingPlansServiceID = "autoscaling-plans" // AutoscalingPlans.
- BatchServiceID = "batch" // Batch.
- BudgetsServiceID = "budgets" // Budgets.
- CeServiceID = "ce" // Ce.
- Cloud9ServiceID = "cloud9" // Cloud9.
- ClouddirectoryServiceID = "clouddirectory" // Clouddirectory.
- CloudformationServiceID = "cloudformation" // Cloudformation.
- CloudfrontServiceID = "cloudfront" // Cloudfront.
- CloudhsmServiceID = "cloudhsm" // Cloudhsm.
- Cloudhsmv2ServiceID = "cloudhsmv2" // Cloudhsmv2.
- CloudsearchServiceID = "cloudsearch" // Cloudsearch.
- CloudtrailServiceID = "cloudtrail" // Cloudtrail.
- CodebuildServiceID = "codebuild" // Codebuild.
- CodecommitServiceID = "codecommit" // Codecommit.
- CodedeployServiceID = "codedeploy" // Codedeploy.
- CodepipelineServiceID = "codepipeline" // Codepipeline.
- CodestarServiceID = "codestar" // Codestar.
- CognitoIdentityServiceID = "cognito-identity" // CognitoIdentity.
- CognitoIdpServiceID = "cognito-idp" // CognitoIdp.
- CognitoSyncServiceID = "cognito-sync" // CognitoSync.
- ComprehendServiceID = "comprehend" // Comprehend.
- ConfigServiceID = "config" // Config.
- CurServiceID = "cur" // Cur.
- DatapipelineServiceID = "datapipeline" // Datapipeline.
- DaxServiceID = "dax" // Dax.
- DevicefarmServiceID = "devicefarm" // Devicefarm.
- DirectconnectServiceID = "directconnect" // Directconnect.
- DiscoveryServiceID = "discovery" // Discovery.
- DmsServiceID = "dms" // Dms.
- DsServiceID = "ds" // Ds.
- DynamodbServiceID = "dynamodb" // Dynamodb.
- Ec2ServiceID = "ec2" // Ec2.
- Ec2metadataServiceID = "ec2metadata" // Ec2metadata.
- EcrServiceID = "ecr" // Ecr.
- EcsServiceID = "ecs" // Ecs.
- ElasticacheServiceID = "elasticache" // Elasticache.
- ElasticbeanstalkServiceID = "elasticbeanstalk" // Elasticbeanstalk.
- ElasticfilesystemServiceID = "elasticfilesystem" // Elasticfilesystem.
- ElasticloadbalancingServiceID = "elasticloadbalancing" // Elasticloadbalancing.
- ElasticmapreduceServiceID = "elasticmapreduce" // Elasticmapreduce.
- ElastictranscoderServiceID = "elastictranscoder" // Elastictranscoder.
- EmailServiceID = "email" // Email.
- EntitlementMarketplaceServiceID = "entitlement.marketplace" // EntitlementMarketplace.
- EsServiceID = "es" // Es.
- EventsServiceID = "events" // Events.
- FirehoseServiceID = "firehose" // Firehose.
- FmsServiceID = "fms" // Fms.
- GameliftServiceID = "gamelift" // Gamelift.
- GlacierServiceID = "glacier" // Glacier.
- GlueServiceID = "glue" // Glue.
- GreengrassServiceID = "greengrass" // Greengrass.
- GuarddutyServiceID = "guardduty" // Guardduty.
- HealthServiceID = "health" // Health.
- IamServiceID = "iam" // Iam.
- ImportexportServiceID = "importexport" // Importexport.
- InspectorServiceID = "inspector" // Inspector.
- IotServiceID = "iot" // Iot.
- KinesisServiceID = "kinesis" // Kinesis.
- KinesisanalyticsServiceID = "kinesisanalytics" // Kinesisanalytics.
- KinesisvideoServiceID = "kinesisvideo" // Kinesisvideo.
- KmsServiceID = "kms" // Kms.
- LambdaServiceID = "lambda" // Lambda.
- LightsailServiceID = "lightsail" // Lightsail.
- LogsServiceID = "logs" // Logs.
- MachinelearningServiceID = "machinelearning" // Machinelearning.
- MarketplacecommerceanalyticsServiceID = "marketplacecommerceanalytics" // Marketplacecommerceanalytics.
- MediaconvertServiceID = "mediaconvert" // Mediaconvert.
- MedialiveServiceID = "medialive" // Medialive.
- MediapackageServiceID = "mediapackage" // Mediapackage.
- MediastoreServiceID = "mediastore" // Mediastore.
- MeteringMarketplaceServiceID = "metering.marketplace" // MeteringMarketplace.
- MghServiceID = "mgh" // Mgh.
- MobileanalyticsServiceID = "mobileanalytics" // Mobileanalytics.
- ModelsLexServiceID = "models.lex" // ModelsLex.
- MonitoringServiceID = "monitoring" // Monitoring.
- MturkRequesterServiceID = "mturk-requester" // MturkRequester.
- NeptuneServiceID = "neptune" // Neptune.
- OpsworksServiceID = "opsworks" // Opsworks.
- OpsworksCmServiceID = "opsworks-cm" // OpsworksCm.
- OrganizationsServiceID = "organizations" // Organizations.
- PinpointServiceID = "pinpoint" // Pinpoint.
- PollyServiceID = "polly" // Polly.
- RdsServiceID = "rds" // Rds.
- RedshiftServiceID = "redshift" // Redshift.
- RekognitionServiceID = "rekognition" // Rekognition.
- ResourceGroupsServiceID = "resource-groups" // ResourceGroups.
- Route53ServiceID = "route53" // Route53.
- Route53domainsServiceID = "route53domains" // Route53domains.
- RuntimeLexServiceID = "runtime.lex" // RuntimeLex.
- RuntimeSagemakerServiceID = "runtime.sagemaker" // RuntimeSagemaker.
- S3ServiceID = "s3" // S3.
- SagemakerServiceID = "sagemaker" // Sagemaker.
- SdbServiceID = "sdb" // Sdb.
- SecretsmanagerServiceID = "secretsmanager" // Secretsmanager.
- ServerlessrepoServiceID = "serverlessrepo" // Serverlessrepo.
- ServicecatalogServiceID = "servicecatalog" // Servicecatalog.
- ServicediscoveryServiceID = "servicediscovery" // Servicediscovery.
- ShieldServiceID = "shield" // Shield.
- SmsServiceID = "sms" // Sms.
- SnowballServiceID = "snowball" // Snowball.
- SnsServiceID = "sns" // Sns.
- SqsServiceID = "sqs" // Sqs.
- SsmServiceID = "ssm" // Ssm.
- StatesServiceID = "states" // States.
- StoragegatewayServiceID = "storagegateway" // Storagegateway.
- StreamsDynamodbServiceID = "streams.dynamodb" // StreamsDynamodb.
- StsServiceID = "sts" // Sts.
- SupportServiceID = "support" // Support.
- SwfServiceID = "swf" // Swf.
- TaggingServiceID = "tagging" // Tagging.
- TranslateServiceID = "translate" // Translate.
- WafServiceID = "waf" // Waf.
- WafRegionalServiceID = "waf-regional" // WafRegional.
- WorkdocsServiceID = "workdocs" // Workdocs.
- WorkmailServiceID = "workmail" // Workmail.
- WorkspacesServiceID = "workspaces" // Workspaces.
- XrayServiceID = "xray" // Xray.
-)
-
// DefaultResolver returns an Endpoint resolver that will be able
// to resolve endpoints for: AWS Standard, AWS China, and AWS GovCloud (US).
//
@@ -241,6 +112,9 @@ var awsPartition = partition{
"eu-central-1": region{
Description: "EU (Frankfurt)",
},
+ "eu-north-1": region{
+ Description: "EU (Stockholm)",
+ },
"eu-west-1": region{
Description: "EU (Ireland)",
},
@@ -283,6 +157,7 @@ var awsPartition = partition{
"ap-southeast-2": endpoint{},
"ca-central-1": endpoint{},
"eu-central-1": endpoint{},
+ "eu-north-1": endpoint{},
"eu-west-1": endpoint{},
"eu-west-2": endpoint{},
"eu-west-3": endpoint{},
@@ -304,6 +179,7 @@ var awsPartition = partition{
"ca-central-1": endpoint{},
"eu-central-1": endpoint{},
"eu-west-1": endpoint{},
+ "eu-west-2": endpoint{},
"us-east-1": endpoint{},
"us-east-2": endpoint{},
"us-west-2": endpoint{},
@@ -330,6 +206,24 @@ var awsPartition = partition{
"us-east-1": endpoint{},
},
},
+ "api.sagemaker": service{
+
+ Endpoints: endpoints{
+ "ap-northeast-1": endpoint{},
+ "ap-northeast-2": endpoint{},
+ "ap-south-1": endpoint{},
+ "ap-southeast-1": endpoint{},
+ "ap-southeast-2": endpoint{},
+ "ca-central-1": endpoint{},
+ "eu-central-1": endpoint{},
+ "eu-west-1": endpoint{},
+ "eu-west-2": endpoint{},
+ "us-east-1": endpoint{},
+ "us-east-2": endpoint{},
+ "us-west-1": endpoint{},
+ "us-west-2": endpoint{},
+ },
+ },
"apigateway": service{
Endpoints: endpoints{
@@ -340,6 +234,7 @@ var awsPartition = partition{
"ap-southeast-2": endpoint{},
"ca-central-1": endpoint{},
"eu-central-1": endpoint{},
+ "eu-north-1": endpoint{},
"eu-west-1": endpoint{},
"eu-west-2": endpoint{},
"eu-west-3": endpoint{},
@@ -366,6 +261,7 @@ var awsPartition = partition{
"ap-southeast-2": endpoint{},
"ca-central-1": endpoint{},
"eu-central-1": endpoint{},
+ "eu-north-1": endpoint{},
"eu-west-1": endpoint{},
"eu-west-2": endpoint{},
"eu-west-3": endpoint{},
@@ -390,10 +286,12 @@ var awsPartition = partition{
"us-west-2": endpoint{},
},
},
- "athena": service{
+ "appsync": service{
Endpoints: endpoints{
"ap-northeast-1": endpoint{},
+ "ap-northeast-2": endpoint{},
+ "ap-south-1": endpoint{},
"ap-southeast-1": endpoint{},
"ap-southeast-2": endpoint{},
"eu-central-1": endpoint{},
@@ -403,6 +301,22 @@ var awsPartition = partition{
"us-west-2": endpoint{},
},
},
+ "athena": service{
+
+ Endpoints: endpoints{
+ "ap-northeast-1": endpoint{},
+ "ap-northeast-2": endpoint{},
+ "ap-south-1": endpoint{},
+ "ap-southeast-1": endpoint{},
+ "ap-southeast-2": endpoint{},
+ "eu-central-1": endpoint{},
+ "eu-west-1": endpoint{},
+ "eu-west-2": endpoint{},
+ "us-east-1": endpoint{},
+ "us-east-2": endpoint{},
+ "us-west-2": endpoint{},
+ },
+ },
"autoscaling": service{
Defaults: endpoint{
Protocols: []string{"http", "https"},
@@ -415,6 +329,7 @@ var awsPartition = partition{
"ap-southeast-2": endpoint{},
"ca-central-1": endpoint{},
"eu-central-1": endpoint{},
+ "eu-north-1": endpoint{},
"eu-west-1": endpoint{},
"eu-west-2": endpoint{},
"eu-west-3": endpoint{},
@@ -434,10 +349,18 @@ var awsPartition = partition{
},
},
Endpoints: endpoints{
+ "ap-northeast-1": endpoint{},
+ "ap-northeast-2": endpoint{},
+ "ap-south-1": endpoint{},
"ap-southeast-1": endpoint{},
+ "ap-southeast-2": endpoint{},
+ "ca-central-1": endpoint{},
+ "eu-central-1": endpoint{},
"eu-west-1": endpoint{},
+ "eu-west-2": endpoint{},
"us-east-1": endpoint{},
"us-east-2": endpoint{},
+ "us-west-1": endpoint{},
"us-west-2": endpoint{},
},
},
@@ -453,6 +376,8 @@ var awsPartition = partition{
"eu-central-1": endpoint{},
"eu-west-1": endpoint{},
"eu-west-2": endpoint{},
+ "eu-west-3": endpoint{},
+ "sa-east-1": endpoint{},
"us-east-1": endpoint{},
"us-east-2": endpoint{},
"us-west-1": endpoint{},
@@ -485,6 +410,23 @@ var awsPartition = partition{
},
},
},
+ "chime": service{
+ PartitionEndpoint: "aws-global",
+ IsRegionalized: boxedFalse,
+ Defaults: endpoint{
+ SSLCommonName: "service.chime.aws.amazon.com",
+ Protocols: []string{"https"},
+ },
+ Endpoints: endpoints{
+ "aws-global": endpoint{
+ Hostname: "service.chime.aws.amazon.com",
+ Protocols: []string{"https"},
+ CredentialScope: credentialScope{
+ Region: "us-east-1",
+ },
+ },
+ },
+ },
"cloud9": service{
Endpoints: endpoints{
@@ -500,6 +442,7 @@ var awsPartition = partition{
Endpoints: endpoints{
"ap-southeast-1": endpoint{},
"ap-southeast-2": endpoint{},
+ "ca-central-1": endpoint{},
"eu-central-1": endpoint{},
"eu-west-1": endpoint{},
"eu-west-2": endpoint{},
@@ -518,6 +461,7 @@ var awsPartition = partition{
"ap-southeast-2": endpoint{},
"ca-central-1": endpoint{},
"eu-central-1": endpoint{},
+ "eu-north-1": endpoint{},
"eu-west-1": endpoint{},
"eu-west-2": endpoint{},
"eu-west-3": endpoint{},
@@ -565,12 +509,16 @@ var awsPartition = partition{
},
Endpoints: endpoints{
"ap-northeast-1": endpoint{},
+ "ap-northeast-2": endpoint{},
"ap-south-1": endpoint{},
"ap-southeast-1": endpoint{},
"ap-southeast-2": endpoint{},
"ca-central-1": endpoint{},
"eu-central-1": endpoint{},
+ "eu-north-1": endpoint{},
"eu-west-1": endpoint{},
+ "eu-west-2": endpoint{},
+ "eu-west-3": endpoint{},
"us-east-1": endpoint{},
"us-east-2": endpoint{},
"us-west-1": endpoint{},
@@ -602,6 +550,7 @@ var awsPartition = partition{
"ap-southeast-2": endpoint{},
"ca-central-1": endpoint{},
"eu-central-1": endpoint{},
+ "eu-north-1": endpoint{},
"eu-west-1": endpoint{},
"eu-west-2": endpoint{},
"eu-west-3": endpoint{},
@@ -669,11 +618,17 @@ var awsPartition = partition{
"eu-west-1": endpoint{},
"eu-west-2": endpoint{},
"eu-west-3": endpoint{},
- "sa-east-1": endpoint{},
- "us-east-1": endpoint{},
- "us-east-2": endpoint{},
- "us-west-1": endpoint{},
- "us-west-2": endpoint{},
+ "fips": endpoint{
+ Hostname: "codecommit-fips.ca-central-1.amazonaws.com",
+ CredentialScope: credentialScope{
+ Region: "ca-central-1",
+ },
+ },
+ "sa-east-1": endpoint{},
+ "us-east-1": endpoint{},
+ "us-east-2": endpoint{},
+ "us-west-1": endpoint{},
+ "us-west-2": endpoint{},
},
},
"codedeploy": service{
@@ -686,14 +641,39 @@ var awsPartition = partition{
"ap-southeast-2": endpoint{},
"ca-central-1": endpoint{},
"eu-central-1": endpoint{},
+ "eu-north-1": endpoint{},
"eu-west-1": endpoint{},
"eu-west-2": endpoint{},
"eu-west-3": endpoint{},
"sa-east-1": endpoint{},
"us-east-1": endpoint{},
- "us-east-2": endpoint{},
- "us-west-1": endpoint{},
- "us-west-2": endpoint{},
+ "us-east-1-fips": endpoint{
+ Hostname: "codedeploy-fips.us-east-1.amazonaws.com",
+ CredentialScope: credentialScope{
+ Region: "us-east-1",
+ },
+ },
+ "us-east-2": endpoint{},
+ "us-east-2-fips": endpoint{
+ Hostname: "codedeploy-fips.us-east-2.amazonaws.com",
+ CredentialScope: credentialScope{
+ Region: "us-east-2",
+ },
+ },
+ "us-west-1": endpoint{},
+ "us-west-1-fips": endpoint{
+ Hostname: "codedeploy-fips.us-west-1.amazonaws.com",
+ CredentialScope: credentialScope{
+ Region: "us-west-1",
+ },
+ },
+ "us-west-2": endpoint{},
+ "us-west-2-fips": endpoint{
+ Hostname: "codedeploy-fips.us-west-2.amazonaws.com",
+ CredentialScope: credentialScope{
+ Region: "us-west-2",
+ },
+ },
},
},
"codepipeline": service{
@@ -741,6 +721,7 @@ var awsPartition = partition{
"ap-south-1": endpoint{},
"ap-southeast-1": endpoint{},
"ap-southeast-2": endpoint{},
+ "ca-central-1": endpoint{},
"eu-central-1": endpoint{},
"eu-west-1": endpoint{},
"eu-west-2": endpoint{},
@@ -757,6 +738,7 @@ var awsPartition = partition{
"ap-south-1": endpoint{},
"ap-southeast-1": endpoint{},
"ap-southeast-2": endpoint{},
+ "ca-central-1": endpoint{},
"eu-central-1": endpoint{},
"eu-west-1": endpoint{},
"eu-west-2": endpoint{},
@@ -786,10 +768,12 @@ var awsPartition = partition{
Protocols: []string{"https"},
},
Endpoints: endpoints{
- "eu-west-1": endpoint{},
- "us-east-1": endpoint{},
- "us-east-2": endpoint{},
- "us-west-2": endpoint{},
+ "ap-southeast-2": endpoint{},
+ "eu-central-1": endpoint{},
+ "eu-west-1": endpoint{},
+ "us-east-1": endpoint{},
+ "us-east-2": endpoint{},
+ "us-west-2": endpoint{},
},
},
"config": service{
@@ -802,6 +786,7 @@ var awsPartition = partition{
"ap-southeast-2": endpoint{},
"ca-central-1": endpoint{},
"eu-central-1": endpoint{},
+ "eu-north-1": endpoint{},
"eu-west-1": endpoint{},
"eu-west-2": endpoint{},
"eu-west-3": endpoint{},
@@ -859,6 +844,7 @@ var awsPartition = partition{
"ap-southeast-2": endpoint{},
"ca-central-1": endpoint{},
"eu-central-1": endpoint{},
+ "eu-north-1": endpoint{},
"eu-west-1": endpoint{},
"eu-west-2": endpoint{},
"eu-west-3": endpoint{},
@@ -926,6 +912,7 @@ var awsPartition = partition{
"ap-southeast-2": endpoint{},
"ca-central-1": endpoint{},
"eu-central-1": endpoint{},
+ "eu-north-1": endpoint{},
"eu-west-1": endpoint{},
"eu-west-2": endpoint{},
"eu-west-3": endpoint{},
@@ -955,6 +942,7 @@ var awsPartition = partition{
"ap-southeast-2": endpoint{},
"ca-central-1": endpoint{},
"eu-central-1": endpoint{},
+ "eu-north-1": endpoint{},
"eu-west-1": endpoint{},
"eu-west-2": endpoint{},
"eu-west-3": endpoint{},
@@ -986,6 +974,7 @@ var awsPartition = partition{
"ap-southeast-2": endpoint{},
"ca-central-1": endpoint{},
"eu-central-1": endpoint{},
+ "eu-north-1": endpoint{},
"eu-west-1": endpoint{},
"eu-west-2": endpoint{},
"eu-west-3": endpoint{},
@@ -1006,6 +995,7 @@ var awsPartition = partition{
"ap-southeast-2": endpoint{},
"ca-central-1": endpoint{},
"eu-central-1": endpoint{},
+ "eu-north-1": endpoint{},
"eu-west-1": endpoint{},
"eu-west-2": endpoint{},
"eu-west-3": endpoint{},
@@ -1026,14 +1016,21 @@ var awsPartition = partition{
"ap-southeast-2": endpoint{},
"ca-central-1": endpoint{},
"eu-central-1": endpoint{},
+ "eu-north-1": endpoint{},
"eu-west-1": endpoint{},
"eu-west-2": endpoint{},
"eu-west-3": endpoint{},
- "sa-east-1": endpoint{},
- "us-east-1": endpoint{},
- "us-east-2": endpoint{},
- "us-west-1": endpoint{},
- "us-west-2": endpoint{},
+ "fips": endpoint{
+ Hostname: "elasticache-fips.us-west-1.amazonaws.com",
+ CredentialScope: credentialScope{
+ Region: "us-west-1",
+ },
+ },
+ "sa-east-1": endpoint{},
+ "us-east-1": endpoint{},
+ "us-east-2": endpoint{},
+ "us-west-1": endpoint{},
+ "us-west-2": endpoint{},
},
},
"elasticbeanstalk": service{
@@ -1046,6 +1043,7 @@ var awsPartition = partition{
"ap-southeast-2": endpoint{},
"ca-central-1": endpoint{},
"eu-central-1": endpoint{},
+ "eu-north-1": endpoint{},
"eu-west-1": endpoint{},
"eu-west-2": endpoint{},
"eu-west-3": endpoint{},
@@ -1059,7 +1057,9 @@ var awsPartition = partition{
"elasticfilesystem": service{
Endpoints: endpoints{
+ "ap-northeast-1": endpoint{},
"ap-northeast-2": endpoint{},
+ "ap-southeast-1": endpoint{},
"ap-southeast-2": endpoint{},
"eu-central-1": endpoint{},
"eu-west-1": endpoint{},
@@ -1081,6 +1081,7 @@ var awsPartition = partition{
"ap-southeast-2": endpoint{},
"ca-central-1": endpoint{},
"eu-central-1": endpoint{},
+ "eu-north-1": endpoint{},
"eu-west-1": endpoint{},
"eu-west-2": endpoint{},
"eu-west-3": endpoint{},
@@ -1094,7 +1095,7 @@ var awsPartition = partition{
"elasticmapreduce": service{
Defaults: endpoint{
SSLCommonName: "{region}.{service}.{dnsSuffix}",
- Protocols: []string{"http", "https"},
+ Protocols: []string{"https"},
},
Endpoints: endpoints{
"ap-northeast-1": endpoint{},
@@ -1106,10 +1107,11 @@ var awsPartition = partition{
"eu-central-1": endpoint{
SSLCommonName: "{service}.{region}.{dnsSuffix}",
},
- "eu-west-1": endpoint{},
- "eu-west-2": endpoint{},
- "eu-west-3": endpoint{},
- "sa-east-1": endpoint{},
+ "eu-north-1": endpoint{},
+ "eu-west-1": endpoint{},
+ "eu-west-2": endpoint{},
+ "eu-west-3": endpoint{},
+ "sa-east-1": endpoint{},
"us-east-1": endpoint{
SSLCommonName: "{service}.{region}.{dnsSuffix}",
},
@@ -1159,6 +1161,7 @@ var awsPartition = partition{
"ap-southeast-2": endpoint{},
"ca-central-1": endpoint{},
"eu-central-1": endpoint{},
+ "eu-north-1": endpoint{},
"eu-west-1": endpoint{},
"eu-west-2": endpoint{},
"eu-west-3": endpoint{},
@@ -1179,6 +1182,7 @@ var awsPartition = partition{
"ap-southeast-2": endpoint{},
"ca-central-1": endpoint{},
"eu-central-1": endpoint{},
+ "eu-north-1": endpoint{},
"eu-west-1": endpoint{},
"eu-west-2": endpoint{},
"eu-west-3": endpoint{},
@@ -1193,10 +1197,16 @@ var awsPartition = partition{
Endpoints: endpoints{
"ap-northeast-1": endpoint{},
+ "ap-northeast-2": endpoint{},
+ "ap-south-1": endpoint{},
"ap-southeast-1": endpoint{},
"ap-southeast-2": endpoint{},
+ "ca-central-1": endpoint{},
"eu-central-1": endpoint{},
"eu-west-1": endpoint{},
+ "eu-west-2": endpoint{},
+ "eu-west-3": endpoint{},
+ "sa-east-1": endpoint{},
"us-east-1": endpoint{},
"us-east-2": endpoint{},
"us-west-1": endpoint{},
@@ -1208,7 +1218,24 @@ var awsPartition = partition{
Protocols: []string{"https"},
},
Endpoints: endpoints{
+ "ap-northeast-1": endpoint{},
+ "ap-southeast-2": endpoint{},
+ "eu-central-1": endpoint{},
+ "eu-west-1": endpoint{},
+ "us-east-1": endpoint{},
+ "us-east-2": endpoint{},
+ "us-west-2": endpoint{},
+ },
+ },
+ "fsx": service{
+ Defaults: endpoint{
+ SSLCommonName: "fsx.us-west-2.amazonaws.com",
+ Protocols: []string{"https"},
+ },
+ Endpoints: endpoints{
+ "eu-west-1": endpoint{},
"us-east-1": endpoint{},
+ "us-east-2": endpoint{},
"us-west-2": endpoint{},
},
},
@@ -1243,9 +1270,11 @@ var awsPartition = partition{
"ap-southeast-2": endpoint{},
"ca-central-1": endpoint{},
"eu-central-1": endpoint{},
+ "eu-north-1": endpoint{},
"eu-west-1": endpoint{},
"eu-west-2": endpoint{},
"eu-west-3": endpoint{},
+ "sa-east-1": endpoint{},
"us-east-1": endpoint{},
"us-east-2": endpoint{},
"us-west-1": endpoint{},
@@ -1260,11 +1289,13 @@ var awsPartition = partition{
"ap-south-1": endpoint{},
"ap-southeast-1": endpoint{},
"ap-southeast-2": endpoint{},
+ "ca-central-1": endpoint{},
"eu-central-1": endpoint{},
"eu-west-1": endpoint{},
"eu-west-2": endpoint{},
"us-east-1": endpoint{},
"us-east-2": endpoint{},
+ "us-west-1": endpoint{},
"us-west-2": endpoint{},
},
},
@@ -1277,6 +1308,7 @@ var awsPartition = partition{
"ap-northeast-1": endpoint{},
"ap-southeast-2": endpoint{},
"eu-central-1": endpoint{},
+ "eu-west-1": endpoint{},
"us-east-1": endpoint{},
"us-west-2": endpoint{},
},
@@ -1373,6 +1405,17 @@ var awsPartition = partition{
"us-west-2": endpoint{},
},
},
+ "iotanalytics": service{
+
+ Endpoints: endpoints{
+ "ap-northeast-1": endpoint{},
+ "eu-central-1": endpoint{},
+ "eu-west-1": endpoint{},
+ "us-east-1": endpoint{},
+ "us-east-2": endpoint{},
+ "us-west-2": endpoint{},
+ },
+ },
"kinesis": service{
Endpoints: endpoints{
@@ -1383,6 +1426,7 @@ var awsPartition = partition{
"ap-southeast-2": endpoint{},
"ca-central-1": endpoint{},
"eu-central-1": endpoint{},
+ "eu-north-1": endpoint{},
"eu-west-1": endpoint{},
"eu-west-2": endpoint{},
"eu-west-3": endpoint{},
@@ -1396,9 +1440,11 @@ var awsPartition = partition{
"kinesisanalytics": service{
Endpoints: endpoints{
- "eu-west-1": endpoint{},
- "us-east-1": endpoint{},
- "us-west-2": endpoint{},
+ "eu-central-1": endpoint{},
+ "eu-west-1": endpoint{},
+ "us-east-1": endpoint{},
+ "us-east-2": endpoint{},
+ "us-west-2": endpoint{},
},
},
"kinesisvideo": service{
@@ -1421,6 +1467,7 @@ var awsPartition = partition{
"ap-southeast-2": endpoint{},
"ca-central-1": endpoint{},
"eu-central-1": endpoint{},
+ "eu-north-1": endpoint{},
"eu-west-1": endpoint{},
"eu-west-2": endpoint{},
"eu-west-3": endpoint{},
@@ -1441,6 +1488,7 @@ var awsPartition = partition{
"ap-southeast-2": endpoint{},
"ca-central-1": endpoint{},
"eu-central-1": endpoint{},
+ "eu-north-1": endpoint{},
"eu-west-1": endpoint{},
"eu-west-2": endpoint{},
"eu-west-3": endpoint{},
@@ -1479,6 +1527,7 @@ var awsPartition = partition{
"ap-southeast-2": endpoint{},
"ca-central-1": endpoint{},
"eu-central-1": endpoint{},
+ "eu-north-1": endpoint{},
"eu-west-1": endpoint{},
"eu-west-2": endpoint{},
"eu-west-3": endpoint{},
@@ -1526,10 +1575,12 @@ var awsPartition = partition{
Endpoints: endpoints{
"ap-northeast-1": endpoint{},
"ap-northeast-2": endpoint{},
+ "ap-south-1": endpoint{},
"ap-southeast-1": endpoint{},
"ap-southeast-2": endpoint{},
"eu-central-1": endpoint{},
"eu-west-1": endpoint{},
+ "sa-east-1": endpoint{},
"us-east-1": endpoint{},
"us-west-2": endpoint{},
},
@@ -1539,6 +1590,7 @@ var awsPartition = partition{
Endpoints: endpoints{
"ap-northeast-1": endpoint{},
"ap-northeast-2": endpoint{},
+ "ap-south-1": endpoint{},
"ap-southeast-1": endpoint{},
"ap-southeast-2": endpoint{},
"eu-central-1": endpoint{},
@@ -1546,6 +1598,7 @@ var awsPartition = partition{
"eu-west-3": endpoint{},
"sa-east-1": endpoint{},
"us-east-1": endpoint{},
+ "us-west-1": endpoint{},
"us-west-2": endpoint{},
},
},
@@ -1553,6 +1606,7 @@ var awsPartition = partition{
Endpoints: endpoints{
"ap-northeast-1": endpoint{},
+ "ap-northeast-2": endpoint{},
"ap-southeast-2": endpoint{},
"eu-central-1": endpoint{},
"eu-west-1": endpoint{},
@@ -1574,6 +1628,7 @@ var awsPartition = partition{
"ap-southeast-2": endpoint{},
"ca-central-1": endpoint{},
"eu-central-1": endpoint{},
+ "eu-north-1": endpoint{},
"eu-west-1": endpoint{},
"eu-west-2": endpoint{},
"eu-west-3": endpoint{},
@@ -1620,6 +1675,7 @@ var awsPartition = partition{
"ap-southeast-2": endpoint{},
"ca-central-1": endpoint{},
"eu-central-1": endpoint{},
+ "eu-north-1": endpoint{},
"eu-west-1": endpoint{},
"eu-west-2": endpoint{},
"eu-west-3": endpoint{},
@@ -1643,12 +1699,30 @@ var awsPartition = partition{
"neptune": service{
Endpoints: endpoints{
+ "ap-southeast-1": endpoint{
+ Hostname: "rds.ap-southeast-1.amazonaws.com",
+ CredentialScope: credentialScope{
+ Region: "ap-southeast-1",
+ },
+ },
+ "eu-central-1": endpoint{
+ Hostname: "rds.eu-central-1.amazonaws.com",
+ CredentialScope: credentialScope{
+ Region: "eu-central-1",
+ },
+ },
"eu-west-1": endpoint{
Hostname: "rds.eu-west-1.amazonaws.com",
CredentialScope: credentialScope{
Region: "eu-west-1",
},
},
+ "eu-west-2": endpoint{
+ Hostname: "rds.eu-west-2.amazonaws.com",
+ CredentialScope: credentialScope{
+ Region: "eu-west-2",
+ },
+ },
"us-east-1": endpoint{
Hostname: "rds.us-east-1.amazonaws.com",
CredentialScope: credentialScope{
@@ -1723,7 +1797,10 @@ var awsPartition = partition{
},
},
Endpoints: endpoints{
- "us-east-1": endpoint{},
+ "eu-central-1": endpoint{},
+ "eu-west-1": endpoint{},
+ "us-east-1": endpoint{},
+ "us-west-2": endpoint{},
},
},
"polly": service{
@@ -1756,6 +1833,7 @@ var awsPartition = partition{
"ap-southeast-2": endpoint{},
"ca-central-1": endpoint{},
"eu-central-1": endpoint{},
+ "eu-north-1": endpoint{},
"eu-west-1": endpoint{},
"eu-west-2": endpoint{},
"eu-west-3": endpoint{},
@@ -1778,6 +1856,7 @@ var awsPartition = partition{
"ap-southeast-2": endpoint{},
"ca-central-1": endpoint{},
"eu-central-1": endpoint{},
+ "eu-north-1": endpoint{},
"eu-west-1": endpoint{},
"eu-west-2": endpoint{},
"eu-west-3": endpoint{},
@@ -1809,8 +1888,10 @@ var awsPartition = partition{
"ap-southeast-2": endpoint{},
"ca-central-1": endpoint{},
"eu-central-1": endpoint{},
+ "eu-north-1": endpoint{},
"eu-west-1": endpoint{},
"eu-west-2": endpoint{},
+ "eu-west-3": endpoint{},
"sa-east-1": endpoint{},
"us-east-1": endpoint{},
"us-east-2": endpoint{},
@@ -1818,6 +1899,14 @@ var awsPartition = partition{
"us-west-2": endpoint{},
},
},
+ "robomaker": service{
+
+ Endpoints: endpoints{
+ "eu-west-1": endpoint{},
+ "us-east-1": endpoint{},
+ "us-west-2": endpoint{},
+ },
+ },
"route53": service{
PartitionEndpoint: "aws-global",
IsRegionalized: boxedFalse,
@@ -1837,6 +1926,20 @@ var awsPartition = partition{
"us-east-1": endpoint{},
},
},
+ "route53resolver": service{
+ Defaults: endpoint{
+ Protocols: []string{"http", "https"},
+ },
+ Endpoints: endpoints{
+ "ap-northeast-1": endpoint{},
+ "ap-southeast-1": endpoint{},
+ "ap-southeast-2": endpoint{},
+ "eu-west-1": endpoint{},
+ "us-east-1": endpoint{},
+ "us-east-2": endpoint{},
+ "us-west-2": endpoint{},
+ },
+ },
"runtime.lex": service{
Defaults: endpoint{
CredentialScope: credentialScope{
@@ -1853,9 +1956,17 @@ var awsPartition = partition{
Endpoints: endpoints{
"ap-northeast-1": endpoint{},
+ "ap-northeast-2": endpoint{},
+ "ap-south-1": endpoint{},
+ "ap-southeast-1": endpoint{},
+ "ap-southeast-2": endpoint{},
+ "ca-central-1": endpoint{},
+ "eu-central-1": endpoint{},
"eu-west-1": endpoint{},
+ "eu-west-2": endpoint{},
"us-east-1": endpoint{},
"us-east-2": endpoint{},
+ "us-west-1": endpoint{},
"us-west-2": endpoint{},
},
},
@@ -1886,6 +1997,7 @@ var awsPartition = partition{
},
"ca-central-1": endpoint{},
"eu-central-1": endpoint{},
+ "eu-north-1": endpoint{},
"eu-west-1": endpoint{
Hostname: "s3.eu-west-1.amazonaws.com",
SignatureVersions: []string{"s3", "s3v4"},
@@ -1918,14 +2030,155 @@ var awsPartition = partition{
},
},
},
- "sagemaker": service{
+ "s3-control": service{
+ Defaults: endpoint{
+ Protocols: []string{"https"},
+ SignatureVersions: []string{"s3v4"},
+ HasDualStack: boxedTrue,
+ DualStackHostname: "{service}.dualstack.{region}.{dnsSuffix}",
+ },
Endpoints: endpoints{
- "ap-northeast-1": endpoint{},
- "eu-west-1": endpoint{},
- "us-east-1": endpoint{},
- "us-east-2": endpoint{},
- "us-west-2": endpoint{},
+ "ap-northeast-1": endpoint{
+ Hostname: "s3-control.ap-northeast-1.amazonaws.com",
+ SignatureVersions: []string{"s3v4"},
+ CredentialScope: credentialScope{
+ Region: "ap-northeast-1",
+ },
+ },
+ "ap-northeast-2": endpoint{
+ Hostname: "s3-control.ap-northeast-2.amazonaws.com",
+ SignatureVersions: []string{"s3v4"},
+ CredentialScope: credentialScope{
+ Region: "ap-northeast-2",
+ },
+ },
+ "ap-south-1": endpoint{
+ Hostname: "s3-control.ap-south-1.amazonaws.com",
+ SignatureVersions: []string{"s3v4"},
+ CredentialScope: credentialScope{
+ Region: "ap-south-1",
+ },
+ },
+ "ap-southeast-1": endpoint{
+ Hostname: "s3-control.ap-southeast-1.amazonaws.com",
+ SignatureVersions: []string{"s3v4"},
+ CredentialScope: credentialScope{
+ Region: "ap-southeast-1",
+ },
+ },
+ "ap-southeast-2": endpoint{
+ Hostname: "s3-control.ap-southeast-2.amazonaws.com",
+ SignatureVersions: []string{"s3v4"},
+ CredentialScope: credentialScope{
+ Region: "ap-southeast-2",
+ },
+ },
+ "ca-central-1": endpoint{
+ Hostname: "s3-control.ca-central-1.amazonaws.com",
+ SignatureVersions: []string{"s3v4"},
+ CredentialScope: credentialScope{
+ Region: "ca-central-1",
+ },
+ },
+ "eu-central-1": endpoint{
+ Hostname: "s3-control.eu-central-1.amazonaws.com",
+ SignatureVersions: []string{"s3v4"},
+ CredentialScope: credentialScope{
+ Region: "eu-central-1",
+ },
+ },
+ "eu-north-1": endpoint{
+ Hostname: "s3-control.eu-north-1.amazonaws.com",
+ SignatureVersions: []string{"s3v4"},
+ CredentialScope: credentialScope{
+ Region: "eu-north-1",
+ },
+ },
+ "eu-west-1": endpoint{
+ Hostname: "s3-control.eu-west-1.amazonaws.com",
+ SignatureVersions: []string{"s3v4"},
+ CredentialScope: credentialScope{
+ Region: "eu-west-1",
+ },
+ },
+ "eu-west-2": endpoint{
+ Hostname: "s3-control.eu-west-2.amazonaws.com",
+ SignatureVersions: []string{"s3v4"},
+ CredentialScope: credentialScope{
+ Region: "eu-west-2",
+ },
+ },
+ "eu-west-3": endpoint{
+ Hostname: "s3-control.eu-west-3.amazonaws.com",
+ SignatureVersions: []string{"s3v4"},
+ CredentialScope: credentialScope{
+ Region: "eu-west-3",
+ },
+ },
+ "sa-east-1": endpoint{
+ Hostname: "s3-control.sa-east-1.amazonaws.com",
+ SignatureVersions: []string{"s3v4"},
+ CredentialScope: credentialScope{
+ Region: "sa-east-1",
+ },
+ },
+ "us-east-1": endpoint{
+ Hostname: "s3-control.us-east-1.amazonaws.com",
+ SignatureVersions: []string{"s3v4"},
+ CredentialScope: credentialScope{
+ Region: "us-east-1",
+ },
+ },
+ "us-east-1-fips": endpoint{
+ Hostname: "s3-control-fips.us-east-1.amazonaws.com",
+ SignatureVersions: []string{"s3v4"},
+ CredentialScope: credentialScope{
+ Region: "us-east-1",
+ },
+ },
+ "us-east-2": endpoint{
+ Hostname: "s3-control.us-east-2.amazonaws.com",
+ SignatureVersions: []string{"s3v4"},
+ CredentialScope: credentialScope{
+ Region: "us-east-2",
+ },
+ },
+ "us-east-2-fips": endpoint{
+ Hostname: "s3-control-fips.us-east-2.amazonaws.com",
+ SignatureVersions: []string{"s3v4"},
+ CredentialScope: credentialScope{
+ Region: "us-east-2",
+ },
+ },
+ "us-west-1": endpoint{
+ Hostname: "s3-control.us-west-1.amazonaws.com",
+ SignatureVersions: []string{"s3v4"},
+ CredentialScope: credentialScope{
+ Region: "us-west-1",
+ },
+ },
+ "us-west-1-fips": endpoint{
+ Hostname: "s3-control-fips.us-west-1.amazonaws.com",
+ SignatureVersions: []string{"s3v4"},
+ CredentialScope: credentialScope{
+ Region: "us-west-1",
+ },
+ },
+ "us-west-2": endpoint{
+ Hostname: "s3-control.us-west-2.amazonaws.com",
+ SignatureVersions: []string{"s3v4"},
+ CredentialScope: credentialScope{
+ Region: "us-west-2",
+ },
+ },
+ "us-west-2-fips": endpoint{
+ Hostname: "s3-control-fips.us-west-2.amazonaws.com",
+ SignatureVersions: []string{"s3v4"},
+ CredentialScope: credentialScope{
+ Region: "us-west-2",
+ },
+ },
},
},
"sdb": service{
@@ -1958,11 +2211,36 @@ var awsPartition = partition{
"eu-central-1": endpoint{},
"eu-west-1": endpoint{},
"eu-west-2": endpoint{},
+ "eu-west-3": endpoint{},
"sa-east-1": endpoint{},
"us-east-1": endpoint{},
- "us-east-2": endpoint{},
- "us-west-1": endpoint{},
- "us-west-2": endpoint{},
+ "us-east-1-fips": endpoint{
+ Hostname: "secretsmanager-fips.us-east-1.amazonaws.com",
+ CredentialScope: credentialScope{
+ Region: "us-east-1",
+ },
+ },
+ "us-east-2": endpoint{},
+ "us-east-2-fips": endpoint{
+ Hostname: "secretsmanager-fips.us-east-2.amazonaws.com",
+ CredentialScope: credentialScope{
+ Region: "us-east-2",
+ },
+ },
+ "us-west-1": endpoint{},
+ "us-west-1-fips": endpoint{
+ Hostname: "secretsmanager-fips.us-west-1.amazonaws.com",
+ CredentialScope: credentialScope{
+ Region: "us-west-1",
+ },
+ },
+ "us-west-2": endpoint{},
+ "us-west-2-fips": endpoint{
+ Hostname: "secretsmanager-fips.us-west-2.amazonaws.com",
+ CredentialScope: credentialScope{
+ Region: "us-west-2",
+ },
+ },
},
},
"serverlessrepo": service{
@@ -2029,24 +2307,59 @@ var awsPartition = partition{
"eu-west-3": endpoint{},
"sa-east-1": endpoint{},
"us-east-1": endpoint{},
- "us-east-2": endpoint{},
- "us-west-1": endpoint{},
- "us-west-2": endpoint{},
+ "us-east-1-fips": endpoint{
+ Hostname: "servicecatalog-fips.us-east-1.amazonaws.com",
+ CredentialScope: credentialScope{
+ Region: "us-east-1",
+ },
+ },
+ "us-east-2": endpoint{},
+ "us-east-2-fips": endpoint{
+ Hostname: "servicecatalog-fips.us-east-2.amazonaws.com",
+ CredentialScope: credentialScope{
+ Region: "us-east-2",
+ },
+ },
+ "us-west-1": endpoint{},
+ "us-west-1-fips": endpoint{
+ Hostname: "servicecatalog-fips.us-west-1.amazonaws.com",
+ CredentialScope: credentialScope{
+ Region: "us-west-1",
+ },
+ },
+ "us-west-2": endpoint{},
+ "us-west-2-fips": endpoint{
+ Hostname: "servicecatalog-fips.us-west-2.amazonaws.com",
+ CredentialScope: credentialScope{
+ Region: "us-west-2",
+ },
+ },
},
},
"servicediscovery": service{
Endpoints: endpoints{
- "eu-west-1": endpoint{},
- "us-east-1": endpoint{},
- "us-east-2": endpoint{},
- "us-west-2": endpoint{},
+ "ap-northeast-1": endpoint{},
+ "ap-northeast-2": endpoint{},
+ "ap-south-1": endpoint{},
+ "ap-southeast-1": endpoint{},
+ "ap-southeast-2": endpoint{},
+ "ca-central-1": endpoint{},
+ "eu-central-1": endpoint{},
+ "eu-west-1": endpoint{},
+ "eu-west-2": endpoint{},
+ "eu-west-3": endpoint{},
+ "sa-east-1": endpoint{},
+ "us-east-1": endpoint{},
+ "us-east-2": endpoint{},
+ "us-west-1": endpoint{},
+ "us-west-2": endpoint{},
},
},
"shield": service{
IsRegionalized: boxedFalse,
Defaults: endpoint{
- SSLCommonName: "Shield.us-east-1.amazonaws.com",
+ SSLCommonName: "shield.us-east-1.amazonaws.com",
Protocols: []string{"https"},
},
Endpoints: endpoints{
@@ -2104,6 +2417,7 @@ var awsPartition = partition{
"ap-southeast-2": endpoint{},
"ca-central-1": endpoint{},
"eu-central-1": endpoint{},
+ "eu-north-1": endpoint{},
"eu-west-1": endpoint{},
"eu-west-2": endpoint{},
"eu-west-3": endpoint{},
@@ -2127,14 +2441,35 @@ var awsPartition = partition{
"ap-southeast-2": endpoint{},
"ca-central-1": endpoint{},
"eu-central-1": endpoint{},
+ "eu-north-1": endpoint{},
"eu-west-1": endpoint{},
"eu-west-2": endpoint{},
"eu-west-3": endpoint{},
- "fips-us-east-1": endpoint{},
- "fips-us-east-2": endpoint{},
- "fips-us-west-1": endpoint{},
- "fips-us-west-2": endpoint{},
- "sa-east-1": endpoint{},
+ "fips-us-east-1": endpoint{
+ Hostname: "sqs-fips.us-east-1.amazonaws.com",
+ CredentialScope: credentialScope{
+ Region: "us-east-1",
+ },
+ },
+ "fips-us-east-2": endpoint{
+ Hostname: "sqs-fips.us-east-2.amazonaws.com",
+ CredentialScope: credentialScope{
+ Region: "us-east-2",
+ },
+ },
+ "fips-us-west-1": endpoint{
+ Hostname: "sqs-fips.us-west-1.amazonaws.com",
+ CredentialScope: credentialScope{
+ Region: "us-west-1",
+ },
+ },
+ "fips-us-west-2": endpoint{
+ Hostname: "sqs-fips.us-west-2.amazonaws.com",
+ CredentialScope: credentialScope{
+ Region: "us-west-2",
+ },
+ },
+ "sa-east-1": endpoint{},
"us-east-1": endpoint{
SSLCommonName: "queue.{dnsSuffix}",
},
@@ -2153,6 +2488,7 @@ var awsPartition = partition{
"ap-southeast-2": endpoint{},
"ca-central-1": endpoint{},
"eu-central-1": endpoint{},
+ "eu-north-1": endpoint{},
"eu-west-1": endpoint{},
"eu-west-2": endpoint{},
"eu-west-3": endpoint{},
@@ -2168,12 +2504,16 @@ var awsPartition = partition{
Endpoints: endpoints{
"ap-northeast-1": endpoint{},
"ap-northeast-2": endpoint{},
+ "ap-south-1": endpoint{},
"ap-southeast-1": endpoint{},
"ap-southeast-2": endpoint{},
"ca-central-1": endpoint{},
"eu-central-1": endpoint{},
+ "eu-north-1": endpoint{},
"eu-west-1": endpoint{},
"eu-west-2": endpoint{},
+ "eu-west-3": endpoint{},
+ "sa-east-1": endpoint{},
"us-east-1": endpoint{},
"us-east-2": endpoint{},
"us-west-1": endpoint{},
@@ -2190,6 +2530,7 @@ var awsPartition = partition{
"ap-southeast-2": endpoint{},
"ca-central-1": endpoint{},
"eu-central-1": endpoint{},
+ "eu-north-1": endpoint{},
"eu-west-1": endpoint{},
"eu-west-2": endpoint{},
"eu-west-3": endpoint{},
@@ -2215,6 +2556,7 @@ var awsPartition = partition{
"ap-southeast-2": endpoint{},
"ca-central-1": endpoint{},
"eu-central-1": endpoint{},
+ "eu-north-1": endpoint{},
"eu-west-1": endpoint{},
"eu-west-2": endpoint{},
"eu-west-3": endpoint{},
@@ -2254,6 +2596,7 @@ var awsPartition = partition{
"aws-global": endpoint{},
"ca-central-1": endpoint{},
"eu-central-1": endpoint{},
+ "eu-north-1": endpoint{},
"eu-west-1": endpoint{},
"eu-west-2": endpoint{},
"eu-west-3": endpoint{},
@@ -2304,6 +2647,7 @@ var awsPartition = partition{
"ap-southeast-2": endpoint{},
"ca-central-1": endpoint{},
"eu-central-1": endpoint{},
+ "eu-north-1": endpoint{},
"eu-west-1": endpoint{},
"eu-west-2": endpoint{},
"eu-west-3": endpoint{},
@@ -2324,6 +2668,7 @@ var awsPartition = partition{
"ap-southeast-2": endpoint{},
"ca-central-1": endpoint{},
"eu-central-1": endpoint{},
+ "eu-north-1": endpoint{},
"eu-west-1": endpoint{},
"eu-west-2": endpoint{},
"eu-west-3": endpoint{},
@@ -2334,6 +2679,24 @@ var awsPartition = partition{
"us-west-2": endpoint{},
},
},
+ "transfer": service{
+
+ Endpoints: endpoints{
+ "ap-northeast-1": endpoint{},
+ "ap-northeast-2": endpoint{},
+ "ap-southeast-1": endpoint{},
+ "ap-southeast-2": endpoint{},
+ "ca-central-1": endpoint{},
+ "eu-central-1": endpoint{},
+ "eu-west-1": endpoint{},
+ "eu-west-2": endpoint{},
+ "eu-west-3": endpoint{},
+ "us-east-1": endpoint{},
+ "us-east-2": endpoint{},
+ "us-west-1": endpoint{},
+ "us-west-2": endpoint{},
+ },
+ },
"translate": service{
Defaults: endpoint{
Protocols: []string{"https"},
@@ -2341,8 +2704,26 @@ var awsPartition = partition{
Endpoints: endpoints{
"eu-west-1": endpoint{},
"us-east-1": endpoint{},
+ "us-east-1-fips": endpoint{
+ Hostname: "translate-fips.us-east-1.amazonaws.com",
+ CredentialScope: credentialScope{
+ Region: "us-east-1",
+ },
+ },
"us-east-2": endpoint{},
+ "us-east-2-fips": endpoint{
+ Hostname: "translate-fips.us-east-2.amazonaws.com",
+ CredentialScope: credentialScope{
+ Region: "us-east-2",
+ },
+ },
"us-west-2": endpoint{},
+ "us-west-2-fips": endpoint{
+ Hostname: "translate-fips.us-west-2.amazonaws.com",
+ CredentialScope: credentialScope{
+ Region: "us-west-2",
+ },
+ },
},
},
"waf": service{
@@ -2418,8 +2799,10 @@ var awsPartition = partition{
"ap-southeast-2": endpoint{},
"ca-central-1": endpoint{},
"eu-central-1": endpoint{},
+ "eu-north-1": endpoint{},
"eu-west-1": endpoint{},
"eu-west-2": endpoint{},
+ "eu-west-3": endpoint{},
"sa-east-1": endpoint{},
"us-east-1": endpoint{},
"us-east-2": endpoint{},
@@ -2462,12 +2845,13 @@ var awscnPartition = partition{
"apigateway": service{
Endpoints: endpoints{
- "cn-north-1": endpoint{},
+ "cn-north-1": endpoint{},
+ "cn-northwest-1": endpoint{},
},
},
"application-autoscaling": service{
Defaults: endpoint{
- Hostname: "autoscaling.{region}.amazonaws.com",
+ Hostname: "autoscaling.{region}.amazonaws.com.cn",
Protocols: []string{"http", "https"},
CredentialScope: credentialScope{
Service: "application-autoscaling",
@@ -2501,6 +2885,13 @@ var awscnPartition = partition{
"cn-northwest-1": endpoint{},
},
},
+ "codebuild": service{
+
+ Endpoints: endpoints{
+ "cn-north-1": endpoint{},
+ "cn-northwest-1": endpoint{},
+ },
+ },
"codedeploy": service{
Endpoints: endpoints{
@@ -2528,6 +2919,20 @@ var awscnPartition = partition{
"cn-northwest-1": endpoint{},
},
},
+ "dms": service{
+
+ Endpoints: endpoints{
+ "cn-north-1": endpoint{},
+ "cn-northwest-1": endpoint{},
+ },
+ },
+ "ds": service{
+
+ Endpoints: endpoints{
+ "cn-north-1": endpoint{},
+ "cn-northwest-1": endpoint{},
+ },
+ },
"dynamodb": service{
Defaults: endpoint{
Protocols: []string{"http", "https"},
@@ -2596,7 +3001,7 @@ var awscnPartition = partition{
},
"elasticmapreduce": service{
Defaults: endpoint{
- Protocols: []string{"http", "https"},
+ Protocols: []string{"https"},
},
Endpoints: endpoints{
"cn-north-1": endpoint{},
@@ -2606,6 +3011,7 @@ var awscnPartition = partition{
"es": service{
Endpoints: endpoints{
+ "cn-north-1": endpoint{},
"cn-northwest-1": endpoint{},
},
},
@@ -2658,7 +3064,8 @@ var awscnPartition = partition{
"lambda": service{
Endpoints: endpoints{
- "cn-north-1": endpoint{},
+ "cn-north-1": endpoint{},
+ "cn-northwest-1": endpoint{},
},
},
"logs": service{
@@ -2677,6 +3084,12 @@ var awscnPartition = partition{
"cn-northwest-1": endpoint{},
},
},
+ "polly": service{
+
+ Endpoints: endpoints{
+ "cn-northwest-1": endpoint{},
+ },
+ },
"rds": service{
Endpoints: endpoints{
@@ -2701,6 +3114,28 @@ var awscnPartition = partition{
"cn-northwest-1": endpoint{},
},
},
+ "s3-control": service{
+ Defaults: endpoint{
+ Protocols: []string{"https"},
+ SignatureVersions: []string{"s3v4"},
+ },
+ Endpoints: endpoints{
+ "cn-north-1": endpoint{
+ Hostname: "s3-control.cn-north-1.amazonaws.com.cn",
+ SignatureVersions: []string{"s3v4"},
+ CredentialScope: credentialScope{
+ Region: "cn-north-1",
+ },
+ },
+ "cn-northwest-1": endpoint{
+ Hostname: "s3-control.cn-northwest-1.amazonaws.com.cn",
+ SignatureVersions: []string{"s3v4"},
+ CredentialScope: credentialScope{
+ Region: "cn-northwest-1",
+ },
+ },
+ },
+ },
"sms": service{
Endpoints: endpoints{
@@ -2803,6 +3238,9 @@ var awsusgovPartition = partition{
SignatureVersions: []string{"v4"},
},
Regions: regions{
+ "us-gov-east-1": region{
+ Description: "AWS GovCloud (US-East)",
+ },
"us-gov-west-1": region{
Description: "AWS GovCloud (US)",
},
@@ -2810,6 +3248,13 @@ var awsusgovPartition = partition{
Services: services{
"acm": service{
+ Endpoints: endpoints{
+ "us-gov-east-1": endpoint{},
+ "us-gov-west-1": endpoint{},
+ },
+ },
+ "api.sagemaker": service{
+
Endpoints: endpoints{
"us-gov-west-1": endpoint{},
},
@@ -2817,20 +3262,36 @@ var awsusgovPartition = partition{
"apigateway": service{
Endpoints: endpoints{
+ "us-gov-east-1": endpoint{},
+ "us-gov-west-1": endpoint{},
+ },
+ },
+ "application-autoscaling": service{
+
+ Endpoints: endpoints{
+ "us-gov-east-1": endpoint{},
"us-gov-west-1": endpoint{},
},
},
"autoscaling": service{
Endpoints: endpoints{
+ "us-gov-east-1": endpoint{},
"us-gov-west-1": endpoint{
Protocols: []string{"http", "https"},
},
},
},
+ "clouddirectory": service{
+
+ Endpoints: endpoints{
+ "us-gov-west-1": endpoint{},
+ },
+ },
"cloudformation": service{
Endpoints: endpoints{
+ "us-gov-east-1": endpoint{},
"us-gov-west-1": endpoint{},
},
},
@@ -2847,35 +3308,59 @@ var awsusgovPartition = partition{
},
},
Endpoints: endpoints{
+ "us-gov-east-1": endpoint{},
"us-gov-west-1": endpoint{},
},
},
"cloudtrail": service{
Endpoints: endpoints{
+ "us-gov-east-1": endpoint{},
"us-gov-west-1": endpoint{},
},
},
"codedeploy": service{
Endpoints: endpoints{
+ "us-gov-east-1": endpoint{},
+ "us-gov-east-1-fips": endpoint{
+ Hostname: "codedeploy-fips.us-gov-east-1.amazonaws.com",
+ CredentialScope: credentialScope{
+ Region: "us-gov-east-1",
+ },
+ },
"us-gov-west-1": endpoint{},
+ "us-gov-west-1-fips": endpoint{
+ Hostname: "codedeploy-fips.us-gov-west-1.amazonaws.com",
+ CredentialScope: credentialScope{
+ Region: "us-gov-west-1",
+ },
+ },
},
},
"config": service{
Endpoints: endpoints{
+ "us-gov-east-1": endpoint{},
"us-gov-west-1": endpoint{},
},
},
"directconnect": service{
Endpoints: endpoints{
+ "us-gov-east-1": endpoint{},
"us-gov-west-1": endpoint{},
},
},
"dms": service{
+ Endpoints: endpoints{
+ "us-gov-east-1": endpoint{},
+ "us-gov-west-1": endpoint{},
+ },
+ },
+ "ds": service{
+
Endpoints: endpoints{
"us-gov-west-1": endpoint{},
},
@@ -2883,6 +3368,7 @@ var awsusgovPartition = partition{
"dynamodb": service{
Endpoints: endpoints{
+ "us-gov-east-1": endpoint{},
"us-gov-west-1": endpoint{},
"us-gov-west-1-fips": endpoint{
Hostname: "dynamodb.us-gov-west-1.amazonaws.com",
@@ -2895,6 +3381,7 @@ var awsusgovPartition = partition{
"ec2": service{
Endpoints: endpoints{
+ "us-gov-east-1": endpoint{},
"us-gov-west-1": endpoint{},
},
},
@@ -2912,23 +3399,39 @@ var awsusgovPartition = partition{
"ecr": service{
Endpoints: endpoints{
+ "us-gov-east-1": endpoint{},
"us-gov-west-1": endpoint{},
},
},
"ecs": service{
Endpoints: endpoints{
+ "us-gov-east-1": endpoint{},
"us-gov-west-1": endpoint{},
},
},
"elasticache": service{
Endpoints: endpoints{
+ "fips": endpoint{
+ Hostname: "elasticache-fips.us-gov-west-1.amazonaws.com",
+ CredentialScope: credentialScope{
+ Region: "us-gov-west-1",
+ },
+ },
+ "us-gov-east-1": endpoint{},
"us-gov-west-1": endpoint{},
},
},
"elasticbeanstalk": service{
+ Endpoints: endpoints{
+ "us-gov-east-1": endpoint{},
+ "us-gov-west-1": endpoint{},
+ },
+ },
+ "elasticfilesystem": service{
+
Endpoints: endpoints{
"us-gov-west-1": endpoint{},
},
@@ -2936,6 +3439,7 @@ var awsusgovPartition = partition{
"elasticloadbalancing": service{
Endpoints: endpoints{
+ "us-gov-east-1": endpoint{},
"us-gov-west-1": endpoint{
Protocols: []string{"http", "https"},
},
@@ -2944,31 +3448,44 @@ var awsusgovPartition = partition{
"elasticmapreduce": service{
Endpoints: endpoints{
+ "us-gov-east-1": endpoint{},
"us-gov-west-1": endpoint{
- Protocols: []string{"http", "https"},
+ Protocols: []string{"https"},
},
},
},
"es": service{
Endpoints: endpoints{
+ "us-gov-east-1": endpoint{},
"us-gov-west-1": endpoint{},
},
},
"events": service{
Endpoints: endpoints{
+ "us-gov-east-1": endpoint{},
"us-gov-west-1": endpoint{},
},
},
"glacier": service{
Endpoints: endpoints{
+ "us-gov-east-1": endpoint{},
"us-gov-west-1": endpoint{
Protocols: []string{"http", "https"},
},
},
},
+ "guardduty": service{
+ IsRegionalized: boxedTrue,
+ Defaults: endpoint{
+ Protocols: []string{"https"},
+ },
+ Endpoints: endpoints{
+ "us-gov-west-1": endpoint{},
+ },
+ },
"iam": service{
PartitionEndpoint: "aws-us-gov-global",
IsRegionalized: boxedFalse,
@@ -2982,26 +3499,53 @@ var awsusgovPartition = partition{
},
},
},
+ "inspector": service{
+
+ Endpoints: endpoints{
+ "us-gov-east-1": endpoint{},
+ "us-gov-west-1": endpoint{},
+ },
+ },
+ "iot": service{
+ Defaults: endpoint{
+ CredentialScope: credentialScope{
+ Service: "execute-api",
+ },
+ },
+ Endpoints: endpoints{
+ "us-gov-west-1": endpoint{},
+ },
+ },
"kinesis": service{
Endpoints: endpoints{
+ "us-gov-east-1": endpoint{},
"us-gov-west-1": endpoint{},
},
},
"kms": service{
Endpoints: endpoints{
+ "us-gov-east-1": endpoint{},
"us-gov-west-1": endpoint{},
},
},
"lambda": service{
Endpoints: endpoints{
+ "us-gov-east-1": endpoint{},
"us-gov-west-1": endpoint{},
},
},
"logs": service{
+ Endpoints: endpoints{
+ "us-gov-east-1": endpoint{},
+ "us-gov-west-1": endpoint{},
+ },
+ },
+ "mediaconvert": service{
+
Endpoints: endpoints{
"us-gov-west-1": endpoint{},
},
@@ -3019,6 +3563,7 @@ var awsusgovPartition = partition{
"monitoring": service{
Endpoints: endpoints{
+ "us-gov-east-1": endpoint{},
"us-gov-west-1": endpoint{},
},
},
@@ -3031,12 +3576,14 @@ var awsusgovPartition = partition{
"rds": service{
Endpoints: endpoints{
+ "us-gov-east-1": endpoint{},
"us-gov-west-1": endpoint{},
},
},
"redshift": service{
Endpoints: endpoints{
+ "us-gov-east-1": endpoint{},
"us-gov-west-1": endpoint{},
},
},
@@ -3046,6 +3593,12 @@ var awsusgovPartition = partition{
"us-gov-west-1": endpoint{},
},
},
+ "runtime.sagemaker": service{
+
+ Endpoints: endpoints{
+ "us-gov-west-1": endpoint{},
+ },
+ },
"s3": service{
Defaults: endpoint{
SignatureVersions: []string{"s3", "s3v4"},
@@ -3057,27 +3610,70 @@ var awsusgovPartition = partition{
Region: "us-gov-west-1",
},
},
+ "us-gov-east-1": endpoint{
+ Hostname: "s3.us-gov-east-1.amazonaws.com",
+ Protocols: []string{"http", "https"},
+ },
"us-gov-west-1": endpoint{
Hostname: "s3.us-gov-west-1.amazonaws.com",
Protocols: []string{"http", "https"},
},
},
},
+ "s3-control": service{
+ Defaults: endpoint{
+ Protocols: []string{"https"},
+ SignatureVersions: []string{"s3v4"},
+ },
+ Endpoints: endpoints{
+ "us-gov-east-1": endpoint{
+ Hostname: "s3-control.us-gov-east-1.amazonaws.com",
+ SignatureVersions: []string{"s3v4"},
+ CredentialScope: credentialScope{
+ Region: "us-gov-east-1",
+ },
+ },
+ "us-gov-east-1-fips": endpoint{
+ Hostname: "s3-control-fips.us-gov-east-1.amazonaws.com",
+ SignatureVersions: []string{"s3v4"},
+ CredentialScope: credentialScope{
+ Region: "us-gov-east-1",
+ },
+ },
+ "us-gov-west-1": endpoint{
+ Hostname: "s3-control.us-gov-west-1.amazonaws.com",
+ SignatureVersions: []string{"s3v4"},
+ CredentialScope: credentialScope{
+ Region: "us-gov-west-1",
+ },
+ },
+ "us-gov-west-1-fips": endpoint{
+ Hostname: "s3-control-fips.us-gov-west-1.amazonaws.com",
+ SignatureVersions: []string{"s3v4"},
+ CredentialScope: credentialScope{
+ Region: "us-gov-west-1",
+ },
+ },
+ },
+ },
"sms": service{
Endpoints: endpoints{
+ "us-gov-east-1": endpoint{},
"us-gov-west-1": endpoint{},
},
},
"snowball": service{
Endpoints: endpoints{
+ "us-gov-east-1": endpoint{},
"us-gov-west-1": endpoint{},
},
},
"sns": service{
Endpoints: endpoints{
+ "us-gov-east-1": endpoint{},
"us-gov-west-1": endpoint{
Protocols: []string{"http", "https"},
},
@@ -3086,6 +3682,7 @@ var awsusgovPartition = partition{
"sqs": service{
Endpoints: endpoints{
+ "us-gov-east-1": endpoint{},
"us-gov-west-1": endpoint{
SSLCommonName: "{region}.queue.{dnsSuffix}",
Protocols: []string{"http", "https"},
@@ -3095,6 +3692,14 @@ var awsusgovPartition = partition{
"ssm": service{
Endpoints: endpoints{
+ "us-gov-east-1": endpoint{},
+ "us-gov-west-1": endpoint{},
+ },
+ },
+ "states": service{
+
+ Endpoints: endpoints{
+ "us-gov-east-1": endpoint{},
"us-gov-west-1": endpoint{},
},
},
@@ -3111,6 +3716,7 @@ var awsusgovPartition = partition{
},
},
Endpoints: endpoints{
+ "us-gov-east-1": endpoint{},
"us-gov-west-1": endpoint{},
"us-gov-west-1-fips": endpoint{
Hostname: "dynamodb.us-gov-west-1.amazonaws.com",
@@ -3123,20 +3729,37 @@ var awsusgovPartition = partition{
"sts": service{
Endpoints: endpoints{
+ "us-gov-east-1": endpoint{},
"us-gov-west-1": endpoint{},
},
},
"swf": service{
Endpoints: endpoints{
+ "us-gov-east-1": endpoint{},
"us-gov-west-1": endpoint{},
},
},
"tagging": service{
Endpoints: endpoints{
+ "us-gov-east-1": endpoint{},
"us-gov-west-1": endpoint{},
},
},
+ "translate": service{
+ Defaults: endpoint{
+ Protocols: []string{"https"},
+ },
+ Endpoints: endpoints{
+ "us-gov-west-1": endpoint{},
+ "us-gov-west-1-fips": endpoint{
+ Hostname: "translate-fips.us-gov-west-1.amazonaws.com",
+ CredentialScope: credentialScope{
+ Region: "us-gov-west-1",
+ },
+ },
+ },
+ },
},
}
diff --git a/vendor/github.com/aws/aws-sdk-go/aws/endpoints/dep_service_ids.go b/vendor/github.com/aws/aws-sdk-go/aws/endpoints/dep_service_ids.go
new file mode 100644
index 00000000000..000dd79eec4
--- /dev/null
+++ b/vendor/github.com/aws/aws-sdk-go/aws/endpoints/dep_service_ids.go
@@ -0,0 +1,141 @@
+package endpoints
+
+// Service identifiers
+//
+// Deprecated: Use client package's EndpointID value instead of these
+// ServiceIDs. These IDs are not maintained, and are out of date.
+const (
+ A4bServiceID = "a4b" // A4b.
+ AcmServiceID = "acm" // Acm.
+ AcmPcaServiceID = "acm-pca" // AcmPca.
+ ApiMediatailorServiceID = "api.mediatailor" // ApiMediatailor.
+ ApiPricingServiceID = "api.pricing" // ApiPricing.
+ ApiSagemakerServiceID = "api.sagemaker" // ApiSagemaker.
+ ApigatewayServiceID = "apigateway" // Apigateway.
+ ApplicationAutoscalingServiceID = "application-autoscaling" // ApplicationAutoscaling.
+ Appstream2ServiceID = "appstream2" // Appstream2.
+ AppsyncServiceID = "appsync" // Appsync.
+ AthenaServiceID = "athena" // Athena.
+ AutoscalingServiceID = "autoscaling" // Autoscaling.
+ AutoscalingPlansServiceID = "autoscaling-plans" // AutoscalingPlans.
+ BatchServiceID = "batch" // Batch.
+ BudgetsServiceID = "budgets" // Budgets.
+ CeServiceID = "ce" // Ce.
+ ChimeServiceID = "chime" // Chime.
+ Cloud9ServiceID = "cloud9" // Cloud9.
+ ClouddirectoryServiceID = "clouddirectory" // Clouddirectory.
+ CloudformationServiceID = "cloudformation" // Cloudformation.
+ CloudfrontServiceID = "cloudfront" // Cloudfront.
+ CloudhsmServiceID = "cloudhsm" // Cloudhsm.
+ Cloudhsmv2ServiceID = "cloudhsmv2" // Cloudhsmv2.
+ CloudsearchServiceID = "cloudsearch" // Cloudsearch.
+ CloudtrailServiceID = "cloudtrail" // Cloudtrail.
+ CodebuildServiceID = "codebuild" // Codebuild.
+ CodecommitServiceID = "codecommit" // Codecommit.
+ CodedeployServiceID = "codedeploy" // Codedeploy.
+ CodepipelineServiceID = "codepipeline" // Codepipeline.
+ CodestarServiceID = "codestar" // Codestar.
+ CognitoIdentityServiceID = "cognito-identity" // CognitoIdentity.
+ CognitoIdpServiceID = "cognito-idp" // CognitoIdp.
+ CognitoSyncServiceID = "cognito-sync" // CognitoSync.
+ ComprehendServiceID = "comprehend" // Comprehend.
+ ConfigServiceID = "config" // Config.
+ CurServiceID = "cur" // Cur.
+ DatapipelineServiceID = "datapipeline" // Datapipeline.
+ DaxServiceID = "dax" // Dax.
+ DevicefarmServiceID = "devicefarm" // Devicefarm.
+ DirectconnectServiceID = "directconnect" // Directconnect.
+ DiscoveryServiceID = "discovery" // Discovery.
+ DmsServiceID = "dms" // Dms.
+ DsServiceID = "ds" // Ds.
+ DynamodbServiceID = "dynamodb" // Dynamodb.
+ Ec2ServiceID = "ec2" // Ec2.
+ Ec2metadataServiceID = "ec2metadata" // Ec2metadata.
+ EcrServiceID = "ecr" // Ecr.
+ EcsServiceID = "ecs" // Ecs.
+ ElasticacheServiceID = "elasticache" // Elasticache.
+ ElasticbeanstalkServiceID = "elasticbeanstalk" // Elasticbeanstalk.
+ ElasticfilesystemServiceID = "elasticfilesystem" // Elasticfilesystem.
+ ElasticloadbalancingServiceID = "elasticloadbalancing" // Elasticloadbalancing.
+ ElasticmapreduceServiceID = "elasticmapreduce" // Elasticmapreduce.
+ ElastictranscoderServiceID = "elastictranscoder" // Elastictranscoder.
+ EmailServiceID = "email" // Email.
+ EntitlementMarketplaceServiceID = "entitlement.marketplace" // EntitlementMarketplace.
+ EsServiceID = "es" // Es.
+ EventsServiceID = "events" // Events.
+ FirehoseServiceID = "firehose" // Firehose.
+ FmsServiceID = "fms" // Fms.
+ GameliftServiceID = "gamelift" // Gamelift.
+ GlacierServiceID = "glacier" // Glacier.
+ GlueServiceID = "glue" // Glue.
+ GreengrassServiceID = "greengrass" // Greengrass.
+ GuarddutyServiceID = "guardduty" // Guardduty.
+ HealthServiceID = "health" // Health.
+ IamServiceID = "iam" // Iam.
+ ImportexportServiceID = "importexport" // Importexport.
+ InspectorServiceID = "inspector" // Inspector.
+ IotServiceID = "iot" // Iot.
+ IotanalyticsServiceID = "iotanalytics" // Iotanalytics.
+ KinesisServiceID = "kinesis" // Kinesis.
+ KinesisanalyticsServiceID = "kinesisanalytics" // Kinesisanalytics.
+ KinesisvideoServiceID = "kinesisvideo" // Kinesisvideo.
+ KmsServiceID = "kms" // Kms.
+ LambdaServiceID = "lambda" // Lambda.
+ LightsailServiceID = "lightsail" // Lightsail.
+ LogsServiceID = "logs" // Logs.
+ MachinelearningServiceID = "machinelearning" // Machinelearning.
+ MarketplacecommerceanalyticsServiceID = "marketplacecommerceanalytics" // Marketplacecommerceanalytics.
+ MediaconvertServiceID = "mediaconvert" // Mediaconvert.
+ MedialiveServiceID = "medialive" // Medialive.
+ MediapackageServiceID = "mediapackage" // Mediapackage.
+ MediastoreServiceID = "mediastore" // Mediastore.
+ MeteringMarketplaceServiceID = "metering.marketplace" // MeteringMarketplace.
+ MghServiceID = "mgh" // Mgh.
+ MobileanalyticsServiceID = "mobileanalytics" // Mobileanalytics.
+ ModelsLexServiceID = "models.lex" // ModelsLex.
+ MonitoringServiceID = "monitoring" // Monitoring.
+ MturkRequesterServiceID = "mturk-requester" // MturkRequester.
+ NeptuneServiceID = "neptune" // Neptune.
+ OpsworksServiceID = "opsworks" // Opsworks.
+ OpsworksCmServiceID = "opsworks-cm" // OpsworksCm.
+ OrganizationsServiceID = "organizations" // Organizations.
+ PinpointServiceID = "pinpoint" // Pinpoint.
+ PollyServiceID = "polly" // Polly.
+ RdsServiceID = "rds" // Rds.
+ RedshiftServiceID = "redshift" // Redshift.
+ RekognitionServiceID = "rekognition" // Rekognition.
+ ResourceGroupsServiceID = "resource-groups" // ResourceGroups.
+ Route53ServiceID = "route53" // Route53.
+ Route53domainsServiceID = "route53domains" // Route53domains.
+ RuntimeLexServiceID = "runtime.lex" // RuntimeLex.
+ RuntimeSagemakerServiceID = "runtime.sagemaker" // RuntimeSagemaker.
+ S3ServiceID = "s3" // S3.
+ S3ControlServiceID = "s3-control" // S3Control.
+ SagemakerServiceID = "api.sagemaker" // Sagemaker.
+ SdbServiceID = "sdb" // Sdb.
+ SecretsmanagerServiceID = "secretsmanager" // Secretsmanager.
+ ServerlessrepoServiceID = "serverlessrepo" // Serverlessrepo.
+ ServicecatalogServiceID = "servicecatalog" // Servicecatalog.
+ ServicediscoveryServiceID = "servicediscovery" // Servicediscovery.
+ ShieldServiceID = "shield" // Shield.
+ SmsServiceID = "sms" // Sms.
+ SnowballServiceID = "snowball" // Snowball.
+ SnsServiceID = "sns" // Sns.
+ SqsServiceID = "sqs" // Sqs.
+ SsmServiceID = "ssm" // Ssm.
+ StatesServiceID = "states" // States.
+ StoragegatewayServiceID = "storagegateway" // Storagegateway.
+ StreamsDynamodbServiceID = "streams.dynamodb" // StreamsDynamodb.
+ StsServiceID = "sts" // Sts.
+ SupportServiceID = "support" // Support.
+ SwfServiceID = "swf" // Swf.
+ TaggingServiceID = "tagging" // Tagging.
+ TransferServiceID = "transfer" // Transfer.
+ TranslateServiceID = "translate" // Translate.
+ WafServiceID = "waf" // Waf.
+ WafRegionalServiceID = "waf-regional" // WafRegional.
+ WorkdocsServiceID = "workdocs" // Workdocs.
+ WorkmailServiceID = "workmail" // Workmail.
+ WorkspacesServiceID = "workspaces" // Workspaces.
+ XrayServiceID = "xray" // Xray.
+)
diff --git a/vendor/github.com/aws/aws-sdk-go/aws/endpoints/endpoints.go b/vendor/github.com/aws/aws-sdk-go/aws/endpoints/endpoints.go
index e29c095121d..f82babf6f95 100644
--- a/vendor/github.com/aws/aws-sdk-go/aws/endpoints/endpoints.go
+++ b/vendor/github.com/aws/aws-sdk-go/aws/endpoints/endpoints.go
@@ -35,7 +35,7 @@ type Options struct {
//
// If resolving an endpoint on the partition list the provided region will
// be used to determine which partition's domain name pattern to the service
- // endpoint ID with. If both the service and region are unkonwn and resolving
+ // endpoint ID with. If both the service and region are unknown and resolving
// the endpoint on partition list an UnknownEndpointError error will be returned.
//
// If resolving and endpoint on a partition specific resolver that partition's
diff --git a/vendor/github.com/aws/aws-sdk-go/aws/endpoints/v3model_codegen.go b/vendor/github.com/aws/aws-sdk-go/aws/endpoints/v3model_codegen.go
index 05e92df22af..0fdfcc56e05 100644
--- a/vendor/github.com/aws/aws-sdk-go/aws/endpoints/v3model_codegen.go
+++ b/vendor/github.com/aws/aws-sdk-go/aws/endpoints/v3model_codegen.go
@@ -16,6 +16,10 @@ import (
type CodeGenOptions struct {
// Options for how the model will be decoded.
DecodeModelOptions DecodeModelOptions
+
+ // Disables code generation of the service endpoint prefix IDs defined in
+ // the model.
+ DisableGenerateServiceIDs bool
}
// Set combines all of the option functions together
@@ -39,8 +43,16 @@ func CodeGenModel(modelFile io.Reader, outFile io.Writer, optFns ...func(*CodeGe
return err
}
+ v := struct {
+ Resolver
+ CodeGenOptions
+ }{
+ Resolver: resolver,
+ CodeGenOptions: opts,
+ }
+
tmpl := template.Must(template.New("tmpl").Funcs(funcMap).Parse(v3Tmpl))
- if err := tmpl.ExecuteTemplate(outFile, "defaults", resolver); err != nil {
+ if err := tmpl.ExecuteTemplate(outFile, "defaults", v); err != nil {
return fmt.Errorf("failed to execute template, %v", err)
}
@@ -166,15 +178,17 @@ import (
"regexp"
)
- {{ template "partition consts" . }}
+ {{ template "partition consts" $.Resolver }}
- {{ range $_, $partition := . }}
+ {{ range $_, $partition := $.Resolver }}
{{ template "partition region consts" $partition }}
{{ end }}
- {{ template "service consts" . }}
+ {{ if not $.DisableGenerateServiceIDs -}}
+ {{ template "service consts" $.Resolver }}
+ {{- end }}
- {{ template "endpoint resolvers" . }}
+ {{ template "endpoint resolvers" $.Resolver }}
{{- end }}
{{ define "partition consts" }}
diff --git a/vendor/github.com/aws/aws-sdk-go/aws/errors.go b/vendor/github.com/aws/aws-sdk-go/aws/errors.go
index 57663616868..fa06f7a8f8b 100644
--- a/vendor/github.com/aws/aws-sdk-go/aws/errors.go
+++ b/vendor/github.com/aws/aws-sdk-go/aws/errors.go
@@ -5,13 +5,9 @@ import "github.com/aws/aws-sdk-go/aws/awserr"
var (
// ErrMissingRegion is an error that is returned if region configuration is
// not found.
- //
- // @readonly
ErrMissingRegion = awserr.New("MissingRegion", "could not find region configuration", nil)
// ErrMissingEndpoint is an error that is returned if an endpoint cannot be
// resolved for a service.
- //
- // @readonly
ErrMissingEndpoint = awserr.New("MissingEndpoint", "'Endpoint' configuration is required for this service", nil)
)
diff --git a/vendor/github.com/aws/aws-sdk-go/aws/request/handlers.go b/vendor/github.com/aws/aws-sdk-go/aws/request/handlers.go
index 605a72d3c94..8ef8548a96d 100644
--- a/vendor/github.com/aws/aws-sdk-go/aws/request/handlers.go
+++ b/vendor/github.com/aws/aws-sdk-go/aws/request/handlers.go
@@ -19,6 +19,7 @@ type Handlers struct {
UnmarshalError HandlerList
Retry HandlerList
AfterRetry HandlerList
+ CompleteAttempt HandlerList
Complete HandlerList
}
@@ -36,6 +37,7 @@ func (h *Handlers) Copy() Handlers {
UnmarshalMeta: h.UnmarshalMeta.copy(),
Retry: h.Retry.copy(),
AfterRetry: h.AfterRetry.copy(),
+ CompleteAttempt: h.CompleteAttempt.copy(),
Complete: h.Complete.copy(),
}
}
@@ -53,6 +55,7 @@ func (h *Handlers) Clear() {
h.ValidateResponse.Clear()
h.Retry.Clear()
h.AfterRetry.Clear()
+ h.CompleteAttempt.Clear()
h.Complete.Clear()
}
diff --git a/vendor/github.com/aws/aws-sdk-go/aws/request/request.go b/vendor/github.com/aws/aws-sdk-go/aws/request/request.go
index 75f0fe07780..b7166846504 100644
--- a/vendor/github.com/aws/aws-sdk-go/aws/request/request.go
+++ b/vendor/github.com/aws/aws-sdk-go/aws/request/request.go
@@ -122,7 +122,6 @@ func New(cfg aws.Config, clientInfo metadata.ClientInfo, handlers Handlers,
Handlers: handlers.Copy(),
Retryer: retryer,
- AttemptTime: time.Now(),
Time: time.Now(),
ExpireTime: 0,
Operation: operation,
@@ -266,7 +265,9 @@ func (r *Request) SetReaderBody(reader io.ReadSeeker) {
}
// Presign returns the request's signed URL. Error will be returned
-// if the signing fails.
+// if the signing fails. The expire parameter is only used for presigned Amazon
+// S3 API requests. All other AWS services will use a fixed expiration
+// time of 15 minutes.
//
// It is invalid to create a presigned URL with a expire duration 0 or less. An
// error is returned if expire duration is 0 or less.
@@ -283,7 +284,9 @@ func (r *Request) Presign(expire time.Duration) (string, error) {
}
// PresignRequest behaves just like presign, with the addition of returning a
-// set of headers that were signed.
+// set of headers that were signed. The expire parameter is only used for
+// presigned Amazon S3 API requests. All other AWS services will use a fixed
+// expiration time of 15 minutes.
//
// It is invalid to create a presigned URL with a expire duration 0 or less. An
// error is returned if expire duration is 0 or less.
@@ -462,80 +465,78 @@ func (r *Request) Send() error {
r.Handlers.Complete.Run(r)
}()
+ if err := r.Error; err != nil {
+ return err
+ }
+
for {
+ r.Error = nil
r.AttemptTime = time.Now()
- if aws.BoolValue(r.Retryable) {
- if r.Config.LogLevel.Matches(aws.LogDebugWithRequestRetries) {
- r.Config.Logger.Log(fmt.Sprintf("DEBUG: Retrying Request %s/%s, attempt %d",
- r.ClientInfo.ServiceName, r.Operation.Name, r.RetryCount))
- }
- // The previous http.Request will have a reference to the r.Body
- // and the HTTP Client's Transport may still be reading from
- // the request's body even though the Client's Do returned.
- r.HTTPRequest = copyHTTPRequest(r.HTTPRequest, nil)
- r.ResetBody()
-
- // Closing response body to ensure that no response body is leaked
- // between retry attempts.
- if r.HTTPResponse != nil && r.HTTPResponse.Body != nil {
- r.HTTPResponse.Body.Close()
- }
+ if err := r.Sign(); err != nil {
+ debugLogReqError(r, "Sign Request", false, err)
+ return err
}
- r.Sign()
- if r.Error != nil {
- return r.Error
- }
-
- r.Retryable = nil
-
- r.Handlers.Send.Run(r)
- if r.Error != nil {
- if !shouldRetryCancel(r) {
- return r.Error
- }
-
- err := r.Error
+ if err := r.sendRequest(); err == nil {
+ return nil
+ } else if !shouldRetryCancel(r) {
+ return err
+ } else {
r.Handlers.Retry.Run(r)
r.Handlers.AfterRetry.Run(r)
- if r.Error != nil {
- debugLogReqError(r, "Send Request", false, err)
+
+ if r.Error != nil || !aws.BoolValue(r.Retryable) {
return r.Error
}
- debugLogReqError(r, "Send Request", true, err)
+
+ r.prepareRetry()
continue
}
- r.Handlers.UnmarshalMeta.Run(r)
- r.Handlers.ValidateResponse.Run(r)
- if r.Error != nil {
- r.Handlers.UnmarshalError.Run(r)
- err := r.Error
+ }
+}
- r.Handlers.Retry.Run(r)
- r.Handlers.AfterRetry.Run(r)
- if r.Error != nil {
- debugLogReqError(r, "Validate Response", false, err)
- return r.Error
- }
- debugLogReqError(r, "Validate Response", true, err)
- continue
- }
+func (r *Request) prepareRetry() {
+ if r.Config.LogLevel.Matches(aws.LogDebugWithRequestRetries) {
+ r.Config.Logger.Log(fmt.Sprintf("DEBUG: Retrying Request %s/%s, attempt %d",
+ r.ClientInfo.ServiceName, r.Operation.Name, r.RetryCount))
+ }
- r.Handlers.Unmarshal.Run(r)
- if r.Error != nil {
- err := r.Error
- r.Handlers.Retry.Run(r)
- r.Handlers.AfterRetry.Run(r)
- if r.Error != nil {
- debugLogReqError(r, "Unmarshal Response", false, err)
- return r.Error
- }
- debugLogReqError(r, "Unmarshal Response", true, err)
- continue
- }
+ // The previous http.Request will have a reference to the r.Body
+ // and the HTTP Client's Transport may still be reading from
+ // the request's body even though the Client's Do returned.
+ r.HTTPRequest = copyHTTPRequest(r.HTTPRequest, nil)
+ r.ResetBody()
- break
+ // Closing response body to ensure that no response body is leaked
+ // between retry attempts.
+ if r.HTTPResponse != nil && r.HTTPResponse.Body != nil {
+ r.HTTPResponse.Body.Close()
+ }
+}
+
+func (r *Request) sendRequest() (sendErr error) {
+ defer r.Handlers.CompleteAttempt.Run(r)
+
+ r.Retryable = nil
+ r.Handlers.Send.Run(r)
+ if r.Error != nil {
+ debugLogReqError(r, "Send Request", r.WillRetry(), r.Error)
+ return r.Error
+ }
+
+ r.Handlers.UnmarshalMeta.Run(r)
+ r.Handlers.ValidateResponse.Run(r)
+ if r.Error != nil {
+ r.Handlers.UnmarshalError.Run(r)
+ debugLogReqError(r, "Validate Response", r.WillRetry(), r.Error)
+ return r.Error
+ }
+
+ r.Handlers.Unmarshal.Run(r)
+ if r.Error != nil {
+ debugLogReqError(r, "Unmarshal Response", r.WillRetry(), r.Error)
+ return r.Error
}
return nil
diff --git a/vendor/github.com/aws/aws-sdk-go/aws/request/retryer.go b/vendor/github.com/aws/aws-sdk-go/aws/request/retryer.go
index f35fef213ed..7bc5da78266 100644
--- a/vendor/github.com/aws/aws-sdk-go/aws/request/retryer.go
+++ b/vendor/github.com/aws/aws-sdk-go/aws/request/retryer.go
@@ -40,6 +40,7 @@ var throttleCodes = map[string]struct{}{
"RequestThrottled": {},
"TooManyRequestsException": {}, // Lambda functions
"PriorRequestNotComplete": {}, // Route53
+ "TransactionInProgressException": {},
}
// credsExpiredCodes is a collection of error codes which signify the credentials
@@ -97,7 +98,7 @@ func isNestedErrorRetryable(parentErr awserr.Error) bool {
}
if t, ok := err.(temporaryError); ok {
- return t.Temporary()
+ return t.Temporary() || isErrConnectionReset(err)
}
return isErrConnectionReset(err)
diff --git a/vendor/github.com/aws/aws-sdk-go/aws/request/validation.go b/vendor/github.com/aws/aws-sdk-go/aws/request/validation.go
index 40124622821..8630683f317 100644
--- a/vendor/github.com/aws/aws-sdk-go/aws/request/validation.go
+++ b/vendor/github.com/aws/aws-sdk-go/aws/request/validation.go
@@ -17,6 +17,12 @@ const (
ParamMinValueErrCode = "ParamMinValueError"
// ParamMinLenErrCode is the error code for fields without enough elements.
ParamMinLenErrCode = "ParamMinLenError"
+ // ParamMaxLenErrCode is the error code for value being too long.
+ ParamMaxLenErrCode = "ParamMaxLenError"
+
+ // ParamFormatErrCode is the error code for a field with invalid
+ // format or characters.
+ ParamFormatErrCode = "ParamFormatInvalidError"
)
// Validator provides a way for types to perform validation logic on their
@@ -232,3 +238,49 @@ func NewErrParamMinLen(field string, min int) *ErrParamMinLen {
func (e *ErrParamMinLen) MinLen() int {
return e.min
}
+
+// An ErrParamMaxLen represents a maximum length parameter error.
+type ErrParamMaxLen struct {
+ errInvalidParam
+ max int
+}
+
+// NewErrParamMaxLen creates a new maximum length parameter error.
+func NewErrParamMaxLen(field string, max int, value string) *ErrParamMaxLen {
+ return &ErrParamMaxLen{
+ errInvalidParam: errInvalidParam{
+ code: ParamMaxLenErrCode,
+ field: field,
+ msg: fmt.Sprintf("maximum size of %v, %v", max, value),
+ },
+ max: max,
+ }
+}
+
+// MaxLen returns the field's required minimum length.
+func (e *ErrParamMaxLen) MaxLen() int {
+ return e.max
+}
+
+// An ErrParamFormat represents a invalid format parameter error.
+type ErrParamFormat struct {
+ errInvalidParam
+ format string
+}
+
+// NewErrParamFormat creates a new invalid format parameter error.
+func NewErrParamFormat(field string, format, value string) *ErrParamFormat {
+ return &ErrParamFormat{
+ errInvalidParam: errInvalidParam{
+ code: ParamFormatErrCode,
+ field: field,
+ msg: fmt.Sprintf("format %v, %v", format, value),
+ },
+ format: format,
+ }
+}
+
+// Format returns the field's required format.
+func (e *ErrParamFormat) Format() string {
+ return e.format
+}
diff --git a/vendor/github.com/aws/aws-sdk-go/aws/session/doc.go b/vendor/github.com/aws/aws-sdk-go/aws/session/doc.go
index ea7b886f81f..38a7b05a621 100644
--- a/vendor/github.com/aws/aws-sdk-go/aws/session/doc.go
+++ b/vendor/github.com/aws/aws-sdk-go/aws/session/doc.go
@@ -99,7 +99,7 @@ handler logs every request and its payload made by a service client:
sess.Handlers.Send.PushFront(func(r *request.Request) {
// Log every request made and its payload
- logger.Println("Request: %s/%s, Payload: %s",
+ logger.Printf("Request: %s/%s, Payload: %s",
r.ClientInfo.ServiceName, r.Operation, r.Params)
})
@@ -128,7 +128,7 @@ read. The Session will be created from configuration values from the shared
credentials file (~/.aws/credentials) over those in the shared config file (~/.aws/config).
Credentials are the values the SDK should use for authenticating requests with
-AWS Services. They arfrom a configuration file will need to include both
+AWS Services. They are from a configuration file will need to include both
aws_access_key_id and aws_secret_access_key must be provided together in the
same file to be considered valid. The values will be ignored if not a complete
group. aws_session_token is an optional field that can be provided if both of
@@ -183,7 +183,7 @@ be returned when creating the session.
// from assumed role.
svc := s3.New(sess)
-To setup assume role outside of a session see the stscrds.AssumeRoleProvider
+To setup assume role outside of a session see the stscreds.AssumeRoleProvider
documentation.
Environment Variables
diff --git a/vendor/github.com/aws/aws-sdk-go/aws/session/env_config.go b/vendor/github.com/aws/aws-sdk-go/aws/session/env_config.go
index 82e04d76cde..e3959b959ef 100644
--- a/vendor/github.com/aws/aws-sdk-go/aws/session/env_config.go
+++ b/vendor/github.com/aws/aws-sdk-go/aws/session/env_config.go
@@ -4,6 +4,7 @@ import (
"os"
"strconv"
+ "github.com/aws/aws-sdk-go/aws"
"github.com/aws/aws-sdk-go/aws/credentials"
"github.com/aws/aws-sdk-go/aws/defaults"
)
@@ -79,7 +80,7 @@ type envConfig struct {
// AWS_CONFIG_FILE=$HOME/my_shared_config
SharedConfigFile string
- // Sets the path to a custom Credentials Authroity (CA) Bundle PEM file
+ // Sets the path to a custom Credentials Authority (CA) Bundle PEM file
// that the SDK will use instead of the system's root CA bundle.
// Only use this if you want to configure the SDK to use a custom set
// of CAs.
@@ -101,6 +102,12 @@ type envConfig struct {
CSMEnabled bool
CSMPort string
CSMClientID string
+
+ enableEndpointDiscovery string
+ // Enables endpoint discovery via environment variables.
+ //
+ // AWS_ENABLE_ENDPOINT_DISCOVERY=true
+ EnableEndpointDiscovery *bool
}
var (
@@ -125,6 +132,10 @@ var (
"AWS_SESSION_TOKEN",
}
+ enableEndpointDiscoveryEnvKey = []string{
+ "AWS_ENABLE_ENDPOINT_DISCOVERY",
+ }
+
regionEnvKeys = []string{
"AWS_REGION",
"AWS_DEFAULT_REGION", // Only read if AWS_SDK_LOAD_CONFIG is also set
@@ -194,6 +205,12 @@ func envConfigLoad(enableSharedConfig bool) envConfig {
setFromEnvVal(&cfg.Region, regionKeys)
setFromEnvVal(&cfg.Profile, profileKeys)
+ // endpoint discovery is in reference to it being enabled.
+ setFromEnvVal(&cfg.enableEndpointDiscovery, enableEndpointDiscoveryEnvKey)
+ if len(cfg.enableEndpointDiscovery) > 0 {
+ cfg.EnableEndpointDiscovery = aws.Bool(cfg.enableEndpointDiscovery != "false")
+ }
+
setFromEnvVal(&cfg.SharedCredentialsFile, sharedCredsFileEnvKey)
setFromEnvVal(&cfg.SharedConfigFile, sharedConfigFileEnvKey)
diff --git a/vendor/github.com/aws/aws-sdk-go/aws/session/session.go b/vendor/github.com/aws/aws-sdk-go/aws/session/session.go
index 51f30556301..9bdbafd65cc 100644
--- a/vendor/github.com/aws/aws-sdk-go/aws/session/session.go
+++ b/vendor/github.com/aws/aws-sdk-go/aws/session/session.go
@@ -14,13 +14,32 @@ import (
"github.com/aws/aws-sdk-go/aws/client"
"github.com/aws/aws-sdk-go/aws/corehandlers"
"github.com/aws/aws-sdk-go/aws/credentials"
+ "github.com/aws/aws-sdk-go/aws/credentials/processcreds"
"github.com/aws/aws-sdk-go/aws/credentials/stscreds"
"github.com/aws/aws-sdk-go/aws/csm"
"github.com/aws/aws-sdk-go/aws/defaults"
"github.com/aws/aws-sdk-go/aws/endpoints"
"github.com/aws/aws-sdk-go/aws/request"
+ "github.com/aws/aws-sdk-go/internal/shareddefaults"
)
+const (
+ // ErrCodeSharedConfig represents an error that occurs in the shared
+ // configuration logic
+ ErrCodeSharedConfig = "SharedConfigErr"
+)
+
+// ErrSharedConfigSourceCollision will be returned if a section contains both
+// source_profile and credential_source
+var ErrSharedConfigSourceCollision = awserr.New(ErrCodeSharedConfig, "only source profile or credential source can be specified, not both", nil)
+
+// ErrSharedConfigECSContainerEnvVarEmpty will be returned if the environment
+// variables are empty and Environment was set as the credential source
+var ErrSharedConfigECSContainerEnvVarEmpty = awserr.New(ErrCodeSharedConfig, "EcsContainer was specified as the credential_source, but 'AWS_CONTAINER_CREDENTIALS_RELATIVE_URI' was not set", nil)
+
+// ErrSharedConfigInvalidCredSource will be returned if an invalid credential source was provided
+var ErrSharedConfigInvalidCredSource = awserr.New(ErrCodeSharedConfig, "credential source values must be EcsContainer, Ec2InstanceMetadata, or Environment", nil)
+
// A Session provides a central location to create service clients from and
// store configurations and request handlers for those services.
//
@@ -434,8 +453,67 @@ func mergeConfigSrcs(cfg, userCfg *aws.Config, envCfg envConfig, sharedCfg share
}
}
+ if cfg.EnableEndpointDiscovery == nil {
+ if envCfg.EnableEndpointDiscovery != nil {
+ cfg.WithEndpointDiscovery(*envCfg.EnableEndpointDiscovery)
+ } else if envCfg.EnableSharedConfig && sharedCfg.EnableEndpointDiscovery != nil {
+ cfg.WithEndpointDiscovery(*sharedCfg.EnableEndpointDiscovery)
+ }
+ }
+
// Configure credentials if not already set
if cfg.Credentials == credentials.AnonymousCredentials && userCfg.Credentials == nil {
+
+ // inspect the profile to see if a credential source has been specified.
+ if envCfg.EnableSharedConfig && len(sharedCfg.AssumeRole.CredentialSource) > 0 {
+
+ // if both credential_source and source_profile have been set, return an error
+ // as this is undefined behavior.
+ if len(sharedCfg.AssumeRole.SourceProfile) > 0 {
+ return ErrSharedConfigSourceCollision
+ }
+
+ // valid credential source values
+ const (
+ credSourceEc2Metadata = "Ec2InstanceMetadata"
+ credSourceEnvironment = "Environment"
+ credSourceECSContainer = "EcsContainer"
+ )
+
+ switch sharedCfg.AssumeRole.CredentialSource {
+ case credSourceEc2Metadata:
+ cfgCp := *cfg
+ p := defaults.RemoteCredProvider(cfgCp, handlers)
+ cfgCp.Credentials = credentials.NewCredentials(p)
+
+ if len(sharedCfg.AssumeRole.MFASerial) > 0 && sessOpts.AssumeRoleTokenProvider == nil {
+ // AssumeRole Token provider is required if doing Assume Role
+ // with MFA.
+ return AssumeRoleTokenProviderNotSetError{}
+ }
+
+ cfg.Credentials = assumeRoleCredentials(cfgCp, handlers, sharedCfg, sessOpts)
+ case credSourceEnvironment:
+ cfg.Credentials = credentials.NewStaticCredentialsFromCreds(
+ envCfg.Creds,
+ )
+ case credSourceECSContainer:
+ if len(os.Getenv(shareddefaults.ECSCredsProviderEnvVar)) == 0 {
+ return ErrSharedConfigECSContainerEnvVarEmpty
+ }
+
+ cfgCp := *cfg
+ p := defaults.RemoteCredProvider(cfgCp, handlers)
+ creds := credentials.NewCredentials(p)
+
+ cfg.Credentials = creds
+ default:
+ return ErrSharedConfigInvalidCredSource
+ }
+
+ return nil
+ }
+
if len(envCfg.Creds.AccessKeyID) > 0 {
cfg.Credentials = credentials.NewStaticCredentialsFromCreds(
envCfg.Creds,
@@ -445,36 +523,22 @@ func mergeConfigSrcs(cfg, userCfg *aws.Config, envCfg envConfig, sharedCfg share
cfgCp.Credentials = credentials.NewStaticCredentialsFromCreds(
sharedCfg.AssumeRoleSource.Creds,
)
+
if len(sharedCfg.AssumeRole.MFASerial) > 0 && sessOpts.AssumeRoleTokenProvider == nil {
// AssumeRole Token provider is required if doing Assume Role
// with MFA.
return AssumeRoleTokenProviderNotSetError{}
}
- cfg.Credentials = stscreds.NewCredentials(
- &Session{
- Config: &cfgCp,
- Handlers: handlers.Copy(),
- },
- sharedCfg.AssumeRole.RoleARN,
- func(opt *stscreds.AssumeRoleProvider) {
- opt.RoleSessionName = sharedCfg.AssumeRole.RoleSessionName
- // Assume role with external ID
- if len(sharedCfg.AssumeRole.ExternalID) > 0 {
- opt.ExternalID = aws.String(sharedCfg.AssumeRole.ExternalID)
- }
-
- // Assume role with MFA
- if len(sharedCfg.AssumeRole.MFASerial) > 0 {
- opt.SerialNumber = aws.String(sharedCfg.AssumeRole.MFASerial)
- opt.TokenProvider = sessOpts.AssumeRoleTokenProvider
- }
- },
- )
+ cfg.Credentials = assumeRoleCredentials(cfgCp, handlers, sharedCfg, sessOpts)
} else if len(sharedCfg.Creds.AccessKeyID) > 0 {
cfg.Credentials = credentials.NewStaticCredentialsFromCreds(
sharedCfg.Creds,
)
+ } else if len(sharedCfg.CredentialProcess) > 0 {
+ cfg.Credentials = processcreds.NewCredentials(
+ sharedCfg.CredentialProcess,
+ )
} else {
// Fallback to default credentials provider, include mock errors
// for the credential chain so user can identify why credentials
@@ -493,6 +557,30 @@ func mergeConfigSrcs(cfg, userCfg *aws.Config, envCfg envConfig, sharedCfg share
return nil
}
+func assumeRoleCredentials(cfg aws.Config, handlers request.Handlers, sharedCfg sharedConfig, sessOpts Options) *credentials.Credentials {
+ return stscreds.NewCredentials(
+ &Session{
+ Config: &cfg,
+ Handlers: handlers.Copy(),
+ },
+ sharedCfg.AssumeRole.RoleARN,
+ func(opt *stscreds.AssumeRoleProvider) {
+ opt.RoleSessionName = sharedCfg.AssumeRole.RoleSessionName
+
+ // Assume role with external ID
+ if len(sharedCfg.AssumeRole.ExternalID) > 0 {
+ opt.ExternalID = aws.String(sharedCfg.AssumeRole.ExternalID)
+ }
+
+ // Assume role with MFA
+ if len(sharedCfg.AssumeRole.MFASerial) > 0 {
+ opt.SerialNumber = aws.String(sharedCfg.AssumeRole.MFASerial)
+ opt.TokenProvider = sessOpts.AssumeRoleTokenProvider
+ }
+ },
+ )
+}
+
// AssumeRoleTokenProviderNotSetError is an error returned when creating a session when the
// MFAToken option is not set when shared config is configured load assume a
// role with an MFA token.
diff --git a/vendor/github.com/aws/aws-sdk-go/aws/session/shared_config.go b/vendor/github.com/aws/aws-sdk-go/aws/session/shared_config.go
index 09c8e5bc7ab..7cb44021b3f 100644
--- a/vendor/github.com/aws/aws-sdk-go/aws/session/shared_config.go
+++ b/vendor/github.com/aws/aws-sdk-go/aws/session/shared_config.go
@@ -2,11 +2,11 @@ package session
import (
"fmt"
- "io/ioutil"
"github.com/aws/aws-sdk-go/aws/awserr"
"github.com/aws/aws-sdk-go/aws/credentials"
- "github.com/go-ini/ini"
+
+ "github.com/aws/aws-sdk-go/internal/ini"
)
const (
@@ -16,15 +16,21 @@ const (
sessionTokenKey = `aws_session_token` // optional
// Assume Role Credentials group
- roleArnKey = `role_arn` // group required
- sourceProfileKey = `source_profile` // group required
- externalIDKey = `external_id` // optional
- mfaSerialKey = `mfa_serial` // optional
- roleSessionNameKey = `role_session_name` // optional
+ roleArnKey = `role_arn` // group required
+ sourceProfileKey = `source_profile` // group required (or credential_source)
+ credentialSourceKey = `credential_source` // group required (or source_profile)
+ externalIDKey = `external_id` // optional
+ mfaSerialKey = `mfa_serial` // optional
+ roleSessionNameKey = `role_session_name` // optional
// Additional Config fields
regionKey = `region`
+ // endpoint discovery group
+ enableEndpointDiscoveryKey = `endpoint_discovery_enabled` // optional
+ // External Credential Process
+ credentialProcessKey = `credential_process`
+
// DefaultSharedConfigProfile is the default profile to be used when
// loading configuration from the config files if another profile name
// is not provided.
@@ -32,11 +38,12 @@ const (
)
type assumeRoleConfig struct {
- RoleARN string
- SourceProfile string
- ExternalID string
- MFASerial string
- RoleSessionName string
+ RoleARN string
+ SourceProfile string
+ CredentialSource string
+ ExternalID string
+ MFASerial string
+ RoleSessionName string
}
// sharedConfig represents the configuration fields of the SDK config files.
@@ -55,16 +62,25 @@ type sharedConfig struct {
AssumeRole assumeRoleConfig
AssumeRoleSource *sharedConfig
+ // An external process to request credentials
+ CredentialProcess string
+
// Region is the region the SDK should use for looking up AWS service endpoints
// and signing requests.
//
// region
Region string
+
+ // EnableEndpointDiscovery can be enabled in the shared config by setting
+ // endpoint_discovery_enabled to true
+ //
+ // endpoint_discovery_enabled = true
+ EnableEndpointDiscovery *bool
}
type sharedConfigFile struct {
Filename string
- IniData *ini.File
+ IniData ini.Sections
}
// loadSharedConfig retrieves the configuration from the list of files
@@ -105,19 +121,16 @@ func loadSharedConfigIniFiles(filenames []string) ([]sharedConfigFile, error) {
files := make([]sharedConfigFile, 0, len(filenames))
for _, filename := range filenames {
- b, err := ioutil.ReadFile(filename)
- if err != nil {
+ sections, err := ini.OpenFile(filename)
+ if aerr, ok := err.(awserr.Error); ok && aerr.Code() == ini.ErrCodeUnableToReadFile {
// Skip files which can't be opened and read for whatever reason
continue
- }
-
- f, err := ini.Load(b)
- if err != nil {
+ } else if err != nil {
return nil, SharedConfigLoadError{Filename: filename, Err: err}
}
files = append(files, sharedConfigFile{
- Filename: filename, IniData: f,
+ Filename: filename, IniData: sections,
})
}
@@ -127,6 +140,13 @@ func loadSharedConfigIniFiles(filenames []string) ([]sharedConfigFile, error) {
func (cfg *sharedConfig) setAssumeRoleSource(origProfile string, files []sharedConfigFile) error {
var assumeRoleSrc sharedConfig
+ if len(cfg.AssumeRole.CredentialSource) > 0 {
+ // setAssumeRoleSource is only called when source_profile is found.
+ // If both source_profile and credential_source are set, then
+ // ErrSharedConfigSourceCollision will be returned
+ return ErrSharedConfigSourceCollision
+ }
+
// Multiple level assume role chains are not support
if cfg.AssumeRole.SourceProfile == origProfile {
assumeRoleSrc = *cfg
@@ -171,45 +191,59 @@ func (cfg *sharedConfig) setFromIniFiles(profile string, files []sharedConfigFil
// if a config file only includes aws_access_key_id but no aws_secret_access_key
// the aws_access_key_id will be ignored.
func (cfg *sharedConfig) setFromIniFile(profile string, file sharedConfigFile) error {
- section, err := file.IniData.GetSection(profile)
- if err != nil {
+ section, ok := file.IniData.GetSection(profile)
+ if !ok {
// Fallback to to alternate profile name: profile
- section, err = file.IniData.GetSection(fmt.Sprintf("profile %s", profile))
- if err != nil {
- return SharedConfigProfileNotExistsError{Profile: profile, Err: err}
+ section, ok = file.IniData.GetSection(fmt.Sprintf("profile %s", profile))
+ if !ok {
+ return SharedConfigProfileNotExistsError{Profile: profile, Err: nil}
}
}
// Shared Credentials
- akid := section.Key(accessKeyIDKey).String()
- secret := section.Key(secretAccessKey).String()
+ akid := section.String(accessKeyIDKey)
+ secret := section.String(secretAccessKey)
if len(akid) > 0 && len(secret) > 0 {
cfg.Creds = credentials.Value{
AccessKeyID: akid,
SecretAccessKey: secret,
- SessionToken: section.Key(sessionTokenKey).String(),
+ SessionToken: section.String(sessionTokenKey),
ProviderName: fmt.Sprintf("SharedConfigCredentials: %s", file.Filename),
}
}
// Assume Role
- roleArn := section.Key(roleArnKey).String()
- srcProfile := section.Key(sourceProfileKey).String()
- if len(roleArn) > 0 && len(srcProfile) > 0 {
+ roleArn := section.String(roleArnKey)
+ srcProfile := section.String(sourceProfileKey)
+ credentialSource := section.String(credentialSourceKey)
+ hasSource := len(srcProfile) > 0 || len(credentialSource) > 0
+ if len(roleArn) > 0 && hasSource {
cfg.AssumeRole = assumeRoleConfig{
- RoleARN: roleArn,
- SourceProfile: srcProfile,
- ExternalID: section.Key(externalIDKey).String(),
- MFASerial: section.Key(mfaSerialKey).String(),
- RoleSessionName: section.Key(roleSessionNameKey).String(),
+ RoleARN: roleArn,
+ SourceProfile: srcProfile,
+ CredentialSource: credentialSource,
+ ExternalID: section.String(externalIDKey),
+ MFASerial: section.String(mfaSerialKey),
+ RoleSessionName: section.String(roleSessionNameKey),
}
}
+ // `credential_process`
+ if credProc := section.String(credentialProcessKey); len(credProc) > 0 {
+ cfg.CredentialProcess = credProc
+ }
+
// Region
- if v := section.Key(regionKey).String(); len(v) > 0 {
+ if v := section.String(regionKey); len(v) > 0 {
cfg.Region = v
}
+ // Endpoint discovery
+ if section.Has(enableEndpointDiscoveryKey) {
+ v := section.Bool(enableEndpointDiscoveryKey)
+ cfg.EnableEndpointDiscovery = &v
+ }
+
return nil
}
diff --git a/vendor/github.com/aws/aws-sdk-go/aws/signer/v4/v4.go b/vendor/github.com/aws/aws-sdk-go/aws/signer/v4/v4.go
index f3586131538..e199e56ef4e 100644
--- a/vendor/github.com/aws/aws-sdk-go/aws/signer/v4/v4.go
+++ b/vendor/github.com/aws/aws-sdk-go/aws/signer/v4/v4.go
@@ -98,25 +98,25 @@ var ignoredHeaders = rules{
var requiredSignedHeaders = rules{
whitelist{
mapRule{
- "Cache-Control": struct{}{},
- "Content-Disposition": struct{}{},
- "Content-Encoding": struct{}{},
- "Content-Language": struct{}{},
- "Content-Md5": struct{}{},
- "Content-Type": struct{}{},
- "Expires": struct{}{},
- "If-Match": struct{}{},
- "If-Modified-Since": struct{}{},
- "If-None-Match": struct{}{},
- "If-Unmodified-Since": struct{}{},
- "Range": struct{}{},
- "X-Amz-Acl": struct{}{},
- "X-Amz-Copy-Source": struct{}{},
- "X-Amz-Copy-Source-If-Match": struct{}{},
- "X-Amz-Copy-Source-If-Modified-Since": struct{}{},
- "X-Amz-Copy-Source-If-None-Match": struct{}{},
- "X-Amz-Copy-Source-If-Unmodified-Since": struct{}{},
- "X-Amz-Copy-Source-Range": struct{}{},
+ "Cache-Control": struct{}{},
+ "Content-Disposition": struct{}{},
+ "Content-Encoding": struct{}{},
+ "Content-Language": struct{}{},
+ "Content-Md5": struct{}{},
+ "Content-Type": struct{}{},
+ "Expires": struct{}{},
+ "If-Match": struct{}{},
+ "If-Modified-Since": struct{}{},
+ "If-None-Match": struct{}{},
+ "If-Unmodified-Since": struct{}{},
+ "Range": struct{}{},
+ "X-Amz-Acl": struct{}{},
+ "X-Amz-Copy-Source": struct{}{},
+ "X-Amz-Copy-Source-If-Match": struct{}{},
+ "X-Amz-Copy-Source-If-Modified-Since": struct{}{},
+ "X-Amz-Copy-Source-If-None-Match": struct{}{},
+ "X-Amz-Copy-Source-If-Unmodified-Since": struct{}{},
+ "X-Amz-Copy-Source-Range": struct{}{},
"X-Amz-Copy-Source-Server-Side-Encryption-Customer-Algorithm": struct{}{},
"X-Amz-Copy-Source-Server-Side-Encryption-Customer-Key": struct{}{},
"X-Amz-Copy-Source-Server-Side-Encryption-Customer-Key-Md5": struct{}{},
@@ -134,6 +134,7 @@ var requiredSignedHeaders = rules{
"X-Amz-Server-Side-Encryption-Customer-Key": struct{}{},
"X-Amz-Server-Side-Encryption-Customer-Key-Md5": struct{}{},
"X-Amz-Storage-Class": struct{}{},
+ "X-Amz-Tagging": struct{}{},
"X-Amz-Website-Redirect-Location": struct{}{},
"X-Amz-Content-Sha256": struct{}{},
},
@@ -421,7 +422,7 @@ var SignRequestHandler = request.NamedHandler{
// If the credentials of the request's config are set to
// credentials.AnonymousCredentials the request will not be signed.
func SignSDKRequest(req *request.Request) {
- signSDKRequestWithCurrTime(req, time.Now)
+ SignSDKRequestWithCurrentTime(req, time.Now)
}
// BuildNamedHandler will build a generic handler for signing.
@@ -429,12 +430,15 @@ func BuildNamedHandler(name string, opts ...func(*Signer)) request.NamedHandler
return request.NamedHandler{
Name: name,
Fn: func(req *request.Request) {
- signSDKRequestWithCurrTime(req, time.Now, opts...)
+ SignSDKRequestWithCurrentTime(req, time.Now, opts...)
},
}
}
-func signSDKRequestWithCurrTime(req *request.Request, curTimeFn func() time.Time, opts ...func(*Signer)) {
+// SignSDKRequestWithCurrentTime will sign the SDK's request using the time
+// function passed in. Behaves the same as SignSDKRequest with the exception
+// the request is signed with the value returned by the current time function.
+func SignSDKRequestWithCurrentTime(req *request.Request, curTimeFn func() time.Time, opts ...func(*Signer)) {
// If the request does not need to be signed ignore the signing of the
// request if the AnonymousCredentials object is used.
if req.Config.Credentials == credentials.AnonymousCredentials {
@@ -470,13 +474,9 @@ func signSDKRequestWithCurrTime(req *request.Request, curTimeFn func() time.Time
opt(v4)
}
- signingTime := req.Time
- if !req.LastSignedAt.IsZero() {
- signingTime = req.LastSignedAt
- }
-
+ curTime := curTimeFn()
signedHeaders, err := v4.signWithBody(req.HTTPRequest, req.GetBody(),
- name, region, req.ExpireTime, req.ExpireTime > 0, signingTime,
+ name, region, req.ExpireTime, req.ExpireTime > 0, curTime,
)
if err != nil {
req.Error = err
@@ -485,7 +485,7 @@ func signSDKRequestWithCurrTime(req *request.Request, curTimeFn func() time.Time
}
req.SignedHeaderVals = signedHeaders
- req.LastSignedAt = curTimeFn()
+ req.LastSignedAt = curTime
}
const logSignInfoMsg = `DEBUG: Request Signature:
@@ -739,14 +739,22 @@ func makeSha256Reader(reader io.ReadSeeker) []byte {
start, _ := reader.Seek(0, sdkio.SeekCurrent)
defer reader.Seek(start, sdkio.SeekStart)
- io.Copy(hash, reader)
+ // Use CopyN to avoid allocating the 32KB buffer in io.Copy for bodies
+ // smaller than 32KB. Fall back to io.Copy if we fail to determine the size.
+ size, err := aws.SeekerLen(reader)
+ if err != nil {
+ io.Copy(hash, reader)
+ } else {
+ io.CopyN(hash, reader, size)
+ }
+
return hash.Sum(nil)
}
const doubleSpace = " "
// stripExcessSpaces will rewrite the passed in slice's string values to not
-// contain muliple side-by-side spaces.
+// contain multiple side-by-side spaces.
func stripExcessSpaces(vals []string) {
var j, k, l, m, spaces int
for i, str := range vals {
diff --git a/vendor/github.com/aws/aws-sdk-go/aws/version.go b/vendor/github.com/aws/aws-sdk-go/aws/version.go
index c108466609e..691bb0a8ef3 100644
--- a/vendor/github.com/aws/aws-sdk-go/aws/version.go
+++ b/vendor/github.com/aws/aws-sdk-go/aws/version.go
@@ -5,4 +5,4 @@ package aws
const SDKName = "aws-sdk-go"
// SDKVersion is the version of this SDK
-const SDKVersion = "1.14.12"
+const SDKVersion = "1.16.15"
diff --git a/vendor/github.com/aws/aws-sdk-go/internal/ini/ast.go b/vendor/github.com/aws/aws-sdk-go/internal/ini/ast.go
new file mode 100644
index 00000000000..e83a99886bc
--- /dev/null
+++ b/vendor/github.com/aws/aws-sdk-go/internal/ini/ast.go
@@ -0,0 +1,120 @@
+package ini
+
+// ASTKind represents different states in the parse table
+// and the type of AST that is being constructed
+type ASTKind int
+
+// ASTKind* is used in the parse table to transition between
+// the different states
+const (
+ ASTKindNone = ASTKind(iota)
+ ASTKindStart
+ ASTKindExpr
+ ASTKindEqualExpr
+ ASTKindStatement
+ ASTKindSkipStatement
+ ASTKindExprStatement
+ ASTKindSectionStatement
+ ASTKindNestedSectionStatement
+ ASTKindCompletedNestedSectionStatement
+ ASTKindCommentStatement
+ ASTKindCompletedSectionStatement
+)
+
+func (k ASTKind) String() string {
+ switch k {
+ case ASTKindNone:
+ return "none"
+ case ASTKindStart:
+ return "start"
+ case ASTKindExpr:
+ return "expr"
+ case ASTKindStatement:
+ return "stmt"
+ case ASTKindSectionStatement:
+ return "section_stmt"
+ case ASTKindExprStatement:
+ return "expr_stmt"
+ case ASTKindCommentStatement:
+ return "comment"
+ case ASTKindNestedSectionStatement:
+ return "nested_section_stmt"
+ case ASTKindCompletedSectionStatement:
+ return "completed_stmt"
+ case ASTKindSkipStatement:
+ return "skip"
+ default:
+ return ""
+ }
+}
+
+// AST interface allows us to determine what kind of node we
+// are on and casting may not need to be necessary.
+//
+// The root is always the first node in Children
+type AST struct {
+ Kind ASTKind
+ Root Token
+ RootToken bool
+ Children []AST
+}
+
+func newAST(kind ASTKind, root AST, children ...AST) AST {
+ return AST{
+ Kind: kind,
+ Children: append([]AST{root}, children...),
+ }
+}
+
+func newASTWithRootToken(kind ASTKind, root Token, children ...AST) AST {
+ return AST{
+ Kind: kind,
+ Root: root,
+ RootToken: true,
+ Children: children,
+ }
+}
+
+// AppendChild will append to the list of children an AST has.
+func (a *AST) AppendChild(child AST) {
+ a.Children = append(a.Children, child)
+}
+
+// GetRoot will return the root AST which can be the first entry
+// in the children list or a token.
+func (a *AST) GetRoot() AST {
+ if a.RootToken {
+ return *a
+ }
+
+ if len(a.Children) == 0 {
+ return AST{}
+ }
+
+ return a.Children[0]
+}
+
+// GetChildren will return the current AST's list of children
+func (a *AST) GetChildren() []AST {
+ if len(a.Children) == 0 {
+ return []AST{}
+ }
+
+ if a.RootToken {
+ return a.Children
+ }
+
+ return a.Children[1:]
+}
+
+// SetChildren will set and override all children of the AST.
+func (a *AST) SetChildren(children []AST) {
+ if a.RootToken {
+ a.Children = children
+ } else {
+ a.Children = append(a.Children[:1], children...)
+ }
+}
+
+// Start is used to indicate the starting state of the parse table.
+var Start = newAST(ASTKindStart, AST{})
diff --git a/vendor/github.com/aws/aws-sdk-go/internal/ini/comma_token.go b/vendor/github.com/aws/aws-sdk-go/internal/ini/comma_token.go
new file mode 100644
index 00000000000..0895d53cbe6
--- /dev/null
+++ b/vendor/github.com/aws/aws-sdk-go/internal/ini/comma_token.go
@@ -0,0 +1,11 @@
+package ini
+
+var commaRunes = []rune(",")
+
+func isComma(b rune) bool {
+ return b == ','
+}
+
+func newCommaToken() Token {
+ return newToken(TokenComma, commaRunes, NoneType)
+}
diff --git a/vendor/github.com/aws/aws-sdk-go/internal/ini/comment_token.go b/vendor/github.com/aws/aws-sdk-go/internal/ini/comment_token.go
new file mode 100644
index 00000000000..0b76999ba1f
--- /dev/null
+++ b/vendor/github.com/aws/aws-sdk-go/internal/ini/comment_token.go
@@ -0,0 +1,35 @@
+package ini
+
+// isComment will return whether or not the next byte(s) is a
+// comment.
+func isComment(b []rune) bool {
+ if len(b) == 0 {
+ return false
+ }
+
+ switch b[0] {
+ case ';':
+ return true
+ case '#':
+ return true
+ }
+
+ return false
+}
+
+// newCommentToken will create a comment token and
+// return how many bytes were read.
+func newCommentToken(b []rune) (Token, int, error) {
+ i := 0
+ for ; i < len(b); i++ {
+ if b[i] == '\n' {
+ break
+ }
+
+ if len(b)-i > 2 && b[i] == '\r' && b[i+1] == '\n' {
+ break
+ }
+ }
+
+ return newToken(TokenComment, b[:i], NoneType), i, nil
+}
diff --git a/vendor/github.com/aws/aws-sdk-go/internal/ini/doc.go b/vendor/github.com/aws/aws-sdk-go/internal/ini/doc.go
new file mode 100644
index 00000000000..25ce0fe134d
--- /dev/null
+++ b/vendor/github.com/aws/aws-sdk-go/internal/ini/doc.go
@@ -0,0 +1,29 @@
+// Package ini is an LL(1) parser for configuration files.
+//
+// Example:
+// sections, err := ini.OpenFile("/path/to/file")
+// if err != nil {
+// panic(err)
+// }
+//
+// profile := "foo"
+// section, ok := sections.GetSection(profile)
+// if !ok {
+// fmt.Printf("section %q could not be found", profile)
+// }
+//
+// Below is the BNF that describes this parser
+// Grammar:
+// stmt -> value stmt'
+// stmt' -> epsilon | op stmt
+// value -> number | string | boolean | quoted_string
+//
+// section -> [ section'
+// section' -> value section_close
+// section_close -> ]
+//
+// SkipState will skip (NL WS)+
+//
+// comment -> # comment' | ; comment'
+// comment' -> epsilon | value
+package ini
diff --git a/vendor/github.com/aws/aws-sdk-go/internal/ini/empty_token.go b/vendor/github.com/aws/aws-sdk-go/internal/ini/empty_token.go
new file mode 100644
index 00000000000..04345a54c20
--- /dev/null
+++ b/vendor/github.com/aws/aws-sdk-go/internal/ini/empty_token.go
@@ -0,0 +1,4 @@
+package ini
+
+// emptyToken is used to satisfy the Token interface
+var emptyToken = newToken(TokenNone, []rune{}, NoneType)
diff --git a/vendor/github.com/aws/aws-sdk-go/internal/ini/expression.go b/vendor/github.com/aws/aws-sdk-go/internal/ini/expression.go
new file mode 100644
index 00000000000..91ba2a59dd5
--- /dev/null
+++ b/vendor/github.com/aws/aws-sdk-go/internal/ini/expression.go
@@ -0,0 +1,24 @@
+package ini
+
+// newExpression will return an expression AST.
+// Expr represents an expression
+//
+// grammar:
+// expr -> string | number
+func newExpression(tok Token) AST {
+ return newASTWithRootToken(ASTKindExpr, tok)
+}
+
+func newEqualExpr(left AST, tok Token) AST {
+ return newASTWithRootToken(ASTKindEqualExpr, tok, left)
+}
+
+// EqualExprKey will return a LHS value in the equal expr
+func EqualExprKey(ast AST) string {
+ children := ast.GetChildren()
+ if len(children) == 0 || ast.Kind != ASTKindEqualExpr {
+ return ""
+ }
+
+ return string(children[0].Root.Raw())
+}
diff --git a/vendor/github.com/aws/aws-sdk-go/internal/ini/fuzz.go b/vendor/github.com/aws/aws-sdk-go/internal/ini/fuzz.go
new file mode 100644
index 00000000000..8d462f77e24
--- /dev/null
+++ b/vendor/github.com/aws/aws-sdk-go/internal/ini/fuzz.go
@@ -0,0 +1,17 @@
+// +build gofuzz
+
+package ini
+
+import (
+ "bytes"
+)
+
+func Fuzz(data []byte) int {
+ b := bytes.NewReader(data)
+
+ if _, err := Parse(b); err != nil {
+ return 0
+ }
+
+ return 1
+}
diff --git a/vendor/github.com/aws/aws-sdk-go/internal/ini/ini.go b/vendor/github.com/aws/aws-sdk-go/internal/ini/ini.go
new file mode 100644
index 00000000000..3b0ca7afe3b
--- /dev/null
+++ b/vendor/github.com/aws/aws-sdk-go/internal/ini/ini.go
@@ -0,0 +1,51 @@
+package ini
+
+import (
+ "io"
+ "os"
+
+ "github.com/aws/aws-sdk-go/aws/awserr"
+)
+
+// OpenFile takes a path to a given file, and will open and parse
+// that file.
+func OpenFile(path string) (Sections, error) {
+ f, err := os.Open(path)
+ if err != nil {
+ return Sections{}, awserr.New(ErrCodeUnableToReadFile, "unable to open file", err)
+ }
+ defer f.Close()
+
+ return Parse(f)
+}
+
+// Parse will parse the given file using the shared config
+// visitor.
+func Parse(f io.Reader) (Sections, error) {
+ tree, err := ParseAST(f)
+ if err != nil {
+ return Sections{}, err
+ }
+
+ v := NewDefaultVisitor()
+ if err = Walk(tree, v); err != nil {
+ return Sections{}, err
+ }
+
+ return v.Sections, nil
+}
+
+// ParseBytes will parse the given bytes and return the parsed sections.
+func ParseBytes(b []byte) (Sections, error) {
+ tree, err := ParseASTBytes(b)
+ if err != nil {
+ return Sections{}, err
+ }
+
+ v := NewDefaultVisitor()
+ if err = Walk(tree, v); err != nil {
+ return Sections{}, err
+ }
+
+ return v.Sections, nil
+}
diff --git a/vendor/github.com/aws/aws-sdk-go/internal/ini/ini_lexer.go b/vendor/github.com/aws/aws-sdk-go/internal/ini/ini_lexer.go
new file mode 100644
index 00000000000..582c024ad15
--- /dev/null
+++ b/vendor/github.com/aws/aws-sdk-go/internal/ini/ini_lexer.go
@@ -0,0 +1,165 @@
+package ini
+
+import (
+ "bytes"
+ "io"
+ "io/ioutil"
+
+ "github.com/aws/aws-sdk-go/aws/awserr"
+)
+
+const (
+ // ErrCodeUnableToReadFile is used when a file is failed to be
+ // opened or read from.
+ ErrCodeUnableToReadFile = "FailedRead"
+)
+
+// TokenType represents the various different tokens types
+type TokenType int
+
+func (t TokenType) String() string {
+ switch t {
+ case TokenNone:
+ return "none"
+ case TokenLit:
+ return "literal"
+ case TokenSep:
+ return "sep"
+ case TokenOp:
+ return "op"
+ case TokenWS:
+ return "ws"
+ case TokenNL:
+ return "newline"
+ case TokenComment:
+ return "comment"
+ case TokenComma:
+ return "comma"
+ default:
+ return ""
+ }
+}
+
+// TokenType enums
+const (
+ TokenNone = TokenType(iota)
+ TokenLit
+ TokenSep
+ TokenComma
+ TokenOp
+ TokenWS
+ TokenNL
+ TokenComment
+)
+
+type iniLexer struct{}
+
+// Tokenize will return a list of tokens during lexical analysis of the
+// io.Reader.
+func (l *iniLexer) Tokenize(r io.Reader) ([]Token, error) {
+ b, err := ioutil.ReadAll(r)
+ if err != nil {
+ return nil, awserr.New(ErrCodeUnableToReadFile, "unable to read file", err)
+ }
+
+ return l.tokenize(b)
+}
+
+func (l *iniLexer) tokenize(b []byte) ([]Token, error) {
+ runes := bytes.Runes(b)
+ var err error
+ n := 0
+ tokenAmount := countTokens(runes)
+ tokens := make([]Token, tokenAmount)
+ count := 0
+
+ for len(runes) > 0 && count < tokenAmount {
+ switch {
+ case isWhitespace(runes[0]):
+ tokens[count], n, err = newWSToken(runes)
+ case isComma(runes[0]):
+ tokens[count], n = newCommaToken(), 1
+ case isComment(runes):
+ tokens[count], n, err = newCommentToken(runes)
+ case isNewline(runes):
+ tokens[count], n, err = newNewlineToken(runes)
+ case isSep(runes):
+ tokens[count], n, err = newSepToken(runes)
+ case isOp(runes):
+ tokens[count], n, err = newOpToken(runes)
+ default:
+ tokens[count], n, err = newLitToken(runes)
+ }
+
+ if err != nil {
+ return nil, err
+ }
+
+ count++
+
+ runes = runes[n:]
+ }
+
+ return tokens[:count], nil
+}
+
+func countTokens(runes []rune) int {
+ count, n := 0, 0
+ var err error
+
+ for len(runes) > 0 {
+ switch {
+ case isWhitespace(runes[0]):
+ _, n, err = newWSToken(runes)
+ case isComma(runes[0]):
+ _, n = newCommaToken(), 1
+ case isComment(runes):
+ _, n, err = newCommentToken(runes)
+ case isNewline(runes):
+ _, n, err = newNewlineToken(runes)
+ case isSep(runes):
+ _, n, err = newSepToken(runes)
+ case isOp(runes):
+ _, n, err = newOpToken(runes)
+ default:
+ _, n, err = newLitToken(runes)
+ }
+
+ if err != nil {
+ return 0
+ }
+
+ count++
+ runes = runes[n:]
+ }
+
+ return count + 1
+}
+
+// Token indicates a metadata about a given value.
+type Token struct {
+ t TokenType
+ ValueType ValueType
+ base int
+ raw []rune
+}
+
+var emptyValue = Value{}
+
+func newToken(t TokenType, raw []rune, v ValueType) Token {
+ return Token{
+ t: t,
+ raw: raw,
+ ValueType: v,
+ }
+}
+
+// Raw return the raw runes that were consumed
+func (tok Token) Raw() []rune {
+ return tok.raw
+}
+
+// Type returns the token type
+func (tok Token) Type() TokenType {
+ return tok.t
+}
diff --git a/vendor/github.com/aws/aws-sdk-go/internal/ini/ini_parser.go b/vendor/github.com/aws/aws-sdk-go/internal/ini/ini_parser.go
new file mode 100644
index 00000000000..f99703372c4
--- /dev/null
+++ b/vendor/github.com/aws/aws-sdk-go/internal/ini/ini_parser.go
@@ -0,0 +1,347 @@
+package ini
+
+import (
+ "fmt"
+ "io"
+)
+
+// State enums for the parse table
+const (
+ InvalidState = iota
+ // stmt -> value stmt'
+ StatementState
+ // stmt' -> MarkComplete | op stmt
+ StatementPrimeState
+ // value -> number | string | boolean | quoted_string
+ ValueState
+ // section -> [ section'
+ OpenScopeState
+ // section' -> value section_close
+ SectionState
+ // section_close -> ]
+ CloseScopeState
+ // SkipState will skip (NL WS)+
+ SkipState
+ // SkipTokenState will skip any token and push the previous
+ // state onto the stack.
+ SkipTokenState
+ // comment -> # comment' | ; comment'
+ // comment' -> MarkComplete | value
+ CommentState
+ // MarkComplete state will complete statements and move that
+ // to the completed AST list
+ MarkCompleteState
+ // TerminalState signifies that the tokens have been fully parsed
+ TerminalState
+)
+
+// parseTable is a state machine to dictate the grammar above.
+var parseTable = map[ASTKind]map[TokenType]int{
+ ASTKindStart: map[TokenType]int{
+ TokenLit: StatementState,
+ TokenSep: OpenScopeState,
+ TokenWS: SkipTokenState,
+ TokenNL: SkipTokenState,
+ TokenComment: CommentState,
+ TokenNone: TerminalState,
+ },
+ ASTKindCommentStatement: map[TokenType]int{
+ TokenLit: StatementState,
+ TokenSep: OpenScopeState,
+ TokenWS: SkipTokenState,
+ TokenNL: SkipTokenState,
+ TokenComment: CommentState,
+ TokenNone: MarkCompleteState,
+ },
+ ASTKindExpr: map[TokenType]int{
+ TokenOp: StatementPrimeState,
+ TokenLit: ValueState,
+ TokenSep: OpenScopeState,
+ TokenWS: ValueState,
+ TokenNL: SkipState,
+ TokenComment: CommentState,
+ TokenNone: MarkCompleteState,
+ },
+ ASTKindEqualExpr: map[TokenType]int{
+ TokenLit: ValueState,
+ TokenWS: SkipTokenState,
+ TokenNL: SkipState,
+ },
+ ASTKindStatement: map[TokenType]int{
+ TokenLit: SectionState,
+ TokenSep: CloseScopeState,
+ TokenWS: SkipTokenState,
+ TokenNL: SkipTokenState,
+ TokenComment: CommentState,
+ TokenNone: MarkCompleteState,
+ },
+ ASTKindExprStatement: map[TokenType]int{
+ TokenLit: ValueState,
+ TokenSep: OpenScopeState,
+ TokenOp: ValueState,
+ TokenWS: ValueState,
+ TokenNL: MarkCompleteState,
+ TokenComment: CommentState,
+ TokenNone: TerminalState,
+ TokenComma: SkipState,
+ },
+ ASTKindSectionStatement: map[TokenType]int{
+ TokenLit: SectionState,
+ TokenOp: SectionState,
+ TokenSep: CloseScopeState,
+ TokenWS: SectionState,
+ TokenNL: SkipTokenState,
+ },
+ ASTKindCompletedSectionStatement: map[TokenType]int{
+ TokenWS: SkipTokenState,
+ TokenNL: SkipTokenState,
+ TokenLit: StatementState,
+ TokenSep: OpenScopeState,
+ TokenComment: CommentState,
+ TokenNone: MarkCompleteState,
+ },
+ ASTKindSkipStatement: map[TokenType]int{
+ TokenLit: StatementState,
+ TokenSep: OpenScopeState,
+ TokenWS: SkipTokenState,
+ TokenNL: SkipTokenState,
+ TokenComment: CommentState,
+ TokenNone: TerminalState,
+ },
+}
+
+// ParseAST will parse input from an io.Reader using
+// an LL(1) parser.
+func ParseAST(r io.Reader) ([]AST, error) {
+ lexer := iniLexer{}
+ tokens, err := lexer.Tokenize(r)
+ if err != nil {
+ return []AST{}, err
+ }
+
+ return parse(tokens)
+}
+
+// ParseASTBytes will parse input from a byte slice using
+// an LL(1) parser.
+func ParseASTBytes(b []byte) ([]AST, error) {
+ lexer := iniLexer{}
+ tokens, err := lexer.tokenize(b)
+ if err != nil {
+ return []AST{}, err
+ }
+
+ return parse(tokens)
+}
+
+func parse(tokens []Token) ([]AST, error) {
+ start := Start
+ stack := newParseStack(3, len(tokens))
+
+ stack.Push(start)
+ s := newSkipper()
+
+loop:
+ for stack.Len() > 0 {
+ k := stack.Pop()
+
+ var tok Token
+ if len(tokens) == 0 {
+ // this occurs when all the tokens have been processed
+ // but reduction of what's left on the stack needs to
+ // occur.
+ tok = emptyToken
+ } else {
+ tok = tokens[0]
+ }
+
+ step := parseTable[k.Kind][tok.Type()]
+ if s.ShouldSkip(tok) {
+ // being in a skip state with no tokens will break out of
+ // the parse loop since there is nothing left to process.
+ if len(tokens) == 0 {
+ break loop
+ }
+
+ step = SkipTokenState
+ }
+
+ switch step {
+ case TerminalState:
+ // Finished parsing. Push what should be the last
+ // statement to the stack. If there is anything left
+ // on the stack, an error in parsing has occurred.
+ if k.Kind != ASTKindStart {
+ stack.MarkComplete(k)
+ }
+ break loop
+ case SkipTokenState:
+ // When skipping a token, the previous state was popped off the stack.
+ // To maintain the correct state, the previous state will be pushed
+ // onto the stack.
+ stack.Push(k)
+ case StatementState:
+ if k.Kind != ASTKindStart {
+ stack.MarkComplete(k)
+ }
+ expr := newExpression(tok)
+ stack.Push(expr)
+ case StatementPrimeState:
+ if tok.Type() != TokenOp {
+ stack.MarkComplete(k)
+ continue
+ }
+
+ if k.Kind != ASTKindExpr {
+ return nil, NewParseError(
+ fmt.Sprintf("invalid expression: expected Expr type, but found %T type", k),
+ )
+ }
+
+ k = trimSpaces(k)
+ expr := newEqualExpr(k, tok)
+ stack.Push(expr)
+ case ValueState:
+ // ValueState requires the previous state to either be an equal expression
+ // or an expression statement.
+ //
+ // This grammar occurs when the RHS is a number, word, or quoted string.
+ // equal_expr -> lit op equal_expr'
+ // equal_expr' -> number | string | quoted_string
+ // quoted_string -> " quoted_string'
+ // quoted_string' -> string quoted_string_end
+ // quoted_string_end -> "
+ //
+ // otherwise
+ // expr_stmt -> equal_expr (expr_stmt')*
+ // expr_stmt' -> ws S | op S | MarkComplete
+ // S -> equal_expr' expr_stmt'
+ switch k.Kind {
+ case ASTKindEqualExpr:
+ // assiging a value to some key
+ k.AppendChild(newExpression(tok))
+ stack.Push(newExprStatement(k))
+ case ASTKindExpr:
+ k.Root.raw = append(k.Root.raw, tok.Raw()...)
+ stack.Push(k)
+ case ASTKindExprStatement:
+ root := k.GetRoot()
+ children := root.GetChildren()
+ if len(children) == 0 {
+ return nil, NewParseError(
+ fmt.Sprintf("invalid expression: AST contains no children %s", k.Kind),
+ )
+ }
+
+ rhs := children[len(children)-1]
+
+ if rhs.Root.ValueType != QuotedStringType {
+ rhs.Root.ValueType = StringType
+ rhs.Root.raw = append(rhs.Root.raw, tok.Raw()...)
+
+ }
+
+ children[len(children)-1] = rhs
+ k.SetChildren(children)
+
+ stack.Push(k)
+ }
+ case OpenScopeState:
+ if !runeCompare(tok.Raw(), openBrace) {
+ return nil, NewParseError("expected '['")
+ }
+
+ stmt := newStatement()
+ stack.Push(stmt)
+ case CloseScopeState:
+ if !runeCompare(tok.Raw(), closeBrace) {
+ return nil, NewParseError("expected ']'")
+ }
+
+ k = trimSpaces(k)
+ stack.Push(newCompletedSectionStatement(k))
+ case SectionState:
+ var stmt AST
+
+ switch k.Kind {
+ case ASTKindStatement:
+ // If there are multiple literals inside of a scope declaration,
+ // then the current token's raw value will be appended to the Name.
+ //
+ // This handles cases like [ profile default ]
+ //
+ // k will represent a SectionStatement with the children representing
+ // the label of the section
+ stmt = newSectionStatement(tok)
+ case ASTKindSectionStatement:
+ k.Root.raw = append(k.Root.raw, tok.Raw()...)
+ stmt = k
+ default:
+ return nil, NewParseError(
+ fmt.Sprintf("invalid statement: expected statement: %v", k.Kind),
+ )
+ }
+
+ stack.Push(stmt)
+ case MarkCompleteState:
+ if k.Kind != ASTKindStart {
+ stack.MarkComplete(k)
+ }
+
+ if stack.Len() == 0 {
+ stack.Push(start)
+ }
+ case SkipState:
+ stack.Push(newSkipStatement(k))
+ s.Skip()
+ case CommentState:
+ if k.Kind == ASTKindStart {
+ stack.Push(k)
+ } else {
+ stack.MarkComplete(k)
+ }
+
+ stmt := newCommentStatement(tok)
+ stack.Push(stmt)
+ default:
+ return nil, NewParseError(fmt.Sprintf("invalid state with ASTKind %v and TokenType %v", k, tok))
+ }
+
+ if len(tokens) > 0 {
+ tokens = tokens[1:]
+ }
+ }
+
+ // this occurs when a statement has not been completed
+ if stack.top > 1 {
+ return nil, NewParseError(fmt.Sprintf("incomplete expression: %v", stack.container))
+ }
+
+ // returns a sublist which excludes the start symbol
+ return stack.List(), nil
+}
+
+// trimSpaces will trim spaces on the left and right hand side of
+// the literal.
+func trimSpaces(k AST) AST {
+ // trim left hand side of spaces
+ for i := 0; i < len(k.Root.raw); i++ {
+ if !isWhitespace(k.Root.raw[i]) {
+ break
+ }
+
+ k.Root.raw = k.Root.raw[1:]
+ i--
+ }
+
+ // trim right hand side of spaces
+ for i := len(k.Root.raw) - 1; i >= 0; i-- {
+ if !isWhitespace(k.Root.raw[i]) {
+ break
+ }
+
+ k.Root.raw = k.Root.raw[:len(k.Root.raw)-1]
+ }
+
+ return k
+}
diff --git a/vendor/github.com/aws/aws-sdk-go/internal/ini/literal_tokens.go b/vendor/github.com/aws/aws-sdk-go/internal/ini/literal_tokens.go
new file mode 100644
index 00000000000..24df543d38c
--- /dev/null
+++ b/vendor/github.com/aws/aws-sdk-go/internal/ini/literal_tokens.go
@@ -0,0 +1,324 @@
+package ini
+
+import (
+ "fmt"
+ "strconv"
+ "strings"
+)
+
+var (
+ runesTrue = []rune("true")
+ runesFalse = []rune("false")
+)
+
+var literalValues = [][]rune{
+ runesTrue,
+ runesFalse,
+}
+
+func isBoolValue(b []rune) bool {
+ for _, lv := range literalValues {
+ if isLitValue(lv, b) {
+ return true
+ }
+ }
+ return false
+}
+
+func isLitValue(want, have []rune) bool {
+ if len(have) < len(want) {
+ return false
+ }
+
+ for i := 0; i < len(want); i++ {
+ if want[i] != have[i] {
+ return false
+ }
+ }
+
+ return true
+}
+
+// isNumberValue will return whether not the leading characters in
+// a byte slice is a number. A number is delimited by whitespace or
+// the newline token.
+//
+// A number is defined to be in a binary, octal, decimal (int | float), hex format,
+// or in scientific notation.
+func isNumberValue(b []rune) bool {
+ negativeIndex := 0
+ helper := numberHelper{}
+ needDigit := false
+
+ for i := 0; i < len(b); i++ {
+ negativeIndex++
+
+ switch b[i] {
+ case '-':
+ if helper.IsNegative() || negativeIndex != 1 {
+ return false
+ }
+ helper.Determine(b[i])
+ needDigit = true
+ continue
+ case 'e', 'E':
+ if err := helper.Determine(b[i]); err != nil {
+ return false
+ }
+ negativeIndex = 0
+ needDigit = true
+ continue
+ case 'b':
+ if helper.numberFormat == hex {
+ break
+ }
+ fallthrough
+ case 'o', 'x':
+ needDigit = true
+ if i == 0 {
+ return false
+ }
+
+ fallthrough
+ case '.':
+ if err := helper.Determine(b[i]); err != nil {
+ return false
+ }
+ needDigit = true
+ continue
+ }
+
+ if i > 0 && (isNewline(b[i:]) || isWhitespace(b[i])) {
+ return !needDigit
+ }
+
+ if !helper.CorrectByte(b[i]) {
+ return false
+ }
+ needDigit = false
+ }
+
+ return !needDigit
+}
+
+func isValid(b []rune) (bool, int, error) {
+ if len(b) == 0 {
+ // TODO: should probably return an error
+ return false, 0, nil
+ }
+
+ return isValidRune(b[0]), 1, nil
+}
+
+func isValidRune(r rune) bool {
+ return r != ':' && r != '=' && r != '[' && r != ']' && r != ' ' && r != '\n'
+}
+
+// ValueType is an enum that will signify what type
+// the Value is
+type ValueType int
+
+func (v ValueType) String() string {
+ switch v {
+ case NoneType:
+ return "NONE"
+ case DecimalType:
+ return "FLOAT"
+ case IntegerType:
+ return "INT"
+ case StringType:
+ return "STRING"
+ case BoolType:
+ return "BOOL"
+ }
+
+ return ""
+}
+
+// ValueType enums
+const (
+ NoneType = ValueType(iota)
+ DecimalType
+ IntegerType
+ StringType
+ QuotedStringType
+ BoolType
+)
+
+// Value is a union container
+type Value struct {
+ Type ValueType
+ raw []rune
+
+ integer int64
+ decimal float64
+ boolean bool
+ str string
+}
+
+func newValue(t ValueType, base int, raw []rune) (Value, error) {
+ v := Value{
+ Type: t,
+ raw: raw,
+ }
+ var err error
+
+ switch t {
+ case DecimalType:
+ v.decimal, err = strconv.ParseFloat(string(raw), 64)
+ case IntegerType:
+ if base != 10 {
+ raw = raw[2:]
+ }
+
+ v.integer, err = strconv.ParseInt(string(raw), base, 64)
+ case StringType:
+ v.str = string(raw)
+ case QuotedStringType:
+ v.str = string(raw[1 : len(raw)-1])
+ case BoolType:
+ v.boolean = runeCompare(v.raw, runesTrue)
+ }
+
+ // issue 2253
+ //
+ // if the value trying to be parsed is too large, then we will use
+ // the 'StringType' and raw value instead.
+ if nerr, ok := err.(*strconv.NumError); ok && nerr.Err == strconv.ErrRange {
+ v.Type = StringType
+ v.str = string(raw)
+ err = nil
+ }
+
+ return v, err
+}
+
+// Append will append values and change the type to a string
+// type.
+func (v *Value) Append(tok Token) {
+ r := tok.Raw()
+ if v.Type != QuotedStringType {
+ v.Type = StringType
+ r = tok.raw[1 : len(tok.raw)-1]
+ }
+ if tok.Type() != TokenLit {
+ v.raw = append(v.raw, tok.Raw()...)
+ } else {
+ v.raw = append(v.raw, r...)
+ }
+}
+
+func (v Value) String() string {
+ switch v.Type {
+ case DecimalType:
+ return fmt.Sprintf("decimal: %f", v.decimal)
+ case IntegerType:
+ return fmt.Sprintf("integer: %d", v.integer)
+ case StringType:
+ return fmt.Sprintf("string: %s", string(v.raw))
+ case QuotedStringType:
+ return fmt.Sprintf("quoted string: %s", string(v.raw))
+ case BoolType:
+ return fmt.Sprintf("bool: %t", v.boolean)
+ default:
+ return "union not set"
+ }
+}
+
+func newLitToken(b []rune) (Token, int, error) {
+ n := 0
+ var err error
+
+ token := Token{}
+ if b[0] == '"' {
+ n, err = getStringValue(b)
+ if err != nil {
+ return token, n, err
+ }
+
+ token = newToken(TokenLit, b[:n], QuotedStringType)
+ } else if isNumberValue(b) {
+ var base int
+ base, n, err = getNumericalValue(b)
+ if err != nil {
+ return token, 0, err
+ }
+
+ value := b[:n]
+ vType := IntegerType
+ if contains(value, '.') || hasExponent(value) {
+ vType = DecimalType
+ }
+ token = newToken(TokenLit, value, vType)
+ token.base = base
+ } else if isBoolValue(b) {
+ n, err = getBoolValue(b)
+
+ token = newToken(TokenLit, b[:n], BoolType)
+ } else {
+ n, err = getValue(b)
+ token = newToken(TokenLit, b[:n], StringType)
+ }
+
+ return token, n, err
+}
+
+// IntValue returns an integer value
+func (v Value) IntValue() int64 {
+ return v.integer
+}
+
+// FloatValue returns a float value
+func (v Value) FloatValue() float64 {
+ return v.decimal
+}
+
+// BoolValue returns a bool value
+func (v Value) BoolValue() bool {
+ return v.boolean
+}
+
+func isTrimmable(r rune) bool {
+ switch r {
+ case '\n', ' ':
+ return true
+ }
+ return false
+}
+
+// StringValue returns the string value
+func (v Value) StringValue() string {
+ switch v.Type {
+ case StringType:
+ return strings.TrimFunc(string(v.raw), isTrimmable)
+ case QuotedStringType:
+ // preserve all characters in the quotes
+ return string(removeEscapedCharacters(v.raw[1 : len(v.raw)-1]))
+ default:
+ return strings.TrimFunc(string(v.raw), isTrimmable)
+ }
+}
+
+func contains(runes []rune, c rune) bool {
+ for i := 0; i < len(runes); i++ {
+ if runes[i] == c {
+ return true
+ }
+ }
+
+ return false
+}
+
+func runeCompare(v1 []rune, v2 []rune) bool {
+ if len(v1) != len(v2) {
+ return false
+ }
+
+ for i := 0; i < len(v1); i++ {
+ if v1[i] != v2[i] {
+ return false
+ }
+ }
+
+ return true
+}
diff --git a/vendor/github.com/aws/aws-sdk-go/internal/ini/newline_token.go b/vendor/github.com/aws/aws-sdk-go/internal/ini/newline_token.go
new file mode 100644
index 00000000000..e52ac399f17
--- /dev/null
+++ b/vendor/github.com/aws/aws-sdk-go/internal/ini/newline_token.go
@@ -0,0 +1,30 @@
+package ini
+
+func isNewline(b []rune) bool {
+ if len(b) == 0 {
+ return false
+ }
+
+ if b[0] == '\n' {
+ return true
+ }
+
+ if len(b) < 2 {
+ return false
+ }
+
+ return b[0] == '\r' && b[1] == '\n'
+}
+
+func newNewlineToken(b []rune) (Token, int, error) {
+ i := 1
+ if b[0] == '\r' && isNewline(b[1:]) {
+ i++
+ }
+
+ if !isNewline([]rune(b[:i])) {
+ return emptyToken, 0, NewParseError("invalid new line token")
+ }
+
+ return newToken(TokenNL, b[:i], NoneType), i, nil
+}
diff --git a/vendor/github.com/aws/aws-sdk-go/internal/ini/number_helper.go b/vendor/github.com/aws/aws-sdk-go/internal/ini/number_helper.go
new file mode 100644
index 00000000000..a45c0bc5662
--- /dev/null
+++ b/vendor/github.com/aws/aws-sdk-go/internal/ini/number_helper.go
@@ -0,0 +1,152 @@
+package ini
+
+import (
+ "bytes"
+ "fmt"
+ "strconv"
+)
+
+const (
+ none = numberFormat(iota)
+ binary
+ octal
+ decimal
+ hex
+ exponent
+)
+
+type numberFormat int
+
+// numberHelper is used to dictate what format a number is in
+// and what to do for negative values. Since -1e-4 is a valid
+// number, we cannot just simply check for duplicate negatives.
+type numberHelper struct {
+ numberFormat numberFormat
+
+ negative bool
+ negativeExponent bool
+}
+
+func (b numberHelper) Exists() bool {
+ return b.numberFormat != none
+}
+
+func (b numberHelper) IsNegative() bool {
+ return b.negative || b.negativeExponent
+}
+
+func (b *numberHelper) Determine(c rune) error {
+ if b.Exists() {
+ return NewParseError(fmt.Sprintf("multiple number formats: 0%v", string(c)))
+ }
+
+ switch c {
+ case 'b':
+ b.numberFormat = binary
+ case 'o':
+ b.numberFormat = octal
+ case 'x':
+ b.numberFormat = hex
+ case 'e', 'E':
+ b.numberFormat = exponent
+ case '-':
+ if b.numberFormat != exponent {
+ b.negative = true
+ } else {
+ b.negativeExponent = true
+ }
+ case '.':
+ b.numberFormat = decimal
+ default:
+ return NewParseError(fmt.Sprintf("invalid number character: %v", string(c)))
+ }
+
+ return nil
+}
+
+func (b numberHelper) CorrectByte(c rune) bool {
+ switch {
+ case b.numberFormat == binary:
+ if !isBinaryByte(c) {
+ return false
+ }
+ case b.numberFormat == octal:
+ if !isOctalByte(c) {
+ return false
+ }
+ case b.numberFormat == hex:
+ if !isHexByte(c) {
+ return false
+ }
+ case b.numberFormat == decimal:
+ if !isDigit(c) {
+ return false
+ }
+ case b.numberFormat == exponent:
+ if !isDigit(c) {
+ return false
+ }
+ case b.negativeExponent:
+ if !isDigit(c) {
+ return false
+ }
+ case b.negative:
+ if !isDigit(c) {
+ return false
+ }
+ default:
+ if !isDigit(c) {
+ return false
+ }
+ }
+
+ return true
+}
+
+func (b numberHelper) Base() int {
+ switch b.numberFormat {
+ case binary:
+ return 2
+ case octal:
+ return 8
+ case hex:
+ return 16
+ default:
+ return 10
+ }
+}
+
+func (b numberHelper) String() string {
+ buf := bytes.Buffer{}
+ i := 0
+
+ switch b.numberFormat {
+ case binary:
+ i++
+ buf.WriteString(strconv.Itoa(i) + ": binary format\n")
+ case octal:
+ i++
+ buf.WriteString(strconv.Itoa(i) + ": octal format\n")
+ case hex:
+ i++
+ buf.WriteString(strconv.Itoa(i) + ": hex format\n")
+ case exponent:
+ i++
+ buf.WriteString(strconv.Itoa(i) + ": exponent format\n")
+ default:
+ i++
+ buf.WriteString(strconv.Itoa(i) + ": integer format\n")
+ }
+
+ if b.negative {
+ i++
+ buf.WriteString(strconv.Itoa(i) + ": negative format\n")
+ }
+
+ if b.negativeExponent {
+ i++
+ buf.WriteString(strconv.Itoa(i) + ": negative exponent format\n")
+ }
+
+ return buf.String()
+}
diff --git a/vendor/github.com/aws/aws-sdk-go/internal/ini/op_tokens.go b/vendor/github.com/aws/aws-sdk-go/internal/ini/op_tokens.go
new file mode 100644
index 00000000000..8a84c7cbe08
--- /dev/null
+++ b/vendor/github.com/aws/aws-sdk-go/internal/ini/op_tokens.go
@@ -0,0 +1,39 @@
+package ini
+
+import (
+ "fmt"
+)
+
+var (
+ equalOp = []rune("=")
+ equalColonOp = []rune(":")
+)
+
+func isOp(b []rune) bool {
+ if len(b) == 0 {
+ return false
+ }
+
+ switch b[0] {
+ case '=':
+ return true
+ case ':':
+ return true
+ default:
+ return false
+ }
+}
+
+func newOpToken(b []rune) (Token, int, error) {
+ tok := Token{}
+
+ switch b[0] {
+ case '=':
+ tok = newToken(TokenOp, equalOp, NoneType)
+ case ':':
+ tok = newToken(TokenOp, equalColonOp, NoneType)
+ default:
+ return tok, 0, NewParseError(fmt.Sprintf("unexpected op type, %v", b[0]))
+ }
+ return tok, 1, nil
+}
diff --git a/vendor/github.com/aws/aws-sdk-go/internal/ini/parse_error.go b/vendor/github.com/aws/aws-sdk-go/internal/ini/parse_error.go
new file mode 100644
index 00000000000..45728701931
--- /dev/null
+++ b/vendor/github.com/aws/aws-sdk-go/internal/ini/parse_error.go
@@ -0,0 +1,43 @@
+package ini
+
+import "fmt"
+
+const (
+ // ErrCodeParseError is returned when a parsing error
+ // has occurred.
+ ErrCodeParseError = "INIParseError"
+)
+
+// ParseError is an error which is returned during any part of
+// the parsing process.
+type ParseError struct {
+ msg string
+}
+
+// NewParseError will return a new ParseError where message
+// is the description of the error.
+func NewParseError(message string) *ParseError {
+ return &ParseError{
+ msg: message,
+ }
+}
+
+// Code will return the ErrCodeParseError
+func (err *ParseError) Code() string {
+ return ErrCodeParseError
+}
+
+// Message returns the error's message
+func (err *ParseError) Message() string {
+ return err.msg
+}
+
+// OrigError return nothing since there will never be any
+// original error.
+func (err *ParseError) OrigError() error {
+ return nil
+}
+
+func (err *ParseError) Error() string {
+ return fmt.Sprintf("%s: %s", err.Code(), err.Message())
+}
diff --git a/vendor/github.com/aws/aws-sdk-go/internal/ini/parse_stack.go b/vendor/github.com/aws/aws-sdk-go/internal/ini/parse_stack.go
new file mode 100644
index 00000000000..7f01cf7c703
--- /dev/null
+++ b/vendor/github.com/aws/aws-sdk-go/internal/ini/parse_stack.go
@@ -0,0 +1,60 @@
+package ini
+
+import (
+ "bytes"
+ "fmt"
+)
+
+// ParseStack is a stack that contains a container, the stack portion,
+// and the list which is the list of ASTs that have been successfully
+// parsed.
+type ParseStack struct {
+ top int
+ container []AST
+ list []AST
+ index int
+}
+
+func newParseStack(sizeContainer, sizeList int) ParseStack {
+ return ParseStack{
+ container: make([]AST, sizeContainer),
+ list: make([]AST, sizeList),
+ }
+}
+
+// Pop will return and truncate the last container element.
+func (s *ParseStack) Pop() AST {
+ s.top--
+ return s.container[s.top]
+}
+
+// Push will add the new AST to the container
+func (s *ParseStack) Push(ast AST) {
+ s.container[s.top] = ast
+ s.top++
+}
+
+// MarkComplete will append the AST to the list of completed statements
+func (s *ParseStack) MarkComplete(ast AST) {
+ s.list[s.index] = ast
+ s.index++
+}
+
+// List will return the completed statements
+func (s ParseStack) List() []AST {
+ return s.list[:s.index]
+}
+
+// Len will return the length of the container
+func (s *ParseStack) Len() int {
+ return s.top
+}
+
+func (s ParseStack) String() string {
+ buf := bytes.Buffer{}
+ for i, node := range s.list {
+ buf.WriteString(fmt.Sprintf("%d: %v\n", i+1, node))
+ }
+
+ return buf.String()
+}
diff --git a/vendor/github.com/aws/aws-sdk-go/internal/ini/sep_tokens.go b/vendor/github.com/aws/aws-sdk-go/internal/ini/sep_tokens.go
new file mode 100644
index 00000000000..f82095ba259
--- /dev/null
+++ b/vendor/github.com/aws/aws-sdk-go/internal/ini/sep_tokens.go
@@ -0,0 +1,41 @@
+package ini
+
+import (
+ "fmt"
+)
+
+var (
+ emptyRunes = []rune{}
+)
+
+func isSep(b []rune) bool {
+ if len(b) == 0 {
+ return false
+ }
+
+ switch b[0] {
+ case '[', ']':
+ return true
+ default:
+ return false
+ }
+}
+
+var (
+ openBrace = []rune("[")
+ closeBrace = []rune("]")
+)
+
+func newSepToken(b []rune) (Token, int, error) {
+ tok := Token{}
+
+ switch b[0] {
+ case '[':
+ tok = newToken(TokenSep, openBrace, NoneType)
+ case ']':
+ tok = newToken(TokenSep, closeBrace, NoneType)
+ default:
+ return tok, 0, NewParseError(fmt.Sprintf("unexpected sep type, %v", b[0]))
+ }
+ return tok, 1, nil
+}
diff --git a/vendor/github.com/aws/aws-sdk-go/internal/ini/skipper.go b/vendor/github.com/aws/aws-sdk-go/internal/ini/skipper.go
new file mode 100644
index 00000000000..6bb6964475e
--- /dev/null
+++ b/vendor/github.com/aws/aws-sdk-go/internal/ini/skipper.go
@@ -0,0 +1,45 @@
+package ini
+
+// skipper is used to skip certain blocks of an ini file.
+// Currently skipper is used to skip nested blocks of ini
+// files. See example below
+//
+// [ foo ]
+// nested = ; this section will be skipped
+// a=b
+// c=d
+// bar=baz ; this will be included
+type skipper struct {
+ shouldSkip bool
+ TokenSet bool
+ prevTok Token
+}
+
+func newSkipper() skipper {
+ return skipper{
+ prevTok: emptyToken,
+ }
+}
+
+func (s *skipper) ShouldSkip(tok Token) bool {
+ if s.shouldSkip &&
+ s.prevTok.Type() == TokenNL &&
+ tok.Type() != TokenWS {
+
+ s.Continue()
+ return false
+ }
+ s.prevTok = tok
+
+ return s.shouldSkip
+}
+
+func (s *skipper) Skip() {
+ s.shouldSkip = true
+ s.prevTok = emptyToken
+}
+
+func (s *skipper) Continue() {
+ s.shouldSkip = false
+ s.prevTok = emptyToken
+}
diff --git a/vendor/github.com/aws/aws-sdk-go/internal/ini/statement.go b/vendor/github.com/aws/aws-sdk-go/internal/ini/statement.go
new file mode 100644
index 00000000000..18f3fe89317
--- /dev/null
+++ b/vendor/github.com/aws/aws-sdk-go/internal/ini/statement.go
@@ -0,0 +1,35 @@
+package ini
+
+// Statement is an empty AST mostly used for transitioning states.
+func newStatement() AST {
+ return newAST(ASTKindStatement, AST{})
+}
+
+// SectionStatement represents a section AST
+func newSectionStatement(tok Token) AST {
+ return newASTWithRootToken(ASTKindSectionStatement, tok)
+}
+
+// ExprStatement represents a completed expression AST
+func newExprStatement(ast AST) AST {
+ return newAST(ASTKindExprStatement, ast)
+}
+
+// CommentStatement represents a comment in the ini definition.
+//
+// grammar:
+// comment -> #comment' | ;comment'
+// comment' -> epsilon | value
+func newCommentStatement(tok Token) AST {
+ return newAST(ASTKindCommentStatement, newExpression(tok))
+}
+
+// CompletedSectionStatement represents a completed section
+func newCompletedSectionStatement(ast AST) AST {
+ return newAST(ASTKindCompletedSectionStatement, ast)
+}
+
+// SkipStatement is used to skip whole statements
+func newSkipStatement(ast AST) AST {
+ return newAST(ASTKindSkipStatement, ast)
+}
diff --git a/vendor/github.com/aws/aws-sdk-go/internal/ini/value_util.go b/vendor/github.com/aws/aws-sdk-go/internal/ini/value_util.go
new file mode 100644
index 00000000000..305999d29be
--- /dev/null
+++ b/vendor/github.com/aws/aws-sdk-go/internal/ini/value_util.go
@@ -0,0 +1,284 @@
+package ini
+
+import (
+ "fmt"
+)
+
+// getStringValue will return a quoted string and the amount
+// of bytes read
+//
+// an error will be returned if the string is not properly formatted
+func getStringValue(b []rune) (int, error) {
+ if b[0] != '"' {
+ return 0, NewParseError("strings must start with '\"'")
+ }
+
+ endQuote := false
+ i := 1
+
+ for ; i < len(b) && !endQuote; i++ {
+ if escaped := isEscaped(b[:i], b[i]); b[i] == '"' && !escaped {
+ endQuote = true
+ break
+ } else if escaped {
+ /*c, err := getEscapedByte(b[i])
+ if err != nil {
+ return 0, err
+ }
+
+ b[i-1] = c
+ b = append(b[:i], b[i+1:]...)
+ i--*/
+
+ continue
+ }
+ }
+
+ if !endQuote {
+ return 0, NewParseError("missing '\"' in string value")
+ }
+
+ return i + 1, nil
+}
+
+// getBoolValue will return a boolean and the amount
+// of bytes read
+//
+// an error will be returned if the boolean is not of a correct
+// value
+func getBoolValue(b []rune) (int, error) {
+ if len(b) < 4 {
+ return 0, NewParseError("invalid boolean value")
+ }
+
+ n := 0
+ for _, lv := range literalValues {
+ if len(lv) > len(b) {
+ continue
+ }
+
+ if isLitValue(lv, b) {
+ n = len(lv)
+ }
+ }
+
+ if n == 0 {
+ return 0, NewParseError("invalid boolean value")
+ }
+
+ return n, nil
+}
+
+// getNumericalValue will return a numerical string, the amount
+// of bytes read, and the base of the number
+//
+// an error will be returned if the number is not of a correct
+// value
+func getNumericalValue(b []rune) (int, int, error) {
+ if !isDigit(b[0]) {
+ return 0, 0, NewParseError("invalid digit value")
+ }
+
+ i := 0
+ helper := numberHelper{}
+
+loop:
+ for negativeIndex := 0; i < len(b); i++ {
+ negativeIndex++
+
+ if !isDigit(b[i]) {
+ switch b[i] {
+ case '-':
+ if helper.IsNegative() || negativeIndex != 1 {
+ return 0, 0, NewParseError("parse error '-'")
+ }
+
+ n := getNegativeNumber(b[i:])
+ i += (n - 1)
+ helper.Determine(b[i])
+ continue
+ case '.':
+ if err := helper.Determine(b[i]); err != nil {
+ return 0, 0, err
+ }
+ case 'e', 'E':
+ if err := helper.Determine(b[i]); err != nil {
+ return 0, 0, err
+ }
+
+ negativeIndex = 0
+ case 'b':
+ if helper.numberFormat == hex {
+ break
+ }
+ fallthrough
+ case 'o', 'x':
+ if i == 0 && b[i] != '0' {
+ return 0, 0, NewParseError("incorrect base format, expected leading '0'")
+ }
+
+ if i != 1 {
+ return 0, 0, NewParseError(fmt.Sprintf("incorrect base format found %s at %d index", string(b[i]), i))
+ }
+
+ if err := helper.Determine(b[i]); err != nil {
+ return 0, 0, err
+ }
+ default:
+ if isWhitespace(b[i]) {
+ break loop
+ }
+
+ if isNewline(b[i:]) {
+ break loop
+ }
+
+ if !(helper.numberFormat == hex && isHexByte(b[i])) {
+ if i+2 < len(b) && !isNewline(b[i:i+2]) {
+ return 0, 0, NewParseError("invalid numerical character")
+ } else if !isNewline([]rune{b[i]}) {
+ return 0, 0, NewParseError("invalid numerical character")
+ }
+
+ break loop
+ }
+ }
+ }
+ }
+
+ return helper.Base(), i, nil
+}
+
+// isDigit will return whether or not something is an integer
+func isDigit(b rune) bool {
+ return b >= '0' && b <= '9'
+}
+
+func hasExponent(v []rune) bool {
+ return contains(v, 'e') || contains(v, 'E')
+}
+
+func isBinaryByte(b rune) bool {
+ switch b {
+ case '0', '1':
+ return true
+ default:
+ return false
+ }
+}
+
+func isOctalByte(b rune) bool {
+ switch b {
+ case '0', '1', '2', '3', '4', '5', '6', '7':
+ return true
+ default:
+ return false
+ }
+}
+
+func isHexByte(b rune) bool {
+ if isDigit(b) {
+ return true
+ }
+ return (b >= 'A' && b <= 'F') ||
+ (b >= 'a' && b <= 'f')
+}
+
+func getValue(b []rune) (int, error) {
+ i := 0
+
+ for i < len(b) {
+ if isNewline(b[i:]) {
+ break
+ }
+
+ if isOp(b[i:]) {
+ break
+ }
+
+ valid, n, err := isValid(b[i:])
+ if err != nil {
+ return 0, err
+ }
+
+ if !valid {
+ break
+ }
+
+ i += n
+ }
+
+ return i, nil
+}
+
+// getNegativeNumber will return a negative number from a
+// byte slice. This will iterate through all characters until
+// a non-digit has been found.
+func getNegativeNumber(b []rune) int {
+ if b[0] != '-' {
+ return 0
+ }
+
+ i := 1
+ for ; i < len(b); i++ {
+ if !isDigit(b[i]) {
+ return i
+ }
+ }
+
+ return i
+}
+
+// isEscaped will return whether or not the character is an escaped
+// character.
+func isEscaped(value []rune, b rune) bool {
+ if len(value) == 0 {
+ return false
+ }
+
+ switch b {
+ case '\'': // single quote
+ case '"': // quote
+ case 'n': // newline
+ case 't': // tab
+ case '\\': // backslash
+ default:
+ return false
+ }
+
+ return value[len(value)-1] == '\\'
+}
+
+func getEscapedByte(b rune) (rune, error) {
+ switch b {
+ case '\'': // single quote
+ return '\'', nil
+ case '"': // quote
+ return '"', nil
+ case 'n': // newline
+ return '\n', nil
+ case 't': // table
+ return '\t', nil
+ case '\\': // backslash
+ return '\\', nil
+ default:
+ return b, NewParseError(fmt.Sprintf("invalid escaped character %c", b))
+ }
+}
+
+func removeEscapedCharacters(b []rune) []rune {
+ for i := 0; i < len(b); i++ {
+ if isEscaped(b[:i], b[i]) {
+ c, err := getEscapedByte(b[i])
+ if err != nil {
+ return b
+ }
+
+ b[i-1] = c
+ b = append(b[:i], b[i+1:]...)
+ i--
+ }
+ }
+
+ return b
+}
diff --git a/vendor/github.com/aws/aws-sdk-go/internal/ini/visitor.go b/vendor/github.com/aws/aws-sdk-go/internal/ini/visitor.go
new file mode 100644
index 00000000000..94841c32443
--- /dev/null
+++ b/vendor/github.com/aws/aws-sdk-go/internal/ini/visitor.go
@@ -0,0 +1,166 @@
+package ini
+
+import (
+ "fmt"
+ "sort"
+)
+
+// Visitor is an interface used by walkers that will
+// traverse an array of ASTs.
+type Visitor interface {
+ VisitExpr(AST) error
+ VisitStatement(AST) error
+}
+
+// DefaultVisitor is used to visit statements and expressions
+// and ensure that they are both of the correct format.
+// In addition, upon visiting this will build sections and populate
+// the Sections field which can be used to retrieve profile
+// configuration.
+type DefaultVisitor struct {
+ scope string
+ Sections Sections
+}
+
+// NewDefaultVisitor return a DefaultVisitor
+func NewDefaultVisitor() *DefaultVisitor {
+ return &DefaultVisitor{
+ Sections: Sections{
+ container: map[string]Section{},
+ },
+ }
+}
+
+// VisitExpr visits expressions...
+func (v *DefaultVisitor) VisitExpr(expr AST) error {
+ t := v.Sections.container[v.scope]
+ if t.values == nil {
+ t.values = values{}
+ }
+
+ switch expr.Kind {
+ case ASTKindExprStatement:
+ opExpr := expr.GetRoot()
+ switch opExpr.Kind {
+ case ASTKindEqualExpr:
+ children := opExpr.GetChildren()
+ if len(children) <= 1 {
+ return NewParseError("unexpected token type")
+ }
+
+ rhs := children[1]
+
+ if rhs.Root.Type() != TokenLit {
+ return NewParseError("unexpected token type")
+ }
+
+ key := EqualExprKey(opExpr)
+ v, err := newValue(rhs.Root.ValueType, rhs.Root.base, rhs.Root.Raw())
+ if err != nil {
+ return err
+ }
+
+ t.values[key] = v
+ default:
+ return NewParseError(fmt.Sprintf("unsupported expression %v", expr))
+ }
+ default:
+ return NewParseError(fmt.Sprintf("unsupported expression %v", expr))
+ }
+
+ v.Sections.container[v.scope] = t
+ return nil
+}
+
+// VisitStatement visits statements...
+func (v *DefaultVisitor) VisitStatement(stmt AST) error {
+ switch stmt.Kind {
+ case ASTKindCompletedSectionStatement:
+ child := stmt.GetRoot()
+ if child.Kind != ASTKindSectionStatement {
+ return NewParseError(fmt.Sprintf("unsupported child statement: %T", child))
+ }
+
+ name := string(child.Root.Raw())
+ v.Sections.container[name] = Section{}
+ v.scope = name
+ default:
+ return NewParseError(fmt.Sprintf("unsupported statement: %s", stmt.Kind))
+ }
+
+ return nil
+}
+
+// Sections is a map of Section structures that represent
+// a configuration.
+type Sections struct {
+ container map[string]Section
+}
+
+// GetSection will return section p. If section p does not exist,
+// false will be returned in the second parameter.
+func (t Sections) GetSection(p string) (Section, bool) {
+ v, ok := t.container[p]
+ return v, ok
+}
+
+// values represents a map of union values.
+type values map[string]Value
+
+// List will return a list of all sections that were successfully
+// parsed.
+func (t Sections) List() []string {
+ keys := make([]string, len(t.container))
+ i := 0
+ for k := range t.container {
+ keys[i] = k
+ i++
+ }
+
+ sort.Strings(keys)
+ return keys
+}
+
+// Section contains a name and values. This represent
+// a sectioned entry in a configuration file.
+type Section struct {
+ Name string
+ values values
+}
+
+// Has will return whether or not an entry exists in a given section
+func (t Section) Has(k string) bool {
+ _, ok := t.values[k]
+ return ok
+}
+
+// ValueType will returned what type the union is set to. If
+// k was not found, the NoneType will be returned.
+func (t Section) ValueType(k string) (ValueType, bool) {
+ v, ok := t.values[k]
+ return v.Type, ok
+}
+
+// Bool returns a bool value at k
+func (t Section) Bool(k string) bool {
+ return t.values[k].BoolValue()
+}
+
+// Int returns an integer value at k
+func (t Section) Int(k string) int64 {
+ return t.values[k].IntValue()
+}
+
+// Float64 returns a float value at k
+func (t Section) Float64(k string) float64 {
+ return t.values[k].FloatValue()
+}
+
+// String returns the string value at k
+func (t Section) String(k string) string {
+ _, ok := t.values[k]
+ if !ok {
+ return ""
+ }
+ return t.values[k].StringValue()
+}
diff --git a/vendor/github.com/aws/aws-sdk-go/internal/ini/walker.go b/vendor/github.com/aws/aws-sdk-go/internal/ini/walker.go
new file mode 100644
index 00000000000..99915f7f777
--- /dev/null
+++ b/vendor/github.com/aws/aws-sdk-go/internal/ini/walker.go
@@ -0,0 +1,25 @@
+package ini
+
+// Walk will traverse the AST using the v, the Visitor.
+func Walk(tree []AST, v Visitor) error {
+ for _, node := range tree {
+ switch node.Kind {
+ case ASTKindExpr,
+ ASTKindExprStatement:
+
+ if err := v.VisitExpr(node); err != nil {
+ return err
+ }
+ case ASTKindStatement,
+ ASTKindCompletedSectionStatement,
+ ASTKindNestedSectionStatement,
+ ASTKindCompletedNestedSectionStatement:
+
+ if err := v.VisitStatement(node); err != nil {
+ return err
+ }
+ }
+ }
+
+ return nil
+}
diff --git a/vendor/github.com/aws/aws-sdk-go/internal/ini/ws_token.go b/vendor/github.com/aws/aws-sdk-go/internal/ini/ws_token.go
new file mode 100644
index 00000000000..7ffb4ae06ff
--- /dev/null
+++ b/vendor/github.com/aws/aws-sdk-go/internal/ini/ws_token.go
@@ -0,0 +1,24 @@
+package ini
+
+import (
+ "unicode"
+)
+
+// isWhitespace will return whether or not the character is
+// a whitespace character.
+//
+// Whitespace is defined as a space or tab.
+func isWhitespace(c rune) bool {
+ return unicode.IsSpace(c) && c != '\n' && c != '\r'
+}
+
+func newWSToken(b []rune) (Token, int, error) {
+ i := 0
+ for ; i < len(b); i++ {
+ if !isWhitespace(b[i]) {
+ break
+ }
+ }
+
+ return newToken(TokenWS, b[:i], NoneType), i, nil
+}
diff --git a/vendor/github.com/aws/aws-sdk-go/internal/s3err/error.go b/vendor/github.com/aws/aws-sdk-go/internal/s3err/error.go
new file mode 100644
index 00000000000..0b9b0dfce04
--- /dev/null
+++ b/vendor/github.com/aws/aws-sdk-go/internal/s3err/error.go
@@ -0,0 +1,57 @@
+package s3err
+
+import (
+ "fmt"
+
+ "github.com/aws/aws-sdk-go/aws/awserr"
+ "github.com/aws/aws-sdk-go/aws/request"
+)
+
+// RequestFailure provides additional S3 specific metadata for the request
+// failure.
+type RequestFailure struct {
+ awserr.RequestFailure
+
+ hostID string
+}
+
+// NewRequestFailure returns a request failure error decordated with S3
+// specific metadata.
+func NewRequestFailure(err awserr.RequestFailure, hostID string) *RequestFailure {
+ return &RequestFailure{RequestFailure: err, hostID: hostID}
+}
+
+func (r RequestFailure) Error() string {
+ extra := fmt.Sprintf("status code: %d, request id: %s, host id: %s",
+ r.StatusCode(), r.RequestID(), r.hostID)
+ return awserr.SprintError(r.Code(), r.Message(), extra, r.OrigErr())
+}
+func (r RequestFailure) String() string {
+ return r.Error()
+}
+
+// HostID returns the HostID request response value.
+func (r RequestFailure) HostID() string {
+ return r.hostID
+}
+
+// RequestFailureWrapperHandler returns a handler to rap an
+// awserr.RequestFailure with the S3 request ID 2 from the response.
+func RequestFailureWrapperHandler() request.NamedHandler {
+ return request.NamedHandler{
+ Name: "awssdk.s3.errorHandler",
+ Fn: func(req *request.Request) {
+ reqErr, ok := req.Error.(awserr.RequestFailure)
+ if !ok || reqErr == nil {
+ return
+ }
+
+ hostID := req.HTTPResponse.Header.Get("X-Amz-Id-2")
+ if req.Error == nil {
+ return
+ }
+
+ req.Error = NewRequestFailure(reqErr, hostID)
+ },
+ }
+}
diff --git a/vendor/github.com/aws/aws-sdk-go/internal/sdkuri/path.go b/vendor/github.com/aws/aws-sdk-go/internal/sdkuri/path.go
new file mode 100644
index 00000000000..38ea61afeaa
--- /dev/null
+++ b/vendor/github.com/aws/aws-sdk-go/internal/sdkuri/path.go
@@ -0,0 +1,23 @@
+package sdkuri
+
+import (
+ "path"
+ "strings"
+)
+
+// PathJoin will join the elements of the path delimited by the "/"
+// character. Similar to path.Join with the exception the trailing "/"
+// character is preserved if present.
+func PathJoin(elems ...string) string {
+ if len(elems) == 0 {
+ return ""
+ }
+
+ hasTrailing := strings.HasSuffix(elems[len(elems)-1], "/")
+ str := path.Join(elems...)
+ if hasTrailing && str != "/" {
+ str += "/"
+ }
+
+ return str
+}
diff --git a/vendor/github.com/aws/aws-sdk-go/internal/shareddefaults/ecs_container.go b/vendor/github.com/aws/aws-sdk-go/internal/shareddefaults/ecs_container.go
new file mode 100644
index 00000000000..7da8a49ce52
--- /dev/null
+++ b/vendor/github.com/aws/aws-sdk-go/internal/shareddefaults/ecs_container.go
@@ -0,0 +1,12 @@
+package shareddefaults
+
+const (
+ // ECSCredsProviderEnvVar is an environmental variable key used to
+ // determine which path needs to be hit.
+ ECSCredsProviderEnvVar = "AWS_CONTAINER_CREDENTIALS_RELATIVE_URI"
+)
+
+// ECSContainerCredentialsURI is the endpoint to retrieve container
+// credentials. This can be overridden to test to ensure the credential process
+// is behaving correctly.
+var ECSContainerCredentialsURI = "http://169.254.170.2"
diff --git a/vendor/github.com/aws/aws-sdk-go/private/protocol/ec2query/unmarshal.go b/vendor/github.com/aws/aws-sdk-go/private/protocol/ec2query/unmarshal.go
index 095e97ccf91..5793c047373 100644
--- a/vendor/github.com/aws/aws-sdk-go/private/protocol/ec2query/unmarshal.go
+++ b/vendor/github.com/aws/aws-sdk-go/private/protocol/ec2query/unmarshal.go
@@ -27,7 +27,11 @@ func Unmarshal(r *request.Request) {
decoder := xml.NewDecoder(r.HTTPResponse.Body)
err := xmlutil.UnmarshalXML(r.Data, decoder, "")
if err != nil {
- r.Error = awserr.New("SerializationError", "failed decoding EC2 Query response", err)
+ r.Error = awserr.NewRequestFailure(
+ awserr.New("SerializationError", "failed decoding EC2 Query response", err),
+ r.HTTPResponse.StatusCode,
+ r.RequestID,
+ )
return
}
}
@@ -52,7 +56,11 @@ func UnmarshalError(r *request.Request) {
resp := &xmlErrorResponse{}
err := xml.NewDecoder(r.HTTPResponse.Body).Decode(resp)
if err != nil && err != io.EOF {
- r.Error = awserr.New("SerializationError", "failed decoding EC2 Query error response", err)
+ r.Error = awserr.NewRequestFailure(
+ awserr.New("SerializationError", "failed decoding EC2 Query error response", err),
+ r.HTTPResponse.StatusCode,
+ r.RequestID,
+ )
} else {
r.Error = awserr.NewRequestFailure(
awserr.New(resp.Code, resp.Message, nil),
diff --git a/vendor/github.com/aws/aws-sdk-go/private/protocol/eventstream/eventstreamapi/api.go b/vendor/github.com/aws/aws-sdk-go/private/protocol/eventstream/eventstreamapi/api.go
index 4a4e64c713e..97937c8e598 100644
--- a/vendor/github.com/aws/aws-sdk-go/private/protocol/eventstream/eventstreamapi/api.go
+++ b/vendor/github.com/aws/aws-sdk-go/private/protocol/eventstream/eventstreamapi/api.go
@@ -94,6 +94,9 @@ func (r *EventReader) ReadEvent() (event interface{}, err error) {
switch typ {
case EventMessageType:
return r.unmarshalEventMessage(msg)
+ case ExceptionMessageType:
+ err = r.unmarshalEventException(msg)
+ return nil, err
case ErrorMessageType:
return nil, r.unmarshalErrorMessage(msg)
default:
@@ -122,6 +125,39 @@ func (r *EventReader) unmarshalEventMessage(
return ev, nil
}
+func (r *EventReader) unmarshalEventException(
+ msg eventstream.Message,
+) (err error) {
+ eventType, err := GetHeaderString(msg, ExceptionTypeHeader)
+ if err != nil {
+ return err
+ }
+
+ ev, err := r.unmarshalerForEventType(eventType)
+ if err != nil {
+ return err
+ }
+
+ err = ev.UnmarshalEvent(r.payloadUnmarshaler, msg)
+ if err != nil {
+ return err
+ }
+
+ var ok bool
+ err, ok = ev.(error)
+ if !ok {
+ err = messageError{
+ code: "SerializationError",
+ msg: fmt.Sprintf(
+ "event stream exception %s mapped to non-error %T, %v",
+ eventType, ev, ev,
+ ),
+ }
+ }
+
+ return err
+}
+
func (r *EventReader) unmarshalErrorMessage(msg eventstream.Message) (err error) {
var msgErr messageError
diff --git a/vendor/github.com/aws/aws-sdk-go/private/protocol/eventstream/header_value.go b/vendor/github.com/aws/aws-sdk-go/private/protocol/eventstream/header_value.go
index d7786f92ce5..e3fc0766a9e 100644
--- a/vendor/github.com/aws/aws-sdk-go/private/protocol/eventstream/header_value.go
+++ b/vendor/github.com/aws/aws-sdk-go/private/protocol/eventstream/header_value.go
@@ -464,7 +464,7 @@ func (v *TimestampValue) decode(r io.Reader) error {
func timeFromEpochMilli(t int64) time.Time {
secs := t / 1e3
msec := t % 1e3
- return time.Unix(secs, msec*int64(time.Millisecond))
+ return time.Unix(secs, msec*int64(time.Millisecond)).UTC()
}
// An UUIDValue provides eventstream encoding, and representation of a UUID
diff --git a/vendor/github.com/aws/aws-sdk-go/private/protocol/host.go b/vendor/github.com/aws/aws-sdk-go/private/protocol/host.go
new file mode 100644
index 00000000000..d7d42db0a6a
--- /dev/null
+++ b/vendor/github.com/aws/aws-sdk-go/private/protocol/host.go
@@ -0,0 +1,68 @@
+package protocol
+
+import (
+ "strings"
+
+ "github.com/aws/aws-sdk-go/aws/request"
+)
+
+// ValidateEndpointHostHandler is a request handler that will validate the
+// request endpoint's hosts is a valid RFC 3986 host.
+var ValidateEndpointHostHandler = request.NamedHandler{
+ Name: "awssdk.protocol.ValidateEndpointHostHandler",
+ Fn: func(r *request.Request) {
+ err := ValidateEndpointHost(r.Operation.Name, r.HTTPRequest.URL.Host)
+ if err != nil {
+ r.Error = err
+ }
+ },
+}
+
+// ValidateEndpointHost validates that the host string passed in is a valid RFC
+// 3986 host. Returns error if the host is not valid.
+func ValidateEndpointHost(opName, host string) error {
+ paramErrs := request.ErrInvalidParams{Context: opName}
+ labels := strings.Split(host, ".")
+
+ for i, label := range labels {
+ if i == len(labels)-1 && len(label) == 0 {
+ // Allow trailing dot for FQDN hosts.
+ continue
+ }
+
+ if !ValidHostLabel(label) {
+ paramErrs.Add(request.NewErrParamFormat(
+ "endpoint host label", "[a-zA-Z0-9-]{1,63}", label))
+ }
+ }
+
+ if len(host) > 255 {
+ paramErrs.Add(request.NewErrParamMaxLen(
+ "endpoint host", 255, host,
+ ))
+ }
+
+ if paramErrs.Len() > 0 {
+ return paramErrs
+ }
+ return nil
+}
+
+// ValidHostLabel returns if the label is a valid RFC 3986 host label.
+func ValidHostLabel(label string) bool {
+ if l := len(label); l == 0 || l > 63 {
+ return false
+ }
+ for _, r := range label {
+ switch {
+ case r >= '0' && r <= '9':
+ case r >= 'A' && r <= 'Z':
+ case r >= 'a' && r <= 'z':
+ case r == '-':
+ default:
+ return false
+ }
+ }
+
+ return true
+}
diff --git a/vendor/github.com/aws/aws-sdk-go/private/protocol/host_prefix.go b/vendor/github.com/aws/aws-sdk-go/private/protocol/host_prefix.go
new file mode 100644
index 00000000000..915b0fcafd7
--- /dev/null
+++ b/vendor/github.com/aws/aws-sdk-go/private/protocol/host_prefix.go
@@ -0,0 +1,54 @@
+package protocol
+
+import (
+ "strings"
+
+ "github.com/aws/aws-sdk-go/aws"
+ "github.com/aws/aws-sdk-go/aws/request"
+)
+
+// HostPrefixHandlerName is the handler name for the host prefix request
+// handler.
+const HostPrefixHandlerName = "awssdk.endpoint.HostPrefixHandler"
+
+// NewHostPrefixHandler constructs a build handler
+func NewHostPrefixHandler(prefix string, labelsFn func() map[string]string) request.NamedHandler {
+ builder := HostPrefixBuilder{
+ Prefix: prefix,
+ LabelsFn: labelsFn,
+ }
+
+ return request.NamedHandler{
+ Name: HostPrefixHandlerName,
+ Fn: builder.Build,
+ }
+}
+
+// HostPrefixBuilder provides the request handler to expand and prepend
+// the host prefix into the operation's request endpoint host.
+type HostPrefixBuilder struct {
+ Prefix string
+ LabelsFn func() map[string]string
+}
+
+// Build updates the passed in Request with the HostPrefix template expanded.
+func (h HostPrefixBuilder) Build(r *request.Request) {
+ if aws.BoolValue(r.Config.DisableEndpointHostPrefix) {
+ return
+ }
+
+ var labels map[string]string
+ if h.LabelsFn != nil {
+ labels = h.LabelsFn()
+ }
+
+ prefix := h.Prefix
+ for name, value := range labels {
+ prefix = strings.Replace(prefix, "{"+name+"}", value, -1)
+ }
+
+ r.HTTPRequest.URL.Host = prefix + r.HTTPRequest.URL.Host
+ if len(r.HTTPRequest.Host) > 0 {
+ r.HTTPRequest.Host = prefix + r.HTTPRequest.Host
+ }
+}
diff --git a/vendor/github.com/aws/aws-sdk-go/private/protocol/json/jsonutil/build.go b/vendor/github.com/aws/aws-sdk-go/private/protocol/json/jsonutil/build.go
new file mode 100644
index 00000000000..864fb6704b4
--- /dev/null
+++ b/vendor/github.com/aws/aws-sdk-go/private/protocol/json/jsonutil/build.go
@@ -0,0 +1,296 @@
+// Package jsonutil provides JSON serialization of AWS requests and responses.
+package jsonutil
+
+import (
+ "bytes"
+ "encoding/base64"
+ "encoding/json"
+ "fmt"
+ "math"
+ "reflect"
+ "sort"
+ "strconv"
+ "time"
+
+ "github.com/aws/aws-sdk-go/aws"
+ "github.com/aws/aws-sdk-go/private/protocol"
+)
+
+var timeType = reflect.ValueOf(time.Time{}).Type()
+var byteSliceType = reflect.ValueOf([]byte{}).Type()
+
+// BuildJSON builds a JSON string for a given object v.
+func BuildJSON(v interface{}) ([]byte, error) {
+ var buf bytes.Buffer
+
+ err := buildAny(reflect.ValueOf(v), &buf, "")
+ return buf.Bytes(), err
+}
+
+func buildAny(value reflect.Value, buf *bytes.Buffer, tag reflect.StructTag) error {
+ origVal := value
+ value = reflect.Indirect(value)
+ if !value.IsValid() {
+ return nil
+ }
+
+ vtype := value.Type()
+
+ t := tag.Get("type")
+ if t == "" {
+ switch vtype.Kind() {
+ case reflect.Struct:
+ // also it can't be a time object
+ if value.Type() != timeType {
+ t = "structure"
+ }
+ case reflect.Slice:
+ // also it can't be a byte slice
+ if _, ok := value.Interface().([]byte); !ok {
+ t = "list"
+ }
+ case reflect.Map:
+ // cannot be a JSONValue map
+ if _, ok := value.Interface().(aws.JSONValue); !ok {
+ t = "map"
+ }
+ }
+ }
+
+ switch t {
+ case "structure":
+ if field, ok := vtype.FieldByName("_"); ok {
+ tag = field.Tag
+ }
+ return buildStruct(value, buf, tag)
+ case "list":
+ return buildList(value, buf, tag)
+ case "map":
+ return buildMap(value, buf, tag)
+ default:
+ return buildScalar(origVal, buf, tag)
+ }
+}
+
+func buildStruct(value reflect.Value, buf *bytes.Buffer, tag reflect.StructTag) error {
+ if !value.IsValid() {
+ return nil
+ }
+
+ // unwrap payloads
+ if payload := tag.Get("payload"); payload != "" {
+ field, _ := value.Type().FieldByName(payload)
+ tag = field.Tag
+ value = elemOf(value.FieldByName(payload))
+
+ if !value.IsValid() {
+ return nil
+ }
+ }
+
+ buf.WriteByte('{')
+
+ t := value.Type()
+ first := true
+ for i := 0; i < t.NumField(); i++ {
+ member := value.Field(i)
+
+ // This allocates the most memory.
+ // Additionally, we cannot skip nil fields due to
+ // idempotency auto filling.
+ field := t.Field(i)
+
+ if field.PkgPath != "" {
+ continue // ignore unexported fields
+ }
+ if field.Tag.Get("json") == "-" {
+ continue
+ }
+ if field.Tag.Get("location") != "" {
+ continue // ignore non-body elements
+ }
+ if field.Tag.Get("ignore") != "" {
+ continue
+ }
+
+ if protocol.CanSetIdempotencyToken(member, field) {
+ token := protocol.GetIdempotencyToken()
+ member = reflect.ValueOf(&token)
+ }
+
+ if (member.Kind() == reflect.Ptr || member.Kind() == reflect.Slice || member.Kind() == reflect.Map) && member.IsNil() {
+ continue // ignore unset fields
+ }
+
+ if first {
+ first = false
+ } else {
+ buf.WriteByte(',')
+ }
+
+ // figure out what this field is called
+ name := field.Name
+ if locName := field.Tag.Get("locationName"); locName != "" {
+ name = locName
+ }
+
+ writeString(name, buf)
+ buf.WriteString(`:`)
+
+ err := buildAny(member, buf, field.Tag)
+ if err != nil {
+ return err
+ }
+
+ }
+
+ buf.WriteString("}")
+
+ return nil
+}
+
+func buildList(value reflect.Value, buf *bytes.Buffer, tag reflect.StructTag) error {
+ buf.WriteString("[")
+
+ for i := 0; i < value.Len(); i++ {
+ buildAny(value.Index(i), buf, "")
+
+ if i < value.Len()-1 {
+ buf.WriteString(",")
+ }
+ }
+
+ buf.WriteString("]")
+
+ return nil
+}
+
+type sortedValues []reflect.Value
+
+func (sv sortedValues) Len() int { return len(sv) }
+func (sv sortedValues) Swap(i, j int) { sv[i], sv[j] = sv[j], sv[i] }
+func (sv sortedValues) Less(i, j int) bool { return sv[i].String() < sv[j].String() }
+
+func buildMap(value reflect.Value, buf *bytes.Buffer, tag reflect.StructTag) error {
+ buf.WriteString("{")
+
+ sv := sortedValues(value.MapKeys())
+ sort.Sort(sv)
+
+ for i, k := range sv {
+ if i > 0 {
+ buf.WriteByte(',')
+ }
+
+ writeString(k.String(), buf)
+ buf.WriteString(`:`)
+
+ buildAny(value.MapIndex(k), buf, "")
+ }
+
+ buf.WriteString("}")
+
+ return nil
+}
+
+func buildScalar(v reflect.Value, buf *bytes.Buffer, tag reflect.StructTag) error {
+ // prevents allocation on the heap.
+ scratch := [64]byte{}
+ switch value := reflect.Indirect(v); value.Kind() {
+ case reflect.String:
+ writeString(value.String(), buf)
+ case reflect.Bool:
+ if value.Bool() {
+ buf.WriteString("true")
+ } else {
+ buf.WriteString("false")
+ }
+ case reflect.Int64:
+ buf.Write(strconv.AppendInt(scratch[:0], value.Int(), 10))
+ case reflect.Float64:
+ f := value.Float()
+ if math.IsInf(f, 0) || math.IsNaN(f) {
+ return &json.UnsupportedValueError{Value: v, Str: strconv.FormatFloat(f, 'f', -1, 64)}
+ }
+ buf.Write(strconv.AppendFloat(scratch[:0], f, 'f', -1, 64))
+ default:
+ switch converted := value.Interface().(type) {
+ case time.Time:
+ format := tag.Get("timestampFormat")
+ if len(format) == 0 {
+ format = protocol.UnixTimeFormatName
+ }
+
+ ts := protocol.FormatTime(format, converted)
+ if format != protocol.UnixTimeFormatName {
+ ts = `"` + ts + `"`
+ }
+
+ buf.WriteString(ts)
+ case []byte:
+ if !value.IsNil() {
+ buf.WriteByte('"')
+ if len(converted) < 1024 {
+ // for small buffers, using Encode directly is much faster.
+ dst := make([]byte, base64.StdEncoding.EncodedLen(len(converted)))
+ base64.StdEncoding.Encode(dst, converted)
+ buf.Write(dst)
+ } else {
+ // for large buffers, avoid unnecessary extra temporary
+ // buffer space.
+ enc := base64.NewEncoder(base64.StdEncoding, buf)
+ enc.Write(converted)
+ enc.Close()
+ }
+ buf.WriteByte('"')
+ }
+ case aws.JSONValue:
+ str, err := protocol.EncodeJSONValue(converted, protocol.QuotedEscape)
+ if err != nil {
+ return fmt.Errorf("unable to encode JSONValue, %v", err)
+ }
+ buf.WriteString(str)
+ default:
+ return fmt.Errorf("unsupported JSON value %v (%s)", value.Interface(), value.Type())
+ }
+ }
+ return nil
+}
+
+var hex = "0123456789abcdef"
+
+func writeString(s string, buf *bytes.Buffer) {
+ buf.WriteByte('"')
+ for i := 0; i < len(s); i++ {
+ if s[i] == '"' {
+ buf.WriteString(`\"`)
+ } else if s[i] == '\\' {
+ buf.WriteString(`\\`)
+ } else if s[i] == '\b' {
+ buf.WriteString(`\b`)
+ } else if s[i] == '\f' {
+ buf.WriteString(`\f`)
+ } else if s[i] == '\r' {
+ buf.WriteString(`\r`)
+ } else if s[i] == '\t' {
+ buf.WriteString(`\t`)
+ } else if s[i] == '\n' {
+ buf.WriteString(`\n`)
+ } else if s[i] < 32 {
+ buf.WriteString("\\u00")
+ buf.WriteByte(hex[s[i]>>4])
+ buf.WriteByte(hex[s[i]&0xF])
+ } else {
+ buf.WriteByte(s[i])
+ }
+ }
+ buf.WriteByte('"')
+}
+
+// Returns the reflection element of a value, if it is a pointer.
+func elemOf(value reflect.Value) reflect.Value {
+ for value.Kind() == reflect.Ptr {
+ value = value.Elem()
+ }
+ return value
+}
diff --git a/vendor/github.com/aws/aws-sdk-go/private/protocol/json/jsonutil/unmarshal.go b/vendor/github.com/aws/aws-sdk-go/private/protocol/json/jsonutil/unmarshal.go
new file mode 100644
index 00000000000..b11f3ee45b5
--- /dev/null
+++ b/vendor/github.com/aws/aws-sdk-go/private/protocol/json/jsonutil/unmarshal.go
@@ -0,0 +1,228 @@
+package jsonutil
+
+import (
+ "encoding/base64"
+ "encoding/json"
+ "fmt"
+ "io"
+ "reflect"
+ "time"
+
+ "github.com/aws/aws-sdk-go/aws"
+ "github.com/aws/aws-sdk-go/private/protocol"
+)
+
+// UnmarshalJSON reads a stream and unmarshals the results in object v.
+func UnmarshalJSON(v interface{}, stream io.Reader) error {
+ var out interface{}
+
+ err := json.NewDecoder(stream).Decode(&out)
+ if err == io.EOF {
+ return nil
+ } else if err != nil {
+ return err
+ }
+
+ return unmarshalAny(reflect.ValueOf(v), out, "")
+}
+
+func unmarshalAny(value reflect.Value, data interface{}, tag reflect.StructTag) error {
+ vtype := value.Type()
+ if vtype.Kind() == reflect.Ptr {
+ vtype = vtype.Elem() // check kind of actual element type
+ }
+
+ t := tag.Get("type")
+ if t == "" {
+ switch vtype.Kind() {
+ case reflect.Struct:
+ // also it can't be a time object
+ if _, ok := value.Interface().(*time.Time); !ok {
+ t = "structure"
+ }
+ case reflect.Slice:
+ // also it can't be a byte slice
+ if _, ok := value.Interface().([]byte); !ok {
+ t = "list"
+ }
+ case reflect.Map:
+ // cannot be a JSONValue map
+ if _, ok := value.Interface().(aws.JSONValue); !ok {
+ t = "map"
+ }
+ }
+ }
+
+ switch t {
+ case "structure":
+ if field, ok := vtype.FieldByName("_"); ok {
+ tag = field.Tag
+ }
+ return unmarshalStruct(value, data, tag)
+ case "list":
+ return unmarshalList(value, data, tag)
+ case "map":
+ return unmarshalMap(value, data, tag)
+ default:
+ return unmarshalScalar(value, data, tag)
+ }
+}
+
+func unmarshalStruct(value reflect.Value, data interface{}, tag reflect.StructTag) error {
+ if data == nil {
+ return nil
+ }
+ mapData, ok := data.(map[string]interface{})
+ if !ok {
+ return fmt.Errorf("JSON value is not a structure (%#v)", data)
+ }
+
+ t := value.Type()
+ if value.Kind() == reflect.Ptr {
+ if value.IsNil() { // create the structure if it's nil
+ s := reflect.New(value.Type().Elem())
+ value.Set(s)
+ value = s
+ }
+
+ value = value.Elem()
+ t = t.Elem()
+ }
+
+ // unwrap any payloads
+ if payload := tag.Get("payload"); payload != "" {
+ field, _ := t.FieldByName(payload)
+ return unmarshalAny(value.FieldByName(payload), data, field.Tag)
+ }
+
+ for i := 0; i < t.NumField(); i++ {
+ field := t.Field(i)
+ if field.PkgPath != "" {
+ continue // ignore unexported fields
+ }
+
+ // figure out what this field is called
+ name := field.Name
+ if locName := field.Tag.Get("locationName"); locName != "" {
+ name = locName
+ }
+
+ member := value.FieldByIndex(field.Index)
+ err := unmarshalAny(member, mapData[name], field.Tag)
+ if err != nil {
+ return err
+ }
+ }
+ return nil
+}
+
+func unmarshalList(value reflect.Value, data interface{}, tag reflect.StructTag) error {
+ if data == nil {
+ return nil
+ }
+ listData, ok := data.([]interface{})
+ if !ok {
+ return fmt.Errorf("JSON value is not a list (%#v)", data)
+ }
+
+ if value.IsNil() {
+ l := len(listData)
+ value.Set(reflect.MakeSlice(value.Type(), l, l))
+ }
+
+ for i, c := range listData {
+ err := unmarshalAny(value.Index(i), c, "")
+ if err != nil {
+ return err
+ }
+ }
+
+ return nil
+}
+
+func unmarshalMap(value reflect.Value, data interface{}, tag reflect.StructTag) error {
+ if data == nil {
+ return nil
+ }
+ mapData, ok := data.(map[string]interface{})
+ if !ok {
+ return fmt.Errorf("JSON value is not a map (%#v)", data)
+ }
+
+ if value.IsNil() {
+ value.Set(reflect.MakeMap(value.Type()))
+ }
+
+ for k, v := range mapData {
+ kvalue := reflect.ValueOf(k)
+ vvalue := reflect.New(value.Type().Elem()).Elem()
+
+ unmarshalAny(vvalue, v, "")
+ value.SetMapIndex(kvalue, vvalue)
+ }
+
+ return nil
+}
+
+func unmarshalScalar(value reflect.Value, data interface{}, tag reflect.StructTag) error {
+
+ switch d := data.(type) {
+ case nil:
+ return nil // nothing to do here
+ case string:
+ switch value.Interface().(type) {
+ case *string:
+ value.Set(reflect.ValueOf(&d))
+ case []byte:
+ b, err := base64.StdEncoding.DecodeString(d)
+ if err != nil {
+ return err
+ }
+ value.Set(reflect.ValueOf(b))
+ case *time.Time:
+ format := tag.Get("timestampFormat")
+ if len(format) == 0 {
+ format = protocol.ISO8601TimeFormatName
+ }
+
+ t, err := protocol.ParseTime(format, d)
+ if err != nil {
+ return err
+ }
+ value.Set(reflect.ValueOf(&t))
+ case aws.JSONValue:
+ // No need to use escaping as the value is a non-quoted string.
+ v, err := protocol.DecodeJSONValue(d, protocol.NoEscape)
+ if err != nil {
+ return err
+ }
+ value.Set(reflect.ValueOf(v))
+ default:
+ return fmt.Errorf("unsupported value: %v (%s)", value.Interface(), value.Type())
+ }
+ case float64:
+ switch value.Interface().(type) {
+ case *int64:
+ di := int64(d)
+ value.Set(reflect.ValueOf(&di))
+ case *float64:
+ value.Set(reflect.ValueOf(&d))
+ case *time.Time:
+ // Time unmarshaled from a float64 can only be epoch seconds
+ t := time.Unix(int64(d), 0).UTC()
+ value.Set(reflect.ValueOf(&t))
+ default:
+ return fmt.Errorf("unsupported value: %v (%s)", value.Interface(), value.Type())
+ }
+ case bool:
+ switch value.Interface().(type) {
+ case *bool:
+ value.Set(reflect.ValueOf(&d))
+ default:
+ return fmt.Errorf("unsupported value: %v (%s)", value.Interface(), value.Type())
+ }
+ default:
+ return fmt.Errorf("unsupported JSON value (%v)", data)
+ }
+ return nil
+}
diff --git a/vendor/github.com/aws/aws-sdk-go/private/protocol/jsonrpc/jsonrpc.go b/vendor/github.com/aws/aws-sdk-go/private/protocol/jsonrpc/jsonrpc.go
new file mode 100644
index 00000000000..9a7ba27ad53
--- /dev/null
+++ b/vendor/github.com/aws/aws-sdk-go/private/protocol/jsonrpc/jsonrpc.go
@@ -0,0 +1,115 @@
+// Package jsonrpc provides JSON RPC utilities for serialization of AWS
+// requests and responses.
+package jsonrpc
+
+//go:generate go run -tags codegen ../../../models/protocol_tests/generate.go ../../../models/protocol_tests/input/json.json build_test.go
+//go:generate go run -tags codegen ../../../models/protocol_tests/generate.go ../../../models/protocol_tests/output/json.json unmarshal_test.go
+
+import (
+ "encoding/json"
+ "io"
+ "strings"
+
+ "github.com/aws/aws-sdk-go/aws/awserr"
+ "github.com/aws/aws-sdk-go/aws/request"
+ "github.com/aws/aws-sdk-go/private/protocol/json/jsonutil"
+ "github.com/aws/aws-sdk-go/private/protocol/rest"
+)
+
+var emptyJSON = []byte("{}")
+
+// BuildHandler is a named request handler for building jsonrpc protocol requests
+var BuildHandler = request.NamedHandler{Name: "awssdk.jsonrpc.Build", Fn: Build}
+
+// UnmarshalHandler is a named request handler for unmarshaling jsonrpc protocol requests
+var UnmarshalHandler = request.NamedHandler{Name: "awssdk.jsonrpc.Unmarshal", Fn: Unmarshal}
+
+// UnmarshalMetaHandler is a named request handler for unmarshaling jsonrpc protocol request metadata
+var UnmarshalMetaHandler = request.NamedHandler{Name: "awssdk.jsonrpc.UnmarshalMeta", Fn: UnmarshalMeta}
+
+// UnmarshalErrorHandler is a named request handler for unmarshaling jsonrpc protocol request errors
+var UnmarshalErrorHandler = request.NamedHandler{Name: "awssdk.jsonrpc.UnmarshalError", Fn: UnmarshalError}
+
+// Build builds a JSON payload for a JSON RPC request.
+func Build(req *request.Request) {
+ var buf []byte
+ var err error
+ if req.ParamsFilled() {
+ buf, err = jsonutil.BuildJSON(req.Params)
+ if err != nil {
+ req.Error = awserr.New("SerializationError", "failed encoding JSON RPC request", err)
+ return
+ }
+ } else {
+ buf = emptyJSON
+ }
+
+ if req.ClientInfo.TargetPrefix != "" || string(buf) != "{}" {
+ req.SetBufferBody(buf)
+ }
+
+ if req.ClientInfo.TargetPrefix != "" {
+ target := req.ClientInfo.TargetPrefix + "." + req.Operation.Name
+ req.HTTPRequest.Header.Add("X-Amz-Target", target)
+ }
+ if req.ClientInfo.JSONVersion != "" {
+ jsonVersion := req.ClientInfo.JSONVersion
+ req.HTTPRequest.Header.Add("Content-Type", "application/x-amz-json-"+jsonVersion)
+ }
+}
+
+// Unmarshal unmarshals a response for a JSON RPC service.
+func Unmarshal(req *request.Request) {
+ defer req.HTTPResponse.Body.Close()
+ if req.DataFilled() {
+ err := jsonutil.UnmarshalJSON(req.Data, req.HTTPResponse.Body)
+ if err != nil {
+ req.Error = awserr.NewRequestFailure(
+ awserr.New("SerializationError", "failed decoding JSON RPC response", err),
+ req.HTTPResponse.StatusCode,
+ req.RequestID,
+ )
+ }
+ }
+ return
+}
+
+// UnmarshalMeta unmarshals headers from a response for a JSON RPC service.
+func UnmarshalMeta(req *request.Request) {
+ rest.UnmarshalMeta(req)
+}
+
+// UnmarshalError unmarshals an error response for a JSON RPC service.
+func UnmarshalError(req *request.Request) {
+ defer req.HTTPResponse.Body.Close()
+
+ var jsonErr jsonErrorResponse
+ err := json.NewDecoder(req.HTTPResponse.Body).Decode(&jsonErr)
+ if err == io.EOF {
+ req.Error = awserr.NewRequestFailure(
+ awserr.New("SerializationError", req.HTTPResponse.Status, nil),
+ req.HTTPResponse.StatusCode,
+ req.RequestID,
+ )
+ return
+ } else if err != nil {
+ req.Error = awserr.NewRequestFailure(
+ awserr.New("SerializationError", "failed decoding JSON RPC error response", err),
+ req.HTTPResponse.StatusCode,
+ req.RequestID,
+ )
+ return
+ }
+
+ codes := strings.SplitN(jsonErr.Code, "#", 2)
+ req.Error = awserr.NewRequestFailure(
+ awserr.New(codes[len(codes)-1], jsonErr.Message, nil),
+ req.HTTPResponse.StatusCode,
+ req.RequestID,
+ )
+}
+
+type jsonErrorResponse struct {
+ Code string `json:"__type"`
+ Message string `json:"message"`
+}
diff --git a/vendor/github.com/aws/aws-sdk-go/private/protocol/query/queryutil/queryutil.go b/vendor/github.com/aws/aws-sdk-go/private/protocol/query/queryutil/queryutil.go
index 5ce9cba3291..75866d01218 100644
--- a/vendor/github.com/aws/aws-sdk-go/private/protocol/query/queryutil/queryutil.go
+++ b/vendor/github.com/aws/aws-sdk-go/private/protocol/query/queryutil/queryutil.go
@@ -233,7 +233,12 @@ func (q *queryParser) parseScalar(v url.Values, r reflect.Value, name string, ta
v.Set(name, strconv.FormatFloat(float64(value), 'f', -1, 32))
case time.Time:
const ISO8601UTC = "2006-01-02T15:04:05Z"
- v.Set(name, value.UTC().Format(ISO8601UTC))
+ format := tag.Get("timestampFormat")
+ if len(format) == 0 {
+ format = protocol.ISO8601TimeFormatName
+ }
+
+ v.Set(name, protocol.FormatTime(format, value))
default:
return fmt.Errorf("unsupported value for param %s: %v (%s)", name, r.Interface(), r.Type().Name())
}
diff --git a/vendor/github.com/aws/aws-sdk-go/private/protocol/query/unmarshal.go b/vendor/github.com/aws/aws-sdk-go/private/protocol/query/unmarshal.go
index e0f4d5a5419..3495c73070b 100644
--- a/vendor/github.com/aws/aws-sdk-go/private/protocol/query/unmarshal.go
+++ b/vendor/github.com/aws/aws-sdk-go/private/protocol/query/unmarshal.go
@@ -23,7 +23,11 @@ func Unmarshal(r *request.Request) {
decoder := xml.NewDecoder(r.HTTPResponse.Body)
err := xmlutil.UnmarshalXML(r.Data, decoder, r.Operation.Name+"Result")
if err != nil {
- r.Error = awserr.New("SerializationError", "failed decoding Query response", err)
+ r.Error = awserr.NewRequestFailure(
+ awserr.New("SerializationError", "failed decoding Query response", err),
+ r.HTTPResponse.StatusCode,
+ r.RequestID,
+ )
return
}
}
diff --git a/vendor/github.com/aws/aws-sdk-go/private/protocol/query/unmarshal_error.go b/vendor/github.com/aws/aws-sdk-go/private/protocol/query/unmarshal_error.go
index f2142961717..46d354e826f 100644
--- a/vendor/github.com/aws/aws-sdk-go/private/protocol/query/unmarshal_error.go
+++ b/vendor/github.com/aws/aws-sdk-go/private/protocol/query/unmarshal_error.go
@@ -28,7 +28,11 @@ func UnmarshalError(r *request.Request) {
bodyBytes, err := ioutil.ReadAll(r.HTTPResponse.Body)
if err != nil {
- r.Error = awserr.New("SerializationError", "failed to read from query HTTP response body", err)
+ r.Error = awserr.NewRequestFailure(
+ awserr.New("SerializationError", "failed to read from query HTTP response body", err),
+ r.HTTPResponse.StatusCode,
+ r.RequestID,
+ )
return
}
@@ -61,6 +65,10 @@ func UnmarshalError(r *request.Request) {
}
// Failed to retrieve any error message from the response body
- r.Error = awserr.New("SerializationError",
- "failed to decode query XML error response", decodeErr)
+ r.Error = awserr.NewRequestFailure(
+ awserr.New("SerializationError",
+ "failed to decode query XML error response", decodeErr),
+ r.HTTPResponse.StatusCode,
+ r.RequestID,
+ )
}
diff --git a/vendor/github.com/aws/aws-sdk-go/private/protocol/rest/build.go b/vendor/github.com/aws/aws-sdk-go/private/protocol/rest/build.go
index f761e0b3a5b..b34f5258a4c 100644
--- a/vendor/github.com/aws/aws-sdk-go/private/protocol/rest/build.go
+++ b/vendor/github.com/aws/aws-sdk-go/private/protocol/rest/build.go
@@ -20,11 +20,6 @@ import (
"github.com/aws/aws-sdk-go/private/protocol"
)
-// RFC1123GMT is a RFC1123 (RFC822) formated timestame. This format is not
-// using the standard library's time.RFC1123 due to the desire to always use
-// GMT as the timezone.
-const RFC1123GMT = "Mon, 2 Jan 2006 15:04:05 GMT"
-
// Whether the byte value can be sent without escaping in AWS URLs
var noEscape [256]bool
@@ -272,7 +267,14 @@ func convertType(v reflect.Value, tag reflect.StructTag) (str string, err error)
case float64:
str = strconv.FormatFloat(value, 'f', -1, 64)
case time.Time:
- str = value.UTC().Format(RFC1123GMT)
+ format := tag.Get("timestampFormat")
+ if len(format) == 0 {
+ format = protocol.RFC822TimeFormatName
+ if tag.Get("location") == "querystring" {
+ format = protocol.ISO8601TimeFormatName
+ }
+ }
+ str = protocol.FormatTime(format, value)
case aws.JSONValue:
if len(value) == 0 {
return "", errValueNotSet
diff --git a/vendor/github.com/aws/aws-sdk-go/private/protocol/rest/unmarshal.go b/vendor/github.com/aws/aws-sdk-go/private/protocol/rest/unmarshal.go
index 9d4e7626775..33fd53b126a 100644
--- a/vendor/github.com/aws/aws-sdk-go/private/protocol/rest/unmarshal.go
+++ b/vendor/github.com/aws/aws-sdk-go/private/protocol/rest/unmarshal.go
@@ -198,7 +198,11 @@ func unmarshalHeader(v reflect.Value, header string, tag reflect.StructTag) erro
}
v.Set(reflect.ValueOf(&f))
case *time.Time:
- t, err := time.Parse(time.RFC1123, header)
+ format := tag.Get("timestampFormat")
+ if len(format) == 0 {
+ format = protocol.RFC822TimeFormatName
+ }
+ t, err := protocol.ParseTime(format, header)
if err != nil {
return err
}
diff --git a/vendor/github.com/aws/aws-sdk-go/private/protocol/restxml/restxml.go b/vendor/github.com/aws/aws-sdk-go/private/protocol/restxml/restxml.go
index 7bdf4c8538f..b0f4e245661 100644
--- a/vendor/github.com/aws/aws-sdk-go/private/protocol/restxml/restxml.go
+++ b/vendor/github.com/aws/aws-sdk-go/private/protocol/restxml/restxml.go
@@ -36,7 +36,11 @@ func Build(r *request.Request) {
var buf bytes.Buffer
err := xmlutil.BuildXML(r.Params, xml.NewEncoder(&buf))
if err != nil {
- r.Error = awserr.New("SerializationError", "failed to encode rest XML request", err)
+ r.Error = awserr.NewRequestFailure(
+ awserr.New("SerializationError", "failed to encode rest XML request", err),
+ r.HTTPResponse.StatusCode,
+ r.RequestID,
+ )
return
}
r.SetBufferBody(buf.Bytes())
@@ -50,7 +54,11 @@ func Unmarshal(r *request.Request) {
decoder := xml.NewDecoder(r.HTTPResponse.Body)
err := xmlutil.UnmarshalXML(r.Data, decoder, "")
if err != nil {
- r.Error = awserr.New("SerializationError", "failed to decode REST XML response", err)
+ r.Error = awserr.NewRequestFailure(
+ awserr.New("SerializationError", "failed to decode REST XML response", err),
+ r.HTTPResponse.StatusCode,
+ r.RequestID,
+ )
return
}
} else {
diff --git a/vendor/github.com/aws/aws-sdk-go/private/protocol/timestamp.go b/vendor/github.com/aws/aws-sdk-go/private/protocol/timestamp.go
new file mode 100644
index 00000000000..b7ed6c6f810
--- /dev/null
+++ b/vendor/github.com/aws/aws-sdk-go/private/protocol/timestamp.go
@@ -0,0 +1,72 @@
+package protocol
+
+import (
+ "strconv"
+ "time"
+)
+
+// Names of time formats supported by the SDK
+const (
+ RFC822TimeFormatName = "rfc822"
+ ISO8601TimeFormatName = "iso8601"
+ UnixTimeFormatName = "unixTimestamp"
+)
+
+// Time formats supported by the SDK
+const (
+ // RFC 7231#section-7.1.1.1 timetamp format. e.g Tue, 29 Apr 2014 18:30:38 GMT
+ RFC822TimeFormat = "Mon, 2 Jan 2006 15:04:05 GMT"
+
+ // RFC3339 a subset of the ISO8601 timestamp format. e.g 2014-04-29T18:30:38Z
+ ISO8601TimeFormat = "2006-01-02T15:04:05Z"
+)
+
+// IsKnownTimestampFormat returns if the timestamp format name
+// is know to the SDK's protocols.
+func IsKnownTimestampFormat(name string) bool {
+ switch name {
+ case RFC822TimeFormatName:
+ fallthrough
+ case ISO8601TimeFormatName:
+ fallthrough
+ case UnixTimeFormatName:
+ return true
+ default:
+ return false
+ }
+}
+
+// FormatTime returns a string value of the time.
+func FormatTime(name string, t time.Time) string {
+ t = t.UTC()
+
+ switch name {
+ case RFC822TimeFormatName:
+ return t.Format(RFC822TimeFormat)
+ case ISO8601TimeFormatName:
+ return t.Format(ISO8601TimeFormat)
+ case UnixTimeFormatName:
+ return strconv.FormatInt(t.Unix(), 10)
+ default:
+ panic("unknown timestamp format name, " + name)
+ }
+}
+
+// ParseTime attempts to parse the time given the format. Returns
+// the time if it was able to be parsed, and fails otherwise.
+func ParseTime(formatName, value string) (time.Time, error) {
+ switch formatName {
+ case RFC822TimeFormatName:
+ return time.Parse(RFC822TimeFormat, value)
+ case ISO8601TimeFormatName:
+ return time.Parse(ISO8601TimeFormat, value)
+ case UnixTimeFormatName:
+ v, err := strconv.ParseFloat(value, 64)
+ if err != nil {
+ return time.Time{}, err
+ }
+ return time.Unix(int64(v), 0), nil
+ default:
+ panic("unknown timestamp format name, " + formatName)
+ }
+}
diff --git a/vendor/github.com/aws/aws-sdk-go/private/protocol/xml/xmlutil/build.go b/vendor/github.com/aws/aws-sdk-go/private/protocol/xml/xmlutil/build.go
index 7091b456d18..cf981fe9513 100644
--- a/vendor/github.com/aws/aws-sdk-go/private/protocol/xml/xmlutil/build.go
+++ b/vendor/github.com/aws/aws-sdk-go/private/protocol/xml/xmlutil/build.go
@@ -13,9 +13,13 @@ import (
"github.com/aws/aws-sdk-go/private/protocol"
)
-// BuildXML will serialize params into an xml.Encoder.
-// Error will be returned if the serialization of any of the params or nested values fails.
+// BuildXML will serialize params into an xml.Encoder. Error will be returned
+// if the serialization of any of the params or nested values fails.
func BuildXML(params interface{}, e *xml.Encoder) error {
+ return buildXML(params, e, false)
+}
+
+func buildXML(params interface{}, e *xml.Encoder, sorted bool) error {
b := xmlBuilder{encoder: e, namespaces: map[string]string{}}
root := NewXMLElement(xml.Name{})
if err := b.buildValue(reflect.ValueOf(params), root, ""); err != nil {
@@ -23,7 +27,7 @@ func BuildXML(params interface{}, e *xml.Encoder) error {
}
for _, c := range root.Children {
for _, v := range c {
- return StructToXML(e, v, false)
+ return StructToXML(e, v, sorted)
}
}
return nil
@@ -83,15 +87,13 @@ func (b *xmlBuilder) buildValue(value reflect.Value, current *XMLNode, tag refle
}
}
-// buildStruct adds a struct and its fields to the current XMLNode. All fields any any nested
+// buildStruct adds a struct and its fields to the current XMLNode. All fields and any nested
// types are converted to XMLNodes also.
func (b *xmlBuilder) buildStruct(value reflect.Value, current *XMLNode, tag reflect.StructTag) error {
if !value.IsValid() {
return nil
}
- fieldAdded := false
-
// unwrap payloads
if payload := tag.Get("payload"); payload != "" {
field, _ := value.Type().FieldByName(payload)
@@ -119,6 +121,8 @@ func (b *xmlBuilder) buildStruct(value reflect.Value, current *XMLNode, tag refl
child.Attr = append(child.Attr, ns)
}
+ var payloadFields, nonPayloadFields int
+
t := value.Type()
for i := 0; i < value.NumField(); i++ {
member := elemOf(value.Field(i))
@@ -133,8 +137,10 @@ func (b *xmlBuilder) buildStruct(value reflect.Value, current *XMLNode, tag refl
mTag := field.Tag
if mTag.Get("location") != "" { // skip non-body members
+ nonPayloadFields++
continue
}
+ payloadFields++
if protocol.CanSetIdempotencyToken(value.Field(i), field) {
token := protocol.GetIdempotencyToken()
@@ -149,11 +155,11 @@ func (b *xmlBuilder) buildStruct(value reflect.Value, current *XMLNode, tag refl
if err := b.buildValue(member, child, mTag); err != nil {
return err
}
-
- fieldAdded = true
}
- if fieldAdded { // only append this child if we have one ore more valid members
+ // Only case where the child shape is not added is if the shape only contains
+ // non-payload fields, e.g headers/query.
+ if !(payloadFields == 0 && nonPayloadFields > 0) {
current.AddChild(child)
}
@@ -278,8 +284,12 @@ func (b *xmlBuilder) buildScalar(value reflect.Value, current *XMLNode, tag refl
case float32:
str = strconv.FormatFloat(float64(converted), 'f', -1, 32)
case time.Time:
- const ISO8601UTC = "2006-01-02T15:04:05Z"
- str = converted.UTC().Format(ISO8601UTC)
+ format := tag.Get("timestampFormat")
+ if len(format) == 0 {
+ format = protocol.ISO8601TimeFormatName
+ }
+
+ str = protocol.FormatTime(format, converted)
default:
return fmt.Errorf("unsupported value for param %s: %v (%s)",
tag.Get("locationName"), value.Interface(), value.Type().Name())
diff --git a/vendor/github.com/aws/aws-sdk-go/private/protocol/xml/xmlutil/unmarshal.go b/vendor/github.com/aws/aws-sdk-go/private/protocol/xml/xmlutil/unmarshal.go
index a6c25ba3772..ff1ef6830b9 100644
--- a/vendor/github.com/aws/aws-sdk-go/private/protocol/xml/xmlutil/unmarshal.go
+++ b/vendor/github.com/aws/aws-sdk-go/private/protocol/xml/xmlutil/unmarshal.go
@@ -9,6 +9,8 @@ import (
"strconv"
"strings"
"time"
+
+ "github.com/aws/aws-sdk-go/private/protocol"
)
// UnmarshalXML deserializes an xml.Decoder into the container v. V
@@ -253,8 +255,12 @@ func parseScalar(r reflect.Value, node *XMLNode, tag reflect.StructTag) error {
}
r.Set(reflect.ValueOf(&v))
case *time.Time:
- const ISO8601UTC = "2006-01-02T15:04:05Z"
- t, err := time.Parse(ISO8601UTC, node.Text)
+ format := tag.Get("timestampFormat")
+ if len(format) == 0 {
+ format = protocol.ISO8601TimeFormatName
+ }
+
+ t, err := protocol.ParseTime(format, node.Text)
if err != nil {
return err
}
diff --git a/vendor/github.com/aws/aws-sdk-go/private/protocol/xml/xmlutil/xml_to_struct.go b/vendor/github.com/aws/aws-sdk-go/private/protocol/xml/xmlutil/xml_to_struct.go
index 3e970b629da..515ce15215b 100644
--- a/vendor/github.com/aws/aws-sdk-go/private/protocol/xml/xmlutil/xml_to_struct.go
+++ b/vendor/github.com/aws/aws-sdk-go/private/protocol/xml/xmlutil/xml_to_struct.go
@@ -29,6 +29,7 @@ func NewXMLElement(name xml.Name) *XMLNode {
// AddChild adds child to the XMLNode.
func (n *XMLNode) AddChild(child *XMLNode) {
+ child.parent = n
if _, ok := n.Children[child.Name.Local]; !ok {
n.Children[child.Name.Local] = []*XMLNode{}
}
diff --git a/vendor/github.com/aws/aws-sdk-go/service/cloudwatch/api.go b/vendor/github.com/aws/aws-sdk-go/service/cloudwatch/api.go
index 38519a2ac37..b7be8d6a161 100644
--- a/vendor/github.com/aws/aws-sdk-go/service/cloudwatch/api.go
+++ b/vendor/github.com/aws/aws-sdk-go/service/cloudwatch/api.go
@@ -18,7 +18,7 @@ const opDeleteAlarms = "DeleteAlarms"
// DeleteAlarmsRequest generates a "aws/request.Request" representing the
// client's request for the DeleteAlarms operation. The "output" return
// value will be populated with the request's response once the request completes
-// successfuly.
+// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
@@ -52,8 +52,7 @@ func (c *CloudWatch) DeleteAlarmsRequest(input *DeleteAlarmsInput) (req *request
output = &DeleteAlarmsOutput{}
req = c.newRequest(op, input, output)
- req.Handlers.Unmarshal.Remove(query.UnmarshalHandler)
- req.Handlers.Unmarshal.PushBackNamed(protocol.UnmarshalDiscardBodyHandler)
+ req.Handlers.Unmarshal.Swap(query.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
return
}
@@ -99,7 +98,7 @@ const opDeleteDashboards = "DeleteDashboards"
// DeleteDashboardsRequest generates a "aws/request.Request" representing the
// client's request for the DeleteDashboards operation. The "output" return
// value will be populated with the request's response once the request completes
-// successfuly.
+// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
@@ -133,6 +132,7 @@ func (c *CloudWatch) DeleteDashboardsRequest(input *DeleteDashboardsInput) (req
output = &DeleteDashboardsOutput{}
req = c.newRequest(op, input, output)
+ req.Handlers.Unmarshal.Swap(query.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
return
}
@@ -185,7 +185,7 @@ const opDescribeAlarmHistory = "DescribeAlarmHistory"
// DescribeAlarmHistoryRequest generates a "aws/request.Request" representing the
// client's request for the DescribeAlarmHistory operation. The "output" return
// value will be populated with the request's response once the request completes
-// successfuly.
+// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
@@ -324,7 +324,7 @@ const opDescribeAlarms = "DescribeAlarms"
// DescribeAlarmsRequest generates a "aws/request.Request" representing the
// client's request for the DescribeAlarms operation. The "output" return
// value will be populated with the request's response once the request completes
-// successfuly.
+// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
@@ -461,7 +461,7 @@ const opDescribeAlarmsForMetric = "DescribeAlarmsForMetric"
// DescribeAlarmsForMetricRequest generates a "aws/request.Request" representing the
// client's request for the DescribeAlarmsForMetric operation. The "output" return
// value will be populated with the request's response once the request completes
-// successfuly.
+// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
@@ -536,7 +536,7 @@ const opDisableAlarmActions = "DisableAlarmActions"
// DisableAlarmActionsRequest generates a "aws/request.Request" representing the
// client's request for the DisableAlarmActions operation. The "output" return
// value will be populated with the request's response once the request completes
-// successfuly.
+// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
@@ -570,8 +570,7 @@ func (c *CloudWatch) DisableAlarmActionsRequest(input *DisableAlarmActionsInput)
output = &DisableAlarmActionsOutput{}
req = c.newRequest(op, input, output)
- req.Handlers.Unmarshal.Remove(query.UnmarshalHandler)
- req.Handlers.Unmarshal.PushBackNamed(protocol.UnmarshalDiscardBodyHandler)
+ req.Handlers.Unmarshal.Swap(query.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
return
}
@@ -613,7 +612,7 @@ const opEnableAlarmActions = "EnableAlarmActions"
// EnableAlarmActionsRequest generates a "aws/request.Request" representing the
// client's request for the EnableAlarmActions operation. The "output" return
// value will be populated with the request's response once the request completes
-// successfuly.
+// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
@@ -647,8 +646,7 @@ func (c *CloudWatch) EnableAlarmActionsRequest(input *EnableAlarmActionsInput) (
output = &EnableAlarmActionsOutput{}
req = c.newRequest(op, input, output)
- req.Handlers.Unmarshal.Remove(query.UnmarshalHandler)
- req.Handlers.Unmarshal.PushBackNamed(protocol.UnmarshalDiscardBodyHandler)
+ req.Handlers.Unmarshal.Swap(query.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
return
}
@@ -689,7 +687,7 @@ const opGetDashboard = "GetDashboard"
// GetDashboardRequest generates a "aws/request.Request" representing the
// client's request for the GetDashboard operation. The "output" return
// value will be populated with the request's response once the request completes
-// successfuly.
+// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
@@ -778,7 +776,7 @@ const opGetMetricData = "GetMetricData"
// GetMetricDataRequest generates a "aws/request.Request" representing the
// client's request for the GetMetricData operation. The "output" return
// value will be populated with the request's response once the request completes
-// successfuly.
+// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
@@ -830,6 +828,29 @@ func (c *CloudWatch) GetMetricDataRequest(input *GetMetricDataInput) (req *reque
// to GetMetricStatistics. For more information about pricing, see Amazon CloudWatch
// Pricing (https://aws.amazon.com/cloudwatch/pricing/).
//
+// Amazon CloudWatch retains metric data as follows:
+//
+// * Data points with a period of less than 60 seconds are available for
+// 3 hours. These data points are high-resolution metrics and are available
+// only for custom metrics that have been defined with a StorageResolution
+// of 1.
+//
+// * Data points with a period of 60 seconds (1-minute) are available for
+// 15 days.
+//
+// * Data points with a period of 300 seconds (5-minute) are available for
+// 63 days.
+//
+// * Data points with a period of 3600 seconds (1 hour) are available for
+// 455 days (15 months).
+//
+// Data points that are initially published with a shorter period are aggregated
+// together for long-term storage. For example, if you collect data using a
+// period of 1 minute, the data remains available for 15 days with 1-minute
+// resolution. After 15 days, this data is still available, but is aggregated
+// and retrievable only with a resolution of 5 minutes. After 63 days, the data
+// is further aggregated and is available with a resolution of 1 hour.
+//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
@@ -868,7 +889,7 @@ const opGetMetricStatistics = "GetMetricStatistics"
// GetMetricStatisticsRequest generates a "aws/request.Request" representing the
// client's request for the GetMetricStatistics operation. The "output" return
// value will be populated with the request's response once the request completes
-// successfuly.
+// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
@@ -929,6 +950,9 @@ func (c *CloudWatch) GetMetricStatisticsRequest(input *GetMetricStatisticsInput)
//
// * The Min and the Max values of the statistic set are equal.
//
+// Percentile statistics are not available for metrics when any of the metric
+// values are negative numbers.
+//
// Amazon CloudWatch retains metric data as follows:
//
// * Data points with a period of less than 60 seconds are available for
@@ -1001,12 +1025,100 @@ func (c *CloudWatch) GetMetricStatisticsWithContext(ctx aws.Context, input *GetM
return out, req.Send()
}
+const opGetMetricWidgetImage = "GetMetricWidgetImage"
+
+// GetMetricWidgetImageRequest generates a "aws/request.Request" representing the
+// client's request for the GetMetricWidgetImage operation. The "output" return
+// value will be populated with the request's response once the request completes
+// successfully.
+//
+// Use "Send" method on the returned Request to send the API call to the service.
+// the "output" return value is not valid until after Send returns without error.
+//
+// See GetMetricWidgetImage for more information on using the GetMetricWidgetImage
+// API call, and error handling.
+//
+// This method is useful when you want to inject custom logic or configuration
+// into the SDK's request lifecycle. Such as custom headers, or retry logic.
+//
+//
+// // Example sending a request using the GetMetricWidgetImageRequest method.
+// req, resp := client.GetMetricWidgetImageRequest(params)
+//
+// err := req.Send()
+// if err == nil { // resp is now filled
+// fmt.Println(resp)
+// }
+//
+// See also, https://docs.aws.amazon.com/goto/WebAPI/monitoring-2010-08-01/GetMetricWidgetImage
+func (c *CloudWatch) GetMetricWidgetImageRequest(input *GetMetricWidgetImageInput) (req *request.Request, output *GetMetricWidgetImageOutput) {
+ op := &request.Operation{
+ Name: opGetMetricWidgetImage,
+ HTTPMethod: "POST",
+ HTTPPath: "/",
+ }
+
+ if input == nil {
+ input = &GetMetricWidgetImageInput{}
+ }
+
+ output = &GetMetricWidgetImageOutput{}
+ req = c.newRequest(op, input, output)
+ return
+}
+
+// GetMetricWidgetImage API operation for Amazon CloudWatch.
+//
+// You can use the GetMetricWidgetImage API to retrieve a snapshot graph of
+// one or more Amazon CloudWatch metrics as a bitmap image. You can then embed
+// this image into your services and products, such as wiki pages, reports,
+// and documents. You could also retrieve images regularly, such as every minute,
+// and create your own custom live dashboard.
+//
+// The graph you retrieve can include all CloudWatch metric graph features,
+// including metric math and horizontal and vertical annotations.
+//
+// There is a limit of 20 transactions per second for this API. Each GetMetricWidgetImage
+// action has the following limits:
+//
+// * As many as 100 metrics in the graph.
+//
+// * Up to 100 KB uncompressed payload.
+//
+// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
+// with awserr.Error's Code and Message methods to get detailed information about
+// the error.
+//
+// See the AWS API reference guide for Amazon CloudWatch's
+// API operation GetMetricWidgetImage for usage and error information.
+// See also, https://docs.aws.amazon.com/goto/WebAPI/monitoring-2010-08-01/GetMetricWidgetImage
+func (c *CloudWatch) GetMetricWidgetImage(input *GetMetricWidgetImageInput) (*GetMetricWidgetImageOutput, error) {
+ req, out := c.GetMetricWidgetImageRequest(input)
+ return out, req.Send()
+}
+
+// GetMetricWidgetImageWithContext is the same as GetMetricWidgetImage with the addition of
+// the ability to pass a context and additional request options.
+//
+// See GetMetricWidgetImage for details on how to use this API operation.
+//
+// The context must be non-nil and will be used for request cancellation. If
+// the context is nil a panic will occur. In the future the SDK may create
+// sub-contexts for http.Requests. See https://golang.org/pkg/context/
+// for more information on using Contexts.
+func (c *CloudWatch) GetMetricWidgetImageWithContext(ctx aws.Context, input *GetMetricWidgetImageInput, opts ...request.Option) (*GetMetricWidgetImageOutput, error) {
+ req, out := c.GetMetricWidgetImageRequest(input)
+ req.SetContext(ctx)
+ req.ApplyOptions(opts...)
+ return out, req.Send()
+}
+
const opListDashboards = "ListDashboards"
// ListDashboardsRequest generates a "aws/request.Request" representing the
// client's request for the ListDashboards operation. The "output" return
// value will be populated with the request's response once the request completes
-// successfuly.
+// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
@@ -1049,6 +1161,10 @@ func (c *CloudWatch) ListDashboardsRequest(input *ListDashboardsInput) (req *req
// only those dashboards with names starting with the prefix are listed. Otherwise,
// all dashboards in your account are listed.
//
+// ListDashboards returns up to 1000 results on one page. If there are more
+// than 1000 dashboards, you can call ListDashboards again and include the value
+// you received for NextToken in the first call, to receive the next 1000 results.
+//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
@@ -1090,7 +1206,7 @@ const opListMetrics = "ListMetrics"
// ListMetricsRequest generates a "aws/request.Request" representing the
// client's request for the ListMetrics operation. The "output" return
// value will be populated with the request's response once the request completes
-// successfuly.
+// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
@@ -1135,15 +1251,15 @@ func (c *CloudWatch) ListMetricsRequest(input *ListMetricsInput) (req *request.R
// ListMetrics API operation for Amazon CloudWatch.
//
-// List the specified metrics. You can use the returned metrics with GetMetricStatistics
-// to obtain statistical data.
+// List the specified metrics. You can use the returned metrics with GetMetricData
+// or GetMetricStatistics to obtain statistical data.
//
// Up to 500 results are returned for any one call. To retrieve additional results,
// use the returned token with subsequent calls.
//
// After you create a metric, allow up to fifteen minutes before the metric
// appears. Statistics about the metric, however, are available sooner using
-// GetMetricStatistics.
+// GetMetricData or GetMetricStatistics.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
@@ -1236,7 +1352,7 @@ const opPutDashboard = "PutDashboard"
// PutDashboardRequest generates a "aws/request.Request" representing the
// client's request for the PutDashboard operation. The "output" return
// value will be populated with the request's response once the request completes
-// successfuly.
+// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
@@ -1279,8 +1395,8 @@ func (c *CloudWatch) PutDashboardRequest(input *PutDashboardInput) (req *request
// dashboard. If you update a dashboard, the entire contents are replaced with
// what you specify here.
//
-// You can have up to 500 dashboards per account. All dashboards in your account
-// are global, not region-specific.
+// There is no limit to the number of dashboards in your account. All dashboards
+// in your account are global, not region-specific.
//
// A simple way to create a dashboard using PutDashboard is to copy an existing
// dashboard. To copy an existing dashboard using the console, you can load
@@ -1336,7 +1452,7 @@ const opPutMetricAlarm = "PutMetricAlarm"
// PutMetricAlarmRequest generates a "aws/request.Request" representing the
// client's request for the PutMetricAlarm operation. The "output" return
// value will be populated with the request's response once the request completes
-// successfuly.
+// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
@@ -1370,25 +1486,24 @@ func (c *CloudWatch) PutMetricAlarmRequest(input *PutMetricAlarmInput) (req *req
output = &PutMetricAlarmOutput{}
req = c.newRequest(op, input, output)
- req.Handlers.Unmarshal.Remove(query.UnmarshalHandler)
- req.Handlers.Unmarshal.PushBackNamed(protocol.UnmarshalDiscardBodyHandler)
+ req.Handlers.Unmarshal.Swap(query.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
return
}
// PutMetricAlarm API operation for Amazon CloudWatch.
//
-// Creates or updates an alarm and associates it with the specified metric.
-// Optionally, this operation can associate one or more Amazon SNS resources
-// with the alarm.
+// Creates or updates an alarm and associates it with the specified metric or
+// metric math expression.
//
// When this operation creates an alarm, the alarm state is immediately set
-// to INSUFFICIENT_DATA. The alarm is evaluated and its state is set appropriately.
-// Any actions associated with the state are then executed.
+// to INSUFFICIENT_DATA. The alarm is then evaluated and its state is set appropriately.
+// Any actions associated with the new state are then executed.
//
// When you update an existing alarm, its state is left unchanged, but the update
// completely overwrites the previous configuration of the alarm.
//
-// If you are an IAM user, you must have Amazon EC2 permissions for some operations:
+// If you are an IAM user, you must have Amazon EC2 permissions for some alarm
+// operations:
//
// * iam:CreateServiceLinkedRole for all alarms with EC2 actions
//
@@ -1415,10 +1530,10 @@ func (c *CloudWatch) PutMetricAlarmRequest(input *PutMetricAlarmInput) (req *req
// If you are using temporary security credentials granted using AWS STS, you
// cannot stop or terminate an EC2 instance using alarm actions.
//
-// You must create at least one stop, terminate, or reboot alarm using either
-// the Amazon EC2 or CloudWatch consoles to create the EC2ActionsAccess IAM
-// role. After this IAM role is created, you can create stop, terminate, or
-// reboot alarms using a command-line interface or API.
+// The first time you create an alarm in the AWS Management Console, the CLI,
+// or by using the PutMetricAlarm API, CloudWatch creates the necessary service-linked
+// role for you. The service-linked role is called AWSServiceRoleForCloudWatchEvents.
+// For more information, see AWS service-linked role (http://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_terms-and-concepts.html#iam-term-service-linked-role).
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
@@ -1458,7 +1573,7 @@ const opPutMetricData = "PutMetricData"
// PutMetricDataRequest generates a "aws/request.Request" representing the
// client's request for the PutMetricData operation. The "output" return
// value will be populated with the request's response once the request completes
-// successfuly.
+// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
@@ -1492,8 +1607,7 @@ func (c *CloudWatch) PutMetricDataRequest(input *PutMetricDataInput) (req *reque
output = &PutMetricDataOutput{}
req = c.newRequest(op, input, output)
- req.Handlers.Unmarshal.Remove(query.UnmarshalHandler)
- req.Handlers.Unmarshal.PushBackNamed(protocol.UnmarshalDiscardBodyHandler)
+ req.Handlers.Unmarshal.Swap(query.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
return
}
@@ -1504,7 +1618,16 @@ func (c *CloudWatch) PutMetricDataRequest(input *PutMetricDataInput) (req *reque
// exist, CloudWatch creates the metric. When CloudWatch creates a metric, it
// can take up to fifteen minutes for the metric to appear in calls to ListMetrics.
//
+// You can publish either individual data points in the Value field, or arrays
+// of values and the number of times each value occurred during the period by
+// using the Values and Counts fields in the MetricDatum structure. Using the
+// Values and Counts method enables you to publish up to 150 values per metric
+// with one PutMetricData request, and supports retrieving percentile statistics
+// on this data.
+//
// Each PutMetricData request is limited to 40 KB in size for HTTP POST requests.
+// You can send a payload compressed by gzip. Each request is also limited to
+// no more than 20 different metrics.
//
// Although the Value parameter accepts numbers of type Double, CloudWatch rejects
// values that are either too small or too large. Values must be in the range
@@ -1518,16 +1641,17 @@ func (c *CloudWatch) PutMetricDataRequest(input *PutMetricDataInput) (req *reque
// in the Amazon CloudWatch User Guide.
//
// Data points with time stamps from 24 hours ago or longer can take at least
-// 48 hours to become available for GetMetricStatistics from the time they are
-// submitted.
+// 48 hours to become available for GetMetricData or GetMetricStatistics from
+// the time they are submitted.
//
// CloudWatch needs raw data points to calculate percentile statistics. If you
// publish data using a statistic set instead, you can only retrieve percentile
// statistics for this data if one of the following conditions is true:
//
-// * The SampleCount value of the statistic set is 1
+// * The SampleCount value of the statistic set is 1 and Min, Max, and Sum
+// are all equal.
//
-// * The Min and the Max values of the statistic set are equal
+// * The Min and Max are equal, and Sum is equal to Min multiplied by SampleCount.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
@@ -1576,7 +1700,7 @@ const opSetAlarmState = "SetAlarmState"
// SetAlarmStateRequest generates a "aws/request.Request" representing the
// client's request for the SetAlarmState operation. The "output" return
// value will be populated with the request's response once the request completes
-// successfuly.
+// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
@@ -1610,8 +1734,7 @@ func (c *CloudWatch) SetAlarmStateRequest(input *SetAlarmStateInput) (req *reque
output = &SetAlarmStateOutput{}
req = c.newRequest(op, input, output)
- req.Handlers.Unmarshal.Remove(query.UnmarshalHandler)
- req.Handlers.Unmarshal.PushBackNamed(protocol.UnmarshalDiscardBodyHandler)
+ req.Handlers.Unmarshal.Swap(query.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
return
}
@@ -1679,7 +1802,7 @@ type AlarmHistoryItem struct {
HistorySummary *string `min:"1" type:"string"`
// The time stamp for the alarm history item.
- Timestamp *time.Time `type:"timestamp" timestampFormat:"iso8601"`
+ Timestamp *time.Time `type:"timestamp"`
}
// String returns the string representation
@@ -1735,7 +1858,7 @@ type DashboardEntry struct {
// The time stamp of when the dashboard was last modified, either by an API
// call or through the console. This number is expressed as the number of milliseconds
// since Jan 1, 1970 00:00:00 UTC.
- LastModified *time.Time `type:"timestamp" timestampFormat:"iso8601"`
+ LastModified *time.Time `type:"timestamp"`
// The size of the dashboard, in bytes.
Size *int64 `type:"long"`
@@ -1832,7 +1955,7 @@ type Datapoint struct {
Sum *float64 `type:"double"`
// The time stamp used for the data point.
- Timestamp *time.Time `type:"timestamp" timestampFormat:"iso8601"`
+ Timestamp *time.Time `type:"timestamp"`
// The standard unit for the data point.
Unit *string `type:"string" enum:"StandardUnit"`
@@ -2007,7 +2130,7 @@ type DescribeAlarmHistoryInput struct {
AlarmName *string `min:"1" type:"string"`
// The ending date to retrieve alarm history.
- EndDate *time.Time `type:"timestamp" timestampFormat:"iso8601"`
+ EndDate *time.Time `type:"timestamp"`
// The type of alarm histories to retrieve.
HistoryItemType *string `type:"string" enum:"HistoryItemType"`
@@ -2020,7 +2143,7 @@ type DescribeAlarmHistoryInput struct {
NextToken *string `type:"string"`
// The starting date to retrieve alarm history.
- StartDate *time.Time `type:"timestamp" timestampFormat:"iso8601"`
+ StartDate *time.Time `type:"timestamp"`
}
// String returns the string representation
@@ -2683,8 +2806,14 @@ type GetMetricDataInput struct {
// The time stamp indicating the latest data to be returned.
//
+ // For better performance, specify StartTime and EndTime values that align with
+ // the value of the metric's Period and sync up with the beginning and end of
+ // an hour. For example, if the Period of a metric is 5 minutes, specifying
+ // 12:05 or 12:30 as EndTime can get a faster response from CloudWatch then
+ // setting 12:07 or 12:29 as the EndTime.
+ //
// EndTime is a required field
- EndTime *time.Time `type:"timestamp" timestampFormat:"iso8601" required:"true"`
+ EndTime *time.Time `type:"timestamp" required:"true"`
// The maximum number of data points the request should return before paginating.
// If you omit this, the default of 100,800 is used.
@@ -2710,8 +2839,14 @@ type GetMetricDataInput struct {
// The time stamp indicating the earliest data to be returned.
//
+ // For better performance, specify StartTime and EndTime values that align with
+ // the value of the metric's Period and sync up with the beginning and end of
+ // an hour. For example, if the Period of a metric is 5 minutes, specifying
+ // 12:05 or 12:30 as StartTime can get a faster response from CloudWatch then
+ // setting 12:07 or 12:29 as the StartTime.
+ //
// StartTime is a required field
- StartTime *time.Time `type:"timestamp" timestampFormat:"iso8601" required:"true"`
+ StartTime *time.Time `type:"timestamp" required:"true"`
}
// String returns the string representation
@@ -2842,11 +2977,12 @@ type GetMetricStatisticsInput struct {
// time stamp. The time stamp must be in ISO 8601 UTC format (for example, 2016-10-10T23:00:00Z).
//
// EndTime is a required field
- EndTime *time.Time `type:"timestamp" timestampFormat:"iso8601" required:"true"`
+ EndTime *time.Time `type:"timestamp" required:"true"`
// The percentile statistics. Specify values between p0.0 and p100. When calling
// GetMetricStatistics, you must specify either Statistics or ExtendedStatistics,
- // but not both.
+ // but not both. Percentile statistics are not available for metrics when any
+ // of the metric values are negative numbers.
ExtendedStatistics []*string `min:"1" type:"list"`
// The name of the metric, with or without spaces.
@@ -2908,7 +3044,7 @@ type GetMetricStatisticsInput struct {
// you receive data timestamped between 15:02:15 and 15:07:15.
//
// StartTime is a required field
- StartTime *time.Time `type:"timestamp" timestampFormat:"iso8601" required:"true"`
+ StartTime *time.Time `type:"timestamp" required:"true"`
// The metric statistics, other than percentile. For percentile statistics,
// use ExtendedStatistics. When calling GetMetricStatistics, you must specify
@@ -3067,6 +3203,115 @@ func (s *GetMetricStatisticsOutput) SetLabel(v string) *GetMetricStatisticsOutpu
return s
}
+type GetMetricWidgetImageInput struct {
+ _ struct{} `type:"structure"`
+
+ // A JSON string that defines the bitmap graph to be retrieved. The string includes
+ // the metrics to include in the graph, statistics, annotations, title, axis
+ // limits, and so on. You can include only one MetricWidget parameter in each
+ // GetMetricWidgetImage call.
+ //
+ // For more information about the syntax of MetricWidget see CloudWatch-Metric-Widget-Structure.
+ //
+ // If any metric on the graph could not load all the requested data points,
+ // an orange triangle with an exclamation point appears next to the graph legend.
+ //
+ // MetricWidget is a required field
+ MetricWidget *string `type:"string" required:"true"`
+
+ // The format of the resulting image. Only PNG images are supported.
+ //
+ // The default is png. If you specify png, the API returns an HTTP response
+ // with the content-type set to text/xml. The image data is in a MetricWidgetImage
+ // field. For example:
+ //
+ //
+ //
+ //
+ //
+ //
+ //
+ // iVBORw0KGgoAAAANSUhEUgAAAlgAAAGQEAYAAAAip...
+ //
+ //
+ //
+ //
+ //
+ //
+ //
+ // 6f0d4192-4d42-11e8-82c1-f539a07e0e3b
+ //
+ //
+ //
+ //
+ //
+ // The image/png setting is intended only for custom HTTP requests. For most
+ // use cases, and all actions using an AWS SDK, you should use png. If you specify
+ // image/png, the HTTP response has a content-type set to image/png, and the
+ // body of the response is a PNG image.
+ OutputFormat *string `type:"string"`
+}
+
+// String returns the string representation
+func (s GetMetricWidgetImageInput) String() string {
+ return awsutil.Prettify(s)
+}
+
+// GoString returns the string representation
+func (s GetMetricWidgetImageInput) GoString() string {
+ return s.String()
+}
+
+// Validate inspects the fields of the type to determine if they are valid.
+func (s *GetMetricWidgetImageInput) Validate() error {
+ invalidParams := request.ErrInvalidParams{Context: "GetMetricWidgetImageInput"}
+ if s.MetricWidget == nil {
+ invalidParams.Add(request.NewErrParamRequired("MetricWidget"))
+ }
+
+ if invalidParams.Len() > 0 {
+ return invalidParams
+ }
+ return nil
+}
+
+// SetMetricWidget sets the MetricWidget field's value.
+func (s *GetMetricWidgetImageInput) SetMetricWidget(v string) *GetMetricWidgetImageInput {
+ s.MetricWidget = &v
+ return s
+}
+
+// SetOutputFormat sets the OutputFormat field's value.
+func (s *GetMetricWidgetImageInput) SetOutputFormat(v string) *GetMetricWidgetImageInput {
+ s.OutputFormat = &v
+ return s
+}
+
+type GetMetricWidgetImageOutput struct {
+ _ struct{} `type:"structure"`
+
+ // The image of the graph, in the output format specified.
+ //
+ // MetricWidgetImage is automatically base64 encoded/decoded by the SDK.
+ MetricWidgetImage []byte `type:"blob"`
+}
+
+// String returns the string representation
+func (s GetMetricWidgetImageOutput) String() string {
+ return awsutil.Prettify(s)
+}
+
+// GoString returns the string representation
+func (s GetMetricWidgetImageOutput) GoString() string {
+ return s.String()
+}
+
+// SetMetricWidgetImage sets the MetricWidgetImage field's value.
+func (s *GetMetricWidgetImageOutput) SetMetricWidgetImage(v []byte) *GetMetricWidgetImageOutput {
+ s.MetricWidgetImage = v
+ return s
+}
+
type ListDashboardsInput struct {
_ struct{} `type:"structure"`
@@ -3283,7 +3528,7 @@ type Metric struct {
// The dimensions for the metric.
Dimensions []*Dimension `type:"list"`
- // The name of the metric.
+ // The name of the metric. This is a required field.
MetricName *string `min:"1" type:"string"`
// The namespace of the metric.
@@ -3360,7 +3605,7 @@ type MetricAlarm struct {
AlarmArn *string `min:"1" type:"string"`
// The time stamp of the last update to the alarm configuration.
- AlarmConfigurationUpdatedTimestamp *time.Time `type:"timestamp" timestampFormat:"iso8601"`
+ AlarmConfigurationUpdatedTimestamp *time.Time `type:"timestamp"`
// The description of the alarm.
AlarmDescription *string `type:"string"`
@@ -3399,6 +3644,8 @@ type MetricAlarm struct {
// The name of the metric associated with the alarm.
MetricName *string `min:"1" type:"string"`
+ Metrics []*MetricDataQuery `type:"list"`
+
// The namespace of the metric associated with the alarm.
Namespace *string `min:"1" type:"string"`
@@ -3416,7 +3663,7 @@ type MetricAlarm struct {
StateReasonData *string `type:"string"`
// The time stamp of the last update to the alarm state.
- StateUpdatedTimestamp *time.Time `type:"timestamp" timestampFormat:"iso8601"`
+ StateUpdatedTimestamp *time.Time `type:"timestamp"`
// The state value for the alarm.
StateValue *string `type:"string" enum:"StateValue"`
@@ -3530,6 +3777,12 @@ func (s *MetricAlarm) SetMetricName(v string) *MetricAlarm {
return s
}
+// SetMetrics sets the Metrics field's value.
+func (s *MetricAlarm) SetMetrics(v []*MetricDataQuery) *MetricAlarm {
+ s.Metrics = v
+ return s
+}
+
// SetNamespace sets the Namespace field's value.
func (s *MetricAlarm) SetNamespace(v string) *MetricAlarm {
s.Namespace = &v
@@ -3596,23 +3849,43 @@ func (s *MetricAlarm) SetUnit(v string) *MetricAlarm {
return s
}
-// This structure indicates the metric data to return, and whether this call
-// is just retrieving a batch set of data for one metric, or is performing a
-// math expression on metric data. A single GetMetricData call can include up
-// to 100 MetricDataQuery structures.
+// This structure is used in both GetMetricData and PutMetricAlarm. The supported
+// use of this structure is different for those two operations.
+//
+// When used in GetMetricData, it indicates the metric data to return, and whether
+// this call is just retrieving a batch set of data for one metric, or is performing
+// a math expression on metric data. A single GetMetricData call can include
+// up to 100 MetricDataQuery structures.
+//
+// When used in PutMetricAlarm, it enables you to create an alarm based on a
+// metric math expression. Each MetricDataQuery in the array specifies either
+// a metric to retrieve, or a math expression to be performed on retrieved metrics.
+// A single PutMetricAlarm call can include up to 20 MetricDataQuery structures
+// in the array. The 20 structures can include as many as 10 structures that
+// contain a MetricStat parameter to retrieve a metric, and as many as 10 structures
+// that contain the Expression parameter to perform a math expression. Any expression
+// used in a PutMetricAlarm operation must return a single time series. For
+// more information, see Metric Math Syntax and Functions (http://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/using-metric-math.html#metric-math-syntax)
+// in the Amazon CloudWatch User Guide.
+//
+// Some of the parameters of this structure also have different uses whether
+// you are using this structure in a GetMetricData operation or a PutMetricAlarm
+// operation. These differences are explained in the following parameter list.
type MetricDataQuery struct {
_ struct{} `type:"structure"`
- // The math expression to be performed on the returned data, if this structure
- // is performing a math expression. For more information about metric math expressions,
- // see Metric Math Syntax and Functions (http://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/using-metric-math.html#metric-math-syntax)
+ // The math expression to be performed on the returned data, if this object
+ // is performing a math expression. This expression can use the Id of the other
+ // metrics to refer to those metrics, and can also use the Id of other expressions
+ // to use the result of those expressions. For more information about metric
+ // math expressions, see Metric Math Syntax and Functions (http://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/using-metric-math.html#metric-math-syntax)
// in the Amazon CloudWatch User Guide.
//
- // Within one MetricDataQuery structure, you must specify either Expression
- // or MetricStat but not both.
+ // Within each MetricDataQuery object, you must specify either Expression or
+ // MetricStat but not both.
Expression *string `min:"1" type:"string"`
- // A short name used to tie this structure to the results in the response. This
+ // A short name used to tie this object to the results in the response. This
// name must be unique within a single call to GetMetricData. If you are performing
// math expressions on this set of data, this name represents that data and
// can serve as a variable in the mathematical expression. The valid characters
@@ -3629,17 +3902,21 @@ type MetricDataQuery struct {
Label *string `type:"string"`
// The metric to be returned, along with statistics, period, and units. Use
- // this parameter only if this structure is performing a data retrieval and
- // not performing a math expression on the returned data.
+ // this parameter only if this object is retrieving a metric and not performing
+ // a math expression on returned data.
//
- // Within one MetricDataQuery structure, you must specify either Expression
- // or MetricStat but not both.
+ // Within one MetricDataQuery object, you must specify either Expression or
+ // MetricStat but not both.
MetricStat *MetricStat `type:"structure"`
- // Indicates whether to return the time stamps and raw data values of this metric.
- // If you are performing this call just to do math expressions and do not also
- // need the raw data returned, you can specify False. If you omit this, the
- // default of True is used.
+ // When used in GetMetricData, this option indicates whether to return the timestamps
+ // and raw data values of this metric. If you are performing this call just
+ // to do math expressions and do not also need the raw data returned, you can
+ // specify False. If you omit this, the default of True is used.
+ //
+ // When used in PutMetricAlarm, specify True for the one expression result to
+ // use as the alarm. For all other metrics and expressions in the same PutMetricAlarm
+ // operation, specify ReturnData as False.
ReturnData *bool `type:"boolean"`
}
@@ -3709,7 +3986,7 @@ func (s *MetricDataQuery) SetReturnData(v bool) *MetricDataQuery {
// A GetMetricData call returns an array of MetricDataResult structures. Each
// of these structures includes the data points for that metric, along with
-// the time stamps of those data points and other identifying information.
+// the timestamps of those data points and other identifying information.
type MetricDataResult struct {
_ struct{} `type:"structure"`
@@ -3730,13 +4007,13 @@ type MetricDataResult struct {
// that an error occurred. Retry your request using NextToken, if present.
StatusCode *string `type:"string" enum:"StatusCode"`
- // The time stamps for the data points, formatted in Unix timestamp format.
- // The number of time stamps always matches the number of values and the value
- // for Timestamps[x] is Values[x].
+ // The timestamps for the data points, formatted in Unix timestamp format. The
+ // number of timestamps always matches the number of values and the value for
+ // Timestamps[x] is Values[x].
Timestamps []*time.Time `type:"list"`
// The data points for the metric corresponding to Timestamps. The number of
- // values always matches the number of time stamps and the time stamp for Values[x]
+ // values always matches the number of timestamps and the timestamp for Values[x]
// is Timestamps[x].
Values []*float64 `type:"list"`
}
@@ -3792,6 +4069,15 @@ func (s *MetricDataResult) SetValues(v []*float64) *MetricDataResult {
type MetricDatum struct {
_ struct{} `type:"structure"`
+ // Array of numbers that is used along with the Values array. Each number in
+ // the Count array is the number of times the corresponding value in the Values
+ // array occurred during the period.
+ //
+ // If you omit the Counts array, the default of 1 is used as the value for each
+ // count. If you include a Counts array, it must include the same amount of
+ // values as the Values array.
+ Counts []*float64 `type:"list"`
+
// The dimensions associated with the metric.
Dimensions []*Dimension `type:"list"`
@@ -3816,7 +4102,7 @@ type MetricDatum struct {
// The time the metric data was received, expressed as the number of milliseconds
// since Jan 1, 1970 00:00:00 UTC.
- Timestamp *time.Time `type:"timestamp" timestampFormat:"iso8601"`
+ Timestamp *time.Time `type:"timestamp"`
// The unit of the metric.
Unit *string `type:"string" enum:"StandardUnit"`
@@ -3829,6 +4115,19 @@ type MetricDatum struct {
// In addition, special values (for example, NaN, +Infinity, -Infinity) are
// not supported.
Value *float64 `type:"double"`
+
+ // Array of numbers representing the values for the metric during the period.
+ // Each unique value is listed just once in this array, and the corresponding
+ // number in the Counts array specifies the number of times that value occurred
+ // during the period. You can include up to 150 unique values in each PutMetricData
+ // action that specifies a Values array.
+ //
+ // Although the Values array accepts numbers of type Double, CloudWatch rejects
+ // values that are either too small or too large. Values must be in the range
+ // of 8.515920e-109 to 1.174271e+108 (Base 10) or 2e-360 to 2e360 (Base 2).
+ // In addition, special values (for example, NaN, +Infinity, -Infinity) are
+ // not supported.
+ Values []*float64 `type:"list"`
}
// String returns the string representation
@@ -3875,6 +4174,12 @@ func (s *MetricDatum) Validate() error {
return nil
}
+// SetCounts sets the Counts field's value.
+func (s *MetricDatum) SetCounts(v []*float64) *MetricDatum {
+ s.Counts = v
+ return s
+}
+
// SetDimensions sets the Dimensions field's value.
func (s *MetricDatum) SetDimensions(v []*Dimension) *MetricDatum {
s.Dimensions = v
@@ -3917,6 +4222,12 @@ func (s *MetricDatum) SetValue(v float64) *MetricDatum {
return s
}
+// SetValues sets the Values field's value.
+func (s *MetricDatum) SetValues(v []*float64) *MetricDatum {
+ s.Values = v
+ return s
+}
+
// This structure defines the metric to be returned, along with the statistics,
// period, and units.
type MetricStat struct {
@@ -3927,7 +4238,7 @@ type MetricStat struct {
// Metric is a required field
Metric *Metric `type:"structure" required:"true"`
- // The period to use when retrieving the metric.
+ // The period, in seconds, to use when retrieving the metric.
//
// Period is a required field
Period *int64 `min:"1" type:"integer" required:"true"`
@@ -4097,7 +4408,7 @@ type PutMetricAlarmInput struct {
_ struct{} `type:"structure"`
// Indicates whether actions should be executed during any changes to the alarm
- // state.
+ // state. The default is TRUE.
ActionsEnabled *bool `type:"boolean"`
// The actions to execute when this alarm transitions to the ALARM state from
@@ -4105,17 +4416,17 @@ type PutMetricAlarmInput struct {
//
// Valid Values: arn:aws:automate:region:ec2:stop | arn:aws:automate:region:ec2:terminate
// | arn:aws:automate:region:ec2:recover | arn:aws:sns:region:account-id:sns-topic-name
- // | arn:aws:autoscaling:region:account-id:scalingPolicy:policy-id autoScalingGroupName/group-friendly-name:policyName/policy-friendly-name
+ // | arn:aws:autoscaling:region:account-id:scalingPolicy:policy-idautoScalingGroupName/group-friendly-name:policyName/policy-friendly-name
//
- // Valid Values (for use with IAM roles): arn:aws:swf:region:{account-id}:action/actions/AWS_EC2.InstanceId.Stop/1.0
- // | arn:aws:swf:region:{account-id}:action/actions/AWS_EC2.InstanceId.Terminate/1.0
- // | arn:aws:swf:region:{account-id}:action/actions/AWS_EC2.InstanceId.Reboot/1.0
+ // Valid Values (for use with IAM roles): arn:aws:swf:region:account-id:action/actions/AWS_EC2.InstanceId.Stop/1.0
+ // | arn:aws:swf:region:account-id:action/actions/AWS_EC2.InstanceId.Terminate/1.0
+ // | arn:aws:swf:region:account-id:action/actions/AWS_EC2.InstanceId.Reboot/1.0
AlarmActions []*string `type:"list"`
// The description for the alarm.
AlarmDescription *string `type:"string"`
- // The name for the alarm. This name must be unique within the AWS account.
+ // The name for the alarm. This name must be unique within your AWS account.
//
// AlarmName is a required field
AlarmName *string `min:"1" type:"string" required:"true"`
@@ -4132,7 +4443,7 @@ type PutMetricAlarmInput struct {
// in the Amazon CloudWatch User Guide.
DatapointsToAlarm *int64 `min:"1" type:"integer"`
- // The dimensions for the metric associated with the alarm.
+ // The dimensions for the metric specified in MetricName.
Dimensions []*Dimension `type:"list"`
// Used only for alarms based on percentiles. If you specify ignore, the alarm
@@ -4146,7 +4457,7 @@ type PutMetricAlarmInput struct {
EvaluateLowSampleCountPercentile *string `min:"1" type:"string"`
// The number of periods over which data is compared to the specified threshold.
- // If you are setting an alarm which requires that a number of consecutive data
+ // If you are setting an alarm that requires that a number of consecutive data
// points be breaching to trigger the alarm, this value specifies that number.
// If you are setting an "M out of N" alarm, this value is the N.
//
@@ -4156,9 +4467,10 @@ type PutMetricAlarmInput struct {
// EvaluationPeriods is a required field
EvaluationPeriods *int64 `min:"1" type:"integer" required:"true"`
- // The percentile statistic for the metric associated with the alarm. Specify
- // a value between p0.0 and p100. When you call PutMetricAlarm, you must specify
- // either Statistic or ExtendedStatistic, but not both.
+ // The percentile statistic for the metric specified in MetricName. Specify
+ // a value between p0.0 and p100. When you call PutMetricAlarm and specify a
+ // MetricName, you must specify either Statistic or ExtendedStatistic, but not
+ // both.
ExtendedStatistic *string `type:"string"`
// The actions to execute when this alarm transitions to the INSUFFICIENT_DATA
@@ -4167,37 +4479,48 @@ type PutMetricAlarmInput struct {
//
// Valid Values: arn:aws:automate:region:ec2:stop | arn:aws:automate:region:ec2:terminate
// | arn:aws:automate:region:ec2:recover | arn:aws:sns:region:account-id:sns-topic-name
- // | arn:aws:autoscaling:region:account-id:scalingPolicy:policy-id autoScalingGroupName/group-friendly-name:policyName/policy-friendly-name
+ // | arn:aws:autoscaling:region:account-id:scalingPolicy:policy-idautoScalingGroupName/group-friendly-name:policyName/policy-friendly-name
//
- // Valid Values (for use with IAM roles): arn:aws:swf:region:{account-id}:action/actions/AWS_EC2.InstanceId.Stop/1.0
- // | arn:aws:swf:region:{account-id}:action/actions/AWS_EC2.InstanceId.Terminate/1.0
- // | arn:aws:swf:region:{account-id}:action/actions/AWS_EC2.InstanceId.Reboot/1.0
+ // Valid Values (for use with IAM roles): >arn:aws:swf:region:account-id:action/actions/AWS_EC2.InstanceId.Stop/1.0
+ // | arn:aws:swf:region:account-id:action/actions/AWS_EC2.InstanceId.Terminate/1.0
+ // | arn:aws:swf:region:account-id:action/actions/AWS_EC2.InstanceId.Reboot/1.0
InsufficientDataActions []*string `type:"list"`
// The name for the metric associated with the alarm.
//
- // MetricName is a required field
- MetricName *string `min:"1" type:"string" required:"true"`
+ // If you are creating an alarm based on a math expression, you cannot specify
+ // this parameter, or any of the Dimensions, Period, Namespace, Statistic, or
+ // ExtendedStatistic parameters. Instead, you specify all this information in
+ // the Metrics array.
+ MetricName *string `min:"1" type:"string"`
- // The namespace for the metric associated with the alarm.
+ // An array of MetricDataQuery structures that enable you to create an alarm
+ // based on the result of a metric math expression. Each item in the Metrics
+ // array either retrieves a metric or performs a math expression.
//
- // Namespace is a required field
- Namespace *string `min:"1" type:"string" required:"true"`
+ // If you use the Metrics parameter, you cannot include the MetricName, Dimensions,
+ // Period, Namespace, Statistic, or ExtendedStatistic parameters of PutMetricAlarm
+ // in the same operation. Instead, you retrieve the metrics you are using in
+ // your math expression as part of the Metrics array.
+ Metrics []*MetricDataQuery `type:"list"`
+
+ // The namespace for the metric associated specified in MetricName.
+ Namespace *string `min:"1" type:"string"`
// The actions to execute when this alarm transitions to an OK state from any
// other state. Each action is specified as an Amazon Resource Name (ARN).
//
// Valid Values: arn:aws:automate:region:ec2:stop | arn:aws:automate:region:ec2:terminate
- // | arn:aws:automate:region:ec2:recover | arn:aws:sns:region:account-id:sns-topic-name
- // | arn:aws:autoscaling:region:account-id:scalingPolicy:policy-id autoScalingGroupName/group-friendly-name:policyName/policy-friendly-name
+ // | arn:aws:automate:region:ec2:recover | arn:aws:automate:region:ec2:reboot
+ // | arn:aws:sns:region:account-id:sns-topic-name | arn:aws:autoscaling:region:account-id:scalingPolicy:policy-idautoScalingGroupName/group-friendly-name:policyName/policy-friendly-name
//
- // Valid Values (for use with IAM roles): arn:aws:swf:region:{account-id}:action/actions/AWS_EC2.InstanceId.Stop/1.0
- // | arn:aws:swf:region:{account-id}:action/actions/AWS_EC2.InstanceId.Terminate/1.0
- // | arn:aws:swf:region:{account-id}:action/actions/AWS_EC2.InstanceId.Reboot/1.0
+ // Valid Values (for use with IAM roles): arn:aws:swf:region:account-id:action/actions/AWS_EC2.InstanceId.Stop/1.0
+ // | arn:aws:swf:region:account-id:action/actions/AWS_EC2.InstanceId.Terminate/1.0
+ // | arn:aws:swf:region:account-id:action/actions/AWS_EC2.InstanceId.Reboot/1.0
OKActions []*string `type:"list"`
- // The period, in seconds, over which the specified statistic is applied. Valid
- // values are 10, 30, and any multiple of 60.
+ // The length, in seconds, used each time the metric specified in MetricName
+ // is evaluated. Valid values are 10, 30, and any multiple of 60.
//
// Be sure to specify 10 or 30 only for metrics that are stored by a PutMetricData
// call with a StorageResolution of 1. If you specify a period of 10 or 30 for
@@ -4211,13 +4534,12 @@ type PutMetricAlarmInput struct {
//
// An alarm's total current evaluation period can be no longer than one day,
// so Period multiplied by EvaluationPeriods cannot be more than 86,400 seconds.
- //
- // Period is a required field
- Period *int64 `min:"1" type:"integer" required:"true"`
+ Period *int64 `min:"1" type:"integer"`
- // The statistic for the metric associated with the alarm, other than percentile.
- // For percentile statistics, use ExtendedStatistic. When you call PutMetricAlarm,
- // you must specify either Statistic or ExtendedStatistic, but not both.
+ // The statistic for the metric specified in MetricName, other than percentile.
+ // For percentile statistics, use ExtendedStatistic. When you call PutMetricAlarm
+ // and specify a MetricName, you must specify either Statistic or ExtendedStatistic,
+ // but not both.
Statistic *string `type:"string" enum:"Statistic"`
// The value against which the specified statistic is compared.
@@ -4278,21 +4600,12 @@ func (s *PutMetricAlarmInput) Validate() error {
if s.EvaluationPeriods != nil && *s.EvaluationPeriods < 1 {
invalidParams.Add(request.NewErrParamMinValue("EvaluationPeriods", 1))
}
- if s.MetricName == nil {
- invalidParams.Add(request.NewErrParamRequired("MetricName"))
- }
if s.MetricName != nil && len(*s.MetricName) < 1 {
invalidParams.Add(request.NewErrParamMinLen("MetricName", 1))
}
- if s.Namespace == nil {
- invalidParams.Add(request.NewErrParamRequired("Namespace"))
- }
if s.Namespace != nil && len(*s.Namespace) < 1 {
invalidParams.Add(request.NewErrParamMinLen("Namespace", 1))
}
- if s.Period == nil {
- invalidParams.Add(request.NewErrParamRequired("Period"))
- }
if s.Period != nil && *s.Period < 1 {
invalidParams.Add(request.NewErrParamMinValue("Period", 1))
}
@@ -4312,6 +4625,16 @@ func (s *PutMetricAlarmInput) Validate() error {
}
}
}
+ if s.Metrics != nil {
+ for i, v := range s.Metrics {
+ if v == nil {
+ continue
+ }
+ if err := v.Validate(); err != nil {
+ invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Metrics", i), err.(request.ErrInvalidParams))
+ }
+ }
+ }
if invalidParams.Len() > 0 {
return invalidParams
@@ -4391,6 +4714,12 @@ func (s *PutMetricAlarmInput) SetMetricName(v string) *PutMetricAlarmInput {
return s
}
+// SetMetrics sets the Metrics field's value.
+func (s *PutMetricAlarmInput) SetMetrics(v []*MetricDataQuery) *PutMetricAlarmInput {
+ s.Metrics = v
+ return s
+}
+
// SetNamespace sets the Namespace field's value.
func (s *PutMetricAlarmInput) SetNamespace(v string) *PutMetricAlarmInput {
s.Namespace = &v
@@ -4450,7 +4779,8 @@ func (s PutMetricAlarmOutput) GoString() string {
type PutMetricDataInput struct {
_ struct{} `type:"structure"`
- // The data for the metric.
+ // The data for the metric. The array can include no more than 20 metrics per
+ // call.
//
// MetricData is a required field
MetricData []*MetricDatum `type:"list" required:"true"`
diff --git a/vendor/github.com/aws/aws-sdk-go/service/ec2/api.go b/vendor/github.com/aws/aws-sdk-go/service/ec2/api.go
index b48e40e205c..9de81c27f52 100644
--- a/vendor/github.com/aws/aws-sdk-go/service/ec2/api.go
+++ b/vendor/github.com/aws/aws-sdk-go/service/ec2/api.go
@@ -18,7 +18,7 @@ const opAcceptReservedInstancesExchangeQuote = "AcceptReservedInstancesExchangeQ
// AcceptReservedInstancesExchangeQuoteRequest generates a "aws/request.Request" representing the
// client's request for the AcceptReservedInstancesExchangeQuote operation. The "output" return
// value will be populated with the request's response once the request completes
-// successfuly.
+// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
@@ -88,12 +88,90 @@ func (c *EC2) AcceptReservedInstancesExchangeQuoteWithContext(ctx aws.Context, i
return out, req.Send()
}
+const opAcceptTransitGatewayVpcAttachment = "AcceptTransitGatewayVpcAttachment"
+
+// AcceptTransitGatewayVpcAttachmentRequest generates a "aws/request.Request" representing the
+// client's request for the AcceptTransitGatewayVpcAttachment operation. The "output" return
+// value will be populated with the request's response once the request completes
+// successfully.
+//
+// Use "Send" method on the returned Request to send the API call to the service.
+// the "output" return value is not valid until after Send returns without error.
+//
+// See AcceptTransitGatewayVpcAttachment for more information on using the AcceptTransitGatewayVpcAttachment
+// API call, and error handling.
+//
+// This method is useful when you want to inject custom logic or configuration
+// into the SDK's request lifecycle. Such as custom headers, or retry logic.
+//
+//
+// // Example sending a request using the AcceptTransitGatewayVpcAttachmentRequest method.
+// req, resp := client.AcceptTransitGatewayVpcAttachmentRequest(params)
+//
+// err := req.Send()
+// if err == nil { // resp is now filled
+// fmt.Println(resp)
+// }
+//
+// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/AcceptTransitGatewayVpcAttachment
+func (c *EC2) AcceptTransitGatewayVpcAttachmentRequest(input *AcceptTransitGatewayVpcAttachmentInput) (req *request.Request, output *AcceptTransitGatewayVpcAttachmentOutput) {
+ op := &request.Operation{
+ Name: opAcceptTransitGatewayVpcAttachment,
+ HTTPMethod: "POST",
+ HTTPPath: "/",
+ }
+
+ if input == nil {
+ input = &AcceptTransitGatewayVpcAttachmentInput{}
+ }
+
+ output = &AcceptTransitGatewayVpcAttachmentOutput{}
+ req = c.newRequest(op, input, output)
+ return
+}
+
+// AcceptTransitGatewayVpcAttachment API operation for Amazon Elastic Compute Cloud.
+//
+// Accepts a request to attach a VPC to a transit gateway.
+//
+// The VPC attachment must be in the pendingAcceptance state. Use DescribeTransitGatewayVpcAttachments
+// to view your pending VPC attachment requests. Use RejectTransitGatewayVpcAttachment
+// to reject a VPC attachment request.
+//
+// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
+// with awserr.Error's Code and Message methods to get detailed information about
+// the error.
+//
+// See the AWS API reference guide for Amazon Elastic Compute Cloud's
+// API operation AcceptTransitGatewayVpcAttachment for usage and error information.
+// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/AcceptTransitGatewayVpcAttachment
+func (c *EC2) AcceptTransitGatewayVpcAttachment(input *AcceptTransitGatewayVpcAttachmentInput) (*AcceptTransitGatewayVpcAttachmentOutput, error) {
+ req, out := c.AcceptTransitGatewayVpcAttachmentRequest(input)
+ return out, req.Send()
+}
+
+// AcceptTransitGatewayVpcAttachmentWithContext is the same as AcceptTransitGatewayVpcAttachment with the addition of
+// the ability to pass a context and additional request options.
+//
+// See AcceptTransitGatewayVpcAttachment for details on how to use this API operation.
+//
+// The context must be non-nil and will be used for request cancellation. If
+// the context is nil a panic will occur. In the future the SDK may create
+// sub-contexts for http.Requests. See https://golang.org/pkg/context/
+// for more information on using Contexts.
+func (c *EC2) AcceptTransitGatewayVpcAttachmentWithContext(ctx aws.Context, input *AcceptTransitGatewayVpcAttachmentInput, opts ...request.Option) (*AcceptTransitGatewayVpcAttachmentOutput, error) {
+ req, out := c.AcceptTransitGatewayVpcAttachmentRequest(input)
+ req.SetContext(ctx)
+ req.ApplyOptions(opts...)
+ return out, req.Send()
+}
+
const opAcceptVpcEndpointConnections = "AcceptVpcEndpointConnections"
// AcceptVpcEndpointConnectionsRequest generates a "aws/request.Request" representing the
// client's request for the AcceptVpcEndpointConnections operation. The "output" return
// value will be populated with the request's response once the request completes
-// successfuly.
+// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
@@ -168,7 +246,7 @@ const opAcceptVpcPeeringConnection = "AcceptVpcPeeringConnection"
// AcceptVpcPeeringConnectionRequest generates a "aws/request.Request" representing the
// client's request for the AcceptVpcPeeringConnection operation. The "output" return
// value will be populated with the request's response once the request completes
-// successfuly.
+// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
@@ -243,12 +321,101 @@ func (c *EC2) AcceptVpcPeeringConnectionWithContext(ctx aws.Context, input *Acce
return out, req.Send()
}
+const opAdvertiseByoipCidr = "AdvertiseByoipCidr"
+
+// AdvertiseByoipCidrRequest generates a "aws/request.Request" representing the
+// client's request for the AdvertiseByoipCidr operation. The "output" return
+// value will be populated with the request's response once the request completes
+// successfully.
+//
+// Use "Send" method on the returned Request to send the API call to the service.
+// the "output" return value is not valid until after Send returns without error.
+//
+// See AdvertiseByoipCidr for more information on using the AdvertiseByoipCidr
+// API call, and error handling.
+//
+// This method is useful when you want to inject custom logic or configuration
+// into the SDK's request lifecycle. Such as custom headers, or retry logic.
+//
+//
+// // Example sending a request using the AdvertiseByoipCidrRequest method.
+// req, resp := client.AdvertiseByoipCidrRequest(params)
+//
+// err := req.Send()
+// if err == nil { // resp is now filled
+// fmt.Println(resp)
+// }
+//
+// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/AdvertiseByoipCidr
+func (c *EC2) AdvertiseByoipCidrRequest(input *AdvertiseByoipCidrInput) (req *request.Request, output *AdvertiseByoipCidrOutput) {
+ op := &request.Operation{
+ Name: opAdvertiseByoipCidr,
+ HTTPMethod: "POST",
+ HTTPPath: "/",
+ }
+
+ if input == nil {
+ input = &AdvertiseByoipCidrInput{}
+ }
+
+ output = &AdvertiseByoipCidrOutput{}
+ req = c.newRequest(op, input, output)
+ return
+}
+
+// AdvertiseByoipCidr API operation for Amazon Elastic Compute Cloud.
+//
+// Advertises an IPv4 address range that is provisioned for use with your AWS
+// resources through bring your own IP addresses (BYOIP).
+//
+// You can perform this operation at most once every 10 seconds, even if you
+// specify different address ranges each time.
+//
+// We recommend that you stop advertising the BYOIP CIDR from other locations
+// when you advertise it from AWS. To minimize down time, you can configure
+// your AWS resources to use an address from a BYOIP CIDR before it is advertised,
+// and then simultaneously stop advertising it from the current location and
+// start advertising it through AWS.
+//
+// It can take a few minutes before traffic to the specified addresses starts
+// routing to AWS because of BGP propagation delays.
+//
+// To stop advertising the BYOIP CIDR, use WithdrawByoipCidr.
+//
+// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
+// with awserr.Error's Code and Message methods to get detailed information about
+// the error.
+//
+// See the AWS API reference guide for Amazon Elastic Compute Cloud's
+// API operation AdvertiseByoipCidr for usage and error information.
+// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/AdvertiseByoipCidr
+func (c *EC2) AdvertiseByoipCidr(input *AdvertiseByoipCidrInput) (*AdvertiseByoipCidrOutput, error) {
+ req, out := c.AdvertiseByoipCidrRequest(input)
+ return out, req.Send()
+}
+
+// AdvertiseByoipCidrWithContext is the same as AdvertiseByoipCidr with the addition of
+// the ability to pass a context and additional request options.
+//
+// See AdvertiseByoipCidr for details on how to use this API operation.
+//
+// The context must be non-nil and will be used for request cancellation. If
+// the context is nil a panic will occur. In the future the SDK may create
+// sub-contexts for http.Requests. See https://golang.org/pkg/context/
+// for more information on using Contexts.
+func (c *EC2) AdvertiseByoipCidrWithContext(ctx aws.Context, input *AdvertiseByoipCidrInput, opts ...request.Option) (*AdvertiseByoipCidrOutput, error) {
+ req, out := c.AdvertiseByoipCidrRequest(input)
+ req.SetContext(ctx)
+ req.ApplyOptions(opts...)
+ return out, req.Send()
+}
+
const opAllocateAddress = "AllocateAddress"
// AllocateAddressRequest generates a "aws/request.Request" representing the
// client's request for the AllocateAddress operation. The "output" return
// value will be populated with the request's response once the request completes
-// successfuly.
+// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
@@ -287,17 +454,28 @@ func (c *EC2) AllocateAddressRequest(input *AllocateAddressInput) (req *request.
// AllocateAddress API operation for Amazon Elastic Compute Cloud.
//
-// Allocates an Elastic IP address.
+// Allocates an Elastic IP address to your AWS account. After you allocate the
+// Elastic IP address you can associate it with an instance or network interface.
+// After you release an Elastic IP address, it is released to the IP address
+// pool and can be allocated to a different AWS account.
+//
+// You can allocate an Elastic IP address from an address pool owned by AWS
+// or from an address pool created from a public IPv4 address range that you
+// have brought to AWS for use with your AWS resources using bring your own
+// IP addresses (BYOIP). For more information, see Bring Your Own IP Addresses
+// (BYOIP) (http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-byoip.html)
+// in the Amazon Elastic Compute Cloud User Guide.
+//
+// [EC2-VPC] If you release an Elastic IP address, you might be able to recover
+// it. You cannot recover an Elastic IP address that you released after it is
+// allocated to another AWS account. You cannot recover an Elastic IP address
+// for EC2-Classic. To attempt to recover an Elastic IP address that you released,
+// specify it in this operation.
//
// An Elastic IP address is for use either in the EC2-Classic platform or in
// a VPC. By default, you can allocate 5 Elastic IP addresses for EC2-Classic
// per region and 5 Elastic IP addresses for EC2-VPC per region.
//
-// If you release an Elastic IP address for use in a VPC, you might be able
-// to recover it. To recover an Elastic IP address that you released, specify
-// it in the Address parameter. Note that you cannot recover an Elastic IP address
-// that you released after it is allocated to another AWS account.
-//
// For more information, see Elastic IP Addresses (http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/elastic-ip-addresses-eip.html)
// in the Amazon Elastic Compute Cloud User Guide.
//
@@ -334,7 +512,7 @@ const opAllocateHosts = "AllocateHosts"
// AllocateHostsRequest generates a "aws/request.Request" representing the
// client's request for the AllocateHosts operation. The "output" return
// value will be populated with the request's response once the request completes
-// successfuly.
+// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
@@ -373,9 +551,8 @@ func (c *EC2) AllocateHostsRequest(input *AllocateHostsInput) (req *request.Requ
// AllocateHosts API operation for Amazon Elastic Compute Cloud.
//
-// Allocates a Dedicated Host to your account. At minimum you need to specify
-// the instance size type, Availability Zone, and quantity of hosts you want
-// to allocate.
+// Allocates a Dedicated Host to your account. At a minimum, specify the instance
+// size type, Availability Zone, and quantity of hosts to allocate.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
@@ -405,12 +582,88 @@ func (c *EC2) AllocateHostsWithContext(ctx aws.Context, input *AllocateHostsInpu
return out, req.Send()
}
+const opApplySecurityGroupsToClientVpnTargetNetwork = "ApplySecurityGroupsToClientVpnTargetNetwork"
+
+// ApplySecurityGroupsToClientVpnTargetNetworkRequest generates a "aws/request.Request" representing the
+// client's request for the ApplySecurityGroupsToClientVpnTargetNetwork operation. The "output" return
+// value will be populated with the request's response once the request completes
+// successfully.
+//
+// Use "Send" method on the returned Request to send the API call to the service.
+// the "output" return value is not valid until after Send returns without error.
+//
+// See ApplySecurityGroupsToClientVpnTargetNetwork for more information on using the ApplySecurityGroupsToClientVpnTargetNetwork
+// API call, and error handling.
+//
+// This method is useful when you want to inject custom logic or configuration
+// into the SDK's request lifecycle. Such as custom headers, or retry logic.
+//
+//
+// // Example sending a request using the ApplySecurityGroupsToClientVpnTargetNetworkRequest method.
+// req, resp := client.ApplySecurityGroupsToClientVpnTargetNetworkRequest(params)
+//
+// err := req.Send()
+// if err == nil { // resp is now filled
+// fmt.Println(resp)
+// }
+//
+// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/ApplySecurityGroupsToClientVpnTargetNetwork
+func (c *EC2) ApplySecurityGroupsToClientVpnTargetNetworkRequest(input *ApplySecurityGroupsToClientVpnTargetNetworkInput) (req *request.Request, output *ApplySecurityGroupsToClientVpnTargetNetworkOutput) {
+ op := &request.Operation{
+ Name: opApplySecurityGroupsToClientVpnTargetNetwork,
+ HTTPMethod: "POST",
+ HTTPPath: "/",
+ }
+
+ if input == nil {
+ input = &ApplySecurityGroupsToClientVpnTargetNetworkInput{}
+ }
+
+ output = &ApplySecurityGroupsToClientVpnTargetNetworkOutput{}
+ req = c.newRequest(op, input, output)
+ return
+}
+
+// ApplySecurityGroupsToClientVpnTargetNetwork API operation for Amazon Elastic Compute Cloud.
+//
+// Applies a security group to the association between the target network and
+// the Client VPN endpoint. This action replaces the existing security groups
+// with the specified security groups.
+//
+// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
+// with awserr.Error's Code and Message methods to get detailed information about
+// the error.
+//
+// See the AWS API reference guide for Amazon Elastic Compute Cloud's
+// API operation ApplySecurityGroupsToClientVpnTargetNetwork for usage and error information.
+// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/ApplySecurityGroupsToClientVpnTargetNetwork
+func (c *EC2) ApplySecurityGroupsToClientVpnTargetNetwork(input *ApplySecurityGroupsToClientVpnTargetNetworkInput) (*ApplySecurityGroupsToClientVpnTargetNetworkOutput, error) {
+ req, out := c.ApplySecurityGroupsToClientVpnTargetNetworkRequest(input)
+ return out, req.Send()
+}
+
+// ApplySecurityGroupsToClientVpnTargetNetworkWithContext is the same as ApplySecurityGroupsToClientVpnTargetNetwork with the addition of
+// the ability to pass a context and additional request options.
+//
+// See ApplySecurityGroupsToClientVpnTargetNetwork for details on how to use this API operation.
+//
+// The context must be non-nil and will be used for request cancellation. If
+// the context is nil a panic will occur. In the future the SDK may create
+// sub-contexts for http.Requests. See https://golang.org/pkg/context/
+// for more information on using Contexts.
+func (c *EC2) ApplySecurityGroupsToClientVpnTargetNetworkWithContext(ctx aws.Context, input *ApplySecurityGroupsToClientVpnTargetNetworkInput, opts ...request.Option) (*ApplySecurityGroupsToClientVpnTargetNetworkOutput, error) {
+ req, out := c.ApplySecurityGroupsToClientVpnTargetNetworkRequest(input)
+ req.SetContext(ctx)
+ req.ApplyOptions(opts...)
+ return out, req.Send()
+}
+
const opAssignIpv6Addresses = "AssignIpv6Addresses"
// AssignIpv6AddressesRequest generates a "aws/request.Request" representing the
// client's request for the AssignIpv6Addresses operation. The "output" return
// value will be populated with the request's response once the request completes
-// successfuly.
+// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
@@ -491,7 +744,7 @@ const opAssignPrivateIpAddresses = "AssignPrivateIpAddresses"
// AssignPrivateIpAddressesRequest generates a "aws/request.Request" representing the
// client's request for the AssignPrivateIpAddresses operation. The "output" return
// value will be populated with the request's response once the request completes
-// successfuly.
+// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
@@ -525,24 +778,30 @@ func (c *EC2) AssignPrivateIpAddressesRequest(input *AssignPrivateIpAddressesInp
output = &AssignPrivateIpAddressesOutput{}
req = c.newRequest(op, input, output)
- req.Handlers.Unmarshal.Remove(ec2query.UnmarshalHandler)
- req.Handlers.Unmarshal.PushBackNamed(protocol.UnmarshalDiscardBodyHandler)
+ req.Handlers.Unmarshal.Swap(ec2query.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
return
}
// AssignPrivateIpAddresses API operation for Amazon Elastic Compute Cloud.
//
// Assigns one or more secondary private IP addresses to the specified network
-// interface. You can specify one or more specific secondary IP addresses, or
-// you can specify the number of secondary IP addresses to be automatically
-// assigned within the subnet's CIDR block range. The number of secondary IP
-// addresses that you can assign to an instance varies by instance type. For
-// information about instance types, see Instance Types (http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-types.html)
+// interface.
+//
+// You can specify one or more specific secondary IP addresses, or you can specify
+// the number of secondary IP addresses to be automatically assigned within
+// the subnet's CIDR block range. The number of secondary IP addresses that
+// you can assign to an instance varies by instance type. For information about
+// instance types, see Instance Types (http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-types.html)
// in the Amazon Elastic Compute Cloud User Guide. For more information about
// Elastic IP addresses, see Elastic IP Addresses (http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/elastic-ip-addresses-eip.html)
// in the Amazon Elastic Compute Cloud User Guide.
//
-// AssignPrivateIpAddresses is available only in EC2-VPC.
+// When you move a secondary private IP address to another network interface,
+// any Elastic IP address that is associated with the IP address is also moved.
+//
+// Remapping an IP address is an asynchronous operation. When you move an IP
+// address from one network interface to another, check network/interfaces/macs/mac/local-ipv4s
+// in the instance metadata to confirm that the remapping is complete.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
@@ -577,7 +836,7 @@ const opAssociateAddress = "AssociateAddress"
// AssociateAddressRequest generates a "aws/request.Request" representing the
// client's request for the AssociateAddress operation. The "output" return
// value will be populated with the request's response once the request completes
-// successfuly.
+// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
@@ -617,6 +876,7 @@ func (c *EC2) AssociateAddressRequest(input *AssociateAddressInput) (req *reques
// AssociateAddress API operation for Amazon Elastic Compute Cloud.
//
// Associates an Elastic IP address with an instance or a network interface.
+// Before you can use an Elastic IP address, you must allocate it to your account.
//
// An Elastic IP address is for use in either the EC2-Classic platform or in
// a VPC. For more information, see Elastic IP Addresses (http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/elastic-ip-addresses-eip.html)
@@ -669,12 +929,90 @@ func (c *EC2) AssociateAddressWithContext(ctx aws.Context, input *AssociateAddre
return out, req.Send()
}
+const opAssociateClientVpnTargetNetwork = "AssociateClientVpnTargetNetwork"
+
+// AssociateClientVpnTargetNetworkRequest generates a "aws/request.Request" representing the
+// client's request for the AssociateClientVpnTargetNetwork operation. The "output" return
+// value will be populated with the request's response once the request completes
+// successfully.
+//
+// Use "Send" method on the returned Request to send the API call to the service.
+// the "output" return value is not valid until after Send returns without error.
+//
+// See AssociateClientVpnTargetNetwork for more information on using the AssociateClientVpnTargetNetwork
+// API call, and error handling.
+//
+// This method is useful when you want to inject custom logic or configuration
+// into the SDK's request lifecycle. Such as custom headers, or retry logic.
+//
+//
+// // Example sending a request using the AssociateClientVpnTargetNetworkRequest method.
+// req, resp := client.AssociateClientVpnTargetNetworkRequest(params)
+//
+// err := req.Send()
+// if err == nil { // resp is now filled
+// fmt.Println(resp)
+// }
+//
+// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/AssociateClientVpnTargetNetwork
+func (c *EC2) AssociateClientVpnTargetNetworkRequest(input *AssociateClientVpnTargetNetworkInput) (req *request.Request, output *AssociateClientVpnTargetNetworkOutput) {
+ op := &request.Operation{
+ Name: opAssociateClientVpnTargetNetwork,
+ HTTPMethod: "POST",
+ HTTPPath: "/",
+ }
+
+ if input == nil {
+ input = &AssociateClientVpnTargetNetworkInput{}
+ }
+
+ output = &AssociateClientVpnTargetNetworkOutput{}
+ req = c.newRequest(op, input, output)
+ return
+}
+
+// AssociateClientVpnTargetNetwork API operation for Amazon Elastic Compute Cloud.
+//
+// Associates a target network with a Client VPN endpoint. A target network
+// is a subnet in a VPC. You can associate multiple subnets from the same VPC
+// with a Client VPN endpoint. You can associate only one subnet in each Availability
+// Zone. We recommend that you associate at least two subnets to provide Availability
+// Zone redundancy.
+//
+// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
+// with awserr.Error's Code and Message methods to get detailed information about
+// the error.
+//
+// See the AWS API reference guide for Amazon Elastic Compute Cloud's
+// API operation AssociateClientVpnTargetNetwork for usage and error information.
+// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/AssociateClientVpnTargetNetwork
+func (c *EC2) AssociateClientVpnTargetNetwork(input *AssociateClientVpnTargetNetworkInput) (*AssociateClientVpnTargetNetworkOutput, error) {
+ req, out := c.AssociateClientVpnTargetNetworkRequest(input)
+ return out, req.Send()
+}
+
+// AssociateClientVpnTargetNetworkWithContext is the same as AssociateClientVpnTargetNetwork with the addition of
+// the ability to pass a context and additional request options.
+//
+// See AssociateClientVpnTargetNetwork for details on how to use this API operation.
+//
+// The context must be non-nil and will be used for request cancellation. If
+// the context is nil a panic will occur. In the future the SDK may create
+// sub-contexts for http.Requests. See https://golang.org/pkg/context/
+// for more information on using Contexts.
+func (c *EC2) AssociateClientVpnTargetNetworkWithContext(ctx aws.Context, input *AssociateClientVpnTargetNetworkInput, opts ...request.Option) (*AssociateClientVpnTargetNetworkOutput, error) {
+ req, out := c.AssociateClientVpnTargetNetworkRequest(input)
+ req.SetContext(ctx)
+ req.ApplyOptions(opts...)
+ return out, req.Send()
+}
+
const opAssociateDhcpOptions = "AssociateDhcpOptions"
// AssociateDhcpOptionsRequest generates a "aws/request.Request" representing the
// client's request for the AssociateDhcpOptions operation. The "output" return
// value will be populated with the request's response once the request completes
-// successfuly.
+// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
@@ -708,8 +1046,7 @@ func (c *EC2) AssociateDhcpOptionsRequest(input *AssociateDhcpOptionsInput) (req
output = &AssociateDhcpOptionsOutput{}
req = c.newRequest(op, input, output)
- req.Handlers.Unmarshal.Remove(ec2query.UnmarshalHandler)
- req.Handlers.Unmarshal.PushBackNamed(protocol.UnmarshalDiscardBodyHandler)
+ req.Handlers.Unmarshal.Swap(ec2query.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
return
}
@@ -761,7 +1098,7 @@ const opAssociateIamInstanceProfile = "AssociateIamInstanceProfile"
// AssociateIamInstanceProfileRequest generates a "aws/request.Request" representing the
// client's request for the AssociateIamInstanceProfile operation. The "output" return
// value will be populated with the request's response once the request completes
-// successfuly.
+// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
@@ -836,7 +1173,7 @@ const opAssociateRouteTable = "AssociateRouteTable"
// AssociateRouteTableRequest generates a "aws/request.Request" representing the
// client's request for the AssociateRouteTable operation. The "output" return
// value will be populated with the request's response once the request completes
-// successfuly.
+// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
@@ -881,7 +1218,7 @@ func (c *EC2) AssociateRouteTableRequest(input *AssociateRouteTableInput) (req *
// an association ID, which you need in order to disassociate the route table
// from the subnet later. A route table can be associated with multiple subnets.
//
-// For more information about route tables, see Route Tables (http://docs.aws.amazon.com/AmazonVPC/latest/UserGuide/VPC_Route_Tables.html)
+// For more information, see Route Tables (http://docs.aws.amazon.com/AmazonVPC/latest/UserGuide/VPC_Route_Tables.html)
// in the Amazon Virtual Private Cloud User Guide.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
@@ -917,7 +1254,7 @@ const opAssociateSubnetCidrBlock = "AssociateSubnetCidrBlock"
// AssociateSubnetCidrBlockRequest generates a "aws/request.Request" representing the
// client's request for the AssociateSubnetCidrBlock operation. The "output" return
// value will be populated with the request's response once the request completes
-// successfuly.
+// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
@@ -988,12 +1325,87 @@ func (c *EC2) AssociateSubnetCidrBlockWithContext(ctx aws.Context, input *Associ
return out, req.Send()
}
+const opAssociateTransitGatewayRouteTable = "AssociateTransitGatewayRouteTable"
+
+// AssociateTransitGatewayRouteTableRequest generates a "aws/request.Request" representing the
+// client's request for the AssociateTransitGatewayRouteTable operation. The "output" return
+// value will be populated with the request's response once the request completes
+// successfully.
+//
+// Use "Send" method on the returned Request to send the API call to the service.
+// the "output" return value is not valid until after Send returns without error.
+//
+// See AssociateTransitGatewayRouteTable for more information on using the AssociateTransitGatewayRouteTable
+// API call, and error handling.
+//
+// This method is useful when you want to inject custom logic or configuration
+// into the SDK's request lifecycle. Such as custom headers, or retry logic.
+//
+//
+// // Example sending a request using the AssociateTransitGatewayRouteTableRequest method.
+// req, resp := client.AssociateTransitGatewayRouteTableRequest(params)
+//
+// err := req.Send()
+// if err == nil { // resp is now filled
+// fmt.Println(resp)
+// }
+//
+// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/AssociateTransitGatewayRouteTable
+func (c *EC2) AssociateTransitGatewayRouteTableRequest(input *AssociateTransitGatewayRouteTableInput) (req *request.Request, output *AssociateTransitGatewayRouteTableOutput) {
+ op := &request.Operation{
+ Name: opAssociateTransitGatewayRouteTable,
+ HTTPMethod: "POST",
+ HTTPPath: "/",
+ }
+
+ if input == nil {
+ input = &AssociateTransitGatewayRouteTableInput{}
+ }
+
+ output = &AssociateTransitGatewayRouteTableOutput{}
+ req = c.newRequest(op, input, output)
+ return
+}
+
+// AssociateTransitGatewayRouteTable API operation for Amazon Elastic Compute Cloud.
+//
+// Associates the specified attachment with the specified transit gateway route
+// table. You can associate only one route table with an attachment.
+//
+// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
+// with awserr.Error's Code and Message methods to get detailed information about
+// the error.
+//
+// See the AWS API reference guide for Amazon Elastic Compute Cloud's
+// API operation AssociateTransitGatewayRouteTable for usage and error information.
+// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/AssociateTransitGatewayRouteTable
+func (c *EC2) AssociateTransitGatewayRouteTable(input *AssociateTransitGatewayRouteTableInput) (*AssociateTransitGatewayRouteTableOutput, error) {
+ req, out := c.AssociateTransitGatewayRouteTableRequest(input)
+ return out, req.Send()
+}
+
+// AssociateTransitGatewayRouteTableWithContext is the same as AssociateTransitGatewayRouteTable with the addition of
+// the ability to pass a context and additional request options.
+//
+// See AssociateTransitGatewayRouteTable for details on how to use this API operation.
+//
+// The context must be non-nil and will be used for request cancellation. If
+// the context is nil a panic will occur. In the future the SDK may create
+// sub-contexts for http.Requests. See https://golang.org/pkg/context/
+// for more information on using Contexts.
+func (c *EC2) AssociateTransitGatewayRouteTableWithContext(ctx aws.Context, input *AssociateTransitGatewayRouteTableInput, opts ...request.Option) (*AssociateTransitGatewayRouteTableOutput, error) {
+ req, out := c.AssociateTransitGatewayRouteTableRequest(input)
+ req.SetContext(ctx)
+ req.ApplyOptions(opts...)
+ return out, req.Send()
+}
+
const opAssociateVpcCidrBlock = "AssociateVpcCidrBlock"
// AssociateVpcCidrBlockRequest generates a "aws/request.Request" representing the
// client's request for the AssociateVpcCidrBlock operation. The "output" return
// value will be populated with the request's response once the request completes
-// successfuly.
+// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
@@ -1073,7 +1485,7 @@ const opAttachClassicLinkVpc = "AttachClassicLinkVpc"
// AttachClassicLinkVpcRequest generates a "aws/request.Request" representing the
// client's request for the AttachClassicLinkVpc operation. The "output" return
// value will be populated with the request's response once the request completes
-// successfuly.
+// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
@@ -1158,7 +1570,7 @@ const opAttachInternetGateway = "AttachInternetGateway"
// AttachInternetGatewayRequest generates a "aws/request.Request" representing the
// client's request for the AttachInternetGateway operation. The "output" return
// value will be populated with the request's response once the request completes
-// successfuly.
+// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
@@ -1192,15 +1604,14 @@ func (c *EC2) AttachInternetGatewayRequest(input *AttachInternetGatewayInput) (r
output = &AttachInternetGatewayOutput{}
req = c.newRequest(op, input, output)
- req.Handlers.Unmarshal.Remove(ec2query.UnmarshalHandler)
- req.Handlers.Unmarshal.PushBackNamed(protocol.UnmarshalDiscardBodyHandler)
+ req.Handlers.Unmarshal.Swap(ec2query.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
return
}
// AttachInternetGateway API operation for Amazon Elastic Compute Cloud.
//
-// Attaches an Internet gateway to a VPC, enabling connectivity between the
-// Internet and the VPC. For more information about your VPC and Internet gateway,
+// Attaches an internet gateway to a VPC, enabling connectivity between the
+// internet and the VPC. For more information about your VPC and internet gateway,
// see the Amazon Virtual Private Cloud User Guide (http://docs.aws.amazon.com/AmazonVPC/latest/UserGuide/).
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
@@ -1236,7 +1647,7 @@ const opAttachNetworkInterface = "AttachNetworkInterface"
// AttachNetworkInterfaceRequest generates a "aws/request.Request" representing the
// client's request for the AttachNetworkInterface operation. The "output" return
// value will be populated with the request's response once the request completes
-// successfuly.
+// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
@@ -1310,7 +1721,7 @@ const opAttachVolume = "AttachVolume"
// AttachVolumeRequest generates a "aws/request.Request" representing the
// client's request for the AttachVolume operation. The "output" return
// value will be populated with the request's response once the request completes
-// successfuly.
+// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
@@ -1374,8 +1785,6 @@ func (c *EC2) AttachVolumeRequest(input *AttachVolumeInput) (req *request.Reques
// the product. For example, you can't detach a volume from a Windows instance
// and attach it to a Linux instance.
//
-// For an overview of the AWS Marketplace, see Introducing AWS Marketplace (https://aws.amazon.com/marketplace/help/200900000).
-//
// For more information about EBS volumes, see Attaching Amazon EBS Volumes
// (http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ebs-attaching-volume.html)
// in the Amazon Elastic Compute Cloud User Guide.
@@ -1413,7 +1822,7 @@ const opAttachVpnGateway = "AttachVpnGateway"
// AttachVpnGatewayRequest generates a "aws/request.Request" representing the
// client's request for the AttachVpnGateway operation. The "output" return
// value will be populated with the request's response once the request completes
-// successfuly.
+// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
@@ -1486,12 +1895,89 @@ func (c *EC2) AttachVpnGatewayWithContext(ctx aws.Context, input *AttachVpnGatew
return out, req.Send()
}
+const opAuthorizeClientVpnIngress = "AuthorizeClientVpnIngress"
+
+// AuthorizeClientVpnIngressRequest generates a "aws/request.Request" representing the
+// client's request for the AuthorizeClientVpnIngress operation. The "output" return
+// value will be populated with the request's response once the request completes
+// successfully.
+//
+// Use "Send" method on the returned Request to send the API call to the service.
+// the "output" return value is not valid until after Send returns without error.
+//
+// See AuthorizeClientVpnIngress for more information on using the AuthorizeClientVpnIngress
+// API call, and error handling.
+//
+// This method is useful when you want to inject custom logic or configuration
+// into the SDK's request lifecycle. Such as custom headers, or retry logic.
+//
+//
+// // Example sending a request using the AuthorizeClientVpnIngressRequest method.
+// req, resp := client.AuthorizeClientVpnIngressRequest(params)
+//
+// err := req.Send()
+// if err == nil { // resp is now filled
+// fmt.Println(resp)
+// }
+//
+// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/AuthorizeClientVpnIngress
+func (c *EC2) AuthorizeClientVpnIngressRequest(input *AuthorizeClientVpnIngressInput) (req *request.Request, output *AuthorizeClientVpnIngressOutput) {
+ op := &request.Operation{
+ Name: opAuthorizeClientVpnIngress,
+ HTTPMethod: "POST",
+ HTTPPath: "/",
+ }
+
+ if input == nil {
+ input = &AuthorizeClientVpnIngressInput{}
+ }
+
+ output = &AuthorizeClientVpnIngressOutput{}
+ req = c.newRequest(op, input, output)
+ return
+}
+
+// AuthorizeClientVpnIngress API operation for Amazon Elastic Compute Cloud.
+//
+// Adds an ingress authorization rule to a Client VPN endpoint. Ingress authorization
+// rules act as firewall rules that grant access to networks. You must configure
+// ingress authorization rules to enable clients to access resources in AWS
+// or on-premises networks.
+//
+// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
+// with awserr.Error's Code and Message methods to get detailed information about
+// the error.
+//
+// See the AWS API reference guide for Amazon Elastic Compute Cloud's
+// API operation AuthorizeClientVpnIngress for usage and error information.
+// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/AuthorizeClientVpnIngress
+func (c *EC2) AuthorizeClientVpnIngress(input *AuthorizeClientVpnIngressInput) (*AuthorizeClientVpnIngressOutput, error) {
+ req, out := c.AuthorizeClientVpnIngressRequest(input)
+ return out, req.Send()
+}
+
+// AuthorizeClientVpnIngressWithContext is the same as AuthorizeClientVpnIngress with the addition of
+// the ability to pass a context and additional request options.
+//
+// See AuthorizeClientVpnIngress for details on how to use this API operation.
+//
+// The context must be non-nil and will be used for request cancellation. If
+// the context is nil a panic will occur. In the future the SDK may create
+// sub-contexts for http.Requests. See https://golang.org/pkg/context/
+// for more information on using Contexts.
+func (c *EC2) AuthorizeClientVpnIngressWithContext(ctx aws.Context, input *AuthorizeClientVpnIngressInput, opts ...request.Option) (*AuthorizeClientVpnIngressOutput, error) {
+ req, out := c.AuthorizeClientVpnIngressRequest(input)
+ req.SetContext(ctx)
+ req.ApplyOptions(opts...)
+ return out, req.Send()
+}
+
const opAuthorizeSecurityGroupEgress = "AuthorizeSecurityGroupEgress"
// AuthorizeSecurityGroupEgressRequest generates a "aws/request.Request" representing the
// client's request for the AuthorizeSecurityGroupEgress operation. The "output" return
// value will be populated with the request's response once the request completes
-// successfuly.
+// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
@@ -1525,8 +2011,7 @@ func (c *EC2) AuthorizeSecurityGroupEgressRequest(input *AuthorizeSecurityGroupE
output = &AuthorizeSecurityGroupEgressOutput{}
req = c.newRequest(op, input, output)
- req.Handlers.Unmarshal.Remove(ec2query.UnmarshalHandler)
- req.Handlers.Unmarshal.PushBackNamed(protocol.UnmarshalDiscardBodyHandler)
+ req.Handlers.Unmarshal.Swap(ec2query.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
return
}
@@ -1584,7 +2069,7 @@ const opAuthorizeSecurityGroupIngress = "AuthorizeSecurityGroupIngress"
// AuthorizeSecurityGroupIngressRequest generates a "aws/request.Request" representing the
// client's request for the AuthorizeSecurityGroupIngress operation. The "output" return
// value will be populated with the request's response once the request completes
-// successfuly.
+// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
@@ -1618,8 +2103,7 @@ func (c *EC2) AuthorizeSecurityGroupIngressRequest(input *AuthorizeSecurityGroup
output = &AuthorizeSecurityGroupIngressOutput{}
req = c.newRequest(op, input, output)
- req.Handlers.Unmarshal.Remove(ec2query.UnmarshalHandler)
- req.Handlers.Unmarshal.PushBackNamed(protocol.UnmarshalDiscardBodyHandler)
+ req.Handlers.Unmarshal.Swap(ec2query.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
return
}
@@ -1678,7 +2162,7 @@ const opBundleInstance = "BundleInstance"
// BundleInstanceRequest generates a "aws/request.Request" representing the
// client's request for the BundleInstance operation. The "output" return
// value will be populated with the request's response once the request completes
-// successfuly.
+// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
@@ -1725,8 +2209,6 @@ func (c *EC2) BundleInstanceRequest(input *BundleInstanceInput) (req *request.Re
// This action is not applicable for Linux/Unix instances or Windows instances
// that are backed by Amazon EBS.
//
-// For more information, see Creating an Instance Store-Backed Windows AMI (http://docs.aws.amazon.com/AWSEC2/latest/WindowsGuide/Creating_InstanceStoreBacked_WinAMI.html).
-//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
@@ -1760,7 +2242,7 @@ const opCancelBundleTask = "CancelBundleTask"
// CancelBundleTaskRequest generates a "aws/request.Request" representing the
// client's request for the CancelBundleTask operation. The "output" return
// value will be populated with the request's response once the request completes
-// successfuly.
+// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
@@ -1829,12 +2311,93 @@ func (c *EC2) CancelBundleTaskWithContext(ctx aws.Context, input *CancelBundleTa
return out, req.Send()
}
+const opCancelCapacityReservation = "CancelCapacityReservation"
+
+// CancelCapacityReservationRequest generates a "aws/request.Request" representing the
+// client's request for the CancelCapacityReservation operation. The "output" return
+// value will be populated with the request's response once the request completes
+// successfully.
+//
+// Use "Send" method on the returned Request to send the API call to the service.
+// the "output" return value is not valid until after Send returns without error.
+//
+// See CancelCapacityReservation for more information on using the CancelCapacityReservation
+// API call, and error handling.
+//
+// This method is useful when you want to inject custom logic or configuration
+// into the SDK's request lifecycle. Such as custom headers, or retry logic.
+//
+//
+// // Example sending a request using the CancelCapacityReservationRequest method.
+// req, resp := client.CancelCapacityReservationRequest(params)
+//
+// err := req.Send()
+// if err == nil { // resp is now filled
+// fmt.Println(resp)
+// }
+//
+// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/CancelCapacityReservation
+func (c *EC2) CancelCapacityReservationRequest(input *CancelCapacityReservationInput) (req *request.Request, output *CancelCapacityReservationOutput) {
+ op := &request.Operation{
+ Name: opCancelCapacityReservation,
+ HTTPMethod: "POST",
+ HTTPPath: "/",
+ }
+
+ if input == nil {
+ input = &CancelCapacityReservationInput{}
+ }
+
+ output = &CancelCapacityReservationOutput{}
+ req = c.newRequest(op, input, output)
+ return
+}
+
+// CancelCapacityReservation API operation for Amazon Elastic Compute Cloud.
+//
+// Cancels the specified Capacity Reservation, releases the reserved capacity,
+// and changes the Capacity Reservation's state to cancelled.
+//
+// Instances running in the reserved capacity continue running until you stop
+// them. Stopped instances that target the Capacity Reservation can no longer
+// launch. Modify these instances to either target a different Capacity Reservation,
+// launch On-Demand Instance capacity, or run in any open Capacity Reservation
+// that has matching attributes and sufficient capacity.
+//
+// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
+// with awserr.Error's Code and Message methods to get detailed information about
+// the error.
+//
+// See the AWS API reference guide for Amazon Elastic Compute Cloud's
+// API operation CancelCapacityReservation for usage and error information.
+// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/CancelCapacityReservation
+func (c *EC2) CancelCapacityReservation(input *CancelCapacityReservationInput) (*CancelCapacityReservationOutput, error) {
+ req, out := c.CancelCapacityReservationRequest(input)
+ return out, req.Send()
+}
+
+// CancelCapacityReservationWithContext is the same as CancelCapacityReservation with the addition of
+// the ability to pass a context and additional request options.
+//
+// See CancelCapacityReservation for details on how to use this API operation.
+//
+// The context must be non-nil and will be used for request cancellation. If
+// the context is nil a panic will occur. In the future the SDK may create
+// sub-contexts for http.Requests. See https://golang.org/pkg/context/
+// for more information on using Contexts.
+func (c *EC2) CancelCapacityReservationWithContext(ctx aws.Context, input *CancelCapacityReservationInput, opts ...request.Option) (*CancelCapacityReservationOutput, error) {
+ req, out := c.CancelCapacityReservationRequest(input)
+ req.SetContext(ctx)
+ req.ApplyOptions(opts...)
+ return out, req.Send()
+}
+
const opCancelConversionTask = "CancelConversionTask"
// CancelConversionTaskRequest generates a "aws/request.Request" representing the
// client's request for the CancelConversionTask operation. The "output" return
// value will be populated with the request's response once the request completes
-// successfuly.
+// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
@@ -1868,8 +2431,7 @@ func (c *EC2) CancelConversionTaskRequest(input *CancelConversionTaskInput) (req
output = &CancelConversionTaskOutput{}
req = c.newRequest(op, input, output)
- req.Handlers.Unmarshal.Remove(ec2query.UnmarshalHandler)
- req.Handlers.Unmarshal.PushBackNamed(protocol.UnmarshalDiscardBodyHandler)
+ req.Handlers.Unmarshal.Swap(ec2query.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
return
}
@@ -1917,7 +2479,7 @@ const opCancelExportTask = "CancelExportTask"
// CancelExportTaskRequest generates a "aws/request.Request" representing the
// client's request for the CancelExportTask operation. The "output" return
// value will be populated with the request's response once the request completes
-// successfuly.
+// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
@@ -1951,8 +2513,7 @@ func (c *EC2) CancelExportTaskRequest(input *CancelExportTaskInput) (req *reques
output = &CancelExportTaskOutput{}
req = c.newRequest(op, input, output)
- req.Handlers.Unmarshal.Remove(ec2query.UnmarshalHandler)
- req.Handlers.Unmarshal.PushBackNamed(protocol.UnmarshalDiscardBodyHandler)
+ req.Handlers.Unmarshal.Swap(ec2query.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
return
}
@@ -1996,7 +2557,7 @@ const opCancelImportTask = "CancelImportTask"
// CancelImportTaskRequest generates a "aws/request.Request" representing the
// client's request for the CancelImportTask operation. The "output" return
// value will be populated with the request's response once the request completes
-// successfuly.
+// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
@@ -2070,7 +2631,7 @@ const opCancelReservedInstancesListing = "CancelReservedInstancesListing"
// CancelReservedInstancesListingRequest generates a "aws/request.Request" representing the
// client's request for the CancelReservedInstancesListing operation. The "output" return
// value will be populated with the request's response once the request completes
-// successfuly.
+// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
@@ -2148,7 +2709,7 @@ const opCancelSpotFleetRequests = "CancelSpotFleetRequests"
// CancelSpotFleetRequestsRequest generates a "aws/request.Request" representing the
// client's request for the CancelSpotFleetRequests operation. The "output" return
// value will be populated with the request's response once the request completes
-// successfuly.
+// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
@@ -2229,7 +2790,7 @@ const opCancelSpotInstanceRequests = "CancelSpotInstanceRequests"
// CancelSpotInstanceRequestsRequest generates a "aws/request.Request" representing the
// client's request for the CancelSpotInstanceRequests operation. The "output" return
// value will be populated with the request's response once the request completes
-// successfuly.
+// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
@@ -2306,7 +2867,7 @@ const opConfirmProductInstance = "ConfirmProductInstance"
// ConfirmProductInstanceRequest generates a "aws/request.Request" representing the
// client's request for the ConfirmProductInstance operation. The "output" return
// value will be populated with the request's response once the request completes
-// successfuly.
+// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
@@ -2382,7 +2943,7 @@ const opCopyFpgaImage = "CopyFpgaImage"
// CopyFpgaImageRequest generates a "aws/request.Request" representing the
// client's request for the CopyFpgaImage operation. The "output" return
// value will be populated with the request's response once the request completes
-// successfuly.
+// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
@@ -2456,7 +3017,7 @@ const opCopyImage = "CopyImage"
// CopyImageRequest generates a "aws/request.Request" representing the
// client's request for the CopyImage operation. The "output" return
// value will be populated with the request's response once the request completes
-// successfuly.
+// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
@@ -2499,6 +3060,11 @@ func (c *EC2) CopyImageRequest(input *CopyImageInput) (req *request.Request, out
// region. You specify the destination region by using its endpoint when making
// the request.
//
+// Copies of encrypted backing snapshots for the AMI are encrypted. Copies of
+// unencrypted backing snapshots remain unencrypted, unless you set Encrypted
+// during the copy operation. You cannot create an unencrypted copy of an encrypted
+// backing snapshot.
+//
// For more information about the prerequisites and limits when copying an AMI,
// see Copying an AMI (http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/CopyingAMIs.html)
// in the Amazon Elastic Compute Cloud User Guide.
@@ -2536,7 +3102,7 @@ const opCopySnapshot = "CopySnapshot"
// CopySnapshotRequest generates a "aws/request.Request" representing the
// client's request for the CopySnapshot operation. The "output" return
// value will be populated with the request's response once the request completes
-// successfuly.
+// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
@@ -2590,7 +3156,7 @@ func (c *EC2) CopySnapshotRequest(input *CopySnapshotInput) (req *request.Reques
// To copy an encrypted snapshot that has been shared from another account,
// you must have permissions for the CMK used to encrypt the snapshot.
//
-// Snapshots created by the CopySnapshot action have an arbitrary volume ID
+// Snapshots created by copying another snapshot have an arbitrary volume ID
// that should not be used for any purpose.
//
// For more information, see Copying an Amazon EBS Snapshot (http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ebs-copy-snapshot.html)
@@ -2624,12 +3190,262 @@ func (c *EC2) CopySnapshotWithContext(ctx aws.Context, input *CopySnapshotInput,
return out, req.Send()
}
+const opCreateCapacityReservation = "CreateCapacityReservation"
+
+// CreateCapacityReservationRequest generates a "aws/request.Request" representing the
+// client's request for the CreateCapacityReservation operation. The "output" return
+// value will be populated with the request's response once the request completes
+// successfully.
+//
+// Use "Send" method on the returned Request to send the API call to the service.
+// the "output" return value is not valid until after Send returns without error.
+//
+// See CreateCapacityReservation for more information on using the CreateCapacityReservation
+// API call, and error handling.
+//
+// This method is useful when you want to inject custom logic or configuration
+// into the SDK's request lifecycle. Such as custom headers, or retry logic.
+//
+//
+// // Example sending a request using the CreateCapacityReservationRequest method.
+// req, resp := client.CreateCapacityReservationRequest(params)
+//
+// err := req.Send()
+// if err == nil { // resp is now filled
+// fmt.Println(resp)
+// }
+//
+// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/CreateCapacityReservation
+func (c *EC2) CreateCapacityReservationRequest(input *CreateCapacityReservationInput) (req *request.Request, output *CreateCapacityReservationOutput) {
+ op := &request.Operation{
+ Name: opCreateCapacityReservation,
+ HTTPMethod: "POST",
+ HTTPPath: "/",
+ }
+
+ if input == nil {
+ input = &CreateCapacityReservationInput{}
+ }
+
+ output = &CreateCapacityReservationOutput{}
+ req = c.newRequest(op, input, output)
+ return
+}
+
+// CreateCapacityReservation API operation for Amazon Elastic Compute Cloud.
+//
+// Creates a new Capacity Reservation with the specified attributes.
+//
+// Capacity Reservations enable you to reserve capacity for your Amazon EC2
+// instances in a specific Availability Zone for any duration. This gives you
+// the flexibility to selectively add capacity reservations and still get the
+// Regional RI discounts for that usage. By creating Capacity Reservations,
+// you ensure that you always have access to Amazon EC2 capacity when you need
+// it, for as long as you need it. For more information, see Capacity Reservations
+// (http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-capacity-reservations.html)
+// in the Amazon Elastic Compute Cloud User Guide.
+//
+// Your request to create a Capacity Reservation could fail if Amazon EC2 does
+// not have sufficient capacity to fulfill the request. If your request fails
+// due to Amazon EC2 capacity constraints, either try again at a later time,
+// try in a different Availability Zone, or request a smaller capacity reservation.
+// If your application is flexible across instance types and sizes, try to create
+// a Capacity Reservation with different instance attributes.
+//
+// Your request could also fail if the requested quantity exceeds your On-Demand
+// Instance limit for the selected instance type. If your request fails due
+// to limit constraints, increase your On-Demand Instance limit for the required
+// instance type and try again. For more information about increasing your instance
+// limits, see Amazon EC2 Service Limits (http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-resource-limits.html)
+// in the Amazon Elastic Compute Cloud User Guide.
+//
+// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
+// with awserr.Error's Code and Message methods to get detailed information about
+// the error.
+//
+// See the AWS API reference guide for Amazon Elastic Compute Cloud's
+// API operation CreateCapacityReservation for usage and error information.
+// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/CreateCapacityReservation
+func (c *EC2) CreateCapacityReservation(input *CreateCapacityReservationInput) (*CreateCapacityReservationOutput, error) {
+ req, out := c.CreateCapacityReservationRequest(input)
+ return out, req.Send()
+}
+
+// CreateCapacityReservationWithContext is the same as CreateCapacityReservation with the addition of
+// the ability to pass a context and additional request options.
+//
+// See CreateCapacityReservation for details on how to use this API operation.
+//
+// The context must be non-nil and will be used for request cancellation. If
+// the context is nil a panic will occur. In the future the SDK may create
+// sub-contexts for http.Requests. See https://golang.org/pkg/context/
+// for more information on using Contexts.
+func (c *EC2) CreateCapacityReservationWithContext(ctx aws.Context, input *CreateCapacityReservationInput, opts ...request.Option) (*CreateCapacityReservationOutput, error) {
+ req, out := c.CreateCapacityReservationRequest(input)
+ req.SetContext(ctx)
+ req.ApplyOptions(opts...)
+ return out, req.Send()
+}
+
+const opCreateClientVpnEndpoint = "CreateClientVpnEndpoint"
+
+// CreateClientVpnEndpointRequest generates a "aws/request.Request" representing the
+// client's request for the CreateClientVpnEndpoint operation. The "output" return
+// value will be populated with the request's response once the request completes
+// successfully.
+//
+// Use "Send" method on the returned Request to send the API call to the service.
+// the "output" return value is not valid until after Send returns without error.
+//
+// See CreateClientVpnEndpoint for more information on using the CreateClientVpnEndpoint
+// API call, and error handling.
+//
+// This method is useful when you want to inject custom logic or configuration
+// into the SDK's request lifecycle. Such as custom headers, or retry logic.
+//
+//
+// // Example sending a request using the CreateClientVpnEndpointRequest method.
+// req, resp := client.CreateClientVpnEndpointRequest(params)
+//
+// err := req.Send()
+// if err == nil { // resp is now filled
+// fmt.Println(resp)
+// }
+//
+// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/CreateClientVpnEndpoint
+func (c *EC2) CreateClientVpnEndpointRequest(input *CreateClientVpnEndpointInput) (req *request.Request, output *CreateClientVpnEndpointOutput) {
+ op := &request.Operation{
+ Name: opCreateClientVpnEndpoint,
+ HTTPMethod: "POST",
+ HTTPPath: "/",
+ }
+
+ if input == nil {
+ input = &CreateClientVpnEndpointInput{}
+ }
+
+ output = &CreateClientVpnEndpointOutput{}
+ req = c.newRequest(op, input, output)
+ return
+}
+
+// CreateClientVpnEndpoint API operation for Amazon Elastic Compute Cloud.
+//
+// Creates a Client VPN endpoint. A Client VPN endpoint is the resource you
+// create and configure to enable and manage client VPN sessions. It is the
+// destination endpoint at which all client VPN sessions are terminated.
+//
+// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
+// with awserr.Error's Code and Message methods to get detailed information about
+// the error.
+//
+// See the AWS API reference guide for Amazon Elastic Compute Cloud's
+// API operation CreateClientVpnEndpoint for usage and error information.
+// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/CreateClientVpnEndpoint
+func (c *EC2) CreateClientVpnEndpoint(input *CreateClientVpnEndpointInput) (*CreateClientVpnEndpointOutput, error) {
+ req, out := c.CreateClientVpnEndpointRequest(input)
+ return out, req.Send()
+}
+
+// CreateClientVpnEndpointWithContext is the same as CreateClientVpnEndpoint with the addition of
+// the ability to pass a context and additional request options.
+//
+// See CreateClientVpnEndpoint for details on how to use this API operation.
+//
+// The context must be non-nil and will be used for request cancellation. If
+// the context is nil a panic will occur. In the future the SDK may create
+// sub-contexts for http.Requests. See https://golang.org/pkg/context/
+// for more information on using Contexts.
+func (c *EC2) CreateClientVpnEndpointWithContext(ctx aws.Context, input *CreateClientVpnEndpointInput, opts ...request.Option) (*CreateClientVpnEndpointOutput, error) {
+ req, out := c.CreateClientVpnEndpointRequest(input)
+ req.SetContext(ctx)
+ req.ApplyOptions(opts...)
+ return out, req.Send()
+}
+
+const opCreateClientVpnRoute = "CreateClientVpnRoute"
+
+// CreateClientVpnRouteRequest generates a "aws/request.Request" representing the
+// client's request for the CreateClientVpnRoute operation. The "output" return
+// value will be populated with the request's response once the request completes
+// successfully.
+//
+// Use "Send" method on the returned Request to send the API call to the service.
+// the "output" return value is not valid until after Send returns without error.
+//
+// See CreateClientVpnRoute for more information on using the CreateClientVpnRoute
+// API call, and error handling.
+//
+// This method is useful when you want to inject custom logic or configuration
+// into the SDK's request lifecycle. Such as custom headers, or retry logic.
+//
+//
+// // Example sending a request using the CreateClientVpnRouteRequest method.
+// req, resp := client.CreateClientVpnRouteRequest(params)
+//
+// err := req.Send()
+// if err == nil { // resp is now filled
+// fmt.Println(resp)
+// }
+//
+// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/CreateClientVpnRoute
+func (c *EC2) CreateClientVpnRouteRequest(input *CreateClientVpnRouteInput) (req *request.Request, output *CreateClientVpnRouteOutput) {
+ op := &request.Operation{
+ Name: opCreateClientVpnRoute,
+ HTTPMethod: "POST",
+ HTTPPath: "/",
+ }
+
+ if input == nil {
+ input = &CreateClientVpnRouteInput{}
+ }
+
+ output = &CreateClientVpnRouteOutput{}
+ req = c.newRequest(op, input, output)
+ return
+}
+
+// CreateClientVpnRoute API operation for Amazon Elastic Compute Cloud.
+//
+// Adds a route to a network to a Client VPN endpoint. Each Client VPN endpoint
+// has a route table that describes the available destination network routes.
+// Each route in the route table specifies the path for traffic to specific resources
+// or networks.
+//
+// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
+// with awserr.Error's Code and Message methods to get detailed information about
+// the error.
+//
+// See the AWS API reference guide for Amazon Elastic Compute Cloud's
+// API operation CreateClientVpnRoute for usage and error information.
+// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/CreateClientVpnRoute
+func (c *EC2) CreateClientVpnRoute(input *CreateClientVpnRouteInput) (*CreateClientVpnRouteOutput, error) {
+ req, out := c.CreateClientVpnRouteRequest(input)
+ return out, req.Send()
+}
+
+// CreateClientVpnRouteWithContext is the same as CreateClientVpnRoute with the addition of
+// the ability to pass a context and additional request options.
+//
+// See CreateClientVpnRoute for details on how to use this API operation.
+//
+// The context must be non-nil and will be used for request cancellation. If
+// the context is nil a panic will occur. In the future the SDK may create
+// sub-contexts for http.Requests. See https://golang.org/pkg/context/
+// for more information on using Contexts.
+func (c *EC2) CreateClientVpnRouteWithContext(ctx aws.Context, input *CreateClientVpnRouteInput, opts ...request.Option) (*CreateClientVpnRouteOutput, error) {
+ req, out := c.CreateClientVpnRouteRequest(input)
+ req.SetContext(ctx)
+ req.ApplyOptions(opts...)
+ return out, req.Send()
+}
+
const opCreateCustomerGateway = "CreateCustomerGateway"
// CreateCustomerGatewayRequest generates a "aws/request.Request" representing the
// client's request for the CreateCustomerGateway operation. The "output" return
// value will be populated with the request's response once the request completes
-// successfuly.
+// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
@@ -2727,7 +3543,7 @@ const opCreateDefaultSubnet = "CreateDefaultSubnet"
// CreateDefaultSubnetRequest generates a "aws/request.Request" representing the
// client's request for the CreateDefaultSubnet operation. The "output" return
// value will be populated with the request's response once the request completes
-// successfuly.
+// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
@@ -2805,7 +3621,7 @@ const opCreateDefaultVpc = "CreateDefaultVpc"
// CreateDefaultVpcRequest generates a "aws/request.Request" representing the
// client's request for the CreateDefaultVpc operation. The "output" return
// value will be populated with the request's response once the request completes
-// successfuly.
+// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
@@ -2850,12 +3666,12 @@ func (c *EC2) CreateDefaultVpcRequest(input *CreateDefaultVpcInput) (req *reques
// in the Amazon Virtual Private Cloud User Guide. You cannot specify the components
// of the default VPC yourself.
//
-// You can create a default VPC if you deleted your previous default VPC. You
-// cannot have more than one default VPC per region.
+// If you deleted your previous default VPC, you can create a default VPC. You
+// cannot have more than one default VPC per Region.
//
// If your account supports EC2-Classic, you cannot use this action to create
-// a default VPC in a region that supports EC2-Classic. If you want a default
-// VPC in a region that supports EC2-Classic, see "I really want a default VPC
+// a default VPC in a Region that supports EC2-Classic. If you want a default
+// VPC in a Region that supports EC2-Classic, see "I really want a default VPC
// for my existing EC2 account. Is that possible?" in the Default VPCs FAQ (http://aws.amazon.com/vpc/faqs/#Default_VPCs).
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
@@ -2891,7 +3707,7 @@ const opCreateDhcpOptions = "CreateDhcpOptions"
// CreateDhcpOptionsRequest generates a "aws/request.Request" representing the
// client's request for the CreateDhcpOptions operation. The "output" return
// value will be populated with the request's response once the request completes
-// successfuly.
+// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
@@ -2939,9 +3755,9 @@ func (c *EC2) CreateDhcpOptionsRequest(input *CreateDhcpOptionsInput) (req *requ
// * domain-name-servers - The IP addresses of up to four domain name servers,
// or AmazonProvidedDNS. The default DHCP option set specifies AmazonProvidedDNS.
// If specifying more than one domain name server, specify the IP addresses
-// in a single parameter, separated by commas. If you want your instance
-// to receive a custom DNS hostname as specified in domain-name, you must
-// set domain-name-servers to a custom DNS server.
+// in a single parameter, separated by commas. ITo have your instance to
+// receive a custom DNS hostname as specified in domain-name, you must set
+// domain-name-servers to a custom DNS server.
//
// * domain-name - If you're using AmazonProvidedDNS in us-east-1, specify
// ec2.internal. If you're using AmazonProvidedDNS in another region, specify
@@ -2965,10 +3781,9 @@ func (c *EC2) CreateDhcpOptionsRequest(input *CreateDhcpOptionsInput) (req *requ
//
// Your VPC automatically starts out with a set of DHCP options that includes
// only a DNS server that we provide (AmazonProvidedDNS). If you create a set
-// of options, and if your VPC has an Internet gateway, make sure to set the
+// of options, and if your VPC has an internet gateway, make sure to set the
// domain-name-servers option either to AmazonProvidedDNS or to a domain name
-// server of your choice. For more information about DHCP options, see DHCP
-// Options Sets (http://docs.aws.amazon.com/AmazonVPC/latest/UserGuide/VPC_DHCP_Options.html)
+// server of your choice. For more information, see DHCP Options Sets (http://docs.aws.amazon.com/AmazonVPC/latest/UserGuide/VPC_DHCP_Options.html)
// in the Amazon Virtual Private Cloud User Guide.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
@@ -3004,7 +3819,7 @@ const opCreateEgressOnlyInternetGateway = "CreateEgressOnlyInternetGateway"
// CreateEgressOnlyInternetGatewayRequest generates a "aws/request.Request" representing the
// client's request for the CreateEgressOnlyInternetGateway operation. The "output" return
// value will be populated with the request's response once the request completes
-// successfuly.
+// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
@@ -3043,9 +3858,9 @@ func (c *EC2) CreateEgressOnlyInternetGatewayRequest(input *CreateEgressOnlyInte
// CreateEgressOnlyInternetGateway API operation for Amazon Elastic Compute Cloud.
//
-// [IPv6 only] Creates an egress-only Internet gateway for your VPC. An egress-only
-// Internet gateway is used to enable outbound communication over IPv6 from
-// instances in your VPC to the Internet, and prevents hosts outside of your
+// [IPv6 only] Creates an egress-only internet gateway for your VPC. An egress-only
+// internet gateway is used to enable outbound communication over IPv6 from
+// instances in your VPC to the internet, and prevents hosts outside of your
// VPC from initiating an IPv6 connection with your instance.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
@@ -3081,7 +3896,7 @@ const opCreateFleet = "CreateFleet"
// CreateFleetRequest generates a "aws/request.Request" representing the
// client's request for the CreateFleet operation. The "output" return
// value will be populated with the request's response once the request completes
-// successfuly.
+// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
@@ -3161,7 +3976,7 @@ const opCreateFlowLogs = "CreateFlowLogs"
// CreateFlowLogsRequest generates a "aws/request.Request" representing the
// client's request for the CreateFlowLogs operation. The "output" return
// value will be populated with the request's response once the request completes
-// successfuly.
+// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
@@ -3200,16 +4015,19 @@ func (c *EC2) CreateFlowLogsRequest(input *CreateFlowLogsInput) (req *request.Re
// CreateFlowLogs API operation for Amazon Elastic Compute Cloud.
//
-// Creates one or more flow logs to capture IP traffic for a specific network
-// interface, subnet, or VPC. Flow logs are delivered to a specified log group
-// in Amazon CloudWatch Logs. If you specify a VPC or subnet in the request,
-// a log stream is created in CloudWatch Logs for each network interface in
-// the subnet or VPC. Log streams can include information about accepted and
-// rejected traffic to a network interface. You can view the data in your log
-// streams using Amazon CloudWatch Logs.
+// Creates one or more flow logs to capture information about IP traffic for
+// a specific network interface, subnet, or VPC.
//
-// In your request, you must also specify an IAM role that has permission to
-// publish logs to CloudWatch Logs.
+// Flow log data for a monitored network interface is recorded as flow log records,
+// which are log events consisting of fields that describe the traffic flow.
+// For more information, see Flow Log Records (http://docs.aws.amazon.com/AmazonVPC/latest/UserGuide/flow-logs.html#flow-log-records)
+// in the Amazon Virtual Private Cloud User Guide.
+//
+// When publishing to CloudWatch Logs, flow log records are published to a log
+// group, and each network interface has a unique log stream in the log group.
+// When publishing to Amazon S3, flow log records for all of the monitored network
+// interfaces are published to a single log file object that is stored in the
+// specified bucket.
//
// For more information, see VPC Flow Logs (http://docs.aws.amazon.com/AmazonVPC/latest/UserGuide/flow-logs.html)
// in the Amazon Virtual Private Cloud User Guide.
@@ -3247,7 +4065,7 @@ const opCreateFpgaImage = "CreateFpgaImage"
// CreateFpgaImageRequest generates a "aws/request.Request" representing the
// client's request for the CreateFpgaImage operation. The "output" return
// value will be populated with the request's response once the request completes
-// successfuly.
+// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
@@ -3328,7 +4146,7 @@ const opCreateImage = "CreateImage"
// CreateImageRequest generates a "aws/request.Request" representing the
// client's request for the CreateImage operation. The "output" return
// value will be populated with the request's response once the request completes
-// successfuly.
+// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
@@ -3411,7 +4229,7 @@ const opCreateInstanceExportTask = "CreateInstanceExportTask"
// CreateInstanceExportTaskRequest generates a "aws/request.Request" representing the
// client's request for the CreateInstanceExportTask operation. The "output" return
// value will be populated with the request's response once the request completes
-// successfuly.
+// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
@@ -3490,7 +4308,7 @@ const opCreateInternetGateway = "CreateInternetGateway"
// CreateInternetGatewayRequest generates a "aws/request.Request" representing the
// client's request for the CreateInternetGateway operation. The "output" return
// value will be populated with the request's response once the request completes
-// successfuly.
+// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
@@ -3529,10 +4347,10 @@ func (c *EC2) CreateInternetGatewayRequest(input *CreateInternetGatewayInput) (r
// CreateInternetGateway API operation for Amazon Elastic Compute Cloud.
//
-// Creates an Internet gateway for use with a VPC. After creating the Internet
+// Creates an internet gateway for use with a VPC. After creating the internet
// gateway, you attach it to a VPC using AttachInternetGateway.
//
-// For more information about your VPC and Internet gateway, see the Amazon
+// For more information about your VPC and internet gateway, see the Amazon
// Virtual Private Cloud User Guide (http://docs.aws.amazon.com/AmazonVPC/latest/UserGuide/).
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
@@ -3568,7 +4386,7 @@ const opCreateKeyPair = "CreateKeyPair"
// CreateKeyPairRequest generates a "aws/request.Request" representing the
// client's request for the CreateKeyPair operation. The "output" return
// value will be populated with the request's response once the request completes
-// successfuly.
+// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
@@ -3654,7 +4472,7 @@ const opCreateLaunchTemplate = "CreateLaunchTemplate"
// CreateLaunchTemplateRequest generates a "aws/request.Request" representing the
// client's request for the CreateLaunchTemplate operation. The "output" return
// value will be populated with the request's response once the request completes
-// successfuly.
+// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
@@ -3730,7 +4548,7 @@ const opCreateLaunchTemplateVersion = "CreateLaunchTemplateVersion"
// CreateLaunchTemplateVersionRequest generates a "aws/request.Request" representing the
// client's request for the CreateLaunchTemplateVersion operation. The "output" return
// value will be populated with the request's response once the request completes
-// successfuly.
+// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
@@ -3808,7 +4626,7 @@ const opCreateNatGateway = "CreateNatGateway"
// CreateNatGatewayRequest generates a "aws/request.Request" representing the
// client's request for the CreateNatGateway operation. The "output" return
// value will be populated with the request's response once the request completes
-// successfuly.
+// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
@@ -3888,7 +4706,7 @@ const opCreateNetworkAcl = "CreateNetworkAcl"
// CreateNetworkAclRequest generates a "aws/request.Request" representing the
// client's request for the CreateNetworkAcl operation. The "output" return
// value will be populated with the request's response once the request completes
-// successfuly.
+// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
@@ -3930,7 +4748,7 @@ func (c *EC2) CreateNetworkAclRequest(input *CreateNetworkAclInput) (req *reques
// Creates a network ACL in a VPC. Network ACLs provide an optional layer of
// security (in addition to security groups) for the instances in your VPC.
//
-// For more information about network ACLs, see Network ACLs (http://docs.aws.amazon.com/AmazonVPC/latest/UserGuide/VPC_ACLs.html)
+// For more information, see Network ACLs (http://docs.aws.amazon.com/AmazonVPC/latest/UserGuide/VPC_ACLs.html)
// in the Amazon Virtual Private Cloud User Guide.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
@@ -3966,7 +4784,7 @@ const opCreateNetworkAclEntry = "CreateNetworkAclEntry"
// CreateNetworkAclEntryRequest generates a "aws/request.Request" representing the
// client's request for the CreateNetworkAclEntry operation. The "output" return
// value will be populated with the request's response once the request completes
-// successfuly.
+// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
@@ -4000,8 +4818,7 @@ func (c *EC2) CreateNetworkAclEntryRequest(input *CreateNetworkAclEntryInput) (r
output = &CreateNetworkAclEntryOutput{}
req = c.newRequest(op, input, output)
- req.Handlers.Unmarshal.Remove(ec2query.UnmarshalHandler)
- req.Handlers.Unmarshal.PushBackNamed(protocol.UnmarshalDiscardBodyHandler)
+ req.Handlers.Unmarshal.Swap(ec2query.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
return
}
@@ -4058,7 +4875,7 @@ const opCreateNetworkInterface = "CreateNetworkInterface"
// CreateNetworkInterfaceRequest generates a "aws/request.Request" representing the
// client's request for the CreateNetworkInterface operation. The "output" return
// value will be populated with the request's response once the request completes
-// successfuly.
+// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
@@ -4136,7 +4953,7 @@ const opCreateNetworkInterfacePermission = "CreateNetworkInterfacePermission"
// CreateNetworkInterfacePermissionRequest generates a "aws/request.Request" representing the
// client's request for the CreateNetworkInterfacePermission operation. The "output" return
// value will be populated with the request's response once the request completes
-// successfuly.
+// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
@@ -4214,7 +5031,7 @@ const opCreatePlacementGroup = "CreatePlacementGroup"
// CreatePlacementGroupRequest generates a "aws/request.Request" representing the
// client's request for the CreatePlacementGroup operation. The "output" return
// value will be populated with the request's response once the request completes
-// successfuly.
+// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
@@ -4248,8 +5065,7 @@ func (c *EC2) CreatePlacementGroupRequest(input *CreatePlacementGroupInput) (req
output = &CreatePlacementGroupOutput{}
req = c.newRequest(op, input, output)
- req.Handlers.Unmarshal.Remove(ec2query.UnmarshalHandler)
- req.Handlers.Unmarshal.PushBackNamed(protocol.UnmarshalDiscardBodyHandler)
+ req.Handlers.Unmarshal.Swap(ec2query.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
return
}
@@ -4260,7 +5076,10 @@ func (c *EC2) CreatePlacementGroupRequest(input *CreatePlacementGroupInput) (req
//
// A cluster placement group is a logical grouping of instances within a single
// Availability Zone that benefit from low network latency, high network throughput.
-// A spread placement group places instances on distinct hardware.
+// A spread placement group places instances on distinct hardware. A partition
+// placement group places groups of instances in different partitions, where
+// instances in one partition do not share the same hardware with instances
+// in another partition.
//
// For more information, see Placement Groups (http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/placement-groups.html)
// in the Amazon Elastic Compute Cloud User Guide.
@@ -4298,7 +5117,7 @@ const opCreateReservedInstancesListing = "CreateReservedInstancesListing"
// CreateReservedInstancesListingRequest generates a "aws/request.Request" representing the
// client's request for the CreateReservedInstancesListing operation. The "output" return
// value will be populated with the request's response once the request completes
-// successfuly.
+// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
@@ -4395,7 +5214,7 @@ const opCreateRoute = "CreateRoute"
// CreateRouteRequest generates a "aws/request.Request" representing the
// client's request for the CreateRoute operation. The "output" return
// value will be populated with the request's response once the request completes
-// successfuly.
+// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
@@ -4436,9 +5255,9 @@ func (c *EC2) CreateRouteRequest(input *CreateRouteInput) (req *request.Request,
//
// Creates a route in a route table within a VPC.
//
-// You must specify one of the following targets: Internet gateway or virtual
+// You must specify one of the following targets: internet gateway or virtual
// private gateway, NAT instance, NAT gateway, VPC peering connection, network
-// interface, or egress-only Internet gateway.
+// interface, or egress-only internet gateway.
//
// When determining how to route traffic, we use the route with the most specific
// match. For example, traffic is destined for the IPv4 address 192.0.2.3, and
@@ -4488,7 +5307,7 @@ const opCreateRouteTable = "CreateRouteTable"
// CreateRouteTableRequest generates a "aws/request.Request" representing the
// client's request for the CreateRouteTable operation. The "output" return
// value will be populated with the request's response once the request completes
-// successfuly.
+// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
@@ -4530,7 +5349,7 @@ func (c *EC2) CreateRouteTableRequest(input *CreateRouteTableInput) (req *reques
// Creates a route table for the specified VPC. After you create a route table,
// you can add routes and associate the table with a subnet.
//
-// For more information about route tables, see Route Tables (http://docs.aws.amazon.com/AmazonVPC/latest/UserGuide/VPC_Route_Tables.html)
+// For more information, see Route Tables (http://docs.aws.amazon.com/AmazonVPC/latest/UserGuide/VPC_Route_Tables.html)
// in the Amazon Virtual Private Cloud User Guide.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
@@ -4566,7 +5385,7 @@ const opCreateSecurityGroup = "CreateSecurityGroup"
// CreateSecurityGroupRequest generates a "aws/request.Request" representing the
// client's request for the CreateSecurityGroup operation. The "output" return
// value will be populated with the request's response once the request completes
-// successfuly.
+// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
@@ -4666,7 +5485,7 @@ const opCreateSnapshot = "CreateSnapshot"
// CreateSnapshotRequest generates a "aws/request.Request" representing the
// client's request for the CreateSnapshot operation. The "output" return
// value will be populated with the request's response once the request completes
-// successfuly.
+// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
@@ -4731,7 +5550,8 @@ func (c *EC2) CreateSnapshotRequest(input *CreateSnapshotInput) (req *request.Re
// protected.
//
// You can tag your snapshots during creation. For more information, see Tagging
-// Your Amazon EC2 Resources (http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Using_Tags.html).
+// Your Amazon EC2 Resources (http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Using_Tags.html)
+// in the Amazon Elastic Compute Cloud User Guide.
//
// For more information, see Amazon Elastic Block Store (http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/AmazonEBS.html)
// and Amazon EBS Encryption (http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSEncryption.html)
@@ -4770,7 +5590,7 @@ const opCreateSpotDatafeedSubscription = "CreateSpotDatafeedSubscription"
// CreateSpotDatafeedSubscriptionRequest generates a "aws/request.Request" representing the
// client's request for the CreateSpotDatafeedSubscription operation. The "output" return
// value will be populated with the request's response once the request completes
-// successfuly.
+// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
@@ -4847,7 +5667,7 @@ const opCreateSubnet = "CreateSubnet"
// CreateSubnetRequest generates a "aws/request.Request" representing the
// client's request for the CreateSubnet operation. The "output" return
// value will be populated with the request's response once the request completes
-// successfuly.
+// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
@@ -4888,13 +5708,13 @@ func (c *EC2) CreateSubnetRequest(input *CreateSubnetInput) (req *request.Reques
//
// Creates a subnet in an existing VPC.
//
-// When you create each subnet, you provide the VPC ID and the IPv4 CIDR block
-// you want for the subnet. After you create a subnet, you can't change its
-// CIDR block. The size of the subnet's IPv4 CIDR block can be the same as a
-// VPC's IPv4 CIDR block, or a subset of a VPC's IPv4 CIDR block. If you create
-// more than one subnet in a VPC, the subnets' CIDR blocks must not overlap.
-// The smallest IPv4 subnet (and VPC) you can create uses a /28 netmask (16
-// IPv4 addresses), and the largest uses a /16 netmask (65,536 IPv4 addresses).
+// When you create each subnet, you provide the VPC ID and IPv4 CIDR block for
+// the subnet. After you create a subnet, you can't change its CIDR block. The
+// size of the subnet's IPv4 CIDR block can be the same as a VPC's IPv4 CIDR
+// block, or a subset of a VPC's IPv4 CIDR block. If you create more than one
+// subnet in a VPC, the subnets' CIDR blocks must not overlap. The smallest
+// IPv4 subnet (and VPC) you can create uses a /28 netmask (16 IPv4 addresses),
+// and the largest uses a /16 netmask (65,536 IPv4 addresses).
//
// If you've associated an IPv6 CIDR block with your VPC, you can create a subnet
// with an IPv6 CIDR block that uses a /64 prefix length.
@@ -4947,7 +5767,7 @@ const opCreateTags = "CreateTags"
// CreateTagsRequest generates a "aws/request.Request" representing the
// client's request for the CreateTags operation. The "output" return
// value will be populated with the request's response once the request completes
-// successfuly.
+// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
@@ -4981,8 +5801,7 @@ func (c *EC2) CreateTagsRequest(input *CreateTagsInput) (req *request.Request, o
output = &CreateTagsOutput{}
req = c.newRequest(op, input, output)
- req.Handlers.Unmarshal.Remove(ec2query.UnmarshalHandler)
- req.Handlers.Unmarshal.PushBackNamed(protocol.UnmarshalDiscardBodyHandler)
+ req.Handlers.Unmarshal.Swap(ec2query.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
return
}
@@ -5026,12 +5845,334 @@ func (c *EC2) CreateTagsWithContext(ctx aws.Context, input *CreateTagsInput, opt
return out, req.Send()
}
+const opCreateTransitGateway = "CreateTransitGateway"
+
+// CreateTransitGatewayRequest generates a "aws/request.Request" representing the
+// client's request for the CreateTransitGateway operation. The "output" return
+// value will be populated with the request's response once the request completes
+// successfully.
+//
+// Use "Send" method on the returned Request to send the API call to the service.
+// the "output" return value is not valid until after Send returns without error.
+//
+// See CreateTransitGateway for more information on using the CreateTransitGateway
+// API call, and error handling.
+//
+// This method is useful when you want to inject custom logic or configuration
+// into the SDK's request lifecycle. Such as custom headers, or retry logic.
+//
+//
+// // Example sending a request using the CreateTransitGatewayRequest method.
+// req, resp := client.CreateTransitGatewayRequest(params)
+//
+// err := req.Send()
+// if err == nil { // resp is now filled
+// fmt.Println(resp)
+// }
+//
+// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/CreateTransitGateway
+func (c *EC2) CreateTransitGatewayRequest(input *CreateTransitGatewayInput) (req *request.Request, output *CreateTransitGatewayOutput) {
+ op := &request.Operation{
+ Name: opCreateTransitGateway,
+ HTTPMethod: "POST",
+ HTTPPath: "/",
+ }
+
+ if input == nil {
+ input = &CreateTransitGatewayInput{}
+ }
+
+ output = &CreateTransitGatewayOutput{}
+ req = c.newRequest(op, input, output)
+ return
+}
+
+// CreateTransitGateway API operation for Amazon Elastic Compute Cloud.
+//
+// Creates a transit gateway.
+//
+// You can use a transit gateway to interconnect your virtual private clouds
+// (VPC) and on-premises networks. After the transit gateway enters the available
+// state, you can attach your VPCs and VPN connections to the transit gateway.
+//
+// To attach your VPCs, use CreateTransitGatewayVpcAttachment.
+//
+// To attach a VPN connection, use CreateCustomerGateway to create a customer
+// gateway and specify the ID of the customer gateway and the ID of the transit
+// gateway in a call to CreateVpnConnection.
+//
+// When you create a transit gateway, we create a default transit gateway route
+// table and use it as the default association route table and the default propagation
+// route table. You can use CreateTransitGatewayRouteTable to create additional
+// transit gateway route tables. If you disable automatic route propagation,
+// we do not create a default transit gateway route table. You can use EnableTransitGatewayRouteTablePropagation
+// to propagate routes from a resource attachment to a transit gateway route
+// table. If you disable automatic associations, you can use AssociateTransitGatewayRouteTable
+// to associate a resource attachment with a transit gateway route table.
+//
+// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
+// with awserr.Error's Code and Message methods to get detailed information about
+// the error.
+//
+// See the AWS API reference guide for Amazon Elastic Compute Cloud's
+// API operation CreateTransitGateway for usage and error information.
+// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/CreateTransitGateway
+func (c *EC2) CreateTransitGateway(input *CreateTransitGatewayInput) (*CreateTransitGatewayOutput, error) {
+ req, out := c.CreateTransitGatewayRequest(input)
+ return out, req.Send()
+}
+
+// CreateTransitGatewayWithContext is the same as CreateTransitGateway with the addition of
+// the ability to pass a context and additional request options.
+//
+// See CreateTransitGateway for details on how to use this API operation.
+//
+// The context must be non-nil and will be used for request cancellation. If
+// the context is nil a panic will occur. In the future the SDK may create
+// sub-contexts for http.Requests. See https://golang.org/pkg/context/
+// for more information on using Contexts.
+func (c *EC2) CreateTransitGatewayWithContext(ctx aws.Context, input *CreateTransitGatewayInput, opts ...request.Option) (*CreateTransitGatewayOutput, error) {
+ req, out := c.CreateTransitGatewayRequest(input)
+ req.SetContext(ctx)
+ req.ApplyOptions(opts...)
+ return out, req.Send()
+}
+
+const opCreateTransitGatewayRoute = "CreateTransitGatewayRoute"
+
+// CreateTransitGatewayRouteRequest generates a "aws/request.Request" representing the
+// client's request for the CreateTransitGatewayRoute operation. The "output" return
+// value will be populated with the request's response once the request completes
+// successfully.
+//
+// Use "Send" method on the returned Request to send the API call to the service.
+// the "output" return value is not valid until after Send returns without error.
+//
+// See CreateTransitGatewayRoute for more information on using the CreateTransitGatewayRoute
+// API call, and error handling.
+//
+// This method is useful when you want to inject custom logic or configuration
+// into the SDK's request lifecycle. Such as custom headers, or retry logic.
+//
+//
+// // Example sending a request using the CreateTransitGatewayRouteRequest method.
+// req, resp := client.CreateTransitGatewayRouteRequest(params)
+//
+// err := req.Send()
+// if err == nil { // resp is now filled
+// fmt.Println(resp)
+// }
+//
+// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/CreateTransitGatewayRoute
+func (c *EC2) CreateTransitGatewayRouteRequest(input *CreateTransitGatewayRouteInput) (req *request.Request, output *CreateTransitGatewayRouteOutput) {
+ op := &request.Operation{
+ Name: opCreateTransitGatewayRoute,
+ HTTPMethod: "POST",
+ HTTPPath: "/",
+ }
+
+ if input == nil {
+ input = &CreateTransitGatewayRouteInput{}
+ }
+
+ output = &CreateTransitGatewayRouteOutput{}
+ req = c.newRequest(op, input, output)
+ return
+}
+
+// CreateTransitGatewayRoute API operation for Amazon Elastic Compute Cloud.
+//
+// Creates a static route for the specified transit gateway route table.
+//
+// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
+// with awserr.Error's Code and Message methods to get detailed information about
+// the error.
+//
+// See the AWS API reference guide for Amazon Elastic Compute Cloud's
+// API operation CreateTransitGatewayRoute for usage and error information.
+// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/CreateTransitGatewayRoute
+func (c *EC2) CreateTransitGatewayRoute(input *CreateTransitGatewayRouteInput) (*CreateTransitGatewayRouteOutput, error) {
+ req, out := c.CreateTransitGatewayRouteRequest(input)
+ return out, req.Send()
+}
+
+// CreateTransitGatewayRouteWithContext is the same as CreateTransitGatewayRoute with the addition of
+// the ability to pass a context and additional request options.
+//
+// See CreateTransitGatewayRoute for details on how to use this API operation.
+//
+// The context must be non-nil and will be used for request cancellation. If
+// the context is nil a panic will occur. In the future the SDK may create
+// sub-contexts for http.Requests. See https://golang.org/pkg/context/
+// for more information on using Contexts.
+func (c *EC2) CreateTransitGatewayRouteWithContext(ctx aws.Context, input *CreateTransitGatewayRouteInput, opts ...request.Option) (*CreateTransitGatewayRouteOutput, error) {
+ req, out := c.CreateTransitGatewayRouteRequest(input)
+ req.SetContext(ctx)
+ req.ApplyOptions(opts...)
+ return out, req.Send()
+}
+
+const opCreateTransitGatewayRouteTable = "CreateTransitGatewayRouteTable"
+
+// CreateTransitGatewayRouteTableRequest generates a "aws/request.Request" representing the
+// client's request for the CreateTransitGatewayRouteTable operation. The "output" return
+// value will be populated with the request's response once the request completes
+// successfully.
+//
+// Use "Send" method on the returned Request to send the API call to the service.
+// the "output" return value is not valid until after Send returns without error.
+//
+// See CreateTransitGatewayRouteTable for more information on using the CreateTransitGatewayRouteTable
+// API call, and error handling.
+//
+// This method is useful when you want to inject custom logic or configuration
+// into the SDK's request lifecycle. Such as custom headers, or retry logic.
+//
+//
+// // Example sending a request using the CreateTransitGatewayRouteTableRequest method.
+// req, resp := client.CreateTransitGatewayRouteTableRequest(params)
+//
+// err := req.Send()
+// if err == nil { // resp is now filled
+// fmt.Println(resp)
+// }
+//
+// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/CreateTransitGatewayRouteTable
+func (c *EC2) CreateTransitGatewayRouteTableRequest(input *CreateTransitGatewayRouteTableInput) (req *request.Request, output *CreateTransitGatewayRouteTableOutput) {
+ op := &request.Operation{
+ Name: opCreateTransitGatewayRouteTable,
+ HTTPMethod: "POST",
+ HTTPPath: "/",
+ }
+
+ if input == nil {
+ input = &CreateTransitGatewayRouteTableInput{}
+ }
+
+ output = &CreateTransitGatewayRouteTableOutput{}
+ req = c.newRequest(op, input, output)
+ return
+}
+
+// CreateTransitGatewayRouteTable API operation for Amazon Elastic Compute Cloud.
+//
+// Creates a route table for the specified transit gateway.
+//
+// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
+// with awserr.Error's Code and Message methods to get detailed information about
+// the error.
+//
+// See the AWS API reference guide for Amazon Elastic Compute Cloud's
+// API operation CreateTransitGatewayRouteTable for usage and error information.
+// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/CreateTransitGatewayRouteTable
+func (c *EC2) CreateTransitGatewayRouteTable(input *CreateTransitGatewayRouteTableInput) (*CreateTransitGatewayRouteTableOutput, error) {
+ req, out := c.CreateTransitGatewayRouteTableRequest(input)
+ return out, req.Send()
+}
+
+// CreateTransitGatewayRouteTableWithContext is the same as CreateTransitGatewayRouteTable with the addition of
+// the ability to pass a context and additional request options.
+//
+// See CreateTransitGatewayRouteTable for details on how to use this API operation.
+//
+// The context must be non-nil and will be used for request cancellation. If
+// the context is nil a panic will occur. In the future the SDK may create
+// sub-contexts for http.Requests. See https://golang.org/pkg/context/
+// for more information on using Contexts.
+func (c *EC2) CreateTransitGatewayRouteTableWithContext(ctx aws.Context, input *CreateTransitGatewayRouteTableInput, opts ...request.Option) (*CreateTransitGatewayRouteTableOutput, error) {
+ req, out := c.CreateTransitGatewayRouteTableRequest(input)
+ req.SetContext(ctx)
+ req.ApplyOptions(opts...)
+ return out, req.Send()
+}
+
+const opCreateTransitGatewayVpcAttachment = "CreateTransitGatewayVpcAttachment"
+
+// CreateTransitGatewayVpcAttachmentRequest generates a "aws/request.Request" representing the
+// client's request for the CreateTransitGatewayVpcAttachment operation. The "output" return
+// value will be populated with the request's response once the request completes
+// successfully.
+//
+// Use "Send" method on the returned Request to send the API call to the service.
+// the "output" return value is not valid until after Send returns without error.
+//
+// See CreateTransitGatewayVpcAttachment for more information on using the CreateTransitGatewayVpcAttachment
+// API call, and error handling.
+//
+// This method is useful when you want to inject custom logic or configuration
+// into the SDK's request lifecycle. Such as custom headers, or retry logic.
+//
+//
+// // Example sending a request using the CreateTransitGatewayVpcAttachmentRequest method.
+// req, resp := client.CreateTransitGatewayVpcAttachmentRequest(params)
+//
+// err := req.Send()
+// if err == nil { // resp is now filled
+// fmt.Println(resp)
+// }
+//
+// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/CreateTransitGatewayVpcAttachment
+func (c *EC2) CreateTransitGatewayVpcAttachmentRequest(input *CreateTransitGatewayVpcAttachmentInput) (req *request.Request, output *CreateTransitGatewayVpcAttachmentOutput) {
+ op := &request.Operation{
+ Name: opCreateTransitGatewayVpcAttachment,
+ HTTPMethod: "POST",
+ HTTPPath: "/",
+ }
+
+ if input == nil {
+ input = &CreateTransitGatewayVpcAttachmentInput{}
+ }
+
+ output = &CreateTransitGatewayVpcAttachmentOutput{}
+ req = c.newRequest(op, input, output)
+ return
+}
+
+// CreateTransitGatewayVpcAttachment API operation for Amazon Elastic Compute Cloud.
+//
+// Attaches the specified VPC to the specified transit gateway.
+//
+// If you attach a VPC with a CIDR range that overlaps the CIDR range of a VPC
+// that is already attached, the new VPC CIDR range is not propagated to the
+// default propagation route table.
+//
+// To send VPC traffic to an attached transit gateway, add a route to the VPC
+// route table using CreateRoute.
+//
+// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
+// with awserr.Error's Code and Message methods to get detailed information about
+// the error.
+//
+// See the AWS API reference guide for Amazon Elastic Compute Cloud's
+// API operation CreateTransitGatewayVpcAttachment for usage and error information.
+// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/CreateTransitGatewayVpcAttachment
+func (c *EC2) CreateTransitGatewayVpcAttachment(input *CreateTransitGatewayVpcAttachmentInput) (*CreateTransitGatewayVpcAttachmentOutput, error) {
+ req, out := c.CreateTransitGatewayVpcAttachmentRequest(input)
+ return out, req.Send()
+}
+
+// CreateTransitGatewayVpcAttachmentWithContext is the same as CreateTransitGatewayVpcAttachment with the addition of
+// the ability to pass a context and additional request options.
+//
+// See CreateTransitGatewayVpcAttachment for details on how to use this API operation.
+//
+// The context must be non-nil and will be used for request cancellation. If
+// the context is nil a panic will occur. In the future the SDK may create
+// sub-contexts for http.Requests. See https://golang.org/pkg/context/
+// for more information on using Contexts.
+func (c *EC2) CreateTransitGatewayVpcAttachmentWithContext(ctx aws.Context, input *CreateTransitGatewayVpcAttachmentInput, opts ...request.Option) (*CreateTransitGatewayVpcAttachmentOutput, error) {
+ req, out := c.CreateTransitGatewayVpcAttachmentRequest(input)
+ req.SetContext(ctx)
+ req.ApplyOptions(opts...)
+ return out, req.Send()
+}
+
const opCreateVolume = "CreateVolume"
// CreateVolumeRequest generates a "aws/request.Request" representing the
// client's request for the CreateVolume operation. The "output" return
// value will be populated with the request's response once the request completes
-// successfuly.
+// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
@@ -5085,7 +6226,8 @@ func (c *EC2) CreateVolumeRequest(input *CreateVolumeInput) (req *request.Reques
// in the Amazon Elastic Compute Cloud User Guide.
//
// You can tag your volumes during creation. For more information, see Tagging
-// Your Amazon EC2 Resources (http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Using_Tags.html).
+// Your Amazon EC2 Resources (http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Using_Tags.html)
+// in the Amazon Elastic Compute Cloud User Guide.
//
// For more information, see Creating an Amazon EBS Volume (http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ebs-creating-volume.html)
// in the Amazon Elastic Compute Cloud User Guide.
@@ -5123,7 +6265,7 @@ const opCreateVpc = "CreateVpc"
// CreateVpcRequest generates a "aws/request.Request" representing the
// client's request for the CreateVpc operation. The "output" return
// value will be populated with the request's response once the request completes
-// successfuly.
+// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
@@ -5164,8 +6306,8 @@ func (c *EC2) CreateVpcRequest(input *CreateVpcInput) (req *request.Request, out
//
// Creates a VPC with the specified IPv4 CIDR block. The smallest VPC you can
// create uses a /28 netmask (16 IPv4 addresses), and the largest uses a /16
-// netmask (65,536 IPv4 addresses). To help you decide how big to make your
-// VPC, see Your VPC and Subnets (http://docs.aws.amazon.com/AmazonVPC/latest/UserGuide/VPC_Subnets.html)
+// netmask (65,536 IPv4 addresses). For more information about how large to
+// make your VPC, see Your VPC and Subnets (http://docs.aws.amazon.com/AmazonVPC/latest/UserGuide/VPC_Subnets.html)
// in the Amazon Virtual Private Cloud User Guide.
//
// You can optionally request an Amazon-provided IPv6 CIDR block for the VPC.
@@ -5173,8 +6315,8 @@ func (c *EC2) CreateVpcRequest(input *CreateVpcInput) (req *request.Request, out
// pool of IPv6 addresses. You cannot choose the IPv6 range for your VPC.
//
// By default, each instance you launch in the VPC has the default DHCP options,
-// which includes only a default DNS server that we provide (AmazonProvidedDNS).
-// For more information about DHCP options, see DHCP Options Sets (http://docs.aws.amazon.com/AmazonVPC/latest/UserGuide/VPC_DHCP_Options.html)
+// which include only a default DNS server that we provide (AmazonProvidedDNS).
+// For more information, see DHCP Options Sets (http://docs.aws.amazon.com/AmazonVPC/latest/UserGuide/VPC_DHCP_Options.html)
// in the Amazon Virtual Private Cloud User Guide.
//
// You can specify the instance tenancy value for the VPC when you create it.
@@ -5215,7 +6357,7 @@ const opCreateVpcEndpoint = "CreateVpcEndpoint"
// CreateVpcEndpointRequest generates a "aws/request.Request" representing the
// client's request for the CreateVpcEndpoint operation. The "output" return
// value will be populated with the request's response once the request completes
-// successfuly.
+// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
@@ -5305,7 +6447,7 @@ const opCreateVpcEndpointConnectionNotification = "CreateVpcEndpointConnectionNo
// CreateVpcEndpointConnectionNotificationRequest generates a "aws/request.Request" representing the
// client's request for the CreateVpcEndpointConnectionNotification operation. The "output" return
// value will be populated with the request's response once the request completes
-// successfuly.
+// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
@@ -5385,7 +6527,7 @@ const opCreateVpcEndpointServiceConfiguration = "CreateVpcEndpointServiceConfigu
// CreateVpcEndpointServiceConfigurationRequest generates a "aws/request.Request" representing the
// client's request for the CreateVpcEndpointServiceConfiguration operation. The "output" return
// value will be populated with the request's response once the request completes
-// successfuly.
+// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
@@ -5466,7 +6608,7 @@ const opCreateVpcPeeringConnection = "CreateVpcPeeringConnection"
// CreateVpcPeeringConnectionRequest generates a "aws/request.Request" representing the
// client's request for the CreateVpcPeeringConnection operation. The "output" return
// value will be populated with the request's response once the request completes
-// successfuly.
+// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
@@ -5507,7 +6649,7 @@ func (c *EC2) CreateVpcPeeringConnectionRequest(input *CreateVpcPeeringConnectio
//
// Requests a VPC peering connection between two VPCs: a requester VPC that
// you own and an accepter VPC with which to create the connection. The accepter
-// VPC can belong to another AWS account and can be in a different region to
+// VPC can belong to another AWS account and can be in a different Region to
// the requester VPC. The requester VPC and accepter VPC cannot have overlapping
// CIDR blocks.
//
@@ -5555,7 +6697,7 @@ const opCreateVpnConnection = "CreateVpnConnection"
// CreateVpnConnectionRequest generates a "aws/request.Request" representing the
// client's request for the CreateVpnConnection operation. The "output" return
// value will be populated with the request's response once the request completes
-// successfuly.
+// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
@@ -5647,7 +6789,7 @@ const opCreateVpnConnectionRoute = "CreateVpnConnectionRoute"
// CreateVpnConnectionRouteRequest generates a "aws/request.Request" representing the
// client's request for the CreateVpnConnectionRoute operation. The "output" return
// value will be populated with the request's response once the request completes
-// successfuly.
+// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
@@ -5681,8 +6823,7 @@ func (c *EC2) CreateVpnConnectionRouteRequest(input *CreateVpnConnectionRouteInp
output = &CreateVpnConnectionRouteOutput{}
req = c.newRequest(op, input, output)
- req.Handlers.Unmarshal.Remove(ec2query.UnmarshalHandler)
- req.Handlers.Unmarshal.PushBackNamed(protocol.UnmarshalDiscardBodyHandler)
+ req.Handlers.Unmarshal.Swap(ec2query.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
return
}
@@ -5730,7 +6871,7 @@ const opCreateVpnGateway = "CreateVpnGateway"
// CreateVpnGatewayRequest generates a "aws/request.Request" representing the
// client's request for the CreateVpnGateway operation. The "output" return
// value will be populated with the request's response once the request completes
-// successfuly.
+// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
@@ -5805,12 +6946,165 @@ func (c *EC2) CreateVpnGatewayWithContext(ctx aws.Context, input *CreateVpnGatew
return out, req.Send()
}
+const opDeleteClientVpnEndpoint = "DeleteClientVpnEndpoint"
+
+// DeleteClientVpnEndpointRequest generates a "aws/request.Request" representing the
+// client's request for the DeleteClientVpnEndpoint operation. The "output" return
+// value will be populated with the request's response once the request completes
+// successfully.
+//
+// Use "Send" method on the returned Request to send the API call to the service.
+// the "output" return value is not valid until after Send returns without error.
+//
+// See DeleteClientVpnEndpoint for more information on using the DeleteClientVpnEndpoint
+// API call, and error handling.
+//
+// This method is useful when you want to inject custom logic or configuration
+// into the SDK's request lifecycle. Such as custom headers, or retry logic.
+//
+//
+// // Example sending a request using the DeleteClientVpnEndpointRequest method.
+// req, resp := client.DeleteClientVpnEndpointRequest(params)
+//
+// err := req.Send()
+// if err == nil { // resp is now filled
+// fmt.Println(resp)
+// }
+//
+// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DeleteClientVpnEndpoint
+func (c *EC2) DeleteClientVpnEndpointRequest(input *DeleteClientVpnEndpointInput) (req *request.Request, output *DeleteClientVpnEndpointOutput) {
+ op := &request.Operation{
+ Name: opDeleteClientVpnEndpoint,
+ HTTPMethod: "POST",
+ HTTPPath: "/",
+ }
+
+ if input == nil {
+ input = &DeleteClientVpnEndpointInput{}
+ }
+
+ output = &DeleteClientVpnEndpointOutput{}
+ req = c.newRequest(op, input, output)
+ return
+}
+
+// DeleteClientVpnEndpoint API operation for Amazon Elastic Compute Cloud.
+//
+// Deletes the specified Client VPN endpoint. You must disassociate all target
+// networks before you can delete a Client VPN endpoint.
+//
+// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
+// with awserr.Error's Code and Message methods to get detailed information about
+// the error.
+//
+// See the AWS API reference guide for Amazon Elastic Compute Cloud's
+// API operation DeleteClientVpnEndpoint for usage and error information.
+// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DeleteClientVpnEndpoint
+func (c *EC2) DeleteClientVpnEndpoint(input *DeleteClientVpnEndpointInput) (*DeleteClientVpnEndpointOutput, error) {
+ req, out := c.DeleteClientVpnEndpointRequest(input)
+ return out, req.Send()
+}
+
+// DeleteClientVpnEndpointWithContext is the same as DeleteClientVpnEndpoint with the addition of
+// the ability to pass a context and additional request options.
+//
+// See DeleteClientVpnEndpoint for details on how to use this API operation.
+//
+// The context must be non-nil and will be used for request cancellation. If
+// the context is nil a panic will occur. In the future the SDK may create
+// sub-contexts for http.Requests. See https://golang.org/pkg/context/
+// for more information on using Contexts.
+func (c *EC2) DeleteClientVpnEndpointWithContext(ctx aws.Context, input *DeleteClientVpnEndpointInput, opts ...request.Option) (*DeleteClientVpnEndpointOutput, error) {
+ req, out := c.DeleteClientVpnEndpointRequest(input)
+ req.SetContext(ctx)
+ req.ApplyOptions(opts...)
+ return out, req.Send()
+}
+
+const opDeleteClientVpnRoute = "DeleteClientVpnRoute"
+
+// DeleteClientVpnRouteRequest generates a "aws/request.Request" representing the
+// client's request for the DeleteClientVpnRoute operation. The "output" return
+// value will be populated with the request's response once the request completes
+// successfully.
+//
+// Use "Send" method on the returned Request to send the API call to the service.
+// the "output" return value is not valid until after Send returns without error.
+//
+// See DeleteClientVpnRoute for more information on using the DeleteClientVpnRoute
+// API call, and error handling.
+//
+// This method is useful when you want to inject custom logic or configuration
+// into the SDK's request lifecycle. Such as custom headers, or retry logic.
+//
+//
+// // Example sending a request using the DeleteClientVpnRouteRequest method.
+// req, resp := client.DeleteClientVpnRouteRequest(params)
+//
+// err := req.Send()
+// if err == nil { // resp is now filled
+// fmt.Println(resp)
+// }
+//
+// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DeleteClientVpnRoute
+func (c *EC2) DeleteClientVpnRouteRequest(input *DeleteClientVpnRouteInput) (req *request.Request, output *DeleteClientVpnRouteOutput) {
+ op := &request.Operation{
+ Name: opDeleteClientVpnRoute,
+ HTTPMethod: "POST",
+ HTTPPath: "/",
+ }
+
+ if input == nil {
+ input = &DeleteClientVpnRouteInput{}
+ }
+
+ output = &DeleteClientVpnRouteOutput{}
+ req = c.newRequest(op, input, output)
+ return
+}
+
+// DeleteClientVpnRoute API operation for Amazon Elastic Compute Cloud.
+//
+// Deletes a route from a Client VPN endpoint. You can only delete routes that
+// you manually added using the CreateClientVpnRoute action. You cannot delete
+// routes that were automatically added when associating a subnet. To remove
+// routes that have been automatically added, disassociate the target subnet
+// from the Client VPN endpoint.
+//
+// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
+// with awserr.Error's Code and Message methods to get detailed information about
+// the error.
+//
+// See the AWS API reference guide for Amazon Elastic Compute Cloud's
+// API operation DeleteClientVpnRoute for usage and error information.
+// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DeleteClientVpnRoute
+func (c *EC2) DeleteClientVpnRoute(input *DeleteClientVpnRouteInput) (*DeleteClientVpnRouteOutput, error) {
+ req, out := c.DeleteClientVpnRouteRequest(input)
+ return out, req.Send()
+}
+
+// DeleteClientVpnRouteWithContext is the same as DeleteClientVpnRoute with the addition of
+// the ability to pass a context and additional request options.
+//
+// See DeleteClientVpnRoute for details on how to use this API operation.
+//
+// The context must be non-nil and will be used for request cancellation. If
+// the context is nil a panic will occur. In the future the SDK may create
+// sub-contexts for http.Requests. See https://golang.org/pkg/context/
+// for more information on using Contexts.
+func (c *EC2) DeleteClientVpnRouteWithContext(ctx aws.Context, input *DeleteClientVpnRouteInput, opts ...request.Option) (*DeleteClientVpnRouteOutput, error) {
+ req, out := c.DeleteClientVpnRouteRequest(input)
+ req.SetContext(ctx)
+ req.ApplyOptions(opts...)
+ return out, req.Send()
+}
+
const opDeleteCustomerGateway = "DeleteCustomerGateway"
// DeleteCustomerGatewayRequest generates a "aws/request.Request" representing the
// client's request for the DeleteCustomerGateway operation. The "output" return
// value will be populated with the request's response once the request completes
-// successfuly.
+// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
@@ -5844,8 +7138,7 @@ func (c *EC2) DeleteCustomerGatewayRequest(input *DeleteCustomerGatewayInput) (r
output = &DeleteCustomerGatewayOutput{}
req = c.newRequest(op, input, output)
- req.Handlers.Unmarshal.Remove(ec2query.UnmarshalHandler)
- req.Handlers.Unmarshal.PushBackNamed(protocol.UnmarshalDiscardBodyHandler)
+ req.Handlers.Unmarshal.Swap(ec2query.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
return
}
@@ -5887,7 +7180,7 @@ const opDeleteDhcpOptions = "DeleteDhcpOptions"
// DeleteDhcpOptionsRequest generates a "aws/request.Request" representing the
// client's request for the DeleteDhcpOptions operation. The "output" return
// value will be populated with the request's response once the request completes
-// successfuly.
+// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
@@ -5921,8 +7214,7 @@ func (c *EC2) DeleteDhcpOptionsRequest(input *DeleteDhcpOptionsInput) (req *requ
output = &DeleteDhcpOptionsOutput{}
req = c.newRequest(op, input, output)
- req.Handlers.Unmarshal.Remove(ec2query.UnmarshalHandler)
- req.Handlers.Unmarshal.PushBackNamed(protocol.UnmarshalDiscardBodyHandler)
+ req.Handlers.Unmarshal.Swap(ec2query.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
return
}
@@ -5966,7 +7258,7 @@ const opDeleteEgressOnlyInternetGateway = "DeleteEgressOnlyInternetGateway"
// DeleteEgressOnlyInternetGatewayRequest generates a "aws/request.Request" representing the
// client's request for the DeleteEgressOnlyInternetGateway operation. The "output" return
// value will be populated with the request's response once the request completes
-// successfuly.
+// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
@@ -6005,7 +7297,7 @@ func (c *EC2) DeleteEgressOnlyInternetGatewayRequest(input *DeleteEgressOnlyInte
// DeleteEgressOnlyInternetGateway API operation for Amazon Elastic Compute Cloud.
//
-// Deletes an egress-only Internet gateway.
+// Deletes an egress-only internet gateway.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
@@ -6040,7 +7332,7 @@ const opDeleteFleets = "DeleteFleets"
// DeleteFleetsRequest generates a "aws/request.Request" representing the
// client's request for the DeleteFleets operation. The "output" return
// value will be populated with the request's response once the request completes
-// successfuly.
+// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
@@ -6081,12 +7373,11 @@ func (c *EC2) DeleteFleetsRequest(input *DeleteFleetsInput) (req *request.Reques
//
// Deletes the specified EC2 Fleet.
//
-// After you delete an EC2 Fleet, the EC2 Fleet launches no new instances. You
-// must specify whether the EC2 Fleet should also terminate its instances. If
-// you terminate the instances, the EC2 Fleet enters the deleted_terminating
-// state. Otherwise, the EC2 Fleet enters the deleted_running state, and the
-// instances continue to run until they are interrupted or you terminate them
-// manually.
+// After you delete an EC2 Fleet, it launches no new instances. You must specify
+// whether an EC2 Fleet should also terminate its instances. If you terminate
+// the instances, the EC2 Fleet enters the deleted_terminating state. Otherwise,
+// the EC2 Fleet enters the deleted_running state, and the instances continue
+// to run until they are interrupted or you terminate them manually.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
@@ -6121,7 +7412,7 @@ const opDeleteFlowLogs = "DeleteFlowLogs"
// DeleteFlowLogsRequest generates a "aws/request.Request" representing the
// client's request for the DeleteFlowLogs operation. The "output" return
// value will be populated with the request's response once the request completes
-// successfuly.
+// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
@@ -6195,7 +7486,7 @@ const opDeleteFpgaImage = "DeleteFpgaImage"
// DeleteFpgaImageRequest generates a "aws/request.Request" representing the
// client's request for the DeleteFpgaImage operation. The "output" return
// value will be populated with the request's response once the request completes
-// successfuly.
+// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
@@ -6269,7 +7560,7 @@ const opDeleteInternetGateway = "DeleteInternetGateway"
// DeleteInternetGatewayRequest generates a "aws/request.Request" representing the
// client's request for the DeleteInternetGateway operation. The "output" return
// value will be populated with the request's response once the request completes
-// successfuly.
+// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
@@ -6303,14 +7594,13 @@ func (c *EC2) DeleteInternetGatewayRequest(input *DeleteInternetGatewayInput) (r
output = &DeleteInternetGatewayOutput{}
req = c.newRequest(op, input, output)
- req.Handlers.Unmarshal.Remove(ec2query.UnmarshalHandler)
- req.Handlers.Unmarshal.PushBackNamed(protocol.UnmarshalDiscardBodyHandler)
+ req.Handlers.Unmarshal.Swap(ec2query.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
return
}
// DeleteInternetGateway API operation for Amazon Elastic Compute Cloud.
//
-// Deletes the specified Internet gateway. You must detach the Internet gateway
+// Deletes the specified internet gateway. You must detach the internet gateway
// from the VPC before you can delete it.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
@@ -6346,7 +7636,7 @@ const opDeleteKeyPair = "DeleteKeyPair"
// DeleteKeyPairRequest generates a "aws/request.Request" representing the
// client's request for the DeleteKeyPair operation. The "output" return
// value will be populated with the request's response once the request completes
-// successfuly.
+// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
@@ -6380,8 +7670,7 @@ func (c *EC2) DeleteKeyPairRequest(input *DeleteKeyPairInput) (req *request.Requ
output = &DeleteKeyPairOutput{}
req = c.newRequest(op, input, output)
- req.Handlers.Unmarshal.Remove(ec2query.UnmarshalHandler)
- req.Handlers.Unmarshal.PushBackNamed(protocol.UnmarshalDiscardBodyHandler)
+ req.Handlers.Unmarshal.Swap(ec2query.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
return
}
@@ -6422,7 +7711,7 @@ const opDeleteLaunchTemplate = "DeleteLaunchTemplate"
// DeleteLaunchTemplateRequest generates a "aws/request.Request" representing the
// client's request for the DeleteLaunchTemplate operation. The "output" return
// value will be populated with the request's response once the request completes
-// successfuly.
+// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
@@ -6497,7 +7786,7 @@ const opDeleteLaunchTemplateVersions = "DeleteLaunchTemplateVersions"
// DeleteLaunchTemplateVersionsRequest generates a "aws/request.Request" representing the
// client's request for the DeleteLaunchTemplateVersions operation. The "output" return
// value will be populated with the request's response once the request completes
-// successfuly.
+// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
@@ -6574,7 +7863,7 @@ const opDeleteNatGateway = "DeleteNatGateway"
// DeleteNatGatewayRequest generates a "aws/request.Request" representing the
// client's request for the DeleteNatGateway operation. The "output" return
// value will be populated with the request's response once the request completes
-// successfuly.
+// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
@@ -6650,7 +7939,7 @@ const opDeleteNetworkAcl = "DeleteNetworkAcl"
// DeleteNetworkAclRequest generates a "aws/request.Request" representing the
// client's request for the DeleteNetworkAcl operation. The "output" return
// value will be populated with the request's response once the request completes
-// successfuly.
+// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
@@ -6684,8 +7973,7 @@ func (c *EC2) DeleteNetworkAclRequest(input *DeleteNetworkAclInput) (req *reques
output = &DeleteNetworkAclOutput{}
req = c.newRequest(op, input, output)
- req.Handlers.Unmarshal.Remove(ec2query.UnmarshalHandler)
- req.Handlers.Unmarshal.PushBackNamed(protocol.UnmarshalDiscardBodyHandler)
+ req.Handlers.Unmarshal.Swap(ec2query.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
return
}
@@ -6727,7 +8015,7 @@ const opDeleteNetworkAclEntry = "DeleteNetworkAclEntry"
// DeleteNetworkAclEntryRequest generates a "aws/request.Request" representing the
// client's request for the DeleteNetworkAclEntry operation. The "output" return
// value will be populated with the request's response once the request completes
-// successfuly.
+// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
@@ -6761,8 +8049,7 @@ func (c *EC2) DeleteNetworkAclEntryRequest(input *DeleteNetworkAclEntryInput) (r
output = &DeleteNetworkAclEntryOutput{}
req = c.newRequest(op, input, output)
- req.Handlers.Unmarshal.Remove(ec2query.UnmarshalHandler)
- req.Handlers.Unmarshal.PushBackNamed(protocol.UnmarshalDiscardBodyHandler)
+ req.Handlers.Unmarshal.Swap(ec2query.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
return
}
@@ -6804,7 +8091,7 @@ const opDeleteNetworkInterface = "DeleteNetworkInterface"
// DeleteNetworkInterfaceRequest generates a "aws/request.Request" representing the
// client's request for the DeleteNetworkInterface operation. The "output" return
// value will be populated with the request's response once the request completes
-// successfuly.
+// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
@@ -6838,8 +8125,7 @@ func (c *EC2) DeleteNetworkInterfaceRequest(input *DeleteNetworkInterfaceInput)
output = &DeleteNetworkInterfaceOutput{}
req = c.newRequest(op, input, output)
- req.Handlers.Unmarshal.Remove(ec2query.UnmarshalHandler)
- req.Handlers.Unmarshal.PushBackNamed(protocol.UnmarshalDiscardBodyHandler)
+ req.Handlers.Unmarshal.Swap(ec2query.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
return
}
@@ -6881,7 +8167,7 @@ const opDeleteNetworkInterfacePermission = "DeleteNetworkInterfacePermission"
// DeleteNetworkInterfacePermissionRequest generates a "aws/request.Request" representing the
// client's request for the DeleteNetworkInterfacePermission operation. The "output" return
// value will be populated with the request's response once the request completes
-// successfuly.
+// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
@@ -6958,7 +8244,7 @@ const opDeletePlacementGroup = "DeletePlacementGroup"
// DeletePlacementGroupRequest generates a "aws/request.Request" representing the
// client's request for the DeletePlacementGroup operation. The "output" return
// value will be populated with the request's response once the request completes
-// successfuly.
+// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
@@ -6992,8 +8278,7 @@ func (c *EC2) DeletePlacementGroupRequest(input *DeletePlacementGroupInput) (req
output = &DeletePlacementGroupOutput{}
req = c.newRequest(op, input, output)
- req.Handlers.Unmarshal.Remove(ec2query.UnmarshalHandler)
- req.Handlers.Unmarshal.PushBackNamed(protocol.UnmarshalDiscardBodyHandler)
+ req.Handlers.Unmarshal.Swap(ec2query.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
return
}
@@ -7037,7 +8322,7 @@ const opDeleteRoute = "DeleteRoute"
// DeleteRouteRequest generates a "aws/request.Request" representing the
// client's request for the DeleteRoute operation. The "output" return
// value will be populated with the request's response once the request completes
-// successfuly.
+// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
@@ -7071,8 +8356,7 @@ func (c *EC2) DeleteRouteRequest(input *DeleteRouteInput) (req *request.Request,
output = &DeleteRouteOutput{}
req = c.newRequest(op, input, output)
- req.Handlers.Unmarshal.Remove(ec2query.UnmarshalHandler)
- req.Handlers.Unmarshal.PushBackNamed(protocol.UnmarshalDiscardBodyHandler)
+ req.Handlers.Unmarshal.Swap(ec2query.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
return
}
@@ -7113,7 +8397,7 @@ const opDeleteRouteTable = "DeleteRouteTable"
// DeleteRouteTableRequest generates a "aws/request.Request" representing the
// client's request for the DeleteRouteTable operation. The "output" return
// value will be populated with the request's response once the request completes
-// successfuly.
+// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
@@ -7147,8 +8431,7 @@ func (c *EC2) DeleteRouteTableRequest(input *DeleteRouteTableInput) (req *reques
output = &DeleteRouteTableOutput{}
req = c.newRequest(op, input, output)
- req.Handlers.Unmarshal.Remove(ec2query.UnmarshalHandler)
- req.Handlers.Unmarshal.PushBackNamed(protocol.UnmarshalDiscardBodyHandler)
+ req.Handlers.Unmarshal.Swap(ec2query.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
return
}
@@ -7191,7 +8474,7 @@ const opDeleteSecurityGroup = "DeleteSecurityGroup"
// DeleteSecurityGroupRequest generates a "aws/request.Request" representing the
// client's request for the DeleteSecurityGroup operation. The "output" return
// value will be populated with the request's response once the request completes
-// successfuly.
+// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
@@ -7225,8 +8508,7 @@ func (c *EC2) DeleteSecurityGroupRequest(input *DeleteSecurityGroupInput) (req *
output = &DeleteSecurityGroupOutput{}
req = c.newRequest(op, input, output)
- req.Handlers.Unmarshal.Remove(ec2query.UnmarshalHandler)
- req.Handlers.Unmarshal.PushBackNamed(protocol.UnmarshalDiscardBodyHandler)
+ req.Handlers.Unmarshal.Swap(ec2query.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
return
}
@@ -7271,7 +8553,7 @@ const opDeleteSnapshot = "DeleteSnapshot"
// DeleteSnapshotRequest generates a "aws/request.Request" representing the
// client's request for the DeleteSnapshot operation. The "output" return
// value will be populated with the request's response once the request completes
-// successfuly.
+// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
@@ -7305,8 +8587,7 @@ func (c *EC2) DeleteSnapshotRequest(input *DeleteSnapshotInput) (req *request.Re
output = &DeleteSnapshotOutput{}
req = c.newRequest(op, input, output)
- req.Handlers.Unmarshal.Remove(ec2query.UnmarshalHandler)
- req.Handlers.Unmarshal.PushBackNamed(protocol.UnmarshalDiscardBodyHandler)
+ req.Handlers.Unmarshal.Swap(ec2query.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
return
}
@@ -7361,7 +8642,7 @@ const opDeleteSpotDatafeedSubscription = "DeleteSpotDatafeedSubscription"
// DeleteSpotDatafeedSubscriptionRequest generates a "aws/request.Request" representing the
// client's request for the DeleteSpotDatafeedSubscription operation. The "output" return
// value will be populated with the request's response once the request completes
-// successfuly.
+// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
@@ -7395,8 +8676,7 @@ func (c *EC2) DeleteSpotDatafeedSubscriptionRequest(input *DeleteSpotDatafeedSub
output = &DeleteSpotDatafeedSubscriptionOutput{}
req = c.newRequest(op, input, output)
- req.Handlers.Unmarshal.Remove(ec2query.UnmarshalHandler)
- req.Handlers.Unmarshal.PushBackNamed(protocol.UnmarshalDiscardBodyHandler)
+ req.Handlers.Unmarshal.Swap(ec2query.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
return
}
@@ -7437,7 +8717,7 @@ const opDeleteSubnet = "DeleteSubnet"
// DeleteSubnetRequest generates a "aws/request.Request" representing the
// client's request for the DeleteSubnet operation. The "output" return
// value will be populated with the request's response once the request completes
-// successfuly.
+// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
@@ -7471,8 +8751,7 @@ func (c *EC2) DeleteSubnetRequest(input *DeleteSubnetInput) (req *request.Reques
output = &DeleteSubnetOutput{}
req = c.newRequest(op, input, output)
- req.Handlers.Unmarshal.Remove(ec2query.UnmarshalHandler)
- req.Handlers.Unmarshal.PushBackNamed(protocol.UnmarshalDiscardBodyHandler)
+ req.Handlers.Unmarshal.Swap(ec2query.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
return
}
@@ -7514,7 +8793,7 @@ const opDeleteTags = "DeleteTags"
// DeleteTagsRequest generates a "aws/request.Request" representing the
// client's request for the DeleteTags operation. The "output" return
// value will be populated with the request's response once the request completes
-// successfuly.
+// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
@@ -7548,8 +8827,7 @@ func (c *EC2) DeleteTagsRequest(input *DeleteTagsInput) (req *request.Request, o
output = &DeleteTagsOutput{}
req = c.newRequest(op, input, output)
- req.Handlers.Unmarshal.Remove(ec2query.UnmarshalHandler)
- req.Handlers.Unmarshal.PushBackNamed(protocol.UnmarshalDiscardBodyHandler)
+ req.Handlers.Unmarshal.Swap(ec2query.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
return
}
@@ -7589,12 +8867,310 @@ func (c *EC2) DeleteTagsWithContext(ctx aws.Context, input *DeleteTagsInput, opt
return out, req.Send()
}
+const opDeleteTransitGateway = "DeleteTransitGateway"
+
+// DeleteTransitGatewayRequest generates a "aws/request.Request" representing the
+// client's request for the DeleteTransitGateway operation. The "output" return
+// value will be populated with the request's response once the request completes
+// successfully.
+//
+// Use "Send" method on the returned Request to send the API call to the service.
+// the "output" return value is not valid until after Send returns without error.
+//
+// See DeleteTransitGateway for more information on using the DeleteTransitGateway
+// API call, and error handling.
+//
+// This method is useful when you want to inject custom logic or configuration
+// into the SDK's request lifecycle. Such as custom headers, or retry logic.
+//
+//
+// // Example sending a request using the DeleteTransitGatewayRequest method.
+// req, resp := client.DeleteTransitGatewayRequest(params)
+//
+// err := req.Send()
+// if err == nil { // resp is now filled
+// fmt.Println(resp)
+// }
+//
+// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DeleteTransitGateway
+func (c *EC2) DeleteTransitGatewayRequest(input *DeleteTransitGatewayInput) (req *request.Request, output *DeleteTransitGatewayOutput) {
+ op := &request.Operation{
+ Name: opDeleteTransitGateway,
+ HTTPMethod: "POST",
+ HTTPPath: "/",
+ }
+
+ if input == nil {
+ input = &DeleteTransitGatewayInput{}
+ }
+
+ output = &DeleteTransitGatewayOutput{}
+ req = c.newRequest(op, input, output)
+ return
+}
+
+// DeleteTransitGateway API operation for Amazon Elastic Compute Cloud.
+//
+// Deletes the specified transit gateway.
+//
+// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
+// with awserr.Error's Code and Message methods to get detailed information about
+// the error.
+//
+// See the AWS API reference guide for Amazon Elastic Compute Cloud's
+// API operation DeleteTransitGateway for usage and error information.
+// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DeleteTransitGateway
+func (c *EC2) DeleteTransitGateway(input *DeleteTransitGatewayInput) (*DeleteTransitGatewayOutput, error) {
+ req, out := c.DeleteTransitGatewayRequest(input)
+ return out, req.Send()
+}
+
+// DeleteTransitGatewayWithContext is the same as DeleteTransitGateway with the addition of
+// the ability to pass a context and additional request options.
+//
+// See DeleteTransitGateway for details on how to use this API operation.
+//
+// The context must be non-nil and will be used for request cancellation. If
+// the context is nil a panic will occur. In the future the SDK may create
+// sub-contexts for http.Requests. See https://golang.org/pkg/context/
+// for more information on using Contexts.
+func (c *EC2) DeleteTransitGatewayWithContext(ctx aws.Context, input *DeleteTransitGatewayInput, opts ...request.Option) (*DeleteTransitGatewayOutput, error) {
+ req, out := c.DeleteTransitGatewayRequest(input)
+ req.SetContext(ctx)
+ req.ApplyOptions(opts...)
+ return out, req.Send()
+}
+
+const opDeleteTransitGatewayRoute = "DeleteTransitGatewayRoute"
+
+// DeleteTransitGatewayRouteRequest generates a "aws/request.Request" representing the
+// client's request for the DeleteTransitGatewayRoute operation. The "output" return
+// value will be populated with the request's response once the request completes
+// successfully.
+//
+// Use "Send" method on the returned Request to send the API call to the service.
+// the "output" return value is not valid until after Send returns without error.
+//
+// See DeleteTransitGatewayRoute for more information on using the DeleteTransitGatewayRoute
+// API call, and error handling.
+//
+// This method is useful when you want to inject custom logic or configuration
+// into the SDK's request lifecycle. Such as custom headers, or retry logic.
+//
+//
+// // Example sending a request using the DeleteTransitGatewayRouteRequest method.
+// req, resp := client.DeleteTransitGatewayRouteRequest(params)
+//
+// err := req.Send()
+// if err == nil { // resp is now filled
+// fmt.Println(resp)
+// }
+//
+// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DeleteTransitGatewayRoute
+func (c *EC2) DeleteTransitGatewayRouteRequest(input *DeleteTransitGatewayRouteInput) (req *request.Request, output *DeleteTransitGatewayRouteOutput) {
+ op := &request.Operation{
+ Name: opDeleteTransitGatewayRoute,
+ HTTPMethod: "POST",
+ HTTPPath: "/",
+ }
+
+ if input == nil {
+ input = &DeleteTransitGatewayRouteInput{}
+ }
+
+ output = &DeleteTransitGatewayRouteOutput{}
+ req = c.newRequest(op, input, output)
+ return
+}
+
+// DeleteTransitGatewayRoute API operation for Amazon Elastic Compute Cloud.
+//
+// Deletes the specified route from the specified transit gateway route table.
+//
+// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
+// with awserr.Error's Code and Message methods to get detailed information about
+// the error.
+//
+// See the AWS API reference guide for Amazon Elastic Compute Cloud's
+// API operation DeleteTransitGatewayRoute for usage and error information.
+// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DeleteTransitGatewayRoute
+func (c *EC2) DeleteTransitGatewayRoute(input *DeleteTransitGatewayRouteInput) (*DeleteTransitGatewayRouteOutput, error) {
+ req, out := c.DeleteTransitGatewayRouteRequest(input)
+ return out, req.Send()
+}
+
+// DeleteTransitGatewayRouteWithContext is the same as DeleteTransitGatewayRoute with the addition of
+// the ability to pass a context and additional request options.
+//
+// See DeleteTransitGatewayRoute for details on how to use this API operation.
+//
+// The context must be non-nil and will be used for request cancellation. If
+// the context is nil a panic will occur. In the future the SDK may create
+// sub-contexts for http.Requests. See https://golang.org/pkg/context/
+// for more information on using Contexts.
+func (c *EC2) DeleteTransitGatewayRouteWithContext(ctx aws.Context, input *DeleteTransitGatewayRouteInput, opts ...request.Option) (*DeleteTransitGatewayRouteOutput, error) {
+ req, out := c.DeleteTransitGatewayRouteRequest(input)
+ req.SetContext(ctx)
+ req.ApplyOptions(opts...)
+ return out, req.Send()
+}
+
+const opDeleteTransitGatewayRouteTable = "DeleteTransitGatewayRouteTable"
+
+// DeleteTransitGatewayRouteTableRequest generates a "aws/request.Request" representing the
+// client's request for the DeleteTransitGatewayRouteTable operation. The "output" return
+// value will be populated with the request's response once the request completes
+// successfully.
+//
+// Use "Send" method on the returned Request to send the API call to the service.
+// the "output" return value is not valid until after Send returns without error.
+//
+// See DeleteTransitGatewayRouteTable for more information on using the DeleteTransitGatewayRouteTable
+// API call, and error handling.
+//
+// This method is useful when you want to inject custom logic or configuration
+// into the SDK's request lifecycle. Such as custom headers, or retry logic.
+//
+//
+// // Example sending a request using the DeleteTransitGatewayRouteTableRequest method.
+// req, resp := client.DeleteTransitGatewayRouteTableRequest(params)
+//
+// err := req.Send()
+// if err == nil { // resp is now filled
+// fmt.Println(resp)
+// }
+//
+// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DeleteTransitGatewayRouteTable
+func (c *EC2) DeleteTransitGatewayRouteTableRequest(input *DeleteTransitGatewayRouteTableInput) (req *request.Request, output *DeleteTransitGatewayRouteTableOutput) {
+ op := &request.Operation{
+ Name: opDeleteTransitGatewayRouteTable,
+ HTTPMethod: "POST",
+ HTTPPath: "/",
+ }
+
+ if input == nil {
+ input = &DeleteTransitGatewayRouteTableInput{}
+ }
+
+ output = &DeleteTransitGatewayRouteTableOutput{}
+ req = c.newRequest(op, input, output)
+ return
+}
+
+// DeleteTransitGatewayRouteTable API operation for Amazon Elastic Compute Cloud.
+//
+// Deletes the specified transit gateway route table. You must disassociate
+// the route table from any transit gateway route tables before you can delete
+// it.
+//
+// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
+// with awserr.Error's Code and Message methods to get detailed information about
+// the error.
+//
+// See the AWS API reference guide for Amazon Elastic Compute Cloud's
+// API operation DeleteTransitGatewayRouteTable for usage and error information.
+// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DeleteTransitGatewayRouteTable
+func (c *EC2) DeleteTransitGatewayRouteTable(input *DeleteTransitGatewayRouteTableInput) (*DeleteTransitGatewayRouteTableOutput, error) {
+ req, out := c.DeleteTransitGatewayRouteTableRequest(input)
+ return out, req.Send()
+}
+
+// DeleteTransitGatewayRouteTableWithContext is the same as DeleteTransitGatewayRouteTable with the addition of
+// the ability to pass a context and additional request options.
+//
+// See DeleteTransitGatewayRouteTable for details on how to use this API operation.
+//
+// The context must be non-nil and will be used for request cancellation. If
+// the context is nil a panic will occur. In the future the SDK may create
+// sub-contexts for http.Requests. See https://golang.org/pkg/context/
+// for more information on using Contexts.
+func (c *EC2) DeleteTransitGatewayRouteTableWithContext(ctx aws.Context, input *DeleteTransitGatewayRouteTableInput, opts ...request.Option) (*DeleteTransitGatewayRouteTableOutput, error) {
+ req, out := c.DeleteTransitGatewayRouteTableRequest(input)
+ req.SetContext(ctx)
+ req.ApplyOptions(opts...)
+ return out, req.Send()
+}
+
+const opDeleteTransitGatewayVpcAttachment = "DeleteTransitGatewayVpcAttachment"
+
+// DeleteTransitGatewayVpcAttachmentRequest generates a "aws/request.Request" representing the
+// client's request for the DeleteTransitGatewayVpcAttachment operation. The "output" return
+// value will be populated with the request's response once the request completes
+// successfully.
+//
+// Use "Send" method on the returned Request to send the API call to the service.
+// the "output" return value is not valid until after Send returns without error.
+//
+// See DeleteTransitGatewayVpcAttachment for more information on using the DeleteTransitGatewayVpcAttachment
+// API call, and error handling.
+//
+// This method is useful when you want to inject custom logic or configuration
+// into the SDK's request lifecycle. Such as custom headers, or retry logic.
+//
+//
+// // Example sending a request using the DeleteTransitGatewayVpcAttachmentRequest method.
+// req, resp := client.DeleteTransitGatewayVpcAttachmentRequest(params)
+//
+// err := req.Send()
+// if err == nil { // resp is now filled
+// fmt.Println(resp)
+// }
+//
+// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DeleteTransitGatewayVpcAttachment
+func (c *EC2) DeleteTransitGatewayVpcAttachmentRequest(input *DeleteTransitGatewayVpcAttachmentInput) (req *request.Request, output *DeleteTransitGatewayVpcAttachmentOutput) {
+ op := &request.Operation{
+ Name: opDeleteTransitGatewayVpcAttachment,
+ HTTPMethod: "POST",
+ HTTPPath: "/",
+ }
+
+ if input == nil {
+ input = &DeleteTransitGatewayVpcAttachmentInput{}
+ }
+
+ output = &DeleteTransitGatewayVpcAttachmentOutput{}
+ req = c.newRequest(op, input, output)
+ return
+}
+
+// DeleteTransitGatewayVpcAttachment API operation for Amazon Elastic Compute Cloud.
+//
+// Deletes the specified VPC attachment.
+//
+// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
+// with awserr.Error's Code and Message methods to get detailed information about
+// the error.
+//
+// See the AWS API reference guide for Amazon Elastic Compute Cloud's
+// API operation DeleteTransitGatewayVpcAttachment for usage and error information.
+// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DeleteTransitGatewayVpcAttachment
+func (c *EC2) DeleteTransitGatewayVpcAttachment(input *DeleteTransitGatewayVpcAttachmentInput) (*DeleteTransitGatewayVpcAttachmentOutput, error) {
+ req, out := c.DeleteTransitGatewayVpcAttachmentRequest(input)
+ return out, req.Send()
+}
+
+// DeleteTransitGatewayVpcAttachmentWithContext is the same as DeleteTransitGatewayVpcAttachment with the addition of
+// the ability to pass a context and additional request options.
+//
+// See DeleteTransitGatewayVpcAttachment for details on how to use this API operation.
+//
+// The context must be non-nil and will be used for request cancellation. If
+// the context is nil a panic will occur. In the future the SDK may create
+// sub-contexts for http.Requests. See https://golang.org/pkg/context/
+// for more information on using Contexts.
+func (c *EC2) DeleteTransitGatewayVpcAttachmentWithContext(ctx aws.Context, input *DeleteTransitGatewayVpcAttachmentInput, opts ...request.Option) (*DeleteTransitGatewayVpcAttachmentOutput, error) {
+ req, out := c.DeleteTransitGatewayVpcAttachmentRequest(input)
+ req.SetContext(ctx)
+ req.ApplyOptions(opts...)
+ return out, req.Send()
+}
+
const opDeleteVolume = "DeleteVolume"
// DeleteVolumeRequest generates a "aws/request.Request" representing the
// client's request for the DeleteVolume operation. The "output" return
// value will be populated with the request's response once the request completes
-// successfuly.
+// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
@@ -7628,8 +9204,7 @@ func (c *EC2) DeleteVolumeRequest(input *DeleteVolumeInput) (req *request.Reques
output = &DeleteVolumeOutput{}
req = c.newRequest(op, input, output)
- req.Handlers.Unmarshal.Remove(ec2query.UnmarshalHandler)
- req.Handlers.Unmarshal.PushBackNamed(protocol.UnmarshalDiscardBodyHandler)
+ req.Handlers.Unmarshal.Swap(ec2query.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
return
}
@@ -7638,7 +9213,7 @@ func (c *EC2) DeleteVolumeRequest(input *DeleteVolumeInput) (req *request.Reques
// Deletes the specified EBS volume. The volume must be in the available state
// (not attached to an instance).
//
-// The volume may remain in the deleting state for several minutes.
+// The volume can remain in the deleting state for several minutes.
//
// For more information, see Deleting an Amazon EBS Volume (http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ebs-deleting-volume.html)
// in the Amazon Elastic Compute Cloud User Guide.
@@ -7676,7 +9251,7 @@ const opDeleteVpc = "DeleteVpc"
// DeleteVpcRequest generates a "aws/request.Request" representing the
// client's request for the DeleteVpc operation. The "output" return
// value will be populated with the request's response once the request completes
-// successfuly.
+// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
@@ -7710,8 +9285,7 @@ func (c *EC2) DeleteVpcRequest(input *DeleteVpcInput) (req *request.Request, out
output = &DeleteVpcOutput{}
req = c.newRequest(op, input, output)
- req.Handlers.Unmarshal.Remove(ec2query.UnmarshalHandler)
- req.Handlers.Unmarshal.PushBackNamed(protocol.UnmarshalDiscardBodyHandler)
+ req.Handlers.Unmarshal.Swap(ec2query.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
return
}
@@ -7756,7 +9330,7 @@ const opDeleteVpcEndpointConnectionNotifications = "DeleteVpcEndpointConnectionN
// DeleteVpcEndpointConnectionNotificationsRequest generates a "aws/request.Request" representing the
// client's request for the DeleteVpcEndpointConnectionNotifications operation. The "output" return
// value will be populated with the request's response once the request completes
-// successfuly.
+// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
@@ -7830,7 +9404,7 @@ const opDeleteVpcEndpointServiceConfigurations = "DeleteVpcEndpointServiceConfig
// DeleteVpcEndpointServiceConfigurationsRequest generates a "aws/request.Request" representing the
// client's request for the DeleteVpcEndpointServiceConfigurations operation. The "output" return
// value will be populated with the request's response once the request completes
-// successfuly.
+// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
@@ -7907,7 +9481,7 @@ const opDeleteVpcEndpoints = "DeleteVpcEndpoints"
// DeleteVpcEndpointsRequest generates a "aws/request.Request" representing the
// client's request for the DeleteVpcEndpoints operation. The "output" return
// value will be populated with the request's response once the request completes
-// successfuly.
+// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
@@ -7984,7 +9558,7 @@ const opDeleteVpcPeeringConnection = "DeleteVpcPeeringConnection"
// DeleteVpcPeeringConnectionRequest generates a "aws/request.Request" representing the
// client's request for the DeleteVpcPeeringConnection operation. The "output" return
// value will be populated with the request's response once the request completes
-// successfuly.
+// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
@@ -8062,7 +9636,7 @@ const opDeleteVpnConnection = "DeleteVpnConnection"
// DeleteVpnConnectionRequest generates a "aws/request.Request" representing the
// client's request for the DeleteVpnConnection operation. The "output" return
// value will be populated with the request's response once the request completes
-// successfuly.
+// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
@@ -8096,8 +9670,7 @@ func (c *EC2) DeleteVpnConnectionRequest(input *DeleteVpnConnectionInput) (req *
output = &DeleteVpnConnectionOutput{}
req = c.newRequest(op, input, output)
- req.Handlers.Unmarshal.Remove(ec2query.UnmarshalHandler)
- req.Handlers.Unmarshal.PushBackNamed(protocol.UnmarshalDiscardBodyHandler)
+ req.Handlers.Unmarshal.Swap(ec2query.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
return
}
@@ -8147,7 +9720,7 @@ const opDeleteVpnConnectionRoute = "DeleteVpnConnectionRoute"
// DeleteVpnConnectionRouteRequest generates a "aws/request.Request" representing the
// client's request for the DeleteVpnConnectionRoute operation. The "output" return
// value will be populated with the request's response once the request completes
-// successfuly.
+// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
@@ -8181,8 +9754,7 @@ func (c *EC2) DeleteVpnConnectionRouteRequest(input *DeleteVpnConnectionRouteInp
output = &DeleteVpnConnectionRouteOutput{}
req = c.newRequest(op, input, output)
- req.Handlers.Unmarshal.Remove(ec2query.UnmarshalHandler)
- req.Handlers.Unmarshal.PushBackNamed(protocol.UnmarshalDiscardBodyHandler)
+ req.Handlers.Unmarshal.Swap(ec2query.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
return
}
@@ -8226,7 +9798,7 @@ const opDeleteVpnGateway = "DeleteVpnGateway"
// DeleteVpnGatewayRequest generates a "aws/request.Request" representing the
// client's request for the DeleteVpnGateway operation. The "output" return
// value will be populated with the request's response once the request completes
-// successfuly.
+// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
@@ -8260,8 +9832,7 @@ func (c *EC2) DeleteVpnGatewayRequest(input *DeleteVpnGatewayInput) (req *reques
output = &DeleteVpnGatewayOutput{}
req = c.newRequest(op, input, output)
- req.Handlers.Unmarshal.Remove(ec2query.UnmarshalHandler)
- req.Handlers.Unmarshal.PushBackNamed(protocol.UnmarshalDiscardBodyHandler)
+ req.Handlers.Unmarshal.Swap(ec2query.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
return
}
@@ -8301,12 +9872,92 @@ func (c *EC2) DeleteVpnGatewayWithContext(ctx aws.Context, input *DeleteVpnGatew
return out, req.Send()
}
+const opDeprovisionByoipCidr = "DeprovisionByoipCidr"
+
+// DeprovisionByoipCidrRequest generates a "aws/request.Request" representing the
+// client's request for the DeprovisionByoipCidr operation. The "output" return
+// value will be populated with the request's response once the request completes
+// successfully.
+//
+// Use "Send" method on the returned Request to send the API call to the service.
+// the "output" return value is not valid until after Send returns without error.
+//
+// See DeprovisionByoipCidr for more information on using the DeprovisionByoipCidr
+// API call, and error handling.
+//
+// This method is useful when you want to inject custom logic or configuration
+// into the SDK's request lifecycle. Such as custom headers, or retry logic.
+//
+//
+// // Example sending a request using the DeprovisionByoipCidrRequest method.
+// req, resp := client.DeprovisionByoipCidrRequest(params)
+//
+// err := req.Send()
+// if err == nil { // resp is now filled
+// fmt.Println(resp)
+// }
+//
+// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DeprovisionByoipCidr
+func (c *EC2) DeprovisionByoipCidrRequest(input *DeprovisionByoipCidrInput) (req *request.Request, output *DeprovisionByoipCidrOutput) {
+ op := &request.Operation{
+ Name: opDeprovisionByoipCidr,
+ HTTPMethod: "POST",
+ HTTPPath: "/",
+ }
+
+ if input == nil {
+ input = &DeprovisionByoipCidrInput{}
+ }
+
+ output = &DeprovisionByoipCidrOutput{}
+ req = c.newRequest(op, input, output)
+ return
+}
+
+// DeprovisionByoipCidr API operation for Amazon Elastic Compute Cloud.
+//
+// Releases the specified address range that you provisioned for use with your
+// AWS resources through bring your own IP addresses (BYOIP) and deletes the
+// corresponding address pool.
+//
+// Before you can release an address range, you must stop advertising it using
+// WithdrawByoipCidr and you must not have any IP addresses allocated from its
+// address range.
+//
+// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
+// with awserr.Error's Code and Message methods to get detailed information about
+// the error.
+//
+// See the AWS API reference guide for Amazon Elastic Compute Cloud's
+// API operation DeprovisionByoipCidr for usage and error information.
+// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DeprovisionByoipCidr
+func (c *EC2) DeprovisionByoipCidr(input *DeprovisionByoipCidrInput) (*DeprovisionByoipCidrOutput, error) {
+ req, out := c.DeprovisionByoipCidrRequest(input)
+ return out, req.Send()
+}
+
+// DeprovisionByoipCidrWithContext is the same as DeprovisionByoipCidr with the addition of
+// the ability to pass a context and additional request options.
+//
+// See DeprovisionByoipCidr for details on how to use this API operation.
+//
+// The context must be non-nil and will be used for request cancellation. If
+// the context is nil a panic will occur. In the future the SDK may create
+// sub-contexts for http.Requests. See https://golang.org/pkg/context/
+// for more information on using Contexts.
+func (c *EC2) DeprovisionByoipCidrWithContext(ctx aws.Context, input *DeprovisionByoipCidrInput, opts ...request.Option) (*DeprovisionByoipCidrOutput, error) {
+ req, out := c.DeprovisionByoipCidrRequest(input)
+ req.SetContext(ctx)
+ req.ApplyOptions(opts...)
+ return out, req.Send()
+}
+
const opDeregisterImage = "DeregisterImage"
// DeregisterImageRequest generates a "aws/request.Request" representing the
// client's request for the DeregisterImage operation. The "output" return
// value will be populated with the request's response once the request completes
-// successfuly.
+// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
@@ -8340,8 +9991,7 @@ func (c *EC2) DeregisterImageRequest(input *DeregisterImageInput) (req *request.
output = &DeregisterImageOutput{}
req = c.newRequest(op, input, output)
- req.Handlers.Unmarshal.Remove(ec2query.UnmarshalHandler)
- req.Handlers.Unmarshal.PushBackNamed(protocol.UnmarshalDiscardBodyHandler)
+ req.Handlers.Unmarshal.Swap(ec2query.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
return
}
@@ -8390,7 +10040,7 @@ const opDescribeAccountAttributes = "DescribeAccountAttributes"
// DescribeAccountAttributesRequest generates a "aws/request.Request" representing the
// client's request for the DescribeAccountAttributes operation. The "output" return
// value will be populated with the request's response once the request completes
-// successfuly.
+// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
@@ -8482,7 +10132,7 @@ const opDescribeAddresses = "DescribeAddresses"
// DescribeAddressesRequest generates a "aws/request.Request" representing the
// client's request for the DescribeAddresses operation. The "output" return
// value will be populated with the request's response once the request completes
-// successfuly.
+// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
@@ -8560,7 +10210,7 @@ const opDescribeAggregateIdFormat = "DescribeAggregateIdFormat"
// DescribeAggregateIdFormatRequest generates a "aws/request.Request" representing the
// client's request for the DescribeAggregateIdFormat operation. The "output" return
// value will be populated with the request's response once the request completes
-// successfuly.
+// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
@@ -8648,7 +10298,7 @@ const opDescribeAvailabilityZones = "DescribeAvailabilityZones"
// DescribeAvailabilityZonesRequest generates a "aws/request.Request" representing the
// client's request for the DescribeAvailabilityZones operation. The "output" return
// value will be populated with the request's response once the request completes
-// successfuly.
+// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
@@ -8728,7 +10378,7 @@ const opDescribeBundleTasks = "DescribeBundleTasks"
// DescribeBundleTasksRequest generates a "aws/request.Request" representing the
// client's request for the DescribeBundleTasks operation. The "output" return
// value will be populated with the request's response once the request completes
-// successfuly.
+// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
@@ -8802,12 +10452,164 @@ func (c *EC2) DescribeBundleTasksWithContext(ctx aws.Context, input *DescribeBun
return out, req.Send()
}
+const opDescribeByoipCidrs = "DescribeByoipCidrs"
+
+// DescribeByoipCidrsRequest generates a "aws/request.Request" representing the
+// client's request for the DescribeByoipCidrs operation. The "output" return
+// value will be populated with the request's response once the request completes
+// successfully.
+//
+// Use "Send" method on the returned Request to send the API call to the service.
+// the "output" return value is not valid until after Send returns without error.
+//
+// See DescribeByoipCidrs for more information on using the DescribeByoipCidrs
+// API call, and error handling.
+//
+// This method is useful when you want to inject custom logic or configuration
+// into the SDK's request lifecycle. Such as custom headers, or retry logic.
+//
+//
+// // Example sending a request using the DescribeByoipCidrsRequest method.
+// req, resp := client.DescribeByoipCidrsRequest(params)
+//
+// err := req.Send()
+// if err == nil { // resp is now filled
+// fmt.Println(resp)
+// }
+//
+// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeByoipCidrs
+func (c *EC2) DescribeByoipCidrsRequest(input *DescribeByoipCidrsInput) (req *request.Request, output *DescribeByoipCidrsOutput) {
+ op := &request.Operation{
+ Name: opDescribeByoipCidrs,
+ HTTPMethod: "POST",
+ HTTPPath: "/",
+ }
+
+ if input == nil {
+ input = &DescribeByoipCidrsInput{}
+ }
+
+ output = &DescribeByoipCidrsOutput{}
+ req = c.newRequest(op, input, output)
+ return
+}
+
+// DescribeByoipCidrs API operation for Amazon Elastic Compute Cloud.
+//
+// Describes the IP address ranges that were specified in calls to ProvisionByoipCidr.
+//
+// To describe the address pools that were created when you provisioned the
+// address ranges, use DescribePublicIpv4Pools.
+//
+// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
+// with awserr.Error's Code and Message methods to get detailed information about
+// the error.
+//
+// See the AWS API reference guide for Amazon Elastic Compute Cloud's
+// API operation DescribeByoipCidrs for usage and error information.
+// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeByoipCidrs
+func (c *EC2) DescribeByoipCidrs(input *DescribeByoipCidrsInput) (*DescribeByoipCidrsOutput, error) {
+ req, out := c.DescribeByoipCidrsRequest(input)
+ return out, req.Send()
+}
+
+// DescribeByoipCidrsWithContext is the same as DescribeByoipCidrs with the addition of
+// the ability to pass a context and additional request options.
+//
+// See DescribeByoipCidrs for details on how to use this API operation.
+//
+// The context must be non-nil and will be used for request cancellation. If
+// the context is nil a panic will occur. In the future the SDK may create
+// sub-contexts for http.Requests. See https://golang.org/pkg/context/
+// for more information on using Contexts.
+func (c *EC2) DescribeByoipCidrsWithContext(ctx aws.Context, input *DescribeByoipCidrsInput, opts ...request.Option) (*DescribeByoipCidrsOutput, error) {
+ req, out := c.DescribeByoipCidrsRequest(input)
+ req.SetContext(ctx)
+ req.ApplyOptions(opts...)
+ return out, req.Send()
+}
+
+const opDescribeCapacityReservations = "DescribeCapacityReservations"
+
+// DescribeCapacityReservationsRequest generates a "aws/request.Request" representing the
+// client's request for the DescribeCapacityReservations operation. The "output" return
+// value will be populated with the request's response once the request completes
+// successfully.
+//
+// Use "Send" method on the returned Request to send the API call to the service.
+// the "output" return value is not valid until after Send returns without error.
+//
+// See DescribeCapacityReservations for more information on using the DescribeCapacityReservations
+// API call, and error handling.
+//
+// This method is useful when you want to inject custom logic or configuration
+// into the SDK's request lifecycle. Such as custom headers, or retry logic.
+//
+//
+// // Example sending a request using the DescribeCapacityReservationsRequest method.
+// req, resp := client.DescribeCapacityReservationsRequest(params)
+//
+// err := req.Send()
+// if err == nil { // resp is now filled
+// fmt.Println(resp)
+// }
+//
+// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeCapacityReservations
+func (c *EC2) DescribeCapacityReservationsRequest(input *DescribeCapacityReservationsInput) (req *request.Request, output *DescribeCapacityReservationsOutput) {
+ op := &request.Operation{
+ Name: opDescribeCapacityReservations,
+ HTTPMethod: "POST",
+ HTTPPath: "/",
+ }
+
+ if input == nil {
+ input = &DescribeCapacityReservationsInput{}
+ }
+
+ output = &DescribeCapacityReservationsOutput{}
+ req = c.newRequest(op, input, output)
+ return
+}
+
+// DescribeCapacityReservations API operation for Amazon Elastic Compute Cloud.
+//
+// Describes one or more of your Capacity Reservations. The results describe
+// only the Capacity Reservations in the AWS Region that you're currently using.
+//
+// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
+// with awserr.Error's Code and Message methods to get detailed information about
+// the error.
+//
+// See the AWS API reference guide for Amazon Elastic Compute Cloud's
+// API operation DescribeCapacityReservations for usage and error information.
+// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeCapacityReservations
+func (c *EC2) DescribeCapacityReservations(input *DescribeCapacityReservationsInput) (*DescribeCapacityReservationsOutput, error) {
+ req, out := c.DescribeCapacityReservationsRequest(input)
+ return out, req.Send()
+}
+
+// DescribeCapacityReservationsWithContext is the same as DescribeCapacityReservations with the addition of
+// the ability to pass a context and additional request options.
+//
+// See DescribeCapacityReservations for details on how to use this API operation.
+//
+// The context must be non-nil and will be used for request cancellation. If
+// the context is nil a panic will occur. In the future the SDK may create
+// sub-contexts for http.Requests. See https://golang.org/pkg/context/
+// for more information on using Contexts.
+func (c *EC2) DescribeCapacityReservationsWithContext(ctx aws.Context, input *DescribeCapacityReservationsInput, opts ...request.Option) (*DescribeCapacityReservationsOutput, error) {
+ req, out := c.DescribeCapacityReservationsRequest(input)
+ req.SetContext(ctx)
+ req.ApplyOptions(opts...)
+ return out, req.Send()
+}
+
const opDescribeClassicLinkInstances = "DescribeClassicLinkInstances"
// DescribeClassicLinkInstancesRequest generates a "aws/request.Request" representing the
// client's request for the DescribeClassicLinkInstances operation. The "output" return
// value will be populated with the request's response once the request completes
-// successfuly.
+// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
@@ -8848,7 +10650,7 @@ func (c *EC2) DescribeClassicLinkInstancesRequest(input *DescribeClassicLinkInst
//
// Describes one or more of your linked EC2-Classic instances. This request
// only returns information about EC2-Classic instances linked to a VPC through
-// ClassicLink; you cannot use this request to return information about other
+// ClassicLink. You cannot use this request to return information about other
// instances.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
@@ -8879,12 +10681,383 @@ func (c *EC2) DescribeClassicLinkInstancesWithContext(ctx aws.Context, input *De
return out, req.Send()
}
+const opDescribeClientVpnAuthorizationRules = "DescribeClientVpnAuthorizationRules"
+
+// DescribeClientVpnAuthorizationRulesRequest generates a "aws/request.Request" representing the
+// client's request for the DescribeClientVpnAuthorizationRules operation. The "output" return
+// value will be populated with the request's response once the request completes
+// successfully.
+//
+// Use "Send" method on the returned Request to send the API call to the service.
+// the "output" return value is not valid until after Send returns without error.
+//
+// See DescribeClientVpnAuthorizationRules for more information on using the DescribeClientVpnAuthorizationRules
+// API call, and error handling.
+//
+// This method is useful when you want to inject custom logic or configuration
+// into the SDK's request lifecycle. Such as custom headers, or retry logic.
+//
+//
+// // Example sending a request using the DescribeClientVpnAuthorizationRulesRequest method.
+// req, resp := client.DescribeClientVpnAuthorizationRulesRequest(params)
+//
+// err := req.Send()
+// if err == nil { // resp is now filled
+// fmt.Println(resp)
+// }
+//
+// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeClientVpnAuthorizationRules
+func (c *EC2) DescribeClientVpnAuthorizationRulesRequest(input *DescribeClientVpnAuthorizationRulesInput) (req *request.Request, output *DescribeClientVpnAuthorizationRulesOutput) {
+ op := &request.Operation{
+ Name: opDescribeClientVpnAuthorizationRules,
+ HTTPMethod: "POST",
+ HTTPPath: "/",
+ }
+
+ if input == nil {
+ input = &DescribeClientVpnAuthorizationRulesInput{}
+ }
+
+ output = &DescribeClientVpnAuthorizationRulesOutput{}
+ req = c.newRequest(op, input, output)
+ return
+}
+
+// DescribeClientVpnAuthorizationRules API operation for Amazon Elastic Compute Cloud.
+//
+// Describes the authorization rules for a specified Client VPN endpoint.
+//
+// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
+// with awserr.Error's Code and Message methods to get detailed information about
+// the error.
+//
+// See the AWS API reference guide for Amazon Elastic Compute Cloud's
+// API operation DescribeClientVpnAuthorizationRules for usage and error information.
+// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeClientVpnAuthorizationRules
+func (c *EC2) DescribeClientVpnAuthorizationRules(input *DescribeClientVpnAuthorizationRulesInput) (*DescribeClientVpnAuthorizationRulesOutput, error) {
+ req, out := c.DescribeClientVpnAuthorizationRulesRequest(input)
+ return out, req.Send()
+}
+
+// DescribeClientVpnAuthorizationRulesWithContext is the same as DescribeClientVpnAuthorizationRules with the addition of
+// the ability to pass a context and additional request options.
+//
+// See DescribeClientVpnAuthorizationRules for details on how to use this API operation.
+//
+// The context must be non-nil and will be used for request cancellation. If
+// the context is nil a panic will occur. In the future the SDK may create
+// sub-contexts for http.Requests. See https://golang.org/pkg/context/
+// for more information on using Contexts.
+func (c *EC2) DescribeClientVpnAuthorizationRulesWithContext(ctx aws.Context, input *DescribeClientVpnAuthorizationRulesInput, opts ...request.Option) (*DescribeClientVpnAuthorizationRulesOutput, error) {
+ req, out := c.DescribeClientVpnAuthorizationRulesRequest(input)
+ req.SetContext(ctx)
+ req.ApplyOptions(opts...)
+ return out, req.Send()
+}
+
+const opDescribeClientVpnConnections = "DescribeClientVpnConnections"
+
+// DescribeClientVpnConnectionsRequest generates a "aws/request.Request" representing the
+// client's request for the DescribeClientVpnConnections operation. The "output" return
+// value will be populated with the request's response once the request completes
+// successfully.
+//
+// Use "Send" method on the returned Request to send the API call to the service.
+// the "output" return value is not valid until after Send returns without error.
+//
+// See DescribeClientVpnConnections for more information on using the DescribeClientVpnConnections
+// API call, and error handling.
+//
+// This method is useful when you want to inject custom logic or configuration
+// into the SDK's request lifecycle. Such as custom headers, or retry logic.
+//
+//
+// // Example sending a request using the DescribeClientVpnConnectionsRequest method.
+// req, resp := client.DescribeClientVpnConnectionsRequest(params)
+//
+// err := req.Send()
+// if err == nil { // resp is now filled
+// fmt.Println(resp)
+// }
+//
+// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeClientVpnConnections
+func (c *EC2) DescribeClientVpnConnectionsRequest(input *DescribeClientVpnConnectionsInput) (req *request.Request, output *DescribeClientVpnConnectionsOutput) {
+ op := &request.Operation{
+ Name: opDescribeClientVpnConnections,
+ HTTPMethod: "POST",
+ HTTPPath: "/",
+ }
+
+ if input == nil {
+ input = &DescribeClientVpnConnectionsInput{}
+ }
+
+ output = &DescribeClientVpnConnectionsOutput{}
+ req = c.newRequest(op, input, output)
+ return
+}
+
+// DescribeClientVpnConnections API operation for Amazon Elastic Compute Cloud.
+//
+// Describes active client connections and connections that have been terminated
+// within the last 60 minutes for the specified Client VPN endpoint.
+//
+// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
+// with awserr.Error's Code and Message methods to get detailed information about
+// the error.
+//
+// See the AWS API reference guide for Amazon Elastic Compute Cloud's
+// API operation DescribeClientVpnConnections for usage and error information.
+// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeClientVpnConnections
+func (c *EC2) DescribeClientVpnConnections(input *DescribeClientVpnConnectionsInput) (*DescribeClientVpnConnectionsOutput, error) {
+ req, out := c.DescribeClientVpnConnectionsRequest(input)
+ return out, req.Send()
+}
+
+// DescribeClientVpnConnectionsWithContext is the same as DescribeClientVpnConnections with the addition of
+// the ability to pass a context and additional request options.
+//
+// See DescribeClientVpnConnections for details on how to use this API operation.
+//
+// The context must be non-nil and will be used for request cancellation. If
+// the context is nil a panic will occur. In the future the SDK may create
+// sub-contexts for http.Requests. See https://golang.org/pkg/context/
+// for more information on using Contexts.
+func (c *EC2) DescribeClientVpnConnectionsWithContext(ctx aws.Context, input *DescribeClientVpnConnectionsInput, opts ...request.Option) (*DescribeClientVpnConnectionsOutput, error) {
+ req, out := c.DescribeClientVpnConnectionsRequest(input)
+ req.SetContext(ctx)
+ req.ApplyOptions(opts...)
+ return out, req.Send()
+}
+
+const opDescribeClientVpnEndpoints = "DescribeClientVpnEndpoints"
+
+// DescribeClientVpnEndpointsRequest generates a "aws/request.Request" representing the
+// client's request for the DescribeClientVpnEndpoints operation. The "output" return
+// value will be populated with the request's response once the request completes
+// successfully.
+//
+// Use "Send" method on the returned Request to send the API call to the service.
+// the "output" return value is not valid until after Send returns without error.
+//
+// See DescribeClientVpnEndpoints for more information on using the DescribeClientVpnEndpoints
+// API call, and error handling.
+//
+// This method is useful when you want to inject custom logic or configuration
+// into the SDK's request lifecycle. Such as custom headers, or retry logic.
+//
+//
+// // Example sending a request using the DescribeClientVpnEndpointsRequest method.
+// req, resp := client.DescribeClientVpnEndpointsRequest(params)
+//
+// err := req.Send()
+// if err == nil { // resp is now filled
+// fmt.Println(resp)
+// }
+//
+// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeClientVpnEndpoints
+func (c *EC2) DescribeClientVpnEndpointsRequest(input *DescribeClientVpnEndpointsInput) (req *request.Request, output *DescribeClientVpnEndpointsOutput) {
+ op := &request.Operation{
+ Name: opDescribeClientVpnEndpoints,
+ HTTPMethod: "POST",
+ HTTPPath: "/",
+ }
+
+ if input == nil {
+ input = &DescribeClientVpnEndpointsInput{}
+ }
+
+ output = &DescribeClientVpnEndpointsOutput{}
+ req = c.newRequest(op, input, output)
+ return
+}
+
+// DescribeClientVpnEndpoints API operation for Amazon Elastic Compute Cloud.
+//
+// Describes one or more Client VPN endpoints in the account.
+//
+// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
+// with awserr.Error's Code and Message methods to get detailed information about
+// the error.
+//
+// See the AWS API reference guide for Amazon Elastic Compute Cloud's
+// API operation DescribeClientVpnEndpoints for usage and error information.
+// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeClientVpnEndpoints
+func (c *EC2) DescribeClientVpnEndpoints(input *DescribeClientVpnEndpointsInput) (*DescribeClientVpnEndpointsOutput, error) {
+ req, out := c.DescribeClientVpnEndpointsRequest(input)
+ return out, req.Send()
+}
+
+// DescribeClientVpnEndpointsWithContext is the same as DescribeClientVpnEndpoints with the addition of
+// the ability to pass a context and additional request options.
+//
+// See DescribeClientVpnEndpoints for details on how to use this API operation.
+//
+// The context must be non-nil and will be used for request cancellation. If
+// the context is nil a panic will occur. In the future the SDK may create
+// sub-contexts for http.Requests. See https://golang.org/pkg/context/
+// for more information on using Contexts.
+func (c *EC2) DescribeClientVpnEndpointsWithContext(ctx aws.Context, input *DescribeClientVpnEndpointsInput, opts ...request.Option) (*DescribeClientVpnEndpointsOutput, error) {
+ req, out := c.DescribeClientVpnEndpointsRequest(input)
+ req.SetContext(ctx)
+ req.ApplyOptions(opts...)
+ return out, req.Send()
+}
+
+const opDescribeClientVpnRoutes = "DescribeClientVpnRoutes"
+
+// DescribeClientVpnRoutesRequest generates a "aws/request.Request" representing the
+// client's request for the DescribeClientVpnRoutes operation. The "output" return
+// value will be populated with the request's response once the request completes
+// successfully.
+//
+// Use "Send" method on the returned Request to send the API call to the service.
+// the "output" return value is not valid until after Send returns without error.
+//
+// See DescribeClientVpnRoutes for more information on using the DescribeClientVpnRoutes
+// API call, and error handling.
+//
+// This method is useful when you want to inject custom logic or configuration
+// into the SDK's request lifecycle. Such as custom headers, or retry logic.
+//
+//
+// // Example sending a request using the DescribeClientVpnRoutesRequest method.
+// req, resp := client.DescribeClientVpnRoutesRequest(params)
+//
+// err := req.Send()
+// if err == nil { // resp is now filled
+// fmt.Println(resp)
+// }
+//
+// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeClientVpnRoutes
+func (c *EC2) DescribeClientVpnRoutesRequest(input *DescribeClientVpnRoutesInput) (req *request.Request, output *DescribeClientVpnRoutesOutput) {
+ op := &request.Operation{
+ Name: opDescribeClientVpnRoutes,
+ HTTPMethod: "POST",
+ HTTPPath: "/",
+ }
+
+ if input == nil {
+ input = &DescribeClientVpnRoutesInput{}
+ }
+
+ output = &DescribeClientVpnRoutesOutput{}
+ req = c.newRequest(op, input, output)
+ return
+}
+
+// DescribeClientVpnRoutes API operation for Amazon Elastic Compute Cloud.
+//
+// Describes the routes for the specified Client VPN endpoint.
+//
+// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
+// with awserr.Error's Code and Message methods to get detailed information about
+// the error.
+//
+// See the AWS API reference guide for Amazon Elastic Compute Cloud's
+// API operation DescribeClientVpnRoutes for usage and error information.
+// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeClientVpnRoutes
+func (c *EC2) DescribeClientVpnRoutes(input *DescribeClientVpnRoutesInput) (*DescribeClientVpnRoutesOutput, error) {
+ req, out := c.DescribeClientVpnRoutesRequest(input)
+ return out, req.Send()
+}
+
+// DescribeClientVpnRoutesWithContext is the same as DescribeClientVpnRoutes with the addition of
+// the ability to pass a context and additional request options.
+//
+// See DescribeClientVpnRoutes for details on how to use this API operation.
+//
+// The context must be non-nil and will be used for request cancellation. If
+// the context is nil a panic will occur. In the future the SDK may create
+// sub-contexts for http.Requests. See https://golang.org/pkg/context/
+// for more information on using Contexts.
+func (c *EC2) DescribeClientVpnRoutesWithContext(ctx aws.Context, input *DescribeClientVpnRoutesInput, opts ...request.Option) (*DescribeClientVpnRoutesOutput, error) {
+ req, out := c.DescribeClientVpnRoutesRequest(input)
+ req.SetContext(ctx)
+ req.ApplyOptions(opts...)
+ return out, req.Send()
+}
+
+const opDescribeClientVpnTargetNetworks = "DescribeClientVpnTargetNetworks"
+
+// DescribeClientVpnTargetNetworksRequest generates a "aws/request.Request" representing the
+// client's request for the DescribeClientVpnTargetNetworks operation. The "output" return
+// value will be populated with the request's response once the request completes
+// successfully.
+//
+// Use "Send" method on the returned Request to send the API call to the service.
+// the "output" return value is not valid until after Send returns without error.
+//
+// See DescribeClientVpnTargetNetworks for more information on using the DescribeClientVpnTargetNetworks
+// API call, and error handling.
+//
+// This method is useful when you want to inject custom logic or configuration
+// into the SDK's request lifecycle. Such as custom headers, or retry logic.
+//
+//
+// // Example sending a request using the DescribeClientVpnTargetNetworksRequest method.
+// req, resp := client.DescribeClientVpnTargetNetworksRequest(params)
+//
+// err := req.Send()
+// if err == nil { // resp is now filled
+// fmt.Println(resp)
+// }
+//
+// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeClientVpnTargetNetworks
+func (c *EC2) DescribeClientVpnTargetNetworksRequest(input *DescribeClientVpnTargetNetworksInput) (req *request.Request, output *DescribeClientVpnTargetNetworksOutput) {
+ op := &request.Operation{
+ Name: opDescribeClientVpnTargetNetworks,
+ HTTPMethod: "POST",
+ HTTPPath: "/",
+ }
+
+ if input == nil {
+ input = &DescribeClientVpnTargetNetworksInput{}
+ }
+
+ output = &DescribeClientVpnTargetNetworksOutput{}
+ req = c.newRequest(op, input, output)
+ return
+}
+
+// DescribeClientVpnTargetNetworks API operation for Amazon Elastic Compute Cloud.
+//
+// Describes the target networks associated with the specified Client VPN endpoint.
+//
+// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
+// with awserr.Error's Code and Message methods to get detailed information about
+// the error.
+//
+// See the AWS API reference guide for Amazon Elastic Compute Cloud's
+// API operation DescribeClientVpnTargetNetworks for usage and error information.
+// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeClientVpnTargetNetworks
+func (c *EC2) DescribeClientVpnTargetNetworks(input *DescribeClientVpnTargetNetworksInput) (*DescribeClientVpnTargetNetworksOutput, error) {
+ req, out := c.DescribeClientVpnTargetNetworksRequest(input)
+ return out, req.Send()
+}
+
+// DescribeClientVpnTargetNetworksWithContext is the same as DescribeClientVpnTargetNetworks with the addition of
+// the ability to pass a context and additional request options.
+//
+// See DescribeClientVpnTargetNetworks for details on how to use this API operation.
+//
+// The context must be non-nil and will be used for request cancellation. If
+// the context is nil a panic will occur. In the future the SDK may create
+// sub-contexts for http.Requests. See https://golang.org/pkg/context/
+// for more information on using Contexts.
+func (c *EC2) DescribeClientVpnTargetNetworksWithContext(ctx aws.Context, input *DescribeClientVpnTargetNetworksInput, opts ...request.Option) (*DescribeClientVpnTargetNetworksOutput, error) {
+ req, out := c.DescribeClientVpnTargetNetworksRequest(input)
+ req.SetContext(ctx)
+ req.ApplyOptions(opts...)
+ return out, req.Send()
+}
+
const opDescribeConversionTasks = "DescribeConversionTasks"
// DescribeConversionTasksRequest generates a "aws/request.Request" representing the
// client's request for the DescribeConversionTasks operation. The "output" return
// value will be populated with the request's response once the request completes
-// successfuly.
+// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
@@ -8962,7 +11135,7 @@ const opDescribeCustomerGateways = "DescribeCustomerGateways"
// DescribeCustomerGatewaysRequest generates a "aws/request.Request" representing the
// client's request for the DescribeCustomerGateways operation. The "output" return
// value will be populated with the request's response once the request completes
-// successfuly.
+// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
@@ -9040,7 +11213,7 @@ const opDescribeDhcpOptions = "DescribeDhcpOptions"
// DescribeDhcpOptionsRequest generates a "aws/request.Request" representing the
// client's request for the DescribeDhcpOptions operation. The "output" return
// value will be populated with the request's response once the request completes
-// successfuly.
+// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
@@ -9081,7 +11254,7 @@ func (c *EC2) DescribeDhcpOptionsRequest(input *DescribeDhcpOptionsInput) (req *
//
// Describes one or more of your DHCP options sets.
//
-// For more information about DHCP options sets, see DHCP Options Sets (http://docs.aws.amazon.com/AmazonVPC/latest/UserGuide/VPC_DHCP_Options.html)
+// For more information, see DHCP Options Sets (http://docs.aws.amazon.com/AmazonVPC/latest/UserGuide/VPC_DHCP_Options.html)
// in the Amazon Virtual Private Cloud User Guide.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
@@ -9117,7 +11290,7 @@ const opDescribeEgressOnlyInternetGateways = "DescribeEgressOnlyInternetGateways
// DescribeEgressOnlyInternetGatewaysRequest generates a "aws/request.Request" representing the
// client's request for the DescribeEgressOnlyInternetGateways operation. The "output" return
// value will be populated with the request's response once the request completes
-// successfuly.
+// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
@@ -9156,7 +11329,7 @@ func (c *EC2) DescribeEgressOnlyInternetGatewaysRequest(input *DescribeEgressOnl
// DescribeEgressOnlyInternetGateways API operation for Amazon Elastic Compute Cloud.
//
-// Describes one or more of your egress-only Internet gateways.
+// Describes one or more of your egress-only internet gateways.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
@@ -9191,7 +11364,7 @@ const opDescribeElasticGpus = "DescribeElasticGpus"
// DescribeElasticGpusRequest generates a "aws/request.Request" representing the
// client's request for the DescribeElasticGpus operation. The "output" return
// value will be populated with the request's response once the request completes
-// successfuly.
+// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
@@ -9230,8 +11403,9 @@ func (c *EC2) DescribeElasticGpusRequest(input *DescribeElasticGpusInput) (req *
// DescribeElasticGpus API operation for Amazon Elastic Compute Cloud.
//
-// Describes the Elastic GPUs associated with your instances. For more information
-// about Elastic GPUs, see Amazon EC2 Elastic GPUs (http://docs.aws.amazon.com/AWSEC2/latest/WindowsGuide/elastic-gpus.html).
+// Describes the Elastic Graphics accelerator associated with your instances.
+// For more information about Elastic Graphics, see Amazon Elastic Graphics
+// (http://docs.aws.amazon.com/AWSEC2/latest/WindowsGuide/elastic-graphics.html).
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
@@ -9266,7 +11440,7 @@ const opDescribeExportTasks = "DescribeExportTasks"
// DescribeExportTasksRequest generates a "aws/request.Request" representing the
// client's request for the DescribeExportTasks operation. The "output" return
// value will be populated with the request's response once the request completes
-// successfuly.
+// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
@@ -9340,7 +11514,7 @@ const opDescribeFleetHistory = "DescribeFleetHistory"
// DescribeFleetHistoryRequest generates a "aws/request.Request" representing the
// client's request for the DescribeFleetHistory operation. The "output" return
// value will be populated with the request's response once the request completes
-// successfuly.
+// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
@@ -9414,7 +11588,7 @@ const opDescribeFleetInstances = "DescribeFleetInstances"
// DescribeFleetInstancesRequest generates a "aws/request.Request" representing the
// client's request for the DescribeFleetInstances operation. The "output" return
// value will be populated with the request's response once the request completes
-// successfuly.
+// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
@@ -9488,7 +11662,7 @@ const opDescribeFleets = "DescribeFleets"
// DescribeFleetsRequest generates a "aws/request.Request" representing the
// client's request for the DescribeFleets operation. The "output" return
// value will be populated with the request's response once the request completes
-// successfuly.
+// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
@@ -9527,7 +11701,7 @@ func (c *EC2) DescribeFleetsRequest(input *DescribeFleetsInput) (req *request.Re
// DescribeFleets API operation for Amazon Elastic Compute Cloud.
//
-// Describes the specified EC2 Fleet.
+// Describes one or more of your EC2 Fleets.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
@@ -9562,7 +11736,7 @@ const opDescribeFlowLogs = "DescribeFlowLogs"
// DescribeFlowLogsRequest generates a "aws/request.Request" representing the
// client's request for the DescribeFlowLogs operation. The "output" return
// value will be populated with the request's response once the request completes
-// successfuly.
+// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
@@ -9638,7 +11812,7 @@ const opDescribeFpgaImageAttribute = "DescribeFpgaImageAttribute"
// DescribeFpgaImageAttributeRequest generates a "aws/request.Request" representing the
// client's request for the DescribeFpgaImageAttribute operation. The "output" return
// value will be populated with the request's response once the request completes
-// successfuly.
+// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
@@ -9712,7 +11886,7 @@ const opDescribeFpgaImages = "DescribeFpgaImages"
// DescribeFpgaImagesRequest generates a "aws/request.Request" representing the
// client's request for the DescribeFpgaImages operation. The "output" return
// value will be populated with the request's response once the request completes
-// successfuly.
+// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
@@ -9788,7 +11962,7 @@ const opDescribeHostReservationOfferings = "DescribeHostReservationOfferings"
// DescribeHostReservationOfferingsRequest generates a "aws/request.Request" representing the
// client's request for the DescribeHostReservationOfferings operation. The "output" return
// value will be populated with the request's response once the request completes
-// successfuly.
+// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
@@ -9827,14 +12001,14 @@ func (c *EC2) DescribeHostReservationOfferingsRequest(input *DescribeHostReserva
// DescribeHostReservationOfferings API operation for Amazon Elastic Compute Cloud.
//
-// Describes the Dedicated Host Reservations that are available to purchase.
+// Describes the Dedicated Host reservations that are available to purchase.
//
-// The results describe all the Dedicated Host Reservation offerings, including
-// offerings that may not match the instance family and region of your Dedicated
-// Hosts. When purchasing an offering, ensure that the the instance family and
-// region of the offering matches that of the Dedicated Host/s it will be associated
-// with. For an overview of supported instance types, see Dedicated Hosts Overview
-// (http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/dedicated-hosts-overview.html)
+// The results describe all the Dedicated Host reservation offerings, including
+// offerings that may not match the instance family and Region of your Dedicated
+// Hosts. When purchasing an offering, ensure that the instance family and Region
+// of the offering matches that of the Dedicated Hosts with which it is to be
+// associated. For more information about supported instance types, see Dedicated
+// Hosts Overview (http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/dedicated-hosts-overview.html)
// in the Amazon Elastic Compute Cloud User Guide.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
@@ -9870,7 +12044,7 @@ const opDescribeHostReservations = "DescribeHostReservations"
// DescribeHostReservationsRequest generates a "aws/request.Request" representing the
// client's request for the DescribeHostReservations operation. The "output" return
// value will be populated with the request's response once the request completes
-// successfuly.
+// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
@@ -9909,8 +12083,7 @@ func (c *EC2) DescribeHostReservationsRequest(input *DescribeHostReservationsInp
// DescribeHostReservations API operation for Amazon Elastic Compute Cloud.
//
-// Describes Dedicated Host Reservations which are associated with Dedicated
-// Hosts in your account.
+// Describes reservations that are associated with Dedicated Hosts in your account.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
@@ -9945,7 +12118,7 @@ const opDescribeHosts = "DescribeHosts"
// DescribeHostsRequest generates a "aws/request.Request" representing the
// client's request for the DescribeHosts operation. The "output" return
// value will be populated with the request's response once the request completes
-// successfuly.
+// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
@@ -9986,9 +12159,9 @@ func (c *EC2) DescribeHostsRequest(input *DescribeHostsInput) (req *request.Requ
//
// Describes one or more of your Dedicated Hosts.
//
-// The results describe only the Dedicated Hosts in the region you're currently
+// The results describe only the Dedicated Hosts in the Region you're currently
// using. All listed instances consume capacity on your Dedicated Host. Dedicated
-// Hosts that have recently been released will be listed with the state released.
+// Hosts that have recently been released are listed with the state released.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
@@ -10023,7 +12196,7 @@ const opDescribeIamInstanceProfileAssociations = "DescribeIamInstanceProfileAsso
// DescribeIamInstanceProfileAssociationsRequest generates a "aws/request.Request" representing the
// client's request for the DescribeIamInstanceProfileAssociations operation. The "output" return
// value will be populated with the request's response once the request completes
-// successfuly.
+// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
@@ -10097,7 +12270,7 @@ const opDescribeIdFormat = "DescribeIdFormat"
// DescribeIdFormatRequest generates a "aws/request.Request" representing the
// client's request for the DescribeIdFormat operation. The "output" return
// value will be populated with the request's response once the request completes
-// successfuly.
+// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
@@ -10189,7 +12362,7 @@ const opDescribeIdentityIdFormat = "DescribeIdentityIdFormat"
// DescribeIdentityIdFormatRequest generates a "aws/request.Request" representing the
// client's request for the DescribeIdentityIdFormat operation. The "output" return
// value will be populated with the request's response once the request completes
-// successfuly.
+// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
@@ -10279,7 +12452,7 @@ const opDescribeImageAttribute = "DescribeImageAttribute"
// DescribeImageAttributeRequest generates a "aws/request.Request" representing the
// client's request for the DescribeImageAttribute operation. The "output" return
// value will be populated with the request's response once the request completes
-// successfuly.
+// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
@@ -10354,7 +12527,7 @@ const opDescribeImages = "DescribeImages"
// DescribeImagesRequest generates a "aws/request.Request" representing the
// client's request for the DescribeImages operation. The "output" return
// value will be populated with the request's response once the request completes
-// successfuly.
+// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
@@ -10434,7 +12607,7 @@ const opDescribeImportImageTasks = "DescribeImportImageTasks"
// DescribeImportImageTasksRequest generates a "aws/request.Request" representing the
// client's request for the DescribeImportImageTasks operation. The "output" return
// value will be populated with the request's response once the request completes
-// successfuly.
+// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
@@ -10509,7 +12682,7 @@ const opDescribeImportSnapshotTasks = "DescribeImportSnapshotTasks"
// DescribeImportSnapshotTasksRequest generates a "aws/request.Request" representing the
// client's request for the DescribeImportSnapshotTasks operation. The "output" return
// value will be populated with the request's response once the request completes
-// successfuly.
+// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
@@ -10583,7 +12756,7 @@ const opDescribeInstanceAttribute = "DescribeInstanceAttribute"
// DescribeInstanceAttributeRequest generates a "aws/request.Request" representing the
// client's request for the DescribeInstanceAttribute operation. The "output" return
// value will be populated with the request's response once the request completes
-// successfuly.
+// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
@@ -10661,7 +12834,7 @@ const opDescribeInstanceCreditSpecifications = "DescribeInstanceCreditSpecificat
// DescribeInstanceCreditSpecificationsRequest generates a "aws/request.Request" representing the
// client's request for the DescribeInstanceCreditSpecifications operation. The "output" return
// value will be populated with the request's response once the request completes
-// successfuly.
+// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
@@ -10700,14 +12873,19 @@ func (c *EC2) DescribeInstanceCreditSpecificationsRequest(input *DescribeInstanc
// DescribeInstanceCreditSpecifications API operation for Amazon Elastic Compute Cloud.
//
-// Describes the credit option for CPU usage of one or more of your T2 instances.
-// The credit options are standard and unlimited.
+// Describes the credit option for CPU usage of one or more of your T2 or T3
+// instances. The credit options are standard and unlimited.
//
-// If you do not specify an instance ID, Amazon EC2 returns only the T2 instances
-// with the unlimited credit option. If you specify one or more instance IDs,
-// Amazon EC2 returns the credit option (standard or unlimited) of those instances.
-// If you specify an instance ID that is not valid, such as an instance that
-// is not a T2 instance, an error is returned.
+// If you do not specify an instance ID, Amazon EC2 returns T2 and T3 instances
+// with the unlimited credit option, as well as instances that were previously
+// configured as T2 or T3 with the unlimited credit option. For example, if
+// you resize a T2 instance, while it is configured as unlimited, to an M4 instance,
+// Amazon EC2 returns the M4 instance.
+//
+// If you specify one or more instance IDs, Amazon EC2 returns the credit option
+// (standard or unlimited) of those instances. If you specify an instance ID
+// that is not valid, such as an instance that is not a T2 or T3 instance, an
+// error is returned.
//
// Recently terminated instances might appear in the returned results. This
// interval is usually less than one hour.
@@ -10717,7 +12895,7 @@ func (c *EC2) DescribeInstanceCreditSpecificationsRequest(input *DescribeInstanc
// all, the call fails. If you specify only instance IDs in an unaffected zone,
// the call works normally.
//
-// For more information, see T2 Instances (http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/t2-instances.html)
+// For more information, see Burstable Performance Instances (http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/burstable-performance-instances.html)
// in the Amazon Elastic Compute Cloud User Guide.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
@@ -10753,7 +12931,7 @@ const opDescribeInstanceStatus = "DescribeInstanceStatus"
// DescribeInstanceStatusRequest generates a "aws/request.Request" representing the
// client's request for the DescribeInstanceStatus operation. The "output" return
// value will be populated with the request's response once the request completes
-// successfuly.
+// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
@@ -10904,7 +13082,7 @@ const opDescribeInstances = "DescribeInstances"
// DescribeInstancesRequest generates a "aws/request.Request" representing the
// client's request for the DescribeInstances operation. The "output" return
// value will be populated with the request's response once the request completes
-// successfuly.
+// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
@@ -11049,7 +13227,7 @@ const opDescribeInternetGateways = "DescribeInternetGateways"
// DescribeInternetGatewaysRequest generates a "aws/request.Request" representing the
// client's request for the DescribeInternetGateways operation. The "output" return
// value will be populated with the request's response once the request completes
-// successfuly.
+// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
@@ -11088,7 +13266,7 @@ func (c *EC2) DescribeInternetGatewaysRequest(input *DescribeInternetGatewaysInp
// DescribeInternetGateways API operation for Amazon Elastic Compute Cloud.
//
-// Describes one or more of your Internet gateways.
+// Describes one or more of your internet gateways.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
@@ -11123,7 +13301,7 @@ const opDescribeKeyPairs = "DescribeKeyPairs"
// DescribeKeyPairsRequest generates a "aws/request.Request" representing the
// client's request for the DescribeKeyPairs operation. The "output" return
// value will be populated with the request's response once the request completes
-// successfuly.
+// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
@@ -11200,7 +13378,7 @@ const opDescribeLaunchTemplateVersions = "DescribeLaunchTemplateVersions"
// DescribeLaunchTemplateVersionsRequest generates a "aws/request.Request" representing the
// client's request for the DescribeLaunchTemplateVersions operation. The "output" return
// value will be populated with the request's response once the request completes
-// successfuly.
+// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
@@ -11275,7 +13453,7 @@ const opDescribeLaunchTemplates = "DescribeLaunchTemplates"
// DescribeLaunchTemplatesRequest generates a "aws/request.Request" representing the
// client's request for the DescribeLaunchTemplates operation. The "output" return
// value will be populated with the request's response once the request completes
-// successfuly.
+// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
@@ -11349,7 +13527,7 @@ const opDescribeMovingAddresses = "DescribeMovingAddresses"
// DescribeMovingAddressesRequest generates a "aws/request.Request" representing the
// client's request for the DescribeMovingAddresses operation. The "output" return
// value will be populated with the request's response once the request completes
-// successfuly.
+// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
@@ -11425,7 +13603,7 @@ const opDescribeNatGateways = "DescribeNatGateways"
// DescribeNatGatewaysRequest generates a "aws/request.Request" representing the
// client's request for the DescribeNatGateways operation. The "output" return
// value will be populated with the request's response once the request completes
-// successfuly.
+// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
@@ -11470,7 +13648,7 @@ func (c *EC2) DescribeNatGatewaysRequest(input *DescribeNatGatewaysInput) (req *
// DescribeNatGateways API operation for Amazon Elastic Compute Cloud.
//
-// Describes one or more of the your NAT gateways.
+// Describes one or more of your NAT gateways.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
@@ -11555,7 +13733,7 @@ const opDescribeNetworkAcls = "DescribeNetworkAcls"
// DescribeNetworkAclsRequest generates a "aws/request.Request" representing the
// client's request for the DescribeNetworkAcls operation. The "output" return
// value will be populated with the request's response once the request completes
-// successfuly.
+// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
@@ -11596,7 +13774,7 @@ func (c *EC2) DescribeNetworkAclsRequest(input *DescribeNetworkAclsInput) (req *
//
// Describes one or more of your network ACLs.
//
-// For more information about network ACLs, see Network ACLs (http://docs.aws.amazon.com/AmazonVPC/latest/UserGuide/VPC_ACLs.html)
+// For more information, see Network ACLs (http://docs.aws.amazon.com/AmazonVPC/latest/UserGuide/VPC_ACLs.html)
// in the Amazon Virtual Private Cloud User Guide.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
@@ -11632,7 +13810,7 @@ const opDescribeNetworkInterfaceAttribute = "DescribeNetworkInterfaceAttribute"
// DescribeNetworkInterfaceAttributeRequest generates a "aws/request.Request" representing the
// client's request for the DescribeNetworkInterfaceAttribute operation. The "output" return
// value will be populated with the request's response once the request completes
-// successfuly.
+// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
@@ -11707,7 +13885,7 @@ const opDescribeNetworkInterfacePermissions = "DescribeNetworkInterfacePermissio
// DescribeNetworkInterfacePermissionsRequest generates a "aws/request.Request" representing the
// client's request for the DescribeNetworkInterfacePermissions operation. The "output" return
// value will be populated with the request's response once the request completes
-// successfuly.
+// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
@@ -11781,7 +13959,7 @@ const opDescribeNetworkInterfaces = "DescribeNetworkInterfaces"
// DescribeNetworkInterfacesRequest generates a "aws/request.Request" representing the
// client's request for the DescribeNetworkInterfaces operation. The "output" return
// value will be populated with the request's response once the request completes
-// successfuly.
+// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
@@ -11807,6 +13985,12 @@ func (c *EC2) DescribeNetworkInterfacesRequest(input *DescribeNetworkInterfacesI
Name: opDescribeNetworkInterfaces,
HTTPMethod: "POST",
HTTPPath: "/",
+ Paginator: &request.Paginator{
+ InputTokens: []string{"NextToken"},
+ OutputTokens: []string{"NextToken"},
+ LimitToken: "MaxResults",
+ TruncationToken: "",
+ },
}
if input == nil {
@@ -11850,12 +14034,62 @@ func (c *EC2) DescribeNetworkInterfacesWithContext(ctx aws.Context, input *Descr
return out, req.Send()
}
+// DescribeNetworkInterfacesPages iterates over the pages of a DescribeNetworkInterfaces operation,
+// calling the "fn" function with the response data for each page. To stop
+// iterating, return false from the fn function.
+//
+// See DescribeNetworkInterfaces method for more information on how to use this operation.
+//
+// Note: This operation can generate multiple requests to a service.
+//
+// // Example iterating over at most 3 pages of a DescribeNetworkInterfaces operation.
+// pageNum := 0
+// err := client.DescribeNetworkInterfacesPages(params,
+// func(page *DescribeNetworkInterfacesOutput, lastPage bool) bool {
+// pageNum++
+// fmt.Println(page)
+// return pageNum <= 3
+// })
+//
+func (c *EC2) DescribeNetworkInterfacesPages(input *DescribeNetworkInterfacesInput, fn func(*DescribeNetworkInterfacesOutput, bool) bool) error {
+ return c.DescribeNetworkInterfacesPagesWithContext(aws.BackgroundContext(), input, fn)
+}
+
+// DescribeNetworkInterfacesPagesWithContext same as DescribeNetworkInterfacesPages except
+// it takes a Context and allows setting request options on the pages.
+//
+// The context must be non-nil and will be used for request cancellation. If
+// the context is nil a panic will occur. In the future the SDK may create
+// sub-contexts for http.Requests. See https://golang.org/pkg/context/
+// for more information on using Contexts.
+func (c *EC2) DescribeNetworkInterfacesPagesWithContext(ctx aws.Context, input *DescribeNetworkInterfacesInput, fn func(*DescribeNetworkInterfacesOutput, bool) bool, opts ...request.Option) error {
+ p := request.Pagination{
+ NewRequest: func() (*request.Request, error) {
+ var inCpy *DescribeNetworkInterfacesInput
+ if input != nil {
+ tmp := *input
+ inCpy = &tmp
+ }
+ req, _ := c.DescribeNetworkInterfacesRequest(inCpy)
+ req.SetContext(ctx)
+ req.ApplyOptions(opts...)
+ return req, nil
+ },
+ }
+
+ cont := true
+ for p.Next() && cont {
+ cont = fn(p.Page().(*DescribeNetworkInterfacesOutput), !p.HasNextPage())
+ }
+ return p.Err()
+}
+
const opDescribePlacementGroups = "DescribePlacementGroups"
// DescribePlacementGroupsRequest generates a "aws/request.Request" representing the
// client's request for the DescribePlacementGroups operation. The "output" return
// value will be populated with the request's response once the request completes
-// successfuly.
+// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
@@ -11931,7 +14165,7 @@ const opDescribePrefixLists = "DescribePrefixLists"
// DescribePrefixListsRequest generates a "aws/request.Request" representing the
// client's request for the DescribePrefixLists operation. The "output" return
// value will be populated with the request's response once the request completes
-// successfuly.
+// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
@@ -11974,7 +14208,8 @@ func (c *EC2) DescribePrefixListsRequest(input *DescribePrefixListsInput) (req *
// the prefix list name and prefix list ID of the service and the IP address
// range for the service. A prefix list ID is required for creating an outbound
// security group rule that allows traffic from a VPC to access an AWS service
-// through a gateway VPC endpoint.
+// through a gateway VPC endpoint. Currently, the services that support this
+// action are Amazon S3 and Amazon DynamoDB.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
@@ -12009,7 +14244,7 @@ const opDescribePrincipalIdFormat = "DescribePrincipalIdFormat"
// DescribePrincipalIdFormatRequest generates a "aws/request.Request" representing the
// client's request for the DescribePrincipalIdFormat operation. The "output" return
// value will be populated with the request's response once the request completes
-// successfuly.
+// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
@@ -12092,12 +14327,86 @@ func (c *EC2) DescribePrincipalIdFormatWithContext(ctx aws.Context, input *Descr
return out, req.Send()
}
+const opDescribePublicIpv4Pools = "DescribePublicIpv4Pools"
+
+// DescribePublicIpv4PoolsRequest generates a "aws/request.Request" representing the
+// client's request for the DescribePublicIpv4Pools operation. The "output" return
+// value will be populated with the request's response once the request completes
+// successfully.
+//
+// Use "Send" method on the returned Request to send the API call to the service.
+// the "output" return value is not valid until after Send returns without error.
+//
+// See DescribePublicIpv4Pools for more information on using the DescribePublicIpv4Pools
+// API call, and error handling.
+//
+// This method is useful when you want to inject custom logic or configuration
+// into the SDK's request lifecycle. Such as custom headers, or retry logic.
+//
+//
+// // Example sending a request using the DescribePublicIpv4PoolsRequest method.
+// req, resp := client.DescribePublicIpv4PoolsRequest(params)
+//
+// err := req.Send()
+// if err == nil { // resp is now filled
+// fmt.Println(resp)
+// }
+//
+// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribePublicIpv4Pools
+func (c *EC2) DescribePublicIpv4PoolsRequest(input *DescribePublicIpv4PoolsInput) (req *request.Request, output *DescribePublicIpv4PoolsOutput) {
+ op := &request.Operation{
+ Name: opDescribePublicIpv4Pools,
+ HTTPMethod: "POST",
+ HTTPPath: "/",
+ }
+
+ if input == nil {
+ input = &DescribePublicIpv4PoolsInput{}
+ }
+
+ output = &DescribePublicIpv4PoolsOutput{}
+ req = c.newRequest(op, input, output)
+ return
+}
+
+// DescribePublicIpv4Pools API operation for Amazon Elastic Compute Cloud.
+//
+// Describes the specified IPv4 address pools.
+//
+// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
+// with awserr.Error's Code and Message methods to get detailed information about
+// the error.
+//
+// See the AWS API reference guide for Amazon Elastic Compute Cloud's
+// API operation DescribePublicIpv4Pools for usage and error information.
+// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribePublicIpv4Pools
+func (c *EC2) DescribePublicIpv4Pools(input *DescribePublicIpv4PoolsInput) (*DescribePublicIpv4PoolsOutput, error) {
+ req, out := c.DescribePublicIpv4PoolsRequest(input)
+ return out, req.Send()
+}
+
+// DescribePublicIpv4PoolsWithContext is the same as DescribePublicIpv4Pools with the addition of
+// the ability to pass a context and additional request options.
+//
+// See DescribePublicIpv4Pools for details on how to use this API operation.
+//
+// The context must be non-nil and will be used for request cancellation. If
+// the context is nil a panic will occur. In the future the SDK may create
+// sub-contexts for http.Requests. See https://golang.org/pkg/context/
+// for more information on using Contexts.
+func (c *EC2) DescribePublicIpv4PoolsWithContext(ctx aws.Context, input *DescribePublicIpv4PoolsInput, opts ...request.Option) (*DescribePublicIpv4PoolsOutput, error) {
+ req, out := c.DescribePublicIpv4PoolsRequest(input)
+ req.SetContext(ctx)
+ req.ApplyOptions(opts...)
+ return out, req.Send()
+}
+
const opDescribeRegions = "DescribeRegions"
// DescribeRegionsRequest generates a "aws/request.Request" representing the
// client's request for the DescribeRegions operation. The "output" return
// value will be populated with the request's response once the request completes
-// successfuly.
+// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
@@ -12174,7 +14483,7 @@ const opDescribeReservedInstances = "DescribeReservedInstances"
// DescribeReservedInstancesRequest generates a "aws/request.Request" representing the
// client's request for the DescribeReservedInstances operation. The "output" return
// value will be populated with the request's response once the request completes
-// successfuly.
+// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
@@ -12251,7 +14560,7 @@ const opDescribeReservedInstancesListings = "DescribeReservedInstancesListings"
// DescribeReservedInstancesListingsRequest generates a "aws/request.Request" representing the
// client's request for the DescribeReservedInstancesListings operation. The "output" return
// value will be populated with the request's response once the request completes
-// successfuly.
+// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
@@ -12346,7 +14655,7 @@ const opDescribeReservedInstancesModifications = "DescribeReservedInstancesModif
// DescribeReservedInstancesModificationsRequest generates a "aws/request.Request" representing the
// client's request for the DescribeReservedInstancesModifications operation. The "output" return
// value will be populated with the request's response once the request completes
-// successfuly.
+// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
@@ -12482,7 +14791,7 @@ const opDescribeReservedInstancesOfferings = "DescribeReservedInstancesOfferings
// DescribeReservedInstancesOfferingsRequest generates a "aws/request.Request" representing the
// client's request for the DescribeReservedInstancesOfferings operation. The "output" return
// value will be populated with the request's response once the request completes
-// successfuly.
+// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
@@ -12623,7 +14932,7 @@ const opDescribeRouteTables = "DescribeRouteTables"
// DescribeRouteTablesRequest generates a "aws/request.Request" representing the
// client's request for the DescribeRouteTables operation. The "output" return
// value will be populated with the request's response once the request completes
-// successfuly.
+// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
@@ -12649,6 +14958,12 @@ func (c *EC2) DescribeRouteTablesRequest(input *DescribeRouteTablesInput) (req *
Name: opDescribeRouteTables,
HTTPMethod: "POST",
HTTPPath: "/",
+ Paginator: &request.Paginator{
+ InputTokens: []string{"NextToken"},
+ OutputTokens: []string{"NextToken"},
+ LimitToken: "MaxResults",
+ TruncationToken: "",
+ },
}
if input == nil {
@@ -12669,7 +14984,7 @@ func (c *EC2) DescribeRouteTablesRequest(input *DescribeRouteTablesInput) (req *
// with the main route table. This command does not return the subnet ID for
// implicit associations.
//
-// For more information about route tables, see Route Tables (http://docs.aws.amazon.com/AmazonVPC/latest/UserGuide/VPC_Route_Tables.html)
+// For more information, see Route Tables (http://docs.aws.amazon.com/AmazonVPC/latest/UserGuide/VPC_Route_Tables.html)
// in the Amazon Virtual Private Cloud User Guide.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
@@ -12700,12 +15015,62 @@ func (c *EC2) DescribeRouteTablesWithContext(ctx aws.Context, input *DescribeRou
return out, req.Send()
}
+// DescribeRouteTablesPages iterates over the pages of a DescribeRouteTables operation,
+// calling the "fn" function with the response data for each page. To stop
+// iterating, return false from the fn function.
+//
+// See DescribeRouteTables method for more information on how to use this operation.
+//
+// Note: This operation can generate multiple requests to a service.
+//
+// // Example iterating over at most 3 pages of a DescribeRouteTables operation.
+// pageNum := 0
+// err := client.DescribeRouteTablesPages(params,
+// func(page *DescribeRouteTablesOutput, lastPage bool) bool {
+// pageNum++
+// fmt.Println(page)
+// return pageNum <= 3
+// })
+//
+func (c *EC2) DescribeRouteTablesPages(input *DescribeRouteTablesInput, fn func(*DescribeRouteTablesOutput, bool) bool) error {
+ return c.DescribeRouteTablesPagesWithContext(aws.BackgroundContext(), input, fn)
+}
+
+// DescribeRouteTablesPagesWithContext same as DescribeRouteTablesPages except
+// it takes a Context and allows setting request options on the pages.
+//
+// The context must be non-nil and will be used for request cancellation. If
+// the context is nil a panic will occur. In the future the SDK may create
+// sub-contexts for http.Requests. See https://golang.org/pkg/context/
+// for more information on using Contexts.
+func (c *EC2) DescribeRouteTablesPagesWithContext(ctx aws.Context, input *DescribeRouteTablesInput, fn func(*DescribeRouteTablesOutput, bool) bool, opts ...request.Option) error {
+ p := request.Pagination{
+ NewRequest: func() (*request.Request, error) {
+ var inCpy *DescribeRouteTablesInput
+ if input != nil {
+ tmp := *input
+ inCpy = &tmp
+ }
+ req, _ := c.DescribeRouteTablesRequest(inCpy)
+ req.SetContext(ctx)
+ req.ApplyOptions(opts...)
+ return req, nil
+ },
+ }
+
+ cont := true
+ for p.Next() && cont {
+ cont = fn(p.Page().(*DescribeRouteTablesOutput), !p.HasNextPage())
+ }
+ return p.Err()
+}
+
const opDescribeScheduledInstanceAvailability = "DescribeScheduledInstanceAvailability"
// DescribeScheduledInstanceAvailabilityRequest generates a "aws/request.Request" representing the
// client's request for the DescribeScheduledInstanceAvailability operation. The "output" return
// value will be populated with the request's response once the request completes
-// successfuly.
+// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
@@ -12787,7 +15152,7 @@ const opDescribeScheduledInstances = "DescribeScheduledInstances"
// DescribeScheduledInstancesRequest generates a "aws/request.Request" representing the
// client's request for the DescribeScheduledInstances operation. The "output" return
// value will be populated with the request's response once the request completes
-// successfuly.
+// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
@@ -12861,7 +15226,7 @@ const opDescribeSecurityGroupReferences = "DescribeSecurityGroupReferences"
// DescribeSecurityGroupReferencesRequest generates a "aws/request.Request" representing the
// client's request for the DescribeSecurityGroupReferences operation. The "output" return
// value will be populated with the request's response once the request completes
-// successfuly.
+// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
@@ -12936,7 +15301,7 @@ const opDescribeSecurityGroups = "DescribeSecurityGroups"
// DescribeSecurityGroupsRequest generates a "aws/request.Request" representing the
// client's request for the DescribeSecurityGroups operation. The "output" return
// value will be populated with the request's response once the request completes
-// successfuly.
+// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
@@ -12962,6 +15327,12 @@ func (c *EC2) DescribeSecurityGroupsRequest(input *DescribeSecurityGroupsInput)
Name: opDescribeSecurityGroups,
HTTPMethod: "POST",
HTTPPath: "/",
+ Paginator: &request.Paginator{
+ InputTokens: []string{"NextToken"},
+ OutputTokens: []string{"NextToken"},
+ LimitToken: "MaxResults",
+ TruncationToken: "",
+ },
}
if input == nil {
@@ -13012,12 +15383,62 @@ func (c *EC2) DescribeSecurityGroupsWithContext(ctx aws.Context, input *Describe
return out, req.Send()
}
+// DescribeSecurityGroupsPages iterates over the pages of a DescribeSecurityGroups operation,
+// calling the "fn" function with the response data for each page. To stop
+// iterating, return false from the fn function.
+//
+// See DescribeSecurityGroups method for more information on how to use this operation.
+//
+// Note: This operation can generate multiple requests to a service.
+//
+// // Example iterating over at most 3 pages of a DescribeSecurityGroups operation.
+// pageNum := 0
+// err := client.DescribeSecurityGroupsPages(params,
+// func(page *DescribeSecurityGroupsOutput, lastPage bool) bool {
+// pageNum++
+// fmt.Println(page)
+// return pageNum <= 3
+// })
+//
+func (c *EC2) DescribeSecurityGroupsPages(input *DescribeSecurityGroupsInput, fn func(*DescribeSecurityGroupsOutput, bool) bool) error {
+ return c.DescribeSecurityGroupsPagesWithContext(aws.BackgroundContext(), input, fn)
+}
+
+// DescribeSecurityGroupsPagesWithContext same as DescribeSecurityGroupsPages except
+// it takes a Context and allows setting request options on the pages.
+//
+// The context must be non-nil and will be used for request cancellation. If
+// the context is nil a panic will occur. In the future the SDK may create
+// sub-contexts for http.Requests. See https://golang.org/pkg/context/
+// for more information on using Contexts.
+func (c *EC2) DescribeSecurityGroupsPagesWithContext(ctx aws.Context, input *DescribeSecurityGroupsInput, fn func(*DescribeSecurityGroupsOutput, bool) bool, opts ...request.Option) error {
+ p := request.Pagination{
+ NewRequest: func() (*request.Request, error) {
+ var inCpy *DescribeSecurityGroupsInput
+ if input != nil {
+ tmp := *input
+ inCpy = &tmp
+ }
+ req, _ := c.DescribeSecurityGroupsRequest(inCpy)
+ req.SetContext(ctx)
+ req.ApplyOptions(opts...)
+ return req, nil
+ },
+ }
+
+ cont := true
+ for p.Next() && cont {
+ cont = fn(p.Page().(*DescribeSecurityGroupsOutput), !p.HasNextPage())
+ }
+ return p.Err()
+}
+
const opDescribeSnapshotAttribute = "DescribeSnapshotAttribute"
// DescribeSnapshotAttributeRequest generates a "aws/request.Request" representing the
// client's request for the DescribeSnapshotAttribute operation. The "output" return
// value will be populated with the request's response once the request completes
-// successfuly.
+// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
@@ -13095,7 +15516,7 @@ const opDescribeSnapshots = "DescribeSnapshots"
// DescribeSnapshotsRequest generates a "aws/request.Request" representing the
// client's request for the DescribeSnapshots operation. The "output" return
// value will be populated with the request's response once the request completes
-// successfuly.
+// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
@@ -13270,7 +15691,7 @@ const opDescribeSpotDatafeedSubscription = "DescribeSpotDatafeedSubscription"
// DescribeSpotDatafeedSubscriptionRequest generates a "aws/request.Request" representing the
// client's request for the DescribeSpotDatafeedSubscription operation. The "output" return
// value will be populated with the request's response once the request completes
-// successfuly.
+// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
@@ -13346,7 +15767,7 @@ const opDescribeSpotFleetInstances = "DescribeSpotFleetInstances"
// DescribeSpotFleetInstancesRequest generates a "aws/request.Request" representing the
// client's request for the DescribeSpotFleetInstances operation. The "output" return
// value will be populated with the request's response once the request completes
-// successfuly.
+// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
@@ -13420,7 +15841,7 @@ const opDescribeSpotFleetRequestHistory = "DescribeSpotFleetRequestHistory"
// DescribeSpotFleetRequestHistoryRequest generates a "aws/request.Request" representing the
// client's request for the DescribeSpotFleetRequestHistory operation. The "output" return
// value will be populated with the request's response once the request completes
-// successfuly.
+// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
@@ -13464,7 +15885,7 @@ func (c *EC2) DescribeSpotFleetRequestHistoryRequest(input *DescribeSpotFleetReq
//
// Spot Fleet events are delayed by up to 30 seconds before they can be described.
// This ensures that you can query by the last evaluated time and not miss a
-// recorded event.
+// recorded event. Spot Fleet events are available for 48 hours.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
@@ -13499,7 +15920,7 @@ const opDescribeSpotFleetRequests = "DescribeSpotFleetRequests"
// DescribeSpotFleetRequestsRequest generates a "aws/request.Request" representing the
// client's request for the DescribeSpotFleetRequests operation. The "output" return
// value will be populated with the request's response once the request completes
-// successfuly.
+// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
@@ -13632,7 +16053,7 @@ const opDescribeSpotInstanceRequests = "DescribeSpotInstanceRequests"
// DescribeSpotInstanceRequestsRequest generates a "aws/request.Request" representing the
// client's request for the DescribeSpotInstanceRequests operation. The "output" return
// value will be populated with the request's response once the request completes
-// successfuly.
+// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
@@ -13715,7 +16136,7 @@ const opDescribeSpotPriceHistory = "DescribeSpotPriceHistory"
// DescribeSpotPriceHistoryRequest generates a "aws/request.Request" representing the
// client's request for the DescribeSpotPriceHistory operation. The "output" return
// value will be populated with the request's response once the request completes
-// successfuly.
+// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
@@ -13852,7 +16273,7 @@ const opDescribeStaleSecurityGroups = "DescribeStaleSecurityGroups"
// DescribeStaleSecurityGroupsRequest generates a "aws/request.Request" representing the
// client's request for the DescribeStaleSecurityGroups operation. The "output" return
// value will be populated with the request's response once the request completes
-// successfuly.
+// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
@@ -13929,7 +16350,7 @@ const opDescribeSubnets = "DescribeSubnets"
// DescribeSubnetsRequest generates a "aws/request.Request" representing the
// client's request for the DescribeSubnets operation. The "output" return
// value will be populated with the request's response once the request completes
-// successfuly.
+// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
@@ -13970,7 +16391,7 @@ func (c *EC2) DescribeSubnetsRequest(input *DescribeSubnetsInput) (req *request.
//
// Describes one or more of your subnets.
//
-// For more information about subnets, see Your VPC and Subnets (http://docs.aws.amazon.com/AmazonVPC/latest/UserGuide/VPC_Subnets.html)
+// For more information, see Your VPC and Subnets (http://docs.aws.amazon.com/AmazonVPC/latest/UserGuide/VPC_Subnets.html)
// in the Amazon Virtual Private Cloud User Guide.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
@@ -14006,7 +16427,7 @@ const opDescribeTags = "DescribeTags"
// DescribeTagsRequest generates a "aws/request.Request" representing the
// client's request for the DescribeTags operation. The "output" return
// value will be populated with the request's response once the request completes
-// successfuly.
+// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
@@ -14134,12 +16555,314 @@ func (c *EC2) DescribeTagsPagesWithContext(ctx aws.Context, input *DescribeTagsI
return p.Err()
}
+const opDescribeTransitGatewayAttachments = "DescribeTransitGatewayAttachments"
+
+// DescribeTransitGatewayAttachmentsRequest generates a "aws/request.Request" representing the
+// client's request for the DescribeTransitGatewayAttachments operation. The "output" return
+// value will be populated with the request's response once the request completes
+// successfully.
+//
+// Use "Send" method on the returned Request to send the API call to the service.
+// the "output" return value is not valid until after Send returns without error.
+//
+// See DescribeTransitGatewayAttachments for more information on using the DescribeTransitGatewayAttachments
+// API call, and error handling.
+//
+// This method is useful when you want to inject custom logic or configuration
+// into the SDK's request lifecycle. Such as custom headers, or retry logic.
+//
+//
+// // Example sending a request using the DescribeTransitGatewayAttachmentsRequest method.
+// req, resp := client.DescribeTransitGatewayAttachmentsRequest(params)
+//
+// err := req.Send()
+// if err == nil { // resp is now filled
+// fmt.Println(resp)
+// }
+//
+// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeTransitGatewayAttachments
+func (c *EC2) DescribeTransitGatewayAttachmentsRequest(input *DescribeTransitGatewayAttachmentsInput) (req *request.Request, output *DescribeTransitGatewayAttachmentsOutput) {
+ op := &request.Operation{
+ Name: opDescribeTransitGatewayAttachments,
+ HTTPMethod: "POST",
+ HTTPPath: "/",
+ }
+
+ if input == nil {
+ input = &DescribeTransitGatewayAttachmentsInput{}
+ }
+
+ output = &DescribeTransitGatewayAttachmentsOutput{}
+ req = c.newRequest(op, input, output)
+ return
+}
+
+// DescribeTransitGatewayAttachments API operation for Amazon Elastic Compute Cloud.
+//
+// Describes one or more attachments between resources and transit gateways.
+// By default, all attachments are described. Alternatively, you can filter
+// the results by attachment ID, attachment state, resource ID, or resource
+// owner.
+//
+// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
+// with awserr.Error's Code and Message methods to get detailed information about
+// the error.
+//
+// See the AWS API reference guide for Amazon Elastic Compute Cloud's
+// API operation DescribeTransitGatewayAttachments for usage and error information.
+// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeTransitGatewayAttachments
+func (c *EC2) DescribeTransitGatewayAttachments(input *DescribeTransitGatewayAttachmentsInput) (*DescribeTransitGatewayAttachmentsOutput, error) {
+ req, out := c.DescribeTransitGatewayAttachmentsRequest(input)
+ return out, req.Send()
+}
+
+// DescribeTransitGatewayAttachmentsWithContext is the same as DescribeTransitGatewayAttachments with the addition of
+// the ability to pass a context and additional request options.
+//
+// See DescribeTransitGatewayAttachments for details on how to use this API operation.
+//
+// The context must be non-nil and will be used for request cancellation. If
+// the context is nil a panic will occur. In the future the SDK may create
+// sub-contexts for http.Requests. See https://golang.org/pkg/context/
+// for more information on using Contexts.
+func (c *EC2) DescribeTransitGatewayAttachmentsWithContext(ctx aws.Context, input *DescribeTransitGatewayAttachmentsInput, opts ...request.Option) (*DescribeTransitGatewayAttachmentsOutput, error) {
+ req, out := c.DescribeTransitGatewayAttachmentsRequest(input)
+ req.SetContext(ctx)
+ req.ApplyOptions(opts...)
+ return out, req.Send()
+}
+
+const opDescribeTransitGatewayRouteTables = "DescribeTransitGatewayRouteTables"
+
+// DescribeTransitGatewayRouteTablesRequest generates a "aws/request.Request" representing the
+// client's request for the DescribeTransitGatewayRouteTables operation. The "output" return
+// value will be populated with the request's response once the request completes
+// successfully.
+//
+// Use "Send" method on the returned Request to send the API call to the service.
+// the "output" return value is not valid until after Send returns without error.
+//
+// See DescribeTransitGatewayRouteTables for more information on using the DescribeTransitGatewayRouteTables
+// API call, and error handling.
+//
+// This method is useful when you want to inject custom logic or configuration
+// into the SDK's request lifecycle. Such as custom headers, or retry logic.
+//
+//
+// // Example sending a request using the DescribeTransitGatewayRouteTablesRequest method.
+// req, resp := client.DescribeTransitGatewayRouteTablesRequest(params)
+//
+// err := req.Send()
+// if err == nil { // resp is now filled
+// fmt.Println(resp)
+// }
+//
+// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeTransitGatewayRouteTables
+func (c *EC2) DescribeTransitGatewayRouteTablesRequest(input *DescribeTransitGatewayRouteTablesInput) (req *request.Request, output *DescribeTransitGatewayRouteTablesOutput) {
+ op := &request.Operation{
+ Name: opDescribeTransitGatewayRouteTables,
+ HTTPMethod: "POST",
+ HTTPPath: "/",
+ }
+
+ if input == nil {
+ input = &DescribeTransitGatewayRouteTablesInput{}
+ }
+
+ output = &DescribeTransitGatewayRouteTablesOutput{}
+ req = c.newRequest(op, input, output)
+ return
+}
+
+// DescribeTransitGatewayRouteTables API operation for Amazon Elastic Compute Cloud.
+//
+// Describes one or more transit gateway route tables. By default, all transit
+// gateway route tables are described. Alternatively, you can filter the results.
+//
+// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
+// with awserr.Error's Code and Message methods to get detailed information about
+// the error.
+//
+// See the AWS API reference guide for Amazon Elastic Compute Cloud's
+// API operation DescribeTransitGatewayRouteTables for usage and error information.
+// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeTransitGatewayRouteTables
+func (c *EC2) DescribeTransitGatewayRouteTables(input *DescribeTransitGatewayRouteTablesInput) (*DescribeTransitGatewayRouteTablesOutput, error) {
+ req, out := c.DescribeTransitGatewayRouteTablesRequest(input)
+ return out, req.Send()
+}
+
+// DescribeTransitGatewayRouteTablesWithContext is the same as DescribeTransitGatewayRouteTables with the addition of
+// the ability to pass a context and additional request options.
+//
+// See DescribeTransitGatewayRouteTables for details on how to use this API operation.
+//
+// The context must be non-nil and will be used for request cancellation. If
+// the context is nil a panic will occur. In the future the SDK may create
+// sub-contexts for http.Requests. See https://golang.org/pkg/context/
+// for more information on using Contexts.
+func (c *EC2) DescribeTransitGatewayRouteTablesWithContext(ctx aws.Context, input *DescribeTransitGatewayRouteTablesInput, opts ...request.Option) (*DescribeTransitGatewayRouteTablesOutput, error) {
+ req, out := c.DescribeTransitGatewayRouteTablesRequest(input)
+ req.SetContext(ctx)
+ req.ApplyOptions(opts...)
+ return out, req.Send()
+}
+
+const opDescribeTransitGatewayVpcAttachments = "DescribeTransitGatewayVpcAttachments"
+
+// DescribeTransitGatewayVpcAttachmentsRequest generates a "aws/request.Request" representing the
+// client's request for the DescribeTransitGatewayVpcAttachments operation. The "output" return
+// value will be populated with the request's response once the request completes
+// successfully.
+//
+// Use "Send" method on the returned Request to send the API call to the service.
+// the "output" return value is not valid until after Send returns without error.
+//
+// See DescribeTransitGatewayVpcAttachments for more information on using the DescribeTransitGatewayVpcAttachments
+// API call, and error handling.
+//
+// This method is useful when you want to inject custom logic or configuration
+// into the SDK's request lifecycle. Such as custom headers, or retry logic.
+//
+//
+// // Example sending a request using the DescribeTransitGatewayVpcAttachmentsRequest method.
+// req, resp := client.DescribeTransitGatewayVpcAttachmentsRequest(params)
+//
+// err := req.Send()
+// if err == nil { // resp is now filled
+// fmt.Println(resp)
+// }
+//
+// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeTransitGatewayVpcAttachments
+func (c *EC2) DescribeTransitGatewayVpcAttachmentsRequest(input *DescribeTransitGatewayVpcAttachmentsInput) (req *request.Request, output *DescribeTransitGatewayVpcAttachmentsOutput) {
+ op := &request.Operation{
+ Name: opDescribeTransitGatewayVpcAttachments,
+ HTTPMethod: "POST",
+ HTTPPath: "/",
+ }
+
+ if input == nil {
+ input = &DescribeTransitGatewayVpcAttachmentsInput{}
+ }
+
+ output = &DescribeTransitGatewayVpcAttachmentsOutput{}
+ req = c.newRequest(op, input, output)
+ return
+}
+
+// DescribeTransitGatewayVpcAttachments API operation for Amazon Elastic Compute Cloud.
+//
+// Describes one or more VPC attachments. By default, all VPC attachments are
+// described. Alternatively, you can filter the results.
+//
+// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
+// with awserr.Error's Code and Message methods to get detailed information about
+// the error.
+//
+// See the AWS API reference guide for Amazon Elastic Compute Cloud's
+// API operation DescribeTransitGatewayVpcAttachments for usage and error information.
+// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeTransitGatewayVpcAttachments
+func (c *EC2) DescribeTransitGatewayVpcAttachments(input *DescribeTransitGatewayVpcAttachmentsInput) (*DescribeTransitGatewayVpcAttachmentsOutput, error) {
+ req, out := c.DescribeTransitGatewayVpcAttachmentsRequest(input)
+ return out, req.Send()
+}
+
+// DescribeTransitGatewayVpcAttachmentsWithContext is the same as DescribeTransitGatewayVpcAttachments with the addition of
+// the ability to pass a context and additional request options.
+//
+// See DescribeTransitGatewayVpcAttachments for details on how to use this API operation.
+//
+// The context must be non-nil and will be used for request cancellation. If
+// the context is nil a panic will occur. In the future the SDK may create
+// sub-contexts for http.Requests. See https://golang.org/pkg/context/
+// for more information on using Contexts.
+func (c *EC2) DescribeTransitGatewayVpcAttachmentsWithContext(ctx aws.Context, input *DescribeTransitGatewayVpcAttachmentsInput, opts ...request.Option) (*DescribeTransitGatewayVpcAttachmentsOutput, error) {
+ req, out := c.DescribeTransitGatewayVpcAttachmentsRequest(input)
+ req.SetContext(ctx)
+ req.ApplyOptions(opts...)
+ return out, req.Send()
+}
+
+const opDescribeTransitGateways = "DescribeTransitGateways"
+
+// DescribeTransitGatewaysRequest generates a "aws/request.Request" representing the
+// client's request for the DescribeTransitGateways operation. The "output" return
+// value will be populated with the request's response once the request completes
+// successfully.
+//
+// Use "Send" method on the returned Request to send the API call to the service.
+// the "output" return value is not valid until after Send returns without error.
+//
+// See DescribeTransitGateways for more information on using the DescribeTransitGateways
+// API call, and error handling.
+//
+// This method is useful when you want to inject custom logic or configuration
+// into the SDK's request lifecycle. Such as custom headers, or retry logic.
+//
+//
+// // Example sending a request using the DescribeTransitGatewaysRequest method.
+// req, resp := client.DescribeTransitGatewaysRequest(params)
+//
+// err := req.Send()
+// if err == nil { // resp is now filled
+// fmt.Println(resp)
+// }
+//
+// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeTransitGateways
+func (c *EC2) DescribeTransitGatewaysRequest(input *DescribeTransitGatewaysInput) (req *request.Request, output *DescribeTransitGatewaysOutput) {
+ op := &request.Operation{
+ Name: opDescribeTransitGateways,
+ HTTPMethod: "POST",
+ HTTPPath: "/",
+ }
+
+ if input == nil {
+ input = &DescribeTransitGatewaysInput{}
+ }
+
+ output = &DescribeTransitGatewaysOutput{}
+ req = c.newRequest(op, input, output)
+ return
+}
+
+// DescribeTransitGateways API operation for Amazon Elastic Compute Cloud.
+//
+// Describes one or more transit gateways. By default, all transit gateways
+// are described. Alternatively, you can filter the results.
+//
+// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
+// with awserr.Error's Code and Message methods to get detailed information about
+// the error.
+//
+// See the AWS API reference guide for Amazon Elastic Compute Cloud's
+// API operation DescribeTransitGateways for usage and error information.
+// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeTransitGateways
+func (c *EC2) DescribeTransitGateways(input *DescribeTransitGatewaysInput) (*DescribeTransitGatewaysOutput, error) {
+ req, out := c.DescribeTransitGatewaysRequest(input)
+ return out, req.Send()
+}
+
+// DescribeTransitGatewaysWithContext is the same as DescribeTransitGateways with the addition of
+// the ability to pass a context and additional request options.
+//
+// See DescribeTransitGateways for details on how to use this API operation.
+//
+// The context must be non-nil and will be used for request cancellation. If
+// the context is nil a panic will occur. In the future the SDK may create
+// sub-contexts for http.Requests. See https://golang.org/pkg/context/
+// for more information on using Contexts.
+func (c *EC2) DescribeTransitGatewaysWithContext(ctx aws.Context, input *DescribeTransitGatewaysInput, opts ...request.Option) (*DescribeTransitGatewaysOutput, error) {
+ req, out := c.DescribeTransitGatewaysRequest(input)
+ req.SetContext(ctx)
+ req.ApplyOptions(opts...)
+ return out, req.Send()
+}
+
const opDescribeVolumeAttribute = "DescribeVolumeAttribute"
// DescribeVolumeAttributeRequest generates a "aws/request.Request" representing the
// client's request for the DescribeVolumeAttribute operation. The "output" return
// value will be populated with the request's response once the request completes
-// successfuly.
+// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
@@ -14217,7 +16940,7 @@ const opDescribeVolumeStatus = "DescribeVolumeStatus"
// DescribeVolumeStatusRequest generates a "aws/request.Request" representing the
// client's request for the DescribeVolumeStatus operation. The "output" return
// value will be populated with the request's response once the request completes
-// successfuly.
+// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
@@ -14279,8 +17002,9 @@ func (c *EC2) DescribeVolumeStatusRequest(input *DescribeVolumeStatusInput) (req
// status of the volume is ok. If the check fails, the overall status is impaired.
// If the status is insufficient-data, then the checks may still be taking place
// on your volume at the time. We recommend that you retry the request. For
-// more information on volume status, see Monitoring the Status of Your Volumes
-// (http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/monitoring-volume-status.html).
+// more information about volume status, see Monitoring the Status of Your Volumes
+// (http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/monitoring-volume-status.html)
+// in the Amazon Elastic Compute Cloud User Guide.
//
// Events: Reflect the cause of a volume status and may require you to take
// action. For example, if your volume returns an impaired status, then the
@@ -14381,7 +17105,7 @@ const opDescribeVolumes = "DescribeVolumes"
// DescribeVolumesRequest generates a "aws/request.Request" representing the
// client's request for the DescribeVolumes operation. The "output" return
// value will be populated with the request's response once the request completes
-// successfuly.
+// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
@@ -14521,7 +17245,7 @@ const opDescribeVolumesModifications = "DescribeVolumesModifications"
// DescribeVolumesModificationsRequest generates a "aws/request.Request" representing the
// client's request for the DescribeVolumesModifications operation. The "output" return
// value will be populated with the request's response once the request completes
-// successfuly.
+// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
@@ -14572,7 +17296,8 @@ func (c *EC2) DescribeVolumesModificationsRequest(input *DescribeVolumesModifica
// You can also use CloudWatch Events to check the status of a modification
// to an EBS volume. For information about CloudWatch Events, see the Amazon
// CloudWatch Events User Guide (http://docs.aws.amazon.com/AmazonCloudWatch/latest/events/).
-// For more information, see Monitoring Volume Modifications" (http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ebs-expand-volume.html#monitoring_mods).
+// For more information, see Monitoring Volume Modifications" (http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ebs-expand-volume.html#monitoring_mods)
+// in the Amazon Elastic Compute Cloud User Guide.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
@@ -14607,7 +17332,7 @@ const opDescribeVpcAttribute = "DescribeVpcAttribute"
// DescribeVpcAttributeRequest generates a "aws/request.Request" representing the
// client's request for the DescribeVpcAttribute operation. The "output" return
// value will be populated with the request's response once the request completes
-// successfuly.
+// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
@@ -14682,7 +17407,7 @@ const opDescribeVpcClassicLink = "DescribeVpcClassicLink"
// DescribeVpcClassicLinkRequest generates a "aws/request.Request" representing the
// client's request for the DescribeVpcClassicLink operation. The "output" return
// value will be populated with the request's response once the request completes
-// successfuly.
+// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
@@ -14756,7 +17481,7 @@ const opDescribeVpcClassicLinkDnsSupport = "DescribeVpcClassicLinkDnsSupport"
// DescribeVpcClassicLinkDnsSupportRequest generates a "aws/request.Request" representing the
// client's request for the DescribeVpcClassicLinkDnsSupport operation. The "output" return
// value will be populated with the request's response once the request completes
-// successfuly.
+// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
@@ -14836,7 +17561,7 @@ const opDescribeVpcEndpointConnectionNotifications = "DescribeVpcEndpointConnect
// DescribeVpcEndpointConnectionNotificationsRequest generates a "aws/request.Request" representing the
// client's request for the DescribeVpcEndpointConnectionNotifications operation. The "output" return
// value will be populated with the request's response once the request completes
-// successfuly.
+// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
@@ -14911,7 +17636,7 @@ const opDescribeVpcEndpointConnections = "DescribeVpcEndpointConnections"
// DescribeVpcEndpointConnectionsRequest generates a "aws/request.Request" representing the
// client's request for the DescribeVpcEndpointConnections operation. The "output" return
// value will be populated with the request's response once the request completes
-// successfuly.
+// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
@@ -14986,7 +17711,7 @@ const opDescribeVpcEndpointServiceConfigurations = "DescribeVpcEndpointServiceCo
// DescribeVpcEndpointServiceConfigurationsRequest generates a "aws/request.Request" representing the
// client's request for the DescribeVpcEndpointServiceConfigurations operation. The "output" return
// value will be populated with the request's response once the request completes
-// successfuly.
+// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
@@ -15060,7 +17785,7 @@ const opDescribeVpcEndpointServicePermissions = "DescribeVpcEndpointServicePermi
// DescribeVpcEndpointServicePermissionsRequest generates a "aws/request.Request" representing the
// client's request for the DescribeVpcEndpointServicePermissions operation. The "output" return
// value will be populated with the request's response once the request completes
-// successfuly.
+// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
@@ -15135,7 +17860,7 @@ const opDescribeVpcEndpointServices = "DescribeVpcEndpointServices"
// DescribeVpcEndpointServicesRequest generates a "aws/request.Request" representing the
// client's request for the DescribeVpcEndpointServices operation. The "output" return
// value will be populated with the request's response once the request completes
-// successfuly.
+// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
@@ -15209,7 +17934,7 @@ const opDescribeVpcEndpoints = "DescribeVpcEndpoints"
// DescribeVpcEndpointsRequest generates a "aws/request.Request" representing the
// client's request for the DescribeVpcEndpoints operation. The "output" return
// value will be populated with the request's response once the request completes
-// successfuly.
+// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
@@ -15283,7 +18008,7 @@ const opDescribeVpcPeeringConnections = "DescribeVpcPeeringConnections"
// DescribeVpcPeeringConnectionsRequest generates a "aws/request.Request" representing the
// client's request for the DescribeVpcPeeringConnections operation. The "output" return
// value will be populated with the request's response once the request completes
-// successfuly.
+// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
@@ -15357,7 +18082,7 @@ const opDescribeVpcs = "DescribeVpcs"
// DescribeVpcsRequest generates a "aws/request.Request" representing the
// client's request for the DescribeVpcs operation. The "output" return
// value will be populated with the request's response once the request completes
-// successfuly.
+// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
@@ -15431,7 +18156,7 @@ const opDescribeVpnConnections = "DescribeVpnConnections"
// DescribeVpnConnectionsRequest generates a "aws/request.Request" representing the
// client's request for the DescribeVpnConnections operation. The "output" return
// value will be populated with the request's response once the request completes
-// successfuly.
+// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
@@ -15509,7 +18234,7 @@ const opDescribeVpnGateways = "DescribeVpnGateways"
// DescribeVpnGatewaysRequest generates a "aws/request.Request" representing the
// client's request for the DescribeVpnGateways operation. The "output" return
// value will be populated with the request's response once the request completes
-// successfuly.
+// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
@@ -15587,7 +18312,7 @@ const opDetachClassicLinkVpc = "DetachClassicLinkVpc"
// DetachClassicLinkVpcRequest generates a "aws/request.Request" representing the
// client's request for the DetachClassicLinkVpc operation. The "output" return
// value will be populated with the request's response once the request completes
-// successfuly.
+// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
@@ -15663,7 +18388,7 @@ const opDetachInternetGateway = "DetachInternetGateway"
// DetachInternetGatewayRequest generates a "aws/request.Request" representing the
// client's request for the DetachInternetGateway operation. The "output" return
// value will be populated with the request's response once the request completes
-// successfuly.
+// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
@@ -15697,15 +18422,14 @@ func (c *EC2) DetachInternetGatewayRequest(input *DetachInternetGatewayInput) (r
output = &DetachInternetGatewayOutput{}
req = c.newRequest(op, input, output)
- req.Handlers.Unmarshal.Remove(ec2query.UnmarshalHandler)
- req.Handlers.Unmarshal.PushBackNamed(protocol.UnmarshalDiscardBodyHandler)
+ req.Handlers.Unmarshal.Swap(ec2query.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
return
}
// DetachInternetGateway API operation for Amazon Elastic Compute Cloud.
//
-// Detaches an Internet gateway from a VPC, disabling connectivity between the
-// Internet and the VPC. The VPC must not contain any running instances with
+// Detaches an internet gateway from a VPC, disabling connectivity between the
+// internet and the VPC. The VPC must not contain any running instances with
// Elastic IP addresses or public IPv4 addresses.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
@@ -15741,7 +18465,7 @@ const opDetachNetworkInterface = "DetachNetworkInterface"
// DetachNetworkInterfaceRequest generates a "aws/request.Request" representing the
// client's request for the DetachNetworkInterface operation. The "output" return
// value will be populated with the request's response once the request completes
-// successfuly.
+// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
@@ -15775,8 +18499,7 @@ func (c *EC2) DetachNetworkInterfaceRequest(input *DetachNetworkInterfaceInput)
output = &DetachNetworkInterfaceOutput{}
req = c.newRequest(op, input, output)
- req.Handlers.Unmarshal.Remove(ec2query.UnmarshalHandler)
- req.Handlers.Unmarshal.PushBackNamed(protocol.UnmarshalDiscardBodyHandler)
+ req.Handlers.Unmarshal.Swap(ec2query.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
return
}
@@ -15817,7 +18540,7 @@ const opDetachVolume = "DetachVolume"
// DetachVolumeRequest generates a "aws/request.Request" representing the
// client's request for the DetachVolume operation. The "output" return
// value will be populated with the request's response once the request completes
-// successfuly.
+// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
@@ -15904,7 +18627,7 @@ const opDetachVpnGateway = "DetachVpnGateway"
// DetachVpnGatewayRequest generates a "aws/request.Request" representing the
// client's request for the DetachVpnGateway operation. The "output" return
// value will be populated with the request's response once the request completes
-// successfuly.
+// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
@@ -15938,8 +18661,7 @@ func (c *EC2) DetachVpnGatewayRequest(input *DetachVpnGatewayInput) (req *reques
output = &DetachVpnGatewayOutput{}
req = c.newRequest(op, input, output)
- req.Handlers.Unmarshal.Remove(ec2query.UnmarshalHandler)
- req.Handlers.Unmarshal.PushBackNamed(protocol.UnmarshalDiscardBodyHandler)
+ req.Handlers.Unmarshal.Swap(ec2query.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
return
}
@@ -15982,12 +18704,87 @@ func (c *EC2) DetachVpnGatewayWithContext(ctx aws.Context, input *DetachVpnGatew
return out, req.Send()
}
+const opDisableTransitGatewayRouteTablePropagation = "DisableTransitGatewayRouteTablePropagation"
+
+// DisableTransitGatewayRouteTablePropagationRequest generates a "aws/request.Request" representing the
+// client's request for the DisableTransitGatewayRouteTablePropagation operation. The "output" return
+// value will be populated with the request's response once the request completes
+// successfully.
+//
+// Use "Send" method on the returned Request to send the API call to the service.
+// the "output" return value is not valid until after Send returns without error.
+//
+// See DisableTransitGatewayRouteTablePropagation for more information on using the DisableTransitGatewayRouteTablePropagation
+// API call, and error handling.
+//
+// This method is useful when you want to inject custom logic or configuration
+// into the SDK's request lifecycle. Such as custom headers, or retry logic.
+//
+//
+// // Example sending a request using the DisableTransitGatewayRouteTablePropagationRequest method.
+// req, resp := client.DisableTransitGatewayRouteTablePropagationRequest(params)
+//
+// err := req.Send()
+// if err == nil { // resp is now filled
+// fmt.Println(resp)
+// }
+//
+// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DisableTransitGatewayRouteTablePropagation
+func (c *EC2) DisableTransitGatewayRouteTablePropagationRequest(input *DisableTransitGatewayRouteTablePropagationInput) (req *request.Request, output *DisableTransitGatewayRouteTablePropagationOutput) {
+ op := &request.Operation{
+ Name: opDisableTransitGatewayRouteTablePropagation,
+ HTTPMethod: "POST",
+ HTTPPath: "/",
+ }
+
+ if input == nil {
+ input = &DisableTransitGatewayRouteTablePropagationInput{}
+ }
+
+ output = &DisableTransitGatewayRouteTablePropagationOutput{}
+ req = c.newRequest(op, input, output)
+ return
+}
+
+// DisableTransitGatewayRouteTablePropagation API operation for Amazon Elastic Compute Cloud.
+//
+// Disables the specified resource attachment from propagating routes to the
+// specified propagation route table.
+//
+// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
+// with awserr.Error's Code and Message methods to get detailed information about
+// the error.
+//
+// See the AWS API reference guide for Amazon Elastic Compute Cloud's
+// API operation DisableTransitGatewayRouteTablePropagation for usage and error information.
+// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DisableTransitGatewayRouteTablePropagation
+func (c *EC2) DisableTransitGatewayRouteTablePropagation(input *DisableTransitGatewayRouteTablePropagationInput) (*DisableTransitGatewayRouteTablePropagationOutput, error) {
+ req, out := c.DisableTransitGatewayRouteTablePropagationRequest(input)
+ return out, req.Send()
+}
+
+// DisableTransitGatewayRouteTablePropagationWithContext is the same as DisableTransitGatewayRouteTablePropagation with the addition of
+// the ability to pass a context and additional request options.
+//
+// See DisableTransitGatewayRouteTablePropagation for details on how to use this API operation.
+//
+// The context must be non-nil and will be used for request cancellation. If
+// the context is nil a panic will occur. In the future the SDK may create
+// sub-contexts for http.Requests. See https://golang.org/pkg/context/
+// for more information on using Contexts.
+func (c *EC2) DisableTransitGatewayRouteTablePropagationWithContext(ctx aws.Context, input *DisableTransitGatewayRouteTablePropagationInput, opts ...request.Option) (*DisableTransitGatewayRouteTablePropagationOutput, error) {
+ req, out := c.DisableTransitGatewayRouteTablePropagationRequest(input)
+ req.SetContext(ctx)
+ req.ApplyOptions(opts...)
+ return out, req.Send()
+}
+
const opDisableVgwRoutePropagation = "DisableVgwRoutePropagation"
// DisableVgwRoutePropagationRequest generates a "aws/request.Request" representing the
// client's request for the DisableVgwRoutePropagation operation. The "output" return
// value will be populated with the request's response once the request completes
-// successfuly.
+// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
@@ -16021,8 +18818,7 @@ func (c *EC2) DisableVgwRoutePropagationRequest(input *DisableVgwRoutePropagatio
output = &DisableVgwRoutePropagationOutput{}
req = c.newRequest(op, input, output)
- req.Handlers.Unmarshal.Remove(ec2query.UnmarshalHandler)
- req.Handlers.Unmarshal.PushBackNamed(protocol.UnmarshalDiscardBodyHandler)
+ req.Handlers.Unmarshal.Swap(ec2query.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
return
}
@@ -16064,7 +18860,7 @@ const opDisableVpcClassicLink = "DisableVpcClassicLink"
// DisableVpcClassicLinkRequest generates a "aws/request.Request" representing the
// client's request for the DisableVpcClassicLink operation. The "output" return
// value will be populated with the request's response once the request completes
-// successfuly.
+// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
@@ -16139,7 +18935,7 @@ const opDisableVpcClassicLinkDnsSupport = "DisableVpcClassicLinkDnsSupport"
// DisableVpcClassicLinkDnsSupportRequest generates a "aws/request.Request" representing the
// client's request for the DisableVpcClassicLinkDnsSupport operation. The "output" return
// value will be populated with the request's response once the request completes
-// successfuly.
+// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
@@ -16180,8 +18976,8 @@ func (c *EC2) DisableVpcClassicLinkDnsSupportRequest(input *DisableVpcClassicLin
//
// Disables ClassicLink DNS support for a VPC. If disabled, DNS hostnames resolve
// to public IP addresses when addressed between a linked EC2-Classic instance
-// and instances in the VPC to which it's linked. For more information about
-// ClassicLink, see ClassicLink (http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/vpc-classiclink.html)
+// and instances in the VPC to which it's linked. For more information, see
+// ClassicLink (http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/vpc-classiclink.html)
// in the Amazon Elastic Compute Cloud User Guide.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
@@ -16217,7 +19013,7 @@ const opDisassociateAddress = "DisassociateAddress"
// DisassociateAddressRequest generates a "aws/request.Request" representing the
// client's request for the DisassociateAddress operation. The "output" return
// value will be populated with the request's response once the request completes
-// successfuly.
+// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
@@ -16251,8 +19047,7 @@ func (c *EC2) DisassociateAddressRequest(input *DisassociateAddressInput) (req *
output = &DisassociateAddressOutput{}
req = c.newRequest(op, input, output)
- req.Handlers.Unmarshal.Remove(ec2query.UnmarshalHandler)
- req.Handlers.Unmarshal.PushBackNamed(protocol.UnmarshalDiscardBodyHandler)
+ req.Handlers.Unmarshal.Swap(ec2query.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
return
}
@@ -16296,12 +19091,96 @@ func (c *EC2) DisassociateAddressWithContext(ctx aws.Context, input *Disassociat
return out, req.Send()
}
+const opDisassociateClientVpnTargetNetwork = "DisassociateClientVpnTargetNetwork"
+
+// DisassociateClientVpnTargetNetworkRequest generates a "aws/request.Request" representing the
+// client's request for the DisassociateClientVpnTargetNetwork operation. The "output" return
+// value will be populated with the request's response once the request completes
+// successfully.
+//
+// Use "Send" method on the returned Request to send the API call to the service.
+// the "output" return value is not valid until after Send returns without error.
+//
+// See DisassociateClientVpnTargetNetwork for more information on using the DisassociateClientVpnTargetNetwork
+// API call, and error handling.
+//
+// This method is useful when you want to inject custom logic or configuration
+// into the SDK's request lifecycle. Such as custom headers, or retry logic.
+//
+//
+// // Example sending a request using the DisassociateClientVpnTargetNetworkRequest method.
+// req, resp := client.DisassociateClientVpnTargetNetworkRequest(params)
+//
+// err := req.Send()
+// if err == nil { // resp is now filled
+// fmt.Println(resp)
+// }
+//
+// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DisassociateClientVpnTargetNetwork
+func (c *EC2) DisassociateClientVpnTargetNetworkRequest(input *DisassociateClientVpnTargetNetworkInput) (req *request.Request, output *DisassociateClientVpnTargetNetworkOutput) {
+ op := &request.Operation{
+ Name: opDisassociateClientVpnTargetNetwork,
+ HTTPMethod: "POST",
+ HTTPPath: "/",
+ }
+
+ if input == nil {
+ input = &DisassociateClientVpnTargetNetworkInput{}
+ }
+
+ output = &DisassociateClientVpnTargetNetworkOutput{}
+ req = c.newRequest(op, input, output)
+ return
+}
+
+// DisassociateClientVpnTargetNetwork API operation for Amazon Elastic Compute Cloud.
+//
+// Disassociates a target network from the specified Client VPN endpoint. When
+// you disassociate the last target network from a Client VPN, the following
+// happens:
+//
+// * The route that was automatically added for the VPC is deleted
+//
+// * All active client connections are terminated
+//
+// * New client connections are disallowed
+//
+// * The Client VPN endpoint's status changes to pending-associate
+//
+// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
+// with awserr.Error's Code and Message methods to get detailed information about
+// the error.
+//
+// See the AWS API reference guide for Amazon Elastic Compute Cloud's
+// API operation DisassociateClientVpnTargetNetwork for usage and error information.
+// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DisassociateClientVpnTargetNetwork
+func (c *EC2) DisassociateClientVpnTargetNetwork(input *DisassociateClientVpnTargetNetworkInput) (*DisassociateClientVpnTargetNetworkOutput, error) {
+ req, out := c.DisassociateClientVpnTargetNetworkRequest(input)
+ return out, req.Send()
+}
+
+// DisassociateClientVpnTargetNetworkWithContext is the same as DisassociateClientVpnTargetNetwork with the addition of
+// the ability to pass a context and additional request options.
+//
+// See DisassociateClientVpnTargetNetwork for details on how to use this API operation.
+//
+// The context must be non-nil and will be used for request cancellation. If
+// the context is nil a panic will occur. In the future the SDK may create
+// sub-contexts for http.Requests. See https://golang.org/pkg/context/
+// for more information on using Contexts.
+func (c *EC2) DisassociateClientVpnTargetNetworkWithContext(ctx aws.Context, input *DisassociateClientVpnTargetNetworkInput, opts ...request.Option) (*DisassociateClientVpnTargetNetworkOutput, error) {
+ req, out := c.DisassociateClientVpnTargetNetworkRequest(input)
+ req.SetContext(ctx)
+ req.ApplyOptions(opts...)
+ return out, req.Send()
+}
+
const opDisassociateIamInstanceProfile = "DisassociateIamInstanceProfile"
// DisassociateIamInstanceProfileRequest generates a "aws/request.Request" representing the
// client's request for the DisassociateIamInstanceProfile operation. The "output" return
// value will be populated with the request's response once the request completes
-// successfuly.
+// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
@@ -16377,7 +19256,7 @@ const opDisassociateRouteTable = "DisassociateRouteTable"
// DisassociateRouteTableRequest generates a "aws/request.Request" representing the
// client's request for the DisassociateRouteTable operation. The "output" return
// value will be populated with the request's response once the request completes
-// successfuly.
+// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
@@ -16411,8 +19290,7 @@ func (c *EC2) DisassociateRouteTableRequest(input *DisassociateRouteTableInput)
output = &DisassociateRouteTableOutput{}
req = c.newRequest(op, input, output)
- req.Handlers.Unmarshal.Remove(ec2query.UnmarshalHandler)
- req.Handlers.Unmarshal.PushBackNamed(protocol.UnmarshalDiscardBodyHandler)
+ req.Handlers.Unmarshal.Swap(ec2query.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
return
}
@@ -16458,7 +19336,7 @@ const opDisassociateSubnetCidrBlock = "DisassociateSubnetCidrBlock"
// DisassociateSubnetCidrBlockRequest generates a "aws/request.Request" representing the
// client's request for the DisassociateSubnetCidrBlock operation. The "output" return
// value will be populated with the request's response once the request completes
-// successfuly.
+// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
@@ -16529,12 +19407,86 @@ func (c *EC2) DisassociateSubnetCidrBlockWithContext(ctx aws.Context, input *Dis
return out, req.Send()
}
+const opDisassociateTransitGatewayRouteTable = "DisassociateTransitGatewayRouteTable"
+
+// DisassociateTransitGatewayRouteTableRequest generates a "aws/request.Request" representing the
+// client's request for the DisassociateTransitGatewayRouteTable operation. The "output" return
+// value will be populated with the request's response once the request completes
+// successfully.
+//
+// Use "Send" method on the returned Request to send the API call to the service.
+// the "output" return value is not valid until after Send returns without error.
+//
+// See DisassociateTransitGatewayRouteTable for more information on using the DisassociateTransitGatewayRouteTable
+// API call, and error handling.
+//
+// This method is useful when you want to inject custom logic or configuration
+// into the SDK's request lifecycle. Such as custom headers, or retry logic.
+//
+//
+// // Example sending a request using the DisassociateTransitGatewayRouteTableRequest method.
+// req, resp := client.DisassociateTransitGatewayRouteTableRequest(params)
+//
+// err := req.Send()
+// if err == nil { // resp is now filled
+// fmt.Println(resp)
+// }
+//
+// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DisassociateTransitGatewayRouteTable
+func (c *EC2) DisassociateTransitGatewayRouteTableRequest(input *DisassociateTransitGatewayRouteTableInput) (req *request.Request, output *DisassociateTransitGatewayRouteTableOutput) {
+ op := &request.Operation{
+ Name: opDisassociateTransitGatewayRouteTable,
+ HTTPMethod: "POST",
+ HTTPPath: "/",
+ }
+
+ if input == nil {
+ input = &DisassociateTransitGatewayRouteTableInput{}
+ }
+
+ output = &DisassociateTransitGatewayRouteTableOutput{}
+ req = c.newRequest(op, input, output)
+ return
+}
+
+// DisassociateTransitGatewayRouteTable API operation for Amazon Elastic Compute Cloud.
+//
+// Disassociates a resource attachment from a transit gateway route table.
+//
+// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
+// with awserr.Error's Code and Message methods to get detailed information about
+// the error.
+//
+// See the AWS API reference guide for Amazon Elastic Compute Cloud's
+// API operation DisassociateTransitGatewayRouteTable for usage and error information.
+// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DisassociateTransitGatewayRouteTable
+func (c *EC2) DisassociateTransitGatewayRouteTable(input *DisassociateTransitGatewayRouteTableInput) (*DisassociateTransitGatewayRouteTableOutput, error) {
+ req, out := c.DisassociateTransitGatewayRouteTableRequest(input)
+ return out, req.Send()
+}
+
+// DisassociateTransitGatewayRouteTableWithContext is the same as DisassociateTransitGatewayRouteTable with the addition of
+// the ability to pass a context and additional request options.
+//
+// See DisassociateTransitGatewayRouteTable for details on how to use this API operation.
+//
+// The context must be non-nil and will be used for request cancellation. If
+// the context is nil a panic will occur. In the future the SDK may create
+// sub-contexts for http.Requests. See https://golang.org/pkg/context/
+// for more information on using Contexts.
+func (c *EC2) DisassociateTransitGatewayRouteTableWithContext(ctx aws.Context, input *DisassociateTransitGatewayRouteTableInput, opts ...request.Option) (*DisassociateTransitGatewayRouteTableOutput, error) {
+ req, out := c.DisassociateTransitGatewayRouteTableRequest(input)
+ req.SetContext(ctx)
+ req.ApplyOptions(opts...)
+ return out, req.Send()
+}
+
const opDisassociateVpcCidrBlock = "DisassociateVpcCidrBlock"
// DisassociateVpcCidrBlockRequest generates a "aws/request.Request" representing the
// client's request for the DisassociateVpcCidrBlock operation. The "output" return
// value will be populated with the request's response once the request completes
-// successfuly.
+// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
@@ -16609,12 +19561,87 @@ func (c *EC2) DisassociateVpcCidrBlockWithContext(ctx aws.Context, input *Disass
return out, req.Send()
}
+const opEnableTransitGatewayRouteTablePropagation = "EnableTransitGatewayRouteTablePropagation"
+
+// EnableTransitGatewayRouteTablePropagationRequest generates a "aws/request.Request" representing the
+// client's request for the EnableTransitGatewayRouteTablePropagation operation. The "output" return
+// value will be populated with the request's response once the request completes
+// successfully.
+//
+// Use "Send" method on the returned Request to send the API call to the service.
+// the "output" return value is not valid until after Send returns without error.
+//
+// See EnableTransitGatewayRouteTablePropagation for more information on using the EnableTransitGatewayRouteTablePropagation
+// API call, and error handling.
+//
+// This method is useful when you want to inject custom logic or configuration
+// into the SDK's request lifecycle. Such as custom headers, or retry logic.
+//
+//
+// // Example sending a request using the EnableTransitGatewayRouteTablePropagationRequest method.
+// req, resp := client.EnableTransitGatewayRouteTablePropagationRequest(params)
+//
+// err := req.Send()
+// if err == nil { // resp is now filled
+// fmt.Println(resp)
+// }
+//
+// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/EnableTransitGatewayRouteTablePropagation
+func (c *EC2) EnableTransitGatewayRouteTablePropagationRequest(input *EnableTransitGatewayRouteTablePropagationInput) (req *request.Request, output *EnableTransitGatewayRouteTablePropagationOutput) {
+ op := &request.Operation{
+ Name: opEnableTransitGatewayRouteTablePropagation,
+ HTTPMethod: "POST",
+ HTTPPath: "/",
+ }
+
+ if input == nil {
+ input = &EnableTransitGatewayRouteTablePropagationInput{}
+ }
+
+ output = &EnableTransitGatewayRouteTablePropagationOutput{}
+ req = c.newRequest(op, input, output)
+ return
+}
+
+// EnableTransitGatewayRouteTablePropagation API operation for Amazon Elastic Compute Cloud.
+//
+// Enables the specified attachment to propagate routes to the specified propagation
+// route table.
+//
+// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
+// with awserr.Error's Code and Message methods to get detailed information about
+// the error.
+//
+// See the AWS API reference guide for Amazon Elastic Compute Cloud's
+// API operation EnableTransitGatewayRouteTablePropagation for usage and error information.
+// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/EnableTransitGatewayRouteTablePropagation
+func (c *EC2) EnableTransitGatewayRouteTablePropagation(input *EnableTransitGatewayRouteTablePropagationInput) (*EnableTransitGatewayRouteTablePropagationOutput, error) {
+ req, out := c.EnableTransitGatewayRouteTablePropagationRequest(input)
+ return out, req.Send()
+}
+
+// EnableTransitGatewayRouteTablePropagationWithContext is the same as EnableTransitGatewayRouteTablePropagation with the addition of
+// the ability to pass a context and additional request options.
+//
+// See EnableTransitGatewayRouteTablePropagation for details on how to use this API operation.
+//
+// The context must be non-nil and will be used for request cancellation. If
+// the context is nil a panic will occur. In the future the SDK may create
+// sub-contexts for http.Requests. See https://golang.org/pkg/context/
+// for more information on using Contexts.
+func (c *EC2) EnableTransitGatewayRouteTablePropagationWithContext(ctx aws.Context, input *EnableTransitGatewayRouteTablePropagationInput, opts ...request.Option) (*EnableTransitGatewayRouteTablePropagationOutput, error) {
+ req, out := c.EnableTransitGatewayRouteTablePropagationRequest(input)
+ req.SetContext(ctx)
+ req.ApplyOptions(opts...)
+ return out, req.Send()
+}
+
const opEnableVgwRoutePropagation = "EnableVgwRoutePropagation"
// EnableVgwRoutePropagationRequest generates a "aws/request.Request" representing the
// client's request for the EnableVgwRoutePropagation operation. The "output" return
// value will be populated with the request's response once the request completes
-// successfuly.
+// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
@@ -16648,8 +19675,7 @@ func (c *EC2) EnableVgwRoutePropagationRequest(input *EnableVgwRoutePropagationI
output = &EnableVgwRoutePropagationOutput{}
req = c.newRequest(op, input, output)
- req.Handlers.Unmarshal.Remove(ec2query.UnmarshalHandler)
- req.Handlers.Unmarshal.PushBackNamed(protocol.UnmarshalDiscardBodyHandler)
+ req.Handlers.Unmarshal.Swap(ec2query.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
return
}
@@ -16691,7 +19717,7 @@ const opEnableVolumeIO = "EnableVolumeIO"
// EnableVolumeIORequest generates a "aws/request.Request" representing the
// client's request for the EnableVolumeIO operation. The "output" return
// value will be populated with the request's response once the request completes
-// successfuly.
+// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
@@ -16725,8 +19751,7 @@ func (c *EC2) EnableVolumeIORequest(input *EnableVolumeIOInput) (req *request.Re
output = &EnableVolumeIOOutput{}
req = c.newRequest(op, input, output)
- req.Handlers.Unmarshal.Remove(ec2query.UnmarshalHandler)
- req.Handlers.Unmarshal.PushBackNamed(protocol.UnmarshalDiscardBodyHandler)
+ req.Handlers.Unmarshal.Swap(ec2query.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
return
}
@@ -16768,7 +19793,7 @@ const opEnableVpcClassicLink = "EnableVpcClassicLink"
// EnableVpcClassicLinkRequest generates a "aws/request.Request" representing the
// client's request for the EnableVpcClassicLink operation. The "output" return
// value will be populated with the request's response once the request completes
-// successfuly.
+// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
@@ -16809,7 +19834,7 @@ func (c *EC2) EnableVpcClassicLinkRequest(input *EnableVpcClassicLinkInput) (req
//
// Enables a VPC for ClassicLink. You can then link EC2-Classic instances to
// your ClassicLink-enabled VPC to allow communication over private IP addresses.
-// You cannot enable your VPC for ClassicLink if any of your VPC's route tables
+// You cannot enable your VPC for ClassicLink if any of your VPC route tables
// have existing routes for address ranges within the 10.0.0.0/8 IP address
// range, excluding local routes for VPCs in the 10.0.0.0/16 and 10.1.0.0/16
// IP address ranges. For more information, see ClassicLink (http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/vpc-classiclink.html)
@@ -16848,7 +19873,7 @@ const opEnableVpcClassicLinkDnsSupport = "EnableVpcClassicLinkDnsSupport"
// EnableVpcClassicLinkDnsSupportRequest generates a "aws/request.Request" representing the
// client's request for the EnableVpcClassicLinkDnsSupport operation. The "output" return
// value will be populated with the request's response once the request completes
-// successfuly.
+// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
@@ -16891,8 +19916,8 @@ func (c *EC2) EnableVpcClassicLinkDnsSupportRequest(input *EnableVpcClassicLinkD
// the DNS hostname of a linked EC2-Classic instance resolves to its private
// IP address when addressed from an instance in the VPC to which it's linked.
// Similarly, the DNS hostname of an instance in a VPC resolves to its private
-// IP address when addressed from a linked EC2-Classic instance. For more information
-// about ClassicLink, see ClassicLink (http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/vpc-classiclink.html)
+// IP address when addressed from a linked EC2-Classic instance. For more information,
+// see ClassicLink (http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/vpc-classiclink.html)
// in the Amazon Elastic Compute Cloud User Guide.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
@@ -16923,12 +19948,240 @@ func (c *EC2) EnableVpcClassicLinkDnsSupportWithContext(ctx aws.Context, input *
return out, req.Send()
}
+const opExportClientVpnClientCertificateRevocationList = "ExportClientVpnClientCertificateRevocationList"
+
+// ExportClientVpnClientCertificateRevocationListRequest generates a "aws/request.Request" representing the
+// client's request for the ExportClientVpnClientCertificateRevocationList operation. The "output" return
+// value will be populated with the request's response once the request completes
+// successfully.
+//
+// Use "Send" method on the returned Request to send the API call to the service.
+// the "output" return value is not valid until after Send returns without error.
+//
+// See ExportClientVpnClientCertificateRevocationList for more information on using the ExportClientVpnClientCertificateRevocationList
+// API call, and error handling.
+//
+// This method is useful when you want to inject custom logic or configuration
+// into the SDK's request lifecycle. Such as custom headers, or retry logic.
+//
+//
+// // Example sending a request using the ExportClientVpnClientCertificateRevocationListRequest method.
+// req, resp := client.ExportClientVpnClientCertificateRevocationListRequest(params)
+//
+// err := req.Send()
+// if err == nil { // resp is now filled
+// fmt.Println(resp)
+// }
+//
+// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/ExportClientVpnClientCertificateRevocationList
+func (c *EC2) ExportClientVpnClientCertificateRevocationListRequest(input *ExportClientVpnClientCertificateRevocationListInput) (req *request.Request, output *ExportClientVpnClientCertificateRevocationListOutput) {
+ op := &request.Operation{
+ Name: opExportClientVpnClientCertificateRevocationList,
+ HTTPMethod: "POST",
+ HTTPPath: "/",
+ }
+
+ if input == nil {
+ input = &ExportClientVpnClientCertificateRevocationListInput{}
+ }
+
+ output = &ExportClientVpnClientCertificateRevocationListOutput{}
+ req = c.newRequest(op, input, output)
+ return
+}
+
+// ExportClientVpnClientCertificateRevocationList API operation for Amazon Elastic Compute Cloud.
+//
+// Downloads the client certificate revocation list for the specified Client
+// VPN endpoint.
+//
+// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
+// with awserr.Error's Code and Message methods to get detailed information about
+// the error.
+//
+// See the AWS API reference guide for Amazon Elastic Compute Cloud's
+// API operation ExportClientVpnClientCertificateRevocationList for usage and error information.
+// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/ExportClientVpnClientCertificateRevocationList
+func (c *EC2) ExportClientVpnClientCertificateRevocationList(input *ExportClientVpnClientCertificateRevocationListInput) (*ExportClientVpnClientCertificateRevocationListOutput, error) {
+ req, out := c.ExportClientVpnClientCertificateRevocationListRequest(input)
+ return out, req.Send()
+}
+
+// ExportClientVpnClientCertificateRevocationListWithContext is the same as ExportClientVpnClientCertificateRevocationList with the addition of
+// the ability to pass a context and additional request options.
+//
+// See ExportClientVpnClientCertificateRevocationList for details on how to use this API operation.
+//
+// The context must be non-nil and will be used for request cancellation. If
+// the context is nil a panic will occur. In the future the SDK may create
+// sub-contexts for http.Requests. See https://golang.org/pkg/context/
+// for more information on using Contexts.
+func (c *EC2) ExportClientVpnClientCertificateRevocationListWithContext(ctx aws.Context, input *ExportClientVpnClientCertificateRevocationListInput, opts ...request.Option) (*ExportClientVpnClientCertificateRevocationListOutput, error) {
+ req, out := c.ExportClientVpnClientCertificateRevocationListRequest(input)
+ req.SetContext(ctx)
+ req.ApplyOptions(opts...)
+ return out, req.Send()
+}
+
+const opExportClientVpnClientConfiguration = "ExportClientVpnClientConfiguration"
+
+// ExportClientVpnClientConfigurationRequest generates a "aws/request.Request" representing the
+// client's request for the ExportClientVpnClientConfiguration operation. The "output" return
+// value will be populated with the request's response once the request completes
+// successfully.
+//
+// Use "Send" method on the returned Request to send the API call to the service.
+// the "output" return value is not valid until after Send returns without error.
+//
+// See ExportClientVpnClientConfiguration for more information on using the ExportClientVpnClientConfiguration
+// API call, and error handling.
+//
+// This method is useful when you want to inject custom logic or configuration
+// into the SDK's request lifecycle. Such as custom headers, or retry logic.
+//
+//
+// // Example sending a request using the ExportClientVpnClientConfigurationRequest method.
+// req, resp := client.ExportClientVpnClientConfigurationRequest(params)
+//
+// err := req.Send()
+// if err == nil { // resp is now filled
+// fmt.Println(resp)
+// }
+//
+// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/ExportClientVpnClientConfiguration
+func (c *EC2) ExportClientVpnClientConfigurationRequest(input *ExportClientVpnClientConfigurationInput) (req *request.Request, output *ExportClientVpnClientConfigurationOutput) {
+ op := &request.Operation{
+ Name: opExportClientVpnClientConfiguration,
+ HTTPMethod: "POST",
+ HTTPPath: "/",
+ }
+
+ if input == nil {
+ input = &ExportClientVpnClientConfigurationInput{}
+ }
+
+ output = &ExportClientVpnClientConfigurationOutput{}
+ req = c.newRequest(op, input, output)
+ return
+}
+
+// ExportClientVpnClientConfiguration API operation for Amazon Elastic Compute Cloud.
+//
+// Downloads the contents of the Client VPN endpoint configuration file for
+// the specified Client VPN endpoint. The Client VPN endpoint configuration
+// file includes the Client VPN endpoint and certificate information clients
+// need to establish a connection with the Client VPN endpoint.
+//
+// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
+// with awserr.Error's Code and Message methods to get detailed information about
+// the error.
+//
+// See the AWS API reference guide for Amazon Elastic Compute Cloud's
+// API operation ExportClientVpnClientConfiguration for usage and error information.
+// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/ExportClientVpnClientConfiguration
+func (c *EC2) ExportClientVpnClientConfiguration(input *ExportClientVpnClientConfigurationInput) (*ExportClientVpnClientConfigurationOutput, error) {
+ req, out := c.ExportClientVpnClientConfigurationRequest(input)
+ return out, req.Send()
+}
+
+// ExportClientVpnClientConfigurationWithContext is the same as ExportClientVpnClientConfiguration with the addition of
+// the ability to pass a context and additional request options.
+//
+// See ExportClientVpnClientConfiguration for details on how to use this API operation.
+//
+// The context must be non-nil and will be used for request cancellation. If
+// the context is nil a panic will occur. In the future the SDK may create
+// sub-contexts for http.Requests. See https://golang.org/pkg/context/
+// for more information on using Contexts.
+func (c *EC2) ExportClientVpnClientConfigurationWithContext(ctx aws.Context, input *ExportClientVpnClientConfigurationInput, opts ...request.Option) (*ExportClientVpnClientConfigurationOutput, error) {
+ req, out := c.ExportClientVpnClientConfigurationRequest(input)
+ req.SetContext(ctx)
+ req.ApplyOptions(opts...)
+ return out, req.Send()
+}
+
+const opExportTransitGatewayRoutes = "ExportTransitGatewayRoutes"
+
+// ExportTransitGatewayRoutesRequest generates a "aws/request.Request" representing the
+// client's request for the ExportTransitGatewayRoutes operation. The "output" return
+// value will be populated with the request's response once the request completes
+// successfully.
+//
+// Use "Send" method on the returned Request to send the API call to the service.
+// the "output" return value is not valid until after Send returns without error.
+//
+// See ExportTransitGatewayRoutes for more information on using the ExportTransitGatewayRoutes
+// API call, and error handling.
+//
+// This method is useful when you want to inject custom logic or configuration
+// into the SDK's request lifecycle. Such as custom headers, or retry logic.
+//
+//
+// // Example sending a request using the ExportTransitGatewayRoutesRequest method.
+// req, resp := client.ExportTransitGatewayRoutesRequest(params)
+//
+// err := req.Send()
+// if err == nil { // resp is now filled
+// fmt.Println(resp)
+// }
+//
+// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/ExportTransitGatewayRoutes
+func (c *EC2) ExportTransitGatewayRoutesRequest(input *ExportTransitGatewayRoutesInput) (req *request.Request, output *ExportTransitGatewayRoutesOutput) {
+ op := &request.Operation{
+ Name: opExportTransitGatewayRoutes,
+ HTTPMethod: "POST",
+ HTTPPath: "/",
+ }
+
+ if input == nil {
+ input = &ExportTransitGatewayRoutesInput{}
+ }
+
+ output = &ExportTransitGatewayRoutesOutput{}
+ req = c.newRequest(op, input, output)
+ return
+}
+
+// ExportTransitGatewayRoutes API operation for Amazon Elastic Compute Cloud.
+//
+// Exports routes from the specified transit gateway route table to the specified
+// S3 bucket. By default, all routes are exported. Alternatively, you can filter
+// by CIDR range.
+//
+// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
+// with awserr.Error's Code and Message methods to get detailed information about
+// the error.
+//
+// See the AWS API reference guide for Amazon Elastic Compute Cloud's
+// API operation ExportTransitGatewayRoutes for usage and error information.
+// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/ExportTransitGatewayRoutes
+func (c *EC2) ExportTransitGatewayRoutes(input *ExportTransitGatewayRoutesInput) (*ExportTransitGatewayRoutesOutput, error) {
+ req, out := c.ExportTransitGatewayRoutesRequest(input)
+ return out, req.Send()
+}
+
+// ExportTransitGatewayRoutesWithContext is the same as ExportTransitGatewayRoutes with the addition of
+// the ability to pass a context and additional request options.
+//
+// See ExportTransitGatewayRoutes for details on how to use this API operation.
+//
+// The context must be non-nil and will be used for request cancellation. If
+// the context is nil a panic will occur. In the future the SDK may create
+// sub-contexts for http.Requests. See https://golang.org/pkg/context/
+// for more information on using Contexts.
+func (c *EC2) ExportTransitGatewayRoutesWithContext(ctx aws.Context, input *ExportTransitGatewayRoutesInput, opts ...request.Option) (*ExportTransitGatewayRoutesOutput, error) {
+ req, out := c.ExportTransitGatewayRoutesRequest(input)
+ req.SetContext(ctx)
+ req.ApplyOptions(opts...)
+ return out, req.Send()
+}
+
const opGetConsoleOutput = "GetConsoleOutput"
// GetConsoleOutputRequest generates a "aws/request.Request" representing the
// client's request for the GetConsoleOutput operation. The "output" return
// value will be populated with the request's response once the request completes
-// successfuly.
+// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
@@ -16970,20 +20223,20 @@ func (c *EC2) GetConsoleOutputRequest(input *GetConsoleOutputInput) (req *reques
// Gets the console output for the specified instance. For Linux instances,
// the instance console output displays the exact console output that would
// normally be displayed on a physical monitor attached to a computer. For Windows
-// instances, the instance console output includes output from the EC2Config
-// service.
-//
-// GetConsoleOutput returns up to 64 KB of console output shortly after it's
-// generated by the instance.
+// instances, the instance console output includes the last three system event
+// log errors.
//
// By default, the console output returns buffered information that was posted
// shortly after an instance transition state (start, stop, reboot, or terminate).
// This information is available for at least one hour after the most recent
-// post.
+// post. Only the most recent 64 KB of console output is available.
//
// You can optionally retrieve the latest serial console output at any time
-// during the instance lifecycle. This option is only supported on C5, M5, and
-// i3.metal instances.
+// during the instance lifecycle. This option is supported on instance types
+// that use the Nitro hypervisor.
+//
+// For more information, see Instance Console Output (http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-console.html#instance-console-console-output)
+// in the Amazon Elastic Compute Cloud User Guide.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
@@ -17018,7 +20271,7 @@ const opGetConsoleScreenshot = "GetConsoleScreenshot"
// GetConsoleScreenshotRequest generates a "aws/request.Request" representing the
// client's request for the GetConsoleScreenshot operation. The "output" return
// value will be populated with the request's response once the request completes
-// successfuly.
+// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
@@ -17094,7 +20347,7 @@ const opGetHostReservationPurchasePreview = "GetHostReservationPurchasePreview"
// GetHostReservationPurchasePreviewRequest generates a "aws/request.Request" representing the
// client's request for the GetHostReservationPurchasePreview operation. The "output" return
// value will be populated with the request's response once the request completes
-// successfuly.
+// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
@@ -17173,7 +20426,7 @@ const opGetLaunchTemplateData = "GetLaunchTemplateData"
// GetLaunchTemplateDataRequest generates a "aws/request.Request" representing the
// client's request for the GetLaunchTemplateData operation. The "output" return
// value will be populated with the request's response once the request completes
-// successfuly.
+// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
@@ -17248,7 +20501,7 @@ const opGetPasswordData = "GetPasswordData"
// GetPasswordDataRequest generates a "aws/request.Request" representing the
// client's request for the GetPasswordData operation. The "output" return
// value will be populated with the request's response once the request completes
-// successfuly.
+// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
@@ -17339,7 +20592,7 @@ const opGetReservedInstancesExchangeQuote = "GetReservedInstancesExchangeQuote"
// GetReservedInstancesExchangeQuoteRequest generates a "aws/request.Request" representing the
// client's request for the GetReservedInstancesExchangeQuote operation. The "output" return
// value will be populated with the request's response once the request completes
-// successfuly.
+// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
@@ -17411,12 +20664,315 @@ func (c *EC2) GetReservedInstancesExchangeQuoteWithContext(ctx aws.Context, inpu
return out, req.Send()
}
+const opGetTransitGatewayAttachmentPropagations = "GetTransitGatewayAttachmentPropagations"
+
+// GetTransitGatewayAttachmentPropagationsRequest generates a "aws/request.Request" representing the
+// client's request for the GetTransitGatewayAttachmentPropagations operation. The "output" return
+// value will be populated with the request's response once the request completes
+// successfully.
+//
+// Use "Send" method on the returned Request to send the API call to the service.
+// the "output" return value is not valid until after Send returns without error.
+//
+// See GetTransitGatewayAttachmentPropagations for more information on using the GetTransitGatewayAttachmentPropagations
+// API call, and error handling.
+//
+// This method is useful when you want to inject custom logic or configuration
+// into the SDK's request lifecycle. Such as custom headers, or retry logic.
+//
+//
+// // Example sending a request using the GetTransitGatewayAttachmentPropagationsRequest method.
+// req, resp := client.GetTransitGatewayAttachmentPropagationsRequest(params)
+//
+// err := req.Send()
+// if err == nil { // resp is now filled
+// fmt.Println(resp)
+// }
+//
+// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/GetTransitGatewayAttachmentPropagations
+func (c *EC2) GetTransitGatewayAttachmentPropagationsRequest(input *GetTransitGatewayAttachmentPropagationsInput) (req *request.Request, output *GetTransitGatewayAttachmentPropagationsOutput) {
+ op := &request.Operation{
+ Name: opGetTransitGatewayAttachmentPropagations,
+ HTTPMethod: "POST",
+ HTTPPath: "/",
+ }
+
+ if input == nil {
+ input = &GetTransitGatewayAttachmentPropagationsInput{}
+ }
+
+ output = &GetTransitGatewayAttachmentPropagationsOutput{}
+ req = c.newRequest(op, input, output)
+ return
+}
+
+// GetTransitGatewayAttachmentPropagations API operation for Amazon Elastic Compute Cloud.
+//
+// Lists the route tables to which the specified resource attachment propagates
+// routes.
+//
+// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
+// with awserr.Error's Code and Message methods to get detailed information about
+// the error.
+//
+// See the AWS API reference guide for Amazon Elastic Compute Cloud's
+// API operation GetTransitGatewayAttachmentPropagations for usage and error information.
+// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/GetTransitGatewayAttachmentPropagations
+func (c *EC2) GetTransitGatewayAttachmentPropagations(input *GetTransitGatewayAttachmentPropagationsInput) (*GetTransitGatewayAttachmentPropagationsOutput, error) {
+ req, out := c.GetTransitGatewayAttachmentPropagationsRequest(input)
+ return out, req.Send()
+}
+
+// GetTransitGatewayAttachmentPropagationsWithContext is the same as GetTransitGatewayAttachmentPropagations with the addition of
+// the ability to pass a context and additional request options.
+//
+// See GetTransitGatewayAttachmentPropagations for details on how to use this API operation.
+//
+// The context must be non-nil and will be used for request cancellation. If
+// the context is nil a panic will occur. In the future the SDK may create
+// sub-contexts for http.Requests. See https://golang.org/pkg/context/
+// for more information on using Contexts.
+func (c *EC2) GetTransitGatewayAttachmentPropagationsWithContext(ctx aws.Context, input *GetTransitGatewayAttachmentPropagationsInput, opts ...request.Option) (*GetTransitGatewayAttachmentPropagationsOutput, error) {
+ req, out := c.GetTransitGatewayAttachmentPropagationsRequest(input)
+ req.SetContext(ctx)
+ req.ApplyOptions(opts...)
+ return out, req.Send()
+}
+
+const opGetTransitGatewayRouteTableAssociations = "GetTransitGatewayRouteTableAssociations"
+
+// GetTransitGatewayRouteTableAssociationsRequest generates a "aws/request.Request" representing the
+// client's request for the GetTransitGatewayRouteTableAssociations operation. The "output" return
+// value will be populated with the request's response once the request completes
+// successfully.
+//
+// Use "Send" method on the returned Request to send the API call to the service.
+// the "output" return value is not valid until after Send returns without error.
+//
+// See GetTransitGatewayRouteTableAssociations for more information on using the GetTransitGatewayRouteTableAssociations
+// API call, and error handling.
+//
+// This method is useful when you want to inject custom logic or configuration
+// into the SDK's request lifecycle. Such as custom headers, or retry logic.
+//
+//
+// // Example sending a request using the GetTransitGatewayRouteTableAssociationsRequest method.
+// req, resp := client.GetTransitGatewayRouteTableAssociationsRequest(params)
+//
+// err := req.Send()
+// if err == nil { // resp is now filled
+// fmt.Println(resp)
+// }
+//
+// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/GetTransitGatewayRouteTableAssociations
+func (c *EC2) GetTransitGatewayRouteTableAssociationsRequest(input *GetTransitGatewayRouteTableAssociationsInput) (req *request.Request, output *GetTransitGatewayRouteTableAssociationsOutput) {
+ op := &request.Operation{
+ Name: opGetTransitGatewayRouteTableAssociations,
+ HTTPMethod: "POST",
+ HTTPPath: "/",
+ }
+
+ if input == nil {
+ input = &GetTransitGatewayRouteTableAssociationsInput{}
+ }
+
+ output = &GetTransitGatewayRouteTableAssociationsOutput{}
+ req = c.newRequest(op, input, output)
+ return
+}
+
+// GetTransitGatewayRouteTableAssociations API operation for Amazon Elastic Compute Cloud.
+//
+// Gets information about the associations for the specified transit gateway
+// route table.
+//
+// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
+// with awserr.Error's Code and Message methods to get detailed information about
+// the error.
+//
+// See the AWS API reference guide for Amazon Elastic Compute Cloud's
+// API operation GetTransitGatewayRouteTableAssociations for usage and error information.
+// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/GetTransitGatewayRouteTableAssociations
+func (c *EC2) GetTransitGatewayRouteTableAssociations(input *GetTransitGatewayRouteTableAssociationsInput) (*GetTransitGatewayRouteTableAssociationsOutput, error) {
+ req, out := c.GetTransitGatewayRouteTableAssociationsRequest(input)
+ return out, req.Send()
+}
+
+// GetTransitGatewayRouteTableAssociationsWithContext is the same as GetTransitGatewayRouteTableAssociations with the addition of
+// the ability to pass a context and additional request options.
+//
+// See GetTransitGatewayRouteTableAssociations for details on how to use this API operation.
+//
+// The context must be non-nil and will be used for request cancellation. If
+// the context is nil a panic will occur. In the future the SDK may create
+// sub-contexts for http.Requests. See https://golang.org/pkg/context/
+// for more information on using Contexts.
+func (c *EC2) GetTransitGatewayRouteTableAssociationsWithContext(ctx aws.Context, input *GetTransitGatewayRouteTableAssociationsInput, opts ...request.Option) (*GetTransitGatewayRouteTableAssociationsOutput, error) {
+ req, out := c.GetTransitGatewayRouteTableAssociationsRequest(input)
+ req.SetContext(ctx)
+ req.ApplyOptions(opts...)
+ return out, req.Send()
+}
+
+const opGetTransitGatewayRouteTablePropagations = "GetTransitGatewayRouteTablePropagations"
+
+// GetTransitGatewayRouteTablePropagationsRequest generates a "aws/request.Request" representing the
+// client's request for the GetTransitGatewayRouteTablePropagations operation. The "output" return
+// value will be populated with the request's response once the request completes
+// successfully.
+//
+// Use "Send" method on the returned Request to send the API call to the service.
+// the "output" return value is not valid until after Send returns without error.
+//
+// See GetTransitGatewayRouteTablePropagations for more information on using the GetTransitGatewayRouteTablePropagations
+// API call, and error handling.
+//
+// This method is useful when you want to inject custom logic or configuration
+// into the SDK's request lifecycle. Such as custom headers, or retry logic.
+//
+//
+// // Example sending a request using the GetTransitGatewayRouteTablePropagationsRequest method.
+// req, resp := client.GetTransitGatewayRouteTablePropagationsRequest(params)
+//
+// err := req.Send()
+// if err == nil { // resp is now filled
+// fmt.Println(resp)
+// }
+//
+// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/GetTransitGatewayRouteTablePropagations
+func (c *EC2) GetTransitGatewayRouteTablePropagationsRequest(input *GetTransitGatewayRouteTablePropagationsInput) (req *request.Request, output *GetTransitGatewayRouteTablePropagationsOutput) {
+ op := &request.Operation{
+ Name: opGetTransitGatewayRouteTablePropagations,
+ HTTPMethod: "POST",
+ HTTPPath: "/",
+ }
+
+ if input == nil {
+ input = &GetTransitGatewayRouteTablePropagationsInput{}
+ }
+
+ output = &GetTransitGatewayRouteTablePropagationsOutput{}
+ req = c.newRequest(op, input, output)
+ return
+}
+
+// GetTransitGatewayRouteTablePropagations API operation for Amazon Elastic Compute Cloud.
+//
+// Gets information about the route table propagations for the specified transit
+// gateway route table.
+//
+// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
+// with awserr.Error's Code and Message methods to get detailed information about
+// the error.
+//
+// See the AWS API reference guide for Amazon Elastic Compute Cloud's
+// API operation GetTransitGatewayRouteTablePropagations for usage and error information.
+// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/GetTransitGatewayRouteTablePropagations
+func (c *EC2) GetTransitGatewayRouteTablePropagations(input *GetTransitGatewayRouteTablePropagationsInput) (*GetTransitGatewayRouteTablePropagationsOutput, error) {
+ req, out := c.GetTransitGatewayRouteTablePropagationsRequest(input)
+ return out, req.Send()
+}
+
+// GetTransitGatewayRouteTablePropagationsWithContext is the same as GetTransitGatewayRouteTablePropagations with the addition of
+// the ability to pass a context and additional request options.
+//
+// See GetTransitGatewayRouteTablePropagations for details on how to use this API operation.
+//
+// The context must be non-nil and will be used for request cancellation. If
+// the context is nil a panic will occur. In the future the SDK may create
+// sub-contexts for http.Requests. See https://golang.org/pkg/context/
+// for more information on using Contexts.
+func (c *EC2) GetTransitGatewayRouteTablePropagationsWithContext(ctx aws.Context, input *GetTransitGatewayRouteTablePropagationsInput, opts ...request.Option) (*GetTransitGatewayRouteTablePropagationsOutput, error) {
+ req, out := c.GetTransitGatewayRouteTablePropagationsRequest(input)
+ req.SetContext(ctx)
+ req.ApplyOptions(opts...)
+ return out, req.Send()
+}
+
+const opImportClientVpnClientCertificateRevocationList = "ImportClientVpnClientCertificateRevocationList"
+
+// ImportClientVpnClientCertificateRevocationListRequest generates a "aws/request.Request" representing the
+// client's request for the ImportClientVpnClientCertificateRevocationList operation. The "output" return
+// value will be populated with the request's response once the request completes
+// successfully.
+//
+// Use "Send" method on the returned Request to send the API call to the service.
+// the "output" return value is not valid until after Send returns without error.
+//
+// See ImportClientVpnClientCertificateRevocationList for more information on using the ImportClientVpnClientCertificateRevocationList
+// API call, and error handling.
+//
+// This method is useful when you want to inject custom logic or configuration
+// into the SDK's request lifecycle. Such as custom headers, or retry logic.
+//
+//
+// // Example sending a request using the ImportClientVpnClientCertificateRevocationListRequest method.
+// req, resp := client.ImportClientVpnClientCertificateRevocationListRequest(params)
+//
+// err := req.Send()
+// if err == nil { // resp is now filled
+// fmt.Println(resp)
+// }
+//
+// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/ImportClientVpnClientCertificateRevocationList
+func (c *EC2) ImportClientVpnClientCertificateRevocationListRequest(input *ImportClientVpnClientCertificateRevocationListInput) (req *request.Request, output *ImportClientVpnClientCertificateRevocationListOutput) {
+ op := &request.Operation{
+ Name: opImportClientVpnClientCertificateRevocationList,
+ HTTPMethod: "POST",
+ HTTPPath: "/",
+ }
+
+ if input == nil {
+ input = &ImportClientVpnClientCertificateRevocationListInput{}
+ }
+
+ output = &ImportClientVpnClientCertificateRevocationListOutput{}
+ req = c.newRequest(op, input, output)
+ return
+}
+
+// ImportClientVpnClientCertificateRevocationList API operation for Amazon Elastic Compute Cloud.
+//
+// Uploads a client certificate revocation list to the specified Client VPN
+// endpoint. Uploading a client certificate revocation list overwrites the existing
+// client certificate revocation list.
+//
+// Uploading a client certificate revocation list resets existing client connections.
+//
+// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
+// with awserr.Error's Code and Message methods to get detailed information about
+// the error.
+//
+// See the AWS API reference guide for Amazon Elastic Compute Cloud's
+// API operation ImportClientVpnClientCertificateRevocationList for usage and error information.
+// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/ImportClientVpnClientCertificateRevocationList
+func (c *EC2) ImportClientVpnClientCertificateRevocationList(input *ImportClientVpnClientCertificateRevocationListInput) (*ImportClientVpnClientCertificateRevocationListOutput, error) {
+ req, out := c.ImportClientVpnClientCertificateRevocationListRequest(input)
+ return out, req.Send()
+}
+
+// ImportClientVpnClientCertificateRevocationListWithContext is the same as ImportClientVpnClientCertificateRevocationList with the addition of
+// the ability to pass a context and additional request options.
+//
+// See ImportClientVpnClientCertificateRevocationList for details on how to use this API operation.
+//
+// The context must be non-nil and will be used for request cancellation. If
+// the context is nil a panic will occur. In the future the SDK may create
+// sub-contexts for http.Requests. See https://golang.org/pkg/context/
+// for more information on using Contexts.
+func (c *EC2) ImportClientVpnClientCertificateRevocationListWithContext(ctx aws.Context, input *ImportClientVpnClientCertificateRevocationListInput, opts ...request.Option) (*ImportClientVpnClientCertificateRevocationListOutput, error) {
+ req, out := c.ImportClientVpnClientCertificateRevocationListRequest(input)
+ req.SetContext(ctx)
+ req.ApplyOptions(opts...)
+ return out, req.Send()
+}
+
const opImportImage = "ImportImage"
// ImportImageRequest generates a "aws/request.Request" representing the
// client's request for the ImportImage operation. The "output" return
// value will be populated with the request's response once the request completes
-// successfuly.
+// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
@@ -17493,7 +21049,7 @@ const opImportInstance = "ImportInstance"
// ImportInstanceRequest generates a "aws/request.Request" representing the
// client's request for the ImportInstance operation. The "output" return
// value will be populated with the request's response once the request completes
-// successfuly.
+// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
@@ -17573,7 +21129,7 @@ const opImportKeyPair = "ImportKeyPair"
// ImportKeyPairRequest generates a "aws/request.Request" representing the
// client's request for the ImportKeyPair operation. The "output" return
// value will be populated with the request's response once the request completes
-// successfuly.
+// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
@@ -17654,7 +21210,7 @@ const opImportSnapshot = "ImportSnapshot"
// ImportSnapshotRequest generates a "aws/request.Request" representing the
// client's request for the ImportSnapshot operation. The "output" return
// value will be populated with the request's response once the request completes
-// successfuly.
+// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
@@ -17728,7 +21284,7 @@ const opImportVolume = "ImportVolume"
// ImportVolumeRequest generates a "aws/request.Request" representing the
// client's request for the ImportVolume operation. The "output" return
// value will be populated with the request's response once the request completes
-// successfuly.
+// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
@@ -17801,12 +21357,168 @@ func (c *EC2) ImportVolumeWithContext(ctx aws.Context, input *ImportVolumeInput,
return out, req.Send()
}
+const opModifyCapacityReservation = "ModifyCapacityReservation"
+
+// ModifyCapacityReservationRequest generates a "aws/request.Request" representing the
+// client's request for the ModifyCapacityReservation operation. The "output" return
+// value will be populated with the request's response once the request completes
+// successfully.
+//
+// Use "Send" method on the returned Request to send the API call to the service.
+// the "output" return value is not valid until after Send returns without error.
+//
+// See ModifyCapacityReservation for more information on using the ModifyCapacityReservation
+// API call, and error handling.
+//
+// This method is useful when you want to inject custom logic or configuration
+// into the SDK's request lifecycle. Such as custom headers, or retry logic.
+//
+//
+// // Example sending a request using the ModifyCapacityReservationRequest method.
+// req, resp := client.ModifyCapacityReservationRequest(params)
+//
+// err := req.Send()
+// if err == nil { // resp is now filled
+// fmt.Println(resp)
+// }
+//
+// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/ModifyCapacityReservation
+func (c *EC2) ModifyCapacityReservationRequest(input *ModifyCapacityReservationInput) (req *request.Request, output *ModifyCapacityReservationOutput) {
+ op := &request.Operation{
+ Name: opModifyCapacityReservation,
+ HTTPMethod: "POST",
+ HTTPPath: "/",
+ }
+
+ if input == nil {
+ input = &ModifyCapacityReservationInput{}
+ }
+
+ output = &ModifyCapacityReservationOutput{}
+ req = c.newRequest(op, input, output)
+ return
+}
+
+// ModifyCapacityReservation API operation for Amazon Elastic Compute Cloud.
+//
+// Modifies a Capacity Reservation's capacity and the conditions under which
+// it is to be released. You cannot change a Capacity Reservation's instance
+// type, EBS optimization, instance store settings, platform, Availability Zone,
+// or instance eligibility. If you need to modify any of these attributes, we
+// recommend that you cancel the Capacity Reservation, and then create a new
+// one with the required attributes.
+//
+// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
+// with awserr.Error's Code and Message methods to get detailed information about
+// the error.
+//
+// See the AWS API reference guide for Amazon Elastic Compute Cloud's
+// API operation ModifyCapacityReservation for usage and error information.
+// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/ModifyCapacityReservation
+func (c *EC2) ModifyCapacityReservation(input *ModifyCapacityReservationInput) (*ModifyCapacityReservationOutput, error) {
+ req, out := c.ModifyCapacityReservationRequest(input)
+ return out, req.Send()
+}
+
+// ModifyCapacityReservationWithContext is the same as ModifyCapacityReservation with the addition of
+// the ability to pass a context and additional request options.
+//
+// See ModifyCapacityReservation for details on how to use this API operation.
+//
+// The context must be non-nil and will be used for request cancellation. If
+// the context is nil a panic will occur. In the future the SDK may create
+// sub-contexts for http.Requests. See https://golang.org/pkg/context/
+// for more information on using Contexts.
+func (c *EC2) ModifyCapacityReservationWithContext(ctx aws.Context, input *ModifyCapacityReservationInput, opts ...request.Option) (*ModifyCapacityReservationOutput, error) {
+ req, out := c.ModifyCapacityReservationRequest(input)
+ req.SetContext(ctx)
+ req.ApplyOptions(opts...)
+ return out, req.Send()
+}
+
+const opModifyClientVpnEndpoint = "ModifyClientVpnEndpoint"
+
+// ModifyClientVpnEndpointRequest generates a "aws/request.Request" representing the
+// client's request for the ModifyClientVpnEndpoint operation. The "output" return
+// value will be populated with the request's response once the request completes
+// successfully.
+//
+// Use "Send" method on the returned Request to send the API call to the service.
+// the "output" return value is not valid until after Send returns without error.
+//
+// See ModifyClientVpnEndpoint for more information on using the ModifyClientVpnEndpoint
+// API call, and error handling.
+//
+// This method is useful when you want to inject custom logic or configuration
+// into the SDK's request lifecycle. Such as custom headers, or retry logic.
+//
+//
+// // Example sending a request using the ModifyClientVpnEndpointRequest method.
+// req, resp := client.ModifyClientVpnEndpointRequest(params)
+//
+// err := req.Send()
+// if err == nil { // resp is now filled
+// fmt.Println(resp)
+// }
+//
+// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/ModifyClientVpnEndpoint
+func (c *EC2) ModifyClientVpnEndpointRequest(input *ModifyClientVpnEndpointInput) (req *request.Request, output *ModifyClientVpnEndpointOutput) {
+ op := &request.Operation{
+ Name: opModifyClientVpnEndpoint,
+ HTTPMethod: "POST",
+ HTTPPath: "/",
+ }
+
+ if input == nil {
+ input = &ModifyClientVpnEndpointInput{}
+ }
+
+ output = &ModifyClientVpnEndpointOutput{}
+ req = c.newRequest(op, input, output)
+ return
+}
+
+// ModifyClientVpnEndpoint API operation for Amazon Elastic Compute Cloud.
+//
+// Modifies the specified Client VPN endpoint. You can only modify an endpoint's
+// server certificate information, client connection logging information, DNS
+// server, and description. Modifying the DNS server resets existing client
+// connections.
+//
+// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
+// with awserr.Error's Code and Message methods to get detailed information about
+// the error.
+//
+// See the AWS API reference guide for Amazon Elastic Compute Cloud's
+// API operation ModifyClientVpnEndpoint for usage and error information.
+// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/ModifyClientVpnEndpoint
+func (c *EC2) ModifyClientVpnEndpoint(input *ModifyClientVpnEndpointInput) (*ModifyClientVpnEndpointOutput, error) {
+ req, out := c.ModifyClientVpnEndpointRequest(input)
+ return out, req.Send()
+}
+
+// ModifyClientVpnEndpointWithContext is the same as ModifyClientVpnEndpoint with the addition of
+// the ability to pass a context and additional request options.
+//
+// See ModifyClientVpnEndpoint for details on how to use this API operation.
+//
+// The context must be non-nil and will be used for request cancellation. If
+// the context is nil a panic will occur. In the future the SDK may create
+// sub-contexts for http.Requests. See https://golang.org/pkg/context/
+// for more information on using Contexts.
+func (c *EC2) ModifyClientVpnEndpointWithContext(ctx aws.Context, input *ModifyClientVpnEndpointInput, opts ...request.Option) (*ModifyClientVpnEndpointOutput, error) {
+ req, out := c.ModifyClientVpnEndpointRequest(input)
+ req.SetContext(ctx)
+ req.ApplyOptions(opts...)
+ return out, req.Send()
+}
+
const opModifyFleet = "ModifyFleet"
// ModifyFleetRequest generates a "aws/request.Request" representing the
// client's request for the ModifyFleet operation. The "output" return
// value will be populated with the request's response once the request completes
-// successfuly.
+// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
@@ -17882,7 +21594,7 @@ const opModifyFpgaImageAttribute = "ModifyFpgaImageAttribute"
// ModifyFpgaImageAttributeRequest generates a "aws/request.Request" representing the
// client's request for the ModifyFpgaImageAttribute operation. The "output" return
// value will be populated with the request's response once the request completes
-// successfuly.
+// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
@@ -17956,7 +21668,7 @@ const opModifyHosts = "ModifyHosts"
// ModifyHostsRequest generates a "aws/request.Request" representing the
// client's request for the ModifyHosts operation. The "output" return
// value will be populated with the request's response once the request completes
-// successfuly.
+// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
@@ -17996,12 +21708,12 @@ func (c *EC2) ModifyHostsRequest(input *ModifyHostsInput) (req *request.Request,
// ModifyHosts API operation for Amazon Elastic Compute Cloud.
//
// Modify the auto-placement setting of a Dedicated Host. When auto-placement
-// is enabled, AWS will place instances that you launch with a tenancy of host,
-// but without targeting a specific host ID, onto any available Dedicated Host
-// in your account which has auto-placement enabled. When auto-placement is
-// disabled, you need to provide a host ID if you want the instance to launch
-// onto a specific host. If no host ID is provided, the instance will be launched
-// onto a suitable host which has auto-placement enabled.
+// is enabled, any instances that you launch with a tenancy of host but without
+// a specific host ID are placed onto any available Dedicated Host in your account
+// that has auto-placement enabled. When auto-placement is disabled, you need
+// to provide a host ID to have the instance launch onto a specific host. If
+// no host ID is provided, the instance is launched onto a suitable host with
+// auto-placement enabled.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
@@ -18036,7 +21748,7 @@ const opModifyIdFormat = "ModifyIdFormat"
// ModifyIdFormatRequest generates a "aws/request.Request" representing the
// client's request for the ModifyIdFormat operation. The "output" return
// value will be populated with the request's response once the request completes
-// successfuly.
+// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
@@ -18070,8 +21782,7 @@ func (c *EC2) ModifyIdFormatRequest(input *ModifyIdFormatInput) (req *request.Re
output = &ModifyIdFormatOutput{}
req = c.newRequest(op, input, output)
- req.Handlers.Unmarshal.Remove(ec2query.UnmarshalHandler)
- req.Handlers.Unmarshal.PushBackNamed(protocol.UnmarshalDiscardBodyHandler)
+ req.Handlers.Unmarshal.Swap(ec2query.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
return
}
@@ -18134,7 +21845,7 @@ const opModifyIdentityIdFormat = "ModifyIdentityIdFormat"
// ModifyIdentityIdFormatRequest generates a "aws/request.Request" representing the
// client's request for the ModifyIdentityIdFormat operation. The "output" return
// value will be populated with the request's response once the request completes
-// successfuly.
+// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
@@ -18168,8 +21879,7 @@ func (c *EC2) ModifyIdentityIdFormatRequest(input *ModifyIdentityIdFormatInput)
output = &ModifyIdentityIdFormatOutput{}
req = c.newRequest(op, input, output)
- req.Handlers.Unmarshal.Remove(ec2query.UnmarshalHandler)
- req.Handlers.Unmarshal.PushBackNamed(protocol.UnmarshalDiscardBodyHandler)
+ req.Handlers.Unmarshal.Swap(ec2query.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
return
}
@@ -18232,7 +21942,7 @@ const opModifyImageAttribute = "ModifyImageAttribute"
// ModifyImageAttributeRequest generates a "aws/request.Request" representing the
// client's request for the ModifyImageAttribute operation. The "output" return
// value will be populated with the request's response once the request completes
-// successfuly.
+// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
@@ -18266,8 +21976,7 @@ func (c *EC2) ModifyImageAttributeRequest(input *ModifyImageAttributeInput) (req
output = &ModifyImageAttributeOutput{}
req = c.newRequest(op, input, output)
- req.Handlers.Unmarshal.Remove(ec2query.UnmarshalHandler)
- req.Handlers.Unmarshal.PushBackNamed(protocol.UnmarshalDiscardBodyHandler)
+ req.Handlers.Unmarshal.Swap(ec2query.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
return
}
@@ -18317,7 +22026,7 @@ const opModifyInstanceAttribute = "ModifyInstanceAttribute"
// ModifyInstanceAttributeRequest generates a "aws/request.Request" representing the
// client's request for the ModifyInstanceAttribute operation. The "output" return
// value will be populated with the request's response once the request completes
-// successfuly.
+// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
@@ -18351,8 +22060,7 @@ func (c *EC2) ModifyInstanceAttributeRequest(input *ModifyInstanceAttributeInput
output = &ModifyInstanceAttributeOutput{}
req = c.newRequest(op, input, output)
- req.Handlers.Unmarshal.Remove(ec2query.UnmarshalHandler)
- req.Handlers.Unmarshal.PushBackNamed(protocol.UnmarshalDiscardBodyHandler)
+ req.Handlers.Unmarshal.Swap(ec2query.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
return
}
@@ -18399,12 +22107,89 @@ func (c *EC2) ModifyInstanceAttributeWithContext(ctx aws.Context, input *ModifyI
return out, req.Send()
}
+const opModifyInstanceCapacityReservationAttributes = "ModifyInstanceCapacityReservationAttributes"
+
+// ModifyInstanceCapacityReservationAttributesRequest generates a "aws/request.Request" representing the
+// client's request for the ModifyInstanceCapacityReservationAttributes operation. The "output" return
+// value will be populated with the request's response once the request completes
+// successfully.
+//
+// Use "Send" method on the returned Request to send the API call to the service.
+// the "output" return value is not valid until after Send returns without error.
+//
+// See ModifyInstanceCapacityReservationAttributes for more information on using the ModifyInstanceCapacityReservationAttributes
+// API call, and error handling.
+//
+// This method is useful when you want to inject custom logic or configuration
+// into the SDK's request lifecycle. Such as custom headers, or retry logic.
+//
+//
+// // Example sending a request using the ModifyInstanceCapacityReservationAttributesRequest method.
+// req, resp := client.ModifyInstanceCapacityReservationAttributesRequest(params)
+//
+// err := req.Send()
+// if err == nil { // resp is now filled
+// fmt.Println(resp)
+// }
+//
+// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/ModifyInstanceCapacityReservationAttributes
+func (c *EC2) ModifyInstanceCapacityReservationAttributesRequest(input *ModifyInstanceCapacityReservationAttributesInput) (req *request.Request, output *ModifyInstanceCapacityReservationAttributesOutput) {
+ op := &request.Operation{
+ Name: opModifyInstanceCapacityReservationAttributes,
+ HTTPMethod: "POST",
+ HTTPPath: "/",
+ }
+
+ if input == nil {
+ input = &ModifyInstanceCapacityReservationAttributesInput{}
+ }
+
+ output = &ModifyInstanceCapacityReservationAttributesOutput{}
+ req = c.newRequest(op, input, output)
+ return
+}
+
+// ModifyInstanceCapacityReservationAttributes API operation for Amazon Elastic Compute Cloud.
+//
+// Modifies the Capacity Reservation settings for a stopped instance. Use this
+// action to configure an instance to target a specific Capacity Reservation,
+// run in any open Capacity Reservation with matching attributes, or run On-Demand
+// Instance capacity.
+//
+// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
+// with awserr.Error's Code and Message methods to get detailed information about
+// the error.
+//
+// See the AWS API reference guide for Amazon Elastic Compute Cloud's
+// API operation ModifyInstanceCapacityReservationAttributes for usage and error information.
+// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/ModifyInstanceCapacityReservationAttributes
+func (c *EC2) ModifyInstanceCapacityReservationAttributes(input *ModifyInstanceCapacityReservationAttributesInput) (*ModifyInstanceCapacityReservationAttributesOutput, error) {
+ req, out := c.ModifyInstanceCapacityReservationAttributesRequest(input)
+ return out, req.Send()
+}
+
+// ModifyInstanceCapacityReservationAttributesWithContext is the same as ModifyInstanceCapacityReservationAttributes with the addition of
+// the ability to pass a context and additional request options.
+//
+// See ModifyInstanceCapacityReservationAttributes for details on how to use this API operation.
+//
+// The context must be non-nil and will be used for request cancellation. If
+// the context is nil a panic will occur. In the future the SDK may create
+// sub-contexts for http.Requests. See https://golang.org/pkg/context/
+// for more information on using Contexts.
+func (c *EC2) ModifyInstanceCapacityReservationAttributesWithContext(ctx aws.Context, input *ModifyInstanceCapacityReservationAttributesInput, opts ...request.Option) (*ModifyInstanceCapacityReservationAttributesOutput, error) {
+ req, out := c.ModifyInstanceCapacityReservationAttributesRequest(input)
+ req.SetContext(ctx)
+ req.ApplyOptions(opts...)
+ return out, req.Send()
+}
+
const opModifyInstanceCreditSpecification = "ModifyInstanceCreditSpecification"
// ModifyInstanceCreditSpecificationRequest generates a "aws/request.Request" representing the
// client's request for the ModifyInstanceCreditSpecification operation. The "output" return
// value will be populated with the request's response once the request completes
-// successfuly.
+// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
@@ -18443,10 +22228,10 @@ func (c *EC2) ModifyInstanceCreditSpecificationRequest(input *ModifyInstanceCred
// ModifyInstanceCreditSpecification API operation for Amazon Elastic Compute Cloud.
//
-// Modifies the credit option for CPU usage on a running or stopped T2 instance.
-// The credit options are standard and unlimited.
+// Modifies the credit option for CPU usage on a running or stopped T2 or T3
+// instance. The credit options are standard and unlimited.
//
-// For more information, see T2 Instances (http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/t2-instances.html)
+// For more information, see Burstable Performance Instances (http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/burstable-performance-instances.html)
// in the Amazon Elastic Compute Cloud User Guide.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
@@ -18482,7 +22267,7 @@ const opModifyInstancePlacement = "ModifyInstancePlacement"
// ModifyInstancePlacementRequest generates a "aws/request.Request" representing the
// client's request for the ModifyInstancePlacement operation. The "output" return
// value will be populated with the request's response once the request completes
-// successfuly.
+// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
@@ -18541,8 +22326,8 @@ func (c *EC2) ModifyInstancePlacementRequest(input *ModifyInstancePlacementInput
// name must be specified in the request. Affinity and tenancy can be modified
// in the same request.
//
-// To modify the host ID, tenancy, or placement group for an instance, the instance
-// must be in the stopped state.
+// To modify the host ID, tenancy, placement group, or partition for an instance,
+// the instance must be in the stopped state.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
@@ -18577,7 +22362,7 @@ const opModifyLaunchTemplate = "ModifyLaunchTemplate"
// ModifyLaunchTemplateRequest generates a "aws/request.Request" representing the
// client's request for the ModifyLaunchTemplate operation. The "output" return
// value will be populated with the request's response once the request completes
-// successfuly.
+// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
@@ -18653,7 +22438,7 @@ const opModifyNetworkInterfaceAttribute = "ModifyNetworkInterfaceAttribute"
// ModifyNetworkInterfaceAttributeRequest generates a "aws/request.Request" representing the
// client's request for the ModifyNetworkInterfaceAttribute operation. The "output" return
// value will be populated with the request's response once the request completes
-// successfuly.
+// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
@@ -18687,8 +22472,7 @@ func (c *EC2) ModifyNetworkInterfaceAttributeRequest(input *ModifyNetworkInterfa
output = &ModifyNetworkInterfaceAttributeOutput{}
req = c.newRequest(op, input, output)
- req.Handlers.Unmarshal.Remove(ec2query.UnmarshalHandler)
- req.Handlers.Unmarshal.PushBackNamed(protocol.UnmarshalDiscardBodyHandler)
+ req.Handlers.Unmarshal.Swap(ec2query.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
return
}
@@ -18730,7 +22514,7 @@ const opModifyReservedInstances = "ModifyReservedInstances"
// ModifyReservedInstancesRequest generates a "aws/request.Request" representing the
// client's request for the ModifyReservedInstances operation. The "output" return
// value will be populated with the request's response once the request completes
-// successfuly.
+// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
@@ -18810,7 +22594,7 @@ const opModifySnapshotAttribute = "ModifySnapshotAttribute"
// ModifySnapshotAttributeRequest generates a "aws/request.Request" representing the
// client's request for the ModifySnapshotAttribute operation. The "output" return
// value will be populated with the request's response once the request completes
-// successfuly.
+// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
@@ -18844,8 +22628,7 @@ func (c *EC2) ModifySnapshotAttributeRequest(input *ModifySnapshotAttributeInput
output = &ModifySnapshotAttributeOutput{}
req = c.newRequest(op, input, output)
- req.Handlers.Unmarshal.Remove(ec2query.UnmarshalHandler)
- req.Handlers.Unmarshal.PushBackNamed(protocol.UnmarshalDiscardBodyHandler)
+ req.Handlers.Unmarshal.Swap(ec2query.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
return
}
@@ -18861,7 +22644,7 @@ func (c *EC2) ModifySnapshotAttributeRequest(input *ModifySnapshotAttributeInput
// be made public. Snapshots encrypted with your default CMK cannot be shared
// with other accounts.
//
-// For more information on modifying snapshot permissions, see Sharing Snapshots
+// For more information about modifying snapshot permissions, see Sharing Snapshots
// (http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ebs-modifying-snapshot-permissions.html)
// in the Amazon Elastic Compute Cloud User Guide.
//
@@ -18898,7 +22681,7 @@ const opModifySpotFleetRequest = "ModifySpotFleetRequest"
// ModifySpotFleetRequestRequest generates a "aws/request.Request" representing the
// client's request for the ModifySpotFleetRequest operation. The "output" return
// value will be populated with the request's response once the request completes
-// successfuly.
+// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
@@ -18994,7 +22777,7 @@ const opModifySubnetAttribute = "ModifySubnetAttribute"
// ModifySubnetAttributeRequest generates a "aws/request.Request" representing the
// client's request for the ModifySubnetAttribute operation. The "output" return
// value will be populated with the request's response once the request completes
-// successfuly.
+// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
@@ -19028,8 +22811,7 @@ func (c *EC2) ModifySubnetAttributeRequest(input *ModifySubnetAttributeInput) (r
output = &ModifySubnetAttributeOutput{}
req = c.newRequest(op, input, output)
- req.Handlers.Unmarshal.Remove(ec2query.UnmarshalHandler)
- req.Handlers.Unmarshal.PushBackNamed(protocol.UnmarshalDiscardBodyHandler)
+ req.Handlers.Unmarshal.Swap(ec2query.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
return
}
@@ -19065,12 +22847,86 @@ func (c *EC2) ModifySubnetAttributeWithContext(ctx aws.Context, input *ModifySub
return out, req.Send()
}
+const opModifyTransitGatewayVpcAttachment = "ModifyTransitGatewayVpcAttachment"
+
+// ModifyTransitGatewayVpcAttachmentRequest generates a "aws/request.Request" representing the
+// client's request for the ModifyTransitGatewayVpcAttachment operation. The "output" return
+// value will be populated with the request's response once the request completes
+// successfully.
+//
+// Use "Send" method on the returned Request to send the API call to the service.
+// the "output" return value is not valid until after Send returns without error.
+//
+// See ModifyTransitGatewayVpcAttachment for more information on using the ModifyTransitGatewayVpcAttachment
+// API call, and error handling.
+//
+// This method is useful when you want to inject custom logic or configuration
+// into the SDK's request lifecycle. Such as custom headers, or retry logic.
+//
+//
+// // Example sending a request using the ModifyTransitGatewayVpcAttachmentRequest method.
+// req, resp := client.ModifyTransitGatewayVpcAttachmentRequest(params)
+//
+// err := req.Send()
+// if err == nil { // resp is now filled
+// fmt.Println(resp)
+// }
+//
+// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/ModifyTransitGatewayVpcAttachment
+func (c *EC2) ModifyTransitGatewayVpcAttachmentRequest(input *ModifyTransitGatewayVpcAttachmentInput) (req *request.Request, output *ModifyTransitGatewayVpcAttachmentOutput) {
+ op := &request.Operation{
+ Name: opModifyTransitGatewayVpcAttachment,
+ HTTPMethod: "POST",
+ HTTPPath: "/",
+ }
+
+ if input == nil {
+ input = &ModifyTransitGatewayVpcAttachmentInput{}
+ }
+
+ output = &ModifyTransitGatewayVpcAttachmentOutput{}
+ req = c.newRequest(op, input, output)
+ return
+}
+
+// ModifyTransitGatewayVpcAttachment API operation for Amazon Elastic Compute Cloud.
+//
+// Modifies the specified VPC attachment.
+//
+// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
+// with awserr.Error's Code and Message methods to get detailed information about
+// the error.
+//
+// See the AWS API reference guide for Amazon Elastic Compute Cloud's
+// API operation ModifyTransitGatewayVpcAttachment for usage and error information.
+// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/ModifyTransitGatewayVpcAttachment
+func (c *EC2) ModifyTransitGatewayVpcAttachment(input *ModifyTransitGatewayVpcAttachmentInput) (*ModifyTransitGatewayVpcAttachmentOutput, error) {
+ req, out := c.ModifyTransitGatewayVpcAttachmentRequest(input)
+ return out, req.Send()
+}
+
+// ModifyTransitGatewayVpcAttachmentWithContext is the same as ModifyTransitGatewayVpcAttachment with the addition of
+// the ability to pass a context and additional request options.
+//
+// See ModifyTransitGatewayVpcAttachment for details on how to use this API operation.
+//
+// The context must be non-nil and will be used for request cancellation. If
+// the context is nil a panic will occur. In the future the SDK may create
+// sub-contexts for http.Requests. See https://golang.org/pkg/context/
+// for more information on using Contexts.
+func (c *EC2) ModifyTransitGatewayVpcAttachmentWithContext(ctx aws.Context, input *ModifyTransitGatewayVpcAttachmentInput, opts ...request.Option) (*ModifyTransitGatewayVpcAttachmentOutput, error) {
+ req, out := c.ModifyTransitGatewayVpcAttachmentRequest(input)
+ req.SetContext(ctx)
+ req.ApplyOptions(opts...)
+ return out, req.Send()
+}
+
const opModifyVolume = "ModifyVolume"
// ModifyVolumeRequest generates a "aws/request.Request" representing the
// client's request for the ModifyVolume operation. The "output" return
// value will be populated with the request's response once the request completes
-// successfuly.
+// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
@@ -19134,10 +22990,9 @@ func (c *EC2) ModifyVolumeRequest(input *ModifyVolumeInput) (req *request.Reques
//
// With previous-generation instance types, resizing an EBS volume may require
// detaching and reattaching the volume or stopping and restarting the instance.
-// For more information about modifying an EBS volume running Linux, see Modifying
-// the Size, IOPS, or Type of an EBS Volume on Linux (http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ebs-expand-volume.html).
-// For more information about modifying an EBS volume running Windows, see Modifying
-// the Size, IOPS, or Type of an EBS Volume on Windows (http://docs.aws.amazon.com/AWSEC2/latest/WindowsGuide/ebs-expand-volume.html).
+// For more information, see Modifying the Size, IOPS, or Type of an EBS Volume
+// on Linux (http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ebs-expand-volume.html)
+// and Modifying the Size, IOPS, or Type of an EBS Volume on Windows (http://docs.aws.amazon.com/AWSEC2/latest/WindowsGuide/ebs-expand-volume.html).
//
// If you reach the maximum volume modification rate per volume limit, you will
// need to wait at least six hours before applying further modifications to
@@ -19176,7 +23031,7 @@ const opModifyVolumeAttribute = "ModifyVolumeAttribute"
// ModifyVolumeAttributeRequest generates a "aws/request.Request" representing the
// client's request for the ModifyVolumeAttribute operation. The "output" return
// value will be populated with the request's response once the request completes
-// successfuly.
+// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
@@ -19210,8 +23065,7 @@ func (c *EC2) ModifyVolumeAttributeRequest(input *ModifyVolumeAttributeInput) (r
output = &ModifyVolumeAttributeOutput{}
req = c.newRequest(op, input, output)
- req.Handlers.Unmarshal.Remove(ec2query.UnmarshalHandler)
- req.Handlers.Unmarshal.PushBackNamed(protocol.UnmarshalDiscardBodyHandler)
+ req.Handlers.Unmarshal.Swap(ec2query.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
return
}
@@ -19261,7 +23115,7 @@ const opModifyVpcAttribute = "ModifyVpcAttribute"
// ModifyVpcAttributeRequest generates a "aws/request.Request" representing the
// client's request for the ModifyVpcAttribute operation. The "output" return
// value will be populated with the request's response once the request completes
-// successfuly.
+// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
@@ -19295,8 +23149,7 @@ func (c *EC2) ModifyVpcAttributeRequest(input *ModifyVpcAttributeInput) (req *re
output = &ModifyVpcAttributeOutput{}
req = c.newRequest(op, input, output)
- req.Handlers.Unmarshal.Remove(ec2query.UnmarshalHandler)
- req.Handlers.Unmarshal.PushBackNamed(protocol.UnmarshalDiscardBodyHandler)
+ req.Handlers.Unmarshal.Swap(ec2query.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
return
}
@@ -19337,7 +23190,7 @@ const opModifyVpcEndpoint = "ModifyVpcEndpoint"
// ModifyVpcEndpointRequest generates a "aws/request.Request" representing the
// client's request for the ModifyVpcEndpoint operation. The "output" return
// value will be populated with the request's response once the request completes
-// successfuly.
+// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
@@ -19414,7 +23267,7 @@ const opModifyVpcEndpointConnectionNotification = "ModifyVpcEndpointConnectionNo
// ModifyVpcEndpointConnectionNotificationRequest generates a "aws/request.Request" representing the
// client's request for the ModifyVpcEndpointConnectionNotification operation. The "output" return
// value will be populated with the request's response once the request completes
-// successfuly.
+// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
@@ -19490,7 +23343,7 @@ const opModifyVpcEndpointServiceConfiguration = "ModifyVpcEndpointServiceConfigu
// ModifyVpcEndpointServiceConfigurationRequest generates a "aws/request.Request" representing the
// client's request for the ModifyVpcEndpointServiceConfiguration operation. The "output" return
// value will be populated with the request's response once the request completes
-// successfuly.
+// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
@@ -19567,7 +23420,7 @@ const opModifyVpcEndpointServicePermissions = "ModifyVpcEndpointServicePermissio
// ModifyVpcEndpointServicePermissionsRequest generates a "aws/request.Request" representing the
// client's request for the ModifyVpcEndpointServicePermissions operation. The "output" return
// value will be populated with the request's response once the request completes
-// successfuly.
+// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
@@ -19610,6 +23463,11 @@ func (c *EC2) ModifyVpcEndpointServicePermissionsRequest(input *ModifyVpcEndpoin
// You can add or remove permissions for service consumers (IAM users, IAM roles,
// and AWS accounts) to connect to your endpoint service.
//
+// If you grant permissions to all principals, the service is public. Any users
+// who know the name of a public service can send a request to attach an endpoint.
+// If the service does not require manual approval, attachments are automatically
+// approved.
+//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
@@ -19643,7 +23501,7 @@ const opModifyVpcPeeringConnectionOptions = "ModifyVpcPeeringConnectionOptions"
// ModifyVpcPeeringConnectionOptionsRequest generates a "aws/request.Request" representing the
// client's request for the ModifyVpcPeeringConnectionOptions operation. The "output" return
// value will be populated with the request's response once the request completes
-// successfuly.
+// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
@@ -19695,12 +23553,16 @@ func (c *EC2) ModifyVpcPeeringConnectionOptionsRequest(input *ModifyVpcPeeringCo
// * Enable/disable the ability to resolve public DNS hostnames to private
// IP addresses when queried from instances in the peer VPC.
//
-// If the peered VPCs are in different accounts, each owner must initiate a
-// separate request to modify the peering connection options, depending on whether
-// their VPC was the requester or accepter for the VPC peering connection. If
-// the peered VPCs are in the same account, you can modify the requester and
-// accepter options in the same request. To confirm which VPC is the accepter
-// and requester for a VPC peering connection, use the DescribeVpcPeeringConnections
+// If the peered VPCs are in the same AWS account, you can enable DNS resolution
+// for queries from the local VPC. This ensures that queries from the local
+// VPC resolve to private IP addresses in the peer VPC. This option is not available
+// if the peered VPCs are in different AWS accounts or different regions. For
+// peered VPCs in different AWS accounts, each AWS account owner must initiate
+// a separate request to modify the peering connection options. For inter-region
+// peering connections, you must use the region for the requester VPC to modify
+// the requester VPC peering options and the region for the accepter VPC to
+// modify the accepter VPC peering options. To verify which VPCs are the accepter
+// and the requester for a VPC peering connection, use the DescribeVpcPeeringConnections
// command.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
@@ -19736,7 +23598,7 @@ const opModifyVpcTenancy = "ModifyVpcTenancy"
// ModifyVpcTenancyRequest generates a "aws/request.Request" representing the
// client's request for the ModifyVpcTenancy operation. The "output" return
// value will be populated with the request's response once the request completes
-// successfuly.
+// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
@@ -19783,7 +23645,7 @@ func (c *EC2) ModifyVpcTenancyRequest(input *ModifyVpcTenancyInput) (req *reques
// into the VPC have a tenancy of default, unless you specify otherwise during
// launch. The tenancy of any existing instances in the VPC is not affected.
//
-// For more information about Dedicated Instances, see Dedicated Instances (http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/dedicated-instance.html)
+// For more information, see Dedicated Instances (http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/dedicated-instance.html)
// in the Amazon Elastic Compute Cloud User Guide.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
@@ -19819,7 +23681,7 @@ const opMonitorInstances = "MonitorInstances"
// MonitorInstancesRequest generates a "aws/request.Request" representing the
// client's request for the MonitorInstances operation. The "output" return
// value will be populated with the request's response once the request completes
-// successfuly.
+// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
@@ -19898,7 +23760,7 @@ const opMoveAddressToVpc = "MoveAddressToVpc"
// MoveAddressToVpcRequest generates a "aws/request.Request" representing the
// client's request for the MoveAddressToVpc operation. The "output" return
// value will be populated with the request's response once the request completes
-// successfuly.
+// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
@@ -19973,12 +23835,102 @@ func (c *EC2) MoveAddressToVpcWithContext(ctx aws.Context, input *MoveAddressToV
return out, req.Send()
}
+const opProvisionByoipCidr = "ProvisionByoipCidr"
+
+// ProvisionByoipCidrRequest generates a "aws/request.Request" representing the
+// client's request for the ProvisionByoipCidr operation. The "output" return
+// value will be populated with the request's response once the request completes
+// successfully.
+//
+// Use "Send" method on the returned Request to send the API call to the service.
+// the "output" return value is not valid until after Send returns without error.
+//
+// See ProvisionByoipCidr for more information on using the ProvisionByoipCidr
+// API call, and error handling.
+//
+// This method is useful when you want to inject custom logic or configuration
+// into the SDK's request lifecycle. Such as custom headers, or retry logic.
+//
+//
+// // Example sending a request using the ProvisionByoipCidrRequest method.
+// req, resp := client.ProvisionByoipCidrRequest(params)
+//
+// err := req.Send()
+// if err == nil { // resp is now filled
+// fmt.Println(resp)
+// }
+//
+// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/ProvisionByoipCidr
+func (c *EC2) ProvisionByoipCidrRequest(input *ProvisionByoipCidrInput) (req *request.Request, output *ProvisionByoipCidrOutput) {
+ op := &request.Operation{
+ Name: opProvisionByoipCidr,
+ HTTPMethod: "POST",
+ HTTPPath: "/",
+ }
+
+ if input == nil {
+ input = &ProvisionByoipCidrInput{}
+ }
+
+ output = &ProvisionByoipCidrOutput{}
+ req = c.newRequest(op, input, output)
+ return
+}
+
+// ProvisionByoipCidr API operation for Amazon Elastic Compute Cloud.
+//
+// Provisions an address range for use with your AWS resources through bring
+// your own IP addresses (BYOIP) and creates a corresponding address pool. After
+// the address range is provisioned, it is ready to be advertised using AdvertiseByoipCidr.
+//
+// AWS verifies that you own the address range and are authorized to advertise
+// it. You must ensure that the address range is registered to you and that
+// you created an RPKI ROA to authorize Amazon ASNs 16509 and 14618 to advertise
+// the address range. For more information, see Bring Your Own IP Addresses
+// (BYOIP) (http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-byoip.html)
+// in the Amazon Elastic Compute Cloud User Guide.
+//
+// Provisioning an address range is an asynchronous operation, so the call returns
+// immediately, but the address range is not ready to use until its status changes
+// from pending-provision to provisioned. To monitor the status of an address
+// range, use DescribeByoipCidrs. To allocate an Elastic IP address from your
+// address pool, use AllocateAddress with either the specific address from the
+// address pool or the ID of the address pool.
+//
+// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
+// with awserr.Error's Code and Message methods to get detailed information about
+// the error.
+//
+// See the AWS API reference guide for Amazon Elastic Compute Cloud's
+// API operation ProvisionByoipCidr for usage and error information.
+// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/ProvisionByoipCidr
+func (c *EC2) ProvisionByoipCidr(input *ProvisionByoipCidrInput) (*ProvisionByoipCidrOutput, error) {
+ req, out := c.ProvisionByoipCidrRequest(input)
+ return out, req.Send()
+}
+
+// ProvisionByoipCidrWithContext is the same as ProvisionByoipCidr with the addition of
+// the ability to pass a context and additional request options.
+//
+// See ProvisionByoipCidr for details on how to use this API operation.
+//
+// The context must be non-nil and will be used for request cancellation. If
+// the context is nil a panic will occur. In the future the SDK may create
+// sub-contexts for http.Requests. See https://golang.org/pkg/context/
+// for more information on using Contexts.
+func (c *EC2) ProvisionByoipCidrWithContext(ctx aws.Context, input *ProvisionByoipCidrInput, opts ...request.Option) (*ProvisionByoipCidrOutput, error) {
+ req, out := c.ProvisionByoipCidrRequest(input)
+ req.SetContext(ctx)
+ req.ApplyOptions(opts...)
+ return out, req.Send()
+}
+
const opPurchaseHostReservation = "PurchaseHostReservation"
// PurchaseHostReservationRequest generates a "aws/request.Request" representing the
// client's request for the PurchaseHostReservation operation. The "output" return
// value will be populated with the request's response once the request completes
-// successfuly.
+// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
@@ -20055,7 +24007,7 @@ const opPurchaseReservedInstancesOffering = "PurchaseReservedInstancesOffering"
// PurchaseReservedInstancesOfferingRequest generates a "aws/request.Request" representing the
// client's request for the PurchaseReservedInstancesOffering operation. The "output" return
// value will be populated with the request's response once the request completes
-// successfuly.
+// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
@@ -20138,7 +24090,7 @@ const opPurchaseScheduledInstances = "PurchaseScheduledInstances"
// PurchaseScheduledInstancesRequest generates a "aws/request.Request" representing the
// client's request for the PurchaseScheduledInstances operation. The "output" return
// value will be populated with the request's response once the request completes
-// successfuly.
+// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
@@ -20221,7 +24173,7 @@ const opRebootInstances = "RebootInstances"
// RebootInstancesRequest generates a "aws/request.Request" representing the
// client's request for the RebootInstances operation. The "output" return
// value will be populated with the request's response once the request completes
-// successfuly.
+// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
@@ -20255,8 +24207,7 @@ func (c *EC2) RebootInstancesRequest(input *RebootInstancesInput) (req *request.
output = &RebootInstancesOutput{}
req = c.newRequest(op, input, output)
- req.Handlers.Unmarshal.Remove(ec2query.UnmarshalHandler)
- req.Handlers.Unmarshal.PushBackNamed(protocol.UnmarshalDiscardBodyHandler)
+ req.Handlers.Unmarshal.Swap(ec2query.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
return
}
@@ -20307,7 +24258,7 @@ const opRegisterImage = "RegisterImage"
// RegisterImageRequest generates a "aws/request.Request" representing the
// client's request for the RegisterImage operation. The "output" return
// value will be populated with the request's response once the request completes
-// successfuly.
+// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
@@ -20366,10 +24317,13 @@ func (c *EC2) RegisterImageRequest(input *RegisterImageInput) (req *request.Requ
// Some Linux distributions, such as Red Hat Enterprise Linux (RHEL) and SUSE
// Linux Enterprise Server (SLES), use the EC2 billing product code associated
// with an AMI to verify the subscription status for package updates. Creating
-// an AMI from an EBS snapshot does not maintain this billing code, and subsequent
-// instances launched from such an AMI will not be able to connect to package
-// update infrastructure. To create an AMI that must retain billing codes, see
-// CreateImage.
+// an AMI from an EBS snapshot does not maintain this billing code, and instances
+// launched from such an AMI are not able to connect to package update infrastructure.
+// If you purchase a Reserved Instance offering for one of these Linux distributions
+// and launch instances using an AMI that does not contain the required billing
+// code, your Reserved Instance is not applied to these instances.
+//
+// To create an AMI for operating systems that require a billing code, see CreateImage.
//
// If needed, you can deregister an AMI at any time. Any modifications you make
// to an AMI backed by an instance store volume invalidates its registration.
@@ -20404,12 +24358,90 @@ func (c *EC2) RegisterImageWithContext(ctx aws.Context, input *RegisterImageInpu
return out, req.Send()
}
+const opRejectTransitGatewayVpcAttachment = "RejectTransitGatewayVpcAttachment"
+
+// RejectTransitGatewayVpcAttachmentRequest generates a "aws/request.Request" representing the
+// client's request for the RejectTransitGatewayVpcAttachment operation. The "output" return
+// value will be populated with the request's response once the request completes
+// successfully.
+//
+// Use "Send" method on the returned Request to send the API call to the service.
+// the "output" return value is not valid until after Send returns without error.
+//
+// See RejectTransitGatewayVpcAttachment for more information on using the RejectTransitGatewayVpcAttachment
+// API call, and error handling.
+//
+// This method is useful when you want to inject custom logic or configuration
+// into the SDK's request lifecycle. Such as custom headers, or retry logic.
+//
+//
+// // Example sending a request using the RejectTransitGatewayVpcAttachmentRequest method.
+// req, resp := client.RejectTransitGatewayVpcAttachmentRequest(params)
+//
+// err := req.Send()
+// if err == nil { // resp is now filled
+// fmt.Println(resp)
+// }
+//
+// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/RejectTransitGatewayVpcAttachment
+func (c *EC2) RejectTransitGatewayVpcAttachmentRequest(input *RejectTransitGatewayVpcAttachmentInput) (req *request.Request, output *RejectTransitGatewayVpcAttachmentOutput) {
+ op := &request.Operation{
+ Name: opRejectTransitGatewayVpcAttachment,
+ HTTPMethod: "POST",
+ HTTPPath: "/",
+ }
+
+ if input == nil {
+ input = &RejectTransitGatewayVpcAttachmentInput{}
+ }
+
+ output = &RejectTransitGatewayVpcAttachmentOutput{}
+ req = c.newRequest(op, input, output)
+ return
+}
+
+// RejectTransitGatewayVpcAttachment API operation for Amazon Elastic Compute Cloud.
+//
+// Rejects a request to attach a VPC to a transit gateway.
+//
+// The VPC attachment must be in the pendingAcceptance state. Use DescribeTransitGatewayVpcAttachments
+// to view your pending VPC attachment requests. Use AcceptTransitGatewayVpcAttachment
+// to accept a VPC attachment request.
+//
+// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
+// with awserr.Error's Code and Message methods to get detailed information about
+// the error.
+//
+// See the AWS API reference guide for Amazon Elastic Compute Cloud's
+// API operation RejectTransitGatewayVpcAttachment for usage and error information.
+// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/RejectTransitGatewayVpcAttachment
+func (c *EC2) RejectTransitGatewayVpcAttachment(input *RejectTransitGatewayVpcAttachmentInput) (*RejectTransitGatewayVpcAttachmentOutput, error) {
+ req, out := c.RejectTransitGatewayVpcAttachmentRequest(input)
+ return out, req.Send()
+}
+
+// RejectTransitGatewayVpcAttachmentWithContext is the same as RejectTransitGatewayVpcAttachment with the addition of
+// the ability to pass a context and additional request options.
+//
+// See RejectTransitGatewayVpcAttachment for details on how to use this API operation.
+//
+// The context must be non-nil and will be used for request cancellation. If
+// the context is nil a panic will occur. In the future the SDK may create
+// sub-contexts for http.Requests. See https://golang.org/pkg/context/
+// for more information on using Contexts.
+func (c *EC2) RejectTransitGatewayVpcAttachmentWithContext(ctx aws.Context, input *RejectTransitGatewayVpcAttachmentInput, opts ...request.Option) (*RejectTransitGatewayVpcAttachmentOutput, error) {
+ req, out := c.RejectTransitGatewayVpcAttachmentRequest(input)
+ req.SetContext(ctx)
+ req.ApplyOptions(opts...)
+ return out, req.Send()
+}
+
const opRejectVpcEndpointConnections = "RejectVpcEndpointConnections"
// RejectVpcEndpointConnectionsRequest generates a "aws/request.Request" representing the
// client's request for the RejectVpcEndpointConnections operation. The "output" return
// value will be populated with the request's response once the request completes
-// successfuly.
+// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
@@ -20484,7 +24516,7 @@ const opRejectVpcPeeringConnection = "RejectVpcPeeringConnection"
// RejectVpcPeeringConnectionRequest generates a "aws/request.Request" representing the
// client's request for the RejectVpcPeeringConnection operation. The "output" return
// value will be populated with the request's response once the request completes
-// successfuly.
+// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
@@ -20562,7 +24594,7 @@ const opReleaseAddress = "ReleaseAddress"
// ReleaseAddressRequest generates a "aws/request.Request" representing the
// client's request for the ReleaseAddress operation. The "output" return
// value will be populated with the request's response once the request completes
-// successfuly.
+// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
@@ -20596,8 +24628,7 @@ func (c *EC2) ReleaseAddressRequest(input *ReleaseAddressInput) (req *request.Re
output = &ReleaseAddressOutput{}
req = c.newRequest(op, input, output)
- req.Handlers.Unmarshal.Remove(ec2query.UnmarshalHandler)
- req.Handlers.Unmarshal.PushBackNamed(protocol.UnmarshalDiscardBodyHandler)
+ req.Handlers.Unmarshal.Swap(ec2query.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
return
}
@@ -20655,7 +24686,7 @@ const opReleaseHosts = "ReleaseHosts"
// ReleaseHostsRequest generates a "aws/request.Request" representing the
// client's request for the ReleaseHosts operation. The "output" return
// value will be populated with the request's response once the request completes
-// successfuly.
+// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
@@ -20697,15 +24728,14 @@ func (c *EC2) ReleaseHostsRequest(input *ReleaseHostsInput) (req *request.Reques
// When you no longer want to use an On-Demand Dedicated Host it can be released.
// On-Demand billing is stopped and the host goes into released state. The host
// ID of Dedicated Hosts that have been released can no longer be specified
-// in another request, e.g., ModifyHosts. You must stop or terminate all instances
-// on a host before it can be released.
+// in another request, for example, to modify the host. You must stop or terminate
+// all instances on a host before it can be released.
//
-// When Dedicated Hosts are released, it make take some time for them to stop
+// When Dedicated Hosts are released, it may take some time for them to stop
// counting toward your limit and you may receive capacity errors when trying
-// to allocate new Dedicated hosts. Try waiting a few minutes, and then try
-// again.
+// to allocate new Dedicated Hosts. Wait a few minutes and then try again.
//
-// Released hosts will still appear in a DescribeHosts response.
+// Released hosts still appear in a DescribeHosts response.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
@@ -20740,7 +24770,7 @@ const opReplaceIamInstanceProfileAssociation = "ReplaceIamInstanceProfileAssocia
// ReplaceIamInstanceProfileAssociationRequest generates a "aws/request.Request" representing the
// client's request for the ReplaceIamInstanceProfileAssociation operation. The "output" return
// value will be populated with the request's response once the request completes
-// successfuly.
+// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
@@ -20819,7 +24849,7 @@ const opReplaceNetworkAclAssociation = "ReplaceNetworkAclAssociation"
// ReplaceNetworkAclAssociationRequest generates a "aws/request.Request" representing the
// client's request for the ReplaceNetworkAclAssociation operation. The "output" return
// value will be populated with the request's response once the request completes
-// successfuly.
+// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
@@ -20860,7 +24890,7 @@ func (c *EC2) ReplaceNetworkAclAssociationRequest(input *ReplaceNetworkAclAssoci
//
// Changes which network ACL a subnet is associated with. By default when you
// create a subnet, it's automatically associated with the default network ACL.
-// For more information about network ACLs, see Network ACLs (http://docs.aws.amazon.com/AmazonVPC/latest/UserGuide/VPC_ACLs.html)
+// For more information, see Network ACLs (http://docs.aws.amazon.com/AmazonVPC/latest/UserGuide/VPC_ACLs.html)
// in the Amazon Virtual Private Cloud User Guide.
//
// This is an idempotent operation.
@@ -20898,7 +24928,7 @@ const opReplaceNetworkAclEntry = "ReplaceNetworkAclEntry"
// ReplaceNetworkAclEntryRequest generates a "aws/request.Request" representing the
// client's request for the ReplaceNetworkAclEntry operation. The "output" return
// value will be populated with the request's response once the request completes
-// successfuly.
+// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
@@ -20932,15 +24962,14 @@ func (c *EC2) ReplaceNetworkAclEntryRequest(input *ReplaceNetworkAclEntryInput)
output = &ReplaceNetworkAclEntryOutput{}
req = c.newRequest(op, input, output)
- req.Handlers.Unmarshal.Remove(ec2query.UnmarshalHandler)
- req.Handlers.Unmarshal.PushBackNamed(protocol.UnmarshalDiscardBodyHandler)
+ req.Handlers.Unmarshal.Swap(ec2query.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
return
}
// ReplaceNetworkAclEntry API operation for Amazon Elastic Compute Cloud.
//
-// Replaces an entry (rule) in a network ACL. For more information about network
-// ACLs, see Network ACLs (http://docs.aws.amazon.com/AmazonVPC/latest/UserGuide/VPC_ACLs.html)
+// Replaces an entry (rule) in a network ACL. For more information, see Network
+// ACLs (http://docs.aws.amazon.com/AmazonVPC/latest/UserGuide/VPC_ACLs.html)
// in the Amazon Virtual Private Cloud User Guide.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
@@ -20976,7 +25005,7 @@ const opReplaceRoute = "ReplaceRoute"
// ReplaceRouteRequest generates a "aws/request.Request" representing the
// client's request for the ReplaceRoute operation. The "output" return
// value will be populated with the request's response once the request completes
-// successfuly.
+// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
@@ -21010,19 +25039,18 @@ func (c *EC2) ReplaceRouteRequest(input *ReplaceRouteInput) (req *request.Reques
output = &ReplaceRouteOutput{}
req = c.newRequest(op, input, output)
- req.Handlers.Unmarshal.Remove(ec2query.UnmarshalHandler)
- req.Handlers.Unmarshal.PushBackNamed(protocol.UnmarshalDiscardBodyHandler)
+ req.Handlers.Unmarshal.Swap(ec2query.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
return
}
// ReplaceRoute API operation for Amazon Elastic Compute Cloud.
//
// Replaces an existing route within a route table in a VPC. You must provide
-// only one of the following: Internet gateway or virtual private gateway, NAT
+// only one of the following: internet gateway or virtual private gateway, NAT
// instance, NAT gateway, VPC peering connection, network interface, or egress-only
-// Internet gateway.
+// internet gateway.
//
-// For more information about route tables, see Route Tables (http://docs.aws.amazon.com/AmazonVPC/latest/UserGuide/VPC_Route_Tables.html)
+// For more information, see Route Tables (http://docs.aws.amazon.com/AmazonVPC/latest/UserGuide/VPC_Route_Tables.html)
// in the Amazon Virtual Private Cloud User Guide.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
@@ -21058,7 +25086,7 @@ const opReplaceRouteTableAssociation = "ReplaceRouteTableAssociation"
// ReplaceRouteTableAssociationRequest generates a "aws/request.Request" representing the
// client's request for the ReplaceRouteTableAssociation operation. The "output" return
// value will be populated with the request's response once the request completes
-// successfuly.
+// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
@@ -21135,12 +25163,86 @@ func (c *EC2) ReplaceRouteTableAssociationWithContext(ctx aws.Context, input *Re
return out, req.Send()
}
+const opReplaceTransitGatewayRoute = "ReplaceTransitGatewayRoute"
+
+// ReplaceTransitGatewayRouteRequest generates a "aws/request.Request" representing the
+// client's request for the ReplaceTransitGatewayRoute operation. The "output" return
+// value will be populated with the request's response once the request completes
+// successfully.
+//
+// Use "Send" method on the returned Request to send the API call to the service.
+// the "output" return value is not valid until after Send returns without error.
+//
+// See ReplaceTransitGatewayRoute for more information on using the ReplaceTransitGatewayRoute
+// API call, and error handling.
+//
+// This method is useful when you want to inject custom logic or configuration
+// into the SDK's request lifecycle. Such as custom headers, or retry logic.
+//
+//
+// // Example sending a request using the ReplaceTransitGatewayRouteRequest method.
+// req, resp := client.ReplaceTransitGatewayRouteRequest(params)
+//
+// err := req.Send()
+// if err == nil { // resp is now filled
+// fmt.Println(resp)
+// }
+//
+// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/ReplaceTransitGatewayRoute
+func (c *EC2) ReplaceTransitGatewayRouteRequest(input *ReplaceTransitGatewayRouteInput) (req *request.Request, output *ReplaceTransitGatewayRouteOutput) {
+ op := &request.Operation{
+ Name: opReplaceTransitGatewayRoute,
+ HTTPMethod: "POST",
+ HTTPPath: "/",
+ }
+
+ if input == nil {
+ input = &ReplaceTransitGatewayRouteInput{}
+ }
+
+ output = &ReplaceTransitGatewayRouteOutput{}
+ req = c.newRequest(op, input, output)
+ return
+}
+
+// ReplaceTransitGatewayRoute API operation for Amazon Elastic Compute Cloud.
+//
+// Replaces the specified route in the specified transit gateway route table.
+//
+// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
+// with awserr.Error's Code and Message methods to get detailed information about
+// the error.
+//
+// See the AWS API reference guide for Amazon Elastic Compute Cloud's
+// API operation ReplaceTransitGatewayRoute for usage and error information.
+// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/ReplaceTransitGatewayRoute
+func (c *EC2) ReplaceTransitGatewayRoute(input *ReplaceTransitGatewayRouteInput) (*ReplaceTransitGatewayRouteOutput, error) {
+ req, out := c.ReplaceTransitGatewayRouteRequest(input)
+ return out, req.Send()
+}
+
+// ReplaceTransitGatewayRouteWithContext is the same as ReplaceTransitGatewayRoute with the addition of
+// the ability to pass a context and additional request options.
+//
+// See ReplaceTransitGatewayRoute for details on how to use this API operation.
+//
+// The context must be non-nil and will be used for request cancellation. If
+// the context is nil a panic will occur. In the future the SDK may create
+// sub-contexts for http.Requests. See https://golang.org/pkg/context/
+// for more information on using Contexts.
+func (c *EC2) ReplaceTransitGatewayRouteWithContext(ctx aws.Context, input *ReplaceTransitGatewayRouteInput, opts ...request.Option) (*ReplaceTransitGatewayRouteOutput, error) {
+ req, out := c.ReplaceTransitGatewayRouteRequest(input)
+ req.SetContext(ctx)
+ req.ApplyOptions(opts...)
+ return out, req.Send()
+}
+
const opReportInstanceStatus = "ReportInstanceStatus"
// ReportInstanceStatusRequest generates a "aws/request.Request" representing the
// client's request for the ReportInstanceStatus operation. The "output" return
// value will be populated with the request's response once the request completes
-// successfuly.
+// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
@@ -21174,8 +25276,7 @@ func (c *EC2) ReportInstanceStatusRequest(input *ReportInstanceStatusInput) (req
output = &ReportInstanceStatusOutput{}
req = c.newRequest(op, input, output)
- req.Handlers.Unmarshal.Remove(ec2query.UnmarshalHandler)
- req.Handlers.Unmarshal.PushBackNamed(protocol.UnmarshalDiscardBodyHandler)
+ req.Handlers.Unmarshal.Swap(ec2query.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
return
}
@@ -21222,7 +25323,7 @@ const opRequestSpotFleet = "RequestSpotFleet"
// RequestSpotFleetRequest generates a "aws/request.Request" representing the
// client's request for the RequestSpotFleet operation. The "output" return
// value will be populated with the request's response once the request completes
-// successfuly.
+// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
@@ -21320,7 +25421,7 @@ const opRequestSpotInstances = "RequestSpotInstances"
// RequestSpotInstancesRequest generates a "aws/request.Request" representing the
// client's request for the RequestSpotInstances operation. The "output" return
// value will be populated with the request's response once the request completes
-// successfuly.
+// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
@@ -21397,7 +25498,7 @@ const opResetFpgaImageAttribute = "ResetFpgaImageAttribute"
// ResetFpgaImageAttributeRequest generates a "aws/request.Request" representing the
// client's request for the ResetFpgaImageAttribute operation. The "output" return
// value will be populated with the request's response once the request completes
-// successfuly.
+// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
@@ -21472,7 +25573,7 @@ const opResetImageAttribute = "ResetImageAttribute"
// ResetImageAttributeRequest generates a "aws/request.Request" representing the
// client's request for the ResetImageAttribute operation. The "output" return
// value will be populated with the request's response once the request completes
-// successfuly.
+// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
@@ -21506,8 +25607,7 @@ func (c *EC2) ResetImageAttributeRequest(input *ResetImageAttributeInput) (req *
output = &ResetImageAttributeOutput{}
req = c.newRequest(op, input, output)
- req.Handlers.Unmarshal.Remove(ec2query.UnmarshalHandler)
- req.Handlers.Unmarshal.PushBackNamed(protocol.UnmarshalDiscardBodyHandler)
+ req.Handlers.Unmarshal.Swap(ec2query.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
return
}
@@ -21550,7 +25650,7 @@ const opResetInstanceAttribute = "ResetInstanceAttribute"
// ResetInstanceAttributeRequest generates a "aws/request.Request" representing the
// client's request for the ResetInstanceAttribute operation. The "output" return
// value will be populated with the request's response once the request completes
-// successfuly.
+// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
@@ -21584,8 +25684,7 @@ func (c *EC2) ResetInstanceAttributeRequest(input *ResetInstanceAttributeInput)
output = &ResetInstanceAttributeOutput{}
req = c.newRequest(op, input, output)
- req.Handlers.Unmarshal.Remove(ec2query.UnmarshalHandler)
- req.Handlers.Unmarshal.PushBackNamed(protocol.UnmarshalDiscardBodyHandler)
+ req.Handlers.Unmarshal.Swap(ec2query.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
return
}
@@ -21634,7 +25733,7 @@ const opResetNetworkInterfaceAttribute = "ResetNetworkInterfaceAttribute"
// ResetNetworkInterfaceAttributeRequest generates a "aws/request.Request" representing the
// client's request for the ResetNetworkInterfaceAttribute operation. The "output" return
// value will be populated with the request's response once the request completes
-// successfuly.
+// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
@@ -21668,8 +25767,7 @@ func (c *EC2) ResetNetworkInterfaceAttributeRequest(input *ResetNetworkInterface
output = &ResetNetworkInterfaceAttributeOutput{}
req = c.newRequest(op, input, output)
- req.Handlers.Unmarshal.Remove(ec2query.UnmarshalHandler)
- req.Handlers.Unmarshal.PushBackNamed(protocol.UnmarshalDiscardBodyHandler)
+ req.Handlers.Unmarshal.Swap(ec2query.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
return
}
@@ -21711,7 +25809,7 @@ const opResetSnapshotAttribute = "ResetSnapshotAttribute"
// ResetSnapshotAttributeRequest generates a "aws/request.Request" representing the
// client's request for the ResetSnapshotAttribute operation. The "output" return
// value will be populated with the request's response once the request completes
-// successfuly.
+// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
@@ -21745,8 +25843,7 @@ func (c *EC2) ResetSnapshotAttributeRequest(input *ResetSnapshotAttributeInput)
output = &ResetSnapshotAttributeOutput{}
req = c.newRequest(op, input, output)
- req.Handlers.Unmarshal.Remove(ec2query.UnmarshalHandler)
- req.Handlers.Unmarshal.PushBackNamed(protocol.UnmarshalDiscardBodyHandler)
+ req.Handlers.Unmarshal.Swap(ec2query.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
return
}
@@ -21754,7 +25851,7 @@ func (c *EC2) ResetSnapshotAttributeRequest(input *ResetSnapshotAttributeInput)
//
// Resets permission settings for the specified snapshot.
//
-// For more information on modifying snapshot permissions, see Sharing Snapshots
+// For more information about modifying snapshot permissions, see Sharing Snapshots
// (http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ebs-modifying-snapshot-permissions.html)
// in the Amazon Elastic Compute Cloud User Guide.
//
@@ -21791,7 +25888,7 @@ const opRestoreAddressToClassic = "RestoreAddressToClassic"
// RestoreAddressToClassicRequest generates a "aws/request.Request" representing the
// client's request for the RestoreAddressToClassic operation. The "output" return
// value will be populated with the request's response once the request completes
-// successfuly.
+// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
@@ -21863,12 +25960,86 @@ func (c *EC2) RestoreAddressToClassicWithContext(ctx aws.Context, input *Restore
return out, req.Send()
}
+const opRevokeClientVpnIngress = "RevokeClientVpnIngress"
+
+// RevokeClientVpnIngressRequest generates a "aws/request.Request" representing the
+// client's request for the RevokeClientVpnIngress operation. The "output" return
+// value will be populated with the request's response once the request completes
+// successfully.
+//
+// Use "Send" method on the returned Request to send the API call to the service.
+// the "output" return value is not valid until after Send returns without error.
+//
+// See RevokeClientVpnIngress for more information on using the RevokeClientVpnIngress
+// API call, and error handling.
+//
+// This method is useful when you want to inject custom logic or configuration
+// into the SDK's request lifecycle. Such as custom headers, or retry logic.
+//
+//
+// // Example sending a request using the RevokeClientVpnIngressRequest method.
+// req, resp := client.RevokeClientVpnIngressRequest(params)
+//
+// err := req.Send()
+// if err == nil { // resp is now filled
+// fmt.Println(resp)
+// }
+//
+// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/RevokeClientVpnIngress
+func (c *EC2) RevokeClientVpnIngressRequest(input *RevokeClientVpnIngressInput) (req *request.Request, output *RevokeClientVpnIngressOutput) {
+ op := &request.Operation{
+ Name: opRevokeClientVpnIngress,
+ HTTPMethod: "POST",
+ HTTPPath: "/",
+ }
+
+ if input == nil {
+ input = &RevokeClientVpnIngressInput{}
+ }
+
+ output = &RevokeClientVpnIngressOutput{}
+ req = c.newRequest(op, input, output)
+ return
+}
+
+// RevokeClientVpnIngress API operation for Amazon Elastic Compute Cloud.
+//
+// Removes an ingress authorization rule from a Client VPN endpoint.
+//
+// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
+// with awserr.Error's Code and Message methods to get detailed information about
+// the error.
+//
+// See the AWS API reference guide for Amazon Elastic Compute Cloud's
+// API operation RevokeClientVpnIngress for usage and error information.
+// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/RevokeClientVpnIngress
+func (c *EC2) RevokeClientVpnIngress(input *RevokeClientVpnIngressInput) (*RevokeClientVpnIngressOutput, error) {
+ req, out := c.RevokeClientVpnIngressRequest(input)
+ return out, req.Send()
+}
+
+// RevokeClientVpnIngressWithContext is the same as RevokeClientVpnIngress with the addition of
+// the ability to pass a context and additional request options.
+//
+// See RevokeClientVpnIngress for details on how to use this API operation.
+//
+// The context must be non-nil and will be used for request cancellation. If
+// the context is nil a panic will occur. In the future the SDK may create
+// sub-contexts for http.Requests. See https://golang.org/pkg/context/
+// for more information on using Contexts.
+func (c *EC2) RevokeClientVpnIngressWithContext(ctx aws.Context, input *RevokeClientVpnIngressInput, opts ...request.Option) (*RevokeClientVpnIngressOutput, error) {
+ req, out := c.RevokeClientVpnIngressRequest(input)
+ req.SetContext(ctx)
+ req.ApplyOptions(opts...)
+ return out, req.Send()
+}
+
const opRevokeSecurityGroupEgress = "RevokeSecurityGroupEgress"
// RevokeSecurityGroupEgressRequest generates a "aws/request.Request" representing the
// client's request for the RevokeSecurityGroupEgress operation. The "output" return
// value will be populated with the request's response once the request completes
-// successfuly.
+// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
@@ -21902,8 +26073,7 @@ func (c *EC2) RevokeSecurityGroupEgressRequest(input *RevokeSecurityGroupEgressI
output = &RevokeSecurityGroupEgressOutput{}
req = c.newRequest(op, input, output)
- req.Handlers.Unmarshal.Remove(ec2query.UnmarshalHandler)
- req.Handlers.Unmarshal.PushBackNamed(protocol.UnmarshalDiscardBodyHandler)
+ req.Handlers.Unmarshal.Swap(ec2query.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
return
}
@@ -21956,7 +26126,7 @@ const opRevokeSecurityGroupIngress = "RevokeSecurityGroupIngress"
// RevokeSecurityGroupIngressRequest generates a "aws/request.Request" representing the
// client's request for the RevokeSecurityGroupIngress operation. The "output" return
// value will be populated with the request's response once the request completes
-// successfuly.
+// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
@@ -21990,8 +26160,7 @@ func (c *EC2) RevokeSecurityGroupIngressRequest(input *RevokeSecurityGroupIngres
output = &RevokeSecurityGroupIngressOutput{}
req = c.newRequest(op, input, output)
- req.Handlers.Unmarshal.Remove(ec2query.UnmarshalHandler)
- req.Handlers.Unmarshal.PushBackNamed(protocol.UnmarshalDiscardBodyHandler)
+ req.Handlers.Unmarshal.Swap(ec2query.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
return
}
@@ -22047,7 +26216,7 @@ const opRunInstances = "RunInstances"
// RunInstancesRequest generates a "aws/request.Request" representing the
// client's request for the RunInstances operation. The "output" return
// value will be populated with the request's response once the request completes
-// successfuly.
+// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
@@ -22174,7 +26343,7 @@ const opRunScheduledInstances = "RunScheduledInstances"
// RunScheduledInstancesRequest generates a "aws/request.Request" representing the
// client's request for the RunScheduledInstances operation. The "output" return
// value will be populated with the request's response once the request completes
-// successfuly.
+// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
@@ -22253,12 +26422,86 @@ func (c *EC2) RunScheduledInstancesWithContext(ctx aws.Context, input *RunSchedu
return out, req.Send()
}
+const opSearchTransitGatewayRoutes = "SearchTransitGatewayRoutes"
+
+// SearchTransitGatewayRoutesRequest generates a "aws/request.Request" representing the
+// client's request for the SearchTransitGatewayRoutes operation. The "output" return
+// value will be populated with the request's response once the request completes
+// successfully.
+//
+// Use "Send" method on the returned Request to send the API call to the service.
+// the "output" return value is not valid until after Send returns without error.
+//
+// See SearchTransitGatewayRoutes for more information on using the SearchTransitGatewayRoutes
+// API call, and error handling.
+//
+// This method is useful when you want to inject custom logic or configuration
+// into the SDK's request lifecycle. Such as custom headers, or retry logic.
+//
+//
+// // Example sending a request using the SearchTransitGatewayRoutesRequest method.
+// req, resp := client.SearchTransitGatewayRoutesRequest(params)
+//
+// err := req.Send()
+// if err == nil { // resp is now filled
+// fmt.Println(resp)
+// }
+//
+// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/SearchTransitGatewayRoutes
+func (c *EC2) SearchTransitGatewayRoutesRequest(input *SearchTransitGatewayRoutesInput) (req *request.Request, output *SearchTransitGatewayRoutesOutput) {
+ op := &request.Operation{
+ Name: opSearchTransitGatewayRoutes,
+ HTTPMethod: "POST",
+ HTTPPath: "/",
+ }
+
+ if input == nil {
+ input = &SearchTransitGatewayRoutesInput{}
+ }
+
+ output = &SearchTransitGatewayRoutesOutput{}
+ req = c.newRequest(op, input, output)
+ return
+}
+
+// SearchTransitGatewayRoutes API operation for Amazon Elastic Compute Cloud.
+//
+// Searches for routes in the specified transit gateway route table.
+//
+// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
+// with awserr.Error's Code and Message methods to get detailed information about
+// the error.
+//
+// See the AWS API reference guide for Amazon Elastic Compute Cloud's
+// API operation SearchTransitGatewayRoutes for usage and error information.
+// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/SearchTransitGatewayRoutes
+func (c *EC2) SearchTransitGatewayRoutes(input *SearchTransitGatewayRoutesInput) (*SearchTransitGatewayRoutesOutput, error) {
+ req, out := c.SearchTransitGatewayRoutesRequest(input)
+ return out, req.Send()
+}
+
+// SearchTransitGatewayRoutesWithContext is the same as SearchTransitGatewayRoutes with the addition of
+// the ability to pass a context and additional request options.
+//
+// See SearchTransitGatewayRoutes for details on how to use this API operation.
+//
+// The context must be non-nil and will be used for request cancellation. If
+// the context is nil a panic will occur. In the future the SDK may create
+// sub-contexts for http.Requests. See https://golang.org/pkg/context/
+// for more information on using Contexts.
+func (c *EC2) SearchTransitGatewayRoutesWithContext(ctx aws.Context, input *SearchTransitGatewayRoutesInput, opts ...request.Option) (*SearchTransitGatewayRoutesOutput, error) {
+ req, out := c.SearchTransitGatewayRoutesRequest(input)
+ req.SetContext(ctx)
+ req.ApplyOptions(opts...)
+ return out, req.Send()
+}
+
const opStartInstances = "StartInstances"
// StartInstancesRequest generates a "aws/request.Request" representing the
// client's request for the StartInstances operation. The "output" return
// value will be populated with the request's response once the request completes
-// successfuly.
+// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
@@ -22354,7 +26597,7 @@ const opStopInstances = "StopInstances"
// StopInstancesRequest generates a "aws/request.Request" representing the
// client's request for the StopInstances operation. The "output" return
// value will be populated with the request's response once the request completes
-// successfuly.
+// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
@@ -22395,6 +26638,12 @@ func (c *EC2) StopInstancesRequest(input *StopInstancesInput) (req *request.Requ
//
// Stops an Amazon EBS-backed instance.
//
+// You can use the Stop action to hibernate an instance if the instance is enabled
+// for hibernation (http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Hibernate.html#enabling-hibernation)
+// and it meets the hibernation prerequisites (http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Hibernate.html#hibernating-prerequisites).
+// For more information, see Hibernate Your Instance (http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Hibernate.html)
+// in the Amazon Elastic Compute Cloud User Guide.
+//
// We don't charge usage for a stopped instance, or data transfer fees; however,
// your root partition Amazon EBS volume remains and continues to persist your
// data, and you are charged for Amazon EBS volume usage. Every time you start
@@ -22405,20 +26654,25 @@ func (c *EC2) StopInstancesRequest(input *StopInstancesInput) (req *request.Requ
// your Linux instance, Amazon EC2 charges a one-minute minimum for instance
// usage, and thereafter charges per second for instance usage.
//
-// You can't start or stop Spot Instances, and you can't stop instance store-backed
-// instances.
+// You can't start, stop, or hibernate Spot Instances, and you can't stop or
+// hibernate instance store-backed instances. For information about using hibernation
+// for Spot Instances, see Hibernating Interrupted Spot Instances (http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/spot-interruptions.html#hibernate-spot-instances)
+// in the Amazon Elastic Compute Cloud User Guide.
//
-// When you stop an instance, we shut it down. You can restart your instance
-// at any time. Before stopping an instance, make sure it is in a state from
-// which it can be restarted. Stopping an instance does not preserve data stored
-// in RAM.
+// When you stop or hibernate an instance, we shut it down. You can restart
+// your instance at any time. Before stopping or hibernating an instance, make
+// sure it is in a state from which it can be restarted. Stopping an instance
+// does not preserve data stored in RAM, but hibernating an instance does preserve
+// data stored in RAM. If an instance cannot hibernate successfully, a normal
+// shutdown occurs.
//
-// Stopping an instance is different to rebooting or terminating it. For example,
-// when you stop an instance, the root device and any other devices attached
-// to the instance persist. When you terminate an instance, the root device
-// and any other devices attached during the instance launch are automatically
-// deleted. For more information about the differences between rebooting, stopping,
-// and terminating instances, see Instance Lifecycle (http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-instance-lifecycle.html)
+// Stopping and hibernating an instance is different to rebooting or terminating
+// it. For example, when you stop or hibernate an instance, the root device
+// and any other devices attached to the instance persist. When you terminate
+// an instance, the root device and any other devices attached during the instance
+// launch are automatically deleted. For more information about the differences
+// between rebooting, stopping, hibernating, and terminating instances, see
+// Instance Lifecycle (http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-instance-lifecycle.html)
// in the Amazon Elastic Compute Cloud User Guide.
//
// When you stop an instance, we attempt to shut it down forcibly after a short
@@ -22455,12 +26709,88 @@ func (c *EC2) StopInstancesWithContext(ctx aws.Context, input *StopInstancesInpu
return out, req.Send()
}
+const opTerminateClientVpnConnections = "TerminateClientVpnConnections"
+
+// TerminateClientVpnConnectionsRequest generates a "aws/request.Request" representing the
+// client's request for the TerminateClientVpnConnections operation. The "output" return
+// value will be populated with the request's response once the request completes
+// successfully.
+//
+// Use "Send" method on the returned Request to send the API call to the service.
+// the "output" return value is not valid until after Send returns without error.
+//
+// See TerminateClientVpnConnections for more information on using the TerminateClientVpnConnections
+// API call, and error handling.
+//
+// This method is useful when you want to inject custom logic or configuration
+// into the SDK's request lifecycle. Such as custom headers, or retry logic.
+//
+//
+// // Example sending a request using the TerminateClientVpnConnectionsRequest method.
+// req, resp := client.TerminateClientVpnConnectionsRequest(params)
+//
+// err := req.Send()
+// if err == nil { // resp is now filled
+// fmt.Println(resp)
+// }
+//
+// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/TerminateClientVpnConnections
+func (c *EC2) TerminateClientVpnConnectionsRequest(input *TerminateClientVpnConnectionsInput) (req *request.Request, output *TerminateClientVpnConnectionsOutput) {
+ op := &request.Operation{
+ Name: opTerminateClientVpnConnections,
+ HTTPMethod: "POST",
+ HTTPPath: "/",
+ }
+
+ if input == nil {
+ input = &TerminateClientVpnConnectionsInput{}
+ }
+
+ output = &TerminateClientVpnConnectionsOutput{}
+ req = c.newRequest(op, input, output)
+ return
+}
+
+// TerminateClientVpnConnections API operation for Amazon Elastic Compute Cloud.
+//
+// Terminates active Client VPN endpoint connections. This action can be used
+// to terminate a specific client connection, or up to five connections established
+// by a specific user.
+//
+// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
+// with awserr.Error's Code and Message methods to get detailed information about
+// the error.
+//
+// See the AWS API reference guide for Amazon Elastic Compute Cloud's
+// API operation TerminateClientVpnConnections for usage and error information.
+// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/TerminateClientVpnConnections
+func (c *EC2) TerminateClientVpnConnections(input *TerminateClientVpnConnectionsInput) (*TerminateClientVpnConnectionsOutput, error) {
+ req, out := c.TerminateClientVpnConnectionsRequest(input)
+ return out, req.Send()
+}
+
+// TerminateClientVpnConnectionsWithContext is the same as TerminateClientVpnConnections with the addition of
+// the ability to pass a context and additional request options.
+//
+// See TerminateClientVpnConnections for details on how to use this API operation.
+//
+// The context must be non-nil and will be used for request cancellation. If
+// the context is nil a panic will occur. In the future the SDK may create
+// sub-contexts for http.Requests. See https://golang.org/pkg/context/
+// for more information on using Contexts.
+func (c *EC2) TerminateClientVpnConnectionsWithContext(ctx aws.Context, input *TerminateClientVpnConnectionsInput, opts ...request.Option) (*TerminateClientVpnConnectionsOutput, error) {
+ req, out := c.TerminateClientVpnConnectionsRequest(input)
+ req.SetContext(ctx)
+ req.ApplyOptions(opts...)
+ return out, req.Send()
+}
+
const opTerminateInstances = "TerminateInstances"
// TerminateInstancesRequest generates a "aws/request.Request" representing the
// client's request for the TerminateInstances operation. The "output" return
// value will be populated with the request's response once the request completes
-// successfuly.
+// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
@@ -22558,7 +26888,7 @@ const opUnassignIpv6Addresses = "UnassignIpv6Addresses"
// UnassignIpv6AddressesRequest generates a "aws/request.Request" representing the
// client's request for the UnassignIpv6Addresses operation. The "output" return
// value will be populated with the request's response once the request completes
-// successfuly.
+// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
@@ -22632,7 +26962,7 @@ const opUnassignPrivateIpAddresses = "UnassignPrivateIpAddresses"
// UnassignPrivateIpAddressesRequest generates a "aws/request.Request" representing the
// client's request for the UnassignPrivateIpAddresses operation. The "output" return
// value will be populated with the request's response once the request completes
-// successfuly.
+// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
@@ -22666,8 +26996,7 @@ func (c *EC2) UnassignPrivateIpAddressesRequest(input *UnassignPrivateIpAddresse
output = &UnassignPrivateIpAddressesOutput{}
req = c.newRequest(op, input, output)
- req.Handlers.Unmarshal.Remove(ec2query.UnmarshalHandler)
- req.Handlers.Unmarshal.PushBackNamed(protocol.UnmarshalDiscardBodyHandler)
+ req.Handlers.Unmarshal.Swap(ec2query.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
return
}
@@ -22708,7 +27037,7 @@ const opUnmonitorInstances = "UnmonitorInstances"
// UnmonitorInstancesRequest generates a "aws/request.Request" representing the
// client's request for the UnmonitorInstances operation. The "output" return
// value will be populated with the request's response once the request completes
-// successfuly.
+// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
@@ -22784,7 +27113,7 @@ const opUpdateSecurityGroupRuleDescriptionsEgress = "UpdateSecurityGroupRuleDesc
// UpdateSecurityGroupRuleDescriptionsEgressRequest generates a "aws/request.Request" representing the
// client's request for the UpdateSecurityGroupRuleDescriptionsEgress operation. The "output" return
// value will be populated with the request's response once the request completes
-// successfuly.
+// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
@@ -22864,7 +27193,7 @@ const opUpdateSecurityGroupRuleDescriptionsIngress = "UpdateSecurityGroupRuleDes
// UpdateSecurityGroupRuleDescriptionsIngressRequest generates a "aws/request.Request" representing the
// client's request for the UpdateSecurityGroupRuleDescriptionsIngress operation. The "output" return
// value will be populated with the request's response once the request completes
-// successfuly.
+// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
@@ -22939,6 +27268,87 @@ func (c *EC2) UpdateSecurityGroupRuleDescriptionsIngressWithContext(ctx aws.Cont
return out, req.Send()
}
+const opWithdrawByoipCidr = "WithdrawByoipCidr"
+
+// WithdrawByoipCidrRequest generates a "aws/request.Request" representing the
+// client's request for the WithdrawByoipCidr operation. The "output" return
+// value will be populated with the request's response once the request completes
+// successfully.
+//
+// Use "Send" method on the returned Request to send the API call to the service.
+// the "output" return value is not valid until after Send returns without error.
+//
+// See WithdrawByoipCidr for more information on using the WithdrawByoipCidr
+// API call, and error handling.
+//
+// This method is useful when you want to inject custom logic or configuration
+// into the SDK's request lifecycle. Such as custom headers, or retry logic.
+//
+//
+// // Example sending a request using the WithdrawByoipCidrRequest method.
+// req, resp := client.WithdrawByoipCidrRequest(params)
+//
+// err := req.Send()
+// if err == nil { // resp is now filled
+// fmt.Println(resp)
+// }
+//
+// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/WithdrawByoipCidr
+func (c *EC2) WithdrawByoipCidrRequest(input *WithdrawByoipCidrInput) (req *request.Request, output *WithdrawByoipCidrOutput) {
+ op := &request.Operation{
+ Name: opWithdrawByoipCidr,
+ HTTPMethod: "POST",
+ HTTPPath: "/",
+ }
+
+ if input == nil {
+ input = &WithdrawByoipCidrInput{}
+ }
+
+ output = &WithdrawByoipCidrOutput{}
+ req = c.newRequest(op, input, output)
+ return
+}
+
+// WithdrawByoipCidr API operation for Amazon Elastic Compute Cloud.
+//
+// Stops advertising an IPv4 address range that is provisioned as an address
+// pool.
+//
+// You can perform this operation at most once every 10 seconds, even if you
+// specify different address ranges each time.
+//
+// It can take a few minutes before traffic to the specified addresses stops
+// routing to AWS because of BGP propagation delays.
+//
+// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
+// with awserr.Error's Code and Message methods to get detailed information about
+// the error.
+//
+// See the AWS API reference guide for Amazon Elastic Compute Cloud's
+// API operation WithdrawByoipCidr for usage and error information.
+// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/WithdrawByoipCidr
+func (c *EC2) WithdrawByoipCidr(input *WithdrawByoipCidrInput) (*WithdrawByoipCidrOutput, error) {
+ req, out := c.WithdrawByoipCidrRequest(input)
+ return out, req.Send()
+}
+
+// WithdrawByoipCidrWithContext is the same as WithdrawByoipCidr with the addition of
+// the ability to pass a context and additional request options.
+//
+// See WithdrawByoipCidr for details on how to use this API operation.
+//
+// The context must be non-nil and will be used for request cancellation. If
+// the context is nil a panic will occur. In the future the SDK may create
+// sub-contexts for http.Requests. See https://golang.org/pkg/context/
+// for more information on using Contexts.
+func (c *EC2) WithdrawByoipCidrWithContext(ctx aws.Context, input *WithdrawByoipCidrInput, opts ...request.Option) (*WithdrawByoipCidrOutput, error) {
+ req, out := c.WithdrawByoipCidrRequest(input)
+ req.SetContext(ctx)
+ req.ApplyOptions(opts...)
+ return out, req.Send()
+}
+
// Contains the parameters for accepting the quote.
type AcceptReservedInstancesExchangeQuoteInput struct {
_ struct{} `type:"structure"`
@@ -23035,6 +27445,79 @@ func (s *AcceptReservedInstancesExchangeQuoteOutput) SetExchangeId(v string) *Ac
return s
}
+type AcceptTransitGatewayVpcAttachmentInput struct {
+ _ struct{} `type:"structure"`
+
+ // Checks whether you have the required permissions for the action, without
+ // actually making the request, and provides an error response. If you have
+ // the required permissions, the error response is DryRunOperation. Otherwise,
+ // it is UnauthorizedOperation.
+ DryRun *bool `type:"boolean"`
+
+ // The ID of the attachment.
+ //
+ // TransitGatewayAttachmentId is a required field
+ TransitGatewayAttachmentId *string `type:"string" required:"true"`
+}
+
+// String returns the string representation
+func (s AcceptTransitGatewayVpcAttachmentInput) String() string {
+ return awsutil.Prettify(s)
+}
+
+// GoString returns the string representation
+func (s AcceptTransitGatewayVpcAttachmentInput) GoString() string {
+ return s.String()
+}
+
+// Validate inspects the fields of the type to determine if they are valid.
+func (s *AcceptTransitGatewayVpcAttachmentInput) Validate() error {
+ invalidParams := request.ErrInvalidParams{Context: "AcceptTransitGatewayVpcAttachmentInput"}
+ if s.TransitGatewayAttachmentId == nil {
+ invalidParams.Add(request.NewErrParamRequired("TransitGatewayAttachmentId"))
+ }
+
+ if invalidParams.Len() > 0 {
+ return invalidParams
+ }
+ return nil
+}
+
+// SetDryRun sets the DryRun field's value.
+func (s *AcceptTransitGatewayVpcAttachmentInput) SetDryRun(v bool) *AcceptTransitGatewayVpcAttachmentInput {
+ s.DryRun = &v
+ return s
+}
+
+// SetTransitGatewayAttachmentId sets the TransitGatewayAttachmentId field's value.
+func (s *AcceptTransitGatewayVpcAttachmentInput) SetTransitGatewayAttachmentId(v string) *AcceptTransitGatewayVpcAttachmentInput {
+ s.TransitGatewayAttachmentId = &v
+ return s
+}
+
+type AcceptTransitGatewayVpcAttachmentOutput struct {
+ _ struct{} `type:"structure"`
+
+ // The VPC attachment.
+ TransitGatewayVpcAttachment *TransitGatewayVpcAttachment `locationName:"transitGatewayVpcAttachment" type:"structure"`
+}
+
+// String returns the string representation
+func (s AcceptTransitGatewayVpcAttachmentOutput) String() string {
+ return awsutil.Prettify(s)
+}
+
+// GoString returns the string representation
+func (s AcceptTransitGatewayVpcAttachmentOutput) GoString() string {
+ return s.String()
+}
+
+// SetTransitGatewayVpcAttachment sets the TransitGatewayVpcAttachment field's value.
+func (s *AcceptTransitGatewayVpcAttachmentOutput) SetTransitGatewayVpcAttachment(v *TransitGatewayVpcAttachment) *AcceptTransitGatewayVpcAttachmentOutput {
+ s.TransitGatewayVpcAttachment = v
+ return s
+}
+
type AcceptVpcEndpointConnectionsInput struct {
_ struct{} `type:"structure"`
@@ -23122,7 +27605,6 @@ func (s *AcceptVpcEndpointConnectionsOutput) SetUnsuccessful(v []*UnsuccessfulIt
return s
}
-// Contains the parameters for AcceptVpcPeeringConnection.
type AcceptVpcPeeringConnectionInput struct {
_ struct{} `type:"structure"`
@@ -23159,7 +27641,6 @@ func (s *AcceptVpcPeeringConnectionInput) SetVpcPeeringConnectionId(v string) *A
return s
}
-// Contains the output of AcceptVpcPeeringConnection.
type AcceptVpcPeeringConnectionOutput struct {
_ struct{} `type:"structure"`
@@ -23323,6 +27804,9 @@ type Address struct {
// The Elastic IP address.
PublicIp *string `locationName:"publicIp" type:"string"`
+ // The ID of an address pool.
+ PublicIpv4Pool *string `locationName:"publicIpv4Pool" type:"string"`
+
// Any tags assigned to the Elastic IP address.
Tags []*Tag `locationName:"tagSet" locationNameList:"item" type:"list"`
}
@@ -23385,17 +27869,96 @@ func (s *Address) SetPublicIp(v string) *Address {
return s
}
+// SetPublicIpv4Pool sets the PublicIpv4Pool field's value.
+func (s *Address) SetPublicIpv4Pool(v string) *Address {
+ s.PublicIpv4Pool = &v
+ return s
+}
+
// SetTags sets the Tags field's value.
func (s *Address) SetTags(v []*Tag) *Address {
s.Tags = v
return s
}
-// Contains the parameters for AllocateAddress.
+type AdvertiseByoipCidrInput struct {
+ _ struct{} `type:"structure"`
+
+ // The IPv4 address range, in CIDR notation.
+ //
+ // Cidr is a required field
+ Cidr *string `type:"string" required:"true"`
+
+ // Checks whether you have the required permissions for the action, without
+ // actually making the request, and provides an error response. If you have
+ // the required permissions, the error response is DryRunOperation. Otherwise,
+ // it is UnauthorizedOperation.
+ DryRun *bool `type:"boolean"`
+}
+
+// String returns the string representation
+func (s AdvertiseByoipCidrInput) String() string {
+ return awsutil.Prettify(s)
+}
+
+// GoString returns the string representation
+func (s AdvertiseByoipCidrInput) GoString() string {
+ return s.String()
+}
+
+// Validate inspects the fields of the type to determine if they are valid.
+func (s *AdvertiseByoipCidrInput) Validate() error {
+ invalidParams := request.ErrInvalidParams{Context: "AdvertiseByoipCidrInput"}
+ if s.Cidr == nil {
+ invalidParams.Add(request.NewErrParamRequired("Cidr"))
+ }
+
+ if invalidParams.Len() > 0 {
+ return invalidParams
+ }
+ return nil
+}
+
+// SetCidr sets the Cidr field's value.
+func (s *AdvertiseByoipCidrInput) SetCidr(v string) *AdvertiseByoipCidrInput {
+ s.Cidr = &v
+ return s
+}
+
+// SetDryRun sets the DryRun field's value.
+func (s *AdvertiseByoipCidrInput) SetDryRun(v bool) *AdvertiseByoipCidrInput {
+ s.DryRun = &v
+ return s
+}
+
+type AdvertiseByoipCidrOutput struct {
+ _ struct{} `type:"structure"`
+
+ // Information about the address range.
+ ByoipCidr *ByoipCidr `locationName:"byoipCidr" type:"structure"`
+}
+
+// String returns the string representation
+func (s AdvertiseByoipCidrOutput) String() string {
+ return awsutil.Prettify(s)
+}
+
+// GoString returns the string representation
+func (s AdvertiseByoipCidrOutput) GoString() string {
+ return s.String()
+}
+
+// SetByoipCidr sets the ByoipCidr field's value.
+func (s *AdvertiseByoipCidrOutput) SetByoipCidr(v *ByoipCidr) *AdvertiseByoipCidrOutput {
+ s.ByoipCidr = v
+ return s
+}
+
type AllocateAddressInput struct {
_ struct{} `type:"structure"`
- // [EC2-VPC] The Elastic IP address to recover.
+ // [EC2-VPC] The Elastic IP address to recover or an IPv4 address from an address
+ // pool.
Address *string `type:"string"`
// Set to vpc to allocate the address for use with instances in a VPC.
@@ -23408,6 +27971,11 @@ type AllocateAddressInput struct {
// the required permissions, the error response is DryRunOperation. Otherwise,
// it is UnauthorizedOperation.
DryRun *bool `locationName:"dryRun" type:"boolean"`
+
+ // The ID of an address pool that you own. Use this parameter to let Amazon
+ // EC2 select an address from the address pool. To specify a specific address
+ // from the address pool, use the Address parameter instead.
+ PublicIpv4Pool *string `type:"string"`
}
// String returns the string representation
@@ -23438,7 +28006,12 @@ func (s *AllocateAddressInput) SetDryRun(v bool) *AllocateAddressInput {
return s
}
-// Contains the output of AllocateAddress.
+// SetPublicIpv4Pool sets the PublicIpv4Pool field's value.
+func (s *AllocateAddressInput) SetPublicIpv4Pool(v string) *AllocateAddressInput {
+ s.PublicIpv4Pool = &v
+ return s
+}
+
type AllocateAddressOutput struct {
_ struct{} `type:"structure"`
@@ -23452,6 +28025,9 @@ type AllocateAddressOutput struct {
// The Elastic IP address.
PublicIp *string `locationName:"publicIp" type:"string"`
+
+ // The ID of an address pool.
+ PublicIpv4Pool *string `locationName:"publicIpv4Pool" type:"string"`
}
// String returns the string representation
@@ -23482,7 +28058,12 @@ func (s *AllocateAddressOutput) SetPublicIp(v string) *AllocateAddressOutput {
return s
}
-// Contains the parameters for AllocateHosts.
+// SetPublicIpv4Pool sets the PublicIpv4Pool field's value.
+func (s *AllocateAddressOutput) SetPublicIpv4Pool(v string) *AllocateAddressOutput {
+ s.PublicIpv4Pool = &v
+ return s
+}
+
type AllocateHostsInput struct {
_ struct{} `type:"structure"`
@@ -23498,23 +28079,25 @@ type AllocateHostsInput struct {
// AvailabilityZone is a required field
AvailabilityZone *string `locationName:"availabilityZone" type:"string" required:"true"`
- // Unique, case-sensitive identifier you provide to ensure idempotency of the
- // request. For more information, see How to Ensure Idempotency (http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Run_Instance_Idempotency.html)
+ // Unique, case-sensitive identifier that you provide to ensure the idempotency
+ // of the request. For more information, see How to Ensure Idempotency (http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Run_Instance_Idempotency.html)
// in the Amazon Elastic Compute Cloud User Guide.
ClientToken *string `locationName:"clientToken" type:"string"`
- // Specify the instance type that you want your Dedicated Hosts to be configured
- // for. When you specify the instance type, that is the only instance type that
- // you can launch onto that host.
+ // Specify the instance type for which to configure your Dedicated Hosts. When
+ // you specify the instance type, that is the only instance type that you can
+ // launch onto that host.
//
// InstanceType is a required field
InstanceType *string `locationName:"instanceType" type:"string" required:"true"`
- // The number of Dedicated Hosts you want to allocate to your account with these
- // parameters.
+ // The number of Dedicated Hosts to allocate to your account with these parameters.
//
// Quantity is a required field
Quantity *int64 `locationName:"quantity" type:"integer" required:"true"`
+
+ // The tags to apply to the Dedicated Host during creation.
+ TagSpecifications []*TagSpecification `locationName:"TagSpecification" locationNameList:"item" type:"list"`
}
// String returns the string representation
@@ -23576,12 +28159,18 @@ func (s *AllocateHostsInput) SetQuantity(v int64) *AllocateHostsInput {
return s
}
+// SetTagSpecifications sets the TagSpecifications field's value.
+func (s *AllocateHostsInput) SetTagSpecifications(v []*TagSpecification) *AllocateHostsInput {
+ s.TagSpecifications = v
+ return s
+}
+
// Contains the output of AllocateHosts.
type AllocateHostsOutput struct {
_ struct{} `type:"structure"`
- // The ID of the allocated Dedicated Host. This is used when you want to launch
- // an instance onto a specific host.
+ // The ID of the allocated Dedicated Host. This is used to launch an instance
+ // onto a specific host.
HostIds []*string `locationName:"hostIdSet" locationNameList:"item" type:"list"`
}
@@ -23634,6 +28223,108 @@ func (s *AllowedPrincipal) SetPrincipalType(v string) *AllowedPrincipal {
return s
}
+type ApplySecurityGroupsToClientVpnTargetNetworkInput struct {
+ _ struct{} `type:"structure"`
+
+ // The ID of the Client VPN endpoint.
+ //
+ // ClientVpnEndpointId is a required field
+ ClientVpnEndpointId *string `type:"string" required:"true"`
+
+ // Checks whether you have the required permissions for the action, without
+ // actually making the request, and provides an error response. If you have
+ // the required permissions, the error response is DryRunOperation. Otherwise,
+ // it is UnauthorizedOperation.
+ DryRun *bool `type:"boolean"`
+
+ // The IDs of the security groups to apply to the associated target network.
+ // Up to 5 security groups can be applied to an associated target network.
+ //
+ // SecurityGroupIds is a required field
+ SecurityGroupIds []*string `locationName:"SecurityGroupId" locationNameList:"item" type:"list" required:"true"`
+
+ // The ID of the VPC in which the associated target network is located.
+ //
+ // VpcId is a required field
+ VpcId *string `type:"string" required:"true"`
+}
+
+// String returns the string representation
+func (s ApplySecurityGroupsToClientVpnTargetNetworkInput) String() string {
+ return awsutil.Prettify(s)
+}
+
+// GoString returns the string representation
+func (s ApplySecurityGroupsToClientVpnTargetNetworkInput) GoString() string {
+ return s.String()
+}
+
+// Validate inspects the fields of the type to determine if they are valid.
+func (s *ApplySecurityGroupsToClientVpnTargetNetworkInput) Validate() error {
+ invalidParams := request.ErrInvalidParams{Context: "ApplySecurityGroupsToClientVpnTargetNetworkInput"}
+ if s.ClientVpnEndpointId == nil {
+ invalidParams.Add(request.NewErrParamRequired("ClientVpnEndpointId"))
+ }
+ if s.SecurityGroupIds == nil {
+ invalidParams.Add(request.NewErrParamRequired("SecurityGroupIds"))
+ }
+ if s.VpcId == nil {
+ invalidParams.Add(request.NewErrParamRequired("VpcId"))
+ }
+
+ if invalidParams.Len() > 0 {
+ return invalidParams
+ }
+ return nil
+}
+
+// SetClientVpnEndpointId sets the ClientVpnEndpointId field's value.
+func (s *ApplySecurityGroupsToClientVpnTargetNetworkInput) SetClientVpnEndpointId(v string) *ApplySecurityGroupsToClientVpnTargetNetworkInput {
+ s.ClientVpnEndpointId = &v
+ return s
+}
+
+// SetDryRun sets the DryRun field's value.
+func (s *ApplySecurityGroupsToClientVpnTargetNetworkInput) SetDryRun(v bool) *ApplySecurityGroupsToClientVpnTargetNetworkInput {
+ s.DryRun = &v
+ return s
+}
+
+// SetSecurityGroupIds sets the SecurityGroupIds field's value.
+func (s *ApplySecurityGroupsToClientVpnTargetNetworkInput) SetSecurityGroupIds(v []*string) *ApplySecurityGroupsToClientVpnTargetNetworkInput {
+ s.SecurityGroupIds = v
+ return s
+}
+
+// SetVpcId sets the VpcId field's value.
+func (s *ApplySecurityGroupsToClientVpnTargetNetworkInput) SetVpcId(v string) *ApplySecurityGroupsToClientVpnTargetNetworkInput {
+ s.VpcId = &v
+ return s
+}
+
+type ApplySecurityGroupsToClientVpnTargetNetworkOutput struct {
+ _ struct{} `type:"structure"`
+
+ // The IDs of the applied security groups.
+ SecurityGroupIds []*string `locationName:"securityGroupIds" locationNameList:"item" type:"list"`
+}
+
+// String returns the string representation
+func (s ApplySecurityGroupsToClientVpnTargetNetworkOutput) String() string {
+ return awsutil.Prettify(s)
+}
+
+// GoString returns the string representation
+func (s ApplySecurityGroupsToClientVpnTargetNetworkOutput) GoString() string {
+ return s.String()
+}
+
+// SetSecurityGroupIds sets the SecurityGroupIds field's value.
+func (s *ApplySecurityGroupsToClientVpnTargetNetworkOutput) SetSecurityGroupIds(v []*string) *ApplySecurityGroupsToClientVpnTargetNetworkOutput {
+ s.SecurityGroupIds = v
+ return s
+}
+
type AssignIpv6AddressesInput struct {
_ struct{} `type:"structure"`
@@ -23812,7 +28503,6 @@ func (s AssignPrivateIpAddressesOutput) GoString() string {
return s.String()
}
-// Contains the parameters for AssociateAddress.
type AssociateAddressInput struct {
_ struct{} `type:"structure"`
@@ -23904,7 +28594,6 @@ func (s *AssociateAddressInput) SetPublicIp(v string) *AssociateAddressInput {
return s
}
-// Contains the output of AssociateAddress.
type AssociateAddressOutput struct {
_ struct{} `type:"structure"`
@@ -23929,7 +28618,102 @@ func (s *AssociateAddressOutput) SetAssociationId(v string) *AssociateAddressOut
return s
}
-// Contains the parameters for AssociateDhcpOptions.
+type AssociateClientVpnTargetNetworkInput struct {
+ _ struct{} `type:"structure"`
+
+ // The ID of the Client VPN endpoint.
+ //
+ // ClientVpnEndpointId is a required field
+ ClientVpnEndpointId *string `type:"string" required:"true"`
+
+ // Checks whether you have the required permissions for the action, without
+ // actually making the request, and provides an error response. If you have
+ // the required permissions, the error response is DryRunOperation. Otherwise,
+ // it is UnauthorizedOperation.
+ DryRun *bool `type:"boolean"`
+
+ // The ID of the subnet to associate with the Client VPN endpoint.
+ //
+ // SubnetId is a required field
+ SubnetId *string `type:"string" required:"true"`
+}
+
+// String returns the string representation
+func (s AssociateClientVpnTargetNetworkInput) String() string {
+ return awsutil.Prettify(s)
+}
+
+// GoString returns the string representation
+func (s AssociateClientVpnTargetNetworkInput) GoString() string {
+ return s.String()
+}
+
+// Validate inspects the fields of the type to determine if they are valid.
+func (s *AssociateClientVpnTargetNetworkInput) Validate() error {
+ invalidParams := request.ErrInvalidParams{Context: "AssociateClientVpnTargetNetworkInput"}
+ if s.ClientVpnEndpointId == nil {
+ invalidParams.Add(request.NewErrParamRequired("ClientVpnEndpointId"))
+ }
+ if s.SubnetId == nil {
+ invalidParams.Add(request.NewErrParamRequired("SubnetId"))
+ }
+
+ if invalidParams.Len() > 0 {
+ return invalidParams
+ }
+ return nil
+}
+
+// SetClientVpnEndpointId sets the ClientVpnEndpointId field's value.
+func (s *AssociateClientVpnTargetNetworkInput) SetClientVpnEndpointId(v string) *AssociateClientVpnTargetNetworkInput {
+ s.ClientVpnEndpointId = &v
+ return s
+}
+
+// SetDryRun sets the DryRun field's value.
+func (s *AssociateClientVpnTargetNetworkInput) SetDryRun(v bool) *AssociateClientVpnTargetNetworkInput {
+ s.DryRun = &v
+ return s
+}
+
+// SetSubnetId sets the SubnetId field's value.
+func (s *AssociateClientVpnTargetNetworkInput) SetSubnetId(v string) *AssociateClientVpnTargetNetworkInput {
+ s.SubnetId = &v
+ return s
+}
+
+type AssociateClientVpnTargetNetworkOutput struct {
+ _ struct{} `type:"structure"`
+
+ // The unique ID of the target network association.
+ AssociationId *string `locationName:"associationId" type:"string"`
+
+ // The current state of the target network association.
+ Status *AssociationStatus `locationName:"status" type:"structure"`
+}
+
+// String returns the string representation
+func (s AssociateClientVpnTargetNetworkOutput) String() string {
+ return awsutil.Prettify(s)
+}
+
+// GoString returns the string representation
+func (s AssociateClientVpnTargetNetworkOutput) GoString() string {
+ return s.String()
+}
+
+// SetAssociationId sets the AssociationId field's value.
+func (s *AssociateClientVpnTargetNetworkOutput) SetAssociationId(v string) *AssociateClientVpnTargetNetworkOutput {
+ s.AssociationId = &v
+ return s
+}
+
+// SetStatus sets the Status field's value.
+func (s *AssociateClientVpnTargetNetworkOutput) SetStatus(v *AssociationStatus) *AssociateClientVpnTargetNetworkOutput {
+ s.Status = v
+ return s
+}
+
type AssociateDhcpOptionsInput struct {
_ struct{} `type:"structure"`
@@ -24084,7 +28868,6 @@ func (s *AssociateIamInstanceProfileOutput) SetIamInstanceProfileAssociation(v *
return s
}
-// Contains the parameters for AssociateRouteTable.
type AssociateRouteTableInput struct {
_ struct{} `type:"structure"`
@@ -24149,11 +28932,11 @@ func (s *AssociateRouteTableInput) SetSubnetId(v string) *AssociateRouteTableInp
return s
}
-// Contains the output of AssociateRouteTable.
type AssociateRouteTableOutput struct {
_ struct{} `type:"structure"`
- // The route table association ID (needed to disassociate the route table).
+ // The route table association ID. This ID is required for disassociating the
+ // route table.
AssociationId *string `locationName:"associationId" type:"string"`
}
@@ -24257,6 +29040,93 @@ func (s *AssociateSubnetCidrBlockOutput) SetSubnetId(v string) *AssociateSubnetC
return s
}
+type AssociateTransitGatewayRouteTableInput struct {
+ _ struct{} `type:"structure"`
+
+ // Checks whether you have the required permissions for the action, without
+ // actually making the request, and provides an error response. If you have
+ // the required permissions, the error response is DryRunOperation. Otherwise,
+ // it is UnauthorizedOperation.
+ DryRun *bool `type:"boolean"`
+
+ // The ID of the attachment.
+ //
+ // TransitGatewayAttachmentId is a required field
+ TransitGatewayAttachmentId *string `type:"string" required:"true"`
+
+ // The ID of the transit gateway route table.
+ //
+ // TransitGatewayRouteTableId is a required field
+ TransitGatewayRouteTableId *string `type:"string" required:"true"`
+}
+
+// String returns the string representation
+func (s AssociateTransitGatewayRouteTableInput) String() string {
+ return awsutil.Prettify(s)
+}
+
+// GoString returns the string representation
+func (s AssociateTransitGatewayRouteTableInput) GoString() string {
+ return s.String()
+}
+
+// Validate inspects the fields of the type to determine if they are valid.
+func (s *AssociateTransitGatewayRouteTableInput) Validate() error {
+ invalidParams := request.ErrInvalidParams{Context: "AssociateTransitGatewayRouteTableInput"}
+ if s.TransitGatewayAttachmentId == nil {
+ invalidParams.Add(request.NewErrParamRequired("TransitGatewayAttachmentId"))
+ }
+ if s.TransitGatewayRouteTableId == nil {
+ invalidParams.Add(request.NewErrParamRequired("TransitGatewayRouteTableId"))
+ }
+
+ if invalidParams.Len() > 0 {
+ return invalidParams
+ }
+ return nil
+}
+
+// SetDryRun sets the DryRun field's value.
+func (s *AssociateTransitGatewayRouteTableInput) SetDryRun(v bool) *AssociateTransitGatewayRouteTableInput {
+ s.DryRun = &v
+ return s
+}
+
+// SetTransitGatewayAttachmentId sets the TransitGatewayAttachmentId field's value.
+func (s *AssociateTransitGatewayRouteTableInput) SetTransitGatewayAttachmentId(v string) *AssociateTransitGatewayRouteTableInput {
+ s.TransitGatewayAttachmentId = &v
+ return s
+}
+
+// SetTransitGatewayRouteTableId sets the TransitGatewayRouteTableId field's value.
+func (s *AssociateTransitGatewayRouteTableInput) SetTransitGatewayRouteTableId(v string) *AssociateTransitGatewayRouteTableInput {
+ s.TransitGatewayRouteTableId = &v
+ return s
+}
+
+type AssociateTransitGatewayRouteTableOutput struct {
+ _ struct{} `type:"structure"`
+
+ // The ID of the association.
+ Association *TransitGatewayAssociation `locationName:"association" type:"structure"`
+}
+
+// String returns the string representation
+func (s AssociateTransitGatewayRouteTableOutput) String() string {
+ return awsutil.Prettify(s)
+}
+
+// GoString returns the string representation
+func (s AssociateTransitGatewayRouteTableOutput) GoString() string {
+ return s.String()
+}
+
+// SetAssociation sets the Association field's value.
+func (s *AssociateTransitGatewayRouteTableOutput) SetAssociation(v *TransitGatewayAssociation) *AssociateTransitGatewayRouteTableOutput {
+ s.Association = v
+ return s
+}
+
type AssociateVpcCidrBlockInput struct {
_ struct{} `type:"structure"`
@@ -24356,7 +29226,73 @@ func (s *AssociateVpcCidrBlockOutput) SetVpcId(v string) *AssociateVpcCidrBlockO
return s
}
-// Contains the parameters for AttachClassicLinkVpc.
+// Describes a target network that is associated with a Client VPN endpoint.
+// A target network is a subnet in a VPC.
+type AssociatedTargetNetwork struct {
+ _ struct{} `type:"structure"`
+
+ // The ID of the subnet.
+ NetworkId *string `locationName:"networkId" type:"string"`
+
+ // The target network type.
+ NetworkType *string `locationName:"networkType" type:"string" enum:"AssociatedNetworkType"`
+}
+
+// String returns the string representation
+func (s AssociatedTargetNetwork) String() string {
+ return awsutil.Prettify(s)
+}
+
+// GoString returns the string representation
+func (s AssociatedTargetNetwork) GoString() string {
+ return s.String()
+}
+
+// SetNetworkId sets the NetworkId field's value.
+func (s *AssociatedTargetNetwork) SetNetworkId(v string) *AssociatedTargetNetwork {
+ s.NetworkId = &v
+ return s
+}
+
+// SetNetworkType sets the NetworkType field's value.
+func (s *AssociatedTargetNetwork) SetNetworkType(v string) *AssociatedTargetNetwork {
+ s.NetworkType = &v
+ return s
+}
+
+// Describes the state of a target network association.
+type AssociationStatus struct {
+ _ struct{} `type:"structure"`
+
+ // The state of the target network association.
+ Code *string `locationName:"code" type:"string" enum:"AssociationStatusCode"`
+
+ // A message about the status of the target network association, if applicable.
+ Message *string `locationName:"message" type:"string"`
+}
+
+// String returns the string representation
+func (s AssociationStatus) String() string {
+ return awsutil.Prettify(s)
+}
+
+// GoString returns the string representation
+func (s AssociationStatus) GoString() string {
+ return s.String()
+}
+
+// SetCode sets the Code field's value.
+func (s *AssociationStatus) SetCode(v string) *AssociationStatus {
+ s.Code = &v
+ return s
+}
+
+// SetMessage sets the Message field's value.
+func (s *AssociationStatus) SetMessage(v string) *AssociationStatus {
+ s.Message = &v
+ return s
+}
+
type AttachClassicLinkVpcInput struct {
_ struct{} `type:"structure"`
@@ -24436,7 +29372,6 @@ func (s *AttachClassicLinkVpcInput) SetVpcId(v string) *AttachClassicLinkVpcInpu
return s
}
-// Contains the output of AttachClassicLinkVpc.
type AttachClassicLinkVpcOutput struct {
_ struct{} `type:"structure"`
@@ -24460,7 +29395,6 @@ func (s *AttachClassicLinkVpcOutput) SetReturn(v bool) *AttachClassicLinkVpcOutp
return s
}
-// Contains the parameters for AttachInternetGateway.
type AttachInternetGatewayInput struct {
_ struct{} `type:"structure"`
@@ -24470,7 +29404,7 @@ type AttachInternetGatewayInput struct {
// it is UnauthorizedOperation.
DryRun *bool `locationName:"dryRun" type:"boolean"`
- // The ID of the Internet gateway.
+ // The ID of the internet gateway.
//
// InternetGatewayId is a required field
InternetGatewayId *string `locationName:"internetGatewayId" type:"string" required:"true"`
@@ -24859,7 +29793,193 @@ func (s *AttributeValue) SetValue(v string) *AttributeValue {
return s
}
-// Contains the parameters for AuthorizeSecurityGroupEgress.
+// Information about an authorization rule.
+type AuthorizationRule struct {
+ _ struct{} `type:"structure"`
+
+ // Indicates whether the authorization rule grants access to all clients.
+ AccessAll *bool `locationName:"accessAll" type:"boolean"`
+
+ // The ID of the Client VPN endpoint with which the authorization rule is associated.
+ ClientVpnEndpointId *string `locationName:"clientVpnEndpointId" type:"string"`
+
+ // A brief description of the authorization rule.
+ Description *string `locationName:"description" type:"string"`
+
+ // The IPv4 address range, in CIDR notation, of the network to which the authorization
+ // rule applies.
+ DestinationCidr *string `locationName:"destinationCidr" type:"string"`
+
+ // The ID of the Active Directory group to which the authorization rule grants
+ // access.
+ GroupId *string `locationName:"groupId" type:"string"`
+
+ // The current state of the authorization rule.
+ Status *ClientVpnAuthorizationRuleStatus `locationName:"status" type:"structure"`
+}
+
+// String returns the string representation
+func (s AuthorizationRule) String() string {
+ return awsutil.Prettify(s)
+}
+
+// GoString returns the string representation
+func (s AuthorizationRule) GoString() string {
+ return s.String()
+}
+
+// SetAccessAll sets the AccessAll field's value.
+func (s *AuthorizationRule) SetAccessAll(v bool) *AuthorizationRule {
+ s.AccessAll = &v
+ return s
+}
+
+// SetClientVpnEndpointId sets the ClientVpnEndpointId field's value.
+func (s *AuthorizationRule) SetClientVpnEndpointId(v string) *AuthorizationRule {
+ s.ClientVpnEndpointId = &v
+ return s
+}
+
+// SetDescription sets the Description field's value.
+func (s *AuthorizationRule) SetDescription(v string) *AuthorizationRule {
+ s.Description = &v
+ return s
+}
+
+// SetDestinationCidr sets the DestinationCidr field's value.
+func (s *AuthorizationRule) SetDestinationCidr(v string) *AuthorizationRule {
+ s.DestinationCidr = &v
+ return s
+}
+
+// SetGroupId sets the GroupId field's value.
+func (s *AuthorizationRule) SetGroupId(v string) *AuthorizationRule {
+ s.GroupId = &v
+ return s
+}
+
+// SetStatus sets the Status field's value.
+func (s *AuthorizationRule) SetStatus(v *ClientVpnAuthorizationRuleStatus) *AuthorizationRule {
+ s.Status = v
+ return s
+}
+
+type AuthorizeClientVpnIngressInput struct {
+ _ struct{} `type:"structure"`
+
+ // The ID of the Active Directory group to grant access.
+ AccessGroupId *string `type:"string"`
+
+ // Indicates whether to grant access to all clients. Use true to grant all clients
+ // who successfully establish a VPN connection access to the network.
+ AuthorizeAllGroups *bool `type:"boolean"`
+
+ // The ID of the Client VPN endpoint.
+ //
+ // ClientVpnEndpointId is a required field
+ ClientVpnEndpointId *string `type:"string" required:"true"`
+
+ // A brief description of the authorization rule.
+ Description *string `type:"string"`
+
+ // Checks whether you have the required permissions for the action, without
+ // actually making the request, and provides an error response. If you have
+ // the required permissions, the error response is DryRunOperation. Otherwise,
+ // it is UnauthorizedOperation.
+ DryRun *bool `type:"boolean"`
+
+ // The IPv4 address range, in CIDR notation, of the network for which access
+ // is being authorized.
+ //
+ // TargetNetworkCidr is a required field
+ TargetNetworkCidr *string `type:"string" required:"true"`
+}
+
+// String returns the string representation
+func (s AuthorizeClientVpnIngressInput) String() string {
+ return awsutil.Prettify(s)
+}
+
+// GoString returns the string representation
+func (s AuthorizeClientVpnIngressInput) GoString() string {
+ return s.String()
+}
+
+// Validate inspects the fields of the type to determine if they are valid.
+func (s *AuthorizeClientVpnIngressInput) Validate() error {
+ invalidParams := request.ErrInvalidParams{Context: "AuthorizeClientVpnIngressInput"}
+ if s.ClientVpnEndpointId == nil {
+ invalidParams.Add(request.NewErrParamRequired("ClientVpnEndpointId"))
+ }
+ if s.TargetNetworkCidr == nil {
+ invalidParams.Add(request.NewErrParamRequired("TargetNetworkCidr"))
+ }
+
+ if invalidParams.Len() > 0 {
+ return invalidParams
+ }
+ return nil
+}
+
+// SetAccessGroupId sets the AccessGroupId field's value.
+func (s *AuthorizeClientVpnIngressInput) SetAccessGroupId(v string) *AuthorizeClientVpnIngressInput {
+ s.AccessGroupId = &v
+ return s
+}
+
+// SetAuthorizeAllGroups sets the AuthorizeAllGroups field's value.
+func (s *AuthorizeClientVpnIngressInput) SetAuthorizeAllGroups(v bool) *AuthorizeClientVpnIngressInput {
+ s.AuthorizeAllGroups = &v
+ return s
+}
+
+// SetClientVpnEndpointId sets the ClientVpnEndpointId field's value.
+func (s *AuthorizeClientVpnIngressInput) SetClientVpnEndpointId(v string) *AuthorizeClientVpnIngressInput {
+ s.ClientVpnEndpointId = &v
+ return s
+}
+
+// SetDescription sets the Description field's value.
+func (s *AuthorizeClientVpnIngressInput) SetDescription(v string) *AuthorizeClientVpnIngressInput {
+ s.Description = &v
+ return s
+}
+
+// SetDryRun sets the DryRun field's value.
+func (s *AuthorizeClientVpnIngressInput) SetDryRun(v bool) *AuthorizeClientVpnIngressInput {
+ s.DryRun = &v
+ return s
+}
+
+// SetTargetNetworkCidr sets the TargetNetworkCidr field's value.
+func (s *AuthorizeClientVpnIngressInput) SetTargetNetworkCidr(v string) *AuthorizeClientVpnIngressInput {
+ s.TargetNetworkCidr = &v
+ return s
+}
+
+type AuthorizeClientVpnIngressOutput struct {
+ _ struct{} `type:"structure"`
+
+ // The current state of the authorization rule.
+ Status *ClientVpnAuthorizationRuleStatus `locationName:"status" type:"structure"`
+}
+
+// String returns the string representation
+func (s AuthorizeClientVpnIngressOutput) String() string {
+ return awsutil.Prettify(s)
+}
+
+// GoString returns the string representation
+func (s AuthorizeClientVpnIngressOutput) GoString() string {
+ return s.String()
+}
+
+// SetStatus sets the Status field's value.
+func (s *AuthorizeClientVpnIngressOutput) SetStatus(v *ClientVpnAuthorizationRuleStatus) *AuthorizeClientVpnIngressOutput {
+ s.Status = v
+ return s
+}
+
type AuthorizeSecurityGroupEgressInput struct {
_ struct{} `type:"structure"`
@@ -24991,7 +30111,6 @@ func (s AuthorizeSecurityGroupEgressOutput) GoString() string {
return s.String()
}
-// Contains the parameters for AuthorizeSecurityGroupIngress.
type AuthorizeSecurityGroupIngressInput struct {
_ struct{} `type:"structure"`
@@ -25151,6 +30270,9 @@ type AvailabilityZone struct {
// The state of the Availability Zone.
State *string `locationName:"zoneState" type:"string" enum:"AvailabilityZoneState"`
+ // The ID of the Availability Zone.
+ ZoneId *string `locationName:"zoneId" type:"string"`
+
// The name of the Availability Zone.
ZoneName *string `locationName:"zoneName" type:"string"`
}
@@ -25183,6 +30305,12 @@ func (s *AvailabilityZone) SetState(v string) *AvailabilityZone {
return s
}
+// SetZoneId sets the ZoneId field's value.
+func (s *AvailabilityZone) SetZoneId(v string) *AvailabilityZone {
+ s.ZoneId = &v
+ return s
+}
+
// SetZoneName sets the ZoneName field's value.
func (s *AvailabilityZone) SetZoneName(v string) *AvailabilityZone {
s.ZoneName = &v
@@ -25217,7 +30345,7 @@ func (s *AvailabilityZoneMessage) SetMessage(v string) *AvailabilityZoneMessage
type AvailableCapacity struct {
_ struct{} `type:"structure"`
- // The total number of instances that the Dedicated Host supports.
+ // The total number of instances supported by the Dedicated Host.
AvailableInstanceCapacity []*InstanceCapacity `locationName:"availableInstanceCapacity" locationNameList:"item" type:"list"`
// The number of vCPUs available on the Dedicated Host.
@@ -25286,10 +30414,13 @@ type BlockDeviceMapping struct {
// The virtual device name (ephemeralN). Instance store volumes are numbered
// starting from 0. An instance type with 2 available instance store volumes
- // can specify mappings for ephemeral0 and ephemeral1.The number of available
+ // can specify mappings for ephemeral0 and ephemeral1. The number of available
// instance store volumes depends on the instance type. After you connect to
// the instance, you must mount the volume.
//
+ // NVMe instance store volumes are automatically enumerated and assigned a device
+ // name. Including them in your block device mapping has no effect.
+ //
// Constraints: For M3 instances, you must specify instance store volumes in
// the block device mapping for the instance. When you launch an M3 instance,
// we ignore any instance store volumes specified in the block device mapping
@@ -25445,7 +30576,7 @@ type BundleTask struct {
Progress *string `locationName:"progress" type:"string"`
// The time this task started.
- StartTime *time.Time `locationName:"startTime" type:"timestamp" timestampFormat:"iso8601"`
+ StartTime *time.Time `locationName:"startTime" type:"timestamp"`
// The state of the task.
State *string `locationName:"state" type:"string" enum:"BundleTaskState"`
@@ -25454,7 +30585,7 @@ type BundleTask struct {
Storage *Storage `locationName:"storage" type:"structure"`
// The time of the most recent update for the task.
- UpdateTime *time.Time `locationName:"updateTime" type:"timestamp" timestampFormat:"iso8601"`
+ UpdateTime *time.Time `locationName:"updateTime" type:"timestamp"`
}
// String returns the string representation
@@ -25548,6 +30679,59 @@ func (s *BundleTaskError) SetMessage(v string) *BundleTaskError {
return s
}
+// Information about an address range that is provisioned for use with your
+// AWS resources through bring your own IP addresses (BYOIP).
+type ByoipCidr struct {
+ _ struct{} `type:"structure"`
+
+ // The public IPv4 address range, in CIDR notation.
+ Cidr *string `locationName:"cidr" type:"string"`
+
+ // The description of the address range.
+ Description *string `locationName:"description" type:"string"`
+
+ // The state of the address pool.
+ State *string `locationName:"state" type:"string" enum:"ByoipCidrState"`
+
+ // Upon success, contains the ID of the address pool. Otherwise, contains an
+ // error message.
+ StatusMessage *string `locationName:"statusMessage" type:"string"`
+}
+
+// String returns the string representation
+func (s ByoipCidr) String() string {
+ return awsutil.Prettify(s)
+}
+
+// GoString returns the string representation
+func (s ByoipCidr) GoString() string {
+ return s.String()
+}
+
+// SetCidr sets the Cidr field's value.
+func (s *ByoipCidr) SetCidr(v string) *ByoipCidr {
+ s.Cidr = &v
+ return s
+}
+
+// SetDescription sets the Description field's value.
+func (s *ByoipCidr) SetDescription(v string) *ByoipCidr {
+ s.Description = &v
+ return s
+}
+
+// SetState sets the State field's value.
+func (s *ByoipCidr) SetState(v string) *ByoipCidr {
+ s.State = &v
+ return s
+}
+
+// SetStatusMessage sets the StatusMessage field's value.
+func (s *ByoipCidr) SetStatusMessage(v string) *ByoipCidr {
+ s.StatusMessage = &v
+ return s
+}
+
// Contains the parameters for CancelBundleTask.
type CancelBundleTaskInput struct {
_ struct{} `type:"structure"`
@@ -25623,6 +30807,79 @@ func (s *CancelBundleTaskOutput) SetBundleTask(v *BundleTask) *CancelBundleTaskO
return s
}
+type CancelCapacityReservationInput struct {
+ _ struct{} `type:"structure"`
+
+ // The ID of the Capacity Reservation to be cancelled.
+ //
+ // CapacityReservationId is a required field
+ CapacityReservationId *string `type:"string" required:"true"`
+
+ // Checks whether you have the required permissions for the action, without
+ // actually making the request, and provides an error response. If you have
+ // the required permissions, the error response is DryRunOperation. Otherwise,
+ // it is UnauthorizedOperation.
+ DryRun *bool `type:"boolean"`
+}
+
+// String returns the string representation
+func (s CancelCapacityReservationInput) String() string {
+ return awsutil.Prettify(s)
+}
+
+// GoString returns the string representation
+func (s CancelCapacityReservationInput) GoString() string {
+ return s.String()
+}
+
+// Validate inspects the fields of the type to determine if they are valid.
+func (s *CancelCapacityReservationInput) Validate() error {
+ invalidParams := request.ErrInvalidParams{Context: "CancelCapacityReservationInput"}
+ if s.CapacityReservationId == nil {
+ invalidParams.Add(request.NewErrParamRequired("CapacityReservationId"))
+ }
+
+ if invalidParams.Len() > 0 {
+ return invalidParams
+ }
+ return nil
+}
+
+// SetCapacityReservationId sets the CapacityReservationId field's value.
+func (s *CancelCapacityReservationInput) SetCapacityReservationId(v string) *CancelCapacityReservationInput {
+ s.CapacityReservationId = &v
+ return s
+}
+
+// SetDryRun sets the DryRun field's value.
+func (s *CancelCapacityReservationInput) SetDryRun(v bool) *CancelCapacityReservationInput {
+ s.DryRun = &v
+ return s
+}
+
+type CancelCapacityReservationOutput struct {
+ _ struct{} `type:"structure"`
+
+ // Returns true if the request succeeds; otherwise, it returns an error.
+ Return *bool `locationName:"return" type:"boolean"`
+}
+
+// String returns the string representation
+func (s CancelCapacityReservationOutput) String() string {
+ return awsutil.Prettify(s)
+}
+
+// GoString returns the string representation
+func (s CancelCapacityReservationOutput) GoString() string {
+ return s.String()
+}
+
+// SetReturn sets the Return field's value.
+func (s *CancelCapacityReservationOutput) SetReturn(v bool) *CancelCapacityReservationOutput {
+ s.Return = &v
+ return s
+}
+
// Contains the parameters for CancelConversionTask.
type CancelConversionTaskInput struct {
_ struct{} `type:"structure"`
@@ -25905,14 +31162,10 @@ type CancelSpotFleetRequestsError struct {
_ struct{} `type:"structure"`
// The error code.
- //
- // Code is a required field
- Code *string `locationName:"code" type:"string" required:"true" enum:"CancelBatchErrorCode"`
+ Code *string `locationName:"code" type:"string" enum:"CancelBatchErrorCode"`
// The description for the error code.
- //
- // Message is a required field
- Message *string `locationName:"message" type:"string" required:"true"`
+ Message *string `locationName:"message" type:"string"`
}
// String returns the string representation
@@ -25942,14 +31195,10 @@ type CancelSpotFleetRequestsErrorItem struct {
_ struct{} `type:"structure"`
// The error.
- //
- // Error is a required field
- Error *CancelSpotFleetRequestsError `locationName:"error" type:"structure" required:"true"`
+ Error *CancelSpotFleetRequestsError `locationName:"error" type:"structure"`
// The ID of the Spot Fleet request.
- //
- // SpotFleetRequestId is a required field
- SpotFleetRequestId *string `locationName:"spotFleetRequestId" type:"string" required:"true"`
+ SpotFleetRequestId *string `locationName:"spotFleetRequestId" type:"string"`
}
// String returns the string representation
@@ -26078,19 +31327,13 @@ type CancelSpotFleetRequestsSuccessItem struct {
_ struct{} `type:"structure"`
// The current state of the Spot Fleet request.
- //
- // CurrentSpotFleetRequestState is a required field
- CurrentSpotFleetRequestState *string `locationName:"currentSpotFleetRequestState" type:"string" required:"true" enum:"BatchState"`
+ CurrentSpotFleetRequestState *string `locationName:"currentSpotFleetRequestState" type:"string" enum:"BatchState"`
// The previous state of the Spot Fleet request.
- //
- // PreviousSpotFleetRequestState is a required field
- PreviousSpotFleetRequestState *string `locationName:"previousSpotFleetRequestState" type:"string" required:"true" enum:"BatchState"`
+ PreviousSpotFleetRequestState *string `locationName:"previousSpotFleetRequestState" type:"string" enum:"BatchState"`
// The ID of the Spot Fleet request.
- //
- // SpotFleetRequestId is a required field
- SpotFleetRequestId *string `locationName:"spotFleetRequestId" type:"string" required:"true"`
+ SpotFleetRequestId *string `locationName:"spotFleetRequestId" type:"string"`
}
// String returns the string representation
@@ -26229,6 +31472,450 @@ func (s *CancelledSpotInstanceRequest) SetState(v string) *CancelledSpotInstance
return s
}
+// Describes a Capacity Reservation.
+type CapacityReservation struct {
+ _ struct{} `type:"structure"`
+
+ // The Availability Zone in which the capacity is reserved.
+ AvailabilityZone *string `locationName:"availabilityZone" type:"string"`
+
+ // The remaining capacity. Indicates the number of instances that can be launched
+ // in the Capacity Reservation.
+ AvailableInstanceCount *int64 `locationName:"availableInstanceCount" type:"integer"`
+
+ // The ID of the Capacity Reservation.
+ CapacityReservationId *string `locationName:"capacityReservationId" type:"string"`
+
+ // The date and time at which the Capacity Reservation was created.
+ CreateDate *time.Time `locationName:"createDate" type:"timestamp"`
+
+ // Indicates whether the Capacity Reservation supports EBS-optimized instances.
+ // This optimization provides dedicated throughput to Amazon EBS and an optimized
+ // configuration stack to provide optimal I/O performance. This optimization
+ // isn't available with all instance types. Additional usage charges apply when
+ // using an EBS- optimized instance.
+ EbsOptimized *bool `locationName:"ebsOptimized" type:"boolean"`
+
+ // The date and time at which the Capacity Reservation expires. When a Capacity
+ // Reservation expires, the reserved capacity is released and you can no longer
+ // launch instances into it. The Capacity Reservation's state changes to expired
+ // when it reaches its end date and time.
+ EndDate *time.Time `locationName:"endDate" type:"timestamp"`
+
+ // Indicates the way in which the Capacity Reservation ends. A Capacity Reservation
+ // can have one of the following end types:
+ //
+ // * unlimited - The Capacity Reservation remains active until you explicitly
+ // cancel it.
+ //
+ // * limited - The Capacity Reservation expires automatically at a specified
+ // date and time.
+ EndDateType *string `locationName:"endDateType" type:"string" enum:"EndDateType"`
+
+ // Indicates whether the Capacity Reservation supports instances with temporary,
+ // block-level storage.
+ EphemeralStorage *bool `locationName:"ephemeralStorage" type:"boolean"`
+
+ // Indicates the type of instance launches that the Capacity Reservation accepts.
+ // The options include:
+ //
+ // * open - The Capacity Reservation accepts all instances that have matching
+ // attributes (instance type, platform, and Availability Zone). Instances
+ // that have matching attributes launch into the Capacity Reservation automatically
+ // without specifying any additional parameters.
+ //
+ // * targeted - The Capacity Reservation only accepts instances that have
+ // matching attributes (instance type, platform, and Availability Zone),
+ // and explicitly target the Capacity Reservation. This ensures that only
+ // permitted instances can use the reserved capacity.
+ InstanceMatchCriteria *string `locationName:"instanceMatchCriteria" type:"string" enum:"InstanceMatchCriteria"`
+
+ // The type of operating system for which the Capacity Reservation reserves
+ // capacity.
+ InstancePlatform *string `locationName:"instancePlatform" type:"string" enum:"CapacityReservationInstancePlatform"`
+
+ // The type of instance for which the Capacity Reservation reserves capacity.
+ InstanceType *string `locationName:"instanceType" type:"string"`
+
+ // The current state of the Capacity Reservation. A Capacity Reservation can
+ // be in one of the following states:
+ //
+ // * active - The Capacity Reservation is active and the capacity is available
+ // for your use.
+ //
+ // * cancelled - The Capacity Reservation expired automatically at the date
+ // and time specified in your request. The reserved capacity is no longer
+ // available for your use.
+ //
+ // * expired - The Capacity Reservation was manually cancelled. The reserved
+ // capacity is no longer available for your use.
+ //
+ // * pending - The Capacity Reservation request was successful but the capacity
+ // provisioning is still pending.
+ //
+ // * failed - The Capacity Reservation request has failed. A request might
+ // fail due to invalid request parameters, capacity constraints, or instance
+ // limit constraints. Failed requests are retained for 60 minutes.
+ State *string `locationName:"state" type:"string" enum:"CapacityReservationState"`
+
+ // Any tags assigned to the Capacity Reservation.
+ Tags []*Tag `locationName:"tagSet" locationNameList:"item" type:"list"`
+
+ // Indicates the tenancy of the Capacity Reservation. A Capacity Reservation
+ // can have one of the following tenancy settings:
+ //
+ // * default - The Capacity Reservation is created on hardware that is shared
+ // with other AWS accounts.
+ //
+ // * dedicated - The Capacity Reservation is created on single-tenant hardware
+ // that is dedicated to a single AWS account.
+ Tenancy *string `locationName:"tenancy" type:"string" enum:"CapacityReservationTenancy"`
+
+ // The number of instances for which the Capacity Reservation reserves capacity.
+ TotalInstanceCount *int64 `locationName:"totalInstanceCount" type:"integer"`
+}
+
+// String returns the string representation
+func (s CapacityReservation) String() string {
+ return awsutil.Prettify(s)
+}
+
+// GoString returns the string representation
+func (s CapacityReservation) GoString() string {
+ return s.String()
+}
+
+// SetAvailabilityZone sets the AvailabilityZone field's value.
+func (s *CapacityReservation) SetAvailabilityZone(v string) *CapacityReservation {
+ s.AvailabilityZone = &v
+ return s
+}
+
+// SetAvailableInstanceCount sets the AvailableInstanceCount field's value.
+func (s *CapacityReservation) SetAvailableInstanceCount(v int64) *CapacityReservation {
+ s.AvailableInstanceCount = &v
+ return s
+}
+
+// SetCapacityReservationId sets the CapacityReservationId field's value.
+func (s *CapacityReservation) SetCapacityReservationId(v string) *CapacityReservation {
+ s.CapacityReservationId = &v
+ return s
+}
+
+// SetCreateDate sets the CreateDate field's value.
+func (s *CapacityReservation) SetCreateDate(v time.Time) *CapacityReservation {
+ s.CreateDate = &v
+ return s
+}
+
+// SetEbsOptimized sets the EbsOptimized field's value.
+func (s *CapacityReservation) SetEbsOptimized(v bool) *CapacityReservation {
+ s.EbsOptimized = &v
+ return s
+}
+
+// SetEndDate sets the EndDate field's value.
+func (s *CapacityReservation) SetEndDate(v time.Time) *CapacityReservation {
+ s.EndDate = &v
+ return s
+}
+
+// SetEndDateType sets the EndDateType field's value.
+func (s *CapacityReservation) SetEndDateType(v string) *CapacityReservation {
+ s.EndDateType = &v
+ return s
+}
+
+// SetEphemeralStorage sets the EphemeralStorage field's value.
+func (s *CapacityReservation) SetEphemeralStorage(v bool) *CapacityReservation {
+ s.EphemeralStorage = &v
+ return s
+}
+
+// SetInstanceMatchCriteria sets the InstanceMatchCriteria field's value.
+func (s *CapacityReservation) SetInstanceMatchCriteria(v string) *CapacityReservation {
+ s.InstanceMatchCriteria = &v
+ return s
+}
+
+// SetInstancePlatform sets the InstancePlatform field's value.
+func (s *CapacityReservation) SetInstancePlatform(v string) *CapacityReservation {
+ s.InstancePlatform = &v
+ return s
+}
+
+// SetInstanceType sets the InstanceType field's value.
+func (s *CapacityReservation) SetInstanceType(v string) *CapacityReservation {
+ s.InstanceType = &v
+ return s
+}
+
+// SetState sets the State field's value.
+func (s *CapacityReservation) SetState(v string) *CapacityReservation {
+ s.State = &v
+ return s
+}
+
+// SetTags sets the Tags field's value.
+func (s *CapacityReservation) SetTags(v []*Tag) *CapacityReservation {
+ s.Tags = v
+ return s
+}
+
+// SetTenancy sets the Tenancy field's value.
+func (s *CapacityReservation) SetTenancy(v string) *CapacityReservation {
+ s.Tenancy = &v
+ return s
+}
+
+// SetTotalInstanceCount sets the TotalInstanceCount field's value.
+func (s *CapacityReservation) SetTotalInstanceCount(v int64) *CapacityReservation {
+ s.TotalInstanceCount = &v
+ return s
+}
+
+// Describes an instance's Capacity Reservation targeting option. You can specify
+// only one option at a time. Use the CapacityReservationPreference parameter
+// to configure the instance to run as an On-Demand Instance or to run in any
+// open Capacity Reservation that has matching attributes (instance type, platform,
+// Availability Zone). Use the CapacityReservationTarget parameter to explicitly
+// target a specific Capacity Reservation.
+type CapacityReservationSpecification struct {
+ _ struct{} `type:"structure"`
+
+ // Indicates the instance's Capacity Reservation preferences. Possible preferences
+ // include:
+ //
+ // * open - The instance can run in any open Capacity Reservation that has
+ // matching attributes (instance type, platform, Availability Zone).
+ //
+ // * none - The instance avoids running in a Capacity Reservation even if
+ // one is available. The instance runs as an On-Demand Instance.
+ CapacityReservationPreference *string `type:"string" enum:"CapacityReservationPreference"`
+
+ // Information about the target Capacity Reservation.
+ CapacityReservationTarget *CapacityReservationTarget `type:"structure"`
+}
+
+// String returns the string representation
+func (s CapacityReservationSpecification) String() string {
+ return awsutil.Prettify(s)
+}
+
+// GoString returns the string representation
+func (s CapacityReservationSpecification) GoString() string {
+ return s.String()
+}
+
+// SetCapacityReservationPreference sets the CapacityReservationPreference field's value.
+func (s *CapacityReservationSpecification) SetCapacityReservationPreference(v string) *CapacityReservationSpecification {
+ s.CapacityReservationPreference = &v
+ return s
+}
+
+// SetCapacityReservationTarget sets the CapacityReservationTarget field's value.
+func (s *CapacityReservationSpecification) SetCapacityReservationTarget(v *CapacityReservationTarget) *CapacityReservationSpecification {
+ s.CapacityReservationTarget = v
+ return s
+}
+
+// Describes the instance's Capacity Reservation targeting preferences. The
+// action returns the capacityReservationPreference response element if the
+// instance is configured to run in On-Demand capacity, or if it is configured
+// in run in any open Capacity Reservation that has matching attributes (instance
+// type, platform, Availability Zone). The action returns the capacityReservationTarget
+// response element if the instance explicily targets a specific Capacity Reservation.
+type CapacityReservationSpecificationResponse struct {
+ _ struct{} `type:"structure"`
+
+ // Describes the instance's Capacity Reservation preferences. Possible preferences
+ // include:
+ //
+ // * open - The instance can run in any open Capacity Reservation that has
+ // matching attributes (instance type, platform, Availability Zone).
+ //
+ // * none - The instance avoids running in a Capacity Reservation even if
+ // one is available. The instance runs in On-Demand capacity.
+ CapacityReservationPreference *string `locationName:"capacityReservationPreference" type:"string" enum:"CapacityReservationPreference"`
+
+ // Information about the targeted Capacity Reservation.
+ CapacityReservationTarget *CapacityReservationTargetResponse `locationName:"capacityReservationTarget" type:"structure"`
+}
+
+// String returns the string representation
+func (s CapacityReservationSpecificationResponse) String() string {
+ return awsutil.Prettify(s)
+}
+
+// GoString returns the string representation
+func (s CapacityReservationSpecificationResponse) GoString() string {
+ return s.String()
+}
+
+// SetCapacityReservationPreference sets the CapacityReservationPreference field's value.
+func (s *CapacityReservationSpecificationResponse) SetCapacityReservationPreference(v string) *CapacityReservationSpecificationResponse {
+ s.CapacityReservationPreference = &v
+ return s
+}
+
+// SetCapacityReservationTarget sets the CapacityReservationTarget field's value.
+func (s *CapacityReservationSpecificationResponse) SetCapacityReservationTarget(v *CapacityReservationTargetResponse) *CapacityReservationSpecificationResponse {
+ s.CapacityReservationTarget = v
+ return s
+}
+
+// Describes a target Capacity Reservation.
+type CapacityReservationTarget struct {
+ _ struct{} `type:"structure"`
+
+ // The ID of the Capacity Reservation.
+ CapacityReservationId *string `type:"string"`
+}
+
+// String returns the string representation
+func (s CapacityReservationTarget) String() string {
+ return awsutil.Prettify(s)
+}
+
+// GoString returns the string representation
+func (s CapacityReservationTarget) GoString() string {
+ return s.String()
+}
+
+// SetCapacityReservationId sets the CapacityReservationId field's value.
+func (s *CapacityReservationTarget) SetCapacityReservationId(v string) *CapacityReservationTarget {
+ s.CapacityReservationId = &v
+ return s
+}
+
+// Describes a target Capacity Reservation.
+type CapacityReservationTargetResponse struct {
+ _ struct{} `type:"structure"`
+
+ // The ID of the Capacity Reservation.
+ CapacityReservationId *string `locationName:"capacityReservationId" type:"string"`
+}
+
+// String returns the string representation
+func (s CapacityReservationTargetResponse) String() string {
+ return awsutil.Prettify(s)
+}
+
+// GoString returns the string representation
+func (s CapacityReservationTargetResponse) GoString() string {
+ return s.String()
+}
+
+// SetCapacityReservationId sets the CapacityReservationId field's value.
+func (s *CapacityReservationTargetResponse) SetCapacityReservationId(v string) *CapacityReservationTargetResponse {
+ s.CapacityReservationId = &v
+ return s
+}
+
+// Information about the client certificate used for authentication.
+type CertificateAuthentication struct {
+ _ struct{} `type:"structure"`
+
+ // The ARN of the client certificate.
+ ClientRootCertificateChain *string `locationName:"clientRootCertificateChain" type:"string"`
+}
+
+// String returns the string representation
+func (s CertificateAuthentication) String() string {
+ return awsutil.Prettify(s)
+}
+
+// GoString returns the string representation
+func (s CertificateAuthentication) GoString() string {
+ return s.String()
+}
+
+// SetClientRootCertificateChain sets the ClientRootCertificateChain field's value.
+func (s *CertificateAuthentication) SetClientRootCertificateChain(v string) *CertificateAuthentication {
+ s.ClientRootCertificateChain = &v
+ return s
+}
+
+// Information about the client certificate to be used for authentication.
+type CertificateAuthenticationRequest struct {
+ _ struct{} `type:"structure"`
+
+ // The ARN of the client certificate. The certificate must be signed by a certificate
+ // authority (CA) and it must be provisioned in AWS Certificate Manager (ACM).
+ ClientRootCertificateChainArn *string `type:"string"`
+}
+
+// String returns the string representation
+func (s CertificateAuthenticationRequest) String() string {
+ return awsutil.Prettify(s)
+}
+
+// GoString returns the string representation
+func (s CertificateAuthenticationRequest) GoString() string {
+ return s.String()
+}
+
+// SetClientRootCertificateChainArn sets the ClientRootCertificateChainArn field's value.
+func (s *CertificateAuthenticationRequest) SetClientRootCertificateChainArn(v string) *CertificateAuthenticationRequest {
+ s.ClientRootCertificateChainArn = &v
+ return s
+}
+
+// Provides authorization for Amazon to bring a specific IP address range to
+// a specific AWS account using bring your own IP addresses (BYOIP).
+type CidrAuthorizationContext struct {
+ _ struct{} `type:"structure"`
+
+ // The plain-text authorization message for the prefix and account.
+ //
+ // Message is a required field
+ Message *string `type:"string" required:"true"`
+
+ // The signed authorization message for the prefix and account.
+ //
+ // Signature is a required field
+ Signature *string `type:"string" required:"true"`
+}
+
+// String returns the string representation
+func (s CidrAuthorizationContext) String() string {
+ return awsutil.Prettify(s)
+}
+
+// GoString returns the string representation
+func (s CidrAuthorizationContext) GoString() string {
+ return s.String()
+}
+
+// Validate inspects the fields of the type to determine if they are valid.
+func (s *CidrAuthorizationContext) Validate() error {
+ invalidParams := request.ErrInvalidParams{Context: "CidrAuthorizationContext"}
+ if s.Message == nil {
+ invalidParams.Add(request.NewErrParamRequired("Message"))
+ }
+ if s.Signature == nil {
+ invalidParams.Add(request.NewErrParamRequired("Signature"))
+ }
+
+ if invalidParams.Len() > 0 {
+ return invalidParams
+ }
+ return nil
+}
+
+// SetMessage sets the Message field's value.
+func (s *CidrAuthorizationContext) SetMessage(v string) *CidrAuthorizationContext {
+ s.Message = &v
+ return s
+}
+
+// SetSignature sets the Signature field's value.
+func (s *CidrAuthorizationContext) SetSignature(v string) *CidrAuthorizationContext {
+ s.Signature = &v
+ return s
+}
+
// Describes an IPv4 CIDR block.
type CidrBlock struct {
_ struct{} `type:"structure"`
@@ -26342,9 +32029,7 @@ type ClassicLoadBalancer struct {
_ struct{} `type:"structure"`
// The name of the load balancer.
- //
- // Name is a required field
- Name *string `locationName:"name" type:"string" required:"true"`
+ Name *string `locationName:"name" type:"string"`
}
// String returns the string representation
@@ -26357,19 +32042,6 @@ func (s ClassicLoadBalancer) GoString() string {
return s.String()
}
-// Validate inspects the fields of the type to determine if they are valid.
-func (s *ClassicLoadBalancer) Validate() error {
- invalidParams := request.ErrInvalidParams{Context: "ClassicLoadBalancer"}
- if s.Name == nil {
- invalidParams.Add(request.NewErrParamRequired("Name"))
- }
-
- if invalidParams.Len() > 0 {
- return invalidParams
- }
- return nil
-}
-
// SetName sets the Name field's value.
func (s *ClassicLoadBalancer) SetName(v string) *ClassicLoadBalancer {
s.Name = &v
@@ -26382,9 +32054,7 @@ type ClassicLoadBalancersConfig struct {
_ struct{} `type:"structure"`
// One or more Classic Load Balancers.
- //
- // ClassicLoadBalancers is a required field
- ClassicLoadBalancers []*ClassicLoadBalancer `locationName:"classicLoadBalancers" locationNameList:"item" min:"1" type:"list" required:"true"`
+ ClassicLoadBalancers []*ClassicLoadBalancer `locationName:"classicLoadBalancers" locationNameList:"item" min:"1" type:"list"`
}
// String returns the string representation
@@ -26400,22 +32070,9 @@ func (s ClassicLoadBalancersConfig) GoString() string {
// Validate inspects the fields of the type to determine if they are valid.
func (s *ClassicLoadBalancersConfig) Validate() error {
invalidParams := request.ErrInvalidParams{Context: "ClassicLoadBalancersConfig"}
- if s.ClassicLoadBalancers == nil {
- invalidParams.Add(request.NewErrParamRequired("ClassicLoadBalancers"))
- }
if s.ClassicLoadBalancers != nil && len(s.ClassicLoadBalancers) < 1 {
invalidParams.Add(request.NewErrParamMinLen("ClassicLoadBalancers", 1))
}
- if s.ClassicLoadBalancers != nil {
- for i, v := range s.ClassicLoadBalancers {
- if v == nil {
- continue
- }
- if err := v.Validate(); err != nil {
- invalidParams.AddNested(fmt.Sprintf("%s[%v]", "ClassicLoadBalancers", i), err.(request.ErrInvalidParams))
- }
- }
- }
if invalidParams.Len() > 0 {
return invalidParams
@@ -26429,6 +32086,40 @@ func (s *ClassicLoadBalancersConfig) SetClassicLoadBalancers(v []*ClassicLoadBal
return s
}
+// Describes the state of a client certificate revocation list.
+type ClientCertificateRevocationListStatus struct {
+ _ struct{} `type:"structure"`
+
+ // The state of the client certificate revocation list.
+ Code *string `locationName:"code" type:"string" enum:"ClientCertificateRevocationListStatusCode"`
+
+ // A message about the status of the client certificate revocation list, if
+ // applicable.
+ Message *string `locationName:"message" type:"string"`
+}
+
+// String returns the string representation
+func (s ClientCertificateRevocationListStatus) String() string {
+ return awsutil.Prettify(s)
+}
+
+// GoString returns the string representation
+func (s ClientCertificateRevocationListStatus) GoString() string {
+ return s.String()
+}
+
+// SetCode sets the Code field's value.
+func (s *ClientCertificateRevocationListStatus) SetCode(v string) *ClientCertificateRevocationListStatus {
+ s.Code = &v
+ return s
+}
+
+// SetMessage sets the Message field's value.
+func (s *ClientCertificateRevocationListStatus) SetMessage(v string) *ClientCertificateRevocationListStatus {
+ s.Message = &v
+ return s
+}
+
// Describes the client-specific data.
type ClientData struct {
_ struct{} `type:"structure"`
@@ -26437,13 +32128,13 @@ type ClientData struct {
Comment *string `type:"string"`
// The time that the disk upload ends.
- UploadEnd *time.Time `type:"timestamp" timestampFormat:"iso8601"`
+ UploadEnd *time.Time `type:"timestamp"`
// The size of the uploaded disk image, in GiB.
UploadSize *float64 `type:"double"`
// The time that the disk upload starts.
- UploadStart *time.Time `type:"timestamp" timestampFormat:"iso8601"`
+ UploadStart *time.Time `type:"timestamp"`
}
// String returns the string representation
@@ -26480,7 +32171,606 @@ func (s *ClientData) SetUploadStart(v time.Time) *ClientData {
return s
}
-// Contains the parameters for ConfirmProductInstance.
+// Describes the authentication methods used by a Client VPN endpoint. Client
+// VPN supports Active Directory and mutual authentication. For more information,
+// see Authentication (vpn/latest/clientvpn-admin/authentication-authrization.html#client-authentication)
+// in the AWS Client VPN Admin Guide.
+type ClientVpnAuthentication struct {
+ _ struct{} `type:"structure"`
+
+ // Information about the Active Directory, if applicable.
+ ActiveDirectory *DirectoryServiceAuthentication `locationName:"activeDirectory" type:"structure"`
+
+ // Information about the authentication certificates, if applicable.
+ MutualAuthentication *CertificateAuthentication `locationName:"mutualAuthentication" type:"structure"`
+
+ // The authentication type used.
+ Type *string `locationName:"type" type:"string" enum:"ClientVpnAuthenticationType"`
+}
+
+// String returns the string representation
+func (s ClientVpnAuthentication) String() string {
+ return awsutil.Prettify(s)
+}
+
+// GoString returns the string representation
+func (s ClientVpnAuthentication) GoString() string {
+ return s.String()
+}
+
+// SetActiveDirectory sets the ActiveDirectory field's value.
+func (s *ClientVpnAuthentication) SetActiveDirectory(v *DirectoryServiceAuthentication) *ClientVpnAuthentication {
+ s.ActiveDirectory = v
+ return s
+}
+
+// SetMutualAuthentication sets the MutualAuthentication field's value.
+func (s *ClientVpnAuthentication) SetMutualAuthentication(v *CertificateAuthentication) *ClientVpnAuthentication {
+ s.MutualAuthentication = v
+ return s
+}
+
+// SetType sets the Type field's value.
+func (s *ClientVpnAuthentication) SetType(v string) *ClientVpnAuthentication {
+ s.Type = &v
+ return s
+}
+
+// Describes the authentication method to be used by a Client VPN endpoint.
+// Client VPN supports Active Directory and mutual authentication. For more
+// information, see Authentication (vpn/latest/clientvpn-admin/authentication-authrization.html#client-authentication)
+// in the AWS Client VPN Admin Guide.
+type ClientVpnAuthenticationRequest struct {
+ _ struct{} `type:"structure"`
+
+ // Information about the Active Directory to be used, if applicable. You must
+ // provide this information if Type is directory-service-authentication.
+ ActiveDirectory *DirectoryServiceAuthenticationRequest `type:"structure"`
+
+ // Information about the authentication certificates to be used, if applicable.
+ // You must provide this information if Type is certificate-authentication.
+ MutualAuthentication *CertificateAuthenticationRequest `type:"structure"`
+
+ // The type of client authentication to be used. Specify certificate-authentication
+ // to use certificate-based authentication, or directory-service-authentication
+ // to use Active Directory authentication.
+ Type *string `type:"string" enum:"ClientVpnAuthenticationType"`
+}
+
+// String returns the string representation
+func (s ClientVpnAuthenticationRequest) String() string {
+ return awsutil.Prettify(s)
+}
+
+// GoString returns the string representation
+func (s ClientVpnAuthenticationRequest) GoString() string {
+ return s.String()
+}
+
+// SetActiveDirectory sets the ActiveDirectory field's value.
+func (s *ClientVpnAuthenticationRequest) SetActiveDirectory(v *DirectoryServiceAuthenticationRequest) *ClientVpnAuthenticationRequest {
+ s.ActiveDirectory = v
+ return s
+}
+
+// SetMutualAuthentication sets the MutualAuthentication field's value.
+func (s *ClientVpnAuthenticationRequest) SetMutualAuthentication(v *CertificateAuthenticationRequest) *ClientVpnAuthenticationRequest {
+ s.MutualAuthentication = v
+ return s
+}
+
+// SetType sets the Type field's value.
+func (s *ClientVpnAuthenticationRequest) SetType(v string) *ClientVpnAuthenticationRequest {
+ s.Type = &v
+ return s
+}
+
+// Describes the state of an authorization rule.
+type ClientVpnAuthorizationRuleStatus struct {
+ _ struct{} `type:"structure"`
+
+ // The state of the authorization rule.
+ Code *string `locationName:"code" type:"string" enum:"ClientVpnAuthorizationRuleStatusCode"`
+
+ // A message about the status of the authorization rule, if applicable.
+ Message *string `locationName:"message" type:"string"`
+}
+
+// String returns the string representation
+func (s ClientVpnAuthorizationRuleStatus) String() string {
+ return awsutil.Prettify(s)
+}
+
+// GoString returns the string representation
+func (s ClientVpnAuthorizationRuleStatus) GoString() string {
+ return s.String()
+}
+
+// SetCode sets the Code field's value.
+func (s *ClientVpnAuthorizationRuleStatus) SetCode(v string) *ClientVpnAuthorizationRuleStatus {
+ s.Code = &v
+ return s
+}
+
+// SetMessage sets the Message field's value.
+func (s *ClientVpnAuthorizationRuleStatus) SetMessage(v string) *ClientVpnAuthorizationRuleStatus {
+ s.Message = &v
+ return s
+}
+
+// Describes a client connection.
+type ClientVpnConnection struct {
+ _ struct{} `type:"structure"`
+
+ // The IP address of the client.
+ ClientIp *string `locationName:"clientIp" type:"string"`
+
+ // The ID of the Client VPN endpoint to which the client is connected.
+ ClientVpnEndpointId *string `locationName:"clientVpnEndpointId" type:"string"`
+
+ // The common name associated with the client. This is either the name of the
+ // client certificate, or the Active Directory user name.
+ CommonName *string `locationName:"commonName" type:"string"`
+
+ // The date and time the client connection was terminated.
+ ConnectionEndTime *string `locationName:"connectionEndTime" type:"string"`
+
+ // The date and time the client connection was established.
+ ConnectionEstablishedTime *string `locationName:"connectionEstablishedTime" type:"string"`
+
+ // The ID of the client connection.
+ ConnectionId *string `locationName:"connectionId" type:"string"`
+
+ // The number of bytes received by the client.
+ EgressBytes *string `locationName:"egressBytes" type:"string"`
+
+ // The number of packets received by the client.
+ EgressPackets *string `locationName:"egressPackets" type:"string"`
+
+ // The number of bytes sent by the client.
+ IngressBytes *string `locationName:"ingressBytes" type:"string"`
+
+ // The number of packets sent by the client.
+ IngressPackets *string `locationName:"ingressPackets" type:"string"`
+
+ // The current state of the client connection.
+ Status *ClientVpnConnectionStatus `locationName:"status" type:"structure"`
+
+ // The current date and time.
+ Timestamp *string `locationName:"timestamp" type:"string"`
+
+ // The username of the client who established the client connection. This information
+ // is only provided if Active Directory client authentication is used.
+ Username *string `locationName:"username" type:"string"`
+}
+
+// String returns the string representation
+func (s ClientVpnConnection) String() string {
+ return awsutil.Prettify(s)
+}
+
+// GoString returns the string representation
+func (s ClientVpnConnection) GoString() string {
+ return s.String()
+}
+
+// SetClientIp sets the ClientIp field's value.
+func (s *ClientVpnConnection) SetClientIp(v string) *ClientVpnConnection {
+ s.ClientIp = &v
+ return s
+}
+
+// SetClientVpnEndpointId sets the ClientVpnEndpointId field's value.
+func (s *ClientVpnConnection) SetClientVpnEndpointId(v string) *ClientVpnConnection {
+ s.ClientVpnEndpointId = &v
+ return s
+}
+
+// SetCommonName sets the CommonName field's value.
+func (s *ClientVpnConnection) SetCommonName(v string) *ClientVpnConnection {
+ s.CommonName = &v
+ return s
+}
+
+// SetConnectionEndTime sets the ConnectionEndTime field's value.
+func (s *ClientVpnConnection) SetConnectionEndTime(v string) *ClientVpnConnection {
+ s.ConnectionEndTime = &v
+ return s
+}
+
+// SetConnectionEstablishedTime sets the ConnectionEstablishedTime field's value.
+func (s *ClientVpnConnection) SetConnectionEstablishedTime(v string) *ClientVpnConnection {
+ s.ConnectionEstablishedTime = &v
+ return s
+}
+
+// SetConnectionId sets the ConnectionId field's value.
+func (s *ClientVpnConnection) SetConnectionId(v string) *ClientVpnConnection {
+ s.ConnectionId = &v
+ return s
+}
+
+// SetEgressBytes sets the EgressBytes field's value.
+func (s *ClientVpnConnection) SetEgressBytes(v string) *ClientVpnConnection {
+ s.EgressBytes = &v
+ return s
+}
+
+// SetEgressPackets sets the EgressPackets field's value.
+func (s *ClientVpnConnection) SetEgressPackets(v string) *ClientVpnConnection {
+ s.EgressPackets = &v
+ return s
+}
+
+// SetIngressBytes sets the IngressBytes field's value.
+func (s *ClientVpnConnection) SetIngressBytes(v string) *ClientVpnConnection {
+ s.IngressBytes = &v
+ return s
+}
+
+// SetIngressPackets sets the IngressPackets field's value.
+func (s *ClientVpnConnection) SetIngressPackets(v string) *ClientVpnConnection {
+ s.IngressPackets = &v
+ return s
+}
+
+// SetStatus sets the Status field's value.
+func (s *ClientVpnConnection) SetStatus(v *ClientVpnConnectionStatus) *ClientVpnConnection {
+ s.Status = v
+ return s
+}
+
+// SetTimestamp sets the Timestamp field's value.
+func (s *ClientVpnConnection) SetTimestamp(v string) *ClientVpnConnection {
+ s.Timestamp = &v
+ return s
+}
+
+// SetUsername sets the Username field's value.
+func (s *ClientVpnConnection) SetUsername(v string) *ClientVpnConnection {
+ s.Username = &v
+ return s
+}
+
+// Describes the status of a client connection.
+type ClientVpnConnectionStatus struct {
+ _ struct{} `type:"structure"`
+
+ // The state of the client connection.
+ Code *string `locationName:"code" type:"string" enum:"ClientVpnConnectionStatusCode"`
+
+ // A message about the status of the client connection, if applicable.
+ Message *string `locationName:"message" type:"string"`
+}
+
+// String returns the string representation
+func (s ClientVpnConnectionStatus) String() string {
+ return awsutil.Prettify(s)
+}
+
+// GoString returns the string representation
+func (s ClientVpnConnectionStatus) GoString() string {
+ return s.String()
+}
+
+// SetCode sets the Code field's value.
+func (s *ClientVpnConnectionStatus) SetCode(v string) *ClientVpnConnectionStatus {
+ s.Code = &v
+ return s
+}
+
+// SetMessage sets the Message field's value.
+func (s *ClientVpnConnectionStatus) SetMessage(v string) *ClientVpnConnectionStatus {
+ s.Message = &v
+ return s
+}
+
+// Describes a Client VPN endpoint.
+type ClientVpnEndpoint struct {
+ _ struct{} `type:"structure"`
+
+ // Information about the associated target networks. A target network is a subnet
+ // in a VPC.
+ AssociatedTargetNetworks []*AssociatedTargetNetwork `locationName:"associatedTargetNetwork" locationNameList:"item" type:"list"`
+
+ // Information about the authentication method used by the Client VPN endpoint.
+ AuthenticationOptions []*ClientVpnAuthentication `locationName:"authenticationOptions" locationNameList:"item" type:"list"`
+
+ // The IPv4 address range, in CIDR notation, from which client IP addresses
+ // are assigned.
+ ClientCidrBlock *string `locationName:"clientCidrBlock" type:"string"`
+
+ // The ID of the Client VPN endpoint.
+ ClientVpnEndpointId *string `locationName:"clientVpnEndpointId" type:"string"`
+
+ // Information about the client connection logging options for the Client VPN
+ // endpoint.
+ ConnectionLogOptions *ConnectionLogResponseOptions `locationName:"connectionLogOptions" type:"structure"`
+
+ // The date and time the Client VPN endpoint was created.
+ CreationTime *string `locationName:"creationTime" type:"string"`
+
+ // The date and time the Client VPN endpoint was deleted, if applicable. Information
+ // about deleted Client VPN endpoints is retained for 24 hours, unless a new
+ // Client VPN is created with the same name.
+ DeletionTime *string `locationName:"deletionTime" type:"string"`
+
+ // A brief description of the endpoint.
+ Description *string `locationName:"description" type:"string"`
+
+ // The DNS name to be used by clients when establishing a connection.
+ DnsName *string `locationName:"dnsName" type:"string"`
+
+ // The ARN of the server certificate.
+ ServerCertificateArn *string `locationName:"serverCertificateArn" type:"string"`
+
+ // Indicates whether VPN split tunneling is supported.
+ SplitTunnel *bool `locationName:"splitTunnel" type:"boolean"`
+
+ // The current state of the Client VPN endpoint.
+ Status *ClientVpnEndpointStatus `locationName:"status" type:"structure"`
+
+ // The transport protocol used by the Client VPN endpoint.
+ TransportProtocol *string `locationName:"transportProtocol" type:"string" enum:"TransportProtocol"`
+
+ // The protocol used by the VPN session.
+ VpnProtocol *string `locationName:"vpnProtocol" type:"string" enum:"VpnProtocol"`
+}
+
+// String returns the string representation
+func (s ClientVpnEndpoint) String() string {
+ return awsutil.Prettify(s)
+}
+
+// GoString returns the string representation
+func (s ClientVpnEndpoint) GoString() string {
+ return s.String()
+}
+
+// SetAssociatedTargetNetworks sets the AssociatedTargetNetworks field's value.
+func (s *ClientVpnEndpoint) SetAssociatedTargetNetworks(v []*AssociatedTargetNetwork) *ClientVpnEndpoint {
+ s.AssociatedTargetNetworks = v
+ return s
+}
+
+// SetAuthenticationOptions sets the AuthenticationOptions field's value.
+func (s *ClientVpnEndpoint) SetAuthenticationOptions(v []*ClientVpnAuthentication) *ClientVpnEndpoint {
+ s.AuthenticationOptions = v
+ return s
+}
+
+// SetClientCidrBlock sets the ClientCidrBlock field's value.
+func (s *ClientVpnEndpoint) SetClientCidrBlock(v string) *ClientVpnEndpoint {
+ s.ClientCidrBlock = &v
+ return s
+}
+
+// SetClientVpnEndpointId sets the ClientVpnEndpointId field's value.
+func (s *ClientVpnEndpoint) SetClientVpnEndpointId(v string) *ClientVpnEndpoint {
+ s.ClientVpnEndpointId = &v
+ return s
+}
+
+// SetConnectionLogOptions sets the ConnectionLogOptions field's value.
+func (s *ClientVpnEndpoint) SetConnectionLogOptions(v *ConnectionLogResponseOptions) *ClientVpnEndpoint {
+ s.ConnectionLogOptions = v
+ return s
+}
+
+// SetCreationTime sets the CreationTime field's value.
+func (s *ClientVpnEndpoint) SetCreationTime(v string) *ClientVpnEndpoint {
+ s.CreationTime = &v
+ return s
+}
+
+// SetDeletionTime sets the DeletionTime field's value.
+func (s *ClientVpnEndpoint) SetDeletionTime(v string) *ClientVpnEndpoint {
+ s.DeletionTime = &v
+ return s
+}
+
+// SetDescription sets the Description field's value.
+func (s *ClientVpnEndpoint) SetDescription(v string) *ClientVpnEndpoint {
+ s.Description = &v
+ return s
+}
+
+// SetDnsName sets the DnsName field's value.
+func (s *ClientVpnEndpoint) SetDnsName(v string) *ClientVpnEndpoint {
+ s.DnsName = &v
+ return s
+}
+
+// SetServerCertificateArn sets the ServerCertificateArn field's value.
+func (s *ClientVpnEndpoint) SetServerCertificateArn(v string) *ClientVpnEndpoint {
+ s.ServerCertificateArn = &v
+ return s
+}
+
+// SetSplitTunnel sets the SplitTunnel field's value.
+func (s *ClientVpnEndpoint) SetSplitTunnel(v bool) *ClientVpnEndpoint {
+ s.SplitTunnel = &v
+ return s
+}
+
+// SetStatus sets the Status field's value.
+func (s *ClientVpnEndpoint) SetStatus(v *ClientVpnEndpointStatus) *ClientVpnEndpoint {
+ s.Status = v
+ return s
+}
+
+// SetTransportProtocol sets the TransportProtocol field's value.
+func (s *ClientVpnEndpoint) SetTransportProtocol(v string) *ClientVpnEndpoint {
+ s.TransportProtocol = &v
+ return s
+}
+
+// SetVpnProtocol sets the VpnProtocol field's value.
+func (s *ClientVpnEndpoint) SetVpnProtocol(v string) *ClientVpnEndpoint {
+ s.VpnProtocol = &v
+ return s
+}
+
+// Describes the state of a Client VPN endpoint.
+type ClientVpnEndpointStatus struct {
+ _ struct{} `type:"structure"`
+
+ // The state of the Client VPN endpoint. Possible states include:
+ //
+ // * pending-associate - The Client VPN endpoint has been created but no
+ // target networks have been associated. The Client VPN endpoint cannot accept
+ // connections.
+ //
+ // * available - The Client VPN endpoint has been created and a target network
+ // has been associated. The Client VPN endpoint can accept connections.
+ //
+ // * deleting - The Client VPN endpoint is being deleted. The Client VPN
+ // endpoint cannot accept connections.
+ //
+ // * deleted - The Client VPN endpoint has been deleted. The Client VPN endpoint
+ // cannot accept connections.
+ Code *string `locationName:"code" type:"string" enum:"ClientVpnEndpointStatusCode"`
+
+ // A message about the status of the Client VPN endpoint.
+ Message *string `locationName:"message" type:"string"`
+}
+
+// String returns the string representation
+func (s ClientVpnEndpointStatus) String() string {
+ return awsutil.Prettify(s)
+}
+
+// GoString returns the string representation
+func (s ClientVpnEndpointStatus) GoString() string {
+ return s.String()
+}
+
+// SetCode sets the Code field's value.
+func (s *ClientVpnEndpointStatus) SetCode(v string) *ClientVpnEndpointStatus {
+ s.Code = &v
+ return s
+}
+
+// SetMessage sets the Message field's value.
+func (s *ClientVpnEndpointStatus) SetMessage(v string) *ClientVpnEndpointStatus {
+ s.Message = &v
+ return s
+}
+
+// Information about a Client VPN endpoint route.
+type ClientVpnRoute struct {
+ _ struct{} `type:"structure"`
+
+ // The ID of the Client VPN endpoint with which the route is associated.
+ ClientVpnEndpointId *string `locationName:"clientVpnEndpointId" type:"string"`
+
+ // A brief description of the route.
+ Description *string `locationName:"description" type:"string"`
+
+ // The IPv4 address range, in CIDR notation, of the route destination.
+ DestinationCidr *string `locationName:"destinationCidr" type:"string"`
+
+ // Indicates how the route was associated with the Client VPN endpoint. associate
+ // indicates that the route was automatically added when the target network
+ // was associated with the Client VPN endpoint. add-route indicates that the
+ // route was manually added using the CreateClientVpnRoute action.
+ Origin *string `locationName:"origin" type:"string"`
+
+ // The current state of the route.
+ Status *ClientVpnRouteStatus `locationName:"status" type:"structure"`
+
+ // The ID of the subnet through which traffic is routed.
+ TargetSubnet *string `locationName:"targetSubnet" type:"string"`
+
+ // The route type.
+ Type *string `locationName:"type" type:"string"`
+}
+
+// String returns the string representation
+func (s ClientVpnRoute) String() string {
+ return awsutil.Prettify(s)
+}
+
+// GoString returns the string representation
+func (s ClientVpnRoute) GoString() string {
+ return s.String()
+}
+
+// SetClientVpnEndpointId sets the ClientVpnEndpointId field's value.
+func (s *ClientVpnRoute) SetClientVpnEndpointId(v string) *ClientVpnRoute {
+ s.ClientVpnEndpointId = &v
+ return s
+}
+
+// SetDescription sets the Description field's value.
+func (s *ClientVpnRoute) SetDescription(v string) *ClientVpnRoute {
+ s.Description = &v
+ return s
+}
+
+// SetDestinationCidr sets the DestinationCidr field's value.
+func (s *ClientVpnRoute) SetDestinationCidr(v string) *ClientVpnRoute {
+ s.DestinationCidr = &v
+ return s
+}
+
+// SetOrigin sets the Origin field's value.
+func (s *ClientVpnRoute) SetOrigin(v string) *ClientVpnRoute {
+ s.Origin = &v
+ return s
+}
+
+// SetStatus sets the Status field's value.
+func (s *ClientVpnRoute) SetStatus(v *ClientVpnRouteStatus) *ClientVpnRoute {
+ s.Status = v
+ return s
+}
+
+// SetTargetSubnet sets the TargetSubnet field's value.
+func (s *ClientVpnRoute) SetTargetSubnet(v string) *ClientVpnRoute {
+ s.TargetSubnet = &v
+ return s
+}
+
+// SetType sets the Type field's value.
+func (s *ClientVpnRoute) SetType(v string) *ClientVpnRoute {
+ s.Type = &v
+ return s
+}
+
+// Describes the state of a Client VPN endpoint route.
+type ClientVpnRouteStatus struct {
+ _ struct{} `type:"structure"`
+
+ // The state of the Client VPN endpoint route.
+ Code *string `locationName:"code" type:"string" enum:"ClientVpnRouteStatusCode"`
+
+ // A message about the status of the Client VPN endpoint route, if applicable.
+ Message *string `locationName:"message" type:"string"`
+}
+
+// String returns the string representation
+func (s ClientVpnRouteStatus) String() string {
+ return awsutil.Prettify(s)
+}
+
+// GoString returns the string representation
+func (s ClientVpnRouteStatus) GoString() string {
+ return s.String()
+}
+
+// SetCode sets the Code field's value.
+func (s *ClientVpnRouteStatus) SetCode(v string) *ClientVpnRouteStatus {
+ s.Code = &v
+ return s
+}
+
+// SetMessage sets the Message field's value.
+func (s *ClientVpnRouteStatus) SetMessage(v string) *ClientVpnRouteStatus {
+ s.Message = &v
+ return s
+}
+
type ConfirmProductInstanceInput struct {
_ struct{} `type:"structure"`
@@ -26545,7 +32835,6 @@ func (s *ConfirmProductInstanceInput) SetProductCode(v string) *ConfirmProductIn
return s
}
-// Contains the output of ConfirmProductInstance.
type ConfirmProductInstanceOutput struct {
_ struct{} `type:"structure"`
@@ -26580,6 +32869,95 @@ func (s *ConfirmProductInstanceOutput) SetReturn(v bool) *ConfirmProductInstance
return s
}
+// Describes the client connection logging options for the Client VPN endpoint.
+type ConnectionLogOptions struct {
+ _ struct{} `type:"structure"`
+
+ // The name of the CloudWatch Logs log group.
+ CloudwatchLogGroup *string `type:"string"`
+
+ // The name of the CloudWatch Logs log stream to which the connection data is
+ // published.
+ CloudwatchLogStream *string `type:"string"`
+
+ // Indicates whether connection logging is enabled.
+ Enabled *bool `type:"boolean"`
+}
+
+// String returns the string representation
+func (s ConnectionLogOptions) String() string {
+ return awsutil.Prettify(s)
+}
+
+// GoString returns the string representation
+func (s ConnectionLogOptions) GoString() string {
+ return s.String()
+}
+
+// SetCloudwatchLogGroup sets the CloudwatchLogGroup field's value.
+func (s *ConnectionLogOptions) SetCloudwatchLogGroup(v string) *ConnectionLogOptions {
+ s.CloudwatchLogGroup = &v
+ return s
+}
+
+// SetCloudwatchLogStream sets the CloudwatchLogStream field's value.
+func (s *ConnectionLogOptions) SetCloudwatchLogStream(v string) *ConnectionLogOptions {
+ s.CloudwatchLogStream = &v
+ return s
+}
+
+// SetEnabled sets the Enabled field's value.
+func (s *ConnectionLogOptions) SetEnabled(v bool) *ConnectionLogOptions {
+ s.Enabled = &v
+ return s
+}
+
+// Information about the client connection logging options for a Client VPN
+// endpoint.
+type ConnectionLogResponseOptions struct {
+ _ struct{} `type:"structure"`
+
+ // The name of the Amazon CloudWatch Logs log group to which connection logging
+ // data is published.
+ CloudwatchLogGroup *string `type:"string"`
+
+ // The name of the Amazon CloudWatch Logs log stream to which connection logging
+ // data is published.
+ CloudwatchLogStream *string `type:"string"`
+
+ // Indicates whether client connection logging is enabled for the Client VPN
+ // endpoint.
+ Enabled *bool `type:"boolean"`
+}
+
+// String returns the string representation
+func (s ConnectionLogResponseOptions) String() string {
+ return awsutil.Prettify(s)
+}
+
+// GoString returns the string representation
+func (s ConnectionLogResponseOptions) GoString() string {
+ return s.String()
+}
+
+// SetCloudwatchLogGroup sets the CloudwatchLogGroup field's value.
+func (s *ConnectionLogResponseOptions) SetCloudwatchLogGroup(v string) *ConnectionLogResponseOptions {
+ s.CloudwatchLogGroup = &v
+ return s
+}
+
+// SetCloudwatchLogStream sets the CloudwatchLogStream field's value.
+func (s *ConnectionLogResponseOptions) SetCloudwatchLogStream(v string) *ConnectionLogResponseOptions {
+ s.CloudwatchLogStream = &v
+ return s
+}
+
+// SetEnabled sets the Enabled field's value.
+func (s *ConnectionLogResponseOptions) SetEnabled(v bool) *ConnectionLogResponseOptions {
+ s.Enabled = &v
+ return s
+}
+
// Describes a connection notification for a VPC endpoint or VPC endpoint service.
type ConnectionNotification struct {
_ struct{} `type:"structure"`
@@ -26874,10 +33252,12 @@ type CopyImageInput struct {
DryRun *bool `locationName:"dryRun" type:"boolean"`
// Specifies whether the destination snapshots of the copied image should be
- // encrypted. The default CMK for EBS is used unless a non-default AWS Key Management
- // Service (AWS KMS) CMK is specified with KmsKeyId. For more information, see
- // Amazon EBS Encryption (http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSEncryption.html)
- // in the Amazon Elastic Compute Cloud User Guide.
+ // encrypted. You can encrypt a copy of an unencrypted snapshot, but you cannot
+ // create an unencrypted copy of an encrypted snapshot. The default CMK for
+ // EBS is used unless you specify a non-default AWS Key Management Service (AWS
+ // KMS) CMK using KmsKeyId. For more information, see Amazon EBS Encryption
+ // (http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSEncryption.html) in
+ // the Amazon Elastic Compute Cloud User Guide.
Encrypted *bool `locationName:"encrypted" type:"boolean"`
// An identifier for the AWS Key Management Service (AWS KMS) customer master
@@ -27038,10 +33418,10 @@ type CopySnapshotInput struct {
// copy operation. This parameter is only valid for specifying the destination
// region in a PresignedUrl parameter, where it is required.
//
- // CopySnapshot sends the snapshot copy to the regional endpoint that you send
- // the HTTP request to, such as ec2.us-east-1.amazonaws.com (in the AWS CLI,
- // this is specified with the --region parameter or the default region in your
- // AWS configuration file).
+ // The snapshot copy is sent to the regional endpoint that you sent the HTTP
+ // request to (for example, ec2.us-east-1.amazonaws.com). With the AWS CLI,
+ // this is specified using the --region parameter or the default region in your
+ // AWS configuration file.
DestinationRegion *string `locationName:"destinationRegion" type:"string"`
// Checks whether you have the required permissions for the action, without
@@ -27051,12 +33431,11 @@ type CopySnapshotInput struct {
DryRun *bool `locationName:"dryRun" type:"boolean"`
// Specifies whether the destination snapshot should be encrypted. You can encrypt
- // a copy of an unencrypted snapshot using this flag, but you cannot use it
- // to create an unencrypted copy from an encrypted snapshot. Your default CMK
- // for EBS is used unless a non-default AWS Key Management Service (AWS KMS)
- // CMK is specified with KmsKeyId. For more information, see Amazon EBS Encryption
- // (http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSEncryption.html) in
- // the Amazon Elastic Compute Cloud User Guide.
+ // a copy of an unencrypted snapshot, but you cannot use it to create an unencrypted
+ // copy of an encrypted snapshot. Your default CMK for EBS is used unless you
+ // specify a non-default AWS Key Management Service (AWS KMS) CMK using KmsKeyId.
+ // For more information, see Amazon EBS Encryption (http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSEncryption.html)
+ // in the Amazon Elastic Compute Cloud User Guide.
Encrypted *bool `locationName:"encrypted" type:"boolean"`
// An identifier for the AWS Key Management Service (AWS KMS) customer master
@@ -27279,6 +33658,554 @@ func (s *CpuOptionsRequest) SetThreadsPerCore(v int64) *CpuOptionsRequest {
return s
}
+type CreateCapacityReservationInput struct {
+ _ struct{} `type:"structure"`
+
+ // The Availability Zone in which to create the Capacity Reservation.
+ //
+ // AvailabilityZone is a required field
+ AvailabilityZone *string `type:"string" required:"true"`
+
+ // Unique, case-sensitive identifier that you provide to ensure the idempotency
+ // of the request. For more information, see How to Ensure Idempotency (http://docs.aws.amazon.com/AWSEC2/latest/APIReference/Run_Instance_Idempotency.html).
+ //
+ // Constraint: Maximum 64 ASCII characters.
+ ClientToken *string `type:"string"`
+
+ // Checks whether you have the required permissions for the action, without
+ // actually making the request, and provides an error response. If you have
+ // the required permissions, the error response is DryRunOperation. Otherwise,
+ // it is UnauthorizedOperation.
+ DryRun *bool `type:"boolean"`
+
+ // Indicates whether the Capacity Reservation supports EBS-optimized instances.
+ // This optimization provides dedicated throughput to Amazon EBS and an optimized
+ // configuration stack to provide optimal I/O performance. This optimization
+ // isn't available with all instance types. Additional usage charges apply when
+ // using an EBS- optimized instance.
+ EbsOptimized *bool `type:"boolean"`
+
+ // The date and time at which the Capacity Reservation expires. When a Capacity
+ // Reservation expires, the reserved capacity is released and you can no longer
+ // launch instances into it. The Capacity Reservation's state changes to expired
+ // when it reaches its end date and time.
+ //
+ // You must provide an EndDate value if EndDateType is limited. Omit EndDate
+ // if EndDateType is unlimited.
+ //
+ // If the EndDateType is limited, the Capacity Reservation is cancelled within
+ // an hour from the specified time. For example, if you specify 5/31/2019, 13:30:55,
+ // the Capacity Reservation is guaranteed to end between 13:30:55 and 14:30:55
+ // on 5/31/2019.
+ EndDate *time.Time `type:"timestamp"`
+
+ // Indicates the way in which the Capacity Reservation ends. A Capacity Reservation
+ // can have one of the following end types:
+ //
+ // * unlimited - The Capacity Reservation remains active until you explicitly
+ // cancel it. Do not provide an EndDate if the EndDateType is unlimited.
+ //
+ // * limited - The Capacity Reservation expires automatically at a specified
+ // date and time. You must provide an EndDate value if the EndDateType value
+ // is limited.
+ EndDateType *string `type:"string" enum:"EndDateType"`
+
+ // Indicates whether the Capacity Reservation supports instances with temporary,
+ // block-level storage.
+ EphemeralStorage *bool `type:"boolean"`
+
+ // The number of instances for which to reserve capacity.
+ //
+ // InstanceCount is a required field
+ InstanceCount *int64 `type:"integer" required:"true"`
+
+ // Indicates the type of instance launches that the Capacity Reservation accepts.
+ // The options include:
+ //
+ // * open - The Capacity Reservation automatically matches all instances
+ // that have matching attributes (instance type, platform, and Availability
+ // Zone). Instances that have matching attributes run in the Capacity Reservation
+ // automatically without specifying any additional parameters.
+ //
+ // * targeted - The Capacity Reservation only accepts instances that have
+ // matching attributes (instance type, platform, and Availability Zone),
+ // and explicitly target the Capacity Reservation. This ensures that only
+ // permitted instances can use the reserved capacity.
+ //
+ // Default: open
+ InstanceMatchCriteria *string `type:"string" enum:"InstanceMatchCriteria"`
+
+ // The type of operating system for which to reserve capacity.
+ //
+ // InstancePlatform is a required field
+ InstancePlatform *string `type:"string" required:"true" enum:"CapacityReservationInstancePlatform"`
+
+ // The instance type for which to reserve capacity. For more information, see
+ // Instance Types (http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-types.html)
+ // in the Amazon Elastic Compute Cloud User Guide.
+ //
+ // InstanceType is a required field
+ InstanceType *string `type:"string" required:"true"`
+
+ // The tags to apply to the Capacity Reservation during launch.
+ TagSpecifications []*TagSpecification `locationNameList:"item" type:"list"`
+
+ // Indicates the tenancy of the Capacity Reservation. A Capacity Reservation
+ // can have one of the following tenancy settings:
+ //
+ // * default - The Capacity Reservation is created on hardware that is shared
+ // with other AWS accounts.
+ //
+ // * dedicated - The Capacity Reservation is created on single-tenant hardware
+ // that is dedicated to a single AWS account.
+ Tenancy *string `type:"string" enum:"CapacityReservationTenancy"`
+}
+
+// String returns the string representation
+func (s CreateCapacityReservationInput) String() string {
+ return awsutil.Prettify(s)
+}
+
+// GoString returns the string representation
+func (s CreateCapacityReservationInput) GoString() string {
+ return s.String()
+}
+
+// Validate inspects the fields of the type to determine if they are valid.
+func (s *CreateCapacityReservationInput) Validate() error {
+ invalidParams := request.ErrInvalidParams{Context: "CreateCapacityReservationInput"}
+ if s.AvailabilityZone == nil {
+ invalidParams.Add(request.NewErrParamRequired("AvailabilityZone"))
+ }
+ if s.InstanceCount == nil {
+ invalidParams.Add(request.NewErrParamRequired("InstanceCount"))
+ }
+ if s.InstancePlatform == nil {
+ invalidParams.Add(request.NewErrParamRequired("InstancePlatform"))
+ }
+ if s.InstanceType == nil {
+ invalidParams.Add(request.NewErrParamRequired("InstanceType"))
+ }
+
+ if invalidParams.Len() > 0 {
+ return invalidParams
+ }
+ return nil
+}
+
+// SetAvailabilityZone sets the AvailabilityZone field's value.
+func (s *CreateCapacityReservationInput) SetAvailabilityZone(v string) *CreateCapacityReservationInput {
+ s.AvailabilityZone = &v
+ return s
+}
+
+// SetClientToken sets the ClientToken field's value.
+func (s *CreateCapacityReservationInput) SetClientToken(v string) *CreateCapacityReservationInput {
+ s.ClientToken = &v
+ return s
+}
+
+// SetDryRun sets the DryRun field's value.
+func (s *CreateCapacityReservationInput) SetDryRun(v bool) *CreateCapacityReservationInput {
+ s.DryRun = &v
+ return s
+}
+
+// SetEbsOptimized sets the EbsOptimized field's value.
+func (s *CreateCapacityReservationInput) SetEbsOptimized(v bool) *CreateCapacityReservationInput {
+ s.EbsOptimized = &v
+ return s
+}
+
+// SetEndDate sets the EndDate field's value.
+func (s *CreateCapacityReservationInput) SetEndDate(v time.Time) *CreateCapacityReservationInput {
+ s.EndDate = &v
+ return s
+}
+
+// SetEndDateType sets the EndDateType field's value.
+func (s *CreateCapacityReservationInput) SetEndDateType(v string) *CreateCapacityReservationInput {
+ s.EndDateType = &v
+ return s
+}
+
+// SetEphemeralStorage sets the EphemeralStorage field's value.
+func (s *CreateCapacityReservationInput) SetEphemeralStorage(v bool) *CreateCapacityReservationInput {
+ s.EphemeralStorage = &v
+ return s
+}
+
+// SetInstanceCount sets the InstanceCount field's value.
+func (s *CreateCapacityReservationInput) SetInstanceCount(v int64) *CreateCapacityReservationInput {
+ s.InstanceCount = &v
+ return s
+}
+
+// SetInstanceMatchCriteria sets the InstanceMatchCriteria field's value.
+func (s *CreateCapacityReservationInput) SetInstanceMatchCriteria(v string) *CreateCapacityReservationInput {
+ s.InstanceMatchCriteria = &v
+ return s
+}
+
+// SetInstancePlatform sets the InstancePlatform field's value.
+func (s *CreateCapacityReservationInput) SetInstancePlatform(v string) *CreateCapacityReservationInput {
+ s.InstancePlatform = &v
+ return s
+}
+
+// SetInstanceType sets the InstanceType field's value.
+func (s *CreateCapacityReservationInput) SetInstanceType(v string) *CreateCapacityReservationInput {
+ s.InstanceType = &v
+ return s
+}
+
+// SetTagSpecifications sets the TagSpecifications field's value.
+func (s *CreateCapacityReservationInput) SetTagSpecifications(v []*TagSpecification) *CreateCapacityReservationInput {
+ s.TagSpecifications = v
+ return s
+}
+
+// SetTenancy sets the Tenancy field's value.
+func (s *CreateCapacityReservationInput) SetTenancy(v string) *CreateCapacityReservationInput {
+ s.Tenancy = &v
+ return s
+}
+
+type CreateCapacityReservationOutput struct {
+ _ struct{} `type:"structure"`
+
+ // Information about the Capacity Reservation.
+ CapacityReservation *CapacityReservation `locationName:"capacityReservation" type:"structure"`
+}
+
+// String returns the string representation
+func (s CreateCapacityReservationOutput) String() string {
+ return awsutil.Prettify(s)
+}
+
+// GoString returns the string representation
+func (s CreateCapacityReservationOutput) GoString() string {
+ return s.String()
+}
+
+// SetCapacityReservation sets the CapacityReservation field's value.
+func (s *CreateCapacityReservationOutput) SetCapacityReservation(v *CapacityReservation) *CreateCapacityReservationOutput {
+ s.CapacityReservation = v
+ return s
+}
+
+type CreateClientVpnEndpointInput struct {
+ _ struct{} `type:"structure"`
+
+ // Information about the authentication method to be used to authenticate clients.
+ //
+ // AuthenticationOptions is a required field
+ AuthenticationOptions []*ClientVpnAuthenticationRequest `locationName:"Authentication" type:"list" required:"true"`
+
+ // The IPv4 address range, in CIDR notation, from which to assign client IP
+ // addresses. The address range cannot overlap with the local CIDR of the VPC
+ // in which the associated subnet is located, or the routes that you add manually.
+ // The address range cannot be changed after the Client VPN endpoint has been
+ // created. The CIDR block should be /22 or greater.
+ //
+ // ClientCidrBlock is a required field
+ ClientCidrBlock *string `type:"string" required:"true"`
+
+ // Unique, case-sensitive identifier you provide to ensure the idempotency of
+ // the request. For more information, see How to Ensure Idempotency (http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Run_Instance_Idempotency.html).
+ ClientToken *string `type:"string" idempotencyToken:"true"`
+
+ // Information about the client connection logging options.
+ //
+ // If you enable client connection logging, data about client connections is
+ // sent to a Cloudwatch Logs log stream. The following information is logged:
+ //
+ // * Client connection requests
+ //
+ // * Client connection results (successful and unsuccessful)
+ //
+ // * Reasons for unsuccessful client connection requests
+ //
+ // * Client connection termination time
+ //
+ // ConnectionLogOptions is a required field
+ ConnectionLogOptions *ConnectionLogOptions `type:"structure" required:"true"`
+
+ // A brief description of the Client VPN endpoint.
+ Description *string `type:"string"`
+
+ // Information about the DNS servers to be used for DNS resolution. A Client
+ // VPN endpoint can have up to two DNS servers. If no DNS server is specified,
+ // the DNS address of the VPC that is to be associated with Client VPN endpoint
+ // is used as the DNS server.
+ DnsServers []*string `locationNameList:"item" type:"list"`
+
+ // Checks whether you have the required permissions for the action, without
+ // actually making the request, and provides an error response. If you have
+ // the required permissions, the error response is DryRunOperation. Otherwise,
+ // it is UnauthorizedOperation.
+ DryRun *bool `type:"boolean"`
+
+ // The ARN of the server certificate. For more information, see the AWS Certificate
+ // Manager User Guide (acm/latest/userguide/acm-overview.html) .
+ //
+ // ServerCertificateArn is a required field
+ ServerCertificateArn *string `type:"string" required:"true"`
+
+ // The transport protocol to be used by the VPN session.
+ //
+ // Default value: udp
+ TransportProtocol *string `type:"string" enum:"TransportProtocol"`
+}
+
+// String returns the string representation
+func (s CreateClientVpnEndpointInput) String() string {
+ return awsutil.Prettify(s)
+}
+
+// GoString returns the string representation
+func (s CreateClientVpnEndpointInput) GoString() string {
+ return s.String()
+}
+
+// Validate inspects the fields of the type to determine if they are valid.
+func (s *CreateClientVpnEndpointInput) Validate() error {
+ invalidParams := request.ErrInvalidParams{Context: "CreateClientVpnEndpointInput"}
+ if s.AuthenticationOptions == nil {
+ invalidParams.Add(request.NewErrParamRequired("AuthenticationOptions"))
+ }
+ if s.ClientCidrBlock == nil {
+ invalidParams.Add(request.NewErrParamRequired("ClientCidrBlock"))
+ }
+ if s.ConnectionLogOptions == nil {
+ invalidParams.Add(request.NewErrParamRequired("ConnectionLogOptions"))
+ }
+ if s.ServerCertificateArn == nil {
+ invalidParams.Add(request.NewErrParamRequired("ServerCertificateArn"))
+ }
+
+ if invalidParams.Len() > 0 {
+ return invalidParams
+ }
+ return nil
+}
+
+// SetAuthenticationOptions sets the AuthenticationOptions field's value.
+func (s *CreateClientVpnEndpointInput) SetAuthenticationOptions(v []*ClientVpnAuthenticationRequest) *CreateClientVpnEndpointInput {
+ s.AuthenticationOptions = v
+ return s
+}
+
+// SetClientCidrBlock sets the ClientCidrBlock field's value.
+func (s *CreateClientVpnEndpointInput) SetClientCidrBlock(v string) *CreateClientVpnEndpointInput {
+ s.ClientCidrBlock = &v
+ return s
+}
+
+// SetClientToken sets the ClientToken field's value.
+func (s *CreateClientVpnEndpointInput) SetClientToken(v string) *CreateClientVpnEndpointInput {
+ s.ClientToken = &v
+ return s
+}
+
+// SetConnectionLogOptions sets the ConnectionLogOptions field's value.
+func (s *CreateClientVpnEndpointInput) SetConnectionLogOptions(v *ConnectionLogOptions) *CreateClientVpnEndpointInput {
+ s.ConnectionLogOptions = v
+ return s
+}
+
+// SetDescription sets the Description field's value.
+func (s *CreateClientVpnEndpointInput) SetDescription(v string) *CreateClientVpnEndpointInput {
+ s.Description = &v
+ return s
+}
+
+// SetDnsServers sets the DnsServers field's value.
+func (s *CreateClientVpnEndpointInput) SetDnsServers(v []*string) *CreateClientVpnEndpointInput {
+ s.DnsServers = v
+ return s
+}
+
+// SetDryRun sets the DryRun field's value.
+func (s *CreateClientVpnEndpointInput) SetDryRun(v bool) *CreateClientVpnEndpointInput {
+ s.DryRun = &v
+ return s
+}
+
+// SetServerCertificateArn sets the ServerCertificateArn field's value.
+func (s *CreateClientVpnEndpointInput) SetServerCertificateArn(v string) *CreateClientVpnEndpointInput {
+ s.ServerCertificateArn = &v
+ return s
+}
+
+// SetTransportProtocol sets the TransportProtocol field's value.
+func (s *CreateClientVpnEndpointInput) SetTransportProtocol(v string) *CreateClientVpnEndpointInput {
+ s.TransportProtocol = &v
+ return s
+}
+
+type CreateClientVpnEndpointOutput struct {
+ _ struct{} `type:"structure"`
+
+ // The ID of the Client VPN endpoint.
+ ClientVpnEndpointId *string `locationName:"clientVpnEndpointId" type:"string"`
+
+ // The DNS name to be used by clients when establishing their VPN session.
+ DnsName *string `locationName:"dnsName" type:"string"`
+
+ // The current state of the Client VPN endpoint.
+ Status *ClientVpnEndpointStatus `locationName:"status" type:"structure"`
+}
+
+// String returns the string representation
+func (s CreateClientVpnEndpointOutput) String() string {
+ return awsutil.Prettify(s)
+}
+
+// GoString returns the string representation
+func (s CreateClientVpnEndpointOutput) GoString() string {
+ return s.String()
+}
+
+// SetClientVpnEndpointId sets the ClientVpnEndpointId field's value.
+func (s *CreateClientVpnEndpointOutput) SetClientVpnEndpointId(v string) *CreateClientVpnEndpointOutput {
+ s.ClientVpnEndpointId = &v
+ return s
+}
+
+// SetDnsName sets the DnsName field's value.
+func (s *CreateClientVpnEndpointOutput) SetDnsName(v string) *CreateClientVpnEndpointOutput {
+ s.DnsName = &v
+ return s
+}
+
+// SetStatus sets the Status field's value.
+func (s *CreateClientVpnEndpointOutput) SetStatus(v *ClientVpnEndpointStatus) *CreateClientVpnEndpointOutput {
+ s.Status = v
+ return s
+}
+
+type CreateClientVpnRouteInput struct {
+ _ struct{} `type:"structure"`
+
+ // The ID of the Client VPN endpoint to which to add the route.
+ //
+ // ClientVpnEndpointId is a required field
+ ClientVpnEndpointId *string `type:"string" required:"true"`
+
+ // A brief description of the route.
+ Description *string `type:"string"`
+
+ // The IPv4 address range, in CIDR notation, of the route destination. For example:
+ //
+ // * To add a route for Internet access, enter 0.0.0.0/0
+ //
+ // * To add a route for a peered VPC, enter the peered VPC's IPv4 CIDR range
+ //
+ // * To add a route for an on-premises network, enter the AWS Site-to-Site
+ // VPN connection's IPv4 CIDR range
+ //
+ // Route address ranges cannot overlap with the CIDR range specified for client
+ // allocation.
+ //
+ // DestinationCidrBlock is a required field
+ DestinationCidrBlock *string `type:"string" required:"true"`
+
+ // Checks whether you have the required permissions for the action, without
+ // actually making the request, and provides an error response. If you have
+ // the required permissions, the error response is DryRunOperation. Otherwise,
+ // it is UnauthorizedOperation.
+ DryRun *bool `type:"boolean"`
+
+ // The ID of the subnet through which you want to route traffic. The specified
+ // subnet must be an existing target network of the Client VPN endpoint.
+ //
+ // TargetVpcSubnetId is a required field
+ TargetVpcSubnetId *string `type:"string" required:"true"`
+}
+
+// String returns the string representation
+func (s CreateClientVpnRouteInput) String() string {
+ return awsutil.Prettify(s)
+}
+
+// GoString returns the string representation
+func (s CreateClientVpnRouteInput) GoString() string {
+ return s.String()
+}
+
+// Validate inspects the fields of the type to determine if they are valid.
+func (s *CreateClientVpnRouteInput) Validate() error {
+ invalidParams := request.ErrInvalidParams{Context: "CreateClientVpnRouteInput"}
+ if s.ClientVpnEndpointId == nil {
+ invalidParams.Add(request.NewErrParamRequired("ClientVpnEndpointId"))
+ }
+ if s.DestinationCidrBlock == nil {
+ invalidParams.Add(request.NewErrParamRequired("DestinationCidrBlock"))
+ }
+ if s.TargetVpcSubnetId == nil {
+ invalidParams.Add(request.NewErrParamRequired("TargetVpcSubnetId"))
+ }
+
+ if invalidParams.Len() > 0 {
+ return invalidParams
+ }
+ return nil
+}
+
+// SetClientVpnEndpointId sets the ClientVpnEndpointId field's value.
+func (s *CreateClientVpnRouteInput) SetClientVpnEndpointId(v string) *CreateClientVpnRouteInput {
+ s.ClientVpnEndpointId = &v
+ return s
+}
+
+// SetDescription sets the Description field's value.
+func (s *CreateClientVpnRouteInput) SetDescription(v string) *CreateClientVpnRouteInput {
+ s.Description = &v
+ return s
+}
+
+// SetDestinationCidrBlock sets the DestinationCidrBlock field's value.
+func (s *CreateClientVpnRouteInput) SetDestinationCidrBlock(v string) *CreateClientVpnRouteInput {
+ s.DestinationCidrBlock = &v
+ return s
+}
+
+// SetDryRun sets the DryRun field's value.
+func (s *CreateClientVpnRouteInput) SetDryRun(v bool) *CreateClientVpnRouteInput {
+ s.DryRun = &v
+ return s
+}
+
+// SetTargetVpcSubnetId sets the TargetVpcSubnetId field's value.
+func (s *CreateClientVpnRouteInput) SetTargetVpcSubnetId(v string) *CreateClientVpnRouteInput {
+ s.TargetVpcSubnetId = &v
+ return s
+}
+
+type CreateClientVpnRouteOutput struct {
+ _ struct{} `type:"structure"`
+
+ // The current state of the route.
+ Status *ClientVpnRouteStatus `locationName:"status" type:"structure"`
+}
+
+// String returns the string representation
+func (s CreateClientVpnRouteOutput) String() string {
+ return awsutil.Prettify(s)
+}
+
+// GoString returns the string representation
+func (s CreateClientVpnRouteOutput) GoString() string {
+ return s.String()
+}
+
+// SetStatus sets the Status field's value.
+func (s *CreateClientVpnRouteOutput) SetStatus(v *ClientVpnRouteStatus) *CreateClientVpnRouteOutput {
+ s.Status = v
+ return s
+}
+
// Contains the parameters for CreateCustomerGateway.
type CreateCustomerGatewayInput struct {
_ struct{} `type:"structure"`
@@ -27458,7 +34385,6 @@ func (s *CreateDefaultSubnetOutput) SetSubnet(v *Subnet) *CreateDefaultSubnetOut
return s
}
-// Contains the parameters for CreateDefaultVpc.
type CreateDefaultVpcInput struct {
_ struct{} `type:"structure"`
@@ -27485,7 +34411,6 @@ func (s *CreateDefaultVpcInput) SetDryRun(v bool) *CreateDefaultVpcInput {
return s
}
-// Contains the output of CreateDefaultVpc.
type CreateDefaultVpcOutput struct {
_ struct{} `type:"structure"`
@@ -27509,7 +34434,6 @@ func (s *CreateDefaultVpcOutput) SetVpc(v *Vpc) *CreateDefaultVpcOutput {
return s
}
-// Contains the parameters for CreateDhcpOptions.
type CreateDhcpOptionsInput struct {
_ struct{} `type:"structure"`
@@ -27560,7 +34484,6 @@ func (s *CreateDhcpOptionsInput) SetDryRun(v bool) *CreateDhcpOptionsInput {
return s
}
-// Contains the output of CreateDhcpOptions.
type CreateDhcpOptionsOutput struct {
_ struct{} `type:"structure"`
@@ -27587,8 +34510,8 @@ func (s *CreateDhcpOptionsOutput) SetDhcpOptions(v *DhcpOptions) *CreateDhcpOpti
type CreateEgressOnlyInternetGatewayInput struct {
_ struct{} `type:"structure"`
- // Unique, case-sensitive identifier you provide to ensure the idempotency of
- // the request. For more information, see How to Ensure Idempotency (http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Run_Instance_Idempotency.html).
+ // Unique, case-sensitive identifier that you provide to ensure the idempotency
+ // of the request. For more information, see How to Ensure Idempotency (http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Run_Instance_Idempotency.html).
ClientToken *string `type:"string"`
// Checks whether you have the required permissions for the action, without
@@ -27597,7 +34520,7 @@ type CreateEgressOnlyInternetGatewayInput struct {
// it is UnauthorizedOperation.
DryRun *bool `type:"boolean"`
- // The ID of the VPC for which to create the egress-only Internet gateway.
+ // The ID of the VPC for which to create the egress-only internet gateway.
//
// VpcId is a required field
VpcId *string `type:"string" required:"true"`
@@ -27647,11 +34570,11 @@ func (s *CreateEgressOnlyInternetGatewayInput) SetVpcId(v string) *CreateEgressO
type CreateEgressOnlyInternetGatewayOutput struct {
_ struct{} `type:"structure"`
- // Unique, case-sensitive identifier you provide to ensure the idempotency of
- // the request.
+ // Unique, case-sensitive identifier that you provide to ensure the idempotency
+ // of the request.
ClientToken *string `locationName:"clientToken" type:"string"`
- // Information about the egress-only Internet gateway.
+ // Information about the egress-only internet gateway.
EgressOnlyInternetGateway *EgressOnlyInternetGateway `locationName:"egressOnlyInternetGateway" type:"structure"`
}
@@ -27677,6 +34600,62 @@ func (s *CreateEgressOnlyInternetGatewayOutput) SetEgressOnlyInternetGateway(v *
return s
}
+// Describes the instances that could not be launched by the fleet.
+type CreateFleetError struct {
+ _ struct{} `type:"structure"`
+
+ // The error code that indicates why the instance could not be launched. For
+ // more information about error codes, see Error Codes (http://docs.aws.amazon.com/AWSEC2/latest/APIReference/errors-overview.html.html).
+ ErrorCode *string `locationName:"errorCode" type:"string"`
+
+ // The error message that describes why the instance could not be launched.
+ // For more information about error messages, see ee Error Codes (http://docs.aws.amazon.com/AWSEC2/latest/APIReference/errors-overview.html.html).
+ ErrorMessage *string `locationName:"errorMessage" type:"string"`
+
+ // The launch templates and overrides that were used for launching the instances.
+ // Any parameters that you specify in the Overrides override the same parameters
+ // in the launch template.
+ LaunchTemplateAndOverrides *LaunchTemplateAndOverridesResponse `locationName:"launchTemplateAndOverrides" type:"structure"`
+
+ // Indicates if the instance that could not be launched was a Spot Instance
+ // or On-Demand Instance.
+ Lifecycle *string `locationName:"lifecycle" type:"string" enum:"InstanceLifecycle"`
+}
+
+// String returns the string representation
+func (s CreateFleetError) String() string {
+ return awsutil.Prettify(s)
+}
+
+// GoString returns the string representation
+func (s CreateFleetError) GoString() string {
+ return s.String()
+}
+
+// SetErrorCode sets the ErrorCode field's value.
+func (s *CreateFleetError) SetErrorCode(v string) *CreateFleetError {
+ s.ErrorCode = &v
+ return s
+}
+
+// SetErrorMessage sets the ErrorMessage field's value.
+func (s *CreateFleetError) SetErrorMessage(v string) *CreateFleetError {
+ s.ErrorMessage = &v
+ return s
+}
+
+// SetLaunchTemplateAndOverrides sets the LaunchTemplateAndOverrides field's value.
+func (s *CreateFleetError) SetLaunchTemplateAndOverrides(v *LaunchTemplateAndOverridesResponse) *CreateFleetError {
+ s.LaunchTemplateAndOverrides = v
+ return s
+}
+
+// SetLifecycle sets the Lifecycle field's value.
+func (s *CreateFleetError) SetLifecycle(v string) *CreateFleetError {
+ s.Lifecycle = &v
+ return s
+}
+
type CreateFleetInput struct {
_ struct{} `type:"structure"`
@@ -27700,14 +34679,19 @@ type CreateFleetInput struct {
// LaunchTemplateConfigs is a required field
LaunchTemplateConfigs []*FleetLaunchTemplateConfigRequest `locationNameList:"item" type:"list" required:"true"`
+ // The allocation strategy of On-Demand Instances in an EC2 Fleet.
+ OnDemandOptions *OnDemandOptionsRequest `type:"structure"`
+
// Indicates whether EC2 Fleet should replace unhealthy instances.
ReplaceUnhealthyInstances *bool `type:"boolean"`
- // Includes SpotAllocationStrategy and SpotInstanceInterruptionBehavior inside
- // this structure.
+ // Describes the configuration of Spot Instances in an EC2 Fleet.
SpotOptions *SpotOptionsRequest `type:"structure"`
- // The tags for an EC2 Fleet resource.
+ // The key-value pair for tagging the EC2 Fleet request on creation. The value
+ // for ResourceType must be fleet, otherwise the fleet request fails. To tag
+ // instances at launch, specify the tags in the launch template (http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-launch-templates.html#create-launch-template).
+ // For information about tagging after launch, see Tagging Your Resources (http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Using_Tags.html#tag-resources).
TagSpecifications []*TagSpecification `locationName:"TagSpecification" locationNameList:"item" type:"list"`
// The TotalTargetCapacity, OnDemandTargetCapacity, SpotTargetCapacity, and
@@ -27720,24 +34704,24 @@ type CreateFleetInput struct {
// expires.
TerminateInstancesWithExpiration *bool `type:"boolean"`
- // The type of request. Indicates whether the EC2 Fleet only requests the target
- // capacity, or also attempts to maintain it. If you request a certain target
- // capacity, EC2 Fleet only places the required requests. It does not attempt
- // to replenish instances if capacity is diminished, and does not submit requests
- // in alternative capacity pools if capacity is unavailable. To maintain a certain
- // target capacity, EC2 Fleet places the required requests to meet this target
- // capacity. It also automatically replenishes any interrupted Spot Instances.
- // Default: maintain.
+ // The type of the request. By default, the EC2 Fleet places an asynchronous
+ // request for your desired capacity, and maintains it by replenishing interrupted
+ // Spot Instances (maintain). A value of instant places a synchronous one-time
+ // request, and returns errors for any instances that could not be launched.
+ // A value of request places an asynchronous one-time request without maintaining
+ // capacity or submitting requests in alternative capacity pools if capacity
+ // is unavailable. For more information, see EC2 Fleet Request Types (http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-fleet-configuration-strategies.html#ec2-fleet-request-type)
+ // in the Amazon Elastic Compute Cloud User Guide.
Type *string `type:"string" enum:"FleetType"`
// The start date and time of the request, in UTC format (for example, YYYY-MM-DDTHH:MM:SSZ).
// The default is to start fulfilling the request immediately.
- ValidFrom *time.Time `type:"timestamp" timestampFormat:"iso8601"`
+ ValidFrom *time.Time `type:"timestamp"`
// The end date and time of the request, in UTC format (for example, YYYY-MM-DDTHH:MM:SSZ).
// At this point, no new EC2 Fleet requests are placed or able to fulfill the
// request. The default end date is 7 days from the current date.
- ValidUntil *time.Time `type:"timestamp" timestampFormat:"iso8601"`
+ ValidUntil *time.Time `type:"timestamp"`
}
// String returns the string representation
@@ -27805,6 +34789,12 @@ func (s *CreateFleetInput) SetLaunchTemplateConfigs(v []*FleetLaunchTemplateConf
return s
}
+// SetOnDemandOptions sets the OnDemandOptions field's value.
+func (s *CreateFleetInput) SetOnDemandOptions(v *OnDemandOptionsRequest) *CreateFleetInput {
+ s.OnDemandOptions = v
+ return s
+}
+
// SetReplaceUnhealthyInstances sets the ReplaceUnhealthyInstances field's value.
func (s *CreateFleetInput) SetReplaceUnhealthyInstances(v bool) *CreateFleetInput {
s.ReplaceUnhealthyInstances = &v
@@ -27853,11 +34843,82 @@ func (s *CreateFleetInput) SetValidUntil(v time.Time) *CreateFleetInput {
return s
}
+// Describes the instances that were launched by the fleet.
+type CreateFleetInstance struct {
+ _ struct{} `type:"structure"`
+
+ // The IDs of the instances.
+ InstanceIds []*string `locationName:"instanceIds" locationNameList:"item" type:"list"`
+
+ // The instance type.
+ InstanceType *string `locationName:"instanceType" type:"string" enum:"InstanceType"`
+
+ // The launch templates and overrides that were used for launching the instances.
+ // Any parameters that you specify in the Overrides override the same parameters
+ // in the launch template.
+ LaunchTemplateAndOverrides *LaunchTemplateAndOverridesResponse `locationName:"launchTemplateAndOverrides" type:"structure"`
+
+ // Indicates if the instance that was launched is a Spot Instance or On-Demand
+ // Instance.
+ Lifecycle *string `locationName:"lifecycle" type:"string" enum:"InstanceLifecycle"`
+
+ // The value is Windows for Windows instances; otherwise blank.
+ Platform *string `locationName:"platform" type:"string" enum:"PlatformValues"`
+}
+
+// String returns the string representation
+func (s CreateFleetInstance) String() string {
+ return awsutil.Prettify(s)
+}
+
+// GoString returns the string representation
+func (s CreateFleetInstance) GoString() string {
+ return s.String()
+}
+
+// SetInstanceIds sets the InstanceIds field's value.
+func (s *CreateFleetInstance) SetInstanceIds(v []*string) *CreateFleetInstance {
+ s.InstanceIds = v
+ return s
+}
+
+// SetInstanceType sets the InstanceType field's value.
+func (s *CreateFleetInstance) SetInstanceType(v string) *CreateFleetInstance {
+ s.InstanceType = &v
+ return s
+}
+
+// SetLaunchTemplateAndOverrides sets the LaunchTemplateAndOverrides field's value.
+func (s *CreateFleetInstance) SetLaunchTemplateAndOverrides(v *LaunchTemplateAndOverridesResponse) *CreateFleetInstance {
+ s.LaunchTemplateAndOverrides = v
+ return s
+}
+
+// SetLifecycle sets the Lifecycle field's value.
+func (s *CreateFleetInstance) SetLifecycle(v string) *CreateFleetInstance {
+ s.Lifecycle = &v
+ return s
+}
+
+// SetPlatform sets the Platform field's value.
+func (s *CreateFleetInstance) SetPlatform(v string) *CreateFleetInstance {
+ s.Platform = &v
+ return s
+}
+
type CreateFleetOutput struct {
_ struct{} `type:"structure"`
+ // Information about the instances that could not be launched by the fleet.
+ // Valid only when Type is set to instant.
+ Errors []*CreateFleetError `locationName:"errorSet" locationNameList:"item" type:"list"`
+
// The ID of the EC2 Fleet.
FleetId *string `locationName:"fleetId" type:"string"`
+
+ // Information about the instances that were launched by the fleet. Valid only
+ // when Type is set to instant.
+ Instances []*CreateFleetInstance `locationName:"fleetInstanceSet" locationNameList:"item" type:"list"`
}
// String returns the string representation
@@ -27870,30 +34931,66 @@ func (s CreateFleetOutput) GoString() string {
return s.String()
}
+// SetErrors sets the Errors field's value.
+func (s *CreateFleetOutput) SetErrors(v []*CreateFleetError) *CreateFleetOutput {
+ s.Errors = v
+ return s
+}
+
// SetFleetId sets the FleetId field's value.
func (s *CreateFleetOutput) SetFleetId(v string) *CreateFleetOutput {
s.FleetId = &v
return s
}
-// Contains the parameters for CreateFlowLogs.
+// SetInstances sets the Instances field's value.
+func (s *CreateFleetOutput) SetInstances(v []*CreateFleetInstance) *CreateFleetOutput {
+ s.Instances = v
+ return s
+}
+
type CreateFlowLogsInput struct {
_ struct{} `type:"structure"`
- // Unique, case-sensitive identifier you provide to ensure the idempotency of
- // the request. For more information, see How to Ensure Idempotency (http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Run_Instance_Idempotency.html).
+ // Unique, case-sensitive identifier that you provide to ensure the idempotency
+ // of the request. For more information, see How to Ensure Idempotency (http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Run_Instance_Idempotency.html).
ClientToken *string `type:"string"`
- // The ARN for the IAM role that's used to post flow logs to a CloudWatch Logs
- // log group.
- //
- // DeliverLogsPermissionArn is a required field
- DeliverLogsPermissionArn *string `type:"string" required:"true"`
+ // The ARN for the IAM role that's used to post flow logs to a log group.
+ DeliverLogsPermissionArn *string `type:"string"`
- // The name of the CloudWatch log group.
+ // Checks whether you have the required permissions for the action, without
+ // actually making the request, and provides an error response. If you have
+ // the required permissions, the error response is DryRunOperation. Otherwise,
+ // it is UnauthorizedOperation.
+ DryRun *bool `type:"boolean"`
+
+ // Specifies the destination to which the flow log data is to be published.
+ // Flow log data can be published to an CloudWatch Logs log group or an Amazon
+ // S3 bucket. The value specified for this parameter depends on the value specified
+ // for LogDestinationType.
//
- // LogGroupName is a required field
- LogGroupName *string `type:"string" required:"true"`
+ // If LogDestinationType is not specified or cloud-watch-logs, specify the Amazon
+ // Resource Name (ARN) of the CloudWatch Logs log group.
+ //
+ // If LogDestinationType is s3, specify the ARN of the Amazon S3 bucket. You
+ // can also specify a subfolder in the bucket. To specify a subfolder in the
+ // bucket, use the following ARN format: bucket_ARN/subfolder_name/. For example,
+ // to specify a subfolder named my-logs in a bucket named my-bucket, use the
+ // following ARN: arn:aws:s3:::my-bucket/my-logs/. You cannot use AWSLogs as
+ // a subfolder name. This is a reserved term.
+ LogDestination *string `type:"string"`
+
+ // Specifies the type of destination to which the flow log data is to be published.
+ // Flow log data can be published to CloudWatch Logs or Amazon S3. To publish
+ // flow log data to CloudWatch Logs, specify cloud-watch-logs. To publish flow
+ // log data to Amazon S3, specify s3.
+ //
+ // Default: cloud-watch-logs
+ LogDestinationType *string `type:"string" enum:"LogDestinationType"`
+
+ // The name of the log group.
+ LogGroupName *string `type:"string"`
// One or more subnet, network interface, or VPC IDs.
//
@@ -27926,12 +35023,6 @@ func (s CreateFlowLogsInput) GoString() string {
// Validate inspects the fields of the type to determine if they are valid.
func (s *CreateFlowLogsInput) Validate() error {
invalidParams := request.ErrInvalidParams{Context: "CreateFlowLogsInput"}
- if s.DeliverLogsPermissionArn == nil {
- invalidParams.Add(request.NewErrParamRequired("DeliverLogsPermissionArn"))
- }
- if s.LogGroupName == nil {
- invalidParams.Add(request.NewErrParamRequired("LogGroupName"))
- }
if s.ResourceIds == nil {
invalidParams.Add(request.NewErrParamRequired("ResourceIds"))
}
@@ -27960,6 +35051,24 @@ func (s *CreateFlowLogsInput) SetDeliverLogsPermissionArn(v string) *CreateFlowL
return s
}
+// SetDryRun sets the DryRun field's value.
+func (s *CreateFlowLogsInput) SetDryRun(v bool) *CreateFlowLogsInput {
+ s.DryRun = &v
+ return s
+}
+
+// SetLogDestination sets the LogDestination field's value.
+func (s *CreateFlowLogsInput) SetLogDestination(v string) *CreateFlowLogsInput {
+ s.LogDestination = &v
+ return s
+}
+
+// SetLogDestinationType sets the LogDestinationType field's value.
+func (s *CreateFlowLogsInput) SetLogDestinationType(v string) *CreateFlowLogsInput {
+ s.LogDestinationType = &v
+ return s
+}
+
// SetLogGroupName sets the LogGroupName field's value.
func (s *CreateFlowLogsInput) SetLogGroupName(v string) *CreateFlowLogsInput {
s.LogGroupName = &v
@@ -27984,12 +35093,11 @@ func (s *CreateFlowLogsInput) SetTrafficType(v string) *CreateFlowLogsInput {
return s
}
-// Contains the output of CreateFlowLogs.
type CreateFlowLogsOutput struct {
_ struct{} `type:"structure"`
- // Unique, case-sensitive identifier you provide to ensure the idempotency of
- // the request.
+ // Unique, case-sensitive identifier that you provide to ensure the idempotency
+ // of the request.
ClientToken *string `locationName:"clientToken" type:"string"`
// The IDs of the flow logs.
@@ -28151,7 +35259,9 @@ func (s *CreateFpgaImageOutput) SetFpgaImageId(v string) *CreateFpgaImageOutput
type CreateImageInput struct {
_ struct{} `type:"structure"`
- // Information about one or more block device mappings.
+ // Information about one or more block device mappings. This parameter cannot
+ // be used to modify the encryption status of existing volumes or snapshots.
+ // To create an AMI with encrypted snapshots, use the CopyImage action.
BlockDeviceMappings []*BlockDeviceMapping `locationName:"blockDeviceMapping" locationNameList:"BlockDeviceMapping" type:"list"`
// A description for the new image.
@@ -28361,7 +35471,6 @@ func (s *CreateInstanceExportTaskOutput) SetExportTask(v *ExportTask) *CreateIns
return s
}
-// Contains the parameters for CreateInternetGateway.
type CreateInternetGatewayInput struct {
_ struct{} `type:"structure"`
@@ -28388,11 +35497,10 @@ func (s *CreateInternetGatewayInput) SetDryRun(v bool) *CreateInternetGatewayInp
return s
}
-// Contains the output of CreateInternetGateway.
type CreateInternetGatewayOutput struct {
_ struct{} `type:"structure"`
- // Information about the Internet gateway.
+ // Information about the internet gateway.
InternetGateway *InternetGateway `locationName:"internetGateway" type:"structure"`
}
@@ -28412,7 +35520,6 @@ func (s *CreateInternetGatewayOutput) SetInternetGateway(v *InternetGateway) *Cr
return s
}
-// Contains the parameters for CreateKeyPair.
type CreateKeyPairInput struct {
_ struct{} `type:"structure"`
@@ -28752,7 +35859,6 @@ func (s *CreateLaunchTemplateVersionOutput) SetLaunchTemplateVersion(v *LaunchTe
return s
}
-// Contains the parameters for CreateNatGateway.
type CreateNatGatewayInput struct {
_ struct{} `type:"structure"`
@@ -28763,8 +35869,8 @@ type CreateNatGatewayInput struct {
// AllocationId is a required field
AllocationId *string `type:"string" required:"true"`
- // Unique, case-sensitive identifier you provide to ensure the idempotency of
- // the request. For more information, see How to Ensure Idempotency (http://docs.aws.amazon.com/AWSEC2/latest/APIReference/Run_Instance_Idempotency.html).
+ // Unique, case-sensitive identifier that you provide to ensure the idempotency
+ // of the request. For more information, see How to Ensure Idempotency (http://docs.aws.amazon.com/AWSEC2/latest/APIReference/Run_Instance_Idempotency.html).
//
// Constraint: Maximum 64 ASCII characters.
ClientToken *string `type:"string"`
@@ -28819,7 +35925,6 @@ func (s *CreateNatGatewayInput) SetSubnetId(v string) *CreateNatGatewayInput {
return s
}
-// Contains the output of CreateNatGateway.
type CreateNatGatewayOutput struct {
_ struct{} `type:"structure"`
@@ -28853,7 +35958,6 @@ func (s *CreateNatGatewayOutput) SetNatGateway(v *NatGateway) *CreateNatGatewayO
return s
}
-// Contains the parameters for CreateNetworkAclEntry.
type CreateNetworkAclEntryInput struct {
_ struct{} `type:"structure"`
@@ -28872,8 +35976,8 @@ type CreateNetworkAclEntryInput struct {
// Egress is a required field
Egress *bool `locationName:"egress" type:"boolean" required:"true"`
- // ICMP protocol: The ICMP or ICMPv6 type and code. Required if specifying the
- // ICMP protocol, or protocol 58 (ICMPv6) with an IPv6 CIDR block.
+ // ICMP protocol: The ICMP or ICMPv6 type and code. Required if specifying protocol
+ // 1 (ICMP) or protocol 58 (ICMPv6) with an IPv6 CIDR block.
IcmpTypeCode *IcmpTypeCode `locationName:"Icmp" type:"structure"`
// The IPv6 network range to allow or deny, in CIDR notation (for example 2001:db8:1234:1a00::/64).
@@ -28884,16 +35988,17 @@ type CreateNetworkAclEntryInput struct {
// NetworkAclId is a required field
NetworkAclId *string `locationName:"networkAclId" type:"string" required:"true"`
- // TCP or UDP protocols: The range of ports the rule applies to.
+ // TCP or UDP protocols: The range of ports the rule applies to. Required if
+ // specifying protocol 6 (TCP) or 17 (UDP).
PortRange *PortRange `locationName:"portRange" type:"structure"`
- // The protocol. A value of -1 or all means all protocols. If you specify all,
- // -1, or a protocol number other than 6 (tcp), 17 (udp), or 1 (icmp), traffic
- // on all ports is allowed, regardless of any ports or ICMP types or codes you
- // specify. If you specify protocol 58 (ICMPv6) and specify an IPv4 CIDR block,
- // traffic for all ICMP types and codes allowed, regardless of any that you
- // specify. If you specify protocol 58 (ICMPv6) and specify an IPv6 CIDR block,
- // you must specify an ICMP type and code.
+ // The protocol number. A value of "-1" means all protocols. If you specify
+ // "-1" or a protocol number other than "6" (TCP), "17" (UDP), or "1" (ICMP),
+ // traffic on all ports is allowed, regardless of any ports or ICMP types or
+ // codes that you specify. If you specify protocol "58" (ICMPv6) and specify
+ // an IPv4 CIDR block, traffic for all ICMP types and codes allowed, regardless
+ // of any that you specify. If you specify protocol "58" (ICMPv6) and specify
+ // an IPv6 CIDR block, you must specify an ICMP type and code.
//
// Protocol is a required field
Protocol *string `locationName:"protocol" type:"string" required:"true"`
@@ -29022,7 +36127,6 @@ func (s CreateNetworkAclEntryOutput) GoString() string {
return s.String()
}
-// Contains the parameters for CreateNetworkAcl.
type CreateNetworkAclInput struct {
_ struct{} `type:"structure"`
@@ -29073,7 +36177,6 @@ func (s *CreateNetworkAclInput) SetVpcId(v string) *CreateNetworkAclInput {
return s
}
-// Contains the output of CreateNetworkAcl.
type CreateNetworkAclOutput struct {
_ struct{} `type:"structure"`
@@ -29167,16 +36270,6 @@ func (s *CreateNetworkInterfaceInput) Validate() error {
if s.SubnetId == nil {
invalidParams.Add(request.NewErrParamRequired("SubnetId"))
}
- if s.PrivateIpAddresses != nil {
- for i, v := range s.PrivateIpAddresses {
- if v == nil {
- continue
- }
- if err := v.Validate(); err != nil {
- invalidParams.AddNested(fmt.Sprintf("%s[%v]", "PrivateIpAddresses", i), err.(request.ErrInvalidParams))
- }
- }
- }
if invalidParams.Len() > 0 {
return invalidParams
@@ -29369,7 +36462,6 @@ func (s *CreateNetworkInterfacePermissionOutput) SetInterfacePermission(v *Netwo
return s
}
-// Contains the parameters for CreatePlacementGroup.
type CreatePlacementGroupInput struct {
_ struct{} `type:"structure"`
@@ -29380,17 +36472,16 @@ type CreatePlacementGroupInput struct {
DryRun *bool `locationName:"dryRun" type:"boolean"`
// A name for the placement group. Must be unique within the scope of your account
- // for the region.
+ // for the Region.
//
// Constraints: Up to 255 ASCII characters
- //
- // GroupName is a required field
- GroupName *string `locationName:"groupName" type:"string" required:"true"`
+ GroupName *string `locationName:"groupName" type:"string"`
+
+ // The number of partitions. Valid only when Strategy is set to partition.
+ PartitionCount *int64 `type:"integer"`
// The placement strategy.
- //
- // Strategy is a required field
- Strategy *string `locationName:"strategy" type:"string" required:"true" enum:"PlacementStrategy"`
+ Strategy *string `locationName:"strategy" type:"string" enum:"PlacementStrategy"`
}
// String returns the string representation
@@ -29403,22 +36494,6 @@ func (s CreatePlacementGroupInput) GoString() string {
return s.String()
}
-// Validate inspects the fields of the type to determine if they are valid.
-func (s *CreatePlacementGroupInput) Validate() error {
- invalidParams := request.ErrInvalidParams{Context: "CreatePlacementGroupInput"}
- if s.GroupName == nil {
- invalidParams.Add(request.NewErrParamRequired("GroupName"))
- }
- if s.Strategy == nil {
- invalidParams.Add(request.NewErrParamRequired("Strategy"))
- }
-
- if invalidParams.Len() > 0 {
- return invalidParams
- }
- return nil
-}
-
// SetDryRun sets the DryRun field's value.
func (s *CreatePlacementGroupInput) SetDryRun(v bool) *CreatePlacementGroupInput {
s.DryRun = &v
@@ -29431,6 +36506,12 @@ func (s *CreatePlacementGroupInput) SetGroupName(v string) *CreatePlacementGroup
return s
}
+// SetPartitionCount sets the PartitionCount field's value.
+func (s *CreatePlacementGroupInput) SetPartitionCount(v int64) *CreatePlacementGroupInput {
+ s.PartitionCount = &v
+ return s
+}
+
// SetStrategy sets the Strategy field's value.
func (s *CreatePlacementGroupInput) SetStrategy(v string) *CreatePlacementGroupInput {
s.Strategy = &v
@@ -29562,7 +36643,6 @@ func (s *CreateReservedInstancesListingOutput) SetReservedInstancesListings(v []
return s
}
-// Contains the parameters for CreateRoute.
type CreateRouteInput struct {
_ struct{} `type:"structure"`
@@ -29580,10 +36660,10 @@ type CreateRouteInput struct {
// it is UnauthorizedOperation.
DryRun *bool `locationName:"dryRun" type:"boolean"`
- // [IPv6 traffic only] The ID of an egress-only Internet gateway.
+ // [IPv6 traffic only] The ID of an egress-only internet gateway.
EgressOnlyInternetGatewayId *string `locationName:"egressOnlyInternetGatewayId" type:"string"`
- // The ID of an Internet gateway or virtual private gateway attached to your
+ // The ID of an internet gateway or virtual private gateway attached to your
// VPC.
GatewayId *string `locationName:"gatewayId" type:"string"`
@@ -29602,6 +36682,9 @@ type CreateRouteInput struct {
// RouteTableId is a required field
RouteTableId *string `locationName:"routeTableId" type:"string" required:"true"`
+ // The ID of a transit gateway.
+ TransitGatewayId *string `type:"string"`
+
// The ID of a VPC peering connection.
VpcPeeringConnectionId *string `locationName:"vpcPeeringConnectionId" type:"string"`
}
@@ -29683,13 +36766,18 @@ func (s *CreateRouteInput) SetRouteTableId(v string) *CreateRouteInput {
return s
}
+// SetTransitGatewayId sets the TransitGatewayId field's value.
+func (s *CreateRouteInput) SetTransitGatewayId(v string) *CreateRouteInput {
+ s.TransitGatewayId = &v
+ return s
+}
+
// SetVpcPeeringConnectionId sets the VpcPeeringConnectionId field's value.
func (s *CreateRouteInput) SetVpcPeeringConnectionId(v string) *CreateRouteInput {
s.VpcPeeringConnectionId = &v
return s
}
-// Contains the output of CreateRoute.
type CreateRouteOutput struct {
_ struct{} `type:"structure"`
@@ -29713,7 +36801,6 @@ func (s *CreateRouteOutput) SetReturn(v bool) *CreateRouteOutput {
return s
}
-// Contains the parameters for CreateRouteTable.
type CreateRouteTableInput struct {
_ struct{} `type:"structure"`
@@ -29764,7 +36851,6 @@ func (s *CreateRouteTableInput) SetVpcId(v string) *CreateRouteTableInput {
return s
}
-// Contains the output of CreateRouteTable.
type CreateRouteTableOutput struct {
_ struct{} `type:"structure"`
@@ -29788,7 +36874,6 @@ func (s *CreateRouteTableOutput) SetRouteTable(v *RouteTable) *CreateRouteTableO
return s
}
-// Contains the parameters for CreateSecurityGroup.
type CreateSecurityGroupInput struct {
_ struct{} `type:"structure"`
@@ -29874,7 +36959,6 @@ func (s *CreateSecurityGroupInput) SetVpcId(v string) *CreateSecurityGroupInput
return s
}
-// Contains the output of CreateSecurityGroup.
type CreateSecurityGroupOutput struct {
_ struct{} `type:"structure"`
@@ -30051,7 +37135,6 @@ func (s *CreateSpotDatafeedSubscriptionOutput) SetSpotDatafeedSubscription(v *Sp
return s
}
-// Contains the parameters for CreateSubnet.
type CreateSubnetInput struct {
_ struct{} `type:"structure"`
@@ -30061,6 +37144,9 @@ type CreateSubnetInput struct {
// VPC, we may not necessarily select a different zone for each subnet.
AvailabilityZone *string `type:"string"`
+ // The AZ ID of the subnet.
+ AvailabilityZoneId *string `type:"string"`
+
// The IPv4 network range for the subnet, in CIDR notation. For example, 10.0.0.0/24.
//
// CidrBlock is a required field
@@ -30114,6 +37200,12 @@ func (s *CreateSubnetInput) SetAvailabilityZone(v string) *CreateSubnetInput {
return s
}
+// SetAvailabilityZoneId sets the AvailabilityZoneId field's value.
+func (s *CreateSubnetInput) SetAvailabilityZoneId(v string) *CreateSubnetInput {
+ s.AvailabilityZoneId = &v
+ return s
+}
+
// SetCidrBlock sets the CidrBlock field's value.
func (s *CreateSubnetInput) SetCidrBlock(v string) *CreateSubnetInput {
s.CidrBlock = &v
@@ -30138,7 +37230,6 @@ func (s *CreateSubnetInput) SetVpcId(v string) *CreateSubnetInput {
return s
}
-// Contains the output of CreateSubnet.
type CreateSubnetOutput struct {
_ struct{} `type:"structure"`
@@ -30162,7 +37253,6 @@ func (s *CreateSubnetOutput) SetSubnet(v *Subnet) *CreateSubnetOutput {
return s
}
-// Contains the parameters for CreateTags.
type CreateTagsInput struct {
_ struct{} `type:"structure"`
@@ -30172,7 +37262,10 @@ type CreateTagsInput struct {
// it is UnauthorizedOperation.
DryRun *bool `locationName:"dryRun" type:"boolean"`
- // The IDs of one or more resources to tag. For example, ami-1a2b3c4d.
+ // The IDs of one or more resources, separated by spaces.
+ //
+ // Constraints: Up to 1000 resource IDs. We recommend breaking up this request
+ // into smaller batches.
//
// Resources is a required field
Resources []*string `locationName:"ResourceId" type:"list" required:"true"`
@@ -30243,6 +37336,425 @@ func (s CreateTagsOutput) GoString() string {
return s.String()
}
+type CreateTransitGatewayInput struct {
+ _ struct{} `type:"structure"`
+
+ // A description of the transit gateway.
+ Description *string `type:"string"`
+
+ // Checks whether you have the required permissions for the action, without
+ // actually making the request, and provides an error response. If you have
+ // the required permissions, the error response is DryRunOperation. Otherwise,
+ // it is UnauthorizedOperation.
+ DryRun *bool `type:"boolean"`
+
+ // The transit gateway options.
+ Options *TransitGatewayRequestOptions `type:"structure"`
+
+ // The tags to apply to the transit gateway.
+ TagSpecifications []*TagSpecification `locationName:"TagSpecification" locationNameList:"item" type:"list"`
+}
+
+// String returns the string representation
+func (s CreateTransitGatewayInput) String() string {
+ return awsutil.Prettify(s)
+}
+
+// GoString returns the string representation
+func (s CreateTransitGatewayInput) GoString() string {
+ return s.String()
+}
+
+// SetDescription sets the Description field's value.
+func (s *CreateTransitGatewayInput) SetDescription(v string) *CreateTransitGatewayInput {
+ s.Description = &v
+ return s
+}
+
+// SetDryRun sets the DryRun field's value.
+func (s *CreateTransitGatewayInput) SetDryRun(v bool) *CreateTransitGatewayInput {
+ s.DryRun = &v
+ return s
+}
+
+// SetOptions sets the Options field's value.
+func (s *CreateTransitGatewayInput) SetOptions(v *TransitGatewayRequestOptions) *CreateTransitGatewayInput {
+ s.Options = v
+ return s
+}
+
+// SetTagSpecifications sets the TagSpecifications field's value.
+func (s *CreateTransitGatewayInput) SetTagSpecifications(v []*TagSpecification) *CreateTransitGatewayInput {
+ s.TagSpecifications = v
+ return s
+}
+
+type CreateTransitGatewayOutput struct {
+ _ struct{} `type:"structure"`
+
+ // Information about the transit gateway.
+ TransitGateway *TransitGateway `locationName:"transitGateway" type:"structure"`
+}
+
+// String returns the string representation
+func (s CreateTransitGatewayOutput) String() string {
+ return awsutil.Prettify(s)
+}
+
+// GoString returns the string representation
+func (s CreateTransitGatewayOutput) GoString() string {
+ return s.String()
+}
+
+// SetTransitGateway sets the TransitGateway field's value.
+func (s *CreateTransitGatewayOutput) SetTransitGateway(v *TransitGateway) *CreateTransitGatewayOutput {
+ s.TransitGateway = v
+ return s
+}
+
+type CreateTransitGatewayRouteInput struct {
+ _ struct{} `type:"structure"`
+
+ // Indicates whether traffic matching this route is to be dropped.
+ Blackhole *bool `type:"boolean"`
+
+ // The CIDR range used for destination matches. Routing decisions are based
+ // on the most specific match.
+ //
+ // DestinationCidrBlock is a required field
+ DestinationCidrBlock *string `type:"string" required:"true"`
+
+ // Checks whether you have the required permissions for the action, without
+ // actually making the request, and provides an error response. If you have
+ // the required permissions, the error response is DryRunOperation. Otherwise,
+ // it is UnauthorizedOperation.
+ DryRun *bool `type:"boolean"`
+
+ // The ID of the attachment.
+ TransitGatewayAttachmentId *string `type:"string"`
+
+ // The ID of the transit gateway route table.
+ //
+ // TransitGatewayRouteTableId is a required field
+ TransitGatewayRouteTableId *string `type:"string" required:"true"`
+}
+
+// String returns the string representation
+func (s CreateTransitGatewayRouteInput) String() string {
+ return awsutil.Prettify(s)
+}
+
+// GoString returns the string representation
+func (s CreateTransitGatewayRouteInput) GoString() string {
+ return s.String()
+}
+
+// Validate inspects the fields of the type to determine if they are valid.
+func (s *CreateTransitGatewayRouteInput) Validate() error {
+ invalidParams := request.ErrInvalidParams{Context: "CreateTransitGatewayRouteInput"}
+ if s.DestinationCidrBlock == nil {
+ invalidParams.Add(request.NewErrParamRequired("DestinationCidrBlock"))
+ }
+ if s.TransitGatewayRouteTableId == nil {
+ invalidParams.Add(request.NewErrParamRequired("TransitGatewayRouteTableId"))
+ }
+
+ if invalidParams.Len() > 0 {
+ return invalidParams
+ }
+ return nil
+}
+
+// SetBlackhole sets the Blackhole field's value.
+func (s *CreateTransitGatewayRouteInput) SetBlackhole(v bool) *CreateTransitGatewayRouteInput {
+ s.Blackhole = &v
+ return s
+}
+
+// SetDestinationCidrBlock sets the DestinationCidrBlock field's value.
+func (s *CreateTransitGatewayRouteInput) SetDestinationCidrBlock(v string) *CreateTransitGatewayRouteInput {
+ s.DestinationCidrBlock = &v
+ return s
+}
+
+// SetDryRun sets the DryRun field's value.
+func (s *CreateTransitGatewayRouteInput) SetDryRun(v bool) *CreateTransitGatewayRouteInput {
+ s.DryRun = &v
+ return s
+}
+
+// SetTransitGatewayAttachmentId sets the TransitGatewayAttachmentId field's value.
+func (s *CreateTransitGatewayRouteInput) SetTransitGatewayAttachmentId(v string) *CreateTransitGatewayRouteInput {
+ s.TransitGatewayAttachmentId = &v
+ return s
+}
+
+// SetTransitGatewayRouteTableId sets the TransitGatewayRouteTableId field's value.
+func (s *CreateTransitGatewayRouteInput) SetTransitGatewayRouteTableId(v string) *CreateTransitGatewayRouteInput {
+ s.TransitGatewayRouteTableId = &v
+ return s
+}
+
+type CreateTransitGatewayRouteOutput struct {
+ _ struct{} `type:"structure"`
+
+ // Information about the route.
+ Route *TransitGatewayRoute `locationName:"route" type:"structure"`
+}
+
+// String returns the string representation
+func (s CreateTransitGatewayRouteOutput) String() string {
+ return awsutil.Prettify(s)
+}
+
+// GoString returns the string representation
+func (s CreateTransitGatewayRouteOutput) GoString() string {
+ return s.String()
+}
+
+// SetRoute sets the Route field's value.
+func (s *CreateTransitGatewayRouteOutput) SetRoute(v *TransitGatewayRoute) *CreateTransitGatewayRouteOutput {
+ s.Route = v
+ return s
+}
+
+type CreateTransitGatewayRouteTableInput struct {
+ _ struct{} `type:"structure"`
+
+ // Checks whether you have the required permissions for the action, without
+ // actually making the request, and provides an error response. If you have
+ // the required permissions, the error response is DryRunOperation. Otherwise,
+ // it is UnauthorizedOperation.
+ DryRun *bool `type:"boolean"`
+
+ // The tags to apply to the transit gateway route table.
+ TagSpecifications []*TagSpecification `locationNameList:"item" type:"list"`
+
+ // The ID of the transit gateway.
+ //
+ // TransitGatewayId is a required field
+ TransitGatewayId *string `type:"string" required:"true"`
+}
+
+// String returns the string representation
+func (s CreateTransitGatewayRouteTableInput) String() string {
+ return awsutil.Prettify(s)
+}
+
+// GoString returns the string representation
+func (s CreateTransitGatewayRouteTableInput) GoString() string {
+ return s.String()
+}
+
+// Validate inspects the fields of the type to determine if they are valid.
+func (s *CreateTransitGatewayRouteTableInput) Validate() error {
+ invalidParams := request.ErrInvalidParams{Context: "CreateTransitGatewayRouteTableInput"}
+ if s.TransitGatewayId == nil {
+ invalidParams.Add(request.NewErrParamRequired("TransitGatewayId"))
+ }
+
+ if invalidParams.Len() > 0 {
+ return invalidParams
+ }
+ return nil
+}
+
+// SetDryRun sets the DryRun field's value.
+func (s *CreateTransitGatewayRouteTableInput) SetDryRun(v bool) *CreateTransitGatewayRouteTableInput {
+ s.DryRun = &v
+ return s
+}
+
+// SetTagSpecifications sets the TagSpecifications field's value.
+func (s *CreateTransitGatewayRouteTableInput) SetTagSpecifications(v []*TagSpecification) *CreateTransitGatewayRouteTableInput {
+ s.TagSpecifications = v
+ return s
+}
+
+// SetTransitGatewayId sets the TransitGatewayId field's value.
+func (s *CreateTransitGatewayRouteTableInput) SetTransitGatewayId(v string) *CreateTransitGatewayRouteTableInput {
+ s.TransitGatewayId = &v
+ return s
+}
+
+type CreateTransitGatewayRouteTableOutput struct {
+ _ struct{} `type:"structure"`
+
+ // Information about the transit gateway route table.
+ TransitGatewayRouteTable *TransitGatewayRouteTable `locationName:"transitGatewayRouteTable" type:"structure"`
+}
+
+// String returns the string representation
+func (s CreateTransitGatewayRouteTableOutput) String() string {
+ return awsutil.Prettify(s)
+}
+
+// GoString returns the string representation
+func (s CreateTransitGatewayRouteTableOutput) GoString() string {
+ return s.String()
+}
+
+// SetTransitGatewayRouteTable sets the TransitGatewayRouteTable field's value.
+func (s *CreateTransitGatewayRouteTableOutput) SetTransitGatewayRouteTable(v *TransitGatewayRouteTable) *CreateTransitGatewayRouteTableOutput {
+ s.TransitGatewayRouteTable = v
+ return s
+}
+
+type CreateTransitGatewayVpcAttachmentInput struct {
+ _ struct{} `type:"structure"`
+
+ // Checks whether you have the required permissions for the action, without
+ // actually making the request, and provides an error response. If you have
+ // the required permissions, the error response is DryRunOperation. Otherwise,
+ // it is UnauthorizedOperation.
+ DryRun *bool `type:"boolean"`
+
+ // The VPC attachment options.
+ Options *CreateTransitGatewayVpcAttachmentRequestOptions `type:"structure"`
+
+ // The IDs of one or more subnets. You can specify only one subnet per Availability
+ // Zone. You must specify at least one subnet, but we recommend that you specify
+ // two subnets for better availability. The transit gateway uses one IP address
+ // from each specified subnet.
+ //
+ // SubnetIds is a required field
+ SubnetIds []*string `locationNameList:"item" type:"list" required:"true"`
+
+ // The tags to apply to the VPC attachment.
+ TagSpecifications []*TagSpecification `locationNameList:"item" type:"list"`
+
+ // The ID of the transit gateway.
+ //
+ // TransitGatewayId is a required field
+ TransitGatewayId *string `type:"string" required:"true"`
+
+ // The ID of the VPC.
+ //
+ // VpcId is a required field
+ VpcId *string `type:"string" required:"true"`
+}
+
+// String returns the string representation
+func (s CreateTransitGatewayVpcAttachmentInput) String() string {
+ return awsutil.Prettify(s)
+}
+
+// GoString returns the string representation
+func (s CreateTransitGatewayVpcAttachmentInput) GoString() string {
+ return s.String()
+}
+
+// Validate inspects the fields of the type to determine if they are valid.
+func (s *CreateTransitGatewayVpcAttachmentInput) Validate() error {
+ invalidParams := request.ErrInvalidParams{Context: "CreateTransitGatewayVpcAttachmentInput"}
+ if s.SubnetIds == nil {
+ invalidParams.Add(request.NewErrParamRequired("SubnetIds"))
+ }
+ if s.TransitGatewayId == nil {
+ invalidParams.Add(request.NewErrParamRequired("TransitGatewayId"))
+ }
+ if s.VpcId == nil {
+ invalidParams.Add(request.NewErrParamRequired("VpcId"))
+ }
+
+ if invalidParams.Len() > 0 {
+ return invalidParams
+ }
+ return nil
+}
+
+// SetDryRun sets the DryRun field's value.
+func (s *CreateTransitGatewayVpcAttachmentInput) SetDryRun(v bool) *CreateTransitGatewayVpcAttachmentInput {
+ s.DryRun = &v
+ return s
+}
+
+// SetOptions sets the Options field's value.
+func (s *CreateTransitGatewayVpcAttachmentInput) SetOptions(v *CreateTransitGatewayVpcAttachmentRequestOptions) *CreateTransitGatewayVpcAttachmentInput {
+ s.Options = v
+ return s
+}
+
+// SetSubnetIds sets the SubnetIds field's value.
+func (s *CreateTransitGatewayVpcAttachmentInput) SetSubnetIds(v []*string) *CreateTransitGatewayVpcAttachmentInput {
+ s.SubnetIds = v
+ return s
+}
+
+// SetTagSpecifications sets the TagSpecifications field's value.
+func (s *CreateTransitGatewayVpcAttachmentInput) SetTagSpecifications(v []*TagSpecification) *CreateTransitGatewayVpcAttachmentInput {
+ s.TagSpecifications = v
+ return s
+}
+
+// SetTransitGatewayId sets the TransitGatewayId field's value.
+func (s *CreateTransitGatewayVpcAttachmentInput) SetTransitGatewayId(v string) *CreateTransitGatewayVpcAttachmentInput {
+ s.TransitGatewayId = &v
+ return s
+}
+
+// SetVpcId sets the VpcId field's value.
+func (s *CreateTransitGatewayVpcAttachmentInput) SetVpcId(v string) *CreateTransitGatewayVpcAttachmentInput {
+ s.VpcId = &v
+ return s
+}
+
+type CreateTransitGatewayVpcAttachmentOutput struct {
+ _ struct{} `type:"structure"`
+
+ // Information about the VPC attachment.
+ TransitGatewayVpcAttachment *TransitGatewayVpcAttachment `locationName:"transitGatewayVpcAttachment" type:"structure"`
+}
+
+// String returns the string representation
+func (s CreateTransitGatewayVpcAttachmentOutput) String() string {
+ return awsutil.Prettify(s)
+}
+
+// GoString returns the string representation
+func (s CreateTransitGatewayVpcAttachmentOutput) GoString() string {
+ return s.String()
+}
+
+// SetTransitGatewayVpcAttachment sets the TransitGatewayVpcAttachment field's value.
+func (s *CreateTransitGatewayVpcAttachmentOutput) SetTransitGatewayVpcAttachment(v *TransitGatewayVpcAttachment) *CreateTransitGatewayVpcAttachmentOutput {
+ s.TransitGatewayVpcAttachment = v
+ return s
+}
+
+// Describes the options for a VPC attachment.
+type CreateTransitGatewayVpcAttachmentRequestOptions struct {
+ _ struct{} `type:"structure"`
+
+ // Enable or disable DNS support. The default is enable.
+ DnsSupport *string `type:"string" enum:"DnsSupportValue"`
+
+ // Enable or disable IPv6 support. The default is enable.
+ Ipv6Support *string `type:"string" enum:"Ipv6SupportValue"`
+}
+
+// String returns the string representation
+func (s CreateTransitGatewayVpcAttachmentRequestOptions) String() string {
+ return awsutil.Prettify(s)
+}
+
+// GoString returns the string representation
+func (s CreateTransitGatewayVpcAttachmentRequestOptions) GoString() string {
+ return s.String()
+}
+
+// SetDnsSupport sets the DnsSupport field's value.
+func (s *CreateTransitGatewayVpcAttachmentRequestOptions) SetDnsSupport(v string) *CreateTransitGatewayVpcAttachmentRequestOptions {
+ s.DnsSupport = &v
+ return s
+}
+
+// SetIpv6Support sets the Ipv6Support field's value.
+func (s *CreateTransitGatewayVpcAttachmentRequestOptions) SetIpv6Support(v string) *CreateTransitGatewayVpcAttachmentRequestOptions {
+ s.Ipv6Support = &v
+ return s
+}
+
// Contains the parameters for CreateVolume.
type CreateVolumeInput struct {
_ struct{} `type:"structure"`
@@ -30269,8 +37781,12 @@ type CreateVolumeInput struct {
Encrypted *bool `locationName:"encrypted" type:"boolean"`
// The number of I/O operations per second (IOPS) to provision for the volume,
- // with a maximum ratio of 50 IOPS/GiB. Range is 100 to 32000 IOPS for volumes
- // in most regions. For exceptions, see Amazon EBS Volume Types (http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSVolumeTypes.html).
+ // with a maximum ratio of 50 IOPS/GiB. Range is 100 to 64,000 IOPS for volumes
+ // in most regions. Maximum IOPS of 64,000 is guaranteed only on Nitro-based
+ // instances (AWSEC2/latest/UserGuide/instance-types.html#ec2-nitro-instances).
+ // Other instance families guarantee performance up to 32,000 IOPS. For more
+ // information, see Amazon EBS Volume Types (http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSVolumeTypes.html)
+ // in the Amazon Elastic Compute Cloud User Guide.
//
// This parameter is valid only for Provisioned IOPS SSD (io1) volumes.
Iops *int64 `type:"integer"`
@@ -30304,9 +37820,9 @@ type CreateVolumeInput struct {
// The size of the volume, in GiBs.
//
- // Constraints: 1-16384 for gp2, 4-16384 for io1, 500-16384 for st1, 500-16384
- // for sc1, and 1-1024 for standard. If you specify a snapshot, the volume size
- // must be equal to or larger than the snapshot size.
+ // Constraints: 1-16,384 for gp2, 4-16,384 for io1, 500-16,384 for st1, 500-16,384
+ // for sc1, and 1-1,024 for standard. If you specify a snapshot, the volume
+ // size must be equal to or larger than the snapshot size.
//
// Default: If you're creating the volume from a snapshot and don't specify
// a volume size, the default is the snapshot size.
@@ -30635,7 +38151,7 @@ type CreateVpcEndpointInput struct {
// true: enableDnsHostnames and enableDnsSupport. Use ModifyVpcAttribute to
// set the VPC attributes.
//
- // Default: true
+ // Default: false
PrivateDnsEnabled *bool `type:"boolean"`
// (Gateway endpoint) One or more route table IDs.
@@ -30890,7 +38406,6 @@ func (s *CreateVpcEndpointServiceConfigurationOutput) SetServiceConfiguration(v
return s
}
-// Contains the parameters for CreateVpc.
type CreateVpcInput struct {
_ struct{} `type:"structure"`
@@ -30970,7 +38485,6 @@ func (s *CreateVpcInput) SetInstanceTenancy(v string) *CreateVpcInput {
return s
}
-// Contains the output of CreateVpc.
type CreateVpcOutput struct {
_ struct{} `type:"structure"`
@@ -30994,7 +38508,6 @@ func (s *CreateVpcOutput) SetVpc(v *Vpc) *CreateVpcOutput {
return s
}
-// Contains the parameters for CreateVpcPeeringConnection.
type CreateVpcPeeringConnectionInput struct {
_ struct{} `type:"structure"`
@@ -31063,7 +38576,6 @@ func (s *CreateVpcPeeringConnectionInput) SetVpcId(v string) *CreateVpcPeeringCo
return s
}
-// Contains the output of CreateVpcPeeringConnection.
type CreateVpcPeeringConnectionOutput struct {
_ struct{} `type:"structure"`
@@ -31105,15 +38617,18 @@ type CreateVpnConnectionInput struct {
// The options for the VPN connection.
Options *VpnConnectionOptionsSpecification `locationName:"options" type:"structure"`
+ // The ID of the transit gateway. If you specify a transit gateway, you cannot
+ // specify a virtual private gateway.
+ TransitGatewayId *string `type:"string"`
+
// The type of VPN connection (ipsec.1).
//
// Type is a required field
Type *string `type:"string" required:"true"`
- // The ID of the virtual private gateway.
- //
- // VpnGatewayId is a required field
- VpnGatewayId *string `type:"string" required:"true"`
+ // The ID of the virtual private gateway. If you specify a virtual private gateway,
+ // you cannot specify a transit gateway.
+ VpnGatewayId *string `type:"string"`
}
// String returns the string representation
@@ -31135,9 +38650,6 @@ func (s *CreateVpnConnectionInput) Validate() error {
if s.Type == nil {
invalidParams.Add(request.NewErrParamRequired("Type"))
}
- if s.VpnGatewayId == nil {
- invalidParams.Add(request.NewErrParamRequired("VpnGatewayId"))
- }
if invalidParams.Len() > 0 {
return invalidParams
@@ -31163,6 +38675,12 @@ func (s *CreateVpnConnectionInput) SetOptions(v *VpnConnectionOptionsSpecificati
return s
}
+// SetTransitGatewayId sets the TransitGatewayId field's value.
+func (s *CreateVpnConnectionInput) SetTransitGatewayId(v string) *CreateVpnConnectionInput {
+ s.TransitGatewayId = &v
+ return s
+}
+
// SetType sets the Type field's value.
func (s *CreateVpnConnectionInput) SetType(v string) *CreateVpnConnectionInput {
s.Type = &v
@@ -31363,11 +38881,12 @@ func (s *CreateVpnGatewayOutput) SetVpnGateway(v *VpnGateway) *CreateVpnGatewayO
return s
}
-// Describes the credit option for CPU usage of a T2 instance.
+// Describes the credit option for CPU usage of a T2 or T3 instance.
type CreditSpecification struct {
_ struct{} `type:"structure"`
- // The credit option for CPU usage of a T2 instance.
+ // The credit option for CPU usage of a T2 or T3 instance. Valid values are
+ // standard and unlimited.
CpuCredits *string `locationName:"cpuCredits" type:"string"`
}
@@ -31387,12 +38906,12 @@ func (s *CreditSpecification) SetCpuCredits(v string) *CreditSpecification {
return s
}
-// The credit option for CPU usage of a T2 instance.
+// The credit option for CPU usage of a T2 or T3 instance.
type CreditSpecificationRequest struct {
_ struct{} `type:"structure"`
- // The credit option for CPU usage of a T2 instance. Valid values are standard
- // and unlimited.
+ // The credit option for CPU usage of a T2 or T3 instance. Valid values are
+ // standard and unlimited.
//
// CpuCredits is a required field
CpuCredits *string `type:"string" required:"true"`
@@ -31498,6 +39017,175 @@ func (s *CustomerGateway) SetType(v string) *CustomerGateway {
return s
}
+type DeleteClientVpnEndpointInput struct {
+ _ struct{} `type:"structure"`
+
+ // The ID of the Client VPN to be deleted.
+ //
+ // ClientVpnEndpointId is a required field
+ ClientVpnEndpointId *string `type:"string" required:"true"`
+
+ // Checks whether you have the required permissions for the action, without
+ // actually making the request, and provides an error response. If you have
+ // the required permissions, the error response is DryRunOperation. Otherwise,
+ // it is UnauthorizedOperation.
+ DryRun *bool `type:"boolean"`
+}
+
+// String returns the string representation
+func (s DeleteClientVpnEndpointInput) String() string {
+ return awsutil.Prettify(s)
+}
+
+// GoString returns the string representation
+func (s DeleteClientVpnEndpointInput) GoString() string {
+ return s.String()
+}
+
+// Validate inspects the fields of the type to determine if they are valid.
+func (s *DeleteClientVpnEndpointInput) Validate() error {
+ invalidParams := request.ErrInvalidParams{Context: "DeleteClientVpnEndpointInput"}
+ if s.ClientVpnEndpointId == nil {
+ invalidParams.Add(request.NewErrParamRequired("ClientVpnEndpointId"))
+ }
+
+ if invalidParams.Len() > 0 {
+ return invalidParams
+ }
+ return nil
+}
+
+// SetClientVpnEndpointId sets the ClientVpnEndpointId field's value.
+func (s *DeleteClientVpnEndpointInput) SetClientVpnEndpointId(v string) *DeleteClientVpnEndpointInput {
+ s.ClientVpnEndpointId = &v
+ return s
+}
+
+// SetDryRun sets the DryRun field's value.
+func (s *DeleteClientVpnEndpointInput) SetDryRun(v bool) *DeleteClientVpnEndpointInput {
+ s.DryRun = &v
+ return s
+}
+
+type DeleteClientVpnEndpointOutput struct {
+ _ struct{} `type:"structure"`
+
+ // The current state of the Client VPN endpoint.
+ Status *ClientVpnEndpointStatus `locationName:"status" type:"structure"`
+}
+
+// String returns the string representation
+func (s DeleteClientVpnEndpointOutput) String() string {
+ return awsutil.Prettify(s)
+}
+
+// GoString returns the string representation
+func (s DeleteClientVpnEndpointOutput) GoString() string {
+ return s.String()
+}
+
+// SetStatus sets the Status field's value.
+func (s *DeleteClientVpnEndpointOutput) SetStatus(v *ClientVpnEndpointStatus) *DeleteClientVpnEndpointOutput {
+ s.Status = v
+ return s
+}
+
+type DeleteClientVpnRouteInput struct {
+ _ struct{} `type:"structure"`
+
+ // The ID of the Client VPN endpoint from which the route is to be deleted.
+ //
+ // ClientVpnEndpointId is a required field
+ ClientVpnEndpointId *string `type:"string" required:"true"`
+
+ // The IPv4 address range, in CIDR notation, of the route to be deleted.
+ //
+ // DestinationCidrBlock is a required field
+ DestinationCidrBlock *string `type:"string" required:"true"`
+
+ // Checks whether you have the required permissions for the action, without
+ // actually making the request, and provides an error response. If you have
+ // the required permissions, the error response is DryRunOperation. Otherwise,
+ // it is UnauthorizedOperation.
+ DryRun *bool `type:"boolean"`
+
+ // The ID of the target subnet used by the route.
+ TargetVpcSubnetId *string `type:"string"`
+}
+
+// String returns the string representation
+func (s DeleteClientVpnRouteInput) String() string {
+ return awsutil.Prettify(s)
+}
+
+// GoString returns the string representation
+func (s DeleteClientVpnRouteInput) GoString() string {
+ return s.String()
+}
+
+// Validate inspects the fields of the type to determine if they are valid.
+func (s *DeleteClientVpnRouteInput) Validate() error {
+ invalidParams := request.ErrInvalidParams{Context: "DeleteClientVpnRouteInput"}
+ if s.ClientVpnEndpointId == nil {
+ invalidParams.Add(request.NewErrParamRequired("ClientVpnEndpointId"))
+ }
+ if s.DestinationCidrBlock == nil {
+ invalidParams.Add(request.NewErrParamRequired("DestinationCidrBlock"))
+ }
+
+ if invalidParams.Len() > 0 {
+ return invalidParams
+ }
+ return nil
+}
+
+// SetClientVpnEndpointId sets the ClientVpnEndpointId field's value.
+func (s *DeleteClientVpnRouteInput) SetClientVpnEndpointId(v string) *DeleteClientVpnRouteInput {
+ s.ClientVpnEndpointId = &v
+ return s
+}
+
+// SetDestinationCidrBlock sets the DestinationCidrBlock field's value.
+func (s *DeleteClientVpnRouteInput) SetDestinationCidrBlock(v string) *DeleteClientVpnRouteInput {
+ s.DestinationCidrBlock = &v
+ return s
+}
+
+// SetDryRun sets the DryRun field's value.
+func (s *DeleteClientVpnRouteInput) SetDryRun(v bool) *DeleteClientVpnRouteInput {
+ s.DryRun = &v
+ return s
+}
+
+// SetTargetVpcSubnetId sets the TargetVpcSubnetId field's value.
+func (s *DeleteClientVpnRouteInput) SetTargetVpcSubnetId(v string) *DeleteClientVpnRouteInput {
+ s.TargetVpcSubnetId = &v
+ return s
+}
+
+type DeleteClientVpnRouteOutput struct {
+ _ struct{} `type:"structure"`
+
+ // The current state of the route.
+ Status *ClientVpnRouteStatus `locationName:"status" type:"structure"`
+}
+
+// String returns the string representation
+func (s DeleteClientVpnRouteOutput) String() string {
+ return awsutil.Prettify(s)
+}
+
+// GoString returns the string representation
+func (s DeleteClientVpnRouteOutput) GoString() string {
+ return s.String()
+}
+
+// SetStatus sets the Status field's value.
+func (s *DeleteClientVpnRouteOutput) SetStatus(v *ClientVpnRouteStatus) *DeleteClientVpnRouteOutput {
+ s.Status = v
+ return s
+}
+
// Contains the parameters for DeleteCustomerGateway.
type DeleteCustomerGatewayInput struct {
_ struct{} `type:"structure"`
@@ -31563,7 +39251,6 @@ func (s DeleteCustomerGatewayOutput) GoString() string {
return s.String()
}
-// Contains the parameters for DeleteDhcpOptions.
type DeleteDhcpOptionsInput struct {
_ struct{} `type:"structure"`
@@ -31637,7 +39324,7 @@ type DeleteEgressOnlyInternetGatewayInput struct {
// it is UnauthorizedOperation.
DryRun *bool `type:"boolean"`
- // The ID of the egress-only Internet gateway.
+ // The ID of the egress-only internet gateway.
//
// EgressOnlyInternetGatewayId is a required field
EgressOnlyInternetGatewayId *string `type:"string" required:"true"`
@@ -31906,10 +39593,15 @@ func (s *DeleteFleetsOutput) SetUnsuccessfulFleetDeletions(v []*DeleteFleetError
return s
}
-// Contains the parameters for DeleteFlowLogs.
type DeleteFlowLogsInput struct {
_ struct{} `type:"structure"`
+ // Checks whether you have the required permissions for the action, without
+ // actually making the request, and provides an error response. If you have
+ // the required permissions, the error response is DryRunOperation. Otherwise,
+ // it is UnauthorizedOperation.
+ DryRun *bool `type:"boolean"`
+
// One or more flow log IDs.
//
// FlowLogIds is a required field
@@ -31939,13 +39631,18 @@ func (s *DeleteFlowLogsInput) Validate() error {
return nil
}
+// SetDryRun sets the DryRun field's value.
+func (s *DeleteFlowLogsInput) SetDryRun(v bool) *DeleteFlowLogsInput {
+ s.DryRun = &v
+ return s
+}
+
// SetFlowLogIds sets the FlowLogIds field's value.
func (s *DeleteFlowLogsInput) SetFlowLogIds(v []*string) *DeleteFlowLogsInput {
s.FlowLogIds = v
return s
}
-// Contains the output of DeleteFlowLogs.
type DeleteFlowLogsOutput struct {
_ struct{} `type:"structure"`
@@ -32042,7 +39739,6 @@ func (s *DeleteFpgaImageOutput) SetReturn(v bool) *DeleteFpgaImageOutput {
return s
}
-// Contains the parameters for DeleteInternetGateway.
type DeleteInternetGatewayInput struct {
_ struct{} `type:"structure"`
@@ -32052,7 +39748,7 @@ type DeleteInternetGatewayInput struct {
// it is UnauthorizedOperation.
DryRun *bool `locationName:"dryRun" type:"boolean"`
- // The ID of the Internet gateway.
+ // The ID of the internet gateway.
//
// InternetGatewayId is a required field
InternetGatewayId *string `locationName:"internetGatewayId" type:"string" required:"true"`
@@ -32107,7 +39803,6 @@ func (s DeleteInternetGatewayOutput) GoString() string {
return s.String()
}
-// Contains the parameters for DeleteKeyPair.
type DeleteKeyPairInput struct {
_ struct{} `type:"structure"`
@@ -32452,7 +40147,6 @@ func (s *DeleteLaunchTemplateVersionsResponseSuccessItem) SetVersionNumber(v int
return s
}
-// Contains the parameters for DeleteNatGateway.
type DeleteNatGatewayInput struct {
_ struct{} `type:"structure"`
@@ -32491,7 +40185,6 @@ func (s *DeleteNatGatewayInput) SetNatGatewayId(v string) *DeleteNatGatewayInput
return s
}
-// Contains the output of DeleteNatGateway.
type DeleteNatGatewayOutput struct {
_ struct{} `type:"structure"`
@@ -32515,7 +40208,6 @@ func (s *DeleteNatGatewayOutput) SetNatGatewayId(v string) *DeleteNatGatewayOutp
return s
}
-// Contains the parameters for DeleteNetworkAclEntry.
type DeleteNetworkAclEntryInput struct {
_ struct{} `type:"structure"`
@@ -32608,7 +40300,6 @@ func (s DeleteNetworkAclEntryOutput) GoString() string {
return s.String()
}
-// Contains the parameters for DeleteNetworkAcl.
type DeleteNetworkAclInput struct {
_ struct{} `type:"structure"`
@@ -32823,7 +40514,6 @@ func (s *DeleteNetworkInterfacePermissionOutput) SetReturn(v bool) *DeleteNetwor
return s
}
-// Contains the parameters for DeletePlacementGroup.
type DeletePlacementGroupInput struct {
_ struct{} `type:"structure"`
@@ -32888,7 +40578,6 @@ func (s DeletePlacementGroupOutput) GoString() string {
return s.String()
}
-// Contains the parameters for DeleteRoute.
type DeleteRouteInput struct {
_ struct{} `type:"structure"`
@@ -32973,7 +40662,6 @@ func (s DeleteRouteOutput) GoString() string {
return s.String()
}
-// Contains the parameters for DeleteRouteTable.
type DeleteRouteTableInput struct {
_ struct{} `type:"structure"`
@@ -33038,7 +40726,6 @@ func (s DeleteRouteTableOutput) GoString() string {
return s.String()
}
-// Contains the parameters for DeleteSecurityGroup.
type DeleteSecurityGroupInput struct {
_ struct{} `type:"structure"`
@@ -33204,7 +40891,6 @@ func (s DeleteSpotDatafeedSubscriptionOutput) GoString() string {
return s.String()
}
-// Contains the parameters for DeleteSubnet.
type DeleteSubnetInput struct {
_ struct{} `type:"structure"`
@@ -33269,7 +40955,6 @@ func (s DeleteSubnetOutput) GoString() string {
return s.String()
}
-// Contains the parameters for DeleteTags.
type DeleteTagsInput struct {
_ struct{} `type:"structure"`
@@ -33279,7 +40964,10 @@ type DeleteTagsInput struct {
// it is UnauthorizedOperation.
DryRun *bool `locationName:"dryRun" type:"boolean"`
- // The IDs of one or more resources.
+ // The IDs of one or more resources, separated by spaces.
+ //
+ // Constraints: Up to 1000 resource IDs. We recommend breaking up this request
+ // into smaller batches.
//
// Resources is a required field
Resources []*string `locationName:"resourceId" type:"list" required:"true"`
@@ -33350,6 +41038,312 @@ func (s DeleteTagsOutput) GoString() string {
return s.String()
}
+type DeleteTransitGatewayInput struct {
+ _ struct{} `type:"structure"`
+
+ // Checks whether you have the required permissions for the action, without
+ // actually making the request, and provides an error response. If you have
+ // the required permissions, the error response is DryRunOperation. Otherwise,
+ // it is UnauthorizedOperation.
+ DryRun *bool `type:"boolean"`
+
+ // The ID of the transit gateway.
+ //
+ // TransitGatewayId is a required field
+ TransitGatewayId *string `type:"string" required:"true"`
+}
+
+// String returns the string representation
+func (s DeleteTransitGatewayInput) String() string {
+ return awsutil.Prettify(s)
+}
+
+// GoString returns the string representation
+func (s DeleteTransitGatewayInput) GoString() string {
+ return s.String()
+}
+
+// Validate inspects the fields of the type to determine if they are valid.
+func (s *DeleteTransitGatewayInput) Validate() error {
+ invalidParams := request.ErrInvalidParams{Context: "DeleteTransitGatewayInput"}
+ if s.TransitGatewayId == nil {
+ invalidParams.Add(request.NewErrParamRequired("TransitGatewayId"))
+ }
+
+ if invalidParams.Len() > 0 {
+ return invalidParams
+ }
+ return nil
+}
+
+// SetDryRun sets the DryRun field's value.
+func (s *DeleteTransitGatewayInput) SetDryRun(v bool) *DeleteTransitGatewayInput {
+ s.DryRun = &v
+ return s
+}
+
+// SetTransitGatewayId sets the TransitGatewayId field's value.
+func (s *DeleteTransitGatewayInput) SetTransitGatewayId(v string) *DeleteTransitGatewayInput {
+ s.TransitGatewayId = &v
+ return s
+}
+
+type DeleteTransitGatewayOutput struct {
+ _ struct{} `type:"structure"`
+
+ // Information about the deleted transit gateway.
+ TransitGateway *TransitGateway `locationName:"transitGateway" type:"structure"`
+}
+
+// String returns the string representation
+func (s DeleteTransitGatewayOutput) String() string {
+ return awsutil.Prettify(s)
+}
+
+// GoString returns the string representation
+func (s DeleteTransitGatewayOutput) GoString() string {
+ return s.String()
+}
+
+// SetTransitGateway sets the TransitGateway field's value.
+func (s *DeleteTransitGatewayOutput) SetTransitGateway(v *TransitGateway) *DeleteTransitGatewayOutput {
+ s.TransitGateway = v
+ return s
+}
+
+type DeleteTransitGatewayRouteInput struct {
+ _ struct{} `type:"structure"`
+
+ // The CIDR range for the route. This must match the CIDR for the route exactly.
+ //
+ // DestinationCidrBlock is a required field
+ DestinationCidrBlock *string `type:"string" required:"true"`
+
+ // Checks whether you have the required permissions for the action, without
+ // actually making the request, and provides an error response. If you have
+ // the required permissions, the error response is DryRunOperation. Otherwise,
+ // it is UnauthorizedOperation.
+ DryRun *bool `type:"boolean"`
+
+ // The ID of the transit gateway route table.
+ //
+ // TransitGatewayRouteTableId is a required field
+ TransitGatewayRouteTableId *string `type:"string" required:"true"`
+}
+
+// String returns the string representation
+func (s DeleteTransitGatewayRouteInput) String() string {
+ return awsutil.Prettify(s)
+}
+
+// GoString returns the string representation
+func (s DeleteTransitGatewayRouteInput) GoString() string {
+ return s.String()
+}
+
+// Validate inspects the fields of the type to determine if they are valid.
+func (s *DeleteTransitGatewayRouteInput) Validate() error {
+ invalidParams := request.ErrInvalidParams{Context: "DeleteTransitGatewayRouteInput"}
+ if s.DestinationCidrBlock == nil {
+ invalidParams.Add(request.NewErrParamRequired("DestinationCidrBlock"))
+ }
+ if s.TransitGatewayRouteTableId == nil {
+ invalidParams.Add(request.NewErrParamRequired("TransitGatewayRouteTableId"))
+ }
+
+ if invalidParams.Len() > 0 {
+ return invalidParams
+ }
+ return nil
+}
+
+// SetDestinationCidrBlock sets the DestinationCidrBlock field's value.
+func (s *DeleteTransitGatewayRouteInput) SetDestinationCidrBlock(v string) *DeleteTransitGatewayRouteInput {
+ s.DestinationCidrBlock = &v
+ return s
+}
+
+// SetDryRun sets the DryRun field's value.
+func (s *DeleteTransitGatewayRouteInput) SetDryRun(v bool) *DeleteTransitGatewayRouteInput {
+ s.DryRun = &v
+ return s
+}
+
+// SetTransitGatewayRouteTableId sets the TransitGatewayRouteTableId field's value.
+func (s *DeleteTransitGatewayRouteInput) SetTransitGatewayRouteTableId(v string) *DeleteTransitGatewayRouteInput {
+ s.TransitGatewayRouteTableId = &v
+ return s
+}
+
+type DeleteTransitGatewayRouteOutput struct {
+ _ struct{} `type:"structure"`
+
+ // Information about the route.
+ Route *TransitGatewayRoute `locationName:"route" type:"structure"`
+}
+
+// String returns the string representation
+func (s DeleteTransitGatewayRouteOutput) String() string {
+ return awsutil.Prettify(s)
+}
+
+// GoString returns the string representation
+func (s DeleteTransitGatewayRouteOutput) GoString() string {
+ return s.String()
+}
+
+// SetRoute sets the Route field's value.
+func (s *DeleteTransitGatewayRouteOutput) SetRoute(v *TransitGatewayRoute) *DeleteTransitGatewayRouteOutput {
+ s.Route = v
+ return s
+}
+
+type DeleteTransitGatewayRouteTableInput struct {
+ _ struct{} `type:"structure"`
+
+ // Checks whether you have the required permissions for the action, without
+ // actually making the request, and provides an error response. If you have
+ // the required permissions, the error response is DryRunOperation. Otherwise,
+ // it is UnauthorizedOperation.
+ DryRun *bool `type:"boolean"`
+
+ // The ID of the transit gateway route table.
+ //
+ // TransitGatewayRouteTableId is a required field
+ TransitGatewayRouteTableId *string `type:"string" required:"true"`
+}
+
+// String returns the string representation
+func (s DeleteTransitGatewayRouteTableInput) String() string {
+ return awsutil.Prettify(s)
+}
+
+// GoString returns the string representation
+func (s DeleteTransitGatewayRouteTableInput) GoString() string {
+ return s.String()
+}
+
+// Validate inspects the fields of the type to determine if they are valid.
+func (s *DeleteTransitGatewayRouteTableInput) Validate() error {
+ invalidParams := request.ErrInvalidParams{Context: "DeleteTransitGatewayRouteTableInput"}
+ if s.TransitGatewayRouteTableId == nil {
+ invalidParams.Add(request.NewErrParamRequired("TransitGatewayRouteTableId"))
+ }
+
+ if invalidParams.Len() > 0 {
+ return invalidParams
+ }
+ return nil
+}
+
+// SetDryRun sets the DryRun field's value.
+func (s *DeleteTransitGatewayRouteTableInput) SetDryRun(v bool) *DeleteTransitGatewayRouteTableInput {
+ s.DryRun = &v
+ return s
+}
+
+// SetTransitGatewayRouteTableId sets the TransitGatewayRouteTableId field's value.
+func (s *DeleteTransitGatewayRouteTableInput) SetTransitGatewayRouteTableId(v string) *DeleteTransitGatewayRouteTableInput {
+ s.TransitGatewayRouteTableId = &v
+ return s
+}
+
+type DeleteTransitGatewayRouteTableOutput struct {
+ _ struct{} `type:"structure"`
+
+ // Information about the deleted transit gateway route table.
+ TransitGatewayRouteTable *TransitGatewayRouteTable `locationName:"transitGatewayRouteTable" type:"structure"`
+}
+
+// String returns the string representation
+func (s DeleteTransitGatewayRouteTableOutput) String() string {
+ return awsutil.Prettify(s)
+}
+
+// GoString returns the string representation
+func (s DeleteTransitGatewayRouteTableOutput) GoString() string {
+ return s.String()
+}
+
+// SetTransitGatewayRouteTable sets the TransitGatewayRouteTable field's value.
+func (s *DeleteTransitGatewayRouteTableOutput) SetTransitGatewayRouteTable(v *TransitGatewayRouteTable) *DeleteTransitGatewayRouteTableOutput {
+ s.TransitGatewayRouteTable = v
+ return s
+}
+
+type DeleteTransitGatewayVpcAttachmentInput struct {
+ _ struct{} `type:"structure"`
+
+ // Checks whether you have the required permissions for the action, without
+ // actually making the request, and provides an error response. If you have
+ // the required permissions, the error response is DryRunOperation. Otherwise,
+ // it is UnauthorizedOperation.
+ DryRun *bool `type:"boolean"`
+
+ // The ID of the attachment.
+ //
+ // TransitGatewayAttachmentId is a required field
+ TransitGatewayAttachmentId *string `type:"string" required:"true"`
+}
+
+// String returns the string representation
+func (s DeleteTransitGatewayVpcAttachmentInput) String() string {
+ return awsutil.Prettify(s)
+}
+
+// GoString returns the string representation
+func (s DeleteTransitGatewayVpcAttachmentInput) GoString() string {
+ return s.String()
+}
+
+// Validate inspects the fields of the type to determine if they are valid.
+func (s *DeleteTransitGatewayVpcAttachmentInput) Validate() error {
+ invalidParams := request.ErrInvalidParams{Context: "DeleteTransitGatewayVpcAttachmentInput"}
+ if s.TransitGatewayAttachmentId == nil {
+ invalidParams.Add(request.NewErrParamRequired("TransitGatewayAttachmentId"))
+ }
+
+ if invalidParams.Len() > 0 {
+ return invalidParams
+ }
+ return nil
+}
+
+// SetDryRun sets the DryRun field's value.
+func (s *DeleteTransitGatewayVpcAttachmentInput) SetDryRun(v bool) *DeleteTransitGatewayVpcAttachmentInput {
+ s.DryRun = &v
+ return s
+}
+
+// SetTransitGatewayAttachmentId sets the TransitGatewayAttachmentId field's value.
+func (s *DeleteTransitGatewayVpcAttachmentInput) SetTransitGatewayAttachmentId(v string) *DeleteTransitGatewayVpcAttachmentInput {
+ s.TransitGatewayAttachmentId = &v
+ return s
+}
+
+type DeleteTransitGatewayVpcAttachmentOutput struct {
+ _ struct{} `type:"structure"`
+
+ // Information about the deleted VPC attachment.
+ TransitGatewayVpcAttachment *TransitGatewayVpcAttachment `locationName:"transitGatewayVpcAttachment" type:"structure"`
+}
+
+// String returns the string representation
+func (s DeleteTransitGatewayVpcAttachmentOutput) String() string {
+ return awsutil.Prettify(s)
+}
+
+// GoString returns the string representation
+func (s DeleteTransitGatewayVpcAttachmentOutput) GoString() string {
+ return s.String()
+}
+
+// SetTransitGatewayVpcAttachment sets the TransitGatewayVpcAttachment field's value.
+func (s *DeleteTransitGatewayVpcAttachmentOutput) SetTransitGatewayVpcAttachment(v *TransitGatewayVpcAttachment) *DeleteTransitGatewayVpcAttachmentOutput {
+ s.TransitGatewayVpcAttachment = v
+ return s
+}
+
// Contains the parameters for DeleteVolume.
type DeleteVolumeInput struct {
_ struct{} `type:"structure"`
@@ -33636,7 +41630,6 @@ func (s *DeleteVpcEndpointsOutput) SetUnsuccessful(v []*UnsuccessfulItem) *Delet
return s
}
-// Contains the parameters for DeleteVpc.
type DeleteVpcInput struct {
_ struct{} `type:"structure"`
@@ -33701,7 +41694,6 @@ func (s DeleteVpcOutput) GoString() string {
return s.String()
}
-// Contains the parameters for DeleteVpcPeeringConnection.
type DeleteVpcPeeringConnectionInput struct {
_ struct{} `type:"structure"`
@@ -33752,7 +41744,6 @@ func (s *DeleteVpcPeeringConnectionInput) SetVpcPeeringConnectionId(v string) *D
return s
}
-// Contains the output of DeleteVpcPeeringConnection.
type DeleteVpcPeeringConnectionOutput struct {
_ struct{} `type:"structure"`
@@ -33973,6 +41964,80 @@ func (s DeleteVpnGatewayOutput) GoString() string {
return s.String()
}
+type DeprovisionByoipCidrInput struct {
+ _ struct{} `type:"structure"`
+
+ // The public IPv4 address range, in CIDR notation. The prefix must be the same
+ // prefix that you specified when you provisioned the address range.
+ //
+ // Cidr is a required field
+ Cidr *string `type:"string" required:"true"`
+
+ // Checks whether you have the required permissions for the action, without
+ // actually making the request, and provides an error response. If you have
+ // the required permissions, the error response is DryRunOperation. Otherwise,
+ // it is UnauthorizedOperation.
+ DryRun *bool `type:"boolean"`
+}
+
+// String returns the string representation
+func (s DeprovisionByoipCidrInput) String() string {
+ return awsutil.Prettify(s)
+}
+
+// GoString returns the string representation
+func (s DeprovisionByoipCidrInput) GoString() string {
+ return s.String()
+}
+
+// Validate inspects the fields of the type to determine if they are valid.
+func (s *DeprovisionByoipCidrInput) Validate() error {
+ invalidParams := request.ErrInvalidParams{Context: "DeprovisionByoipCidrInput"}
+ if s.Cidr == nil {
+ invalidParams.Add(request.NewErrParamRequired("Cidr"))
+ }
+
+ if invalidParams.Len() > 0 {
+ return invalidParams
+ }
+ return nil
+}
+
+// SetCidr sets the Cidr field's value.
+func (s *DeprovisionByoipCidrInput) SetCidr(v string) *DeprovisionByoipCidrInput {
+ s.Cidr = &v
+ return s
+}
+
+// SetDryRun sets the DryRun field's value.
+func (s *DeprovisionByoipCidrInput) SetDryRun(v bool) *DeprovisionByoipCidrInput {
+ s.DryRun = &v
+ return s
+}
+
+type DeprovisionByoipCidrOutput struct {
+ _ struct{} `type:"structure"`
+
+ // Information about the address range.
+ ByoipCidr *ByoipCidr `locationName:"byoipCidr" type:"structure"`
+}
+
+// String returns the string representation
+func (s DeprovisionByoipCidrOutput) String() string {
+ return awsutil.Prettify(s)
+}
+
+// GoString returns the string representation
+func (s DeprovisionByoipCidrOutput) GoString() string {
+ return s.String()
+}
+
+// SetByoipCidr sets the ByoipCidr field's value.
+func (s *DeprovisionByoipCidrOutput) SetByoipCidr(v *ByoipCidr) *DeprovisionByoipCidrOutput {
+ s.ByoipCidr = v
+ return s
+}
+
// Contains the parameters for DeregisterImage.
type DeregisterImageInput struct {
_ struct{} `type:"structure"`
@@ -34038,7 +42103,6 @@ func (s DeregisterImageOutput) GoString() string {
return s.String()
}
-// Contains the parameters for DescribeAccountAttributes.
type DescribeAccountAttributesInput struct {
_ struct{} `type:"structure"`
@@ -34074,7 +42138,6 @@ func (s *DescribeAccountAttributesInput) SetDryRun(v bool) *DescribeAccountAttri
return s
}
-// Contains the output of DescribeAccountAttributes.
type DescribeAccountAttributesOutput struct {
_ struct{} `type:"structure"`
@@ -34098,7 +42161,6 @@ func (s *DescribeAccountAttributesOutput) SetAccountAttributes(v []*AccountAttri
return s
}
-// Contains the parameters for DescribeAddresses.
type DescribeAddressesInput struct {
_ struct{} `type:"structure"`
@@ -34135,17 +42197,15 @@ type DescribeAddressesInput struct {
//
// * public-ip - The Elastic IP address.
//
- // * tag:key=value - The key/value combination of a tag assigned to the resource.
- // Specify the key of the tag in the filter name and the value of the tag
- // in the filter value. For example, for the tag Purpose=X, specify tag:Purpose
- // for the filter name and X for the filter value.
+ // * tag: - The key/value combination of a tag assigned to the resource.
+ // Use the tag key in the filter name and the tag value as the filter value.
+ // For example, to find all resources that have a tag with the key Owner
+ // and the value TeamA, specify tag:Owner for the filter name and TeamA for
+ // the filter value.
//
- // * tag-key - The key of a tag assigned to the resource. This filter is
- // independent of the tag-value filter. For example, if you use both the
- // filter "tag-key=Purpose" and the filter "tag-value=X", you get any resources
- // assigned both the tag key Purpose (regardless of what the tag's value
- // is), and the tag value X (regardless of the tag's key). If you want to
- // list only resources where Purpose is X, see the tag:key=value filter.
+ // * tag-key - The key of a tag assigned to the resource. Use this filter
+ // to find all resources assigned a tag with a specific key, regardless of
+ // the tag value.
Filters []*Filter `locationName:"Filter" locationNameList:"Filter" type:"list"`
// [EC2-Classic] One or more Elastic IP addresses.
@@ -34188,7 +42248,6 @@ func (s *DescribeAddressesInput) SetPublicIps(v []*string) *DescribeAddressesInp
return s
}
-// Contains the output of DescribeAddresses.
type DescribeAddressesOutput struct {
_ struct{} `type:"structure"`
@@ -34272,7 +42331,6 @@ func (s *DescribeAggregateIdFormatOutput) SetUseLongIdsAggregated(v bool) *Descr
return s
}
-// Contains the parameters for DescribeAvailabilityZones.
type DescribeAvailabilityZonesInput struct {
_ struct{} `type:"structure"`
@@ -34292,9 +42350,14 @@ type DescribeAvailabilityZonesInput struct {
// * state - The state of the Availability Zone (available | information
// | impaired | unavailable).
//
+ // * zone-id - The ID of the Availability Zone (for example, use1-az1).
+ //
// * zone-name - The name of the Availability Zone (for example, us-east-1a).
Filters []*Filter `locationName:"Filter" locationNameList:"Filter" type:"list"`
+ // The IDs of one or more Availability Zones.
+ ZoneIds []*string `locationName:"ZoneId" locationNameList:"ZoneId" type:"list"`
+
// The names of one or more Availability Zones.
ZoneNames []*string `locationName:"ZoneName" locationNameList:"ZoneName" type:"list"`
}
@@ -34321,13 +42384,18 @@ func (s *DescribeAvailabilityZonesInput) SetFilters(v []*Filter) *DescribeAvaila
return s
}
+// SetZoneIds sets the ZoneIds field's value.
+func (s *DescribeAvailabilityZonesInput) SetZoneIds(v []*string) *DescribeAvailabilityZonesInput {
+ s.ZoneIds = v
+ return s
+}
+
// SetZoneNames sets the ZoneNames field's value.
func (s *DescribeAvailabilityZonesInput) SetZoneNames(v []*string) *DescribeAvailabilityZonesInput {
s.ZoneNames = v
return s
}
-// Contains the output of DescribeAvailabiltyZones.
type DescribeAvailabilityZonesOutput struct {
_ struct{} `type:"structure"`
@@ -34444,7 +42512,202 @@ func (s *DescribeBundleTasksOutput) SetBundleTasks(v []*BundleTask) *DescribeBun
return s
}
-// Contains the parameters for DescribeClassicLinkInstances.
+type DescribeByoipCidrsInput struct {
+ _ struct{} `type:"structure"`
+
+ // Checks whether you have the required permissions for the action, without
+ // actually making the request, and provides an error response. If you have
+ // the required permissions, the error response is DryRunOperation. Otherwise,
+ // it is UnauthorizedOperation.
+ DryRun *bool `type:"boolean"`
+
+ // The maximum number of results to return with a single call. To retrieve the
+ // remaining results, make another call with the returned nextToken value.
+ //
+ // MaxResults is a required field
+ MaxResults *int64 `min:"5" type:"integer" required:"true"`
+
+ // The token for the next page of results.
+ NextToken *string `min:"1" type:"string"`
+}
+
+// String returns the string representation
+func (s DescribeByoipCidrsInput) String() string {
+ return awsutil.Prettify(s)
+}
+
+// GoString returns the string representation
+func (s DescribeByoipCidrsInput) GoString() string {
+ return s.String()
+}
+
+// Validate inspects the fields of the type to determine if they are valid.
+func (s *DescribeByoipCidrsInput) Validate() error {
+ invalidParams := request.ErrInvalidParams{Context: "DescribeByoipCidrsInput"}
+ if s.MaxResults == nil {
+ invalidParams.Add(request.NewErrParamRequired("MaxResults"))
+ }
+ if s.MaxResults != nil && *s.MaxResults < 5 {
+ invalidParams.Add(request.NewErrParamMinValue("MaxResults", 5))
+ }
+ if s.NextToken != nil && len(*s.NextToken) < 1 {
+ invalidParams.Add(request.NewErrParamMinLen("NextToken", 1))
+ }
+
+ if invalidParams.Len() > 0 {
+ return invalidParams
+ }
+ return nil
+}
+
+// SetDryRun sets the DryRun field's value.
+func (s *DescribeByoipCidrsInput) SetDryRun(v bool) *DescribeByoipCidrsInput {
+ s.DryRun = &v
+ return s
+}
+
+// SetMaxResults sets the MaxResults field's value.
+func (s *DescribeByoipCidrsInput) SetMaxResults(v int64) *DescribeByoipCidrsInput {
+ s.MaxResults = &v
+ return s
+}
+
+// SetNextToken sets the NextToken field's value.
+func (s *DescribeByoipCidrsInput) SetNextToken(v string) *DescribeByoipCidrsInput {
+ s.NextToken = &v
+ return s
+}
+
+type DescribeByoipCidrsOutput struct {
+ _ struct{} `type:"structure"`
+
+ // Information about your address ranges.
+ ByoipCidrs []*ByoipCidr `locationName:"byoipCidrSet" locationNameList:"item" type:"list"`
+
+ // The token to use to retrieve the next page of results. This value is null
+ // when there are no more results to return.
+ NextToken *string `locationName:"nextToken" type:"string"`
+}
+
+// String returns the string representation
+func (s DescribeByoipCidrsOutput) String() string {
+ return awsutil.Prettify(s)
+}
+
+// GoString returns the string representation
+func (s DescribeByoipCidrsOutput) GoString() string {
+ return s.String()
+}
+
+// SetByoipCidrs sets the ByoipCidrs field's value.
+func (s *DescribeByoipCidrsOutput) SetByoipCidrs(v []*ByoipCidr) *DescribeByoipCidrsOutput {
+ s.ByoipCidrs = v
+ return s
+}
+
+// SetNextToken sets the NextToken field's value.
+func (s *DescribeByoipCidrsOutput) SetNextToken(v string) *DescribeByoipCidrsOutput {
+ s.NextToken = &v
+ return s
+}
+
+type DescribeCapacityReservationsInput struct {
+ _ struct{} `type:"structure"`
+
+ // The ID of the Capacity Reservation.
+ CapacityReservationIds []*string `locationName:"CapacityReservationId" locationNameList:"item" type:"list"`
+
+ // Checks whether you have the required permissions for the action, without
+ // actually making the request, and provides an error response. If you have
+ // the required permissions, the error response is DryRunOperation. Otherwise,
+ // it is UnauthorizedOperation.
+ DryRun *bool `type:"boolean"`
+
+ // One or more filters.
+ Filters []*Filter `locationName:"Filter" locationNameList:"Filter" type:"list"`
+
+ // The maximum number of results to return for the request in a single page.
+ // The remaining results can be seen by sending another request with the returned
+ // nextToken value.
+ MaxResults *int64 `type:"integer"`
+
+ // The token to retrieve the next page of results.
+ NextToken *string `type:"string"`
+}
+
+// String returns the string representation
+func (s DescribeCapacityReservationsInput) String() string {
+ return awsutil.Prettify(s)
+}
+
+// GoString returns the string representation
+func (s DescribeCapacityReservationsInput) GoString() string {
+ return s.String()
+}
+
+// SetCapacityReservationIds sets the CapacityReservationIds field's value.
+func (s *DescribeCapacityReservationsInput) SetCapacityReservationIds(v []*string) *DescribeCapacityReservationsInput {
+ s.CapacityReservationIds = v
+ return s
+}
+
+// SetDryRun sets the DryRun field's value.
+func (s *DescribeCapacityReservationsInput) SetDryRun(v bool) *DescribeCapacityReservationsInput {
+ s.DryRun = &v
+ return s
+}
+
+// SetFilters sets the Filters field's value.
+func (s *DescribeCapacityReservationsInput) SetFilters(v []*Filter) *DescribeCapacityReservationsInput {
+ s.Filters = v
+ return s
+}
+
+// SetMaxResults sets the MaxResults field's value.
+func (s *DescribeCapacityReservationsInput) SetMaxResults(v int64) *DescribeCapacityReservationsInput {
+ s.MaxResults = &v
+ return s
+}
+
+// SetNextToken sets the NextToken field's value.
+func (s *DescribeCapacityReservationsInput) SetNextToken(v string) *DescribeCapacityReservationsInput {
+ s.NextToken = &v
+ return s
+}
+
+type DescribeCapacityReservationsOutput struct {
+ _ struct{} `type:"structure"`
+
+ // Information about the Capacity Reservations.
+ CapacityReservations []*CapacityReservation `locationName:"capacityReservationSet" locationNameList:"item" type:"list"`
+
+ // The token to use to retrieve the next page of results. This value is null
+ // when there are no more results to return.
+ NextToken *string `locationName:"nextToken" type:"string"`
+}
+
+// String returns the string representation
+func (s DescribeCapacityReservationsOutput) String() string {
+ return awsutil.Prettify(s)
+}
+
+// GoString returns the string representation
+func (s DescribeCapacityReservationsOutput) GoString() string {
+ return s.String()
+}
+
+// SetCapacityReservations sets the CapacityReservations field's value.
+func (s *DescribeCapacityReservationsOutput) SetCapacityReservations(v []*CapacityReservation) *DescribeCapacityReservationsOutput {
+ s.CapacityReservations = v
+ return s
+}
+
+// SetNextToken sets the NextToken field's value.
+func (s *DescribeCapacityReservationsOutput) SetNextToken(v string) *DescribeCapacityReservationsOutput {
+ s.NextToken = &v
+ return s
+}
+
type DescribeClassicLinkInstancesInput struct {
_ struct{} `type:"structure"`
@@ -34461,20 +42724,19 @@ type DescribeClassicLinkInstancesInput struct {
//
// * instance-id - The ID of the instance.
//
- // * tag:key=value - The key/value combination of a tag assigned to the resource.
+ // * tag: - The key/value combination of a tag assigned to the resource.
+ // Use the tag key in the filter name and the tag value as the filter value.
+ // For example, to find all resources that have a tag with the key Owner
+ // and the value TeamA, specify tag:Owner for the filter name and TeamA for
+ // the filter value.
//
- // * tag-key - The key of a tag assigned to the resource. This filter is
- // independent of the tag-value filter. For example, if you use both the
- // filter "tag-key=Purpose" and the filter "tag-value=X", you get any resources
- // assigned both the tag key Purpose (regardless of what the tag's value
- // is), and the tag value X (regardless of what the tag's key is). If you
- // want to list only resources where Purpose is X, see the tag:key=value
- // filter.
+ // * tag-key - The key of a tag assigned to the resource. Use this filter
+ // to find all resources assigned a tag with a specific key, regardless of
+ // the tag value.
//
- // * tag-value - The value of a tag assigned to the resource. This filter
- // is independent of the tag-key filter.
+ // * vpc-id - The ID of the VPC to which the instance is linked.
//
- // * vpc-id - The ID of the VPC that the instance is linked to.
+ // vpc-id - The ID of the VPC that the instance is linked to.
Filters []*Filter `locationName:"Filter" locationNameList:"Filter" type:"list"`
// One or more instance IDs. Must be instances linked to a VPC through ClassicLink.
@@ -34483,7 +42745,7 @@ type DescribeClassicLinkInstancesInput struct {
// The maximum number of results to return for the request in a single page.
// The remaining results of the initial request can be seen by sending another
// request with the returned NextToken value. This value can be between 5 and
- // 1000; if MaxResults is given a value larger than 1000, only 1000 results
+ // 1000. If MaxResults is given a value larger than 1000, only 1000 results
// are returned. You cannot specify this parameter and the instance IDs parameter
// in the same request.
//
@@ -34534,7 +42796,6 @@ func (s *DescribeClassicLinkInstancesInput) SetNextToken(v string) *DescribeClas
return s
}
-// Contains the output of DescribeClassicLinkInstances.
type DescribeClassicLinkInstancesOutput struct {
_ struct{} `type:"structure"`
@@ -34568,6 +42829,600 @@ func (s *DescribeClassicLinkInstancesOutput) SetNextToken(v string) *DescribeCla
return s
}
+type DescribeClientVpnAuthorizationRulesInput struct {
+ _ struct{} `type:"structure"`
+
+ // The ID of the Client VPN endpoint.
+ //
+ // ClientVpnEndpointId is a required field
+ ClientVpnEndpointId *string `type:"string" required:"true"`
+
+ // Checks whether you have the required permissions for the action, without
+ // actually making the request, and provides an error response. If you have
+ // the required permissions, the error response is DryRunOperation. Otherwise,
+ // it is UnauthorizedOperation.
+ DryRun *bool `type:"boolean"`
+
+ // One or more filters. Filter names and values are case-sensitive.
+ Filters []*Filter `locationName:"Filter" locationNameList:"Filter" type:"list"`
+
+ // The maximum number of results to return for the request in a single page.
+ // The remaining results can be seen by sending another request with the nextToken
+ // value.
+ MaxResults *int64 `min:"5" type:"integer"`
+
+ // The token to retrieve the next page of results.
+ NextToken *string `min:"1" type:"string"`
+}
+
+// String returns the string representation
+func (s DescribeClientVpnAuthorizationRulesInput) String() string {
+ return awsutil.Prettify(s)
+}
+
+// GoString returns the string representation
+func (s DescribeClientVpnAuthorizationRulesInput) GoString() string {
+ return s.String()
+}
+
+// Validate inspects the fields of the type to determine if they are valid.
+func (s *DescribeClientVpnAuthorizationRulesInput) Validate() error {
+ invalidParams := request.ErrInvalidParams{Context: "DescribeClientVpnAuthorizationRulesInput"}
+ if s.ClientVpnEndpointId == nil {
+ invalidParams.Add(request.NewErrParamRequired("ClientVpnEndpointId"))
+ }
+ if s.MaxResults != nil && *s.MaxResults < 5 {
+ invalidParams.Add(request.NewErrParamMinValue("MaxResults", 5))
+ }
+ if s.NextToken != nil && len(*s.NextToken) < 1 {
+ invalidParams.Add(request.NewErrParamMinLen("NextToken", 1))
+ }
+
+ if invalidParams.Len() > 0 {
+ return invalidParams
+ }
+ return nil
+}
+
+// SetClientVpnEndpointId sets the ClientVpnEndpointId field's value.
+func (s *DescribeClientVpnAuthorizationRulesInput) SetClientVpnEndpointId(v string) *DescribeClientVpnAuthorizationRulesInput {
+ s.ClientVpnEndpointId = &v
+ return s
+}
+
+// SetDryRun sets the DryRun field's value.
+func (s *DescribeClientVpnAuthorizationRulesInput) SetDryRun(v bool) *DescribeClientVpnAuthorizationRulesInput {
+ s.DryRun = &v
+ return s
+}
+
+// SetFilters sets the Filters field's value.
+func (s *DescribeClientVpnAuthorizationRulesInput) SetFilters(v []*Filter) *DescribeClientVpnAuthorizationRulesInput {
+ s.Filters = v
+ return s
+}
+
+// SetMaxResults sets the MaxResults field's value.
+func (s *DescribeClientVpnAuthorizationRulesInput) SetMaxResults(v int64) *DescribeClientVpnAuthorizationRulesInput {
+ s.MaxResults = &v
+ return s
+}
+
+// SetNextToken sets the NextToken field's value.
+func (s *DescribeClientVpnAuthorizationRulesInput) SetNextToken(v string) *DescribeClientVpnAuthorizationRulesInput {
+ s.NextToken = &v
+ return s
+}
+
+type DescribeClientVpnAuthorizationRulesOutput struct {
+ _ struct{} `type:"structure"`
+
+ // Information about the authorization rules.
+ AuthorizationRules []*AuthorizationRule `locationName:"authorizationRule" locationNameList:"item" type:"list"`
+
+ // The token to use to retrieve the next page of results. This value is null
+ // when there are no more results to return.
+ NextToken *string `locationName:"nextToken" min:"1" type:"string"`
+}
+
+// String returns the string representation
+func (s DescribeClientVpnAuthorizationRulesOutput) String() string {
+ return awsutil.Prettify(s)
+}
+
+// GoString returns the string representation
+func (s DescribeClientVpnAuthorizationRulesOutput) GoString() string {
+ return s.String()
+}
+
+// SetAuthorizationRules sets the AuthorizationRules field's value.
+func (s *DescribeClientVpnAuthorizationRulesOutput) SetAuthorizationRules(v []*AuthorizationRule) *DescribeClientVpnAuthorizationRulesOutput {
+ s.AuthorizationRules = v
+ return s
+}
+
+// SetNextToken sets the NextToken field's value.
+func (s *DescribeClientVpnAuthorizationRulesOutput) SetNextToken(v string) *DescribeClientVpnAuthorizationRulesOutput {
+ s.NextToken = &v
+ return s
+}
+
+type DescribeClientVpnConnectionsInput struct {
+ _ struct{} `type:"structure"`
+
+ // The ID of the Client VPN endpoint.
+ //
+ // ClientVpnEndpointId is a required field
+ ClientVpnEndpointId *string `type:"string" required:"true"`
+
+ // Checks whether you have the required permissions for the action, without
+ // actually making the request, and provides an error response. If you have
+ // the required permissions, the error response is DryRunOperation. Otherwise,
+ // it is UnauthorizedOperation.
+ DryRun *bool `type:"boolean"`
+
+ // One or more filters. Filter names and values are case-sensitive.
+ Filters []*Filter `locationName:"Filter" locationNameList:"Filter" type:"list"`
+
+ // The maximum number of results to return for the request in a single page.
+ // The remaining results can be seen by sending another request with the nextToken
+ // value.
+ MaxResults *int64 `min:"5" type:"integer"`
+
+ // The token to retrieve the next page of results.
+ NextToken *string `min:"1" type:"string"`
+}
+
+// String returns the string representation
+func (s DescribeClientVpnConnectionsInput) String() string {
+ return awsutil.Prettify(s)
+}
+
+// GoString returns the string representation
+func (s DescribeClientVpnConnectionsInput) GoString() string {
+ return s.String()
+}
+
+// Validate inspects the fields of the type to determine if they are valid.
+func (s *DescribeClientVpnConnectionsInput) Validate() error {
+ invalidParams := request.ErrInvalidParams{Context: "DescribeClientVpnConnectionsInput"}
+ if s.ClientVpnEndpointId == nil {
+ invalidParams.Add(request.NewErrParamRequired("ClientVpnEndpointId"))
+ }
+ if s.MaxResults != nil && *s.MaxResults < 5 {
+ invalidParams.Add(request.NewErrParamMinValue("MaxResults", 5))
+ }
+ if s.NextToken != nil && len(*s.NextToken) < 1 {
+ invalidParams.Add(request.NewErrParamMinLen("NextToken", 1))
+ }
+
+ if invalidParams.Len() > 0 {
+ return invalidParams
+ }
+ return nil
+}
+
+// SetClientVpnEndpointId sets the ClientVpnEndpointId field's value.
+func (s *DescribeClientVpnConnectionsInput) SetClientVpnEndpointId(v string) *DescribeClientVpnConnectionsInput {
+ s.ClientVpnEndpointId = &v
+ return s
+}
+
+// SetDryRun sets the DryRun field's value.
+func (s *DescribeClientVpnConnectionsInput) SetDryRun(v bool) *DescribeClientVpnConnectionsInput {
+ s.DryRun = &v
+ return s
+}
+
+// SetFilters sets the Filters field's value.
+func (s *DescribeClientVpnConnectionsInput) SetFilters(v []*Filter) *DescribeClientVpnConnectionsInput {
+ s.Filters = v
+ return s
+}
+
+// SetMaxResults sets the MaxResults field's value.
+func (s *DescribeClientVpnConnectionsInput) SetMaxResults(v int64) *DescribeClientVpnConnectionsInput {
+ s.MaxResults = &v
+ return s
+}
+
+// SetNextToken sets the NextToken field's value.
+func (s *DescribeClientVpnConnectionsInput) SetNextToken(v string) *DescribeClientVpnConnectionsInput {
+ s.NextToken = &v
+ return s
+}
+
+type DescribeClientVpnConnectionsOutput struct {
+ _ struct{} `type:"structure"`
+
+ // Information about the active and terminated client connections.
+ Connections []*ClientVpnConnection `locationName:"connections" locationNameList:"item" type:"list"`
+
+ // The token to use to retrieve the next page of results. This value is null
+ // when there are no more results to return.
+ NextToken *string `locationName:"nextToken" min:"1" type:"string"`
+}
+
+// String returns the string representation
+func (s DescribeClientVpnConnectionsOutput) String() string {
+ return awsutil.Prettify(s)
+}
+
+// GoString returns the string representation
+func (s DescribeClientVpnConnectionsOutput) GoString() string {
+ return s.String()
+}
+
+// SetConnections sets the Connections field's value.
+func (s *DescribeClientVpnConnectionsOutput) SetConnections(v []*ClientVpnConnection) *DescribeClientVpnConnectionsOutput {
+ s.Connections = v
+ return s
+}
+
+// SetNextToken sets the NextToken field's value.
+func (s *DescribeClientVpnConnectionsOutput) SetNextToken(v string) *DescribeClientVpnConnectionsOutput {
+ s.NextToken = &v
+ return s
+}
+
+type DescribeClientVpnEndpointsInput struct {
+ _ struct{} `type:"structure"`
+
+ // The ID of the Client VPN endpoint.
+ ClientVpnEndpointIds []*string `locationName:"ClientVpnEndpointId" locationNameList:"item" type:"list"`
+
+ // Checks whether you have the required permissions for the action, without
+ // actually making the request, and provides an error response. If you have
+ // the required permissions, the error response is DryRunOperation. Otherwise,
+ // it is UnauthorizedOperation.
+ DryRun *bool `type:"boolean"`
+
+ // One or more filters. Filter names and values are case-sensitive.
+ Filters []*Filter `locationName:"Filter" locationNameList:"Filter" type:"list"`
+
+ // The maximum number of results to return for the request in a single page.
+ // The remaining results can be seen by sending another request with the nextToken
+ // value.
+ MaxResults *int64 `min:"5" type:"integer"`
+
+ // The token to retrieve the next page of results.
+ NextToken *string `min:"1" type:"string"`
+}
+
+// String returns the string representation
+func (s DescribeClientVpnEndpointsInput) String() string {
+ return awsutil.Prettify(s)
+}
+
+// GoString returns the string representation
+func (s DescribeClientVpnEndpointsInput) GoString() string {
+ return s.String()
+}
+
+// Validate inspects the fields of the type to determine if they are valid.
+func (s *DescribeClientVpnEndpointsInput) Validate() error {
+ invalidParams := request.ErrInvalidParams{Context: "DescribeClientVpnEndpointsInput"}
+ if s.MaxResults != nil && *s.MaxResults < 5 {
+ invalidParams.Add(request.NewErrParamMinValue("MaxResults", 5))
+ }
+ if s.NextToken != nil && len(*s.NextToken) < 1 {
+ invalidParams.Add(request.NewErrParamMinLen("NextToken", 1))
+ }
+
+ if invalidParams.Len() > 0 {
+ return invalidParams
+ }
+ return nil
+}
+
+// SetClientVpnEndpointIds sets the ClientVpnEndpointIds field's value.
+func (s *DescribeClientVpnEndpointsInput) SetClientVpnEndpointIds(v []*string) *DescribeClientVpnEndpointsInput {
+ s.ClientVpnEndpointIds = v
+ return s
+}
+
+// SetDryRun sets the DryRun field's value.
+func (s *DescribeClientVpnEndpointsInput) SetDryRun(v bool) *DescribeClientVpnEndpointsInput {
+ s.DryRun = &v
+ return s
+}
+
+// SetFilters sets the Filters field's value.
+func (s *DescribeClientVpnEndpointsInput) SetFilters(v []*Filter) *DescribeClientVpnEndpointsInput {
+ s.Filters = v
+ return s
+}
+
+// SetMaxResults sets the MaxResults field's value.
+func (s *DescribeClientVpnEndpointsInput) SetMaxResults(v int64) *DescribeClientVpnEndpointsInput {
+ s.MaxResults = &v
+ return s
+}
+
+// SetNextToken sets the NextToken field's value.
+func (s *DescribeClientVpnEndpointsInput) SetNextToken(v string) *DescribeClientVpnEndpointsInput {
+ s.NextToken = &v
+ return s
+}
+
+type DescribeClientVpnEndpointsOutput struct {
+ _ struct{} `type:"structure"`
+
+ // Information about the Client VPN endpoints.
+ ClientVpnEndpoints []*ClientVpnEndpoint `locationName:"clientVpnEndpoint" locationNameList:"item" type:"list"`
+
+ // The token to use to retrieve the next page of results. This value is null
+ // when there are no more results to return.
+ NextToken *string `locationName:"nextToken" min:"1" type:"string"`
+}
+
+// String returns the string representation
+func (s DescribeClientVpnEndpointsOutput) String() string {
+ return awsutil.Prettify(s)
+}
+
+// GoString returns the string representation
+func (s DescribeClientVpnEndpointsOutput) GoString() string {
+ return s.String()
+}
+
+// SetClientVpnEndpoints sets the ClientVpnEndpoints field's value.
+func (s *DescribeClientVpnEndpointsOutput) SetClientVpnEndpoints(v []*ClientVpnEndpoint) *DescribeClientVpnEndpointsOutput {
+ s.ClientVpnEndpoints = v
+ return s
+}
+
+// SetNextToken sets the NextToken field's value.
+func (s *DescribeClientVpnEndpointsOutput) SetNextToken(v string) *DescribeClientVpnEndpointsOutput {
+ s.NextToken = &v
+ return s
+}
+
+type DescribeClientVpnRoutesInput struct {
+ _ struct{} `type:"structure"`
+
+ // The ID of the Client VPN endpoint.
+ //
+ // ClientVpnEndpointId is a required field
+ ClientVpnEndpointId *string `type:"string" required:"true"`
+
+ // Checks whether you have the required permissions for the action, without
+ // actually making the request, and provides an error response. If you have
+ // the required permissions, the error response is DryRunOperation. Otherwise,
+ // it is UnauthorizedOperation.
+ DryRun *bool `type:"boolean"`
+
+ // One or more filters. Filter names and values are case-sensitive.
+ Filters []*Filter `locationName:"Filter" locationNameList:"Filter" type:"list"`
+
+ // The maximum number of results to return for the request in a single page.
+ // The remaining results can be seen by sending another request with the nextToken
+ // value.
+ MaxResults *int64 `min:"5" type:"integer"`
+
+ // The token to retrieve the next page of results.
+ NextToken *string `min:"1" type:"string"`
+}
+
+// String returns the string representation
+func (s DescribeClientVpnRoutesInput) String() string {
+ return awsutil.Prettify(s)
+}
+
+// GoString returns the string representation
+func (s DescribeClientVpnRoutesInput) GoString() string {
+ return s.String()
+}
+
+// Validate inspects the fields of the type to determine if they are valid.
+func (s *DescribeClientVpnRoutesInput) Validate() error {
+ invalidParams := request.ErrInvalidParams{Context: "DescribeClientVpnRoutesInput"}
+ if s.ClientVpnEndpointId == nil {
+ invalidParams.Add(request.NewErrParamRequired("ClientVpnEndpointId"))
+ }
+ if s.MaxResults != nil && *s.MaxResults < 5 {
+ invalidParams.Add(request.NewErrParamMinValue("MaxResults", 5))
+ }
+ if s.NextToken != nil && len(*s.NextToken) < 1 {
+ invalidParams.Add(request.NewErrParamMinLen("NextToken", 1))
+ }
+
+ if invalidParams.Len() > 0 {
+ return invalidParams
+ }
+ return nil
+}
+
+// SetClientVpnEndpointId sets the ClientVpnEndpointId field's value.
+func (s *DescribeClientVpnRoutesInput) SetClientVpnEndpointId(v string) *DescribeClientVpnRoutesInput {
+ s.ClientVpnEndpointId = &v
+ return s
+}
+
+// SetDryRun sets the DryRun field's value.
+func (s *DescribeClientVpnRoutesInput) SetDryRun(v bool) *DescribeClientVpnRoutesInput {
+ s.DryRun = &v
+ return s
+}
+
+// SetFilters sets the Filters field's value.
+func (s *DescribeClientVpnRoutesInput) SetFilters(v []*Filter) *DescribeClientVpnRoutesInput {
+ s.Filters = v
+ return s
+}
+
+// SetMaxResults sets the MaxResults field's value.
+func (s *DescribeClientVpnRoutesInput) SetMaxResults(v int64) *DescribeClientVpnRoutesInput {
+ s.MaxResults = &v
+ return s
+}
+
+// SetNextToken sets the NextToken field's value.
+func (s *DescribeClientVpnRoutesInput) SetNextToken(v string) *DescribeClientVpnRoutesInput {
+ s.NextToken = &v
+ return s
+}
+
+type DescribeClientVpnRoutesOutput struct {
+ _ struct{} `type:"structure"`
+
+ // The token to use to retrieve the next page of results. This value is null
+ // when there are no more results to return.
+ NextToken *string `locationName:"nextToken" min:"1" type:"string"`
+
+ // Information about the Client VPN endpoint routes.
+ Routes []*ClientVpnRoute `locationName:"routes" locationNameList:"item" type:"list"`
+}
+
+// String returns the string representation
+func (s DescribeClientVpnRoutesOutput) String() string {
+ return awsutil.Prettify(s)
+}
+
+// GoString returns the string representation
+func (s DescribeClientVpnRoutesOutput) GoString() string {
+ return s.String()
+}
+
+// SetNextToken sets the NextToken field's value.
+func (s *DescribeClientVpnRoutesOutput) SetNextToken(v string) *DescribeClientVpnRoutesOutput {
+ s.NextToken = &v
+ return s
+}
+
+// SetRoutes sets the Routes field's value.
+func (s *DescribeClientVpnRoutesOutput) SetRoutes(v []*ClientVpnRoute) *DescribeClientVpnRoutesOutput {
+ s.Routes = v
+ return s
+}
+
+type DescribeClientVpnTargetNetworksInput struct {
+ _ struct{} `type:"structure"`
+
+ // The IDs of the target network associations.
+ AssociationIds []*string `locationNameList:"item" type:"list"`
+
+ // The ID of the Client VPN endpoint.
+ //
+ // ClientVpnEndpointId is a required field
+ ClientVpnEndpointId *string `type:"string" required:"true"`
+
+ // Checks whether you have the required permissions for the action, without
+ // actually making the request, and provides an error response. If you have
+ // the required permissions, the error response is DryRunOperation. Otherwise,
+ // it is UnauthorizedOperation.
+ DryRun *bool `type:"boolean"`
+
+ // One or more filters. Filter names and values are case-sensitive.
+ Filters []*Filter `locationName:"Filter" locationNameList:"Filter" type:"list"`
+
+ // The maximum number of results to return for the request in a single page.
+ // The remaining results can be seen by sending another request with the nextToken
+ // value.
+ MaxResults *int64 `min:"5" type:"integer"`
+
+ // The token to retrieve the next page of results.
+ NextToken *string `min:"1" type:"string"`
+}
+
+// String returns the string representation
+func (s DescribeClientVpnTargetNetworksInput) String() string {
+ return awsutil.Prettify(s)
+}
+
+// GoString returns the string representation
+func (s DescribeClientVpnTargetNetworksInput) GoString() string {
+ return s.String()
+}
+
+// Validate inspects the fields of the type to determine if they are valid.
+func (s *DescribeClientVpnTargetNetworksInput) Validate() error {
+ invalidParams := request.ErrInvalidParams{Context: "DescribeClientVpnTargetNetworksInput"}
+ if s.ClientVpnEndpointId == nil {
+ invalidParams.Add(request.NewErrParamRequired("ClientVpnEndpointId"))
+ }
+ if s.MaxResults != nil && *s.MaxResults < 5 {
+ invalidParams.Add(request.NewErrParamMinValue("MaxResults", 5))
+ }
+ if s.NextToken != nil && len(*s.NextToken) < 1 {
+ invalidParams.Add(request.NewErrParamMinLen("NextToken", 1))
+ }
+
+ if invalidParams.Len() > 0 {
+ return invalidParams
+ }
+ return nil
+}
+
+// SetAssociationIds sets the AssociationIds field's value.
+func (s *DescribeClientVpnTargetNetworksInput) SetAssociationIds(v []*string) *DescribeClientVpnTargetNetworksInput {
+ s.AssociationIds = v
+ return s
+}
+
+// SetClientVpnEndpointId sets the ClientVpnEndpointId field's value.
+func (s *DescribeClientVpnTargetNetworksInput) SetClientVpnEndpointId(v string) *DescribeClientVpnTargetNetworksInput {
+ s.ClientVpnEndpointId = &v
+ return s
+}
+
+// SetDryRun sets the DryRun field's value.
+func (s *DescribeClientVpnTargetNetworksInput) SetDryRun(v bool) *DescribeClientVpnTargetNetworksInput {
+ s.DryRun = &v
+ return s
+}
+
+// SetFilters sets the Filters field's value.
+func (s *DescribeClientVpnTargetNetworksInput) SetFilters(v []*Filter) *DescribeClientVpnTargetNetworksInput {
+ s.Filters = v
+ return s
+}
+
+// SetMaxResults sets the MaxResults field's value.
+func (s *DescribeClientVpnTargetNetworksInput) SetMaxResults(v int64) *DescribeClientVpnTargetNetworksInput {
+ s.MaxResults = &v
+ return s
+}
+
+// SetNextToken sets the NextToken field's value.
+func (s *DescribeClientVpnTargetNetworksInput) SetNextToken(v string) *DescribeClientVpnTargetNetworksInput {
+ s.NextToken = &v
+ return s
+}
+
+type DescribeClientVpnTargetNetworksOutput struct {
+ _ struct{} `type:"structure"`
+
+ // Information about the associated target networks.
+ ClientVpnTargetNetworks []*TargetNetwork `locationName:"clientVpnTargetNetworks" locationNameList:"item" type:"list"`
+
+ // The token to use to retrieve the next page of results. This value is null
+ // when there are no more results to return.
+ NextToken *string `locationName:"nextToken" min:"1" type:"string"`
+}
+
+// String returns the string representation
+func (s DescribeClientVpnTargetNetworksOutput) String() string {
+ return awsutil.Prettify(s)
+}
+
+// GoString returns the string representation
+func (s DescribeClientVpnTargetNetworksOutput) GoString() string {
+ return s.String()
+}
+
+// SetClientVpnTargetNetworks sets the ClientVpnTargetNetworks field's value.
+func (s *DescribeClientVpnTargetNetworksOutput) SetClientVpnTargetNetworks(v []*TargetNetwork) *DescribeClientVpnTargetNetworksOutput {
+ s.ClientVpnTargetNetworks = v
+ return s
+}
+
+// SetNextToken sets the NextToken field's value.
+func (s *DescribeClientVpnTargetNetworksOutput) SetNextToken(v string) *DescribeClientVpnTargetNetworksOutput {
+ s.NextToken = &v
+ return s
+}
+
// Contains the parameters for DescribeConversionTasks.
type DescribeConversionTasksInput struct {
_ struct{} `type:"structure"`
@@ -34659,21 +43514,15 @@ type DescribeCustomerGatewaysInput struct {
// * type - The type of customer gateway. Currently, the only supported type
// is ipsec.1.
//
- // * tag:key=value - The key/value combination of a tag assigned to the resource.
- // Specify the key of the tag in the filter name and the value of the tag
- // in the filter value. For example, for the tag Purpose=X, specify tag:Purpose
- // for the filter name and X for the filter value.
+ // * tag: - The key/value combination of a tag assigned to the resource.
+ // Use the tag key in the filter name and the tag value as the filter value.
+ // For example, to find all resources that have a tag with the key Owner
+ // and the value TeamA, specify tag:Owner for the filter name and TeamA for
+ // the filter value.
//
- // * tag-key - The key of a tag assigned to the resource. This filter is
- // independent of the tag-value filter. For example, if you use both the
- // filter "tag-key=Purpose" and the filter "tag-value=X", you get any resources
- // assigned both the tag key Purpose (regardless of what the tag's value
- // is), and the tag value X (regardless of what the tag's key is). If you
- // want to list only resources where Purpose is X, see the tag:key=value
- // filter.
- //
- // * tag-value - The value of a tag assigned to the resource. This filter
- // is independent of the tag-key filter.
+ // * tag-key - The key of a tag assigned to the resource. Use this filter
+ // to find all resources assigned a tag with a specific key, regardless of
+ // the tag value.
Filters []*Filter `locationName:"Filter" locationNameList:"Filter" type:"list"`
}
@@ -34729,7 +43578,6 @@ func (s *DescribeCustomerGatewaysOutput) SetCustomerGateways(v []*CustomerGatewa
return s
}
-// Contains the parameters for DescribeDhcpOptions.
type DescribeDhcpOptionsInput struct {
_ struct{} `type:"structure"`
@@ -34746,27 +43594,23 @@ type DescribeDhcpOptionsInput struct {
// One or more filters.
//
- // * dhcp-options-id - The ID of a set of DHCP options.
+ // * dhcp-options-id - The ID of a DHCP options set.
//
// * key - The key for one of the options (for example, domain-name).
//
// * value - The value for one of the options.
//
- // * tag:key=value - The key/value combination of a tag assigned to the resource.
- // Specify the key of the tag in the filter name and the value of the tag
- // in the filter value. For example, for the tag Purpose=X, specify tag:Purpose
- // for the filter name and X for the filter value.
+ // * owner-id - The ID of the AWS account that owns the DHCP options set.
//
- // * tag-key - The key of a tag assigned to the resource. This filter is
- // independent of the tag-value filter. For example, if you use both the
- // filter "tag-key=Purpose" and the filter "tag-value=X", you get any resources
- // assigned both the tag key Purpose (regardless of what the tag's value
- // is), and the tag value X (regardless of what the tag's key is). If you
- // want to list only resources where Purpose is X, see the tag:key=value
- // filter.
+ // * tag: - The key/value combination of a tag assigned to the resource.
+ // Use the tag key in the filter name and the tag value as the filter value.
+ // For example, to find all resources that have a tag with the key Owner
+ // and the value TeamA, specify tag:Owner for the filter name and TeamA for
+ // the filter value.
//
- // * tag-value - The value of a tag assigned to the resource. This filter
- // is independent of the tag-key filter.
+ // * tag-key - The key of a tag assigned to the resource. Use this filter
+ // to find all resources assigned a tag with a specific key, regardless of
+ // the tag value.
Filters []*Filter `locationName:"Filter" locationNameList:"Filter" type:"list"`
}
@@ -34798,7 +43642,6 @@ func (s *DescribeDhcpOptionsInput) SetFilters(v []*Filter) *DescribeDhcpOptionsI
return s
}
-// Contains the output of DescribeDhcpOptions.
type DescribeDhcpOptionsOutput struct {
_ struct{} `type:"structure"`
@@ -34831,12 +43674,12 @@ type DescribeEgressOnlyInternetGatewaysInput struct {
// it is UnauthorizedOperation.
DryRun *bool `type:"boolean"`
- // One or more egress-only Internet gateway IDs.
+ // One or more egress-only internet gateway IDs.
EgressOnlyInternetGatewayIds []*string `locationName:"EgressOnlyInternetGatewayId" locationNameList:"item" type:"list"`
// The maximum number of results to return for the request in a single page.
// The remaining results can be seen by sending another request with the returned
- // NextToken value. This value can be between 5 and 1000; if MaxResults is given
+ // NextToken value. This value can be between 5 and 1000. If MaxResults is given
// a value larger than 1000, only 1000 results are returned.
MaxResults *int64 `type:"integer"`
@@ -34881,7 +43724,7 @@ func (s *DescribeEgressOnlyInternetGatewaysInput) SetNextToken(v string) *Descri
type DescribeEgressOnlyInternetGatewaysOutput struct {
_ struct{} `type:"structure"`
- // Information about the egress-only Internet gateways.
+ // Information about the egress-only internet gateways.
EgressOnlyInternetGateways []*EgressOnlyInternetGateway `locationName:"egressOnlyInternetGatewaySet" locationNameList:"item" type:"list"`
// The token to use to retrieve the next page of results.
@@ -34919,20 +43762,24 @@ type DescribeElasticGpusInput struct {
// it is UnauthorizedOperation.
DryRun *bool `type:"boolean"`
- // One or more Elastic GPU IDs.
+ // One or more Elastic Graphics accelerator IDs.
ElasticGpuIds []*string `locationName:"ElasticGpuId" locationNameList:"item" type:"list"`
// One or more filters.
//
- // * availability-zone - The Availability Zone in which the Elastic GPU resides.
+ // * availability-zone - The Availability Zone in which the Elastic Graphics
+ // accelerator resides.
//
- // * elastic-gpu-health - The status of the Elastic GPU (OK | IMPAIRED).
+ // * elastic-gpu-health - The status of the Elastic Graphics accelerator
+ // (OK | IMPAIRED).
//
- // * elastic-gpu-state - The state of the Elastic GPU (ATTACHED).
+ // * elastic-gpu-state - The state of the Elastic Graphics accelerator (ATTACHED).
//
- // * elastic-gpu-type - The type of Elastic GPU; for example, eg1.medium.
+ // * elastic-gpu-type - The type of Elastic Graphics accelerator; for example,
+ // eg1.medium.
//
- // * instance-id - The ID of the instance to which the Elastic GPU is associated.
+ // * instance-id - The ID of the instance to which the Elastic Graphics accelerator
+ // is associated.
Filters []*Filter `locationName:"Filter" locationNameList:"Filter" type:"list"`
// The maximum number of results to return in a single call. To retrieve the
@@ -34987,7 +43834,7 @@ func (s *DescribeElasticGpusInput) SetNextToken(v string) *DescribeElasticGpusIn
type DescribeElasticGpusOutput struct {
_ struct{} `type:"structure"`
- // Information about the Elastic GPUs.
+ // Information about the Elastic Graphics accelerators.
ElasticGpuSet []*ElasticGpus `locationName:"elasticGpuSet" locationNameList:"item" type:"list"`
// The total number of items to return. If the total number of items available
@@ -35076,6 +43923,62 @@ func (s *DescribeExportTasksOutput) SetExportTasks(v []*ExportTask) *DescribeExp
return s
}
+// Describes the instances that could not be launched by the fleet.
+type DescribeFleetError struct {
+ _ struct{} `type:"structure"`
+
+ // The error code that indicates why the instance could not be launched. For
+ // more information about error codes, see Error Codes (http://docs.aws.amazon.com/AWSEC2/latest/APIReference/errors-overview.html.html).
+ ErrorCode *string `locationName:"errorCode" type:"string"`
+
+ // The error message that describes why the instance could not be launched.
+ // For more information about error messages, see ee Error Codes (http://docs.aws.amazon.com/AWSEC2/latest/APIReference/errors-overview.html.html).
+ ErrorMessage *string `locationName:"errorMessage" type:"string"`
+
+ // The launch templates and overrides that were used for launching the instances.
+ // Any parameters that you specify in the Overrides override the same parameters
+ // in the launch template.
+ LaunchTemplateAndOverrides *LaunchTemplateAndOverridesResponse `locationName:"launchTemplateAndOverrides" type:"structure"`
+
+ // Indicates if the instance that could not be launched was a Spot Instance
+ // or On-Demand Instance.
+ Lifecycle *string `locationName:"lifecycle" type:"string" enum:"InstanceLifecycle"`
+}
+
+// String returns the string representation
+func (s DescribeFleetError) String() string {
+ return awsutil.Prettify(s)
+}
+
+// GoString returns the string representation
+func (s DescribeFleetError) GoString() string {
+ return s.String()
+}
+
+// SetErrorCode sets the ErrorCode field's value.
+func (s *DescribeFleetError) SetErrorCode(v string) *DescribeFleetError {
+ s.ErrorCode = &v
+ return s
+}
+
+// SetErrorMessage sets the ErrorMessage field's value.
+func (s *DescribeFleetError) SetErrorMessage(v string) *DescribeFleetError {
+ s.ErrorMessage = &v
+ return s
+}
+
+// SetLaunchTemplateAndOverrides sets the LaunchTemplateAndOverrides field's value.
+func (s *DescribeFleetError) SetLaunchTemplateAndOverrides(v *LaunchTemplateAndOverridesResponse) *DescribeFleetError {
+ s.LaunchTemplateAndOverrides = v
+ return s
+}
+
+// SetLifecycle sets the Lifecycle field's value.
+func (s *DescribeFleetError) SetLifecycle(v string) *DescribeFleetError {
+ s.Lifecycle = &v
+ return s
+}
+
type DescribeFleetHistoryInput struct {
_ struct{} `type:"structure"`
@@ -35104,7 +44007,7 @@ type DescribeFleetHistoryInput struct {
// The start date and time for the events, in UTC format (for example, YYYY-MM-DDTHH:MM:SSZ).
//
// StartTime is a required field
- StartTime *time.Time `type:"timestamp" timestampFormat:"iso8601" required:"true"`
+ StartTime *time.Time `type:"timestamp" required:"true"`
}
// String returns the string representation
@@ -35182,13 +44085,13 @@ type DescribeFleetHistoryOutput struct {
// All records up to this time were retrieved.
//
// If nextToken indicates that there are more results, this value is not present.
- LastEvaluatedTime *time.Time `locationName:"lastEvaluatedTime" type:"timestamp" timestampFormat:"iso8601"`
+ LastEvaluatedTime *time.Time `locationName:"lastEvaluatedTime" type:"timestamp"`
// The token for the next set of results.
NextToken *string `locationName:"nextToken" type:"string"`
// The start date and time for the events, in UTC format (for example, YYYY-MM-DDTHH:MM:SSZ).
- StartTime *time.Time `locationName:"startTime" type:"timestamp" timestampFormat:"iso8601"`
+ StartTime *time.Time `locationName:"startTime" type:"timestamp"`
}
// String returns the string representation
@@ -35241,6 +44144,8 @@ type DescribeFleetInstancesInput struct {
DryRun *bool `type:"boolean"`
// One or more filters.
+ //
+ // * instance-type - The instance type.
Filters []*Filter `locationName:"Filter" locationNameList:"Filter" type:"list"`
// The ID of the EC2 Fleet.
@@ -35362,6 +44267,21 @@ type DescribeFleetsInput struct {
DryRun *bool `type:"boolean"`
// One or more filters.
+ //
+ // * activity-status - The progress of the EC2 Fleet ( error | pending-fulfillment
+ // | pending-termination | fulfilled).
+ //
+ // * excess-capacity-termination-policy - Indicates whether to terminate
+ // running instances if the target capacity is decreased below the current
+ // EC2 Fleet size (true | false).
+ //
+ // * fleet-state - The state of the EC2 Fleet (submitted | active | deleted
+ // | failed | deleted-running | deleted-terminating | modifying).
+ //
+ // * replace-unhealthy-instances - Indicates whether EC2 Fleet should replace
+ // unhealthy instances (true | false).
+ //
+ // * type - The type of request (instant | request | maintain).
Filters []*Filter `locationName:"Filter" locationNameList:"Filter" type:"list"`
// The ID of the EC2 Fleets.
@@ -35416,10 +44336,73 @@ func (s *DescribeFleetsInput) SetNextToken(v string) *DescribeFleetsInput {
return s
}
+// Describes the instances that were launched by the fleet.
+type DescribeFleetsInstances struct {
+ _ struct{} `type:"structure"`
+
+ // The IDs of the instances.
+ InstanceIds []*string `locationName:"instanceIds" locationNameList:"item" type:"list"`
+
+ // The instance type.
+ InstanceType *string `locationName:"instanceType" type:"string" enum:"InstanceType"`
+
+ // The launch templates and overrides that were used for launching the instances.
+ // Any parameters that you specify in the Overrides override the same parameters
+ // in the launch template.
+ LaunchTemplateAndOverrides *LaunchTemplateAndOverridesResponse `locationName:"launchTemplateAndOverrides" type:"structure"`
+
+ // Indicates if the instance that was launched is a Spot Instance or On-Demand
+ // Instance.
+ Lifecycle *string `locationName:"lifecycle" type:"string" enum:"InstanceLifecycle"`
+
+ // The value is Windows for Windows instances; otherwise blank.
+ Platform *string `locationName:"platform" type:"string" enum:"PlatformValues"`
+}
+
+// String returns the string representation
+func (s DescribeFleetsInstances) String() string {
+ return awsutil.Prettify(s)
+}
+
+// GoString returns the string representation
+func (s DescribeFleetsInstances) GoString() string {
+ return s.String()
+}
+
+// SetInstanceIds sets the InstanceIds field's value.
+func (s *DescribeFleetsInstances) SetInstanceIds(v []*string) *DescribeFleetsInstances {
+ s.InstanceIds = v
+ return s
+}
+
+// SetInstanceType sets the InstanceType field's value.
+func (s *DescribeFleetsInstances) SetInstanceType(v string) *DescribeFleetsInstances {
+ s.InstanceType = &v
+ return s
+}
+
+// SetLaunchTemplateAndOverrides sets the LaunchTemplateAndOverrides field's value.
+func (s *DescribeFleetsInstances) SetLaunchTemplateAndOverrides(v *LaunchTemplateAndOverridesResponse) *DescribeFleetsInstances {
+ s.LaunchTemplateAndOverrides = v
+ return s
+}
+
+// SetLifecycle sets the Lifecycle field's value.
+func (s *DescribeFleetsInstances) SetLifecycle(v string) *DescribeFleetsInstances {
+ s.Lifecycle = &v
+ return s
+}
+
+// SetPlatform sets the Platform field's value.
+func (s *DescribeFleetsInstances) SetPlatform(v string) *DescribeFleetsInstances {
+ s.Platform = &v
+ return s
+}
+
type DescribeFleetsOutput struct {
_ struct{} `type:"structure"`
- // The EC2 Fleets.
+ // Information about the EC2 Fleets.
Fleets []*FleetData `locationName:"fleetSet" locationNameList:"item" type:"list"`
// The token for the next set of results.
@@ -35448,21 +44431,30 @@ func (s *DescribeFleetsOutput) SetNextToken(v string) *DescribeFleetsOutput {
return s
}
-// Contains the parameters for DescribeFlowLogs.
type DescribeFlowLogsInput struct {
_ struct{} `type:"structure"`
+ // Checks whether you have the required permissions for the action, without
+ // actually making the request, and provides an error response. If you have
+ // the required permissions, the error response is DryRunOperation. Otherwise,
+ // it is UnauthorizedOperation.
+ DryRun *bool `type:"boolean"`
+
// One or more filters.
//
// * deliver-log-status - The status of the logs delivery (SUCCESS | FAILED).
//
+ // * log-destination-type - The type of destination to which the flow log
+ // publishes data. Possible destination types include cloud-watch-logs and
+ // S3.
+ //
// * flow-log-id - The ID of the flow log.
//
// * log-group-name - The name of the log group.
//
// * resource-id - The ID of the VPC, subnet, or network interface.
//
- // * traffic-type - The type of traffic (ACCEPT | REJECT | ALL)
+ // * traffic-type - The type of traffic (ACCEPT | REJECT | ALL).
Filter []*Filter `locationNameList:"Filter" type:"list"`
// One or more flow log IDs.
@@ -35470,7 +44462,7 @@ type DescribeFlowLogsInput struct {
// The maximum number of results to return for the request in a single page.
// The remaining results can be seen by sending another request with the returned
- // NextToken value. This value can be between 5 and 1000; if MaxResults is given
+ // NextToken value. This value can be between 5 and 1000. If MaxResults is given
// a value larger than 1000, only 1000 results are returned. You cannot specify
// this parameter and the flow log IDs parameter in the same request.
MaxResults *int64 `type:"integer"`
@@ -35489,6 +44481,12 @@ func (s DescribeFlowLogsInput) GoString() string {
return s.String()
}
+// SetDryRun sets the DryRun field's value.
+func (s *DescribeFlowLogsInput) SetDryRun(v bool) *DescribeFlowLogsInput {
+ s.DryRun = &v
+ return s
+}
+
// SetFilter sets the Filter field's value.
func (s *DescribeFlowLogsInput) SetFilter(v []*Filter) *DescribeFlowLogsInput {
s.Filter = v
@@ -35513,7 +44511,6 @@ func (s *DescribeFlowLogsInput) SetNextToken(v string) *DescribeFlowLogsInput {
return s
}
-// Contains the output of DescribeFlowLogs.
type DescribeFlowLogsOutput struct {
_ struct{} `type:"structure"`
@@ -35662,21 +44659,15 @@ type DescribeFpgaImagesInput struct {
//
// * state - The state of the AFI (pending | failed | available | unavailable).
//
- // * tag:key=value - The key/value combination of a tag assigned to the resource.
- // Specify the key of the tag in the filter name and the value of the tag
- // in the filter value. For example, for the tag Purpose=X, specify tag:Purpose
- // for the filter name and X for the filter value.
+ // * tag: - The key/value combination of a tag assigned to the resource.
+ // Use the tag key in the filter name and the tag value as the filter value.
+ // For example, to find all resources that have a tag with the key Owner
+ // and the value TeamA, specify tag:Owner for the filter name and TeamA for
+ // the filter value.
//
- // * tag-key - The key of a tag assigned to the resource. This filter is
- // independent of the tag-value filter. For example, if you use both the
- // filter "tag-key=Purpose" and the filter "tag-value=X", you get any resources
- // assigned both the tag key Purpose (regardless of what the tag's value
- // is), and the tag value X (regardless of what the tag's key is). If you
- // want to list only resources where Purpose is X, see the tag:key=value
- // filter.
- //
- // * tag-value - The value of a tag assigned to the resource. This filter
- // is independent of the tag-key filter.
+ // * tag-key - The key of a tag assigned to the resource. Use this filter
+ // to find all resources assigned a tag with a specific key, regardless of
+ // the tag value.
//
// * update-time - The time of the most recent update.
Filters []*Filter `locationName:"Filter" locationNameList:"Filter" type:"list"`
@@ -35795,22 +44786,23 @@ type DescribeHostReservationOfferingsInput struct {
// One or more filters.
//
- // * instance-family - The instance family of the offering (e.g., m4).
+ // * instance-family - The instance family of the offering (for example,
+ // m4).
//
// * payment-option - The payment option (NoUpfront | PartialUpfront | AllUpfront).
Filter []*Filter `locationNameList:"Filter" type:"list"`
- // This is the maximum duration of the reservation you'd like to purchase, specified
- // in seconds. Reservations are available in one-year and three-year terms.
- // The number of seconds specified must be the number of seconds in a year (365x24x60x60)
+ // This is the maximum duration of the reservation to purchase, specified in
+ // seconds. Reservations are available in one-year and three-year terms. The
+ // number of seconds specified must be the number of seconds in a year (365x24x60x60)
// times one of the supported durations (1 or 3). For example, specify 94608000
// for three years.
MaxDuration *int64 `type:"integer"`
// The maximum number of results to return for the request in a single page.
// The remaining results can be seen by sending another request with the returned
- // nextToken value. This value can be between 5 and 500; if maxResults is given
- // a larger value than 500, you will receive an error.
+ // nextToken value. This value can be between 5 and 500. If maxResults is given
+ // a larger value than 500, you receive an error.
MaxResults *int64 `type:"integer"`
// This is the minimum duration of the reservation you'd like to purchase, specified
@@ -35911,7 +44903,7 @@ type DescribeHostReservationsInput struct {
// One or more filters.
//
- // * instance-family - The instance family (e.g., m4).
+ // * instance-family - The instance family (for example, m4).
//
// * payment-option - The payment option (NoUpfront | PartialUpfront | AllUpfront).
//
@@ -35924,8 +44916,8 @@ type DescribeHostReservationsInput struct {
// The maximum number of results to return for the request in a single page.
// The remaining results can be seen by sending another request with the returned
- // nextToken value. This value can be between 5 and 500; if maxResults is given
- // a larger value than 500, you will receive an error.
+ // nextToken value. This value can be between 5 and 500. If maxResults is given
+ // a larger value than 500, you receive an error.
MaxResults *int64 `type:"integer"`
// The token to use to retrieve the next page of results.
@@ -35999,7 +44991,6 @@ func (s *DescribeHostReservationsOutput) SetNextToken(v string) *DescribeHostRes
return s
}
-// Contains the parameters for DescribeHosts.
type DescribeHostsInput struct {
_ struct{} `type:"structure"`
@@ -36010,7 +45001,7 @@ type DescribeHostsInput struct {
//
// * availability-zone - The Availability Zone of the host.
//
- // * client-token - The idempotency token you provided when you allocated
+ // * client-token - The idempotency token that you provided when you allocated
// the host.
//
// * host-reservation-id - The ID of the reservation assigned to this host.
@@ -36020,6 +45011,10 @@ type DescribeHostsInput struct {
//
// * state - The allocation state of the Dedicated Host (available | under-assessment
// | permanent-failure | released | released-permanent-failure).
+ //
+ // * tag-key - The key of a tag assigned to the resource. Use this filter
+ // to find all resources assigned a tag with a specific key, regardless of
+ // the tag value.
Filter []*Filter `locationName:"filter" locationNameList:"Filter" type:"list"`
// The IDs of the Dedicated Hosts. The IDs are used for targeted instance launches.
@@ -36027,9 +45022,9 @@ type DescribeHostsInput struct {
// The maximum number of results to return for the request in a single page.
// The remaining results can be seen by sending another request with the returned
- // nextToken value. This value can be between 5 and 500; if maxResults is given
- // a larger value than 500, you will receive an error. You cannot specify this
- // parameter and the host IDs parameter in the same request.
+ // nextToken value. This value can be between 5 and 500. If maxResults is given
+ // a larger value than 500, you receive an error. You cannot specify this parameter
+ // and the host IDs parameter in the same request.
MaxResults *int64 `locationName:"maxResults" type:"integer"`
// The token to retrieve the next page of results.
@@ -36070,7 +45065,6 @@ func (s *DescribeHostsInput) SetNextToken(v string) *DescribeHostsInput {
return s
}
-// Contains the output of DescribeHosts.
type DescribeHostsOutput struct {
_ struct{} `type:"structure"`
@@ -36209,7 +45203,6 @@ func (s *DescribeIamInstanceProfileAssociationsOutput) SetNextToken(v string) *D
return s
}
-// Contains the parameters for DescribeIdFormat.
type DescribeIdFormatInput struct {
_ struct{} `type:"structure"`
@@ -36239,7 +45232,6 @@ func (s *DescribeIdFormatInput) SetResource(v string) *DescribeIdFormatInput {
return s
}
-// Contains the output of DescribeIdFormat.
type DescribeIdFormatOutput struct {
_ struct{} `type:"structure"`
@@ -36263,7 +45255,6 @@ func (s *DescribeIdFormatOutput) SetStatuses(v []*IdFormat) *DescribeIdFormatOut
return s
}
-// Contains the parameters for DescribeIdentityIdFormat.
type DescribeIdentityIdFormatInput struct {
_ struct{} `type:"structure"`
@@ -36318,7 +45309,6 @@ func (s *DescribeIdentityIdFormatInput) SetResource(v string) *DescribeIdentityI
return s
}
-// Contains the output of DescribeIdentityIdFormat.
type DescribeIdentityIdFormatOutput struct {
_ struct{} `type:"structure"`
@@ -36579,21 +45569,15 @@ type DescribeImagesInput struct {
// * sriov-net-support - A value of simple indicates that enhanced networking
// with the Intel 82599 VF interface is enabled.
//
- // * tag:key=value - The key/value combination of a tag assigned to the resource.
- // Specify the key of the tag in the filter name and the value of the tag
- // in the filter value. For example, for the tag Purpose=X, specify tag:Purpose
- // for the filter name and X for the filter value.
+ // * tag: - The key/value combination of a tag assigned to the resource.
+ // Use the tag key in the filter name and the tag value as the filter value.
+ // For example, to find all resources that have a tag with the key Owner
+ // and the value TeamA, specify tag:Owner for the filter name and TeamA for
+ // the filter value.
//
- // * tag-key - The key of a tag assigned to the resource. This filter is
- // independent of the tag-value filter. For example, if you use both the
- // filter "tag-key=Purpose" and the filter "tag-value=X", you get any resources
- // assigned both the tag key Purpose (regardless of what the tag's value
- // is), and the tag value X (regardless of what the tag's key is). If you
- // want to list only resources where Purpose is X, see the tag:key=value
- // filter.
- //
- // * tag-value - The value of a tag assigned to the resource. This filter
- // is independent of the tag-key filter.
+ // * tag-key - The key of a tag assigned to the resource. Use this filter
+ // to find all resources assigned a tag with a specific key, regardless of
+ // the tag value.
//
// * virtualization-type - The virtualization type (paravirtual | hvm).
Filters []*Filter `locationName:"Filter" locationNameList:"Filter" type:"list"`
@@ -36873,7 +45857,6 @@ func (s *DescribeImportSnapshotTasksOutput) SetNextToken(v string) *DescribeImpo
return s
}
-// Contains the parameters for DescribeInstanceAttribute.
type DescribeInstanceAttributeInput struct {
_ struct{} `type:"structure"`
@@ -37199,7 +46182,6 @@ func (s *DescribeInstanceCreditSpecificationsOutput) SetNextToken(v string) *Des
return s
}
-// Contains the parameters for DescribeInstanceStatus.
type DescribeInstanceStatusInput struct {
_ struct{} `type:"structure"`
@@ -37225,7 +46207,7 @@ type DescribeInstanceStatusInput struct {
// example, 2014-09-15T17:15:20.000Z).
//
// * instance-state-code - The code for the instance state, as a 16-bit unsigned
- // integer. The high byte is an opaque internal value and should be ignored.
+ // integer. The high byte is used for internal purposes and should be ignored.
// The low byte is set based on the state represented. The valid values are
// 0 (pending), 16 (running), 32 (shutting-down), 48 (terminated), 64 (stopping),
// and 80 (stopped).
@@ -37315,7 +46297,6 @@ func (s *DescribeInstanceStatusInput) SetNextToken(v string) *DescribeInstanceSt
return s
}
-// Contains the output of DescribeInstanceStatus.
type DescribeInstanceStatusOutput struct {
_ struct{} `type:"structure"`
@@ -37349,7 +46330,6 @@ func (s *DescribeInstanceStatusOutput) SetNextToken(v string) *DescribeInstanceS
return s
}
-// Contains the parameters for DescribeInstances.
type DescribeInstancesInput struct {
_ struct{} `type:"structure"`
@@ -37393,6 +46373,10 @@ type DescribeInstancesInput struct {
// * group-name - The name of the security group for the instance. EC2-Classic
// only.
//
+ // * hibernation-options.configured - A Boolean that indicates whether the
+ // instance is enabled for hibernation. A value of true means that the instance
+ // is enabled for hibernation.
+ //
// * host-id - The ID of the Dedicated Host on which the instance is running,
// if applicable.
//
@@ -37409,7 +46393,7 @@ type DescribeInstancesInput struct {
// Scheduled Instance (spot | scheduled).
//
// * instance-state-code - The state of the instance, as a 16-bit unsigned
- // integer. The high byte is an opaque internal value and should be ignored.
+ // integer. The high byte is used for internal purposes and should be ignored.
// The low byte is set based on the state represented. The valid values are:
// 0 (pending), 16 (running), 32 (shutting-down), 48 (terminated), 64 (stopping),
// and 80 (stopped).
@@ -37527,6 +46511,8 @@ type DescribeInstancesInput struct {
//
// * owner-id - The AWS account ID of the instance owner.
//
+ // * partition-number - The partition in which the instance is located.
+ //
// * placement-group-name - The name of the placement group for the instance.
//
// * platform - The platform. Use windows if you have Windows instances;
@@ -37576,20 +46562,15 @@ type DescribeInstancesInput struct {
//
// * subnet-id - The ID of the subnet for the instance.
//
- // * tag:key=value - The key/value combination of a tag assigned to the resource.
- // Specify the key of the tag in the filter name and the value of the tag
- // in the filter value. For example, for the tag Purpose=X, specify tag:Purpose
- // for the filter name and X for the filter value.
+ // * tag: - The key/value combination of a tag assigned to the resource.
+ // Use the tag key in the filter name and the tag value as the filter value.
+ // For example, to find all resources that have a tag with the key Owner
+ // and the value TeamA, specify tag:Owner for the filter name and TeamA for
+ // the filter value.
//
- // * tag-key - The key of a tag assigned to the resource. This filter is
- // independent of the tag-value filter. For example, if you use both the
- // filter "tag-key=Purpose" and the filter "tag-value=X", you get any resources
- // assigned both the tag key Purpose (regardless of what the tag's value
- // is), and the tag value X (regardless of the tag's key). If you want to
- // list only resources where Purpose is X, see the tag:key=value filter.
- //
- // * tag-value - The value of a tag assigned to the resource. This filter
- // is independent of the tag-key filter.
+ // * tag-key - The key of a tag assigned to the resource. Use this filter
+ // to find all resources that have a tag with a specific key, regardless
+ // of the tag value.
//
// * tenancy - The tenancy of an instance (dedicated | default | host).
//
@@ -37654,7 +46635,6 @@ func (s *DescribeInstancesInput) SetNextToken(v string) *DescribeInstancesInput
return s
}
-// Contains the output of DescribeInstances.
type DescribeInstancesOutput struct {
_ struct{} `type:"structure"`
@@ -37688,7 +46668,6 @@ func (s *DescribeInstancesOutput) SetReservations(v []*Reservation) *DescribeIns
return s
}
-// Contains the parameters for DescribeInternetGateways.
type DescribeInternetGatewaysInput struct {
_ struct{} `type:"structure"`
@@ -37707,26 +46686,22 @@ type DescribeInternetGatewaysInput struct {
//
// * internet-gateway-id - The ID of the Internet gateway.
//
- // * tag:key=value - The key/value combination of a tag assigned to the resource.
- // Specify the key of the tag in the filter name and the value of the tag
- // in the filter value. For example, for the tag Purpose=X, specify tag:Purpose
- // for the filter name and X for the filter value.
+ // * owner-id - The ID of the AWS account that owns the internet gateway.
//
- // * tag-key - The key of a tag assigned to the resource. This filter is
- // independent of the tag-value filter. For example, if you use both the
- // filter "tag-key=Purpose" and the filter "tag-value=X", you get any resources
- // assigned both the tag key Purpose (regardless of what the tag's value
- // is), and the tag value X (regardless of what the tag's key is). If you
- // want to list only resources where Purpose is X, see the tag:key=value
- // filter.
+ // * tag: - The key/value combination of a tag assigned to the resource.
+ // Use the tag key in the filter name and the tag value as the filter value.
+ // For example, to find all resources that have a tag with the key Owner
+ // and the value TeamA, specify tag:Owner for the filter name and TeamA for
+ // the filter value.
//
- // * tag-value - The value of a tag assigned to the resource. This filter
- // is independent of the tag-key filter.
+ // * tag-key - The key of a tag assigned to the resource. Use this filter
+ // to find all resources assigned a tag with a specific key, regardless of
+ // the tag value.
Filters []*Filter `locationName:"Filter" locationNameList:"Filter" type:"list"`
- // One or more Internet gateway IDs.
+ // One or more internet gateway IDs.
//
- // Default: Describes all your Internet gateways.
+ // Default: Describes all your internet gateways.
InternetGatewayIds []*string `locationName:"internetGatewayId" locationNameList:"item" type:"list"`
}
@@ -37758,11 +46733,10 @@ func (s *DescribeInternetGatewaysInput) SetInternetGatewayIds(v []*string) *Desc
return s
}
-// Contains the output of DescribeInternetGateways.
type DescribeInternetGatewaysOutput struct {
_ struct{} `type:"structure"`
- // Information about one or more Internet gateways.
+ // Information about one or more internet gateways.
InternetGateways []*InternetGateway `locationName:"internetGatewaySet" locationNameList:"item" type:"list"`
}
@@ -37782,7 +46756,6 @@ func (s *DescribeInternetGatewaysOutput) SetInternetGateways(v []*InternetGatewa
return s
}
-// Contains the parameters for DescribeKeyPairs.
type DescribeKeyPairsInput struct {
_ struct{} `type:"structure"`
@@ -37833,7 +46806,6 @@ func (s *DescribeKeyPairsInput) SetKeyNames(v []*string) *DescribeKeyPairsInput
return s
}
-// Contains the output of DescribeKeyPairs.
type DescribeKeyPairsOutput struct {
_ struct{} `type:"structure"`
@@ -37897,7 +46869,7 @@ type DescribeLaunchTemplateVersionsInput struct {
// The maximum number of results to return in a single call. To retrieve the
// remaining results, make another call with the returned NextToken value. This
- // value can be between 5 and 1000.
+ // value can be between 1 and 200.
MaxResults *int64 `type:"integer"`
// The version number up to which to describe launch template versions.
@@ -38038,17 +47010,15 @@ type DescribeLaunchTemplatesInput struct {
//
// * launch-template-name - The name of the launch template.
//
- // * tag:key=value - The key/value combination of a tag assigned to the resource.
- // Specify the key of the tag in the filter name and the value of the tag
- // in the filter value. For example, for the tag Purpose=X, specify tag:Purpose
- // for the filter name and X for the filter value.
+ // * tag: - The key/value combination of a tag assigned to the resource.
+ // Use the tag key in the filter name and the tag value as the filter value.
+ // For example, to find all resources that have a tag with the key Owner
+ // and the value TeamA, specify tag:Owner for the filter name and TeamA for
+ // the filter value.
//
- // * tag-key - The key of a tag assigned to the resource. This filter is
- // independent of the tag-value filter. For example, if you use both the
- // filter "tag-key=Purpose" and the filter "tag-value=X", you get any resources
- // assigned both the tag key Purpose (regardless of what the tag's value
- // is), and the tag value X (regardless of the tag's key). If you want to
- // list only resources where Purpose is X, see the tag:key=value filter.
+ // * tag-key - The key of a tag assigned to the resource. Use this filter
+ // to find all resources assigned a tag with a specific key, regardless of
+ // the tag value.
Filters []*Filter `locationName:"Filter" locationNameList:"Filter" type:"list"`
// One or more launch template IDs.
@@ -38059,7 +47029,7 @@ type DescribeLaunchTemplatesInput struct {
// The maximum number of results to return in a single call. To retrieve the
// remaining results, make another call with the returned NextToken value. This
- // value can be between 5 and 1000.
+ // value can be between 1 and 200.
MaxResults *int64 `type:"integer"`
// The token to request the next page of results.
@@ -38145,7 +47115,6 @@ func (s *DescribeLaunchTemplatesOutput) SetNextToken(v string) *DescribeLaunchTe
return s
}
-// Contains the parameters for DescribeMovingAddresses.
type DescribeMovingAddressesInput struct {
_ struct{} `type:"structure"`
@@ -38169,7 +47138,7 @@ type DescribeMovingAddressesInput struct {
// Default: If no value is provided, the default is 1000.
MaxResults *int64 `locationName:"maxResults" type:"integer"`
- // The token to use to retrieve the next page of results.
+ // The token for the next page of results.
NextToken *string `locationName:"nextToken" type:"string"`
// One or more Elastic IP addresses.
@@ -38216,7 +47185,6 @@ func (s *DescribeMovingAddressesInput) SetPublicIps(v []*string) *DescribeMoving
return s
}
-// Contains the output of DescribeMovingAddresses.
type DescribeMovingAddressesOutput struct {
_ struct{} `type:"structure"`
@@ -38250,7 +47218,6 @@ func (s *DescribeMovingAddressesOutput) SetNextToken(v string) *DescribeMovingAd
return s
}
-// Contains the parameters for DescribeNatGateways.
type DescribeNatGatewaysInput struct {
_ struct{} `type:"structure"`
@@ -38263,21 +47230,15 @@ type DescribeNatGatewaysInput struct {
//
// * subnet-id - The ID of the subnet in which the NAT gateway resides.
//
- // * tag:key=value - The key/value combination of a tag assigned to the resource.
- // Specify the key of the tag in the filter name and the value of the tag
- // in the filter value. For example, for the tag Purpose=X, specify tag:Purpose
- // for the filter name and X for the filter value.
+ // * tag: - The key/value combination of a tag assigned to the resource.
+ // Use the tag key in the filter name and the tag value as the filter value.
+ // For example, to find all resources that have a tag with the key Owner
+ // and the value TeamA, specify tag:Owner for the filter name and TeamA for
+ // the filter value.
//
- // * tag-key - The key of a tag assigned to the resource. This filter is
- // independent of the tag-value filter. For example, if you use both the
- // filter "tag-key=Purpose" and the filter "tag-value=X", you get any resources
- // assigned both the tag key Purpose (regardless of what the tag's value
- // is), and the tag value X (regardless of what the tag's key is). If you
- // want to list only resources where Purpose is X, see the tag:key=value
- // filter.
- //
- // * tag-value - The value of a tag assigned to the resource. This filter
- // is independent of the tag-key filter.
+ // * tag-key - The key of a tag assigned to the resource. Use this filter
+ // to find all resources assigned a tag with a specific key, regardless of
+ // the tag value.
//
// * vpc-id - The ID of the VPC in which the NAT gateway resides.
Filter []*Filter `locationNameList:"Filter" type:"list"`
@@ -38331,7 +47292,6 @@ func (s *DescribeNatGatewaysInput) SetNextToken(v string) *DescribeNatGatewaysIn
return s
}
-// Contains the output of DescribeNatGateways.
type DescribeNatGatewaysOutput struct {
_ struct{} `type:"structure"`
@@ -38365,7 +47325,6 @@ func (s *DescribeNatGatewaysOutput) SetNextToken(v string) *DescribeNatGatewaysO
return s
}
-// Contains the parameters for DescribeNetworkAcls.
type DescribeNetworkAclsInput struct {
_ struct{} `type:"structure"`
@@ -38389,8 +47348,6 @@ type DescribeNetworkAclsInput struct {
//
// * entry.cidr - The IPv4 CIDR range specified in the entry.
//
- // * entry.egress - Indicates whether the entry applies to egress traffic.
- //
// * entry.icmp.code - The ICMP code specified in the entry, if any.
//
// * entry.icmp.type - The ICMP type specified in the entry, if any.
@@ -38409,25 +47366,21 @@ type DescribeNetworkAclsInput struct {
// * entry.rule-action - Allows or denies the matching traffic (allow | deny).
//
// * entry.rule-number - The number of an entry (in other words, rule) in
- // the ACL's set of entries.
+ // the set of ACL entries.
//
// * network-acl-id - The ID of the network ACL.
//
- // * tag:key=value - The key/value combination of a tag assigned to the resource.
- // Specify the key of the tag in the filter name and the value of the tag
- // in the filter value. For example, for the tag Purpose=X, specify tag:Purpose
- // for the filter name and X for the filter value.
+ // * owner-id - The ID of the AWS account that owns the network ACL.
//
- // * tag-key - The key of a tag assigned to the resource. This filter is
- // independent of the tag-value filter. For example, if you use both the
- // filter "tag-key=Purpose" and the filter "tag-value=X", you get any resources
- // assigned both the tag key Purpose (regardless of what the tag's value
- // is), and the tag value X (regardless of what the tag's key is). If you
- // want to list only resources where Purpose is X, see the tag:key=value
- // filter.
+ // * tag: - The key/value combination of a tag assigned to the resource.
+ // Use the tag key in the filter name and the tag value as the filter value.
+ // For example, to find all resources that have a tag with the key Owner
+ // and the value TeamA, specify tag:Owner for the filter name and TeamA for
+ // the filter value.
//
- // * tag-value - The value of a tag assigned to the resource. This filter
- // is independent of the tag-key filter.
+ // * tag-key - The key of a tag assigned to the resource. Use this filter
+ // to find all resources assigned a tag with a specific key, regardless of
+ // the tag value.
//
// * vpc-id - The ID of the VPC for the network ACL.
Filters []*Filter `locationName:"Filter" locationNameList:"Filter" type:"list"`
@@ -38466,7 +47419,6 @@ func (s *DescribeNetworkAclsInput) SetNetworkAclIds(v []*string) *DescribeNetwor
return s
}
-// Contains the output of DescribeNetworkAcls.
type DescribeNetworkAclsOutput struct {
_ struct{} `type:"structure"`
@@ -38813,29 +47765,31 @@ type DescribeNetworkInterfacesInput struct {
//
// * subnet-id - The ID of the subnet for the network interface.
//
- // * tag:key=value - The key/value combination of a tag assigned to the resource.
- // Specify the key of the tag in the filter name and the value of the tag
- // in the filter value. For example, for the tag Purpose=X, specify tag:Purpose
- // for the filter name and X for the filter value.
+ // * tag: - The key/value combination of a tag assigned to the resource.
+ // Use the tag key in the filter name and the tag value as the filter value.
+ // For example, to find all resources that have a tag with the key Owner
+ // and the value TeamA, specify tag:Owner for the filter name and TeamA for
+ // the filter value.
//
- // * tag-key - The key of a tag assigned to the resource. This filter is
- // independent of the tag-value filter. For example, if you use both the
- // filter "tag-key=Purpose" and the filter "tag-value=X", you get any resources
- // assigned both the tag key Purpose (regardless of what the tag's value
- // is), and the tag value X (regardless of what the tag's key is). If you
- // want to list only resources where Purpose is X, see the tag:key=value
- // filter.
- //
- // * tag-value - The value of a tag assigned to the resource. This filter
- // is independent of the tag-key filter.
+ // * tag-key - The key of a tag assigned to the resource. Use this filter
+ // to find all resources assigned a tag with a specific key, regardless of
+ // the tag value.
//
// * vpc-id - The ID of the VPC for the network interface.
Filters []*Filter `locationName:"filter" locationNameList:"Filter" type:"list"`
+ // The maximum number of items to return for this request. The request returns
+ // a token that you can specify in a subsequent call to get the next set of
+ // results.
+ MaxResults *int64 `type:"integer"`
+
// One or more network interface IDs.
//
// Default: Describes all your network interfaces.
NetworkInterfaceIds []*string `locationName:"NetworkInterfaceId" locationNameList:"item" type:"list"`
+
+ // The token to retrieve the next page of results.
+ NextToken *string `type:"string"`
}
// String returns the string representation
@@ -38860,18 +47814,34 @@ func (s *DescribeNetworkInterfacesInput) SetFilters(v []*Filter) *DescribeNetwor
return s
}
+// SetMaxResults sets the MaxResults field's value.
+func (s *DescribeNetworkInterfacesInput) SetMaxResults(v int64) *DescribeNetworkInterfacesInput {
+ s.MaxResults = &v
+ return s
+}
+
// SetNetworkInterfaceIds sets the NetworkInterfaceIds field's value.
func (s *DescribeNetworkInterfacesInput) SetNetworkInterfaceIds(v []*string) *DescribeNetworkInterfacesInput {
s.NetworkInterfaceIds = v
return s
}
+// SetNextToken sets the NextToken field's value.
+func (s *DescribeNetworkInterfacesInput) SetNextToken(v string) *DescribeNetworkInterfacesInput {
+ s.NextToken = &v
+ return s
+}
+
// Contains the output of DescribeNetworkInterfaces.
type DescribeNetworkInterfacesOutput struct {
_ struct{} `type:"structure"`
// Information about one or more network interfaces.
NetworkInterfaces []*NetworkInterface `locationName:"networkInterfaceSet" locationNameList:"item" type:"list"`
+
+ // The token to use to retrieve the next page of results. This value is null
+ // when there are no more results to return.
+ NextToken *string `locationName:"nextToken" type:"string"`
}
// String returns the string representation
@@ -38890,7 +47860,12 @@ func (s *DescribeNetworkInterfacesOutput) SetNetworkInterfaces(v []*NetworkInter
return s
}
-// Contains the parameters for DescribePlacementGroups.
+// SetNextToken sets the NextToken field's value.
+func (s *DescribeNetworkInterfacesOutput) SetNextToken(v string) *DescribeNetworkInterfacesOutput {
+ s.NextToken = &v
+ return s
+}
+
type DescribePlacementGroupsInput struct {
_ struct{} `type:"structure"`
@@ -38907,7 +47882,7 @@ type DescribePlacementGroupsInput struct {
// * state - The state of the placement group (pending | available | deleting
// | deleted).
//
- // * strategy - The strategy of the placement group (cluster | spread).
+ // * strategy - The strategy of the placement group (cluster | spread | partition).
Filters []*Filter `locationName:"Filter" locationNameList:"Filter" type:"list"`
// One or more placement group names.
@@ -38944,7 +47919,6 @@ func (s *DescribePlacementGroupsInput) SetGroupNames(v []*string) *DescribePlace
return s
}
-// Contains the output of DescribePlacementGroups.
type DescribePlacementGroupsOutput struct {
_ struct{} `type:"structure"`
@@ -38968,7 +47942,6 @@ func (s *DescribePlacementGroupsOutput) SetPlacementGroups(v []*PlacementGroup)
return s
}
-// Contains the parameters for DescribePrefixLists.
type DescribePrefixListsInput struct {
_ struct{} `type:"structure"`
@@ -39041,7 +48014,6 @@ func (s *DescribePrefixListsInput) SetPrefixListIds(v []*string) *DescribePrefix
return s
}
-// Contains the output of DescribePrefixLists.
type DescribePrefixListsOutput struct {
_ struct{} `type:"structure"`
@@ -39168,7 +48140,97 @@ func (s *DescribePrincipalIdFormatOutput) SetPrincipals(v []*PrincipalIdFormat)
return s
}
-// Contains the parameters for DescribeRegions.
+type DescribePublicIpv4PoolsInput struct {
+ _ struct{} `type:"structure"`
+
+ // The maximum number of results to return with a single call. To retrieve the
+ // remaining results, make another call with the returned nextToken value.
+ MaxResults *int64 `min:"1" type:"integer"`
+
+ // The token for the next page of results.
+ NextToken *string `min:"1" type:"string"`
+
+ // The IDs of the address pools.
+ PoolIds []*string `locationName:"PoolId" locationNameList:"item" type:"list"`
+}
+
+// String returns the string representation
+func (s DescribePublicIpv4PoolsInput) String() string {
+ return awsutil.Prettify(s)
+}
+
+// GoString returns the string representation
+func (s DescribePublicIpv4PoolsInput) GoString() string {
+ return s.String()
+}
+
+// Validate inspects the fields of the type to determine if they are valid.
+func (s *DescribePublicIpv4PoolsInput) Validate() error {
+ invalidParams := request.ErrInvalidParams{Context: "DescribePublicIpv4PoolsInput"}
+ if s.MaxResults != nil && *s.MaxResults < 1 {
+ invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
+ }
+ if s.NextToken != nil && len(*s.NextToken) < 1 {
+ invalidParams.Add(request.NewErrParamMinLen("NextToken", 1))
+ }
+
+ if invalidParams.Len() > 0 {
+ return invalidParams
+ }
+ return nil
+}
+
+// SetMaxResults sets the MaxResults field's value.
+func (s *DescribePublicIpv4PoolsInput) SetMaxResults(v int64) *DescribePublicIpv4PoolsInput {
+ s.MaxResults = &v
+ return s
+}
+
+// SetNextToken sets the NextToken field's value.
+func (s *DescribePublicIpv4PoolsInput) SetNextToken(v string) *DescribePublicIpv4PoolsInput {
+ s.NextToken = &v
+ return s
+}
+
+// SetPoolIds sets the PoolIds field's value.
+func (s *DescribePublicIpv4PoolsInput) SetPoolIds(v []*string) *DescribePublicIpv4PoolsInput {
+ s.PoolIds = v
+ return s
+}
+
+type DescribePublicIpv4PoolsOutput struct {
+ _ struct{} `type:"structure"`
+
+ // The token to use to retrieve the next page of results. This value is null
+ // when there are no more results to return.
+ NextToken *string `locationName:"nextToken" type:"string"`
+
+ // Information about the address pools.
+ PublicIpv4Pools []*PublicIpv4Pool `locationName:"publicIpv4PoolSet" locationNameList:"item" type:"list"`
+}
+
+// String returns the string representation
+func (s DescribePublicIpv4PoolsOutput) String() string {
+ return awsutil.Prettify(s)
+}
+
+// GoString returns the string representation
+func (s DescribePublicIpv4PoolsOutput) GoString() string {
+ return s.String()
+}
+
+// SetNextToken sets the NextToken field's value.
+func (s *DescribePublicIpv4PoolsOutput) SetNextToken(v string) *DescribePublicIpv4PoolsOutput {
+ s.NextToken = &v
+ return s
+}
+
+// SetPublicIpv4Pools sets the PublicIpv4Pools field's value.
+func (s *DescribePublicIpv4PoolsOutput) SetPublicIpv4Pools(v []*PublicIpv4Pool) *DescribePublicIpv4PoolsOutput {
+ s.PublicIpv4Pools = v
+ return s
+}
+
type DescribeRegionsInput struct {
_ struct{} `type:"structure"`
@@ -39217,7 +48279,6 @@ func (s *DescribeRegionsInput) SetRegionNames(v []*string) *DescribeRegionsInput
return s
}
-// Contains the output of DescribeRegions.
type DescribeRegionsOutput struct {
_ struct{} `type:"structure"`
@@ -39286,21 +48347,15 @@ type DescribeReservedInstancesInput struct {
// * state - The state of the Reserved Instance (payment-pending | active
// | payment-failed | retired).
//
- // * tag:key=value - The key/value combination of a tag assigned to the resource.
- // Specify the key of the tag in the filter name and the value of the tag
- // in the filter value. For example, for the tag Purpose=X, specify tag:Purpose
- // for the filter name and X for the filter value.
+ // * tag: - The key/value combination of a tag assigned to the resource.
+ // Use the tag key in the filter name and the tag value as the filter value.
+ // For example, to find all resources that have a tag with the key Owner
+ // and the value TeamA, specify tag:Owner for the filter name and TeamA for
+ // the filter value.
//
- // * tag-key - The key of a tag assigned to the resource. This filter is
- // independent of the tag-value filter. For example, if you use both the
- // filter "tag-key=Purpose" and the filter "tag-value=X", you get any resources
- // assigned both the tag key Purpose (regardless of what the tag's value
- // is), and the tag value X (regardless of what the tag's key is). If you
- // want to list only resources where Purpose is X, see the tag:key=value
- // filter.
- //
- // * tag-value - The value of a tag assigned to the resource. This filter
- // is independent of the tag-key filter.
+ // * tag-key - The key of a tag assigned to the resource. Use this filter
+ // to find all resources assigned a tag with a specific key, regardless of
+ // the tag value.
//
// * usage-price - The usage price of the Reserved Instance, per hour (for
// example, 0.84).
@@ -39811,7 +48866,6 @@ func (s *DescribeReservedInstancesOutput) SetReservedInstances(v []*ReservedInst
return s
}
-// Contains the parameters for DescribeRouteTables.
type DescribeRouteTablesInput struct {
_ struct{} `type:"structure"`
@@ -39835,6 +48889,8 @@ type DescribeRouteTablesInput struct {
// table for the VPC (true | false). Route tables that do not have an association
// ID are not returned in the response.
//
+ // * owner-id - The ID of the AWS account that owns the route table.
+ //
// * route-table-id - The ID of the route table.
//
// * route.destination-cidr-block - The IPv4 CIDR range specified in a route
@@ -39856,6 +48912,8 @@ type DescribeRouteTablesInput struct {
//
// * route.nat-gateway-id - The ID of a NAT gateway.
//
+ // * route.transit-gateway-id - The ID of a transit gateway.
+ //
// * route.origin - Describes how the route was created. CreateRouteTable
// indicates that the route was automatically created when the route table
// was created; CreateRoute indicates that the route was manually added to
@@ -39870,25 +48928,29 @@ type DescribeRouteTablesInput struct {
// * route.vpc-peering-connection-id - The ID of a VPC peering connection
// specified in a route in the table.
//
- // * tag:key=value - The key/value combination of a tag assigned to the resource.
- // Specify the key of the tag in the filter name and the value of the tag
- // in the filter value. For example, for the tag Purpose=X, specify tag:Purpose
- // for the filter name and X for the filter value.
+ // * tag: - The key/value combination of a tag assigned to the resource.
+ // Use the tag key in the filter name and the tag value as the filter value.
+ // For example, to find all resources that have a tag with the key Owner
+ // and the value TeamA, specify tag:Owner for the filter name and TeamA for
+ // the filter value.
//
- // * tag-key - The key of a tag assigned to the resource. This filter is
- // independent of the tag-value filter. For example, if you use both the
- // filter "tag-key=Purpose" and the filter "tag-value=X", you get any resources
- // assigned both the tag key Purpose (regardless of what the tag's value
- // is), and the tag value X (regardless of what the tag's key is). If you
- // want to list only resources where Purpose is X, see the tag:key=value
- // filter.
+ // * tag-key - The key of a tag assigned to the resource. Use this filter
+ // to find all resources assigned a tag with a specific key, regardless of
+ // the tag value.
//
- // * tag-value - The value of a tag assigned to the resource. This filter
- // is independent of the tag-key filter.
+ // * transit-gateway-id - The ID of a transit gateway.
//
// * vpc-id - The ID of the VPC for the route table.
Filters []*Filter `locationName:"Filter" locationNameList:"Filter" type:"list"`
+ // The maximum number of results to return in a single call. To retrieve the
+ // remaining results, make another call with the returned NextToken value. This
+ // value can be between 5 and 100.
+ MaxResults *int64 `type:"integer"`
+
+ // The token to retrieve the next page of results.
+ NextToken *string `type:"string"`
+
// One or more route table IDs.
//
// Default: Describes all your route tables.
@@ -39917,6 +48979,18 @@ func (s *DescribeRouteTablesInput) SetFilters(v []*Filter) *DescribeRouteTablesI
return s
}
+// SetMaxResults sets the MaxResults field's value.
+func (s *DescribeRouteTablesInput) SetMaxResults(v int64) *DescribeRouteTablesInput {
+ s.MaxResults = &v
+ return s
+}
+
+// SetNextToken sets the NextToken field's value.
+func (s *DescribeRouteTablesInput) SetNextToken(v string) *DescribeRouteTablesInput {
+ s.NextToken = &v
+ return s
+}
+
// SetRouteTableIds sets the RouteTableIds field's value.
func (s *DescribeRouteTablesInput) SetRouteTableIds(v []*string) *DescribeRouteTablesInput {
s.RouteTableIds = v
@@ -39927,6 +49001,10 @@ func (s *DescribeRouteTablesInput) SetRouteTableIds(v []*string) *DescribeRouteT
type DescribeRouteTablesOutput struct {
_ struct{} `type:"structure"`
+ // The token to use to retrieve the next page of results. This value is null
+ // when there are no more results to return.
+ NextToken *string `locationName:"nextToken" type:"string"`
+
// Information about one or more route tables.
RouteTables []*RouteTable `locationName:"routeTableSet" locationNameList:"item" type:"list"`
}
@@ -39941,6 +49019,12 @@ func (s DescribeRouteTablesOutput) GoString() string {
return s.String()
}
+// SetNextToken sets the NextToken field's value.
+func (s *DescribeRouteTablesOutput) SetNextToken(v string) *DescribeRouteTablesOutput {
+ s.NextToken = &v
+ return s
+}
+
// SetRouteTables sets the RouteTables field's value.
func (s *DescribeRouteTablesOutput) SetRouteTables(v []*RouteTable) *DescribeRouteTablesOutput {
s.RouteTables = v
@@ -40229,7 +49313,7 @@ func (s *DescribeScheduledInstancesOutput) SetScheduledInstanceSet(v []*Schedule
type DescribeSecurityGroupReferencesInput struct {
_ struct{} `type:"structure"`
- // Checks whether you have the required permissions for the operation, without
+ // Checks whether you have the required permissions for the action, without
// actually making the request, and provides an error response. If you have
// the required permissions, the error response is DryRunOperation. Otherwise,
// it is UnauthorizedOperation.
@@ -40299,7 +49383,6 @@ func (s *DescribeSecurityGroupReferencesOutput) SetSecurityGroupReferenceSet(v [
return s
}
-// Contains the parameters for DescribeSecurityGroups.
type DescribeSecurityGroupsInput struct {
_ struct{} `type:"structure"`
@@ -40375,9 +49458,15 @@ type DescribeSecurityGroupsInput struct {
//
// * owner-id - The AWS account ID of the owner of the security group.
//
- // * tag-key - The key of a tag assigned to the security group.
+ // * tag: - The key/value combination of a tag assigned to the resource.
+ // Use the tag key in the filter name and the tag value as the filter value.
+ // For example, to find all resources that have a tag with the key Owner
+ // and the value TeamA, specify tag:Owner for the filter name and TeamA for
+ // the filter value.
//
- // * tag-value - The value of a tag assigned to the security group.
+ // * tag-key - The key of a tag assigned to the resource. Use this filter
+ // to find all resources assigned a tag with a specific key, regardless of
+ // the tag value.
//
// * vpc-id - The ID of the VPC specified when the security group was created.
Filters []*Filter `locationName:"Filter" locationNameList:"Filter" type:"list"`
@@ -40452,7 +49541,6 @@ func (s *DescribeSecurityGroupsInput) SetNextToken(v string) *DescribeSecurityGr
return s
}
-// Contains the output of DescribeSecurityGroups.
type DescribeSecurityGroupsOutput struct {
_ struct{} `type:"structure"`
@@ -40622,21 +49710,15 @@ type DescribeSnapshotsInput struct {
//
// * status - The status of the snapshot (pending | completed | error).
//
- // * tag:key=value - The key/value combination of a tag assigned to the resource.
- // Specify the key of the tag in the filter name and the value of the tag
- // in the filter value. For example, for the tag Purpose=X, specify tag:Purpose
- // for the filter name and X for the filter value.
+ // * tag: - The key/value combination of a tag assigned to the resource.
+ // Use the tag key in the filter name and the tag value as the filter value.
+ // For example, to find all resources that have a tag with the key Owner
+ // and the value TeamA, specify tag:Owner for the filter name and TeamA for
+ // the filter value.
//
- // * tag-key - The key of a tag assigned to the resource. This filter is
- // independent of the tag-value filter. For example, if you use both the
- // filter "tag-key=Purpose" and the filter "tag-value=X", you get any resources
- // assigned both the tag key Purpose (regardless of what the tag's value
- // is), and the tag value X (regardless of what the tag's key is). If you
- // want to list only resources where Purpose is X, see the tag:key=value
- // filter.
- //
- // * tag-value - The value of a tag assigned to the resource. This filter
- // is independent of the tag-key filter.
+ // * tag-key - The key of a tag assigned to the resource. Use this filter
+ // to find all resources assigned a tag with a specific key, regardless of
+ // the tag value.
//
// * volume-id - The ID of the volume the snapshot is for.
//
@@ -40890,18 +49972,14 @@ type DescribeSpotFleetInstancesOutput struct {
// The running instances. This list is refreshed periodically and might be out
// of date.
- //
- // ActiveInstances is a required field
- ActiveInstances []*ActiveInstance `locationName:"activeInstanceSet" locationNameList:"item" type:"list" required:"true"`
+ ActiveInstances []*ActiveInstance `locationName:"activeInstanceSet" locationNameList:"item" type:"list"`
// The token required to retrieve the next set of results. This value is null
// when there are no more results to return.
NextToken *string `locationName:"nextToken" type:"string"`
// The ID of the Spot Fleet request.
- //
- // SpotFleetRequestId is a required field
- SpotFleetRequestId *string `locationName:"spotFleetRequestId" type:"string" required:"true"`
+ SpotFleetRequestId *string `locationName:"spotFleetRequestId" type:"string"`
}
// String returns the string representation
@@ -40961,7 +50039,7 @@ type DescribeSpotFleetRequestHistoryInput struct {
// The starting date and time for the events, in UTC format (for example, YYYY-MM-DDTHH:MM:SSZ).
//
// StartTime is a required field
- StartTime *time.Time `locationName:"startTime" type:"timestamp" timestampFormat:"iso8601" required:"true"`
+ StartTime *time.Time `locationName:"startTime" type:"timestamp" required:"true"`
}
// String returns the string representation
@@ -41031,31 +50109,23 @@ type DescribeSpotFleetRequestHistoryOutput struct {
_ struct{} `type:"structure"`
// Information about the events in the history of the Spot Fleet request.
- //
- // HistoryRecords is a required field
- HistoryRecords []*HistoryRecord `locationName:"historyRecordSet" locationNameList:"item" type:"list" required:"true"`
+ HistoryRecords []*HistoryRecord `locationName:"historyRecordSet" locationNameList:"item" type:"list"`
// The last date and time for the events, in UTC format (for example, YYYY-MM-DDTHH:MM:SSZ).
// All records up to this time were retrieved.
//
// If nextToken indicates that there are more results, this value is not present.
- //
- // LastEvaluatedTime is a required field
- LastEvaluatedTime *time.Time `locationName:"lastEvaluatedTime" type:"timestamp" timestampFormat:"iso8601" required:"true"`
+ LastEvaluatedTime *time.Time `locationName:"lastEvaluatedTime" type:"timestamp"`
// The token required to retrieve the next set of results. This value is null
// when there are no more results to return.
NextToken *string `locationName:"nextToken" type:"string"`
// The ID of the Spot Fleet request.
- //
- // SpotFleetRequestId is a required field
- SpotFleetRequestId *string `locationName:"spotFleetRequestId" type:"string" required:"true"`
+ SpotFleetRequestId *string `locationName:"spotFleetRequestId" type:"string"`
// The starting date and time for the events, in UTC format (for example, YYYY-MM-DDTHH:MM:SSZ).
- //
- // StartTime is a required field
- StartTime *time.Time `locationName:"startTime" type:"timestamp" timestampFormat:"iso8601" required:"true"`
+ StartTime *time.Time `locationName:"startTime" type:"timestamp"`
}
// String returns the string representation
@@ -41163,9 +50233,7 @@ type DescribeSpotFleetRequestsOutput struct {
NextToken *string `locationName:"nextToken" type:"string"`
// Information about the configuration of your Spot Fleet.
- //
- // SpotFleetRequestConfigs is a required field
- SpotFleetRequestConfigs []*SpotFleetRequestConfig `locationName:"spotFleetRequestConfigSet" locationNameList:"item" type:"list" required:"true"`
+ SpotFleetRequestConfigs []*SpotFleetRequestConfig `locationName:"spotFleetRequestConfigSet" locationNameList:"item" type:"list"`
}
// String returns the string representation
@@ -41291,21 +50359,15 @@ type DescribeSpotInstanceRequestsInput struct {
// * status-message - The message explaining the status of the Spot Instance
// request.
//
- // * tag:key=value - The key/value combination of a tag assigned to the resource.
- // Specify the key of the tag in the filter name and the value of the tag
- // in the filter value. For example, for the tag Purpose=X, specify tag:Purpose
- // for the filter name and X for the filter value.
+ // * tag: - The key/value combination of a tag assigned to the resource.
+ // Use the tag key in the filter name and the tag value as the filter value.
+ // For example, to find all resources that have a tag with the key Owner
+ // and the value TeamA, specify tag:Owner for the filter name and TeamA for
+ // the filter value.
//
- // * tag-key - The key of a tag assigned to the resource. This filter is
- // independent of the tag-value filter. For example, if you use both the
- // filter "tag-key=Purpose" and the filter "tag-value=X", you get any resources
- // assigned both the tag key Purpose (regardless of what the tag's value
- // is), and the tag value X (regardless of what the tag's key is). If you
- // want to list only resources where Purpose is X, see the tag:key=value
- // filter.
- //
- // * tag-value - The value of a tag assigned to the resource. This filter
- // is independent of the tag-key filter.
+ // * tag-key - The key of a tag assigned to the resource. Use this filter
+ // to find all resources assigned a tag with a specific key, regardless of
+ // the tag value.
//
// * type - The type of Spot Instance request (one-time | persistent).
//
@@ -41385,7 +50447,7 @@ type DescribeSpotPriceHistoryInput struct {
// The date and time, up to the current date, from which to stop retrieving
// the price history data, in UTC format (for example, YYYY-MM-DDTHH:MM:SSZ).
- EndTime *time.Time `locationName:"endTime" type:"timestamp" timestampFormat:"iso8601"`
+ EndTime *time.Time `locationName:"endTime" type:"timestamp"`
// One or more filters.
//
@@ -41422,7 +50484,7 @@ type DescribeSpotPriceHistoryInput struct {
// The date and time, up to the past 90 days, from which to start retrieving
// the price history data, in UTC format (for example, YYYY-MM-DDTHH:MM:SSZ).
- StartTime *time.Time `locationName:"startTime" type:"timestamp" timestampFormat:"iso8601"`
+ StartTime *time.Time `locationName:"startTime" type:"timestamp"`
}
// String returns the string representation
@@ -41526,7 +50588,7 @@ func (s *DescribeSpotPriceHistoryOutput) SetSpotPriceHistory(v []*SpotPrice) *De
type DescribeStaleSecurityGroupsInput struct {
_ struct{} `type:"structure"`
- // Checks whether you have the required permissions for the operation, without
+ // Checks whether you have the required permissions for the action, without
// actually making the request, and provides an error response. If you have
// the required permissions, the error response is DryRunOperation. Otherwise,
// it is UnauthorizedOperation.
@@ -41633,7 +50695,6 @@ func (s *DescribeStaleSecurityGroupsOutput) SetStaleSecurityGroupSet(v []*StaleS
return s
}
-// Contains the parameters for DescribeSubnets.
type DescribeSubnetsInput struct {
_ struct{} `type:"structure"`
@@ -41645,18 +50706,21 @@ type DescribeSubnetsInput struct {
// One or more filters.
//
- // * availabilityZone - The Availability Zone for the subnet. You can also
- // use availability-zone as the filter name.
+ // * availability-zone - The Availability Zone for the subnet. You can also
+ // use availabilityZone as the filter name.
+ //
+ // * availability-zone-id - The ID of the Availability Zone for the subnet.
+ // You can also use availabilityZoneId as the filter name.
//
// * available-ip-address-count - The number of IPv4 addresses in the subnet
// that are available.
//
- // * cidrBlock - The IPv4 CIDR block of the subnet. The CIDR block you specify
+ // * cidr-block - The IPv4 CIDR block of the subnet. The CIDR block you specify
// must exactly match the subnet's CIDR block for information to be returned
- // for the subnet. You can also use cidr or cidr-block as the filter names.
+ // for the subnet. You can also use cidr or cidrBlock as the filter names.
//
- // * defaultForAz - Indicates whether this is the default subnet for the
- // Availability Zone. You can also use default-for-az as the filter name.
+ // * default-for-az - Indicates whether this is the default subnet for the
+ // Availability Zone. You can also use defaultForAz as the filter name.
//
// * ipv6-cidr-block-association.ipv6-cidr-block - An IPv6 CIDR block associated
// with the subnet.
@@ -41667,25 +50731,23 @@ type DescribeSubnetsInput struct {
// * ipv6-cidr-block-association.state - The state of an IPv6 CIDR block
// associated with the subnet.
//
+ // * owner-id - The ID of the AWS account that owns the subnet.
+ //
// * state - The state of the subnet (pending | available).
//
+ // * subnet-arn - The Amazon Resource Name (ARN) of the subnet.
+ //
// * subnet-id - The ID of the subnet.
//
- // * tag:key=value - The key/value combination of a tag assigned to the resource.
- // Specify the key of the tag in the filter name and the value of the tag
- // in the filter value. For example, for the tag Purpose=X, specify tag:Purpose
- // for the filter name and X for the filter value.
+ // * tag: - The key/value combination of a tag assigned to the resource.
+ // Use the tag key in the filter name and the tag value as the filter value.
+ // For example, to find all resources that have a tag with the key Owner
+ // and the value TeamA, specify tag:Owner for the filter name and TeamA for
+ // the filter value.
//
- // * tag-key - The key of a tag assigned to the resource. This filter is
- // independent of the tag-value filter. For example, if you use both the
- // filter "tag-key=Purpose" and the filter "tag-value=X", you get any resources
- // assigned both the tag key Purpose (regardless of what the tag's value
- // is), and the tag value X (regardless of what the tag's key is). If you
- // want to list only resources where Purpose is X, see the tag:key=value
- // filter.
- //
- // * tag-value - The value of a tag assigned to the resource. This filter
- // is independent of the tag-key filter.
+ // * tag-key - The key of a tag assigned to the resource. Use this filter
+ // to find all resources assigned a tag with a specific key, regardless of
+ // the tag value.
//
// * vpc-id - The ID of the VPC for the subnet.
Filters []*Filter `locationName:"Filter" locationNameList:"Filter" type:"list"`
@@ -41724,7 +50786,6 @@ func (s *DescribeSubnetsInput) SetSubnetIds(v []*string) *DescribeSubnetsInput {
return s
}
-// Contains the output of DescribeSubnets.
type DescribeSubnetsOutput struct {
_ struct{} `type:"structure"`
@@ -41748,7 +50809,6 @@ func (s *DescribeSubnetsOutput) SetSubnets(v []*Subnet) *DescribeSubnetsOutput {
return s
}
-// Contains the parameters for DescribeTags.
type DescribeTagsInput struct {
_ struct{} `type:"structure"`
@@ -41762,13 +50822,17 @@ type DescribeTagsInput struct {
//
// * key - The tag key.
//
- // * resource-id - The resource ID.
+ // * resource-id - The ID of the resource.
//
- // * resource-type - The resource type (customer-gateway | dhcp-options |
- // elastic-ip | fpga-image | image | instance | internet-gateway | launch-template
- // | natgateway | network-acl | network-interface | reserved-instances |
- // route-table | security-group | snapshot | spot-instances-request | subnet
- // | volume | vpc | vpc-peering-connection | vpn-connection | vpn-gateway).
+ // * resource-type - The resource type (customer-gateway | dedicated-host
+ // | dhcp-options | elastic-ip | fleet | fpga-image | image | instance |
+ // internet-gateway | launch-template | natgateway | network-acl | network-interface
+ // | reserved-instances | route-table | security-group | snapshot | spot-instances-request
+ // | subnet | volume | vpc | vpc-peering-connection | vpn-connection | vpn-gateway).
+ //
+ // * tag: - The key/value combination of the tag. For example, specify
+ // "tag:Owner" for the filter name and "TeamA" for the filter value to find
+ // resources with the tag "Owner=TeamA".
//
// * value - The tag value.
Filters []*Filter `locationName:"Filter" locationNameList:"Filter" type:"list"`
@@ -41816,15 +50880,14 @@ func (s *DescribeTagsInput) SetNextToken(v string) *DescribeTagsInput {
return s
}
-// Contains the output of DescribeTags.
type DescribeTagsOutput struct {
_ struct{} `type:"structure"`
// The token to use to retrieve the next page of results. This value is null
- // when there are no more results to return..
+ // when there are no more results to return.
NextToken *string `locationName:"nextToken" type:"string"`
- // A list of tags.
+ // The tags.
Tags []*TagDescription `locationName:"tagSet" locationNameList:"item" type:"list"`
}
@@ -41850,12 +50913,518 @@ func (s *DescribeTagsOutput) SetTags(v []*TagDescription) *DescribeTagsOutput {
return s
}
+type DescribeTransitGatewayAttachmentsInput struct {
+ _ struct{} `type:"structure"`
+
+ // Checks whether you have the required permissions for the action, without
+ // actually making the request, and provides an error response. If you have
+ // the required permissions, the error response is DryRunOperation. Otherwise,
+ // it is UnauthorizedOperation.
+ DryRun *bool `type:"boolean"`
+
+ // One or more filters. The possible values are:
+ //
+ // * association-id - The ID of the association.
+ //
+ // * association-route-table-id - The ID of the route table for the transit
+ // gateway.
+ //
+ // * associate-state - The state of the association (associating | associated
+ // | disassociating).
+ //
+ // * resource-id - The ID of the resource.
+ //
+ // * resource-type - The resource type (vpc | vpn).
+ //
+ // * state - The state of the attachment (pendingAcceptance | pending | available
+ // | modifying | deleting | deleted | failed | rejected).
+ //
+ // * transit-gateway-attachment-id - The ID of the attachment.
+ //
+ // * transit-gateway-id - The ID of the transit gateway.
+ //
+ // * transit-gateway-owner - The ID of the AWS account that owns the transit
+ // gateway.
+ Filters []*Filter `locationName:"Filter" locationNameList:"Filter" type:"list"`
+
+ // The maximum number of results to return with a single call. To retrieve the
+ // remaining results, make another call with the returned nextToken value.
+ MaxResults *int64 `min:"5" type:"integer"`
+
+ // The token for the next page of results.
+ NextToken *string `type:"string"`
+
+ // The IDs of the attachments.
+ TransitGatewayAttachmentIds []*string `type:"list"`
+}
+
+// String returns the string representation
+func (s DescribeTransitGatewayAttachmentsInput) String() string {
+ return awsutil.Prettify(s)
+}
+
+// GoString returns the string representation
+func (s DescribeTransitGatewayAttachmentsInput) GoString() string {
+ return s.String()
+}
+
+// Validate inspects the fields of the type to determine if they are valid.
+func (s *DescribeTransitGatewayAttachmentsInput) Validate() error {
+ invalidParams := request.ErrInvalidParams{Context: "DescribeTransitGatewayAttachmentsInput"}
+ if s.MaxResults != nil && *s.MaxResults < 5 {
+ invalidParams.Add(request.NewErrParamMinValue("MaxResults", 5))
+ }
+
+ if invalidParams.Len() > 0 {
+ return invalidParams
+ }
+ return nil
+}
+
+// SetDryRun sets the DryRun field's value.
+func (s *DescribeTransitGatewayAttachmentsInput) SetDryRun(v bool) *DescribeTransitGatewayAttachmentsInput {
+ s.DryRun = &v
+ return s
+}
+
+// SetFilters sets the Filters field's value.
+func (s *DescribeTransitGatewayAttachmentsInput) SetFilters(v []*Filter) *DescribeTransitGatewayAttachmentsInput {
+ s.Filters = v
+ return s
+}
+
+// SetMaxResults sets the MaxResults field's value.
+func (s *DescribeTransitGatewayAttachmentsInput) SetMaxResults(v int64) *DescribeTransitGatewayAttachmentsInput {
+ s.MaxResults = &v
+ return s
+}
+
+// SetNextToken sets the NextToken field's value.
+func (s *DescribeTransitGatewayAttachmentsInput) SetNextToken(v string) *DescribeTransitGatewayAttachmentsInput {
+ s.NextToken = &v
+ return s
+}
+
+// SetTransitGatewayAttachmentIds sets the TransitGatewayAttachmentIds field's value.
+func (s *DescribeTransitGatewayAttachmentsInput) SetTransitGatewayAttachmentIds(v []*string) *DescribeTransitGatewayAttachmentsInput {
+ s.TransitGatewayAttachmentIds = v
+ return s
+}
+
+type DescribeTransitGatewayAttachmentsOutput struct {
+ _ struct{} `type:"structure"`
+
+ // The token to use to retrieve the next page of results. This value is null
+ // when there are no more results to return.
+ NextToken *string `locationName:"nextToken" type:"string"`
+
+ // Information about the attachments.
+ TransitGatewayAttachments []*TransitGatewayAttachment `locationName:"transitGatewayAttachments" locationNameList:"item" type:"list"`
+}
+
+// String returns the string representation
+func (s DescribeTransitGatewayAttachmentsOutput) String() string {
+ return awsutil.Prettify(s)
+}
+
+// GoString returns the string representation
+func (s DescribeTransitGatewayAttachmentsOutput) GoString() string {
+ return s.String()
+}
+
+// SetNextToken sets the NextToken field's value.
+func (s *DescribeTransitGatewayAttachmentsOutput) SetNextToken(v string) *DescribeTransitGatewayAttachmentsOutput {
+ s.NextToken = &v
+ return s
+}
+
+// SetTransitGatewayAttachments sets the TransitGatewayAttachments field's value.
+func (s *DescribeTransitGatewayAttachmentsOutput) SetTransitGatewayAttachments(v []*TransitGatewayAttachment) *DescribeTransitGatewayAttachmentsOutput {
+ s.TransitGatewayAttachments = v
+ return s
+}
+
+type DescribeTransitGatewayRouteTablesInput struct {
+ _ struct{} `type:"structure"`
+
+ // Checks whether you have the required permissions for the action, without
+ // actually making the request, and provides an error response. If you have
+ // the required permissions, the error response is DryRunOperation. Otherwise,
+ // it is UnauthorizedOperation.
+ DryRun *bool `type:"boolean"`
+
+ // One or more filters. The possible values are:
+ //
+ // * default-association-route-table - Indicates whether this is the default
+ // association route table for the transit gateway (true | false).
+ //
+ // * default-propagation-route-table - Indicates whether this is the default
+ // propagation route table for the transit gateway (true | false).
+ //
+ // * transit-gateway-id - The ID of the transit gateway.
+ //
+ // * transit-gateway-route-table-id - The ID of the transit gateway route
+ // table.
+ //
+ // * transit-gateway-route-table-state - The state (pending | available |
+ // deleting | deleted).
+ Filters []*Filter `locationName:"Filter" locationNameList:"Filter" type:"list"`
+
+ // The maximum number of results to return with a single call. To retrieve the
+ // remaining results, make another call with the returned nextToken value.
+ MaxResults *int64 `min:"5" type:"integer"`
+
+ // The token for the next page of results.
+ NextToken *string `type:"string"`
+
+ // The IDs of the transit gateway route tables.
+ TransitGatewayRouteTableIds []*string `locationNameList:"item" type:"list"`
+}
+
+// String returns the string representation
+func (s DescribeTransitGatewayRouteTablesInput) String() string {
+ return awsutil.Prettify(s)
+}
+
+// GoString returns the string representation
+func (s DescribeTransitGatewayRouteTablesInput) GoString() string {
+ return s.String()
+}
+
+// Validate inspects the fields of the type to determine if they are valid.
+func (s *DescribeTransitGatewayRouteTablesInput) Validate() error {
+ invalidParams := request.ErrInvalidParams{Context: "DescribeTransitGatewayRouteTablesInput"}
+ if s.MaxResults != nil && *s.MaxResults < 5 {
+ invalidParams.Add(request.NewErrParamMinValue("MaxResults", 5))
+ }
+
+ if invalidParams.Len() > 0 {
+ return invalidParams
+ }
+ return nil
+}
+
+// SetDryRun sets the DryRun field's value.
+func (s *DescribeTransitGatewayRouteTablesInput) SetDryRun(v bool) *DescribeTransitGatewayRouteTablesInput {
+ s.DryRun = &v
+ return s
+}
+
+// SetFilters sets the Filters field's value.
+func (s *DescribeTransitGatewayRouteTablesInput) SetFilters(v []*Filter) *DescribeTransitGatewayRouteTablesInput {
+ s.Filters = v
+ return s
+}
+
+// SetMaxResults sets the MaxResults field's value.
+func (s *DescribeTransitGatewayRouteTablesInput) SetMaxResults(v int64) *DescribeTransitGatewayRouteTablesInput {
+ s.MaxResults = &v
+ return s
+}
+
+// SetNextToken sets the NextToken field's value.
+func (s *DescribeTransitGatewayRouteTablesInput) SetNextToken(v string) *DescribeTransitGatewayRouteTablesInput {
+ s.NextToken = &v
+ return s
+}
+
+// SetTransitGatewayRouteTableIds sets the TransitGatewayRouteTableIds field's value.
+func (s *DescribeTransitGatewayRouteTablesInput) SetTransitGatewayRouteTableIds(v []*string) *DescribeTransitGatewayRouteTablesInput {
+ s.TransitGatewayRouteTableIds = v
+ return s
+}
+
+type DescribeTransitGatewayRouteTablesOutput struct {
+ _ struct{} `type:"structure"`
+
+ // The token to use to retrieve the next page of results. This value is null
+ // when there are no more results to return.
+ NextToken *string `locationName:"nextToken" type:"string"`
+
+ // Information about the transit gateway route tables.
+ TransitGatewayRouteTables []*TransitGatewayRouteTable `locationName:"transitGatewayRouteTables" locationNameList:"item" type:"list"`
+}
+
+// String returns the string representation
+func (s DescribeTransitGatewayRouteTablesOutput) String() string {
+ return awsutil.Prettify(s)
+}
+
+// GoString returns the string representation
+func (s DescribeTransitGatewayRouteTablesOutput) GoString() string {
+ return s.String()
+}
+
+// SetNextToken sets the NextToken field's value.
+func (s *DescribeTransitGatewayRouteTablesOutput) SetNextToken(v string) *DescribeTransitGatewayRouteTablesOutput {
+ s.NextToken = &v
+ return s
+}
+
+// SetTransitGatewayRouteTables sets the TransitGatewayRouteTables field's value.
+func (s *DescribeTransitGatewayRouteTablesOutput) SetTransitGatewayRouteTables(v []*TransitGatewayRouteTable) *DescribeTransitGatewayRouteTablesOutput {
+ s.TransitGatewayRouteTables = v
+ return s
+}
+
+type DescribeTransitGatewayVpcAttachmentsInput struct {
+ _ struct{} `type:"structure"`
+
+ // Checks whether you have the required permissions for the action, without
+ // actually making the request, and provides an error response. If you have
+ // the required permissions, the error response is DryRunOperation. Otherwise,
+ // it is UnauthorizedOperation.
+ DryRun *bool `type:"boolean"`
+
+ // One or more filters. The possible values are:
+ //
+ // * transit-gateway-attachment-id - The ID of the attachment.
+ //
+ // * transit-gateway-attachment-state - The state of the attachment (pendingAcceptance
+ // | pending | available | modifying | deleting | deleted | failed | rejected).
+ //
+ // * transit-gateway-id - The ID of the transit gateway.
+ //
+ // * vpc-id - The ID of the VPC.
+ Filters []*Filter `locationName:"Filter" locationNameList:"Filter" type:"list"`
+
+ // The maximum number of results to return with a single call. To retrieve the
+ // remaining results, make another call with the returned nextToken value.
+ MaxResults *int64 `min:"5" type:"integer"`
+
+ // The token for the next page of results.
+ NextToken *string `type:"string"`
+
+ // The IDs of the attachments.
+ TransitGatewayAttachmentIds []*string `type:"list"`
+}
+
+// String returns the string representation
+func (s DescribeTransitGatewayVpcAttachmentsInput) String() string {
+ return awsutil.Prettify(s)
+}
+
+// GoString returns the string representation
+func (s DescribeTransitGatewayVpcAttachmentsInput) GoString() string {
+ return s.String()
+}
+
+// Validate inspects the fields of the type to determine if they are valid.
+func (s *DescribeTransitGatewayVpcAttachmentsInput) Validate() error {
+ invalidParams := request.ErrInvalidParams{Context: "DescribeTransitGatewayVpcAttachmentsInput"}
+ if s.MaxResults != nil && *s.MaxResults < 5 {
+ invalidParams.Add(request.NewErrParamMinValue("MaxResults", 5))
+ }
+
+ if invalidParams.Len() > 0 {
+ return invalidParams
+ }
+ return nil
+}
+
+// SetDryRun sets the DryRun field's value.
+func (s *DescribeTransitGatewayVpcAttachmentsInput) SetDryRun(v bool) *DescribeTransitGatewayVpcAttachmentsInput {
+ s.DryRun = &v
+ return s
+}
+
+// SetFilters sets the Filters field's value.
+func (s *DescribeTransitGatewayVpcAttachmentsInput) SetFilters(v []*Filter) *DescribeTransitGatewayVpcAttachmentsInput {
+ s.Filters = v
+ return s
+}
+
+// SetMaxResults sets the MaxResults field's value.
+func (s *DescribeTransitGatewayVpcAttachmentsInput) SetMaxResults(v int64) *DescribeTransitGatewayVpcAttachmentsInput {
+ s.MaxResults = &v
+ return s
+}
+
+// SetNextToken sets the NextToken field's value.
+func (s *DescribeTransitGatewayVpcAttachmentsInput) SetNextToken(v string) *DescribeTransitGatewayVpcAttachmentsInput {
+ s.NextToken = &v
+ return s
+}
+
+// SetTransitGatewayAttachmentIds sets the TransitGatewayAttachmentIds field's value.
+func (s *DescribeTransitGatewayVpcAttachmentsInput) SetTransitGatewayAttachmentIds(v []*string) *DescribeTransitGatewayVpcAttachmentsInput {
+ s.TransitGatewayAttachmentIds = v
+ return s
+}
+
+type DescribeTransitGatewayVpcAttachmentsOutput struct {
+ _ struct{} `type:"structure"`
+
+ // The token to use to retrieve the next page of results. This value is null
+ // when there are no more results to return.
+ NextToken *string `locationName:"nextToken" type:"string"`
+
+ // Information about the VPC attachments.
+ TransitGatewayVpcAttachments []*TransitGatewayVpcAttachment `locationName:"transitGatewayVpcAttachments" locationNameList:"item" type:"list"`
+}
+
+// String returns the string representation
+func (s DescribeTransitGatewayVpcAttachmentsOutput) String() string {
+ return awsutil.Prettify(s)
+}
+
+// GoString returns the string representation
+func (s DescribeTransitGatewayVpcAttachmentsOutput) GoString() string {
+ return s.String()
+}
+
+// SetNextToken sets the NextToken field's value.
+func (s *DescribeTransitGatewayVpcAttachmentsOutput) SetNextToken(v string) *DescribeTransitGatewayVpcAttachmentsOutput {
+ s.NextToken = &v
+ return s
+}
+
+// SetTransitGatewayVpcAttachments sets the TransitGatewayVpcAttachments field's value.
+func (s *DescribeTransitGatewayVpcAttachmentsOutput) SetTransitGatewayVpcAttachments(v []*TransitGatewayVpcAttachment) *DescribeTransitGatewayVpcAttachmentsOutput {
+ s.TransitGatewayVpcAttachments = v
+ return s
+}
+
+type DescribeTransitGatewaysInput struct {
+ _ struct{} `type:"structure"`
+
+ // Checks whether you have the required permissions for the action, without
+ // actually making the request, and provides an error response. If you have
+ // the required permissions, the error response is DryRunOperation. Otherwise,
+ // it is UnauthorizedOperation.
+ DryRun *bool `type:"boolean"`
+
+ // One or more filters. The possible values are:
+ //
+ // * amazon-side-asn - The private ASN for the Amazon side of a BGP session.
+ //
+ // * association-default-route-table-id - The ID of the default association
+ // route table.
+ //
+ // * default-route-table-association - Indicates whether resource attachments
+ // are automatically associated with the default association route table
+ // (enable | disable).
+ //
+ // * default-route-table-propagation - Indicates whether resource attachments
+ // automatically propagate routes to the default propagation route table
+ // (enable | disable).
+ //
+ // * owner-account-id - The ID of the AWS account that owns the transit gateway.
+ //
+ // * propagation-default-route-table-id - The ID of the default propagation
+ // route table.
+ //
+ // * transit-gateway-id - The ID of the transit gateway.
+ //
+ // * transit-gateway-state - The state of the transit gateway (pending |
+ // available | deleting | deleted).
+ Filters []*Filter `locationName:"Filter" locationNameList:"Filter" type:"list"`
+
+ // The maximum number of results to return with a single call. To retrieve the
+ // remaining results, make another call with the returned nextToken value.
+ MaxResults *int64 `min:"5" type:"integer"`
+
+ // The token for the next page of results.
+ NextToken *string `type:"string"`
+
+ // The IDs of the transit gateways.
+ TransitGatewayIds []*string `locationNameList:"item" type:"list"`
+}
+
+// String returns the string representation
+func (s DescribeTransitGatewaysInput) String() string {
+ return awsutil.Prettify(s)
+}
+
+// GoString returns the string representation
+func (s DescribeTransitGatewaysInput) GoString() string {
+ return s.String()
+}
+
+// Validate inspects the fields of the type to determine if they are valid.
+func (s *DescribeTransitGatewaysInput) Validate() error {
+ invalidParams := request.ErrInvalidParams{Context: "DescribeTransitGatewaysInput"}
+ if s.MaxResults != nil && *s.MaxResults < 5 {
+ invalidParams.Add(request.NewErrParamMinValue("MaxResults", 5))
+ }
+
+ if invalidParams.Len() > 0 {
+ return invalidParams
+ }
+ return nil
+}
+
+// SetDryRun sets the DryRun field's value.
+func (s *DescribeTransitGatewaysInput) SetDryRun(v bool) *DescribeTransitGatewaysInput {
+ s.DryRun = &v
+ return s
+}
+
+// SetFilters sets the Filters field's value.
+func (s *DescribeTransitGatewaysInput) SetFilters(v []*Filter) *DescribeTransitGatewaysInput {
+ s.Filters = v
+ return s
+}
+
+// SetMaxResults sets the MaxResults field's value.
+func (s *DescribeTransitGatewaysInput) SetMaxResults(v int64) *DescribeTransitGatewaysInput {
+ s.MaxResults = &v
+ return s
+}
+
+// SetNextToken sets the NextToken field's value.
+func (s *DescribeTransitGatewaysInput) SetNextToken(v string) *DescribeTransitGatewaysInput {
+ s.NextToken = &v
+ return s
+}
+
+// SetTransitGatewayIds sets the TransitGatewayIds field's value.
+func (s *DescribeTransitGatewaysInput) SetTransitGatewayIds(v []*string) *DescribeTransitGatewaysInput {
+ s.TransitGatewayIds = v
+ return s
+}
+
+type DescribeTransitGatewaysOutput struct {
+ _ struct{} `type:"structure"`
+
+ // The token to use to retrieve the next page of results. This value is null
+ // when there are no more results to return.
+ NextToken *string `locationName:"nextToken" type:"string"`
+
+ // Information about the transit gateways.
+ TransitGateways []*TransitGateway `locationName:"transitGatewaySet" locationNameList:"item" type:"list"`
+}
+
+// String returns the string representation
+func (s DescribeTransitGatewaysOutput) String() string {
+ return awsutil.Prettify(s)
+}
+
+// GoString returns the string representation
+func (s DescribeTransitGatewaysOutput) GoString() string {
+ return s.String()
+}
+
+// SetNextToken sets the NextToken field's value.
+func (s *DescribeTransitGatewaysOutput) SetNextToken(v string) *DescribeTransitGatewaysOutput {
+ s.NextToken = &v
+ return s
+}
+
+// SetTransitGateways sets the TransitGateways field's value.
+func (s *DescribeTransitGatewaysOutput) SetTransitGateways(v []*TransitGateway) *DescribeTransitGatewaysOutput {
+ s.TransitGateways = v
+ return s
+}
+
// Contains the parameters for DescribeVolumeAttribute.
type DescribeVolumeAttributeInput struct {
_ struct{} `type:"structure"`
// The attribute of the volume. This parameter is required.
- Attribute *string `type:"string" enum:"VolumeAttributeName"`
+ //
+ // Attribute is a required field
+ Attribute *string `type:"string" required:"true" enum:"VolumeAttributeName"`
// Checks whether you have the required permissions for the action, without
// actually making the request, and provides an error response. If you have
@@ -41882,6 +51451,9 @@ func (s DescribeVolumeAttributeInput) GoString() string {
// Validate inspects the fields of the type to determine if they are valid.
func (s *DescribeVolumeAttributeInput) Validate() error {
invalidParams := request.ErrInvalidParams{Context: "DescribeVolumeAttributeInput"}
+ if s.Attribute == nil {
+ invalidParams.Add(request.NewErrParamRequired("Attribute"))
+ }
if s.VolumeId == nil {
invalidParams.Add(request.NewErrParamRequired("VolumeId"))
}
@@ -42129,21 +51701,15 @@ type DescribeVolumesInput struct {
// * status - The status of the volume (creating | available | in-use | deleting
// | deleted | error).
//
- // * tag:key=value - The key/value combination of a tag assigned to the resource.
- // Specify the key of the tag in the filter name and the value of the tag
- // in the filter value. For example, for the tag Purpose=X, specify tag:Purpose
- // for the filter name and X for the filter value.
+ // * tag: - The key/value combination of a tag assigned to the resource.
+ // Use the tag key in the filter name and the tag value as the filter value.
+ // For example, to find all resources that have a tag with the key Owner
+ // and the value TeamA, specify tag:Owner for the filter name and TeamA for
+ // the filter value.
//
- // * tag-key - The key of a tag assigned to the resource. This filter is
- // independent of the tag-value filter. For example, if you use both the
- // filter "tag-key=Purpose" and the filter "tag-value=X", you get any resources
- // assigned both the tag key Purpose (regardless of what the tag's value
- // is), and the tag value X (regardless of what the tag's key is). If you
- // want to list only resources where Purpose is X, see the tag:key=value
- // filter.
- //
- // * tag-value - The value of a tag assigned to the resource. This filter
- // is independent of the tag-key filter.
+ // * tag-key - The key of a tag assigned to the resource. Use this filter
+ // to find all resources assigned a tag with a specific key, regardless of
+ // the tag value.
//
// * volume-id - The volume ID.
//
@@ -42346,7 +51912,6 @@ func (s *DescribeVolumesOutput) SetVolumes(v []*Volume) *DescribeVolumesOutput {
return s
}
-// Contains the parameters for DescribeVpcAttribute.
type DescribeVpcAttributeInput struct {
_ struct{} `type:"structure"`
@@ -42411,7 +51976,6 @@ func (s *DescribeVpcAttributeInput) SetVpcId(v string) *DescribeVpcAttributeInpu
return s
}
-// Contains the output of DescribeVpcAttribute.
type DescribeVpcAttributeOutput struct {
_ struct{} `type:"structure"`
@@ -42457,7 +52021,6 @@ func (s *DescribeVpcAttributeOutput) SetVpcId(v string) *DescribeVpcAttributeOut
return s
}
-// Contains the parameters for DescribeVpcClassicLinkDnsSupport.
type DescribeVpcClassicLinkDnsSupportInput struct {
_ struct{} `type:"structure"`
@@ -42518,7 +52081,6 @@ func (s *DescribeVpcClassicLinkDnsSupportInput) SetVpcIds(v []*string) *Describe
return s
}
-// Contains the output of DescribeVpcClassicLinkDnsSupport.
type DescribeVpcClassicLinkDnsSupportOutput struct {
_ struct{} `type:"structure"`
@@ -42551,7 +52113,6 @@ func (s *DescribeVpcClassicLinkDnsSupportOutput) SetVpcs(v []*ClassicLinkDnsSupp
return s
}
-// Contains the parameters for DescribeVpcClassicLink.
type DescribeVpcClassicLinkInput struct {
_ struct{} `type:"structure"`
@@ -42566,21 +52127,15 @@ type DescribeVpcClassicLinkInput struct {
// * is-classic-link-enabled - Whether the VPC is enabled for ClassicLink
// (true | false).
//
- // * tag:key=value - The key/value combination of a tag assigned to the resource.
- // Specify the key of the tag in the filter name and the value of the tag
- // in the filter value. For example, for the tag Purpose=X, specify tag:Purpose
- // for the filter name and X for the filter value.
+ // * tag: - The key/value combination of a tag assigned to the resource.
+ // Use the tag key in the filter name and the tag value as the filter value.
+ // For example, to find all resources that have a tag with the key Owner
+ // and the value TeamA, specify tag:Owner for the filter name and TeamA for
+ // the filter value.
//
- // * tag-key - The key of a tag assigned to the resource. This filter is
- // independent of the tag-value filter. For example, if you use both the
- // filter "tag-key=Purpose" and the filter "tag-value=X", you get any resources
- // assigned both the tag key Purpose (regardless of what the tag's value
- // is), and the tag value X (regardless of what the tag's key is). If you
- // want to list only resources where Purpose is X, see the tag:key=value
- // filter.
- //
- // * tag-value - The value of a tag assigned to the resource. This filter
- // is independent of the tag-key filter.
+ // * tag-key - The key of a tag assigned to the resource. Use this filter
+ // to find all resources assigned a tag with a specific key, regardless of
+ // the tag value.
Filters []*Filter `locationName:"Filter" locationNameList:"Filter" type:"list"`
// One or more VPCs for which you want to describe the ClassicLink status.
@@ -42615,7 +52170,6 @@ func (s *DescribeVpcClassicLinkInput) SetVpcIds(v []*string) *DescribeVpcClassic
return s
}
-// Contains the output of DescribeVpcClassicLink.
type DescribeVpcClassicLinkOutput struct {
_ struct{} `type:"structure"`
@@ -43296,7 +52850,6 @@ func (s *DescribeVpcEndpointsOutput) SetVpcEndpoints(v []*VpcEndpoint) *Describe
return s
}
-// Contains the parameters for DescribeVpcPeeringConnections.
type DescribeVpcPeeringConnectionsInput struct {
_ struct{} `type:"structure"`
@@ -43331,21 +52884,15 @@ type DescribeVpcPeeringConnectionsInput struct {
// * status-message - A message that provides more information about the
// status of the VPC peering connection, if applicable.
//
- // * tag:key=value - The key/value combination of a tag assigned to the resource.
- // Specify the key of the tag in the filter name and the value of the tag
- // in the filter value. For example, for the tag Purpose=X, specify tag:Purpose
- // for the filter name and X for the filter value.
+ // * tag: - The key/value combination of a tag assigned to the resource.
+ // Use the tag key in the filter name and the tag value as the filter value.
+ // For example, to find all resources that have a tag with the key Owner
+ // and the value TeamA, specify tag:Owner for the filter name and TeamA for
+ // the filter value.
//
- // * tag-key - The key of a tag assigned to the resource. This filter is
- // independent of the tag-value filter. For example, if you use both the
- // filter "tag-key=Purpose" and the filter "tag-value=X", you get any resources
- // assigned both the tag key Purpose (regardless of what the tag's value
- // is), and the tag value X (regardless of what the tag's key is). If you
- // want to list only resources where Purpose is X, see the tag:key=value
- // filter.
- //
- // * tag-value - The value of a tag assigned to the resource. This filter
- // is independent of the tag-key filter.
+ // * tag-key - The key of a tag assigned to the resource. Use this filter
+ // to find all resources assigned a tag with a specific key, regardless of
+ // the tag value.
//
// * vpc-peering-connection-id - The ID of the VPC peering connection.
Filters []*Filter `locationName:"Filter" locationNameList:"Filter" type:"list"`
@@ -43384,7 +52931,6 @@ func (s *DescribeVpcPeeringConnectionsInput) SetVpcPeeringConnectionIds(v []*str
return s
}
-// Contains the output of DescribeVpcPeeringConnections.
type DescribeVpcPeeringConnectionsOutput struct {
_ struct{} `type:"structure"`
@@ -43408,7 +52954,6 @@ func (s *DescribeVpcPeeringConnectionsOutput) SetVpcPeeringConnections(v []*VpcP
return s
}
-// Contains the parameters for DescribeVpcs.
type DescribeVpcsInput struct {
_ struct{} `type:"structure"`
@@ -43447,23 +52992,19 @@ type DescribeVpcsInput struct {
//
// * isDefault - Indicates whether the VPC is the default VPC.
//
+ // * owner-id - The ID of the AWS account that owns the VPC.
+ //
// * state - The state of the VPC (pending | available).
//
- // * tag:key=value - The key/value combination of a tag assigned to the resource.
- // Specify the key of the tag in the filter name and the value of the tag
- // in the filter value. For example, for the tag Purpose=X, specify tag:Purpose
- // for the filter name and X for the filter value.
+ // * tag: - The key/value combination of a tag assigned to the resource.
+ // Use the tag key in the filter name and the tag value as the filter value.
+ // For example, to find all resources that have a tag with the key Owner
+ // and the value TeamA, specify tag:Owner for the filter name and TeamA for
+ // the filter value.
//
- // * tag-key - The key of a tag assigned to the resource. This filter is
- // independent of the tag-value filter. For example, if you use both the
- // filter "tag-key=Purpose" and the filter "tag-value=X", you get any resources
- // assigned both the tag key Purpose (regardless of what the tag's value
- // is), and the tag value X (regardless of what the tag's key is). If you
- // want to list only resources where Purpose is X, see the tag:key=value
- // filter.
- //
- // * tag-value - The value of a tag assigned to the resource. This filter
- // is independent of the tag-key filter.
+ // * tag-key - The key of a tag assigned to the resource. Use this filter
+ // to find all resources assigned a tag with a specific key, regardless of
+ // the tag value.
//
// * vpc-id - The ID of the VPC.
Filters []*Filter `locationName:"Filter" locationNameList:"Filter" type:"list"`
@@ -43502,7 +53043,6 @@ func (s *DescribeVpcsInput) SetVpcIds(v []*string) *DescribeVpcsInput {
return s
}
-// Contains the output of DescribeVpcs.
type DescribeVpcsOutput struct {
_ struct{} `type:"structure"`
@@ -43557,21 +53097,15 @@ type DescribeVpnConnectionsInput struct {
// * bgp-asn - The BGP Autonomous System Number (ASN) associated with a BGP
// device.
//
- // * tag:key=value - The key/value combination of a tag assigned to the resource.
- // Specify the key of the tag in the filter name and the value of the tag
- // in the filter value. For example, for the tag Purpose=X, specify tag:Purpose
- // for the filter name and X for the filter value.
+ // * tag: - The key/value combination of a tag assigned to the resource.
+ // Use the tag key in the filter name and the tag value as the filter value.
+ // For example, to find all resources that have a tag with the key Owner
+ // and the value TeamA, specify tag:Owner for the filter name and TeamA for
+ // the filter value.
//
- // * tag-key - The key of a tag assigned to the resource. This filter is
- // independent of the tag-value filter. For example, if you use both the
- // filter "tag-key=Purpose" and the filter "tag-value=X", you get any resources
- // assigned both the tag key Purpose (regardless of what the tag's value
- // is), and the tag value X (regardless of what the tag's key is). If you
- // want to list only resources where Purpose is X, see the tag:key=value
- // filter.
- //
- // * tag-value - The value of a tag assigned to the resource. This filter
- // is independent of the tag-key filter.
+ // * tag-key - The key of a tag assigned to the resource. Use this filter
+ // to find all resources assigned a tag with a specific key, regardless of
+ // the tag value.
//
// * type - The type of VPN connection. Currently the only supported type
// is ipsec.1.
@@ -43666,21 +53200,15 @@ type DescribeVpnGatewaysInput struct {
// * state - The state of the virtual private gateway (pending | available
// | deleting | deleted).
//
- // * tag:key=value - The key/value combination of a tag assigned to the resource.
- // Specify the key of the tag in the filter name and the value of the tag
- // in the filter value. For example, for the tag Purpose=X, specify tag:Purpose
- // for the filter name and X for the filter value.
+ // * tag: - The key/value combination of a tag assigned to the resource.
+ // Use the tag key in the filter name and the tag value as the filter value.
+ // For example, to find all resources that have a tag with the key Owner
+ // and the value TeamA, specify tag:Owner for the filter name and TeamA for
+ // the filter value.
//
- // * tag-key - The key of a tag assigned to the resource. This filter is
- // independent of the tag-value filter. For example, if you use both the
- // filter "tag-key=Purpose" and the filter "tag-value=X", you get any resources
- // assigned both the tag key Purpose (regardless of what the tag's value
- // is), and the tag value X (regardless of what the tag's key is). If you
- // want to list only resources where Purpose is X, see the tag:key=value
- // filter.
- //
- // * tag-value - The value of a tag assigned to the resource. This filter
- // is independent of the tag-key filter.
+ // * tag-key - The key of a tag assigned to the resource. Use this filter
+ // to find all resources assigned a tag with a specific key, regardless of
+ // the tag value.
//
// * type - The type of virtual private gateway. Currently the only supported
// type is ipsec.1.
@@ -43746,7 +53274,6 @@ func (s *DescribeVpnGatewaysOutput) SetVpnGateways(v []*VpnGateway) *DescribeVpn
return s
}
-// Contains the parameters for DetachClassicLinkVpc.
type DetachClassicLinkVpcInput struct {
_ struct{} `type:"structure"`
@@ -43811,7 +53338,6 @@ func (s *DetachClassicLinkVpcInput) SetVpcId(v string) *DetachClassicLinkVpcInpu
return s
}
-// Contains the output of DetachClassicLinkVpc.
type DetachClassicLinkVpcOutput struct {
_ struct{} `type:"structure"`
@@ -43835,7 +53361,6 @@ func (s *DetachClassicLinkVpcOutput) SetReturn(v bool) *DetachClassicLinkVpcOutp
return s
}
-// Contains the parameters for DetachInternetGateway.
type DetachInternetGatewayInput struct {
_ struct{} `type:"structure"`
@@ -43845,7 +53370,7 @@ type DetachInternetGatewayInput struct {
// it is UnauthorizedOperation.
DryRun *bool `locationName:"dryRun" type:"boolean"`
- // The ID of the Internet gateway.
+ // The ID of the internet gateway.
//
// InternetGatewayId is a required field
InternetGatewayId *string `locationName:"internetGatewayId" type:"string" required:"true"`
@@ -44194,6 +53719,9 @@ type DhcpOptions struct {
// The ID of the set of DHCP options.
DhcpOptionsId *string `locationName:"dhcpOptionsId" type:"string"`
+ // The ID of the AWS account that owns the DHCP options set.
+ OwnerId *string `locationName:"ownerId" type:"string"`
+
// Any tags assigned to the DHCP options set.
Tags []*Tag `locationName:"tagSet" locationNameList:"item" type:"list"`
}
@@ -44220,12 +53748,153 @@ func (s *DhcpOptions) SetDhcpOptionsId(v string) *DhcpOptions {
return s
}
+// SetOwnerId sets the OwnerId field's value.
+func (s *DhcpOptions) SetOwnerId(v string) *DhcpOptions {
+ s.OwnerId = &v
+ return s
+}
+
// SetTags sets the Tags field's value.
func (s *DhcpOptions) SetTags(v []*Tag) *DhcpOptions {
s.Tags = v
return s
}
+// Describes an Active Directory.
+type DirectoryServiceAuthentication struct {
+ _ struct{} `type:"structure"`
+
+ // The ID of the Active Directory used for authentication.
+ DirectoryId *string `locationName:"directoryId" type:"string"`
+}
+
+// String returns the string representation
+func (s DirectoryServiceAuthentication) String() string {
+ return awsutil.Prettify(s)
+}
+
+// GoString returns the string representation
+func (s DirectoryServiceAuthentication) GoString() string {
+ return s.String()
+}
+
+// SetDirectoryId sets the DirectoryId field's value.
+func (s *DirectoryServiceAuthentication) SetDirectoryId(v string) *DirectoryServiceAuthentication {
+ s.DirectoryId = &v
+ return s
+}
+
+// Describes the Active Directory to be used for client authentication.
+type DirectoryServiceAuthenticationRequest struct {
+ _ struct{} `type:"structure"`
+
+ // The ID of the Active Directory to be used for authentication.
+ DirectoryId *string `type:"string"`
+}
+
+// String returns the string representation
+func (s DirectoryServiceAuthenticationRequest) String() string {
+ return awsutil.Prettify(s)
+}
+
+// GoString returns the string representation
+func (s DirectoryServiceAuthenticationRequest) GoString() string {
+ return s.String()
+}
+
+// SetDirectoryId sets the DirectoryId field's value.
+func (s *DirectoryServiceAuthenticationRequest) SetDirectoryId(v string) *DirectoryServiceAuthenticationRequest {
+ s.DirectoryId = &v
+ return s
+}
+
+type DisableTransitGatewayRouteTablePropagationInput struct {
+ _ struct{} `type:"structure"`
+
+ // Checks whether you have the required permissions for the action, without
+ // actually making the request, and provides an error response. If you have
+ // the required permissions, the error response is DryRunOperation. Otherwise,
+ // it is UnauthorizedOperation.
+ DryRun *bool `type:"boolean"`
+
+ // The ID of the attachment.
+ //
+ // TransitGatewayAttachmentId is a required field
+ TransitGatewayAttachmentId *string `type:"string" required:"true"`
+
+ // The ID of the propagation route table.
+ //
+ // TransitGatewayRouteTableId is a required field
+ TransitGatewayRouteTableId *string `type:"string" required:"true"`
+}
+
+// String returns the string representation
+func (s DisableTransitGatewayRouteTablePropagationInput) String() string {
+ return awsutil.Prettify(s)
+}
+
+// GoString returns the string representation
+func (s DisableTransitGatewayRouteTablePropagationInput) GoString() string {
+ return s.String()
+}
+
+// Validate inspects the fields of the type to determine if they are valid.
+func (s *DisableTransitGatewayRouteTablePropagationInput) Validate() error {
+ invalidParams := request.ErrInvalidParams{Context: "DisableTransitGatewayRouteTablePropagationInput"}
+ if s.TransitGatewayAttachmentId == nil {
+ invalidParams.Add(request.NewErrParamRequired("TransitGatewayAttachmentId"))
+ }
+ if s.TransitGatewayRouteTableId == nil {
+ invalidParams.Add(request.NewErrParamRequired("TransitGatewayRouteTableId"))
+ }
+
+ if invalidParams.Len() > 0 {
+ return invalidParams
+ }
+ return nil
+}
+
+// SetDryRun sets the DryRun field's value.
+func (s *DisableTransitGatewayRouteTablePropagationInput) SetDryRun(v bool) *DisableTransitGatewayRouteTablePropagationInput {
+ s.DryRun = &v
+ return s
+}
+
+// SetTransitGatewayAttachmentId sets the TransitGatewayAttachmentId field's value.
+func (s *DisableTransitGatewayRouteTablePropagationInput) SetTransitGatewayAttachmentId(v string) *DisableTransitGatewayRouteTablePropagationInput {
+ s.TransitGatewayAttachmentId = &v
+ return s
+}
+
+// SetTransitGatewayRouteTableId sets the TransitGatewayRouteTableId field's value.
+func (s *DisableTransitGatewayRouteTablePropagationInput) SetTransitGatewayRouteTableId(v string) *DisableTransitGatewayRouteTablePropagationInput {
+ s.TransitGatewayRouteTableId = &v
+ return s
+}
+
+type DisableTransitGatewayRouteTablePropagationOutput struct {
+ _ struct{} `type:"structure"`
+
+ // Information about route propagation.
+ Propagation *TransitGatewayPropagation `locationName:"propagation" type:"structure"`
+}
+
+// String returns the string representation
+func (s DisableTransitGatewayRouteTablePropagationOutput) String() string {
+ return awsutil.Prettify(s)
+}
+
+// GoString returns the string representation
+func (s DisableTransitGatewayRouteTablePropagationOutput) GoString() string {
+ return s.String()
+}
+
+// SetPropagation sets the Propagation field's value.
+func (s *DisableTransitGatewayRouteTablePropagationOutput) SetPropagation(v *TransitGatewayPropagation) *DisableTransitGatewayRouteTablePropagationOutput {
+ s.Propagation = v
+ return s
+}
+
// Contains the parameters for DisableVgwRoutePropagation.
type DisableVgwRoutePropagationInput struct {
_ struct{} `type:"structure"`
@@ -44293,7 +53962,6 @@ func (s DisableVgwRoutePropagationOutput) GoString() string {
return s.String()
}
-// Contains the parameters for DisableVpcClassicLinkDnsSupport.
type DisableVpcClassicLinkDnsSupportInput struct {
_ struct{} `type:"structure"`
@@ -44317,7 +53985,6 @@ func (s *DisableVpcClassicLinkDnsSupportInput) SetVpcId(v string) *DisableVpcCla
return s
}
-// Contains the output of DisableVpcClassicLinkDnsSupport.
type DisableVpcClassicLinkDnsSupportOutput struct {
_ struct{} `type:"structure"`
@@ -44341,7 +54008,6 @@ func (s *DisableVpcClassicLinkDnsSupportOutput) SetReturn(v bool) *DisableVpcCla
return s
}
-// Contains the parameters for DisableVpcClassicLink.
type DisableVpcClassicLinkInput struct {
_ struct{} `type:"structure"`
@@ -44392,7 +54058,6 @@ func (s *DisableVpcClassicLinkInput) SetVpcId(v string) *DisableVpcClassicLinkIn
return s
}
-// Contains the output of DisableVpcClassicLink.
type DisableVpcClassicLinkOutput struct {
_ struct{} `type:"structure"`
@@ -44416,7 +54081,6 @@ func (s *DisableVpcClassicLinkOutput) SetReturn(v bool) *DisableVpcClassicLinkOu
return s
}
-// Contains the parameters for DisassociateAddress.
type DisassociateAddressInput struct {
_ struct{} `type:"structure"`
@@ -44475,6 +54139,102 @@ func (s DisassociateAddressOutput) GoString() string {
return s.String()
}
+type DisassociateClientVpnTargetNetworkInput struct {
+ _ struct{} `type:"structure"`
+
+ // The ID of the target network association.
+ //
+ // AssociationId is a required field
+ AssociationId *string `type:"string" required:"true"`
+
+ // The ID of the Client VPN endpoint from which to disassociate the target network.
+ //
+ // ClientVpnEndpointId is a required field
+ ClientVpnEndpointId *string `type:"string" required:"true"`
+
+ // Checks whether you have the required permissions for the action, without
+ // actually making the request, and provides an error response. If you have
+ // the required permissions, the error response is DryRunOperation. Otherwise,
+ // it is UnauthorizedOperation.
+ DryRun *bool `type:"boolean"`
+}
+
+// String returns the string representation
+func (s DisassociateClientVpnTargetNetworkInput) String() string {
+ return awsutil.Prettify(s)
+}
+
+// GoString returns the string representation
+func (s DisassociateClientVpnTargetNetworkInput) GoString() string {
+ return s.String()
+}
+
+// Validate inspects the fields of the type to determine if they are valid.
+func (s *DisassociateClientVpnTargetNetworkInput) Validate() error {
+ invalidParams := request.ErrInvalidParams{Context: "DisassociateClientVpnTargetNetworkInput"}
+ if s.AssociationId == nil {
+ invalidParams.Add(request.NewErrParamRequired("AssociationId"))
+ }
+ if s.ClientVpnEndpointId == nil {
+ invalidParams.Add(request.NewErrParamRequired("ClientVpnEndpointId"))
+ }
+
+ if invalidParams.Len() > 0 {
+ return invalidParams
+ }
+ return nil
+}
+
+// SetAssociationId sets the AssociationId field's value.
+func (s *DisassociateClientVpnTargetNetworkInput) SetAssociationId(v string) *DisassociateClientVpnTargetNetworkInput {
+ s.AssociationId = &v
+ return s
+}
+
+// SetClientVpnEndpointId sets the ClientVpnEndpointId field's value.
+func (s *DisassociateClientVpnTargetNetworkInput) SetClientVpnEndpointId(v string) *DisassociateClientVpnTargetNetworkInput {
+ s.ClientVpnEndpointId = &v
+ return s
+}
+
+// SetDryRun sets the DryRun field's value.
+func (s *DisassociateClientVpnTargetNetworkInput) SetDryRun(v bool) *DisassociateClientVpnTargetNetworkInput {
+ s.DryRun = &v
+ return s
+}
+
+type DisassociateClientVpnTargetNetworkOutput struct {
+ _ struct{} `type:"structure"`
+
+ // The ID of the target network association.
+ AssociationId *string `locationName:"associationId" type:"string"`
+
+ // The current state of the target network association.
+ Status *AssociationStatus `locationName:"status" type:"structure"`
+}
+
+// String returns the string representation
+func (s DisassociateClientVpnTargetNetworkOutput) String() string {
+ return awsutil.Prettify(s)
+}
+
+// GoString returns the string representation
+func (s DisassociateClientVpnTargetNetworkOutput) GoString() string {
+ return s.String()
+}
+
+// SetAssociationId sets the AssociationId field's value.
+func (s *DisassociateClientVpnTargetNetworkOutput) SetAssociationId(v string) *DisassociateClientVpnTargetNetworkOutput {
+ s.AssociationId = &v
+ return s
+}
+
+// SetStatus sets the Status field's value.
+func (s *DisassociateClientVpnTargetNetworkOutput) SetStatus(v *AssociationStatus) *DisassociateClientVpnTargetNetworkOutput {
+ s.Status = v
+ return s
+}
+
type DisassociateIamInstanceProfileInput struct {
_ struct{} `type:"structure"`
@@ -44536,7 +54296,6 @@ func (s *DisassociateIamInstanceProfileOutput) SetIamInstanceProfileAssociation(
return s
}
-// Contains the parameters for DisassociateRouteTable.
type DisassociateRouteTableInput struct {
_ struct{} `type:"structure"`
@@ -44672,6 +54431,93 @@ func (s *DisassociateSubnetCidrBlockOutput) SetSubnetId(v string) *DisassociateS
return s
}
+type DisassociateTransitGatewayRouteTableInput struct {
+ _ struct{} `type:"structure"`
+
+ // Checks whether you have the required permissions for the action, without
+ // actually making the request, and provides an error response. If you have
+ // the required permissions, the error response is DryRunOperation. Otherwise,
+ // it is UnauthorizedOperation.
+ DryRun *bool `type:"boolean"`
+
+ // The ID of the attachment.
+ //
+ // TransitGatewayAttachmentId is a required field
+ TransitGatewayAttachmentId *string `type:"string" required:"true"`
+
+ // The ID of the transit gateway route table.
+ //
+ // TransitGatewayRouteTableId is a required field
+ TransitGatewayRouteTableId *string `type:"string" required:"true"`
+}
+
+// String returns the string representation
+func (s DisassociateTransitGatewayRouteTableInput) String() string {
+ return awsutil.Prettify(s)
+}
+
+// GoString returns the string representation
+func (s DisassociateTransitGatewayRouteTableInput) GoString() string {
+ return s.String()
+}
+
+// Validate inspects the fields of the type to determine if they are valid.
+func (s *DisassociateTransitGatewayRouteTableInput) Validate() error {
+ invalidParams := request.ErrInvalidParams{Context: "DisassociateTransitGatewayRouteTableInput"}
+ if s.TransitGatewayAttachmentId == nil {
+ invalidParams.Add(request.NewErrParamRequired("TransitGatewayAttachmentId"))
+ }
+ if s.TransitGatewayRouteTableId == nil {
+ invalidParams.Add(request.NewErrParamRequired("TransitGatewayRouteTableId"))
+ }
+
+ if invalidParams.Len() > 0 {
+ return invalidParams
+ }
+ return nil
+}
+
+// SetDryRun sets the DryRun field's value.
+func (s *DisassociateTransitGatewayRouteTableInput) SetDryRun(v bool) *DisassociateTransitGatewayRouteTableInput {
+ s.DryRun = &v
+ return s
+}
+
+// SetTransitGatewayAttachmentId sets the TransitGatewayAttachmentId field's value.
+func (s *DisassociateTransitGatewayRouteTableInput) SetTransitGatewayAttachmentId(v string) *DisassociateTransitGatewayRouteTableInput {
+ s.TransitGatewayAttachmentId = &v
+ return s
+}
+
+// SetTransitGatewayRouteTableId sets the TransitGatewayRouteTableId field's value.
+func (s *DisassociateTransitGatewayRouteTableInput) SetTransitGatewayRouteTableId(v string) *DisassociateTransitGatewayRouteTableInput {
+ s.TransitGatewayRouteTableId = &v
+ return s
+}
+
+type DisassociateTransitGatewayRouteTableOutput struct {
+ _ struct{} `type:"structure"`
+
+ // Information about the association.
+ Association *TransitGatewayAssociation `locationName:"association" type:"structure"`
+}
+
+// String returns the string representation
+func (s DisassociateTransitGatewayRouteTableOutput) String() string {
+ return awsutil.Prettify(s)
+}
+
+// GoString returns the string representation
+func (s DisassociateTransitGatewayRouteTableOutput) GoString() string {
+ return s.String()
+}
+
+// SetAssociation sets the Association field's value.
+func (s *DisassociateTransitGatewayRouteTableOutput) SetAssociation(v *TransitGatewayAssociation) *DisassociateTransitGatewayRouteTableOutput {
+ s.Association = v
+ return s
+}
+
type DisassociateVpcCidrBlockInput struct {
_ struct{} `type:"structure"`
@@ -45011,6 +54857,42 @@ func (s *DnsEntry) SetHostedZoneId(v string) *DnsEntry {
return s
}
+// Information about the DNS server to be used.
+type DnsServersOptionsModifyStructure struct {
+ _ struct{} `type:"structure"`
+
+ // The IPv4 address range, in CIDR notation, of the DNS servers to be used.
+ // You can specify up to two DNS servers. Ensure that the DNS servers can be
+ // reached by the clients. The specified values overwrite the existing values.
+ CustomDnsServers []*string `locationNameList:"item" type:"list"`
+
+ // Indicates whether DNS servers should be used. Specify False to delete the
+ // existing DNS servers.
+ Enabled *bool `type:"boolean"`
+}
+
+// String returns the string representation
+func (s DnsServersOptionsModifyStructure) String() string {
+ return awsutil.Prettify(s)
+}
+
+// GoString returns the string representation
+func (s DnsServersOptionsModifyStructure) GoString() string {
+ return s.String()
+}
+
+// SetCustomDnsServers sets the CustomDnsServers field's value.
+func (s *DnsServersOptionsModifyStructure) SetCustomDnsServers(v []*string) *DnsServersOptionsModifyStructure {
+ s.CustomDnsServers = v
+ return s
+}
+
+// SetEnabled sets the Enabled field's value.
+func (s *DnsServersOptionsModifyStructure) SetEnabled(v bool) *DnsServersOptionsModifyStructure {
+ s.Enabled = &v
+ return s
+}
+
// Describes a block device for an EBS volume.
type EbsBlockDevice struct {
_ struct{} `type:"structure"`
@@ -45019,9 +54901,14 @@ type EbsBlockDevice struct {
DeleteOnTermination *bool `locationName:"deleteOnTermination" type:"boolean"`
// Indicates whether the EBS volume is encrypted. Encrypted volumes can only
- // be attached to instances that support Amazon EBS encryption. If you are creating
- // a volume from a snapshot, you can't specify an encryption value. This is
- // because only blank volumes can be encrypted on creation.
+ // be attached to instances that support Amazon EBS encryption.
+ //
+ // If you are creating a volume from a snapshot, you cannot specify an encryption
+ // value. This is because only blank volumes can be encrypted on creation. If
+ // you are creating a snapshot from an existing EBS volume, you cannot specify
+ // an encryption value that differs from that of the EBS volume. We recommend
+ // that you omit the encryption value from the block device mappings when creating
+ // an image from an instance.
Encrypted *bool `locationName:"encrypted" type:"boolean"`
// The number of I/O operations per second (IOPS) that the volume supports.
@@ -45032,8 +54919,12 @@ type EbsBlockDevice struct {
// and bursting, see Amazon EBS Volume Types (http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSVolumeTypes.html)
// in the Amazon Elastic Compute Cloud User Guide.
//
- // Constraint: Range is 100-20000 IOPS for io1 volumes and 100-10000 IOPS for
- // gp2 volumes.
+ // Constraints: Range is 100-16,000 IOPS for gp2 volumes and 100 to 64,000IOPS
+ // for io1 volumes in most Regions. Maximum io1IOPS of 64,000 is guaranteed
+ // only on Nitro-based instances (AWSEC2/latest/UserGuide/instance-types.html#ec2-nitro-instances).
+ // Other instance families guarantee performance up to 32,000 IOPS. For more
+ // information, see Amazon EBS Volume Types (http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSVolumeTypes.html)
+ // in the Amazon Elastic Compute Cloud User Guide.
//
// Condition: This parameter is required for requests to create io1 volumes;
// it is not used in requests to create gp2, st1, sc1, or standard volumes.
@@ -45042,8 +54933,8 @@ type EbsBlockDevice struct {
// Identifier (key ID, key alias, ID ARN, or alias ARN) for a user-managed CMK
// under which the EBS volume is encrypted.
//
- // Note: This parameter is only supported on BlockDeviceMapping objects called
- // by RunInstances (http://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_RunInstances.html),
+ // This parameter is only supported on BlockDeviceMapping objects called by
+ // RunInstances (http://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_RunInstances.html),
// RequestSpotFleet (http://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_RequestSpotFleet.html),
// and RequestSpotInstances (http://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_RequestSpotInstances.html).
KmsKeyId *string `type:"string"`
@@ -45126,7 +55017,7 @@ type EbsInstanceBlockDevice struct {
_ struct{} `type:"structure"`
// The time stamp when the attachment initiated.
- AttachTime *time.Time `locationName:"attachTime" type:"timestamp" timestampFormat:"iso8601"`
+ AttachTime *time.Time `locationName:"attachTime" type:"timestamp"`
// Indicates whether the volume is deleted on instance termination.
DeleteOnTermination *bool `locationName:"deleteOnTermination" type:"boolean"`
@@ -45206,14 +55097,14 @@ func (s *EbsInstanceBlockDeviceSpecification) SetVolumeId(v string) *EbsInstance
return s
}
-// Describes an egress-only Internet gateway.
+// Describes an egress-only internet gateway.
type EgressOnlyInternetGateway struct {
_ struct{} `type:"structure"`
- // Information about the attachment of the egress-only Internet gateway.
+ // Information about the attachment of the egress-only internet gateway.
Attachments []*InternetGatewayAttachment `locationName:"attachmentSet" locationNameList:"item" type:"list"`
- // The ID of the egress-only Internet gateway.
+ // The ID of the egress-only internet gateway.
EgressOnlyInternetGatewayId *string `locationName:"egressOnlyInternetGatewayId" type:"string"`
}
@@ -45239,20 +55130,21 @@ func (s *EgressOnlyInternetGateway) SetEgressOnlyInternetGatewayId(v string) *Eg
return s
}
-// Describes the association between an instance and an Elastic GPU.
+// Describes the association between an instance and an Elastic Graphics accelerator.
type ElasticGpuAssociation struct {
_ struct{} `type:"structure"`
// The ID of the association.
ElasticGpuAssociationId *string `locationName:"elasticGpuAssociationId" type:"string"`
- // The state of the association between the instance and the Elastic GPU.
+ // The state of the association between the instance and the Elastic Graphics
+ // accelerator.
ElasticGpuAssociationState *string `locationName:"elasticGpuAssociationState" type:"string"`
- // The time the Elastic GPU was associated with the instance.
+ // The time the Elastic Graphics accelerator was associated with the instance.
ElasticGpuAssociationTime *string `locationName:"elasticGpuAssociationTime" type:"string"`
- // The ID of the Elastic GPU.
+ // The ID of the Elastic Graphics accelerator.
ElasticGpuId *string `locationName:"elasticGpuId" type:"string"`
}
@@ -45290,7 +55182,7 @@ func (s *ElasticGpuAssociation) SetElasticGpuId(v string) *ElasticGpuAssociation
return s
}
-// Describes the status of an Elastic GPU.
+// Describes the status of an Elastic Graphics accelerator.
type ElasticGpuHealth struct {
_ struct{} `type:"structure"`
@@ -45314,11 +55206,11 @@ func (s *ElasticGpuHealth) SetStatus(v string) *ElasticGpuHealth {
return s
}
-// A specification for an Elastic GPU.
+// A specification for an Elastic Graphics accelerator.
type ElasticGpuSpecification struct {
_ struct{} `type:"structure"`
- // The type of Elastic GPU.
+ // The type of Elastic Graphics accelerator.
//
// Type is a required field
Type *string `type:"string" required:"true"`
@@ -45377,26 +55269,26 @@ func (s *ElasticGpuSpecificationResponse) SetType(v string) *ElasticGpuSpecifica
return s
}
-// Describes an Elastic GPU.
+// Describes an Elastic Graphics accelerator.
type ElasticGpus struct {
_ struct{} `type:"structure"`
- // The Availability Zone in the which the Elastic GPU resides.
+ // The Availability Zone in the which the Elastic Graphics accelerator resides.
AvailabilityZone *string `locationName:"availabilityZone" type:"string"`
- // The status of the Elastic GPU.
+ // The status of the Elastic Graphics accelerator.
ElasticGpuHealth *ElasticGpuHealth `locationName:"elasticGpuHealth" type:"structure"`
- // The ID of the Elastic GPU.
+ // The ID of the Elastic Graphics accelerator.
ElasticGpuId *string `locationName:"elasticGpuId" type:"string"`
- // The state of the Elastic GPU.
+ // The state of the Elastic Graphics accelerator.
ElasticGpuState *string `locationName:"elasticGpuState" type:"string" enum:"ElasticGpuState"`
- // The type of Elastic GPU.
+ // The type of Elastic Graphics accelerator.
ElasticGpuType *string `locationName:"elasticGpuType" type:"string"`
- // The ID of the instance to which the Elastic GPU is attached.
+ // The ID of the instance to which the Elastic Graphics accelerator is attached.
InstanceId *string `locationName:"instanceId" type:"string"`
}
@@ -45446,6 +55338,185 @@ func (s *ElasticGpus) SetInstanceId(v string) *ElasticGpus {
return s
}
+// Describes an elastic inference accelerator.
+type ElasticInferenceAccelerator struct {
+ _ struct{} `type:"structure"`
+
+ // The type of elastic inference accelerator. The possible values are eia1.small,
+ // eia1.medium, and eia1.large.
+ //
+ // Type is a required field
+ Type *string `type:"string" required:"true"`
+}
+
+// String returns the string representation
+func (s ElasticInferenceAccelerator) String() string {
+ return awsutil.Prettify(s)
+}
+
+// GoString returns the string representation
+func (s ElasticInferenceAccelerator) GoString() string {
+ return s.String()
+}
+
+// Validate inspects the fields of the type to determine if they are valid.
+func (s *ElasticInferenceAccelerator) Validate() error {
+ invalidParams := request.ErrInvalidParams{Context: "ElasticInferenceAccelerator"}
+ if s.Type == nil {
+ invalidParams.Add(request.NewErrParamRequired("Type"))
+ }
+
+ if invalidParams.Len() > 0 {
+ return invalidParams
+ }
+ return nil
+}
+
+// SetType sets the Type field's value.
+func (s *ElasticInferenceAccelerator) SetType(v string) *ElasticInferenceAccelerator {
+ s.Type = &v
+ return s
+}
+
+// Describes the association between an instance and an elastic inference accelerator.
+type ElasticInferenceAcceleratorAssociation struct {
+ _ struct{} `type:"structure"`
+
+ // The Amazon Resource Name (ARN) of the elastic inference accelerator.
+ ElasticInferenceAcceleratorArn *string `locationName:"elasticInferenceAcceleratorArn" type:"string"`
+
+ // The ID of the association.
+ ElasticInferenceAcceleratorAssociationId *string `locationName:"elasticInferenceAcceleratorAssociationId" type:"string"`
+
+ // The state of the elastic inference accelerator.
+ ElasticInferenceAcceleratorAssociationState *string `locationName:"elasticInferenceAcceleratorAssociationState" type:"string"`
+
+ // The time at which the elastic inference accelerator is associated with an
+ // instance.
+ ElasticInferenceAcceleratorAssociationTime *time.Time `locationName:"elasticInferenceAcceleratorAssociationTime" type:"timestamp"`
+}
+
+// String returns the string representation
+func (s ElasticInferenceAcceleratorAssociation) String() string {
+ return awsutil.Prettify(s)
+}
+
+// GoString returns the string representation
+func (s ElasticInferenceAcceleratorAssociation) GoString() string {
+ return s.String()
+}
+
+// SetElasticInferenceAcceleratorArn sets the ElasticInferenceAcceleratorArn field's value.
+func (s *ElasticInferenceAcceleratorAssociation) SetElasticInferenceAcceleratorArn(v string) *ElasticInferenceAcceleratorAssociation {
+ s.ElasticInferenceAcceleratorArn = &v
+ return s
+}
+
+// SetElasticInferenceAcceleratorAssociationId sets the ElasticInferenceAcceleratorAssociationId field's value.
+func (s *ElasticInferenceAcceleratorAssociation) SetElasticInferenceAcceleratorAssociationId(v string) *ElasticInferenceAcceleratorAssociation {
+ s.ElasticInferenceAcceleratorAssociationId = &v
+ return s
+}
+
+// SetElasticInferenceAcceleratorAssociationState sets the ElasticInferenceAcceleratorAssociationState field's value.
+func (s *ElasticInferenceAcceleratorAssociation) SetElasticInferenceAcceleratorAssociationState(v string) *ElasticInferenceAcceleratorAssociation {
+ s.ElasticInferenceAcceleratorAssociationState = &v
+ return s
+}
+
+// SetElasticInferenceAcceleratorAssociationTime sets the ElasticInferenceAcceleratorAssociationTime field's value.
+func (s *ElasticInferenceAcceleratorAssociation) SetElasticInferenceAcceleratorAssociationTime(v time.Time) *ElasticInferenceAcceleratorAssociation {
+ s.ElasticInferenceAcceleratorAssociationTime = &v
+ return s
+}
+
+type EnableTransitGatewayRouteTablePropagationInput struct {
+ _ struct{} `type:"structure"`
+
+ // Checks whether you have the required permissions for the action, without
+ // actually making the request, and provides an error response. If you have
+ // the required permissions, the error response is DryRunOperation. Otherwise,
+ // it is UnauthorizedOperation.
+ DryRun *bool `type:"boolean"`
+
+ // The ID of the attachment.
+ //
+ // TransitGatewayAttachmentId is a required field
+ TransitGatewayAttachmentId *string `type:"string" required:"true"`
+
+ // The ID of the propagation route table.
+ //
+ // TransitGatewayRouteTableId is a required field
+ TransitGatewayRouteTableId *string `type:"string" required:"true"`
+}
+
+// String returns the string representation
+func (s EnableTransitGatewayRouteTablePropagationInput) String() string {
+ return awsutil.Prettify(s)
+}
+
+// GoString returns the string representation
+func (s EnableTransitGatewayRouteTablePropagationInput) GoString() string {
+ return s.String()
+}
+
+// Validate inspects the fields of the type to determine if they are valid.
+func (s *EnableTransitGatewayRouteTablePropagationInput) Validate() error {
+ invalidParams := request.ErrInvalidParams{Context: "EnableTransitGatewayRouteTablePropagationInput"}
+ if s.TransitGatewayAttachmentId == nil {
+ invalidParams.Add(request.NewErrParamRequired("TransitGatewayAttachmentId"))
+ }
+ if s.TransitGatewayRouteTableId == nil {
+ invalidParams.Add(request.NewErrParamRequired("TransitGatewayRouteTableId"))
+ }
+
+ if invalidParams.Len() > 0 {
+ return invalidParams
+ }
+ return nil
+}
+
+// SetDryRun sets the DryRun field's value.
+func (s *EnableTransitGatewayRouteTablePropagationInput) SetDryRun(v bool) *EnableTransitGatewayRouteTablePropagationInput {
+ s.DryRun = &v
+ return s
+}
+
+// SetTransitGatewayAttachmentId sets the TransitGatewayAttachmentId field's value.
+func (s *EnableTransitGatewayRouteTablePropagationInput) SetTransitGatewayAttachmentId(v string) *EnableTransitGatewayRouteTablePropagationInput {
+ s.TransitGatewayAttachmentId = &v
+ return s
+}
+
+// SetTransitGatewayRouteTableId sets the TransitGatewayRouteTableId field's value.
+func (s *EnableTransitGatewayRouteTablePropagationInput) SetTransitGatewayRouteTableId(v string) *EnableTransitGatewayRouteTablePropagationInput {
+ s.TransitGatewayRouteTableId = &v
+ return s
+}
+
+type EnableTransitGatewayRouteTablePropagationOutput struct {
+ _ struct{} `type:"structure"`
+
+ // Information about route propagation.
+ Propagation *TransitGatewayPropagation `locationName:"propagation" type:"structure"`
+}
+
+// String returns the string representation
+func (s EnableTransitGatewayRouteTablePropagationOutput) String() string {
+ return awsutil.Prettify(s)
+}
+
+// GoString returns the string representation
+func (s EnableTransitGatewayRouteTablePropagationOutput) GoString() string {
+ return s.String()
+}
+
+// SetPropagation sets the Propagation field's value.
+func (s *EnableTransitGatewayRouteTablePropagationOutput) SetPropagation(v *TransitGatewayPropagation) *EnableTransitGatewayRouteTablePropagationOutput {
+ s.Propagation = v
+ return s
+}
+
// Contains the parameters for EnableVgwRoutePropagation.
type EnableVgwRoutePropagationInput struct {
_ struct{} `type:"structure"`
@@ -45578,7 +55649,6 @@ func (s EnableVolumeIOOutput) GoString() string {
return s.String()
}
-// Contains the parameters for EnableVpcClassicLinkDnsSupport.
type EnableVpcClassicLinkDnsSupportInput struct {
_ struct{} `type:"structure"`
@@ -45602,7 +55672,6 @@ func (s *EnableVpcClassicLinkDnsSupportInput) SetVpcId(v string) *EnableVpcClass
return s
}
-// Contains the output of EnableVpcClassicLinkDnsSupport.
type EnableVpcClassicLinkDnsSupportOutput struct {
_ struct{} `type:"structure"`
@@ -45626,7 +55695,6 @@ func (s *EnableVpcClassicLinkDnsSupportOutput) SetReturn(v bool) *EnableVpcClass
return s
}
-// Contains the parameters for EnableVpcClassicLink.
type EnableVpcClassicLinkInput struct {
_ struct{} `type:"structure"`
@@ -45677,7 +55745,6 @@ func (s *EnableVpcClassicLinkInput) SetVpcId(v string) *EnableVpcClassicLinkInpu
return s
}
-// Contains the output of EnableVpcClassicLink.
type EnableVpcClassicLinkOutput struct {
_ struct{} `type:"structure"`
@@ -45804,6 +55871,161 @@ func (s *EventInformation) SetInstanceId(v string) *EventInformation {
return s
}
+type ExportClientVpnClientCertificateRevocationListInput struct {
+ _ struct{} `type:"structure"`
+
+ // The ID of the Client VPN endpoint.
+ //
+ // ClientVpnEndpointId is a required field
+ ClientVpnEndpointId *string `type:"string" required:"true"`
+
+ // Checks whether you have the required permissions for the action, without
+ // actually making the request, and provides an error response. If you have
+ // the required permissions, the error response is DryRunOperation. Otherwise,
+ // it is UnauthorizedOperation.
+ DryRun *bool `type:"boolean"`
+}
+
+// String returns the string representation
+func (s ExportClientVpnClientCertificateRevocationListInput) String() string {
+ return awsutil.Prettify(s)
+}
+
+// GoString returns the string representation
+func (s ExportClientVpnClientCertificateRevocationListInput) GoString() string {
+ return s.String()
+}
+
+// Validate inspects the fields of the type to determine if they are valid.
+func (s *ExportClientVpnClientCertificateRevocationListInput) Validate() error {
+ invalidParams := request.ErrInvalidParams{Context: "ExportClientVpnClientCertificateRevocationListInput"}
+ if s.ClientVpnEndpointId == nil {
+ invalidParams.Add(request.NewErrParamRequired("ClientVpnEndpointId"))
+ }
+
+ if invalidParams.Len() > 0 {
+ return invalidParams
+ }
+ return nil
+}
+
+// SetClientVpnEndpointId sets the ClientVpnEndpointId field's value.
+func (s *ExportClientVpnClientCertificateRevocationListInput) SetClientVpnEndpointId(v string) *ExportClientVpnClientCertificateRevocationListInput {
+ s.ClientVpnEndpointId = &v
+ return s
+}
+
+// SetDryRun sets the DryRun field's value.
+func (s *ExportClientVpnClientCertificateRevocationListInput) SetDryRun(v bool) *ExportClientVpnClientCertificateRevocationListInput {
+ s.DryRun = &v
+ return s
+}
+
+type ExportClientVpnClientCertificateRevocationListOutput struct {
+ _ struct{} `type:"structure"`
+
+ // Information about the client certificate revocation list.
+ CertificateRevocationList *string `locationName:"certificateRevocationList" type:"string"`
+
+ // The current state of the client certificate revocation list.
+ Status *ClientCertificateRevocationListStatus `locationName:"status" type:"structure"`
+}
+
+// String returns the string representation
+func (s ExportClientVpnClientCertificateRevocationListOutput) String() string {
+ return awsutil.Prettify(s)
+}
+
+// GoString returns the string representation
+func (s ExportClientVpnClientCertificateRevocationListOutput) GoString() string {
+ return s.String()
+}
+
+// SetCertificateRevocationList sets the CertificateRevocationList field's value.
+func (s *ExportClientVpnClientCertificateRevocationListOutput) SetCertificateRevocationList(v string) *ExportClientVpnClientCertificateRevocationListOutput {
+ s.CertificateRevocationList = &v
+ return s
+}
+
+// SetStatus sets the Status field's value.
+func (s *ExportClientVpnClientCertificateRevocationListOutput) SetStatus(v *ClientCertificateRevocationListStatus) *ExportClientVpnClientCertificateRevocationListOutput {
+ s.Status = v
+ return s
+}
+
+type ExportClientVpnClientConfigurationInput struct {
+ _ struct{} `type:"structure"`
+
+ // The ID of the Client VPN endpoint.
+ //
+ // ClientVpnEndpointId is a required field
+ ClientVpnEndpointId *string `type:"string" required:"true"`
+
+ // Checks whether you have the required permissions for the action, without
+ // actually making the request, and provides an error response. If you have
+ // the required permissions, the error response is DryRunOperation. Otherwise,
+ // it is UnauthorizedOperation.
+ DryRun *bool `type:"boolean"`
+}
+
+// String returns the string representation
+func (s ExportClientVpnClientConfigurationInput) String() string {
+ return awsutil.Prettify(s)
+}
+
+// GoString returns the string representation
+func (s ExportClientVpnClientConfigurationInput) GoString() string {
+ return s.String()
+}
+
+// Validate inspects the fields of the type to determine if they are valid.
+func (s *ExportClientVpnClientConfigurationInput) Validate() error {
+ invalidParams := request.ErrInvalidParams{Context: "ExportClientVpnClientConfigurationInput"}
+ if s.ClientVpnEndpointId == nil {
+ invalidParams.Add(request.NewErrParamRequired("ClientVpnEndpointId"))
+ }
+
+ if invalidParams.Len() > 0 {
+ return invalidParams
+ }
+ return nil
+}
+
+// SetClientVpnEndpointId sets the ClientVpnEndpointId field's value.
+func (s *ExportClientVpnClientConfigurationInput) SetClientVpnEndpointId(v string) *ExportClientVpnClientConfigurationInput {
+ s.ClientVpnEndpointId = &v
+ return s
+}
+
+// SetDryRun sets the DryRun field's value.
+func (s *ExportClientVpnClientConfigurationInput) SetDryRun(v bool) *ExportClientVpnClientConfigurationInput {
+ s.DryRun = &v
+ return s
+}
+
+type ExportClientVpnClientConfigurationOutput struct {
+ _ struct{} `type:"structure"`
+
+ // The contents of the Client VPN endpoint configuration file.
+ ClientConfiguration *string `locationName:"clientConfiguration" type:"string"`
+}
+
+// String returns the string representation
+func (s ExportClientVpnClientConfigurationOutput) String() string {
+ return awsutil.Prettify(s)
+}
+
+// GoString returns the string representation
+func (s ExportClientVpnClientConfigurationOutput) GoString() string {
+ return s.String()
+}
+
+// SetClientConfiguration sets the ClientConfiguration field's value.
+func (s *ExportClientVpnClientConfigurationOutput) SetClientConfiguration(v string) *ExportClientVpnClientConfigurationOutput {
+ s.ClientConfiguration = &v
+ return s
+}
+
// Describes an instance export task.
type ExportTask struct {
_ struct{} `type:"structure"`
@@ -45980,6 +56202,113 @@ func (s *ExportToS3TaskSpecification) SetS3Prefix(v string) *ExportToS3TaskSpeci
return s
}
+type ExportTransitGatewayRoutesInput struct {
+ _ struct{} `type:"structure"`
+
+ // Checks whether you have the required permissions for the action, without
+ // actually making the request, and provides an error response. If you have
+ // the required permissions, the error response is DryRunOperation. Otherwise,
+ // it is UnauthorizedOperation.
+ DryRun *bool `type:"boolean"`
+
+ // One or more filters. The possible values are:
+ //
+ // * transit-gateway-route-destination-cidr-block - The CIDR range.
+ //
+ // * transit-gateway-route-state - The state of the route (active | blackhole).
+ //
+ // * transit-gateway-route-transit-gateway-attachment-id - The ID of the
+ // attachment.
+ //
+ // * transit-gateway-route-type - The route type (static | propagated).
+ //
+ // * transit-gateway-route-vpn-connection-id - The ID of the VPN connection.
+ Filters []*Filter `locationName:"Filter" locationNameList:"Filter" type:"list"`
+
+ // The name of the S3 bucket.
+ //
+ // S3Bucket is a required field
+ S3Bucket *string `type:"string" required:"true"`
+
+ // The ID of the route table.
+ //
+ // TransitGatewayRouteTableId is a required field
+ TransitGatewayRouteTableId *string `type:"string" required:"true"`
+}
+
+// String returns the string representation
+func (s ExportTransitGatewayRoutesInput) String() string {
+ return awsutil.Prettify(s)
+}
+
+// GoString returns the string representation
+func (s ExportTransitGatewayRoutesInput) GoString() string {
+ return s.String()
+}
+
+// Validate inspects the fields of the type to determine if they are valid.
+func (s *ExportTransitGatewayRoutesInput) Validate() error {
+ invalidParams := request.ErrInvalidParams{Context: "ExportTransitGatewayRoutesInput"}
+ if s.S3Bucket == nil {
+ invalidParams.Add(request.NewErrParamRequired("S3Bucket"))
+ }
+ if s.TransitGatewayRouteTableId == nil {
+ invalidParams.Add(request.NewErrParamRequired("TransitGatewayRouteTableId"))
+ }
+
+ if invalidParams.Len() > 0 {
+ return invalidParams
+ }
+ return nil
+}
+
+// SetDryRun sets the DryRun field's value.
+func (s *ExportTransitGatewayRoutesInput) SetDryRun(v bool) *ExportTransitGatewayRoutesInput {
+ s.DryRun = &v
+ return s
+}
+
+// SetFilters sets the Filters field's value.
+func (s *ExportTransitGatewayRoutesInput) SetFilters(v []*Filter) *ExportTransitGatewayRoutesInput {
+ s.Filters = v
+ return s
+}
+
+// SetS3Bucket sets the S3Bucket field's value.
+func (s *ExportTransitGatewayRoutesInput) SetS3Bucket(v string) *ExportTransitGatewayRoutesInput {
+ s.S3Bucket = &v
+ return s
+}
+
+// SetTransitGatewayRouteTableId sets the TransitGatewayRouteTableId field's value.
+func (s *ExportTransitGatewayRoutesInput) SetTransitGatewayRouteTableId(v string) *ExportTransitGatewayRoutesInput {
+ s.TransitGatewayRouteTableId = &v
+ return s
+}
+
+type ExportTransitGatewayRoutesOutput struct {
+ _ struct{} `type:"structure"`
+
+ // The URL of the exported file in Amazon S3. For example, s3://bucket_name/VPCTransitGateway/TransitGatewayRouteTables/file_name.
+ S3Location *string `locationName:"s3Location" type:"string"`
+}
+
+// String returns the string representation
+func (s ExportTransitGatewayRoutesOutput) String() string {
+ return awsutil.Prettify(s)
+}
+
+// GoString returns the string representation
+func (s ExportTransitGatewayRoutesOutput) GoString() string {
+ return s.String()
+}
+
+// SetS3Location sets the S3Location field's value.
+func (s *ExportTransitGatewayRoutesOutput) SetS3Location(v string) *ExportTransitGatewayRoutesOutput {
+ s.S3Location = &v
+ return s
+}
+
// A filter name and value pair that is used to return a more specific list
// of results from a describe operation. Filters can be used to match a set
// of resources by specific criteria, such as tags, attributes, or IDs. The
@@ -46055,7 +56384,11 @@ type FleetData struct {
ClientToken *string `locationName:"clientToken" type:"string"`
// The creation date and time of the EC2 Fleet.
- CreateTime *time.Time `locationName:"createTime" type:"timestamp" timestampFormat:"iso8601"`
+ CreateTime *time.Time `locationName:"createTime" type:"timestamp"`
+
+ // Information about the instances that could not be launched by the fleet.
+ // Valid only when Type is set to instant.
+ Errors []*DescribeFleetError `locationName:"errorSet" locationNameList:"item" type:"list"`
// Indicates whether running instances should be terminated if the target capacity
// of the EC2 Fleet is decreased below the current size of the EC2 Fleet.
@@ -46075,9 +56408,16 @@ type FleetData struct {
// On-Demand capacity.
FulfilledOnDemandCapacity *float64 `locationName:"fulfilledOnDemandCapacity" type:"double"`
+ // Information about the instances that were launched by the fleet. Valid only
+ // when Type is set to instant.
+ Instances []*DescribeFleetsInstances `locationName:"fleetInstanceSet" locationNameList:"item" type:"list"`
+
// The launch template and overrides.
LaunchTemplateConfigs []*FleetLaunchTemplateConfig `locationName:"launchTemplateConfigs" locationNameList:"item" type:"list"`
+ // The allocation strategy of On-Demand Instances in an EC2 Fleet.
+ OnDemandOptions *OnDemandOptions `locationName:"onDemandOptions" type:"structure"`
+
// Indicates whether EC2 Fleet should replace unhealthy instances.
ReplaceUnhealthyInstances *bool `locationName:"replaceUnhealthyInstances" type:"boolean"`
@@ -46110,12 +56450,12 @@ type FleetData struct {
// The start date and time of the request, in UTC format (for example, YYYY-MM-DDTHH:MM:SSZ).
// The default is to start fulfilling the request immediately.
- ValidFrom *time.Time `locationName:"validFrom" type:"timestamp" timestampFormat:"iso8601"`
+ ValidFrom *time.Time `locationName:"validFrom" type:"timestamp"`
// The end date and time of the request, in UTC format (for example, YYYY-MM-DDTHH:MM:SSZ).
// At this point, no new instance requests are placed or able to fulfill the
// request. The default end date is 7 days from the current date.
- ValidUntil *time.Time `locationName:"validUntil" type:"timestamp" timestampFormat:"iso8601"`
+ ValidUntil *time.Time `locationName:"validUntil" type:"timestamp"`
}
// String returns the string representation
@@ -46146,6 +56486,12 @@ func (s *FleetData) SetCreateTime(v time.Time) *FleetData {
return s
}
+// SetErrors sets the Errors field's value.
+func (s *FleetData) SetErrors(v []*DescribeFleetError) *FleetData {
+ s.Errors = v
+ return s
+}
+
// SetExcessCapacityTerminationPolicy sets the ExcessCapacityTerminationPolicy field's value.
func (s *FleetData) SetExcessCapacityTerminationPolicy(v string) *FleetData {
s.ExcessCapacityTerminationPolicy = &v
@@ -46176,12 +56522,24 @@ func (s *FleetData) SetFulfilledOnDemandCapacity(v float64) *FleetData {
return s
}
+// SetInstances sets the Instances field's value.
+func (s *FleetData) SetInstances(v []*DescribeFleetsInstances) *FleetData {
+ s.Instances = v
+ return s
+}
+
// SetLaunchTemplateConfigs sets the LaunchTemplateConfigs field's value.
func (s *FleetData) SetLaunchTemplateConfigs(v []*FleetLaunchTemplateConfig) *FleetData {
s.LaunchTemplateConfigs = v
return s
}
+// SetOnDemandOptions sets the OnDemandOptions field's value.
+func (s *FleetData) SetOnDemandOptions(v *OnDemandOptions) *FleetData {
+ s.OnDemandOptions = v
+ return s
+}
+
// SetReplaceUnhealthyInstances sets the ReplaceUnhealthyInstances field's value.
func (s *FleetData) SetReplaceUnhealthyInstances(v bool) *FleetData {
s.ReplaceUnhealthyInstances = &v
@@ -46327,6 +56685,17 @@ type FleetLaunchTemplateOverrides struct {
// The maximum price per unit hour that you are willing to pay for a Spot Instance.
MaxPrice *string `locationName:"maxPrice" type:"string"`
+ // The location where the instance launched, if applicable.
+ Placement *PlacementResponse `locationName:"placement" type:"structure"`
+
+ // The priority for the launch template override. If AllocationStrategy is set
+ // to prioritized, EC2 Fleet uses priority to determine which launch template
+ // override to use first in fulfilling On-Demand capacity. The highest priority
+ // is launched first. Valid values are whole numbers starting at 0. The lower
+ // the number, the higher the priority. If no number is set, the override has
+ // the lowest priority.
+ Priority *float64 `locationName:"priority" type:"double"`
+
// The ID of the subnet in which to launch the instances.
SubnetId *string `locationName:"subnetId" type:"string"`
@@ -46362,6 +56731,18 @@ func (s *FleetLaunchTemplateOverrides) SetMaxPrice(v string) *FleetLaunchTemplat
return s
}
+// SetPlacement sets the Placement field's value.
+func (s *FleetLaunchTemplateOverrides) SetPlacement(v *PlacementResponse) *FleetLaunchTemplateOverrides {
+ s.Placement = v
+ return s
+}
+
+// SetPriority sets the Priority field's value.
+func (s *FleetLaunchTemplateOverrides) SetPriority(v float64) *FleetLaunchTemplateOverrides {
+ s.Priority = &v
+ return s
+}
+
// SetSubnetId sets the SubnetId field's value.
func (s *FleetLaunchTemplateOverrides) SetSubnetId(v string) *FleetLaunchTemplateOverrides {
s.SubnetId = &v
@@ -46387,6 +56768,17 @@ type FleetLaunchTemplateOverridesRequest struct {
// The maximum price per unit hour that you are willing to pay for a Spot Instance.
MaxPrice *string `type:"string"`
+ // The location where the instance launched, if applicable.
+ Placement *Placement `type:"structure"`
+
+ // The priority for the launch template override. If AllocationStrategy is set
+ // to prioritized, EC2 Fleet uses priority to determine which launch template
+ // override to use first in fulfilling On-Demand capacity. The highest priority
+ // is launched first. Valid values are whole numbers starting at 0. The lower
+ // the number, the higher the priority. If no number is set, the launch template
+ // override has the lowest priority.
+ Priority *float64 `type:"double"`
+
// The ID of the subnet in which to launch the instances.
SubnetId *string `type:"string"`
@@ -46422,6 +56814,18 @@ func (s *FleetLaunchTemplateOverridesRequest) SetMaxPrice(v string) *FleetLaunch
return s
}
+// SetPlacement sets the Placement field's value.
+func (s *FleetLaunchTemplateOverridesRequest) SetPlacement(v *Placement) *FleetLaunchTemplateOverridesRequest {
+ s.Placement = v
+ return s
+}
+
+// SetPriority sets the Priority field's value.
+func (s *FleetLaunchTemplateOverridesRequest) SetPriority(v float64) *FleetLaunchTemplateOverridesRequest {
+ s.Priority = &v
+ return s
+}
+
// SetSubnetId sets the SubnetId field's value.
func (s *FleetLaunchTemplateOverridesRequest) SetSubnetId(v string) *FleetLaunchTemplateOverridesRequest {
s.SubnetId = &v
@@ -46446,8 +56850,7 @@ type FleetLaunchTemplateSpecification struct {
// or a template ID.
LaunchTemplateName *string `locationName:"launchTemplateName" min:"3" type:"string"`
- // The version number. By default, the default version of the launch template
- // is used.
+ // The version number of the launch template. You must specify a version number.
Version *string `locationName:"version" type:"string"`
}
@@ -46553,14 +56956,14 @@ type FlowLog struct {
_ struct{} `type:"structure"`
// The date and time the flow log was created.
- CreationTime *time.Time `locationName:"creationTime" type:"timestamp" timestampFormat:"iso8601"`
+ CreationTime *time.Time `locationName:"creationTime" type:"timestamp"`
// Information about the error that occurred. Rate limited indicates that CloudWatch
- // logs throttling has been applied for one or more network interfaces, or that
- // you've reached the limit on the number of CloudWatch Logs log groups that
- // you can create. Access error indicates that the IAM role associated with
- // the flow log does not have sufficient permissions to publish to CloudWatch
- // Logs. Unknown error indicates an internal error.
+ // Logs throttling has been applied for one or more network interfaces, or that
+ // you've reached the limit on the number of log groups that you can create.
+ // Access error indicates that the IAM role associated with the flow log does
+ // not have sufficient permissions to publish to CloudWatch Logs. Unknown error
+ // indicates an internal error.
DeliverLogsErrorMessage *string `locationName:"deliverLogsErrorMessage" type:"string"`
// The ARN of the IAM role that posts logs to CloudWatch Logs.
@@ -46575,6 +56978,18 @@ type FlowLog struct {
// The status of the flow log (ACTIVE).
FlowLogStatus *string `locationName:"flowLogStatus" type:"string"`
+ // Specifies the destination to which the flow log data is published. Flow log
+ // data can be published to an CloudWatch Logs log group or an Amazon S3 bucket.
+ // If the flow log publishes to CloudWatch Logs, this element indicates the
+ // Amazon Resource Name (ARN) of the CloudWatch Logs log group to which the
+ // data is published. If the flow log publishes to Amazon S3, this element indicates
+ // the ARN of the Amazon S3 bucket to which the data is published.
+ LogDestination *string `locationName:"logDestination" type:"string"`
+
+ // Specifies the type of destination to which the flow log data is published.
+ // Flow log data can be published to CloudWatch Logs or Amazon S3.
+ LogDestinationType *string `locationName:"logDestinationType" type:"string" enum:"LogDestinationType"`
+
// The name of the flow log group.
LogGroupName *string `locationName:"logGroupName" type:"string"`
@@ -46631,6 +57046,18 @@ func (s *FlowLog) SetFlowLogStatus(v string) *FlowLog {
return s
}
+// SetLogDestination sets the LogDestination field's value.
+func (s *FlowLog) SetLogDestination(v string) *FlowLog {
+ s.LogDestination = &v
+ return s
+}
+
+// SetLogDestinationType sets the LogDestinationType field's value.
+func (s *FlowLog) SetLogDestinationType(v string) *FlowLog {
+ s.LogDestinationType = &v
+ return s
+}
+
// SetLogGroupName sets the LogGroupName field's value.
func (s *FlowLog) SetLogGroupName(v string) *FlowLog {
s.LogGroupName = &v
@@ -46654,7 +57081,7 @@ type FpgaImage struct {
_ struct{} `type:"structure"`
// The date and time the AFI was created.
- CreateTime *time.Time `locationName:"createTime" type:"timestamp" timestampFormat:"iso8601"`
+ CreateTime *time.Time `locationName:"createTime" type:"timestamp"`
// The description of the AFI.
Description *string `locationName:"description" type:"string"`
@@ -46693,7 +57120,7 @@ type FpgaImage struct {
Tags []*Tag `locationName:"tags" locationNameList:"item" type:"list"`
// The time of the most recent update to the AFI.
- UpdateTime *time.Time `locationName:"updateTime" type:"timestamp" timestampFormat:"iso8601"`
+ UpdateTime *time.Time `locationName:"updateTime" type:"timestamp"`
}
// String returns the string representation
@@ -46892,7 +57319,6 @@ func (s *FpgaImageState) SetMessage(v string) *FpgaImageState {
return s
}
-// Contains the parameters for GetConsoleOutput.
type GetConsoleOutputInput struct {
_ struct{} `type:"structure"`
@@ -46954,7 +57380,6 @@ func (s *GetConsoleOutputInput) SetLatest(v bool) *GetConsoleOutputInput {
return s
}
-// Contains the output of GetConsoleOutput.
type GetConsoleOutputOutput struct {
_ struct{} `type:"structure"`
@@ -46966,7 +57391,7 @@ type GetConsoleOutputOutput struct {
Output *string `locationName:"output" type:"string"`
// The time at which the output was last updated.
- Timestamp *time.Time `locationName:"timestamp" type:"timestamp" timestampFormat:"iso8601"`
+ Timestamp *time.Time `locationName:"timestamp" type:"timestamp"`
}
// String returns the string representation
@@ -46997,7 +57422,6 @@ func (s *GetConsoleOutputOutput) SetTimestamp(v time.Time) *GetConsoleOutputOutp
return s
}
-// Contains the parameters for the request.
type GetConsoleScreenshotInput struct {
_ struct{} `type:"structure"`
@@ -47058,7 +57482,6 @@ func (s *GetConsoleScreenshotInput) SetWakeUp(v bool) *GetConsoleScreenshotInput
return s
}
-// Contains the output of the request.
type GetConsoleScreenshotOutput struct {
_ struct{} `type:"structure"`
@@ -47094,8 +57517,7 @@ func (s *GetConsoleScreenshotOutput) SetInstanceId(v string) *GetConsoleScreensh
type GetHostReservationPurchasePreviewInput struct {
_ struct{} `type:"structure"`
- // The ID/s of the Dedicated Host/s that the reservation will be associated
- // with.
+ // The IDs of the Dedicated Hosts with which the reservation is associated.
//
// HostIdSet is a required field
HostIdSet []*string `locationNameList:"item" type:"list" required:"true"`
@@ -47151,7 +57573,7 @@ type GetHostReservationPurchasePreviewOutput struct {
// are specified. At this time, the only supported currency is USD.
CurrencyCode *string `locationName:"currencyCode" type:"string" enum:"CurrencyCodeValues"`
- // The purchase information of the Dedicated Host Reservation and the Dedicated
+ // The purchase information of the Dedicated Host reservation and the Dedicated
// Hosts associated with it.
Purchase []*Purchase `locationName:"purchase" locationNameList:"item" type:"list"`
@@ -47269,7 +57691,6 @@ func (s *GetLaunchTemplateDataOutput) SetLaunchTemplateData(v *ResponseLaunchTem
return s
}
-// Contains the parameters for GetPasswordData.
type GetPasswordDataInput struct {
_ struct{} `type:"structure"`
@@ -47320,7 +57741,6 @@ func (s *GetPasswordDataInput) SetInstanceId(v string) *GetPasswordDataInput {
return s
}
-// Contains the output of GetPasswordData.
type GetPasswordDataOutput struct {
_ struct{} `type:"structure"`
@@ -47332,7 +57752,7 @@ type GetPasswordDataOutput struct {
PasswordData *string `locationName:"passwordData" type:"string"`
// The time the data was last updated.
- Timestamp *time.Time `locationName:"timestamp" type:"timestamp" timestampFormat:"iso8601"`
+ Timestamp *time.Time `locationName:"timestamp" type:"timestamp"`
}
// String returns the string representation
@@ -47445,7 +57865,7 @@ type GetReservedInstancesExchangeQuoteOutput struct {
IsValidExchange *bool `locationName:"isValidExchange" type:"boolean"`
// The new end date of the reservation term.
- OutputReservedInstancesWillExpireAt *time.Time `locationName:"outputReservedInstancesWillExpireAt" type:"timestamp" timestampFormat:"iso8601"`
+ OutputReservedInstancesWillExpireAt *time.Time `locationName:"outputReservedInstancesWillExpireAt" type:"timestamp"`
// The total true upfront charge for the exchange.
PaymentDue *string `locationName:"paymentDue" type:"string"`
@@ -47530,6 +57950,365 @@ func (s *GetReservedInstancesExchangeQuoteOutput) SetValidationFailureReason(v s
return s
}
+type GetTransitGatewayAttachmentPropagationsInput struct {
+ _ struct{} `type:"structure"`
+
+ // Checks whether you have the required permissions for the action, without
+ // actually making the request, and provides an error response. If you have
+ // the required permissions, the error response is DryRunOperation. Otherwise,
+ // it is UnauthorizedOperation.
+ DryRun *bool `type:"boolean"`
+
+ // One or more filters. The possible values are:
+ //
+ // * transit-gateway-route-table-id - The ID of the transit gateway route
+ // table.
+ Filters []*Filter `locationName:"Filter" locationNameList:"Filter" type:"list"`
+
+ // The maximum number of results to return with a single call. To retrieve the
+ // remaining results, make another call with the returned nextToken value.
+ MaxResults *int64 `min:"5" type:"integer"`
+
+ // The token for the next page of results.
+ NextToken *string `type:"string"`
+
+ // The ID of the attachment.
+ //
+ // TransitGatewayAttachmentId is a required field
+ TransitGatewayAttachmentId *string `type:"string" required:"true"`
+}
+
+// String returns the string representation
+func (s GetTransitGatewayAttachmentPropagationsInput) String() string {
+ return awsutil.Prettify(s)
+}
+
+// GoString returns the string representation
+func (s GetTransitGatewayAttachmentPropagationsInput) GoString() string {
+ return s.String()
+}
+
+// Validate inspects the fields of the type to determine if they are valid.
+func (s *GetTransitGatewayAttachmentPropagationsInput) Validate() error {
+ invalidParams := request.ErrInvalidParams{Context: "GetTransitGatewayAttachmentPropagationsInput"}
+ if s.MaxResults != nil && *s.MaxResults < 5 {
+ invalidParams.Add(request.NewErrParamMinValue("MaxResults", 5))
+ }
+ if s.TransitGatewayAttachmentId == nil {
+ invalidParams.Add(request.NewErrParamRequired("TransitGatewayAttachmentId"))
+ }
+
+ if invalidParams.Len() > 0 {
+ return invalidParams
+ }
+ return nil
+}
+
+// SetDryRun sets the DryRun field's value.
+func (s *GetTransitGatewayAttachmentPropagationsInput) SetDryRun(v bool) *GetTransitGatewayAttachmentPropagationsInput {
+ s.DryRun = &v
+ return s
+}
+
+// SetFilters sets the Filters field's value.
+func (s *GetTransitGatewayAttachmentPropagationsInput) SetFilters(v []*Filter) *GetTransitGatewayAttachmentPropagationsInput {
+ s.Filters = v
+ return s
+}
+
+// SetMaxResults sets the MaxResults field's value.
+func (s *GetTransitGatewayAttachmentPropagationsInput) SetMaxResults(v int64) *GetTransitGatewayAttachmentPropagationsInput {
+ s.MaxResults = &v
+ return s
+}
+
+// SetNextToken sets the NextToken field's value.
+func (s *GetTransitGatewayAttachmentPropagationsInput) SetNextToken(v string) *GetTransitGatewayAttachmentPropagationsInput {
+ s.NextToken = &v
+ return s
+}
+
+// SetTransitGatewayAttachmentId sets the TransitGatewayAttachmentId field's value.
+func (s *GetTransitGatewayAttachmentPropagationsInput) SetTransitGatewayAttachmentId(v string) *GetTransitGatewayAttachmentPropagationsInput {
+ s.TransitGatewayAttachmentId = &v
+ return s
+}
+
+type GetTransitGatewayAttachmentPropagationsOutput struct {
+ _ struct{} `type:"structure"`
+
+ // The token to use to retrieve the next page of results. This value is null
+ // when there are no more results to return.
+ NextToken *string `locationName:"nextToken" type:"string"`
+
+ // Information about the propagation route tables.
+ TransitGatewayAttachmentPropagations []*TransitGatewayAttachmentPropagation `locationName:"transitGatewayAttachmentPropagations" locationNameList:"item" type:"list"`
+}
+
+// String returns the string representation
+func (s GetTransitGatewayAttachmentPropagationsOutput) String() string {
+ return awsutil.Prettify(s)
+}
+
+// GoString returns the string representation
+func (s GetTransitGatewayAttachmentPropagationsOutput) GoString() string {
+ return s.String()
+}
+
+// SetNextToken sets the NextToken field's value.
+func (s *GetTransitGatewayAttachmentPropagationsOutput) SetNextToken(v string) *GetTransitGatewayAttachmentPropagationsOutput {
+ s.NextToken = &v
+ return s
+}
+
+// SetTransitGatewayAttachmentPropagations sets the TransitGatewayAttachmentPropagations field's value.
+func (s *GetTransitGatewayAttachmentPropagationsOutput) SetTransitGatewayAttachmentPropagations(v []*TransitGatewayAttachmentPropagation) *GetTransitGatewayAttachmentPropagationsOutput {
+ s.TransitGatewayAttachmentPropagations = v
+ return s
+}
+
+type GetTransitGatewayRouteTableAssociationsInput struct {
+ _ struct{} `type:"structure"`
+
+ // Checks whether you have the required permissions for the action, without
+ // actually making the request, and provides an error response. If you have
+ // the required permissions, the error response is DryRunOperation. Otherwise,
+ // it is UnauthorizedOperation.
+ DryRun *bool `type:"boolean"`
+
+ // One or more filters. The possible values are:
+ //
+ // * association-id - The ID of the association.
+ //
+ // * resource-id - The ID of the resource.
+ //
+ // * resource-type - The resource type (vpc | vpn).
+ //
+ // * transit-gateway-attachment-id - The ID of the attachment.
+ Filters []*Filter `locationName:"Filter" locationNameList:"Filter" type:"list"`
+
+ // The maximum number of results to return with a single call. To retrieve the
+ // remaining results, make another call with the returned nextToken value.
+ MaxResults *int64 `min:"5" type:"integer"`
+
+ // The token for the next page of results.
+ NextToken *string `type:"string"`
+
+ // The ID of the transit gateway route table.
+ //
+ // TransitGatewayRouteTableId is a required field
+ TransitGatewayRouteTableId *string `type:"string" required:"true"`
+}
+
+// String returns the string representation
+func (s GetTransitGatewayRouteTableAssociationsInput) String() string {
+ return awsutil.Prettify(s)
+}
+
+// GoString returns the string representation
+func (s GetTransitGatewayRouteTableAssociationsInput) GoString() string {
+ return s.String()
+}
+
+// Validate inspects the fields of the type to determine if they are valid.
+func (s *GetTransitGatewayRouteTableAssociationsInput) Validate() error {
+ invalidParams := request.ErrInvalidParams{Context: "GetTransitGatewayRouteTableAssociationsInput"}
+ if s.MaxResults != nil && *s.MaxResults < 5 {
+ invalidParams.Add(request.NewErrParamMinValue("MaxResults", 5))
+ }
+ if s.TransitGatewayRouteTableId == nil {
+ invalidParams.Add(request.NewErrParamRequired("TransitGatewayRouteTableId"))
+ }
+
+ if invalidParams.Len() > 0 {
+ return invalidParams
+ }
+ return nil
+}
+
+// SetDryRun sets the DryRun field's value.
+func (s *GetTransitGatewayRouteTableAssociationsInput) SetDryRun(v bool) *GetTransitGatewayRouteTableAssociationsInput {
+ s.DryRun = &v
+ return s
+}
+
+// SetFilters sets the Filters field's value.
+func (s *GetTransitGatewayRouteTableAssociationsInput) SetFilters(v []*Filter) *GetTransitGatewayRouteTableAssociationsInput {
+ s.Filters = v
+ return s
+}
+
+// SetMaxResults sets the MaxResults field's value.
+func (s *GetTransitGatewayRouteTableAssociationsInput) SetMaxResults(v int64) *GetTransitGatewayRouteTableAssociationsInput {
+ s.MaxResults = &v
+ return s
+}
+
+// SetNextToken sets the NextToken field's value.
+func (s *GetTransitGatewayRouteTableAssociationsInput) SetNextToken(v string) *GetTransitGatewayRouteTableAssociationsInput {
+ s.NextToken = &v
+ return s
+}
+
+// SetTransitGatewayRouteTableId sets the TransitGatewayRouteTableId field's value.
+func (s *GetTransitGatewayRouteTableAssociationsInput) SetTransitGatewayRouteTableId(v string) *GetTransitGatewayRouteTableAssociationsInput {
+ s.TransitGatewayRouteTableId = &v
+ return s
+}
+
+type GetTransitGatewayRouteTableAssociationsOutput struct {
+ _ struct{} `type:"structure"`
+
+ // Information about the associations.
+ Associations []*TransitGatewayRouteTableAssociation `locationName:"associations" locationNameList:"item" type:"list"`
+
+ // The token to use to retrieve the next page of results. This value is null
+ // when there are no more results to return.
+ NextToken *string `locationName:"nextToken" type:"string"`
+}
+
+// String returns the string representation
+func (s GetTransitGatewayRouteTableAssociationsOutput) String() string {
+ return awsutil.Prettify(s)
+}
+
+// GoString returns the string representation
+func (s GetTransitGatewayRouteTableAssociationsOutput) GoString() string {
+ return s.String()
+}
+
+// SetAssociations sets the Associations field's value.
+func (s *GetTransitGatewayRouteTableAssociationsOutput) SetAssociations(v []*TransitGatewayRouteTableAssociation) *GetTransitGatewayRouteTableAssociationsOutput {
+ s.Associations = v
+ return s
+}
+
+// SetNextToken sets the NextToken field's value.
+func (s *GetTransitGatewayRouteTableAssociationsOutput) SetNextToken(v string) *GetTransitGatewayRouteTableAssociationsOutput {
+ s.NextToken = &v
+ return s
+}
+
+type GetTransitGatewayRouteTablePropagationsInput struct {
+ _ struct{} `type:"structure"`
+
+ // Checks whether you have the required permissions for the action, without
+ // actually making the request, and provides an error response. If you have
+ // the required permissions, the error response is DryRunOperation. Otherwise,
+ // it is UnauthorizedOperation.
+ DryRun *bool `type:"boolean"`
+
+ // One or more filters. The possible values are:
+ //
+ // * resource-id - The ID of the resource.
+ //
+ // * resource-type - The resource type (vpc | vpn).
+ //
+ // * transit-gateway-attachment-id - The ID of the attachment.
+ Filters []*Filter `locationName:"Filter" locationNameList:"Filter" type:"list"`
+
+ // The maximum number of results to return with a single call. To retrieve the
+ // remaining results, make another call with the returned nextToken value.
+ MaxResults *int64 `min:"5" type:"integer"`
+
+ // The token for the next page of results.
+ NextToken *string `type:"string"`
+
+ // The ID of the transit gateway route table.
+ //
+ // TransitGatewayRouteTableId is a required field
+ TransitGatewayRouteTableId *string `type:"string" required:"true"`
+}
+
+// String returns the string representation
+func (s GetTransitGatewayRouteTablePropagationsInput) String() string {
+ return awsutil.Prettify(s)
+}
+
+// GoString returns the string representation
+func (s GetTransitGatewayRouteTablePropagationsInput) GoString() string {
+ return s.String()
+}
+
+// Validate inspects the fields of the type to determine if they are valid.
+func (s *GetTransitGatewayRouteTablePropagationsInput) Validate() error {
+ invalidParams := request.ErrInvalidParams{Context: "GetTransitGatewayRouteTablePropagationsInput"}
+ if s.MaxResults != nil && *s.MaxResults < 5 {
+ invalidParams.Add(request.NewErrParamMinValue("MaxResults", 5))
+ }
+ if s.TransitGatewayRouteTableId == nil {
+ invalidParams.Add(request.NewErrParamRequired("TransitGatewayRouteTableId"))
+ }
+
+ if invalidParams.Len() > 0 {
+ return invalidParams
+ }
+ return nil
+}
+
+// SetDryRun sets the DryRun field's value.
+func (s *GetTransitGatewayRouteTablePropagationsInput) SetDryRun(v bool) *GetTransitGatewayRouteTablePropagationsInput {
+ s.DryRun = &v
+ return s
+}
+
+// SetFilters sets the Filters field's value.
+func (s *GetTransitGatewayRouteTablePropagationsInput) SetFilters(v []*Filter) *GetTransitGatewayRouteTablePropagationsInput {
+ s.Filters = v
+ return s
+}
+
+// SetMaxResults sets the MaxResults field's value.
+func (s *GetTransitGatewayRouteTablePropagationsInput) SetMaxResults(v int64) *GetTransitGatewayRouteTablePropagationsInput {
+ s.MaxResults = &v
+ return s
+}
+
+// SetNextToken sets the NextToken field's value.
+func (s *GetTransitGatewayRouteTablePropagationsInput) SetNextToken(v string) *GetTransitGatewayRouteTablePropagationsInput {
+ s.NextToken = &v
+ return s
+}
+
+// SetTransitGatewayRouteTableId sets the TransitGatewayRouteTableId field's value.
+func (s *GetTransitGatewayRouteTablePropagationsInput) SetTransitGatewayRouteTableId(v string) *GetTransitGatewayRouteTablePropagationsInput {
+ s.TransitGatewayRouteTableId = &v
+ return s
+}
+
+type GetTransitGatewayRouteTablePropagationsOutput struct {
+ _ struct{} `type:"structure"`
+
+ // The token to use to retrieve the next page of results. This value is null
+ // when there are no more results to return.
+ NextToken *string `locationName:"nextToken" type:"string"`
+
+ // Information about the route table propagations.
+ TransitGatewayRouteTablePropagations []*TransitGatewayRouteTablePropagation `locationName:"transitGatewayRouteTablePropagations" locationNameList:"item" type:"list"`
+}
+
+// String returns the string representation
+func (s GetTransitGatewayRouteTablePropagationsOutput) String() string {
+ return awsutil.Prettify(s)
+}
+
+// GoString returns the string representation
+func (s GetTransitGatewayRouteTablePropagationsOutput) GoString() string {
+ return s.String()
+}
+
+// SetNextToken sets the NextToken field's value.
+func (s *GetTransitGatewayRouteTablePropagationsOutput) SetNextToken(v string) *GetTransitGatewayRouteTablePropagationsOutput {
+ s.NextToken = &v
+ return s
+}
+
+// SetTransitGatewayRouteTablePropagations sets the TransitGatewayRouteTablePropagations field's value.
+func (s *GetTransitGatewayRouteTablePropagationsOutput) SetTransitGatewayRouteTablePropagations(v []*TransitGatewayRouteTablePropagation) *GetTransitGatewayRouteTablePropagationsOutput {
+ s.TransitGatewayRouteTablePropagations = v
+ return s
+}
+
// Describes a security group.
type GroupIdentifier struct {
_ struct{} `type:"structure"`
@@ -47563,14 +58342,71 @@ func (s *GroupIdentifier) SetGroupName(v string) *GroupIdentifier {
return s
}
+// Indicates whether your instance is configured for hibernation. This parameter
+// is valid only if the instance meets the hibernation prerequisites (http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Hibernate.html#hibernating-prerequisites).
+// Hibernation is currently supported only for Amazon Linux. For more information,
+// see Hibernate Your Instance (http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Hibernate.html)
+// in the Amazon Elastic Compute Cloud User Guide.
+type HibernationOptions struct {
+ _ struct{} `type:"structure"`
+
+ // If this parameter is set to true, your instance is enabled for hibernation;
+ // otherwise, it is not enabled for hibernation.
+ Configured *bool `locationName:"configured" type:"boolean"`
+}
+
+// String returns the string representation
+func (s HibernationOptions) String() string {
+ return awsutil.Prettify(s)
+}
+
+// GoString returns the string representation
+func (s HibernationOptions) GoString() string {
+ return s.String()
+}
+
+// SetConfigured sets the Configured field's value.
+func (s *HibernationOptions) SetConfigured(v bool) *HibernationOptions {
+ s.Configured = &v
+ return s
+}
+
+// Indicates whether your instance is configured for hibernation. This parameter
+// is valid only if the instance meets the hibernation prerequisites (http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Hibernate.html#hibernating-prerequisites).
+// Hibernation is currently supported only for Amazon Linux. For more information,
+// see Hibernate Your Instance (http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Hibernate.html)
+// in the Amazon Elastic Compute Cloud User Guide.
+type HibernationOptionsRequest struct {
+ _ struct{} `type:"structure"`
+
+ // If you set this parameter to true, your instance is enabled for hibernation.
+ //
+ // Default: false
+ Configured *bool `type:"boolean"`
+}
+
+// String returns the string representation
+func (s HibernationOptionsRequest) String() string {
+ return awsutil.Prettify(s)
+}
+
+// GoString returns the string representation
+func (s HibernationOptionsRequest) GoString() string {
+ return s.String()
+}
+
+// SetConfigured sets the Configured field's value.
+func (s *HibernationOptionsRequest) SetConfigured(v bool) *HibernationOptionsRequest {
+ s.Configured = &v
+ return s
+}
+
// Describes an event in the history of the Spot Fleet request.
type HistoryRecord struct {
_ struct{} `type:"structure"`
// Information about the event.
- //
- // EventInformation is a required field
- EventInformation *EventInformation `locationName:"eventInformation" type:"structure" required:"true"`
+ EventInformation *EventInformation `locationName:"eventInformation" type:"structure"`
// The event type.
//
@@ -47582,14 +58418,10 @@ type HistoryRecord struct {
// * instanceChange - An instance was launched or terminated.
//
// * Information - An informational event.
- //
- // EventType is a required field
- EventType *string `locationName:"eventType" type:"string" required:"true" enum:"EventType"`
+ EventType *string `locationName:"eventType" type:"string" enum:"EventType"`
// The date and time of the event, in UTC format (for example, YYYY-MM-DDTHH:MM:SSZ).
- //
- // Timestamp is a required field
- Timestamp *time.Time `locationName:"timestamp" type:"timestamp" timestampFormat:"iso8601" required:"true"`
+ Timestamp *time.Time `locationName:"timestamp" type:"timestamp"`
}
// String returns the string representation
@@ -47620,7 +58452,7 @@ func (s *HistoryRecord) SetTimestamp(v time.Time) *HistoryRecord {
return s
}
-// Describes an event in the history of the EC2 Fleet.
+// Describes an event in the history of an EC2 Fleet.
type HistoryRecordEntry struct {
_ struct{} `type:"structure"`
@@ -47631,7 +58463,7 @@ type HistoryRecordEntry struct {
EventType *string `locationName:"eventType" type:"string" enum:"FleetEventType"`
// The date and time of the event, in UTC format (for example, YYYY-MM-DDTHH:MM:SSZ).
- Timestamp *time.Time `locationName:"timestamp" type:"timestamp" timestampFormat:"iso8601"`
+ Timestamp *time.Time `locationName:"timestamp" type:"timestamp"`
}
// String returns the string representation
@@ -47667,7 +58499,7 @@ type Host struct {
_ struct{} `type:"structure"`
// The time that the Dedicated Host was allocated.
- AllocationTime *time.Time `locationName:"allocationTime" type:"timestamp" timestampFormat:"iso8601"`
+ AllocationTime *time.Time `locationName:"allocationTime" type:"timestamp"`
// Whether auto-placement is on or off.
AutoPlacement *string `locationName:"autoPlacement" type:"string" enum:"AutoPlacement"`
@@ -47678,8 +58510,8 @@ type Host struct {
// The number of new instances that can be launched onto the Dedicated Host.
AvailableCapacity *AvailableCapacity `locationName:"availableCapacity" type:"structure"`
- // Unique, case-sensitive identifier you provide to ensure idempotency of the
- // request. For more information, see How to Ensure Idempotency (http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Run_Instance_Idempotency.html)
+ // Unique, case-sensitive identifier that you provide to ensure idempotency
+ // of the request. For more information, see How to Ensure Idempotency (http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Run_Instance_Idempotency.html)
// in the Amazon Elastic Compute Cloud User Guide.
ClientToken *string `locationName:"clientToken" type:"string"`
@@ -47697,10 +58529,13 @@ type Host struct {
Instances []*HostInstance `locationName:"instances" locationNameList:"item" type:"list"`
// The time that the Dedicated Host was released.
- ReleaseTime *time.Time `locationName:"releaseTime" type:"timestamp" timestampFormat:"iso8601"`
+ ReleaseTime *time.Time `locationName:"releaseTime" type:"timestamp"`
// The Dedicated Host's state.
State *string `locationName:"state" type:"string" enum:"AllocationState"`
+
+ // Any tags assigned to the Dedicated Host.
+ Tags []*Tag `locationName:"tagSet" locationNameList:"item" type:"list"`
}
// String returns the string representation
@@ -47779,6 +58614,12 @@ func (s *Host) SetState(v string) *Host {
return s
}
+// SetTags sets the Tags field's value.
+func (s *Host) SetTags(v []*Tag) *Host {
+ s.Tags = v
+ return s
+}
+
// Describes an instance running on a Dedicated Host.
type HostInstance struct {
_ struct{} `type:"structure"`
@@ -47957,7 +58798,7 @@ type HostReservation struct {
Duration *int64 `locationName:"duration" type:"integer"`
// The date and time that the reservation ends.
- End *time.Time `locationName:"end" type:"timestamp" timestampFormat:"iso8601"`
+ End *time.Time `locationName:"end" type:"timestamp"`
// The IDs of the Dedicated Hosts associated with the reservation.
HostIdSet []*string `locationName:"hostIdSet" locationNameList:"item" type:"list"`
@@ -47981,7 +58822,7 @@ type HostReservation struct {
PaymentOption *string `locationName:"paymentOption" type:"string" enum:"PaymentOption"`
// The date and time that the reservation started.
- Start *time.Time `locationName:"start" type:"timestamp" timestampFormat:"iso8601"`
+ Start *time.Time `locationName:"start" type:"timestamp"`
// The state of the reservation.
State *string `locationName:"state" type:"string" enum:"ReservationState"`
@@ -48128,7 +58969,7 @@ type IamInstanceProfileAssociation struct {
State *string `locationName:"state" type:"string" enum:"IamInstanceProfileAssociationState"`
// The time the IAM instance profile was associated with the instance.
- Timestamp *time.Time `locationName:"timestamp" type:"timestamp" timestampFormat:"iso8601"`
+ Timestamp *time.Time `locationName:"timestamp" type:"timestamp"`
}
// String returns the string representation
@@ -48244,7 +59085,7 @@ type IdFormat struct {
// The date in UTC at which you are permanently switched over to using longer
// IDs. If a deadline is not yet available for this resource type, this field
// is not returned.
- Deadline *time.Time `locationName:"deadline" type:"timestamp" timestampFormat:"iso8601"`
+ Deadline *time.Time `locationName:"deadline" type:"timestamp"`
// The type of resource.
Resource *string `locationName:"resource" type:"string"`
@@ -48592,6 +59433,96 @@ func (s *ImageDiskContainer) SetUserBucket(v *UserBucket) *ImageDiskContainer {
return s
}
+type ImportClientVpnClientCertificateRevocationListInput struct {
+ _ struct{} `type:"structure"`
+
+ // The client certificate revocation list file. For more information, see Generate
+ // a Client Certificate Revocation List (vpn/latest/clientvpn-admin/cvpn-working-certificates.html#cvpn-working-certificates-generate)
+ // in the AWS Client VPN Admin Guide.
+ //
+ // CertificateRevocationList is a required field
+ CertificateRevocationList *string `type:"string" required:"true"`
+
+ // The ID of the Client VPN endpoint to which the client certificate revocation
+ // list applies.
+ //
+ // ClientVpnEndpointId is a required field
+ ClientVpnEndpointId *string `type:"string" required:"true"`
+
+ // Checks whether you have the required permissions for the action, without
+ // actually making the request, and provides an error response. If you have
+ // the required permissions, the error response is DryRunOperation. Otherwise,
+ // it is UnauthorizedOperation.
+ DryRun *bool `type:"boolean"`
+}
+
+// String returns the string representation
+func (s ImportClientVpnClientCertificateRevocationListInput) String() string {
+ return awsutil.Prettify(s)
+}
+
+// GoString returns the string representation
+func (s ImportClientVpnClientCertificateRevocationListInput) GoString() string {
+ return s.String()
+}
+
+// Validate inspects the fields of the type to determine if they are valid.
+func (s *ImportClientVpnClientCertificateRevocationListInput) Validate() error {
+ invalidParams := request.ErrInvalidParams{Context: "ImportClientVpnClientCertificateRevocationListInput"}
+ if s.CertificateRevocationList == nil {
+ invalidParams.Add(request.NewErrParamRequired("CertificateRevocationList"))
+ }
+ if s.ClientVpnEndpointId == nil {
+ invalidParams.Add(request.NewErrParamRequired("ClientVpnEndpointId"))
+ }
+
+ if invalidParams.Len() > 0 {
+ return invalidParams
+ }
+ return nil
+}
+
+// SetCertificateRevocationList sets the CertificateRevocationList field's value.
+func (s *ImportClientVpnClientCertificateRevocationListInput) SetCertificateRevocationList(v string) *ImportClientVpnClientCertificateRevocationListInput {
+ s.CertificateRevocationList = &v
+ return s
+}
+
+// SetClientVpnEndpointId sets the ClientVpnEndpointId field's value.
+func (s *ImportClientVpnClientCertificateRevocationListInput) SetClientVpnEndpointId(v string) *ImportClientVpnClientCertificateRevocationListInput {
+ s.ClientVpnEndpointId = &v
+ return s
+}
+
+// SetDryRun sets the DryRun field's value.
+func (s *ImportClientVpnClientCertificateRevocationListInput) SetDryRun(v bool) *ImportClientVpnClientCertificateRevocationListInput {
+ s.DryRun = &v
+ return s
+}
+
+type ImportClientVpnClientCertificateRevocationListOutput struct {
+ _ struct{} `type:"structure"`
+
+ // Returns true if the request succeeds; otherwise, it returns an error.
+ Return *bool `locationName:"return" type:"boolean"`
+}
+
+// String returns the string representation
+func (s ImportClientVpnClientCertificateRevocationListOutput) String() string {
+ return awsutil.Prettify(s)
+}
+
+// GoString returns the string representation
+func (s ImportClientVpnClientCertificateRevocationListOutput) GoString() string {
+ return s.String()
+}
+
+// SetReturn sets the Return field's value.
+func (s *ImportClientVpnClientCertificateRevocationListOutput) SetReturn(v bool) *ImportClientVpnClientCertificateRevocationListOutput {
+ s.Return = &v
+ return s
+}
+
// Contains the parameters for ImportImage.
type ImportImageInput struct {
_ struct{} `type:"structure"`
@@ -48619,11 +59550,46 @@ type ImportImageInput struct {
// it is UnauthorizedOperation.
DryRun *bool `type:"boolean"`
+ // Specifies whether the destination AMI of the imported image should be encrypted.
+ // The default CMK for EBS is used unless you specify a non-default AWS Key
+ // Management Service (AWS KMS) CMK using KmsKeyId. For more information, see
+ // Amazon EBS Encryption (http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSEncryption.html)
+ // in the Amazon Elastic Compute Cloud User Guide.
+ Encrypted *bool `type:"boolean"`
+
// The target hypervisor platform.
//
// Valid values: xen
Hypervisor *string `type:"string"`
+ // An identifier for the AWS Key Management Service (AWS KMS) customer master
+ // key (CMK) to use when creating the encrypted AMI. This parameter is only
+ // required if you want to use a non-default CMK; if this parameter is not specified,
+ // the default CMK for EBS is used. If a KmsKeyId is specified, the Encrypted
+ // flag must also be set.
+ //
+ // The CMK identifier may be provided in any of the following formats:
+ //
+ // * Key ID
+ //
+ // * Key alias, in the form alias/ExampleAlias
+ //
+ // * ARN using key ID. The ID ARN contains the arn:aws:kms namespace, followed
+ // by the region of the CMK, the AWS account ID of the CMK owner, the key
+ // namespace, and then the CMK ID. For example, arn:aws:kms:us-east-1:012345678910:key/abcd1234-a123-456a-a12b-a123b4cd56ef.
+ //
+ // * ARN using key alias. The alias ARN contains the arn:aws:kms namespace,
+ // followed by the region of the CMK, the AWS account ID of the CMK owner,
+ // the alias namespace, and then the CMK alias. For example, arn:aws:kms:us-east-1:012345678910:alias/ExampleAlias.
+ //
+ //
+ // AWS parses KmsKeyId asynchronously, meaning that the action you call may
+ // appear to complete even though you provided an invalid identifier. This action
+ // will eventually report failure.
+ //
+ // The specified CMK must exist in the region that the AMI is being copied to.
+ KmsKeyId *string `type:"string"`
+
// The license type to be used for the Amazon Machine Image (AMI) after importing.
//
// Note: You may only use BYOL if you have existing licenses with rights to
@@ -48689,12 +59655,24 @@ func (s *ImportImageInput) SetDryRun(v bool) *ImportImageInput {
return s
}
+// SetEncrypted sets the Encrypted field's value.
+func (s *ImportImageInput) SetEncrypted(v bool) *ImportImageInput {
+ s.Encrypted = &v
+ return s
+}
+
// SetHypervisor sets the Hypervisor field's value.
func (s *ImportImageInput) SetHypervisor(v string) *ImportImageInput {
s.Hypervisor = &v
return s
}
+// SetKmsKeyId sets the KmsKeyId field's value.
+func (s *ImportImageInput) SetKmsKeyId(v string) *ImportImageInput {
+ s.KmsKeyId = &v
+ return s
+}
+
// SetLicenseType sets the LicenseType field's value.
func (s *ImportImageInput) SetLicenseType(v string) *ImportImageInput {
s.LicenseType = &v
@@ -48723,6 +59701,9 @@ type ImportImageOutput struct {
// A description of the import task.
Description *string `locationName:"description" type:"string"`
+ // Indicates whether the AMI is encypted.
+ Encrypted *bool `locationName:"encrypted" type:"boolean"`
+
// The target hypervisor of the import task.
Hypervisor *string `locationName:"hypervisor" type:"string"`
@@ -48732,6 +59713,10 @@ type ImportImageOutput struct {
// The task ID of the import image task.
ImportTaskId *string `locationName:"importTaskId" type:"string"`
+ // The identifier for the AWS Key Management Service (AWS KMS) customer master
+ // key (CMK) that was used to create the encrypted AMI.
+ KmsKeyId *string `locationName:"kmsKeyId" type:"string"`
+
// The license type of the virtual machine.
LicenseType *string `locationName:"licenseType" type:"string"`
@@ -48773,6 +59758,12 @@ func (s *ImportImageOutput) SetDescription(v string) *ImportImageOutput {
return s
}
+// SetEncrypted sets the Encrypted field's value.
+func (s *ImportImageOutput) SetEncrypted(v bool) *ImportImageOutput {
+ s.Encrypted = &v
+ return s
+}
+
// SetHypervisor sets the Hypervisor field's value.
func (s *ImportImageOutput) SetHypervisor(v string) *ImportImageOutput {
s.Hypervisor = &v
@@ -48791,6 +59782,12 @@ func (s *ImportImageOutput) SetImportTaskId(v string) *ImportImageOutput {
return s
}
+// SetKmsKeyId sets the KmsKeyId field's value.
+func (s *ImportImageOutput) SetKmsKeyId(v string) *ImportImageOutput {
+ s.KmsKeyId = &v
+ return s
+}
+
// SetLicenseType sets the LicenseType field's value.
func (s *ImportImageOutput) SetLicenseType(v string) *ImportImageOutput {
s.LicenseType = &v
@@ -48839,6 +59836,9 @@ type ImportImageTask struct {
// A description of the import task.
Description *string `locationName:"description" type:"string"`
+ // Indicates whether the image is encrypted.
+ Encrypted *bool `locationName:"encrypted" type:"boolean"`
+
// The target hypervisor for the import task.
//
// Valid values: xen
@@ -48850,6 +59850,10 @@ type ImportImageTask struct {
// The ID of the import image task.
ImportTaskId *string `locationName:"importTaskId" type:"string"`
+ // The identifier for the AWS Key Management Service (AWS KMS) customer master
+ // key (CMK) that was used to create the encrypted image.
+ KmsKeyId *string `locationName:"kmsKeyId" type:"string"`
+
// The license type of the virtual machine.
LicenseType *string `locationName:"licenseType" type:"string"`
@@ -48891,6 +59895,12 @@ func (s *ImportImageTask) SetDescription(v string) *ImportImageTask {
return s
}
+// SetEncrypted sets the Encrypted field's value.
+func (s *ImportImageTask) SetEncrypted(v bool) *ImportImageTask {
+ s.Encrypted = &v
+ return s
+}
+
// SetHypervisor sets the Hypervisor field's value.
func (s *ImportImageTask) SetHypervisor(v string) *ImportImageTask {
s.Hypervisor = &v
@@ -48909,6 +59919,12 @@ func (s *ImportImageTask) SetImportTaskId(v string) *ImportImageTask {
return s
}
+// SetKmsKeyId sets the KmsKeyId field's value.
+func (s *ImportImageTask) SetKmsKeyId(v string) *ImportImageTask {
+ s.KmsKeyId = &v
+ return s
+}
+
// SetLicenseType sets the LicenseType field's value.
func (s *ImportImageTask) SetLicenseType(v string) *ImportImageTask {
s.LicenseType = &v
@@ -49230,35 +60246,25 @@ type ImportInstanceVolumeDetailItem struct {
_ struct{} `type:"structure"`
// The Availability Zone where the resulting instance will reside.
- //
- // AvailabilityZone is a required field
- AvailabilityZone *string `locationName:"availabilityZone" type:"string" required:"true"`
+ AvailabilityZone *string `locationName:"availabilityZone" type:"string"`
// The number of bytes converted so far.
- //
- // BytesConverted is a required field
- BytesConverted *int64 `locationName:"bytesConverted" type:"long" required:"true"`
+ BytesConverted *int64 `locationName:"bytesConverted" type:"long"`
// A description of the task.
Description *string `locationName:"description" type:"string"`
// The image.
- //
- // Image is a required field
- Image *DiskImageDescription `locationName:"image" type:"structure" required:"true"`
+ Image *DiskImageDescription `locationName:"image" type:"structure"`
// The status of the import of this particular disk image.
- //
- // Status is a required field
- Status *string `locationName:"status" type:"string" required:"true"`
+ Status *string `locationName:"status" type:"string"`
// The status information or errors related to the disk image.
StatusMessage *string `locationName:"statusMessage" type:"string"`
// The volume.
- //
- // Volume is a required field
- Volume *DiskImageVolumeDescription `locationName:"volume" type:"structure" required:"true"`
+ Volume *DiskImageVolumeDescription `locationName:"volume" type:"structure"`
}
// String returns the string representation
@@ -49313,7 +60319,6 @@ func (s *ImportInstanceVolumeDetailItem) SetVolume(v *DiskImageVolumeDescription
return s
}
-// Contains the parameters for ImportKeyPair.
type ImportKeyPairInput struct {
_ struct{} `type:"structure"`
@@ -49381,7 +60386,6 @@ func (s *ImportKeyPairInput) SetPublicKeyMaterial(v []byte) *ImportKeyPairInput
return s
}
-// Contains the output of ImportKeyPair.
type ImportKeyPairOutput struct {
_ struct{} `type:"structure"`
@@ -49436,6 +60440,42 @@ type ImportSnapshotInput struct {
// it is UnauthorizedOperation.
DryRun *bool `type:"boolean"`
+ // Specifies whether the destination snapshot of the imported image should be
+ // encrypted. The default CMK for EBS is used unless you specify a non-default
+ // AWS Key Management Service (AWS KMS) CMK using KmsKeyId. For more information,
+ // see Amazon EBS Encryption (http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSEncryption.html)
+ // in the Amazon Elastic Compute Cloud User Guide.
+ Encrypted *bool `type:"boolean"`
+
+ // An identifier for the AWS Key Management Service (AWS KMS) customer master
+ // key (CMK) to use when creating the encrypted snapshot. This parameter is
+ // only required if you want to use a non-default CMK; if this parameter is
+ // not specified, the default CMK for EBS is used. If a KmsKeyId is specified,
+ // the Encrypted flag must also be set.
+ //
+ // The CMK identifier may be provided in any of the following formats:
+ //
+ // * Key ID
+ //
+ // * Key alias, in the form alias/ExampleAlias
+ //
+ // * ARN using key ID. The ID ARN contains the arn:aws:kms namespace, followed
+ // by the region of the CMK, the AWS account ID of the CMK owner, the key
+ // namespace, and then the CMK ID. For example, arn:aws:kms:us-east-1:012345678910:key/abcd1234-a123-456a-a12b-a123b4cd56ef.
+ //
+ // * ARN using key alias. The alias ARN contains the arn:aws:kms namespace,
+ // followed by the region of the CMK, the AWS account ID of the CMK owner,
+ // the alias namespace, and then the CMK alias. For example, arn:aws:kms:us-east-1:012345678910:alias/ExampleAlias.
+ //
+ //
+ // AWS parses KmsKeyId asynchronously, meaning that the action you call may
+ // appear to complete even though you provided an invalid identifier. This action
+ // will eventually report failure.
+ //
+ // The specified CMK must exist in the region that the snapshot is being copied
+ // to.
+ KmsKeyId *string `type:"string"`
+
// The name of the role to use when not using the default role, 'vmimport'.
RoleName *string `type:"string"`
}
@@ -49480,6 +60520,18 @@ func (s *ImportSnapshotInput) SetDryRun(v bool) *ImportSnapshotInput {
return s
}
+// SetEncrypted sets the Encrypted field's value.
+func (s *ImportSnapshotInput) SetEncrypted(v bool) *ImportSnapshotInput {
+ s.Encrypted = &v
+ return s
+}
+
+// SetKmsKeyId sets the KmsKeyId field's value.
+func (s *ImportSnapshotInput) SetKmsKeyId(v string) *ImportSnapshotInput {
+ s.KmsKeyId = &v
+ return s
+}
+
// SetRoleName sets the RoleName field's value.
func (s *ImportSnapshotInput) SetRoleName(v string) *ImportSnapshotInput {
s.RoleName = &v
@@ -49766,6 +60818,12 @@ type Instance struct {
// Any block device mapping entries for the instance.
BlockDeviceMappings []*InstanceBlockDeviceMapping `locationName:"blockDeviceMapping" locationNameList:"item" type:"list"`
+ // The ID of the Capacity Reservation.
+ CapacityReservationId *string `locationName:"capacityReservationId" type:"string"`
+
+ // Information about the Capacity Reservation targeting option.
+ CapacityReservationSpecification *CapacityReservationSpecificationResponse `locationName:"capacityReservationSpecification" type:"structure"`
+
// The idempotency token you provided when you launched the instance, if applicable.
ClientToken *string `locationName:"clientToken" type:"string"`
@@ -49782,9 +60840,15 @@ type Instance struct {
// The Elastic GPU associated with the instance.
ElasticGpuAssociations []*ElasticGpuAssociation `locationName:"elasticGpuAssociationSet" locationNameList:"item" type:"list"`
+ // The elastic inference accelerator associated with the instance.
+ ElasticInferenceAcceleratorAssociations []*ElasticInferenceAcceleratorAssociation `locationName:"elasticInferenceAcceleratorAssociationSet" locationNameList:"item" type:"list"`
+
// Specifies whether enhanced networking with ENA is enabled.
EnaSupport *bool `locationName:"enaSupport" type:"boolean"`
+ // Indicates whether the instance is enabled for hibernation.
+ HibernationOptions *HibernationOptions `locationName:"hibernationOptions" type:"structure"`
+
// The hypervisor type of the instance.
Hypervisor *string `locationName:"hypervisor" type:"string" enum:"HypervisorType"`
@@ -49811,7 +60875,10 @@ type Instance struct {
KeyName *string `locationName:"keyName" type:"string"`
// The time the instance was launched.
- LaunchTime *time.Time `locationName:"launchTime" type:"timestamp" timestampFormat:"iso8601"`
+ LaunchTime *time.Time `locationName:"launchTime" type:"timestamp"`
+
+ // The license configurations.
+ Licenses []*LicenseConfiguration `locationName:"licenseSet" locationNameList:"item" type:"list"`
// The monitoring for the instance.
Monitoring *Monitoring `locationName:"monitoring" type:"structure"`
@@ -49927,6 +60994,18 @@ func (s *Instance) SetBlockDeviceMappings(v []*InstanceBlockDeviceMapping) *Inst
return s
}
+// SetCapacityReservationId sets the CapacityReservationId field's value.
+func (s *Instance) SetCapacityReservationId(v string) *Instance {
+ s.CapacityReservationId = &v
+ return s
+}
+
+// SetCapacityReservationSpecification sets the CapacityReservationSpecification field's value.
+func (s *Instance) SetCapacityReservationSpecification(v *CapacityReservationSpecificationResponse) *Instance {
+ s.CapacityReservationSpecification = v
+ return s
+}
+
// SetClientToken sets the ClientToken field's value.
func (s *Instance) SetClientToken(v string) *Instance {
s.ClientToken = &v
@@ -49951,12 +61030,24 @@ func (s *Instance) SetElasticGpuAssociations(v []*ElasticGpuAssociation) *Instan
return s
}
+// SetElasticInferenceAcceleratorAssociations sets the ElasticInferenceAcceleratorAssociations field's value.
+func (s *Instance) SetElasticInferenceAcceleratorAssociations(v []*ElasticInferenceAcceleratorAssociation) *Instance {
+ s.ElasticInferenceAcceleratorAssociations = v
+ return s
+}
+
// SetEnaSupport sets the EnaSupport field's value.
func (s *Instance) SetEnaSupport(v bool) *Instance {
s.EnaSupport = &v
return s
}
+// SetHibernationOptions sets the HibernationOptions field's value.
+func (s *Instance) SetHibernationOptions(v *HibernationOptions) *Instance {
+ s.HibernationOptions = v
+ return s
+}
+
// SetHypervisor sets the Hypervisor field's value.
func (s *Instance) SetHypervisor(v string) *Instance {
s.Hypervisor = &v
@@ -50011,6 +61102,12 @@ func (s *Instance) SetLaunchTime(v time.Time) *Instance {
return s
}
+// SetLicenses sets the Licenses field's value.
+func (s *Instance) SetLicenses(v []*LicenseConfiguration) *Instance {
+ s.Licenses = v
+ return s
+}
+
// SetMonitoring sets the Monitoring field's value.
func (s *Instance) SetMonitoring(v *Monitoring) *Instance {
s.Monitoring = v
@@ -50310,7 +61407,7 @@ func (s *InstanceCount) SetState(v string) *InstanceCount {
return s
}
-// Describes the credit option for CPU usage of a T2 instance.
+// Describes the credit option for CPU usage of a T2 or T3 instance.
type InstanceCreditSpecification struct {
_ struct{} `type:"structure"`
@@ -50344,7 +61441,7 @@ func (s *InstanceCreditSpecification) SetInstanceId(v string) *InstanceCreditSpe
return s
}
-// Describes the credit option for CPU usage of a T2 instance.
+// Describes the credit option for CPU usage of a T2 or T3 instance.
type InstanceCreditSpecificationRequest struct {
_ struct{} `type:"structure"`
@@ -50723,7 +61820,7 @@ type InstanceNetworkInterfaceAttachment struct {
_ struct{} `type:"structure"`
// The time stamp when the attachment initiated.
- AttachTime *time.Time `locationName:"attachTime" type:"timestamp" timestampFormat:"iso8601"`
+ AttachTime *time.Time `locationName:"attachTime" type:"timestamp"`
// The ID of the network interface attachment.
AttachmentId *string `locationName:"attachmentId" type:"string"`
@@ -50855,26 +61952,6 @@ func (s InstanceNetworkInterfaceSpecification) GoString() string {
return s.String()
}
-// Validate inspects the fields of the type to determine if they are valid.
-func (s *InstanceNetworkInterfaceSpecification) Validate() error {
- invalidParams := request.ErrInvalidParams{Context: "InstanceNetworkInterfaceSpecification"}
- if s.PrivateIpAddresses != nil {
- for i, v := range s.PrivateIpAddresses {
- if v == nil {
- continue
- }
- if err := v.Validate(); err != nil {
- invalidParams.AddNested(fmt.Sprintf("%s[%v]", "PrivateIpAddresses", i), err.(request.ErrInvalidParams))
- }
- }
- }
-
- if invalidParams.Len() > 0 {
- return invalidParams
- }
- return nil
-}
-
// SetAssociatePublicIpAddress sets the AssociatePublicIpAddress field's value.
func (s *InstanceNetworkInterfaceSpecification) SetAssociatePublicIpAddress(v bool) *InstanceNetworkInterfaceSpecification {
s.AssociatePublicIpAddress = &v
@@ -51003,7 +62080,7 @@ func (s *InstancePrivateIpAddress) SetPrivateIpAddress(v string) *InstancePrivat
type InstanceState struct {
_ struct{} `type:"structure"`
- // The low byte represents the state. The high byte is an opaque internal value
+ // The low byte represents the state. The high byte is used for internal purposes
// and should be ignored.
//
// * 0 : pending
@@ -51166,7 +62243,7 @@ type InstanceStatusDetails struct {
// The time when a status check failed. For an instance that was launched and
// impaired, this is the time when the instance was launched.
- ImpairedSince *time.Time `locationName:"impairedSince" type:"timestamp" timestampFormat:"iso8601"`
+ ImpairedSince *time.Time `locationName:"impairedSince" type:"timestamp"`
// The type of instance status.
Name *string `locationName:"name" type:"string" enum:"StatusName"`
@@ -51218,10 +62295,10 @@ type InstanceStatusEvent struct {
Description *string `locationName:"description" type:"string"`
// The latest scheduled end time for the event.
- NotAfter *time.Time `locationName:"notAfter" type:"timestamp" timestampFormat:"iso8601"`
+ NotAfter *time.Time `locationName:"notAfter" type:"timestamp"`
// The earliest scheduled start time for the event.
- NotBefore *time.Time `locationName:"notBefore" type:"timestamp" timestampFormat:"iso8601"`
+ NotBefore *time.Time `locationName:"notBefore" type:"timestamp"`
}
// String returns the string representation
@@ -51291,17 +62368,20 @@ func (s *InstanceStatusSummary) SetStatus(v string) *InstanceStatusSummary {
return s
}
-// Describes an Internet gateway.
+// Describes an internet gateway.
type InternetGateway struct {
_ struct{} `type:"structure"`
- // Any VPCs attached to the Internet gateway.
+ // Any VPCs attached to the internet gateway.
Attachments []*InternetGatewayAttachment `locationName:"attachmentSet" locationNameList:"item" type:"list"`
- // The ID of the Internet gateway.
+ // The ID of the internet gateway.
InternetGatewayId *string `locationName:"internetGatewayId" type:"string"`
- // Any tags assigned to the Internet gateway.
+ // The ID of the AWS account that owns the internet gateway.
+ OwnerId *string `locationName:"ownerId" type:"string"`
+
+ // Any tags assigned to the internet gateway.
Tags []*Tag `locationName:"tagSet" locationNameList:"item" type:"list"`
}
@@ -51327,18 +62407,24 @@ func (s *InternetGateway) SetInternetGatewayId(v string) *InternetGateway {
return s
}
+// SetOwnerId sets the OwnerId field's value.
+func (s *InternetGateway) SetOwnerId(v string) *InternetGateway {
+ s.OwnerId = &v
+ return s
+}
+
// SetTags sets the Tags field's value.
func (s *InternetGateway) SetTags(v []*Tag) *InternetGateway {
s.Tags = v
return s
}
-// Describes the attachment of a VPC to an Internet gateway or an egress-only
-// Internet gateway.
+// Describes the attachment of a VPC to an internet gateway or an egress-only
+// internet gateway.
type InternetGatewayAttachment struct {
_ struct{} `type:"structure"`
- // The current state of the attachment. For an Internet gateway, the state is
+ // The current state of the attachment. For an internet gateway, the state is
// available when attached to a VPC; otherwise, this value is not returned.
State *string `locationName:"state" type:"string" enum:"AttachmentStatus"`
@@ -51393,11 +62479,9 @@ type IpPermission struct {
// [EC2-VPC only] One or more IPv6 ranges.
Ipv6Ranges []*Ipv6Range `locationName:"ipv6Ranges" locationNameList:"item" type:"list"`
- // (EC2-VPC only; valid for AuthorizeSecurityGroupEgress, RevokeSecurityGroupEgress
- // and DescribeSecurityGroups only) One or more prefix list IDs for an AWS service.
- // In an AuthorizeSecurityGroupEgress request, this is the AWS service that
- // you want to access through a VPC endpoint from instances associated with
- // the security group.
+ // [EC2-VPC only] One or more prefix list IDs for an AWS service. With AuthorizeSecurityGroupEgress,
+ // this is the AWS service that you want to access through a VPC endpoint from
+ // instances associated with the security group.
PrefixListIds []*PrefixListId `locationName:"prefixListIds" locationNameList:"item" type:"list"`
// The end of port range for the TCP and UDP protocols, or an ICMP/ICMPv6 code.
@@ -51828,7 +62912,7 @@ type LaunchTemplate struct {
_ struct{} `type:"structure"`
// The time launch template was created.
- CreateTime *time.Time `locationName:"createTime" type:"timestamp" timestampFormat:"iso8601"`
+ CreateTime *time.Time `locationName:"createTime" type:"timestamp"`
// The principal that created the launch template.
CreatedBy *string `locationName:"createdBy" type:"string"`
@@ -51901,6 +62985,40 @@ func (s *LaunchTemplate) SetTags(v []*Tag) *LaunchTemplate {
return s
}
+// Describes a launch template and overrides.
+type LaunchTemplateAndOverridesResponse struct {
+ _ struct{} `type:"structure"`
+
+ // The launch template.
+ LaunchTemplateSpecification *FleetLaunchTemplateSpecification `locationName:"launchTemplateSpecification" type:"structure"`
+
+ // Any parameters that you specify override the same parameters in the launch
+ // template.
+ Overrides *FleetLaunchTemplateOverrides `locationName:"overrides" type:"structure"`
+}
+
+// String returns the string representation
+func (s LaunchTemplateAndOverridesResponse) String() string {
+ return awsutil.Prettify(s)
+}
+
+// GoString returns the string representation
+func (s LaunchTemplateAndOverridesResponse) GoString() string {
+ return s.String()
+}
+
+// SetLaunchTemplateSpecification sets the LaunchTemplateSpecification field's value.
+func (s *LaunchTemplateAndOverridesResponse) SetLaunchTemplateSpecification(v *FleetLaunchTemplateSpecification) *LaunchTemplateAndOverridesResponse {
+ s.LaunchTemplateSpecification = v
+ return s
+}
+
+// SetOverrides sets the Overrides field's value.
+func (s *LaunchTemplateAndOverridesResponse) SetOverrides(v *FleetLaunchTemplateOverrides) *LaunchTemplateAndOverridesResponse {
+ s.Overrides = v
+ return s
+}
+
// Describes a block device mapping.
type LaunchTemplateBlockDeviceMapping struct {
_ struct{} `type:"structure"`
@@ -52010,6 +63128,91 @@ func (s *LaunchTemplateBlockDeviceMappingRequest) SetVirtualName(v string) *Laun
return s
}
+// Describes an instance's Capacity Reservation targeting option. You can specify
+// only one option at a time. Use the CapacityReservationPreference parameter
+// to configure the instance to run in On-Demand capacity or to run in any open
+// Capacity Reservation that has matching attributes (instance type, platform,
+// Availability Zone). Use the CapacityReservationTarget parameter to explicitly
+// target a specific Capacity Reservation.
+type LaunchTemplateCapacityReservationSpecificationRequest struct {
+ _ struct{} `type:"structure"`
+
+ // Indicates the instance's Capacity Reservation preferences. Possible preferences
+ // include:
+ //
+ // * open - The instance can run in any open Capacity Reservation that has
+ // matching attributes (instance type, platform, Availability Zone).
+ //
+ // * none - The instance avoids running in a Capacity Reservation even if
+ // one is available. The instance runs in On-Demand capacity.
+ CapacityReservationPreference *string `type:"string" enum:"CapacityReservationPreference"`
+
+ // Information about the target Capacity Reservation.
+ CapacityReservationTarget *CapacityReservationTarget `type:"structure"`
+}
+
+// String returns the string representation
+func (s LaunchTemplateCapacityReservationSpecificationRequest) String() string {
+ return awsutil.Prettify(s)
+}
+
+// GoString returns the string representation
+func (s LaunchTemplateCapacityReservationSpecificationRequest) GoString() string {
+ return s.String()
+}
+
+// SetCapacityReservationPreference sets the CapacityReservationPreference field's value.
+func (s *LaunchTemplateCapacityReservationSpecificationRequest) SetCapacityReservationPreference(v string) *LaunchTemplateCapacityReservationSpecificationRequest {
+ s.CapacityReservationPreference = &v
+ return s
+}
+
+// SetCapacityReservationTarget sets the CapacityReservationTarget field's value.
+func (s *LaunchTemplateCapacityReservationSpecificationRequest) SetCapacityReservationTarget(v *CapacityReservationTarget) *LaunchTemplateCapacityReservationSpecificationRequest {
+ s.CapacityReservationTarget = v
+ return s
+}
+
+// Information about the Capacity Reservation targeting option.
+type LaunchTemplateCapacityReservationSpecificationResponse struct {
+ _ struct{} `type:"structure"`
+
+ // Indicates the instance's Capacity Reservation preferences. Possible preferences
+ // include:
+ //
+ // * open - The instance can run in any open Capacity Reservation that has
+ // matching attributes (instance type, platform, Availability Zone).
+ //
+ // * none - The instance avoids running in a Capacity Reservation even if
+ // one is available. The instance runs in On-Demand capacity.
+ CapacityReservationPreference *string `locationName:"capacityReservationPreference" type:"string" enum:"CapacityReservationPreference"`
+
+ // Information about the target Capacity Reservation.
+ CapacityReservationTarget *CapacityReservationTargetResponse `locationName:"capacityReservationTarget" type:"structure"`
+}
+
+// String returns the string representation
+func (s LaunchTemplateCapacityReservationSpecificationResponse) String() string {
+ return awsutil.Prettify(s)
+}
+
+// GoString returns the string representation
+func (s LaunchTemplateCapacityReservationSpecificationResponse) GoString() string {
+ return s.String()
+}
+
+// SetCapacityReservationPreference sets the CapacityReservationPreference field's value.
+func (s *LaunchTemplateCapacityReservationSpecificationResponse) SetCapacityReservationPreference(v string) *LaunchTemplateCapacityReservationSpecificationResponse {
+ s.CapacityReservationPreference = &v
+ return s
+}
+
+// SetCapacityReservationTarget sets the CapacityReservationTarget field's value.
+func (s *LaunchTemplateCapacityReservationSpecificationResponse) SetCapacityReservationTarget(v *CapacityReservationTargetResponse) *LaunchTemplateCapacityReservationSpecificationResponse {
+ s.CapacityReservationTarget = v
+ return s
+}
+
// Describes a launch template and overrides.
type LaunchTemplateConfig struct {
_ struct{} `type:"structure"`
@@ -52059,6 +63262,75 @@ func (s *LaunchTemplateConfig) SetOverrides(v []*LaunchTemplateOverrides) *Launc
return s
}
+// The CPU options for the instance.
+type LaunchTemplateCpuOptions struct {
+ _ struct{} `type:"structure"`
+
+ // The number of CPU cores for the instance.
+ CoreCount *int64 `locationName:"coreCount" type:"integer"`
+
+ // The number of threads per CPU core.
+ ThreadsPerCore *int64 `locationName:"threadsPerCore" type:"integer"`
+}
+
+// String returns the string representation
+func (s LaunchTemplateCpuOptions) String() string {
+ return awsutil.Prettify(s)
+}
+
+// GoString returns the string representation
+func (s LaunchTemplateCpuOptions) GoString() string {
+ return s.String()
+}
+
+// SetCoreCount sets the CoreCount field's value.
+func (s *LaunchTemplateCpuOptions) SetCoreCount(v int64) *LaunchTemplateCpuOptions {
+ s.CoreCount = &v
+ return s
+}
+
+// SetThreadsPerCore sets the ThreadsPerCore field's value.
+func (s *LaunchTemplateCpuOptions) SetThreadsPerCore(v int64) *LaunchTemplateCpuOptions {
+ s.ThreadsPerCore = &v
+ return s
+}
+
+// The CPU options for the instance. Both the core count and threads per core
+// must be specified in the request.
+type LaunchTemplateCpuOptionsRequest struct {
+ _ struct{} `type:"structure"`
+
+ // The number of CPU cores for the instance.
+ CoreCount *int64 `type:"integer"`
+
+ // The number of threads per CPU core. To disable Intel Hyper-Threading Technology
+ // for the instance, specify a value of 1. Otherwise, specify the default value
+ // of 2.
+ ThreadsPerCore *int64 `type:"integer"`
+}
+
+// String returns the string representation
+func (s LaunchTemplateCpuOptionsRequest) String() string {
+ return awsutil.Prettify(s)
+}
+
+// GoString returns the string representation
+func (s LaunchTemplateCpuOptionsRequest) GoString() string {
+ return s.String()
+}
+
+// SetCoreCount sets the CoreCount field's value.
+func (s *LaunchTemplateCpuOptionsRequest) SetCoreCount(v int64) *LaunchTemplateCpuOptionsRequest {
+ s.CoreCount = &v
+ return s
+}
+
+// SetThreadsPerCore sets the ThreadsPerCore field's value.
+func (s *LaunchTemplateCpuOptionsRequest) SetThreadsPerCore(v int64) *LaunchTemplateCpuOptionsRequest {
+ s.ThreadsPerCore = &v
+ return s
+}
+
// Describes a block device for an EBS volume.
type LaunchTemplateEbsBlockDevice struct {
_ struct{} `type:"structure"`
@@ -52229,6 +63501,124 @@ func (s *LaunchTemplateEbsBlockDeviceRequest) SetVolumeType(v string) *LaunchTem
return s
}
+// Describes an elastic inference accelerator.
+type LaunchTemplateElasticInferenceAccelerator struct {
+ _ struct{} `type:"structure"`
+
+ // The type of elastic inference accelerator. The possible values are eia1.medium,
+ // eia1.large, and eia1.xlarge.
+ //
+ // Type is a required field
+ Type *string `type:"string" required:"true"`
+}
+
+// String returns the string representation
+func (s LaunchTemplateElasticInferenceAccelerator) String() string {
+ return awsutil.Prettify(s)
+}
+
+// GoString returns the string representation
+func (s LaunchTemplateElasticInferenceAccelerator) GoString() string {
+ return s.String()
+}
+
+// Validate inspects the fields of the type to determine if they are valid.
+func (s *LaunchTemplateElasticInferenceAccelerator) Validate() error {
+ invalidParams := request.ErrInvalidParams{Context: "LaunchTemplateElasticInferenceAccelerator"}
+ if s.Type == nil {
+ invalidParams.Add(request.NewErrParamRequired("Type"))
+ }
+
+ if invalidParams.Len() > 0 {
+ return invalidParams
+ }
+ return nil
+}
+
+// SetType sets the Type field's value.
+func (s *LaunchTemplateElasticInferenceAccelerator) SetType(v string) *LaunchTemplateElasticInferenceAccelerator {
+ s.Type = &v
+ return s
+}
+
+// Describes an elastic inference accelerator.
+type LaunchTemplateElasticInferenceAcceleratorResponse struct {
+ _ struct{} `type:"structure"`
+
+ // The type of elastic inference accelerator. The possible values are eia1.medium,
+ // eia1.large, and eia1.xlarge.
+ Type *string `locationName:"type" type:"string"`
+}
+
+// String returns the string representation
+func (s LaunchTemplateElasticInferenceAcceleratorResponse) String() string {
+ return awsutil.Prettify(s)
+}
+
+// GoString returns the string representation
+func (s LaunchTemplateElasticInferenceAcceleratorResponse) GoString() string {
+ return s.String()
+}
+
+// SetType sets the Type field's value.
+func (s *LaunchTemplateElasticInferenceAcceleratorResponse) SetType(v string) *LaunchTemplateElasticInferenceAcceleratorResponse {
+ s.Type = &v
+ return s
+}
+
+// Indicates whether an instance is configured for hibernation.
+type LaunchTemplateHibernationOptions struct {
+ _ struct{} `type:"structure"`
+
+ // If this parameter is set to true, the instance is enabled for hibernation;
+ // otherwise, it is not enabled for hibernation.
+ Configured *bool `locationName:"configured" type:"boolean"`
+}
+
+// String returns the string representation
+func (s LaunchTemplateHibernationOptions) String() string {
+ return awsutil.Prettify(s)
+}
+
+// GoString returns the string representation
+func (s LaunchTemplateHibernationOptions) GoString() string {
+ return s.String()
+}
+
+// SetConfigured sets the Configured field's value.
+func (s *LaunchTemplateHibernationOptions) SetConfigured(v bool) *LaunchTemplateHibernationOptions {
+ s.Configured = &v
+ return s
+}
+
+// Indicates whether the instance is configured for hibernation. This parameter
+// is valid only if the instance meets the hibernation prerequisites (http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Hibernate.html#hibernating-prerequisites).
+// Hibernation is currently supported only for Amazon Linux.
+type LaunchTemplateHibernationOptionsRequest struct {
+ _ struct{} `type:"structure"`
+
+ // If you set this parameter to true, the instance is enabled for hibernation.
+ //
+ // Default: false
+ Configured *bool `type:"boolean"`
+}
+
+// String returns the string representation
+func (s LaunchTemplateHibernationOptionsRequest) String() string {
+ return awsutil.Prettify(s)
+}
+
+// GoString returns the string representation
+func (s LaunchTemplateHibernationOptionsRequest) GoString() string {
+ return s.String()
+}
+
+// SetConfigured sets the Configured field's value.
+func (s *LaunchTemplateHibernationOptionsRequest) SetConfigured(v bool) *LaunchTemplateHibernationOptionsRequest {
+ s.Configured = &v
+ return s
+}
+
// Describes an IAM instance profile.
type LaunchTemplateIamInstanceProfileSpecification struct {
_ struct{} `type:"structure"`
@@ -52539,26 +63929,6 @@ func (s LaunchTemplateInstanceNetworkInterfaceSpecificationRequest) GoString() s
return s.String()
}
-// Validate inspects the fields of the type to determine if they are valid.
-func (s *LaunchTemplateInstanceNetworkInterfaceSpecificationRequest) Validate() error {
- invalidParams := request.ErrInvalidParams{Context: "LaunchTemplateInstanceNetworkInterfaceSpecificationRequest"}
- if s.PrivateIpAddresses != nil {
- for i, v := range s.PrivateIpAddresses {
- if v == nil {
- continue
- }
- if err := v.Validate(); err != nil {
- invalidParams.AddNested(fmt.Sprintf("%s[%v]", "PrivateIpAddresses", i), err.(request.ErrInvalidParams))
- }
- }
- }
-
- if invalidParams.Len() > 0 {
- return invalidParams
- }
- return nil
-}
-
// SetAssociatePublicIpAddress sets the AssociatePublicIpAddress field's value.
func (s *LaunchTemplateInstanceNetworkInterfaceSpecificationRequest) SetAssociatePublicIpAddress(v bool) *LaunchTemplateInstanceNetworkInterfaceSpecificationRequest {
s.AssociatePublicIpAddress = &v
@@ -52631,6 +64001,54 @@ func (s *LaunchTemplateInstanceNetworkInterfaceSpecificationRequest) SetSubnetId
return s
}
+// Describes a license configuration.
+type LaunchTemplateLicenseConfiguration struct {
+ _ struct{} `type:"structure"`
+
+ // The Amazon Resource Name (ARN) of the license configuration.
+ LicenseConfigurationArn *string `locationName:"licenseConfigurationArn" type:"string"`
+}
+
+// String returns the string representation
+func (s LaunchTemplateLicenseConfiguration) String() string {
+ return awsutil.Prettify(s)
+}
+
+// GoString returns the string representation
+func (s LaunchTemplateLicenseConfiguration) GoString() string {
+ return s.String()
+}
+
+// SetLicenseConfigurationArn sets the LicenseConfigurationArn field's value.
+func (s *LaunchTemplateLicenseConfiguration) SetLicenseConfigurationArn(v string) *LaunchTemplateLicenseConfiguration {
+ s.LicenseConfigurationArn = &v
+ return s
+}
+
+// Describes a license configuration.
+type LaunchTemplateLicenseConfigurationRequest struct {
+ _ struct{} `type:"structure"`
+
+ // The Amazon Resource Name (ARN) of the license configuration.
+ LicenseConfigurationArn *string `type:"string"`
+}
+
+// String returns the string representation
+func (s LaunchTemplateLicenseConfigurationRequest) String() string {
+ return awsutil.Prettify(s)
+}
+
+// GoString returns the string representation
+func (s LaunchTemplateLicenseConfigurationRequest) GoString() string {
+ return s.String()
+}
+
+// SetLicenseConfigurationArn sets the LicenseConfigurationArn field's value.
+func (s *LaunchTemplateLicenseConfigurationRequest) SetLicenseConfigurationArn(v string) *LaunchTemplateLicenseConfigurationRequest {
+ s.LicenseConfigurationArn = &v
+ return s
+}
+
// Describes overrides for a launch template.
type LaunchTemplateOverrides struct {
_ struct{} `type:"structure"`
@@ -52641,6 +64059,14 @@ type LaunchTemplateOverrides struct {
// The instance type.
InstanceType *string `locationName:"instanceType" type:"string" enum:"InstanceType"`
+ // The priority for the launch template override. If OnDemandAllocationStrategy
+ // is set to prioritized, Spot Fleet uses priority to determine which launch
+ // template override to use first in fulfilling On-Demand capacity. The highest
+ // priority is launched first. Valid values are whole numbers starting at 0.
+ // The lower the number, the higher the priority. If no number is set, the launch
+ // template override has the lowest priority.
+ Priority *float64 `locationName:"priority" type:"double"`
+
// The maximum price per unit hour that you are willing to pay for a Spot Instance.
SpotPrice *string `locationName:"spotPrice" type:"string"`
@@ -52673,6 +64099,12 @@ func (s *LaunchTemplateOverrides) SetInstanceType(v string) *LaunchTemplateOverr
return s
}
+// SetPriority sets the Priority field's value.
+func (s *LaunchTemplateOverrides) SetPriority(v float64) *LaunchTemplateOverrides {
+ s.Priority = &v
+ return s
+}
+
// SetSpotPrice sets the SpotPrice field's value.
func (s *LaunchTemplateOverrides) SetSpotPrice(v string) *LaunchTemplateOverrides {
s.SpotPrice = &v
@@ -52761,7 +64193,7 @@ func (s *LaunchTemplatePlacement) SetTenancy(v string) *LaunchTemplatePlacement
return s
}
-// The placement for the instance.
+// Describes the placement of an instance.
type LaunchTemplatePlacementRequest struct {
_ struct{} `type:"structure"`
@@ -52898,7 +64330,7 @@ type LaunchTemplateSpotMarketOptions struct {
// active until all instances launch, the request is canceled, or this date
// is reached. If the request is persistent, it remains active until it is canceled
// or this date and time is reached.
- ValidUntil *time.Time `locationName:"validUntil" type:"timestamp" timestampFormat:"iso8601"`
+ ValidUntil *time.Time `locationName:"validUntil" type:"timestamp"`
}
// String returns the string representation
@@ -52964,7 +64396,7 @@ type LaunchTemplateSpotMarketOptionsRequest struct {
// is reached. If the request is persistent, it remains active until it is canceled
// or this date and time is reached. The default end date is 7 days from the
// current date.
- ValidUntil *time.Time `type:"timestamp" timestampFormat:"iso8601"`
+ ValidUntil *time.Time `type:"timestamp"`
}
// String returns the string representation
@@ -53045,7 +64477,8 @@ type LaunchTemplateTagSpecificationRequest struct {
_ struct{} `type:"structure"`
// The type of resource to tag. Currently, the resource types that support tagging
- // on creation are instance and volume.
+ // on creation are instance and volume. To tag a resource after it has been
+ // created, see CreateTags.
ResourceType *string `type:"string" enum:"ResourceType"`
// The tags to apply to the resource.
@@ -53079,7 +64512,7 @@ type LaunchTemplateVersion struct {
_ struct{} `type:"structure"`
// The time the version was created.
- CreateTime *time.Time `locationName:"createTime" type:"timestamp" timestampFormat:"iso8601"`
+ CreateTime *time.Time `locationName:"createTime" type:"timestamp"`
// The principal that created the version.
CreatedBy *string `locationName:"createdBy" type:"string"`
@@ -53211,6 +64644,54 @@ func (s *LaunchTemplatesMonitoringRequest) SetEnabled(v bool) *LaunchTemplatesMo
return s
}
+// Describes a license configuration.
+type LicenseConfiguration struct {
+ _ struct{} `type:"structure"`
+
+ // The Amazon Resource Name (ARN) of the license configuration.
+ LicenseConfigurationArn *string `locationName:"licenseConfigurationArn" type:"string"`
+}
+
+// String returns the string representation
+func (s LicenseConfiguration) String() string {
+ return awsutil.Prettify(s)
+}
+
+// GoString returns the string representation
+func (s LicenseConfiguration) GoString() string {
+ return s.String()
+}
+
+// SetLicenseConfigurationArn sets the LicenseConfigurationArn field's value.
+func (s *LicenseConfiguration) SetLicenseConfigurationArn(v string) *LicenseConfiguration {
+ s.LicenseConfigurationArn = &v
+ return s
+}
+
+// Describes a license configuration.
+type LicenseConfigurationRequest struct {
+ _ struct{} `type:"structure"`
+
+ // The Amazon Resource Name (ARN) of the license configuration.
+ LicenseConfigurationArn *string `type:"string"`
+}
+
+// String returns the string representation
+func (s LicenseConfigurationRequest) String() string {
+ return awsutil.Prettify(s)
+}
+
+// GoString returns the string representation
+func (s LicenseConfigurationRequest) GoString() string {
+ return s.String()
+}
+
+// SetLicenseConfigurationArn sets the LicenseConfigurationArn field's value.
+func (s *LicenseConfigurationRequest) SetLicenseConfigurationArn(v string) *LicenseConfigurationRequest {
+ s.LicenseConfigurationArn = &v
+ return s
+}
+
// Describes the Classic Load Balancers and target groups to attach to a Spot
// Fleet request.
type LoadBalancersConfig struct {
@@ -53364,6 +64845,245 @@ func (s *LoadPermissionRequest) SetUserId(v string) *LoadPermissionRequest {
return s
}
+type ModifyCapacityReservationInput struct {
+ _ struct{} `type:"structure"`
+
+ // The ID of the Capacity Reservation.
+ //
+ // CapacityReservationId is a required field
+ CapacityReservationId *string `type:"string" required:"true"`
+
+ // Checks whether you have the required permissions for the action, without
+ // actually making the request, and provides an error response. If you have
+ // the required permissions, the error response is DryRunOperation. Otherwise,
+ // it is UnauthorizedOperation.
+ DryRun *bool `type:"boolean"`
+
+ // The date and time at which the Capacity Reservation expires. When a Capacity
+ // Reservation expires, the reserved capacity is released and you can no longer
+ // launch instances into it. The Capacity Reservation's state changes to expired
+ // when it reaches its end date and time.
+ //
+ // The Capacity Reservation is cancelled within an hour from the specified time.
+ // For example, if you specify 5/31/2019, 13:30:55, the Capacity Reservation
+ // is guaranteed to end between 13:30:55 and 14:30:55 on 5/31/2019.
+ //
+ // You must provide an EndDate value if EndDateType is limited. Omit EndDate
+ // if EndDateType is unlimited.
+ EndDate *time.Time `type:"timestamp"`
+
+ // Indicates the way in which the Capacity Reservation ends. A Capacity Reservation
+ // can have one of the following end types:
+ //
+ // * unlimited - The Capacity Reservation remains active until you explicitly
+ // cancel it. Do not provide an EndDate value if EndDateType is unlimited.
+ //
+ // * limited - The Capacity Reservation expires automatically at a specified
+ // date and time. You must provide an EndDate value if EndDateType is limited.
+ EndDateType *string `type:"string" enum:"EndDateType"`
+
+ // The number of instances for which to reserve capacity.
+ InstanceCount *int64 `type:"integer"`
+}
+
+// String returns the string representation
+func (s ModifyCapacityReservationInput) String() string {
+ return awsutil.Prettify(s)
+}
+
+// GoString returns the string representation
+func (s ModifyCapacityReservationInput) GoString() string {
+ return s.String()
+}
+
+// Validate inspects the fields of the type to determine if they are valid.
+func (s *ModifyCapacityReservationInput) Validate() error {
+ invalidParams := request.ErrInvalidParams{Context: "ModifyCapacityReservationInput"}
+ if s.CapacityReservationId == nil {
+ invalidParams.Add(request.NewErrParamRequired("CapacityReservationId"))
+ }
+
+ if invalidParams.Len() > 0 {
+ return invalidParams
+ }
+ return nil
+}
+
+// SetCapacityReservationId sets the CapacityReservationId field's value.
+func (s *ModifyCapacityReservationInput) SetCapacityReservationId(v string) *ModifyCapacityReservationInput {
+ s.CapacityReservationId = &v
+ return s
+}
+
+// SetDryRun sets the DryRun field's value.
+func (s *ModifyCapacityReservationInput) SetDryRun(v bool) *ModifyCapacityReservationInput {
+ s.DryRun = &v
+ return s
+}
+
+// SetEndDate sets the EndDate field's value.
+func (s *ModifyCapacityReservationInput) SetEndDate(v time.Time) *ModifyCapacityReservationInput {
+ s.EndDate = &v
+ return s
+}
+
+// SetEndDateType sets the EndDateType field's value.
+func (s *ModifyCapacityReservationInput) SetEndDateType(v string) *ModifyCapacityReservationInput {
+ s.EndDateType = &v
+ return s
+}
+
+// SetInstanceCount sets the InstanceCount field's value.
+func (s *ModifyCapacityReservationInput) SetInstanceCount(v int64) *ModifyCapacityReservationInput {
+ s.InstanceCount = &v
+ return s
+}
+
+type ModifyCapacityReservationOutput struct {
+ _ struct{} `type:"structure"`
+
+ // Information about the Capacity Reservation.
+ Return *bool `locationName:"return" type:"boolean"`
+}
+
+// String returns the string representation
+func (s ModifyCapacityReservationOutput) String() string {
+ return awsutil.Prettify(s)
+}
+
+// GoString returns the string representation
+func (s ModifyCapacityReservationOutput) GoString() string {
+ return s.String()
+}
+
+// SetReturn sets the Return field's value.
+func (s *ModifyCapacityReservationOutput) SetReturn(v bool) *ModifyCapacityReservationOutput {
+ s.Return = &v
+ return s
+}
+
+type ModifyClientVpnEndpointInput struct {
+ _ struct{} `type:"structure"`
+
+ // The ID of the Client VPN endpoint to modify.
+ //
+ // ClientVpnEndpointId is a required field
+ ClientVpnEndpointId *string `type:"string" required:"true"`
+
+ // Information about the client connection logging options.
+ //
+ // If you enable client connection logging, data about client connections is
+ // sent to a Cloudwatch Logs log stream. The following information is logged:
+ //
+ // * Client connection requests
+ //
+ // * Client connection results (successful and unsuccessful)
+ //
+ // * Reasons for unsuccessful client connection requests
+ //
+ // * Client connection termination time
+ ConnectionLogOptions *ConnectionLogOptions `type:"structure"`
+
+ // A brief description of the Client VPN endpoint.
+ Description *string `type:"string"`
+
+ // Information about the DNS servers to be used by Client VPN connections. A
+ // Client VPN endpoint can have up to two DNS servers.
+ DnsServers *DnsServersOptionsModifyStructure `type:"structure"`
+
+ // Checks whether you have the required permissions for the action, without
+ // actually making the request, and provides an error response. If you have
+ // the required permissions, the error response is DryRunOperation. Otherwise,
+ // it is UnauthorizedOperation.
+ DryRun *bool `type:"boolean"`
+
+ // The ARN of the server certificate to be used. The server certificate must
+ // be provisioned in AWS Certificate Manager (ACM).
+ ServerCertificateArn *string `type:"string"`
+}
+
+// String returns the string representation
+func (s ModifyClientVpnEndpointInput) String() string {
+ return awsutil.Prettify(s)
+}
+
+// GoString returns the string representation
+func (s ModifyClientVpnEndpointInput) GoString() string {
+ return s.String()
+}
+
+// Validate inspects the fields of the type to determine if they are valid.
+func (s *ModifyClientVpnEndpointInput) Validate() error {
+ invalidParams := request.ErrInvalidParams{Context: "ModifyClientVpnEndpointInput"}
+ if s.ClientVpnEndpointId == nil {
+ invalidParams.Add(request.NewErrParamRequired("ClientVpnEndpointId"))
+ }
+
+ if invalidParams.Len() > 0 {
+ return invalidParams
+ }
+ return nil
+}
+
+// SetClientVpnEndpointId sets the ClientVpnEndpointId field's value.
+func (s *ModifyClientVpnEndpointInput) SetClientVpnEndpointId(v string) *ModifyClientVpnEndpointInput {
+ s.ClientVpnEndpointId = &v
+ return s
+}
+
+// SetConnectionLogOptions sets the ConnectionLogOptions field's value.
+func (s *ModifyClientVpnEndpointInput) SetConnectionLogOptions(v *ConnectionLogOptions) *ModifyClientVpnEndpointInput {
+ s.ConnectionLogOptions = v
+ return s
+}
+
+// SetDescription sets the Description field's value.
+func (s *ModifyClientVpnEndpointInput) SetDescription(v string) *ModifyClientVpnEndpointInput {
+ s.Description = &v
+ return s
+}
+
+// SetDnsServers sets the DnsServers field's value.
+func (s *ModifyClientVpnEndpointInput) SetDnsServers(v *DnsServersOptionsModifyStructure) *ModifyClientVpnEndpointInput {
+ s.DnsServers = v
+ return s
+}
+
+// SetDryRun sets the DryRun field's value.
+func (s *ModifyClientVpnEndpointInput) SetDryRun(v bool) *ModifyClientVpnEndpointInput {
+ s.DryRun = &v
+ return s
+}
+
+// SetServerCertificateArn sets the ServerCertificateArn field's value.
+func (s *ModifyClientVpnEndpointInput) SetServerCertificateArn(v string) *ModifyClientVpnEndpointInput {
+ s.ServerCertificateArn = &v
+ return s
+}
+
+type ModifyClientVpnEndpointOutput struct {
+ _ struct{} `type:"structure"`
+
+ // Returns true if the request succeeds; otherwise, it returns an error.
+ Return *bool `locationName:"return" type:"boolean"`
+}
+
+// String returns the string representation
+func (s ModifyClientVpnEndpointOutput) String() string {
+ return awsutil.Prettify(s)
+}
+
+// GoString returns the string representation
+func (s ModifyClientVpnEndpointOutput) GoString() string {
+ return s.String()
+}
+
+// SetReturn sets the Return field's value.
+func (s *ModifyClientVpnEndpointOutput) SetReturn(v bool) *ModifyClientVpnEndpointOutput {
+ s.Return = &v
+ return s
+}
+
type ModifyFleetInput struct {
_ struct{} `type:"structure"`
@@ -53616,7 +65336,6 @@ func (s *ModifyFpgaImageAttributeOutput) SetFpgaImageAttribute(v *FpgaImageAttri
return s
}
-// Contains the parameters for ModifyHosts.
type ModifyHostsInput struct {
_ struct{} `type:"structure"`
@@ -53625,7 +65344,7 @@ type ModifyHostsInput struct {
// AutoPlacement is a required field
AutoPlacement *string `locationName:"autoPlacement" type:"string" required:"true" enum:"AutoPlacement"`
- // The host IDs of the Dedicated Hosts you want to modify.
+ // The IDs of the Dedicated Hosts to modify.
//
// HostIds is a required field
HostIds []*string `locationName:"hostId" locationNameList:"item" type:"list" required:"true"`
@@ -53669,7 +65388,6 @@ func (s *ModifyHostsInput) SetHostIds(v []*string) *ModifyHostsInput {
return s
}
-// Contains the output of ModifyHosts.
type ModifyHostsOutput struct {
_ struct{} `type:"structure"`
@@ -53703,7 +65421,6 @@ func (s *ModifyHostsOutput) SetUnsuccessful(v []*UnsuccessfulItem) *ModifyHostsO
return s
}
-// Contains the parameters of ModifyIdFormat.
type ModifyIdFormatInput struct {
_ struct{} `type:"structure"`
@@ -53779,7 +65496,6 @@ func (s ModifyIdFormatOutput) GoString() string {
return s.String()
}
-// Contains the parameters of ModifyIdentityIdFormat.
type ModifyIdentityIdFormatInput struct {
_ struct{} `type:"structure"`
@@ -54014,7 +65730,6 @@ func (s ModifyImageAttributeOutput) GoString() string {
return s.String()
}
-// Contains the parameters for ModifyInstanceAttribute.
type ModifyInstanceAttributeInput struct {
_ struct{} `type:"structure"`
@@ -54244,6 +65959,93 @@ func (s ModifyInstanceAttributeOutput) GoString() string {
return s.String()
}
+type ModifyInstanceCapacityReservationAttributesInput struct {
+ _ struct{} `type:"structure"`
+
+ // Information about the Capacity Reservation targeting option.
+ //
+ // CapacityReservationSpecification is a required field
+ CapacityReservationSpecification *CapacityReservationSpecification `type:"structure" required:"true"`
+
+ // Checks whether you have the required permissions for the action, without
+ // actually making the request, and provides an error response. If you have
+ // the required permissions, the error response is DryRunOperation. Otherwise,
+ // it is UnauthorizedOperation.
+ DryRun *bool `type:"boolean"`
+
+ // The ID of the instance to be modified.
+ //
+ // InstanceId is a required field
+ InstanceId *string `type:"string" required:"true"`
+}
+
+// String returns the string representation
+func (s ModifyInstanceCapacityReservationAttributesInput) String() string {
+ return awsutil.Prettify(s)
+}
+
+// GoString returns the string representation
+func (s ModifyInstanceCapacityReservationAttributesInput) GoString() string {
+ return s.String()
+}
+
+// Validate inspects the fields of the type to determine if they are valid.
+func (s *ModifyInstanceCapacityReservationAttributesInput) Validate() error {
+ invalidParams := request.ErrInvalidParams{Context: "ModifyInstanceCapacityReservationAttributesInput"}
+ if s.CapacityReservationSpecification == nil {
+ invalidParams.Add(request.NewErrParamRequired("CapacityReservationSpecification"))
+ }
+ if s.InstanceId == nil {
+ invalidParams.Add(request.NewErrParamRequired("InstanceId"))
+ }
+
+ if invalidParams.Len() > 0 {
+ return invalidParams
+ }
+ return nil
+}
+
+// SetCapacityReservationSpecification sets the CapacityReservationSpecification field's value.
+func (s *ModifyInstanceCapacityReservationAttributesInput) SetCapacityReservationSpecification(v *CapacityReservationSpecification) *ModifyInstanceCapacityReservationAttributesInput {
+ s.CapacityReservationSpecification = v
+ return s
+}
+
+// SetDryRun sets the DryRun field's value.
+func (s *ModifyInstanceCapacityReservationAttributesInput) SetDryRun(v bool) *ModifyInstanceCapacityReservationAttributesInput {
+ s.DryRun = &v
+ return s
+}
+
+// SetInstanceId sets the InstanceId field's value.
+func (s *ModifyInstanceCapacityReservationAttributesInput) SetInstanceId(v string) *ModifyInstanceCapacityReservationAttributesInput {
+ s.InstanceId = &v
+ return s
+}
+
+type ModifyInstanceCapacityReservationAttributesOutput struct {
+ _ struct{} `type:"structure"`
+
+ // Returns true if the request succeeds; otherwise, it returns an error.
+ Return *bool `locationName:"return" type:"boolean"`
+}
+
+// String returns the string representation
+func (s ModifyInstanceCapacityReservationAttributesOutput) String() string {
+ return awsutil.Prettify(s)
+}
+
+// GoString returns the string representation
+func (s ModifyInstanceCapacityReservationAttributesOutput) GoString() string {
+ return s.String()
+}
+
+// SetReturn sets the Return field's value.
+func (s *ModifyInstanceCapacityReservationAttributesOutput) SetReturn(v bool) *ModifyInstanceCapacityReservationAttributesOutput {
+ s.Return = &v
+ return s
+}
+
type ModifyInstanceCreditSpecificationInput struct {
_ struct{} `type:"structure"`
@@ -54339,7 +66141,6 @@ func (s *ModifyInstanceCreditSpecificationOutput) SetUnsuccessfulInstanceCreditS
return s
}
-// Contains the parameters for ModifyInstancePlacement.
type ModifyInstancePlacementInput struct {
_ struct{} `type:"structure"`
@@ -54348,7 +66149,8 @@ type ModifyInstancePlacementInput struct {
// The name of the placement group in which to place the instance. For spread
// placement groups, the instance must have a tenancy of default. For cluster
- // placement groups, the instance must have a tenancy of default or dedicated.
+ // and partition placement groups, the instance must have a tenancy of default
+ // or dedicated.
//
// To remove an instance from a placement group, specify an empty string ("").
GroupName *string `type:"string"`
@@ -54361,6 +66163,9 @@ type ModifyInstancePlacementInput struct {
// InstanceId is a required field
InstanceId *string `locationName:"instanceId" type:"string" required:"true"`
+ // Reserved for future use.
+ PartitionNumber *int64 `type:"integer"`
+
// The tenancy for the instance.
Tenancy *string `locationName:"tenancy" type:"string" enum:"HostTenancy"`
}
@@ -54412,13 +66217,18 @@ func (s *ModifyInstancePlacementInput) SetInstanceId(v string) *ModifyInstancePl
return s
}
+// SetPartitionNumber sets the PartitionNumber field's value.
+func (s *ModifyInstancePlacementInput) SetPartitionNumber(v int64) *ModifyInstancePlacementInput {
+ s.PartitionNumber = &v
+ return s
+}
+
// SetTenancy sets the Tenancy field's value.
func (s *ModifyInstancePlacementInput) SetTenancy(v string) *ModifyInstancePlacementInput {
s.Tenancy = &v
return s
}
-// Contains the output of ModifyInstancePlacement.
type ModifyInstancePlacementOutput struct {
_ struct{} `type:"structure"`
@@ -54743,9 +66553,8 @@ func (s *ModifyReservedInstancesOutput) SetReservedInstancesModificationId(v str
type ModifySnapshotAttributeInput struct {
_ struct{} `type:"structure"`
- // The snapshot attribute to modify.
- //
- // Only volume creation permissions may be modified at the customer level.
+ // The snapshot attribute to modify. Only volume creation permissions can be
+ // modified.
Attribute *string `type:"string" enum:"SnapshotAttributeName"`
// A JSON representation of the snapshot attribute modification.
@@ -54934,7 +66743,6 @@ func (s *ModifySpotFleetRequestOutput) SetReturn(v bool) *ModifySpotFleetRequest
return s
}
-// Contains the parameters for ModifySubnetAttribute.
type ModifySubnetAttributeInput struct {
_ struct{} `type:"structure"`
@@ -55015,6 +66823,140 @@ func (s ModifySubnetAttributeOutput) GoString() string {
return s.String()
}
+type ModifyTransitGatewayVpcAttachmentInput struct {
+ _ struct{} `type:"structure"`
+
+ // The IDs of one or more subnets to add. You can specify at most one subnet
+ // per Availability Zone.
+ AddSubnetIds []*string `locationNameList:"item" type:"list"`
+
+ // Checks whether you have the required permissions for the action, without
+ // actually making the request, and provides an error response. If you have
+ // the required permissions, the error response is DryRunOperation. Otherwise,
+ // it is UnauthorizedOperation.
+ DryRun *bool `type:"boolean"`
+
+ // The new VPC attachment options.
+ Options *ModifyTransitGatewayVpcAttachmentRequestOptions `type:"structure"`
+
+ // The IDs of one or more subnets to remove.
+ RemoveSubnetIds []*string `locationNameList:"item" type:"list"`
+
+ // The ID of the attachment.
+ //
+ // TransitGatewayAttachmentId is a required field
+ TransitGatewayAttachmentId *string `type:"string" required:"true"`
+}
+
+// String returns the string representation
+func (s ModifyTransitGatewayVpcAttachmentInput) String() string {
+ return awsutil.Prettify(s)
+}
+
+// GoString returns the string representation
+func (s ModifyTransitGatewayVpcAttachmentInput) GoString() string {
+ return s.String()
+}
+
+// Validate inspects the fields of the type to determine if they are valid.
+func (s *ModifyTransitGatewayVpcAttachmentInput) Validate() error {
+ invalidParams := request.ErrInvalidParams{Context: "ModifyTransitGatewayVpcAttachmentInput"}
+ if s.TransitGatewayAttachmentId == nil {
+ invalidParams.Add(request.NewErrParamRequired("TransitGatewayAttachmentId"))
+ }
+
+ if invalidParams.Len() > 0 {
+ return invalidParams
+ }
+ return nil
+}
+
+// SetAddSubnetIds sets the AddSubnetIds field's value.
+func (s *ModifyTransitGatewayVpcAttachmentInput) SetAddSubnetIds(v []*string) *ModifyTransitGatewayVpcAttachmentInput {
+ s.AddSubnetIds = v
+ return s
+}
+
+// SetDryRun sets the DryRun field's value.
+func (s *ModifyTransitGatewayVpcAttachmentInput) SetDryRun(v bool) *ModifyTransitGatewayVpcAttachmentInput {
+ s.DryRun = &v
+ return s
+}
+
+// SetOptions sets the Options field's value.
+func (s *ModifyTransitGatewayVpcAttachmentInput) SetOptions(v *ModifyTransitGatewayVpcAttachmentRequestOptions) *ModifyTransitGatewayVpcAttachmentInput {
+ s.Options = v
+ return s
+}
+
+// SetRemoveSubnetIds sets the RemoveSubnetIds field's value.
+func (s *ModifyTransitGatewayVpcAttachmentInput) SetRemoveSubnetIds(v []*string) *ModifyTransitGatewayVpcAttachmentInput {
+ s.RemoveSubnetIds = v
+ return s
+}
+
+// SetTransitGatewayAttachmentId sets the TransitGatewayAttachmentId field's value.
+func (s *ModifyTransitGatewayVpcAttachmentInput) SetTransitGatewayAttachmentId(v string) *ModifyTransitGatewayVpcAttachmentInput {
+ s.TransitGatewayAttachmentId = &v
+ return s
+}
+
+type ModifyTransitGatewayVpcAttachmentOutput struct {
+ _ struct{} `type:"structure"`
+
+ // Information about the modified attachment.
+ TransitGatewayVpcAttachment *TransitGatewayVpcAttachment `locationName:"transitGatewayVpcAttachment" type:"structure"`
+}
+
+// String returns the string representation
+func (s ModifyTransitGatewayVpcAttachmentOutput) String() string {
+ return awsutil.Prettify(s)
+}
+
+// GoString returns the string representation
+func (s ModifyTransitGatewayVpcAttachmentOutput) GoString() string {
+ return s.String()
+}
+
+// SetTransitGatewayVpcAttachment sets the TransitGatewayVpcAttachment field's value.
+func (s *ModifyTransitGatewayVpcAttachmentOutput) SetTransitGatewayVpcAttachment(v *TransitGatewayVpcAttachment) *ModifyTransitGatewayVpcAttachmentOutput {
+ s.TransitGatewayVpcAttachment = v
+ return s
+}
+
+// Describes the options for a VPC attachment.
+type ModifyTransitGatewayVpcAttachmentRequestOptions struct {
+ _ struct{} `type:"structure"`
+
+ // Enable or disable DNS support. The default is enable.
+ DnsSupport *string `type:"string" enum:"DnsSupportValue"`
+
+ // Enable or disable IPv6 support. The default is enable.
+ Ipv6Support *string `type:"string" enum:"Ipv6SupportValue"`
+}
+
+// String returns the string representation
+func (s ModifyTransitGatewayVpcAttachmentRequestOptions) String() string {
+ return awsutil.Prettify(s)
+}
+
+// GoString returns the string representation
+func (s ModifyTransitGatewayVpcAttachmentRequestOptions) GoString() string {
+ return s.String()
+}
+
+// SetDnsSupport sets the DnsSupport field's value.
+func (s *ModifyTransitGatewayVpcAttachmentRequestOptions) SetDnsSupport(v string) *ModifyTransitGatewayVpcAttachmentRequestOptions {
+ s.DnsSupport = &v
+ return s
+}
+
+// SetIpv6Support sets the Ipv6Support field's value.
+func (s *ModifyTransitGatewayVpcAttachmentRequestOptions) SetIpv6Support(v string) *ModifyTransitGatewayVpcAttachmentRequestOptions {
+ s.Ipv6Support = &v
+ return s
+}
+
// Contains the parameters for ModifyVolumeAttribute.
type ModifyVolumeAttributeInput struct {
_ struct{} `type:"structure"`
@@ -55098,19 +67040,17 @@ type ModifyVolumeInput struct {
// it is UnauthorizedOperation.
DryRun *bool `type:"boolean"`
- // Target IOPS rate of the volume to be modified.
+ // The target IOPS rate of the volume.
//
- // Only valid for Provisioned IOPS SSD (io1) volumes. For more information about
- // io1 IOPS configuration, see http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSVolumeTypes.html#EBSVolumeTypes_piops
- // (http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSVolumeTypes.html#EBSVolumeTypes_piops).
+ // This is only valid for Provisioned IOPS SSD (io1) volumes. For more information,
+ // see Provisioned IOPS SSD (io1) Volumes (http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSVolumeTypes.html#EBSVolumeTypes_piops).
//
// Default: If no IOPS value is specified, the existing value is retained.
Iops *int64 `type:"integer"`
- // Target size in GiB of the volume to be modified. Target volume size must
- // be greater than or equal to than the existing size of the volume. For information
- // about available EBS volume sizes, see http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSVolumeTypes.html
- // (http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSVolumeTypes.html).
+ // The target size of the volume, in GiB. The target volume size must be greater
+ // than or equal to than the existing size of the volume. For information about
+ // available EBS volume sizes, see Amazon EBS Volume Types (http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSVolumeTypes.html).
//
// Default: If no size is specified, the existing size is retained.
Size *int64 `type:"integer"`
@@ -55120,10 +67060,7 @@ type ModifyVolumeInput struct {
// VolumeId is a required field
VolumeId *string `type:"string" required:"true"`
- // Target EBS volume type of the volume to be modified
- //
- // The API does not support modifications for volume type standard. You also
- // cannot change the type of a volume to standard.
+ // The target EBS volume type of the volume.
//
// Default: If no type is specified, the existing type is retained.
VolumeType *string `type:"string" enum:"VolumeType"`
@@ -55185,7 +67122,7 @@ func (s *ModifyVolumeInput) SetVolumeType(v string) *ModifyVolumeInput {
type ModifyVolumeOutput struct {
_ struct{} `type:"structure"`
- // A VolumeModification object.
+ // Information about the volume modification.
VolumeModification *VolumeModification `locationName:"volumeModification" type:"structure"`
}
@@ -55205,7 +67142,6 @@ func (s *ModifyVolumeOutput) SetVolumeModification(v *VolumeModification) *Modif
return s
}
-// Contains the parameters for ModifyVpcAttribute.
type ModifyVpcAttributeInput struct {
_ struct{} `type:"structure"`
@@ -55220,8 +67156,8 @@ type ModifyVpcAttributeInput struct {
// Indicates whether the DNS resolution is supported for the VPC. If enabled,
// queries to the Amazon provided DNS server at the 169.254.169.253 IP address,
// or the reserved IP address at the base of the VPC network range "plus two"
- // will succeed. If disabled, the Amazon provided DNS service in the VPC that
- // resolves public DNS hostnames to IP addresses is not enabled.
+ // succeed. If disabled, the Amazon provided DNS service in the VPC that resolves
+ // public DNS hostnames to IP addresses is not enabled.
//
// You cannot modify the DNS resolution and DNS hostnames attributes in the
// same request. Use separate requests for each attribute.
@@ -55645,8 +67581,9 @@ func (s *ModifyVpcEndpointServiceConfigurationOutput) SetReturn(v bool) *ModifyV
type ModifyVpcEndpointServicePermissionsInput struct {
_ struct{} `type:"structure"`
- // One or more Amazon Resource Names (ARNs) of principals for which to allow
- // permission. Specify * to allow all principals.
+ // The Amazon Resource Names (ARN) of one or more principals. Permissions are
+ // granted to the principals in this list. To grant permissions to all principals,
+ // specify an asterisk (*).
AddAllowedPrincipals []*string `locationNameList:"item" type:"list"`
// Checks whether you have the required permissions for the action, without
@@ -55655,8 +67592,8 @@ type ModifyVpcEndpointServicePermissionsInput struct {
// it is UnauthorizedOperation.
DryRun *bool `type:"boolean"`
- // One or more Amazon Resource Names (ARNs) of principals for which to remove
- // permission.
+ // The Amazon Resource Names (ARN) of one or more principals. Permissions are
+ // revoked for principals in this list.
RemoveAllowedPrincipals []*string `locationNameList:"item" type:"list"`
// The ID of the service.
@@ -55741,7 +67678,7 @@ type ModifyVpcPeeringConnectionOptionsInput struct {
// The VPC peering connection options for the accepter VPC.
AccepterPeeringConnectionOptions *PeeringConnectionOptionsRequest `type:"structure"`
- // Checks whether you have the required permissions for the operation, without
+ // Checks whether you have the required permissions for the action, without
// actually making the request, and provides an error response. If you have
// the required permissions, the error response is DryRunOperation. Otherwise,
// it is UnauthorizedOperation.
@@ -55835,11 +67772,10 @@ func (s *ModifyVpcPeeringConnectionOptionsOutput) SetRequesterPeeringConnectionO
return s
}
-// Contains the parameters for ModifyVpcTenancy.
type ModifyVpcTenancyInput struct {
_ struct{} `type:"structure"`
- // Checks whether you have the required permissions for the operation, without
+ // Checks whether you have the required permissions for the action, without
// actually making the request, and provides an error response. If you have
// the required permissions, the error response is DryRunOperation. Otherwise,
// it is UnauthorizedOperation.
@@ -55900,7 +67836,6 @@ func (s *ModifyVpcTenancyInput) SetVpcId(v string) *ModifyVpcTenancyInput {
return s
}
-// Contains the output of ModifyVpcTenancy.
type ModifyVpcTenancyOutput struct {
_ struct{} `type:"structure"`
@@ -55924,7 +67859,6 @@ func (s *ModifyVpcTenancyOutput) SetReturnValue(v bool) *ModifyVpcTenancyOutput
return s
}
-// Contains the parameters for MonitorInstances.
type MonitorInstancesInput struct {
_ struct{} `type:"structure"`
@@ -55975,7 +67909,6 @@ func (s *MonitorInstancesInput) SetInstanceIds(v []*string) *MonitorInstancesInp
return s
}
-// Contains the output of MonitorInstances.
type MonitorInstancesOutput struct {
_ struct{} `type:"structure"`
@@ -56024,7 +67957,6 @@ func (s *Monitoring) SetState(v string) *Monitoring {
return s
}
-// Contains the parameters for MoveAddressToVpc.
type MoveAddressToVpcInput struct {
_ struct{} `type:"structure"`
@@ -56075,7 +68007,6 @@ func (s *MoveAddressToVpcInput) SetPublicIp(v string) *MoveAddressToVpcInput {
return s
}
-// Contains the output of MoveAddressToVpc.
type MoveAddressToVpcOutput struct {
_ struct{} `type:"structure"`
@@ -56147,10 +68078,10 @@ type NatGateway struct {
_ struct{} `type:"structure"`
// The date and time the NAT gateway was created.
- CreateTime *time.Time `locationName:"createTime" type:"timestamp" timestampFormat:"iso8601"`
+ CreateTime *time.Time `locationName:"createTime" type:"timestamp"`
// The date and time the NAT gateway was deleted, if applicable.
- DeleteTime *time.Time `locationName:"deleteTime" type:"timestamp" timestampFormat:"iso8601"`
+ DeleteTime *time.Time `locationName:"deleteTime" type:"timestamp"`
// If the NAT gateway could not be created, specifies the error code for the
// failure. (InsufficientFreeAddressesInSubnet | Gateway.NotAttached | InvalidAllocationID.NotFound
@@ -56364,6 +68295,9 @@ type NetworkAcl struct {
// The ID of the network ACL.
NetworkAclId *string `locationName:"networkAclId" type:"string"`
+ // The ID of the AWS account that owns the network ACL.
+ OwnerId *string `locationName:"ownerId" type:"string"`
+
// Any tags assigned to the network ACL.
Tags []*Tag `locationName:"tagSet" locationNameList:"item" type:"list"`
@@ -56405,6 +68339,12 @@ func (s *NetworkAcl) SetNetworkAclId(v string) *NetworkAcl {
return s
}
+// SetOwnerId sets the OwnerId field's value.
+func (s *NetworkAcl) SetOwnerId(v string) *NetworkAcl {
+ s.OwnerId = &v
+ return s
+}
+
// SetTags sets the Tags field's value.
func (s *NetworkAcl) SetTags(v []*Tag) *NetworkAcl {
s.Tags = v
@@ -56479,7 +68419,7 @@ type NetworkAclEntry struct {
// TCP or UDP protocols: The range of ports the rule applies to.
PortRange *PortRange `locationName:"portRange" type:"structure"`
- // The protocol. A value of -1 means all protocols.
+ // The protocol number. A value of "-1" means all protocols.
Protocol *string `locationName:"protocol" type:"string"`
// Indicates whether to allow or deny the traffic that matches the rule.
@@ -56810,7 +68750,7 @@ type NetworkInterfaceAttachment struct {
_ struct{} `type:"structure"`
// The timestamp indicating when the attachment initiated.
- AttachTime *time.Time `locationName:"attachTime" type:"timestamp" timestampFormat:"iso8601"`
+ AttachTime *time.Time `locationName:"attachTime" type:"timestamp"`
// The ID of the network interface attachment.
AttachmentId *string `locationName:"attachmentId" type:"string"`
@@ -57125,6 +69065,104 @@ func (s *NewDhcpConfiguration) SetValues(v []*string) *NewDhcpConfiguration {
return s
}
+// The allocation strategy of On-Demand Instances in an EC2 Fleet.
+type OnDemandOptions struct {
+ _ struct{} `type:"structure"`
+
+ // The order of the launch template overrides to use in fulfilling On-Demand
+ // capacity. If you specify lowest-price, EC2 Fleet uses price to determine
+ // the order, launching the lowest price first. If you specify prioritized,
+ // EC2 Fleet uses the priority that you assigned to each launch template override,
+ // launching the highest priority first. If you do not specify a value, EC2
+ // Fleet defaults to lowest-price.
+ AllocationStrategy *string `locationName:"allocationStrategy" type:"string" enum:"FleetOnDemandAllocationStrategy"`
+
+ // The minimum target capacity for On-Demand Instances in the fleet. If the
+ // minimum target capacity is not reached, the fleet launches no instances.
+ MinTargetCapacity *int64 `locationName:"minTargetCapacity" type:"integer"`
+
+ // Indicates that the fleet uses a single instance type to launch all On-Demand
+ // Instances in the fleet.
+ SingleInstanceType *bool `locationName:"singleInstanceType" type:"boolean"`
+}
+
+// String returns the string representation
+func (s OnDemandOptions) String() string {
+ return awsutil.Prettify(s)
+}
+
+// GoString returns the string representation
+func (s OnDemandOptions) GoString() string {
+ return s.String()
+}
+
+// SetAllocationStrategy sets the AllocationStrategy field's value.
+func (s *OnDemandOptions) SetAllocationStrategy(v string) *OnDemandOptions {
+ s.AllocationStrategy = &v
+ return s
+}
+
+// SetMinTargetCapacity sets the MinTargetCapacity field's value.
+func (s *OnDemandOptions) SetMinTargetCapacity(v int64) *OnDemandOptions {
+ s.MinTargetCapacity = &v
+ return s
+}
+
+// SetSingleInstanceType sets the SingleInstanceType field's value.
+func (s *OnDemandOptions) SetSingleInstanceType(v bool) *OnDemandOptions {
+ s.SingleInstanceType = &v
+ return s
+}
+
+// The allocation strategy of On-Demand Instances in an EC2 Fleet.
+type OnDemandOptionsRequest struct {
+ _ struct{} `type:"structure"`
+
+ // The order of the launch template overrides to use in fulfilling On-Demand
+ // capacity. If you specify lowest-price, EC2 Fleet uses price to determine
+ // the order, launching the lowest price first. If you specify prioritized,
+ // EC2 Fleet uses the priority that you assigned to each launch template override,
+ // launching the highest priority first. If you do not specify a value, EC2
+ // Fleet defaults to lowest-price.
+ AllocationStrategy *string `type:"string" enum:"FleetOnDemandAllocationStrategy"`
+
+ // The minimum target capacity for On-Demand Instances in the fleet. If the
+ // minimum target capacity is not reached, the fleet launches no instances.
+ MinTargetCapacity *int64 `type:"integer"`
+
+ // Indicates that the fleet uses a single instance type to launch all On-Demand
+ // Instances in the fleet.
+ SingleInstanceType *bool `type:"boolean"`
+}
+
+// String returns the string representation
+func (s OnDemandOptionsRequest) String() string {
+ return awsutil.Prettify(s)
+}
+
+// GoString returns the string representation
+func (s OnDemandOptionsRequest) GoString() string {
+ return s.String()
+}
+
+// SetAllocationStrategy sets the AllocationStrategy field's value.
+func (s *OnDemandOptionsRequest) SetAllocationStrategy(v string) *OnDemandOptionsRequest {
+ s.AllocationStrategy = &v
+ return s
+}
+
+// SetMinTargetCapacity sets the MinTargetCapacity field's value.
+func (s *OnDemandOptionsRequest) SetMinTargetCapacity(v int64) *OnDemandOptionsRequest {
+ s.MinTargetCapacity = &v
+ return s
+}
+
+// SetSingleInstanceType sets the SingleInstanceType field's value.
+func (s *OnDemandOptionsRequest) SetSingleInstanceType(v bool) *OnDemandOptionsRequest {
+ s.SingleInstanceType = &v
+ return s
+}
+
// Describes the data that identifies an Amazon FPGA image (AFI) on the PCI
// bus.
type PciId struct {
@@ -57186,11 +69224,11 @@ type PeeringConnectionOptions struct {
AllowDnsResolutionFromRemoteVpc *bool `locationName:"allowDnsResolutionFromRemoteVpc" type:"boolean"`
// If true, enables outbound communication from an EC2-Classic instance that's
- // linked to a local VPC via ClassicLink to instances in a peer VPC.
+ // linked to a local VPC using ClassicLink to instances in a peer VPC.
AllowEgressFromLocalClassicLinkToRemoteVpc *bool `locationName:"allowEgressFromLocalClassicLinkToRemoteVpc" type:"boolean"`
// If true, enables outbound communication from instances in a local VPC to
- // an EC2-Classic instance that's linked to a peer VPC via ClassicLink.
+ // an EC2-Classic instance that's linked to a peer VPC using ClassicLink.
AllowEgressFromLocalVpcToRemoteClassicLink *bool `locationName:"allowEgressFromLocalVpcToRemoteClassicLink" type:"boolean"`
}
@@ -57231,11 +69269,11 @@ type PeeringConnectionOptionsRequest struct {
AllowDnsResolutionFromRemoteVpc *bool `type:"boolean"`
// If true, enables outbound communication from an EC2-Classic instance that's
- // linked to a local VPC via ClassicLink to instances in a peer VPC.
+ // linked to a local VPC using ClassicLink to instances in a peer VPC.
AllowEgressFromLocalClassicLinkToRemoteVpc *bool `type:"boolean"`
// If true, enables outbound communication from instances in a local VPC to
- // an EC2-Classic instance that's linked to a peer VPC via ClassicLink.
+ // an EC2-Classic instance that's linked to a peer VPC using ClassicLink.
AllowEgressFromLocalVpcToRemoteClassicLink *bool `type:"boolean"`
}
@@ -57278,13 +69316,17 @@ type Placement struct {
// The Availability Zone of the instance.
AvailabilityZone *string `locationName:"availabilityZone" type:"string"`
- // The name of the placement group the instance is in (for cluster compute instances).
+ // The name of the placement group the instance is in.
GroupName *string `locationName:"groupName" type:"string"`
// The ID of the Dedicated Host on which the instance resides. This parameter
// is not supported for the ImportInstance command.
HostId *string `locationName:"hostId" type:"string"`
+ // The number of the partition the instance is in. Valid only if the placement
+ // group strategy is set to partition.
+ PartitionNumber *int64 `locationName:"partitionNumber" type:"integer"`
+
// Reserved for future use.
SpreadDomain *string `locationName:"spreadDomain" type:"string"`
@@ -57328,6 +69370,12 @@ func (s *Placement) SetHostId(v string) *Placement {
return s
}
+// SetPartitionNumber sets the PartitionNumber field's value.
+func (s *Placement) SetPartitionNumber(v int64) *Placement {
+ s.PartitionNumber = &v
+ return s
+}
+
// SetSpreadDomain sets the SpreadDomain field's value.
func (s *Placement) SetSpreadDomain(v string) *Placement {
s.SpreadDomain = &v
@@ -57347,6 +69395,9 @@ type PlacementGroup struct {
// The name of the placement group.
GroupName *string `locationName:"groupName" type:"string"`
+ // The number of partitions. Valid only if strategy is set to partition.
+ PartitionCount *int64 `locationName:"partitionCount" type:"integer"`
+
// The state of the placement group.
State *string `locationName:"state" type:"string" enum:"PlacementGroupState"`
@@ -57370,6 +69421,12 @@ func (s *PlacementGroup) SetGroupName(v string) *PlacementGroup {
return s
}
+// SetPartitionCount sets the PartitionCount field's value.
+func (s *PlacementGroup) SetPartitionCount(v int64) *PlacementGroup {
+ s.PartitionCount = &v
+ return s
+}
+
// SetState sets the State field's value.
func (s *PlacementGroup) SetState(v string) *PlacementGroup {
s.State = &v
@@ -57382,6 +69439,30 @@ func (s *PlacementGroup) SetStrategy(v string) *PlacementGroup {
return s
}
+// Describes the placement of an instance.
+type PlacementResponse struct {
+ _ struct{} `type:"structure"`
+
+ // The name of the placement group the instance is in.
+ GroupName *string `locationName:"groupName" type:"string"`
+}
+
+// String returns the string representation
+func (s PlacementResponse) String() string {
+ return awsutil.Prettify(s)
+}
+
+// GoString returns the string representation
+func (s PlacementResponse) GoString() string {
+ return s.String()
+}
+
+// SetGroupName sets the GroupName field's value.
+func (s *PlacementResponse) SetGroupName(v string) *PlacementResponse {
+ s.GroupName = &v
+ return s
+}
+
// Describes a range of ports.
type PortRange struct {
_ struct{} `type:"structure"`
@@ -57457,7 +69538,7 @@ func (s *PrefixList) SetPrefixListName(v string) *PrefixList {
return s
}
-// [EC2-VPC only] The ID of the prefix.
+// Describes a prefix list ID.
type PrefixListId struct {
_ struct{} `type:"structure"`
@@ -57675,9 +69756,7 @@ type PrivateIpAddressSpecification struct {
Primary *bool `locationName:"primary" type:"boolean"`
// The private IPv4 addresses.
- //
- // PrivateIpAddress is a required field
- PrivateIpAddress *string `locationName:"privateIpAddress" type:"string" required:"true"`
+ PrivateIpAddress *string `locationName:"privateIpAddress" type:"string"`
}
// String returns the string representation
@@ -57690,19 +69769,6 @@ func (s PrivateIpAddressSpecification) GoString() string {
return s.String()
}
-// Validate inspects the fields of the type to determine if they are valid.
-func (s *PrivateIpAddressSpecification) Validate() error {
- invalidParams := request.ErrInvalidParams{Context: "PrivateIpAddressSpecification"}
- if s.PrivateIpAddress == nil {
- invalidParams.Add(request.NewErrParamRequired("PrivateIpAddress"))
- }
-
- if invalidParams.Len() > 0 {
- return invalidParams
- }
- return nil
-}
-
// SetPrimary sets the Primary field's value.
func (s *PrivateIpAddressSpecification) SetPrimary(v bool) *PrivateIpAddressSpecification {
s.Primary = &v
@@ -57752,7 +69818,7 @@ func (s *ProductCode) SetProductCodeType(v string) *ProductCode {
type PropagatingVgw struct {
_ struct{} `type:"structure"`
- // The ID of the virtual private gateway (VGW).
+ // The ID of the virtual private gateway.
GatewayId *string `locationName:"gatewayId" type:"string"`
}
@@ -57772,6 +69838,105 @@ func (s *PropagatingVgw) SetGatewayId(v string) *PropagatingVgw {
return s
}
+type ProvisionByoipCidrInput struct {
+ _ struct{} `type:"structure"`
+
+ // The public IPv4 address range, in CIDR notation. The most specific prefix
+ // that you can specify is /24. The address range cannot overlap with another
+ // address range that you've brought to this or another region.
+ //
+ // Cidr is a required field
+ Cidr *string `type:"string" required:"true"`
+
+ // A signed document that proves that you are authorized to bring the specified
+ // IP address range to Amazon using BYOIP.
+ CidrAuthorizationContext *CidrAuthorizationContext `type:"structure"`
+
+ // A description for the address range and the address pool.
+ Description *string `type:"string"`
+
+ // Checks whether you have the required permissions for the action, without
+ // actually making the request, and provides an error response. If you have
+ // the required permissions, the error response is DryRunOperation. Otherwise,
+ // it is UnauthorizedOperation.
+ DryRun *bool `type:"boolean"`
+}
+
+// String returns the string representation
+func (s ProvisionByoipCidrInput) String() string {
+ return awsutil.Prettify(s)
+}
+
+// GoString returns the string representation
+func (s ProvisionByoipCidrInput) GoString() string {
+ return s.String()
+}
+
+// Validate inspects the fields of the type to determine if they are valid.
+func (s *ProvisionByoipCidrInput) Validate() error {
+ invalidParams := request.ErrInvalidParams{Context: "ProvisionByoipCidrInput"}
+ if s.Cidr == nil {
+ invalidParams.Add(request.NewErrParamRequired("Cidr"))
+ }
+ if s.CidrAuthorizationContext != nil {
+ if err := s.CidrAuthorizationContext.Validate(); err != nil {
+ invalidParams.AddNested("CidrAuthorizationContext", err.(request.ErrInvalidParams))
+ }
+ }
+
+ if invalidParams.Len() > 0 {
+ return invalidParams
+ }
+ return nil
+}
+
+// SetCidr sets the Cidr field's value.
+func (s *ProvisionByoipCidrInput) SetCidr(v string) *ProvisionByoipCidrInput {
+ s.Cidr = &v
+ return s
+}
+
+// SetCidrAuthorizationContext sets the CidrAuthorizationContext field's value.
+func (s *ProvisionByoipCidrInput) SetCidrAuthorizationContext(v *CidrAuthorizationContext) *ProvisionByoipCidrInput {
+ s.CidrAuthorizationContext = v
+ return s
+}
+
+// SetDescription sets the Description field's value.
+func (s *ProvisionByoipCidrInput) SetDescription(v string) *ProvisionByoipCidrInput {
+ s.Description = &v
+ return s
+}
+
+// SetDryRun sets the DryRun field's value.
+func (s *ProvisionByoipCidrInput) SetDryRun(v bool) *ProvisionByoipCidrInput {
+ s.DryRun = &v
+ return s
+}
+
+type ProvisionByoipCidrOutput struct {
+ _ struct{} `type:"structure"`
+
+ // Information about the address pool.
+ ByoipCidr *ByoipCidr `locationName:"byoipCidr" type:"structure"`
+}
+
+// String returns the string representation
+func (s ProvisionByoipCidrOutput) String() string {
+ return awsutil.Prettify(s)
+}
+
+// GoString returns the string representation
+func (s ProvisionByoipCidrOutput) GoString() string {
+ return s.String()
+}
+
+// SetByoipCidr sets the ByoipCidr field's value.
+func (s *ProvisionByoipCidrOutput) SetByoipCidr(v *ByoipCidr) *ProvisionByoipCidrOutput {
+ s.ByoipCidr = v
+ return s
+}
+
// Reserved. If you need to sustain traffic greater than the documented limits
// (http://docs.aws.amazon.com/AmazonVPC/latest/UserGuide/vpc-nat-gateway.html),
// contact us through the Support Center (https://console.aws.amazon.com/support/home?).
@@ -57781,7 +69946,7 @@ type ProvisionedBandwidth struct {
// Reserved. If you need to sustain traffic greater than the documented limits
// (http://docs.aws.amazon.com/AmazonVPC/latest/UserGuide/vpc-nat-gateway.html),
// contact us through the Support Center (https://console.aws.amazon.com/support/home?).
- ProvisionTime *time.Time `locationName:"provisionTime" type:"timestamp" timestampFormat:"iso8601"`
+ ProvisionTime *time.Time `locationName:"provisionTime" type:"timestamp"`
// Reserved. If you need to sustain traffic greater than the documented limits
// (http://docs.aws.amazon.com/AmazonVPC/latest/UserGuide/vpc-nat-gateway.html),
@@ -57791,7 +69956,7 @@ type ProvisionedBandwidth struct {
// Reserved. If you need to sustain traffic greater than the documented limits
// (http://docs.aws.amazon.com/AmazonVPC/latest/UserGuide/vpc-nat-gateway.html),
// contact us through the Support Center (https://console.aws.amazon.com/support/home?).
- RequestTime *time.Time `locationName:"requestTime" type:"timestamp" timestampFormat:"iso8601"`
+ RequestTime *time.Time `locationName:"requestTime" type:"timestamp"`
// Reserved. If you need to sustain traffic greater than the documented limits
// (http://docs.aws.amazon.com/AmazonVPC/latest/UserGuide/vpc-nat-gateway.html),
@@ -57844,6 +70009,117 @@ func (s *ProvisionedBandwidth) SetStatus(v string) *ProvisionedBandwidth {
return s
}
+// Describes an address pool.
+type PublicIpv4Pool struct {
+ _ struct{} `type:"structure"`
+
+ // A description of the address pool.
+ Description *string `locationName:"description" type:"string"`
+
+ // The address ranges.
+ PoolAddressRanges []*PublicIpv4PoolRange `locationName:"poolAddressRangeSet" locationNameList:"item" type:"list"`
+
+ // The ID of the IPv4 address pool.
+ PoolId *string `locationName:"poolId" type:"string"`
+
+ // The total number of addresses.
+ TotalAddressCount *int64 `locationName:"totalAddressCount" type:"integer"`
+
+ // The total number of available addresses.
+ TotalAvailableAddressCount *int64 `locationName:"totalAvailableAddressCount" type:"integer"`
+}
+
+// String returns the string representation
+func (s PublicIpv4Pool) String() string {
+ return awsutil.Prettify(s)
+}
+
+// GoString returns the string representation
+func (s PublicIpv4Pool) GoString() string {
+ return s.String()
+}
+
+// SetDescription sets the Description field's value.
+func (s *PublicIpv4Pool) SetDescription(v string) *PublicIpv4Pool {
+ s.Description = &v
+ return s
+}
+
+// SetPoolAddressRanges sets the PoolAddressRanges field's value.
+func (s *PublicIpv4Pool) SetPoolAddressRanges(v []*PublicIpv4PoolRange) *PublicIpv4Pool {
+ s.PoolAddressRanges = v
+ return s
+}
+
+// SetPoolId sets the PoolId field's value.
+func (s *PublicIpv4Pool) SetPoolId(v string) *PublicIpv4Pool {
+ s.PoolId = &v
+ return s
+}
+
+// SetTotalAddressCount sets the TotalAddressCount field's value.
+func (s *PublicIpv4Pool) SetTotalAddressCount(v int64) *PublicIpv4Pool {
+ s.TotalAddressCount = &v
+ return s
+}
+
+// SetTotalAvailableAddressCount sets the TotalAvailableAddressCount field's value.
+func (s *PublicIpv4Pool) SetTotalAvailableAddressCount(v int64) *PublicIpv4Pool {
+ s.TotalAvailableAddressCount = &v
+ return s
+}
+
+// Describes an address range of an IPv4 address pool.
+type PublicIpv4PoolRange struct {
+ _ struct{} `type:"structure"`
+
+ // The number of addresses in the range.
+ AddressCount *int64 `locationName:"addressCount" type:"integer"`
+
+ // The number of available addresses in the range.
+ AvailableAddressCount *int64 `locationName:"availableAddressCount" type:"integer"`
+
+ // The first IP address in the range.
+ FirstAddress *string `locationName:"firstAddress" type:"string"`
+
+ // The last IP address in the range.
+ LastAddress *string `locationName:"lastAddress" type:"string"`
+}
+
+// String returns the string representation
+func (s PublicIpv4PoolRange) String() string {
+ return awsutil.Prettify(s)
+}
+
+// GoString returns the string representation
+func (s PublicIpv4PoolRange) GoString() string {
+ return s.String()
+}
+
+// SetAddressCount sets the AddressCount field's value.
+func (s *PublicIpv4PoolRange) SetAddressCount(v int64) *PublicIpv4PoolRange {
+ s.AddressCount = &v
+ return s
+}
+
+// SetAvailableAddressCount sets the AvailableAddressCount field's value.
+func (s *PublicIpv4PoolRange) SetAvailableAddressCount(v int64) *PublicIpv4PoolRange {
+ s.AvailableAddressCount = &v
+ return s
+}
+
+// SetFirstAddress sets the FirstAddress field's value.
+func (s *PublicIpv4PoolRange) SetFirstAddress(v string) *PublicIpv4PoolRange {
+ s.FirstAddress = &v
+ return s
+}
+
+// SetLastAddress sets the LastAddress field's value.
+func (s *PublicIpv4PoolRange) SetLastAddress(v string) *PublicIpv4PoolRange {
+ s.LastAddress = &v
+ return s
+}
+
// Describes the result of the purchase.
type Purchase struct {
_ struct{} `type:"structure"`
@@ -57945,8 +70221,7 @@ type PurchaseHostReservationInput struct {
// amounts are specified. At this time, the only supported currency is USD.
CurrencyCode *string `type:"string" enum:"CurrencyCodeValues"`
- // The ID/s of the Dedicated Host/s that the reservation will be associated
- // with.
+ // The IDs of the Dedicated Hosts with which the reservation will be associated.
//
// HostIdSet is a required field
HostIdSet []*string `locationNameList:"item" type:"list" required:"true"`
@@ -57954,10 +70229,9 @@ type PurchaseHostReservationInput struct {
// The specified limit is checked against the total upfront cost of the reservation
// (calculated as the offering's upfront cost multiplied by the host count).
// If the total upfront cost is greater than the specified price limit, the
- // request will fail. This is used to ensure that the purchase does not exceed
- // the expected upfront cost of the purchase. At this time, the only supported
- // currency is USD. For example, to indicate a limit price of USD 100, specify
- // 100.00.
+ // request fails. This is used to ensure that the purchase does not exceed the
+ // expected upfront cost of the purchase. At this time, the only supported currency
+ // is USD. For example, to indicate a limit price of USD 100, specify 100.00.
LimitPrice *string `type:"string"`
// The ID of the offering.
@@ -58027,7 +70301,7 @@ type PurchaseHostReservationOutput struct {
// Unique, case-sensitive identifier you provide to ensure idempotency of the
// request. For more information, see How to Ensure Idempotency (http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Run_Instance_Idempotency.html)
- // in the Amazon Elastic Compute Cloud User Guide
+ // in the Amazon Elastic Compute Cloud User Guide.
ClientToken *string `locationName:"clientToken" type:"string"`
// The currency in which the totalUpfrontPrice and totalHourlyPrice amounts
@@ -58040,8 +70314,7 @@ type PurchaseHostReservationOutput struct {
// The total hourly price of the reservation calculated per hour.
TotalHourlyPrice *string `locationName:"totalHourlyPrice" type:"string"`
- // The total amount that will be charged to your account when you purchase the
- // reservation.
+ // The total amount charged to your account when you purchase the reservation.
TotalUpfrontPrice *string `locationName:"totalUpfrontPrice" type:"string"`
}
@@ -58336,7 +70609,6 @@ func (s *PurchaseScheduledInstancesOutput) SetScheduledInstanceSet(v []*Schedule
return s
}
-// Contains the parameters for RebootInstances.
type RebootInstancesInput struct {
_ struct{} `type:"structure"`
@@ -58663,6 +70935,79 @@ func (s *RegisterImageOutput) SetImageId(v string) *RegisterImageOutput {
return s
}
+type RejectTransitGatewayVpcAttachmentInput struct {
+ _ struct{} `type:"structure"`
+
+ // Checks whether you have the required permissions for the action, without
+ // actually making the request, and provides an error response. If you have
+ // the required permissions, the error response is DryRunOperation. Otherwise,
+ // it is UnauthorizedOperation.
+ DryRun *bool `type:"boolean"`
+
+ // The ID of the attachment.
+ //
+ // TransitGatewayAttachmentId is a required field
+ TransitGatewayAttachmentId *string `type:"string" required:"true"`
+}
+
+// String returns the string representation
+func (s RejectTransitGatewayVpcAttachmentInput) String() string {
+ return awsutil.Prettify(s)
+}
+
+// GoString returns the string representation
+func (s RejectTransitGatewayVpcAttachmentInput) GoString() string {
+ return s.String()
+}
+
+// Validate inspects the fields of the type to determine if they are valid.
+func (s *RejectTransitGatewayVpcAttachmentInput) Validate() error {
+ invalidParams := request.ErrInvalidParams{Context: "RejectTransitGatewayVpcAttachmentInput"}
+ if s.TransitGatewayAttachmentId == nil {
+ invalidParams.Add(request.NewErrParamRequired("TransitGatewayAttachmentId"))
+ }
+
+ if invalidParams.Len() > 0 {
+ return invalidParams
+ }
+ return nil
+}
+
+// SetDryRun sets the DryRun field's value.
+func (s *RejectTransitGatewayVpcAttachmentInput) SetDryRun(v bool) *RejectTransitGatewayVpcAttachmentInput {
+ s.DryRun = &v
+ return s
+}
+
+// SetTransitGatewayAttachmentId sets the TransitGatewayAttachmentId field's value.
+func (s *RejectTransitGatewayVpcAttachmentInput) SetTransitGatewayAttachmentId(v string) *RejectTransitGatewayVpcAttachmentInput {
+ s.TransitGatewayAttachmentId = &v
+ return s
+}
+
+type RejectTransitGatewayVpcAttachmentOutput struct {
+ _ struct{} `type:"structure"`
+
+ // Information about the attachment.
+ TransitGatewayVpcAttachment *TransitGatewayVpcAttachment `locationName:"transitGatewayVpcAttachment" type:"structure"`
+}
+
+// String returns the string representation
+func (s RejectTransitGatewayVpcAttachmentOutput) String() string {
+ return awsutil.Prettify(s)
+}
+
+// GoString returns the string representation
+func (s RejectTransitGatewayVpcAttachmentOutput) GoString() string {
+ return s.String()
+}
+
+// SetTransitGatewayVpcAttachment sets the TransitGatewayVpcAttachment field's value.
+func (s *RejectTransitGatewayVpcAttachmentOutput) SetTransitGatewayVpcAttachment(v *TransitGatewayVpcAttachment) *RejectTransitGatewayVpcAttachmentOutput {
+ s.TransitGatewayVpcAttachment = v
+ return s
+}
+
type RejectVpcEndpointConnectionsInput struct {
_ struct{} `type:"structure"`
@@ -58750,7 +71095,6 @@ func (s *RejectVpcEndpointConnectionsOutput) SetUnsuccessful(v []*UnsuccessfulIt
return s
}
-// Contains the parameters for RejectVpcPeeringConnection.
type RejectVpcPeeringConnectionInput struct {
_ struct{} `type:"structure"`
@@ -58801,7 +71145,6 @@ func (s *RejectVpcPeeringConnectionInput) SetVpcPeeringConnectionId(v string) *R
return s
}
-// Contains the output of RejectVpcPeeringConnection.
type RejectVpcPeeringConnectionOutput struct {
_ struct{} `type:"structure"`
@@ -58825,7 +71168,6 @@ func (s *RejectVpcPeeringConnectionOutput) SetReturn(v bool) *RejectVpcPeeringCo
return s
}
-// Contains the parameters for ReleaseAddress.
type ReleaseAddressInput struct {
_ struct{} `type:"structure"`
@@ -58884,11 +71226,10 @@ func (s ReleaseAddressOutput) GoString() string {
return s.String()
}
-// Contains the parameters for ReleaseHosts.
type ReleaseHostsInput struct {
_ struct{} `type:"structure"`
- // The IDs of the Dedicated Hosts you want to release.
+ // The IDs of the Dedicated Hosts to release.
//
// HostIds is a required field
HostIds []*string `locationName:"hostId" locationNameList:"item" type:"list" required:"true"`
@@ -58923,7 +71264,6 @@ func (s *ReleaseHostsInput) SetHostIds(v []*string) *ReleaseHostsInput {
return s
}
-// Contains the output of ReleaseHosts.
type ReleaseHostsOutput struct {
_ struct{} `type:"structure"`
@@ -59032,7 +71372,6 @@ func (s *ReplaceIamInstanceProfileAssociationOutput) SetIamInstanceProfileAssoci
return s
}
-// Contains the parameters for ReplaceNetworkAclAssociation.
type ReplaceNetworkAclAssociationInput struct {
_ struct{} `type:"structure"`
@@ -59098,7 +71437,6 @@ func (s *ReplaceNetworkAclAssociationInput) SetNetworkAclId(v string) *ReplaceNe
return s
}
-// Contains the output of ReplaceNetworkAclAssociation.
type ReplaceNetworkAclAssociationOutput struct {
_ struct{} `type:"structure"`
@@ -59122,7 +71460,6 @@ func (s *ReplaceNetworkAclAssociationOutput) SetNewAssociationId(v string) *Repl
return s
}
-// Contains the parameters for ReplaceNetworkAclEntry.
type ReplaceNetworkAclEntryInput struct {
_ struct{} `type:"structure"`
@@ -59142,8 +71479,8 @@ type ReplaceNetworkAclEntryInput struct {
// Egress is a required field
Egress *bool `locationName:"egress" type:"boolean" required:"true"`
- // ICMP protocol: The ICMP or ICMPv6 type and code. Required if specifying the
- // ICMP (1) protocol, or protocol 58 (ICMPv6) with an IPv6 CIDR block.
+ // ICMP protocol: The ICMP or ICMPv6 type and code. Required if specifying protocol
+ // 1 (ICMP) or protocol 58 (ICMPv6) with an IPv6 CIDR block.
IcmpTypeCode *IcmpTypeCode `locationName:"Icmp" type:"structure"`
// The IPv6 network range to allow or deny, in CIDR notation (for example 2001:bd8:1234:1a00::/64).
@@ -59155,16 +71492,16 @@ type ReplaceNetworkAclEntryInput struct {
NetworkAclId *string `locationName:"networkAclId" type:"string" required:"true"`
// TCP or UDP protocols: The range of ports the rule applies to. Required if
- // specifying TCP (6) or UDP (17) for the protocol.
+ // specifying protocol 6 (TCP) or 17 (UDP).
PortRange *PortRange `locationName:"portRange" type:"structure"`
- // The IP protocol. You can specify all or -1 to mean all protocols. If you
- // specify all, -1, or a protocol number other than tcp, udp, or icmp, traffic
- // on all ports is allowed, regardless of any ports or ICMP types or codes you
- // specify. If you specify protocol 58 (ICMPv6) and specify an IPv4 CIDR block,
- // traffic for all ICMP types and codes allowed, regardless of any that you
- // specify. If you specify protocol 58 (ICMPv6) and specify an IPv6 CIDR block,
- // you must specify an ICMP type and code.
+ // The protocol number. A value of "-1" means all protocols. If you specify
+ // "-1" or a protocol number other than "6" (TCP), "17" (UDP), or "1" (ICMP),
+ // traffic on all ports is allowed, regardless of any ports or ICMP types or
+ // codes that you specify. If you specify protocol "58" (ICMPv6) and specify
+ // an IPv4 CIDR block, traffic for all ICMP types and codes allowed, regardless
+ // of any that you specify. If you specify protocol "58" (ICMPv6) and specify
+ // an IPv6 CIDR block, you must specify an ICMP type and code.
//
// Protocol is a required field
Protocol *string `locationName:"protocol" type:"string" required:"true"`
@@ -59289,16 +71626,15 @@ func (s ReplaceNetworkAclEntryOutput) GoString() string {
return s.String()
}
-// Contains the parameters for ReplaceRoute.
type ReplaceRouteInput struct {
_ struct{} `type:"structure"`
- // The IPv4 CIDR address block used for the destination match. The value you
- // provide must match the CIDR of an existing route in the table.
+ // The IPv4 CIDR address block used for the destination match. The value that
+ // you provide must match the CIDR of an existing route in the table.
DestinationCidrBlock *string `locationName:"destinationCidrBlock" type:"string"`
- // The IPv6 CIDR address block used for the destination match. The value you
- // provide must match the CIDR of an existing route in the table.
+ // The IPv6 CIDR address block used for the destination match. The value that
+ // you provide must match the CIDR of an existing route in the table.
DestinationIpv6CidrBlock *string `locationName:"destinationIpv6CidrBlock" type:"string"`
// Checks whether you have the required permissions for the action, without
@@ -59307,10 +71643,10 @@ type ReplaceRouteInput struct {
// it is UnauthorizedOperation.
DryRun *bool `locationName:"dryRun" type:"boolean"`
- // [IPv6 traffic only] The ID of an egress-only Internet gateway.
+ // [IPv6 traffic only] The ID of an egress-only internet gateway.
EgressOnlyInternetGatewayId *string `locationName:"egressOnlyInternetGatewayId" type:"string"`
- // The ID of an Internet gateway or virtual private gateway.
+ // The ID of an internet gateway or virtual private gateway.
GatewayId *string `locationName:"gatewayId" type:"string"`
// The ID of a NAT instance in your VPC.
@@ -59327,6 +71663,9 @@ type ReplaceRouteInput struct {
// RouteTableId is a required field
RouteTableId *string `locationName:"routeTableId" type:"string" required:"true"`
+ // The ID of a transit gateway.
+ TransitGatewayId *string `type:"string"`
+
// The ID of a VPC peering connection.
VpcPeeringConnectionId *string `locationName:"vpcPeeringConnectionId" type:"string"`
}
@@ -59408,6 +71747,12 @@ func (s *ReplaceRouteInput) SetRouteTableId(v string) *ReplaceRouteInput {
return s
}
+// SetTransitGatewayId sets the TransitGatewayId field's value.
+func (s *ReplaceRouteInput) SetTransitGatewayId(v string) *ReplaceRouteInput {
+ s.TransitGatewayId = &v
+ return s
+}
+
// SetVpcPeeringConnectionId sets the VpcPeeringConnectionId field's value.
func (s *ReplaceRouteInput) SetVpcPeeringConnectionId(v string) *ReplaceRouteInput {
s.VpcPeeringConnectionId = &v
@@ -59428,7 +71773,6 @@ func (s ReplaceRouteOutput) GoString() string {
return s.String()
}
-// Contains the parameters for ReplaceRouteTableAssociation.
type ReplaceRouteTableAssociationInput struct {
_ struct{} `type:"structure"`
@@ -59493,7 +71837,6 @@ func (s *ReplaceRouteTableAssociationInput) SetRouteTableId(v string) *ReplaceRo
return s
}
-// Contains the output of ReplaceRouteTableAssociation.
type ReplaceRouteTableAssociationOutput struct {
_ struct{} `type:"structure"`
@@ -59517,7 +71860,112 @@ func (s *ReplaceRouteTableAssociationOutput) SetNewAssociationId(v string) *Repl
return s
}
-// Contains the parameters for ReportInstanceStatus.
+type ReplaceTransitGatewayRouteInput struct {
+ _ struct{} `type:"structure"`
+
+ // Indicates whether traffic matching this route is to be dropped.
+ Blackhole *bool `type:"boolean"`
+
+ // The CIDR range used for the destination match. Routing decisions are based
+ // on the most specific match.
+ //
+ // DestinationCidrBlock is a required field
+ DestinationCidrBlock *string `type:"string" required:"true"`
+
+ // Checks whether you have the required permissions for the action, without
+ // actually making the request, and provides an error response. If you have
+ // the required permissions, the error response is DryRunOperation. Otherwise,
+ // it is UnauthorizedOperation.
+ DryRun *bool `type:"boolean"`
+
+ // The ID of the attachment.
+ TransitGatewayAttachmentId *string `type:"string"`
+
+ // The ID of the route table.
+ //
+ // TransitGatewayRouteTableId is a required field
+ TransitGatewayRouteTableId *string `type:"string" required:"true"`
+}
+
+// String returns the string representation
+func (s ReplaceTransitGatewayRouteInput) String() string {
+ return awsutil.Prettify(s)
+}
+
+// GoString returns the string representation
+func (s ReplaceTransitGatewayRouteInput) GoString() string {
+ return s.String()
+}
+
+// Validate inspects the fields of the type to determine if they are valid.
+func (s *ReplaceTransitGatewayRouteInput) Validate() error {
+ invalidParams := request.ErrInvalidParams{Context: "ReplaceTransitGatewayRouteInput"}
+ if s.DestinationCidrBlock == nil {
+ invalidParams.Add(request.NewErrParamRequired("DestinationCidrBlock"))
+ }
+ if s.TransitGatewayRouteTableId == nil {
+ invalidParams.Add(request.NewErrParamRequired("TransitGatewayRouteTableId"))
+ }
+
+ if invalidParams.Len() > 0 {
+ return invalidParams
+ }
+ return nil
+}
+
+// SetBlackhole sets the Blackhole field's value.
+func (s *ReplaceTransitGatewayRouteInput) SetBlackhole(v bool) *ReplaceTransitGatewayRouteInput {
+ s.Blackhole = &v
+ return s
+}
+
+// SetDestinationCidrBlock sets the DestinationCidrBlock field's value.
+func (s *ReplaceTransitGatewayRouteInput) SetDestinationCidrBlock(v string) *ReplaceTransitGatewayRouteInput {
+ s.DestinationCidrBlock = &v
+ return s
+}
+
+// SetDryRun sets the DryRun field's value.
+func (s *ReplaceTransitGatewayRouteInput) SetDryRun(v bool) *ReplaceTransitGatewayRouteInput {
+ s.DryRun = &v
+ return s
+}
+
+// SetTransitGatewayAttachmentId sets the TransitGatewayAttachmentId field's value.
+func (s *ReplaceTransitGatewayRouteInput) SetTransitGatewayAttachmentId(v string) *ReplaceTransitGatewayRouteInput {
+ s.TransitGatewayAttachmentId = &v
+ return s
+}
+
+// SetTransitGatewayRouteTableId sets the TransitGatewayRouteTableId field's value.
+func (s *ReplaceTransitGatewayRouteInput) SetTransitGatewayRouteTableId(v string) *ReplaceTransitGatewayRouteInput {
+ s.TransitGatewayRouteTableId = &v
+ return s
+}
+
+type ReplaceTransitGatewayRouteOutput struct {
+ _ struct{} `type:"structure"`
+
+ // Information about the modified route.
+ Route *TransitGatewayRoute `locationName:"route" type:"structure"`
+}
+
+// String returns the string representation
+func (s ReplaceTransitGatewayRouteOutput) String() string {
+ return awsutil.Prettify(s)
+}
+
+// GoString returns the string representation
+func (s ReplaceTransitGatewayRouteOutput) GoString() string {
+ return s.String()
+}
+
+// SetRoute sets the Route field's value.
+func (s *ReplaceTransitGatewayRouteOutput) SetRoute(v *TransitGatewayRoute) *ReplaceTransitGatewayRouteOutput {
+ s.Route = v
+ return s
+}
+
type ReportInstanceStatusInput struct {
_ struct{} `type:"structure"`
@@ -59531,7 +71979,7 @@ type ReportInstanceStatusInput struct {
DryRun *bool `locationName:"dryRun" type:"boolean"`
// The time at which the reported instance health state ended.
- EndTime *time.Time `locationName:"endTime" type:"timestamp" timestampFormat:"iso8601"`
+ EndTime *time.Time `locationName:"endTime" type:"timestamp"`
// One or more instances.
//
@@ -59565,7 +72013,7 @@ type ReportInstanceStatusInput struct {
ReasonCodes []*string `locationName:"reasonCode" locationNameList:"item" type:"list" required:"true"`
// The time at which the reported instance health state began.
- StartTime *time.Time `locationName:"startTime" type:"timestamp" timestampFormat:"iso8601"`
+ StartTime *time.Time `locationName:"startTime" type:"timestamp"`
// The status of all instances listed.
//
@@ -59671,7 +72119,16 @@ type RequestLaunchTemplateData struct {
// cannot be changed using this action.
BlockDeviceMappings []*LaunchTemplateBlockDeviceMappingRequest `locationName:"BlockDeviceMapping" locationNameList:"BlockDeviceMapping" type:"list"`
- // The credit option for CPU usage of the instance. Valid for T2 instances only.
+ // The Capacity Reservation targeting option.
+ CapacityReservationSpecification *LaunchTemplateCapacityReservationSpecificationRequest `type:"structure"`
+
+ // The CPU options for the instance. For more information, see Optimizing CPU
+ // Options (http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-optimize-cpu.html)
+ // in the Amazon Elastic Compute Cloud User Guide.
+ CpuOptions *LaunchTemplateCpuOptionsRequest `type:"structure"`
+
+ // The credit option for CPU usage of the instance. Valid for T2 or T3 instances
+ // only.
CreditSpecification *CreditSpecificationRequest `type:"structure"`
// If set to true, you can't terminate the instance using the Amazon EC2 console,
@@ -59688,6 +72145,16 @@ type RequestLaunchTemplateData struct {
// An elastic GPU to associate with the instance.
ElasticGpuSpecifications []*ElasticGpuSpecification `locationName:"ElasticGpuSpecification" locationNameList:"ElasticGpuSpecification" type:"list"`
+ // The elastic inference accelerator for the instance.
+ ElasticInferenceAccelerators []*LaunchTemplateElasticInferenceAccelerator `locationName:"ElasticInferenceAccelerator" locationNameList:"item" type:"list"`
+
+ // Indicates whether an instance is enabled for hibernation. This parameter
+ // is valid only if the instance meets the hibernation prerequisites (http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Hibernate.html#hibernating-prerequisites).
+ // Hibernation is currently supported only for Amazon Linux. For more information,
+ // see Hibernate Your Instance (http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Hibernate.html)
+ // in the Amazon Elastic Compute Cloud User Guide.
+ HibernationOptions *LaunchTemplateHibernationOptionsRequest `type:"structure"`
+
// The IAM instance profile.
IamInstanceProfile *LaunchTemplateIamInstanceProfileSpecificationRequest `type:"structure"`
@@ -59721,6 +72188,9 @@ type RequestLaunchTemplateData struct {
// you choose an AMI that is configured to allow users another way to log in.
KeyName *string `type:"string"`
+ // The license configurations.
+ LicenseSpecifications []*LaunchTemplateLicenseConfigurationRequest `locationName:"LicenseSpecification" locationNameList:"item" type:"list"`
+
// The monitoring for the instance.
Monitoring *LaunchTemplatesMonitoringRequest `type:"structure"`
@@ -59747,9 +72217,10 @@ type RequestLaunchTemplateData struct {
// group ID and security name in the same request.
SecurityGroups []*string `locationName:"SecurityGroup" locationNameList:"SecurityGroup" type:"list"`
- // The tags to apply to the resources during launch. You can tag instances and
- // volumes. The specified tags are applied to all instances or volumes that
- // are created during launch.
+ // The tags to apply to the resources during launch. You can only tag instances
+ // and volumes on launch. The specified tags are applied to all instances or
+ // volumes that are created during launch. To tag a resource after it has been
+ // created, see CreateTags.
TagSpecifications []*LaunchTemplateTagSpecificationRequest `locationName:"TagSpecification" locationNameList:"LaunchTemplateTagSpecificationRequest" type:"list"`
// The Base64-encoded user data to make available to the instance. For more
@@ -59787,13 +72258,13 @@ func (s *RequestLaunchTemplateData) Validate() error {
}
}
}
- if s.NetworkInterfaces != nil {
- for i, v := range s.NetworkInterfaces {
+ if s.ElasticInferenceAccelerators != nil {
+ for i, v := range s.ElasticInferenceAccelerators {
if v == nil {
continue
}
if err := v.Validate(); err != nil {
- invalidParams.AddNested(fmt.Sprintf("%s[%v]", "NetworkInterfaces", i), err.(request.ErrInvalidParams))
+ invalidParams.AddNested(fmt.Sprintf("%s[%v]", "ElasticInferenceAccelerators", i), err.(request.ErrInvalidParams))
}
}
}
@@ -59810,6 +72281,18 @@ func (s *RequestLaunchTemplateData) SetBlockDeviceMappings(v []*LaunchTemplateBl
return s
}
+// SetCapacityReservationSpecification sets the CapacityReservationSpecification field's value.
+func (s *RequestLaunchTemplateData) SetCapacityReservationSpecification(v *LaunchTemplateCapacityReservationSpecificationRequest) *RequestLaunchTemplateData {
+ s.CapacityReservationSpecification = v
+ return s
+}
+
+// SetCpuOptions sets the CpuOptions field's value.
+func (s *RequestLaunchTemplateData) SetCpuOptions(v *LaunchTemplateCpuOptionsRequest) *RequestLaunchTemplateData {
+ s.CpuOptions = v
+ return s
+}
+
// SetCreditSpecification sets the CreditSpecification field's value.
func (s *RequestLaunchTemplateData) SetCreditSpecification(v *CreditSpecificationRequest) *RequestLaunchTemplateData {
s.CreditSpecification = v
@@ -59834,6 +72317,18 @@ func (s *RequestLaunchTemplateData) SetElasticGpuSpecifications(v []*ElasticGpuS
return s
}
+// SetElasticInferenceAccelerators sets the ElasticInferenceAccelerators field's value.
+func (s *RequestLaunchTemplateData) SetElasticInferenceAccelerators(v []*LaunchTemplateElasticInferenceAccelerator) *RequestLaunchTemplateData {
+ s.ElasticInferenceAccelerators = v
+ return s
+}
+
+// SetHibernationOptions sets the HibernationOptions field's value.
+func (s *RequestLaunchTemplateData) SetHibernationOptions(v *LaunchTemplateHibernationOptionsRequest) *RequestLaunchTemplateData {
+ s.HibernationOptions = v
+ return s
+}
+
// SetIamInstanceProfile sets the IamInstanceProfile field's value.
func (s *RequestLaunchTemplateData) SetIamInstanceProfile(v *LaunchTemplateIamInstanceProfileSpecificationRequest) *RequestLaunchTemplateData {
s.IamInstanceProfile = v
@@ -59876,6 +72371,12 @@ func (s *RequestLaunchTemplateData) SetKeyName(v string) *RequestLaunchTemplateD
return s
}
+// SetLicenseSpecifications sets the LicenseSpecifications field's value.
+func (s *RequestLaunchTemplateData) SetLicenseSpecifications(v []*LaunchTemplateLicenseConfigurationRequest) *RequestLaunchTemplateData {
+ s.LicenseSpecifications = v
+ return s
+}
+
// SetMonitoring sets the Monitoring field's value.
func (s *RequestLaunchTemplateData) SetMonitoring(v *LaunchTemplatesMonitoringRequest) *RequestLaunchTemplateData {
s.Monitoring = v
@@ -59985,9 +72486,7 @@ type RequestSpotFleetOutput struct {
_ struct{} `type:"structure"`
// The ID of the Spot Fleet request.
- //
- // SpotFleetRequestId is a required field
- SpotFleetRequestId *string `locationName:"spotFleetRequestId" type:"string" required:"true"`
+ SpotFleetRequestId *string `locationName:"spotFleetRequestId" type:"string"`
}
// String returns the string representation
@@ -60086,14 +72585,14 @@ type RequestSpotInstancesInput struct {
// launch, the request expires, or the request is canceled. If the request is
// persistent, the request becomes active at this date and time and remains
// active until it expires or is canceled.
- ValidFrom *time.Time `locationName:"validFrom" type:"timestamp" timestampFormat:"iso8601"`
+ ValidFrom *time.Time `locationName:"validFrom" type:"timestamp"`
// The end date of the request. If this is a one-time request, the request remains
// active until all instances launch, the request is canceled, or this date
// is reached. If the request is persistent, it remains active until it is canceled
// or this date is reached. The default end date is 7 days from the current
// date.
- ValidUntil *time.Time `locationName:"validUntil" type:"timestamp" timestampFormat:"iso8601"`
+ ValidUntil *time.Time `locationName:"validUntil" type:"timestamp"`
}
// String returns the string representation
@@ -60302,16 +72801,6 @@ func (s *RequestSpotLaunchSpecification) Validate() error {
invalidParams.AddNested("Monitoring", err.(request.ErrInvalidParams))
}
}
- if s.NetworkInterfaces != nil {
- for i, v := range s.NetworkInterfaces {
- if v == nil {
- continue
- }
- if err := v.Validate(); err != nil {
- invalidParams.AddNested(fmt.Sprintf("%s[%v]", "NetworkInterfaces", i), err.(request.ErrInvalidParams))
- }
- }
- }
if invalidParams.Len() > 0 {
return invalidParams
@@ -60602,7 +73091,7 @@ type ReservedInstances struct {
Duration *int64 `locationName:"duration" type:"long"`
// The time when the Reserved Instance expires.
- End *time.Time `locationName:"end" type:"timestamp" timestampFormat:"iso8601"`
+ End *time.Time `locationName:"end" type:"timestamp"`
// The purchase price of the Reserved Instance.
FixedPrice *float64 `locationName:"fixedPrice" type:"float"`
@@ -60635,7 +73124,7 @@ type ReservedInstances struct {
Scope *string `locationName:"scope" type:"string" enum:"scope"`
// The date and time the Reserved Instance started.
- Start *time.Time `locationName:"start" type:"timestamp" timestampFormat:"iso8601"`
+ Start *time.Time `locationName:"start" type:"timestamp"`
// The state of the Reserved Instance purchase.
State *string `locationName:"state" type:"string" enum:"ReservedInstanceState"`
@@ -60860,7 +73349,7 @@ type ReservedInstancesListing struct {
ClientToken *string `locationName:"clientToken" type:"string"`
// The time the listing was created.
- CreateDate *time.Time `locationName:"createDate" type:"timestamp" timestampFormat:"iso8601"`
+ CreateDate *time.Time `locationName:"createDate" type:"timestamp"`
// The number of instances in this state.
InstanceCounts []*InstanceCount `locationName:"instanceCounts" locationNameList:"item" type:"list"`
@@ -60885,7 +73374,7 @@ type ReservedInstancesListing struct {
Tags []*Tag `locationName:"tagSet" locationNameList:"item" type:"list"`
// The last modified timestamp of the listing.
- UpdateDate *time.Time `locationName:"updateDate" type:"timestamp" timestampFormat:"iso8601"`
+ UpdateDate *time.Time `locationName:"updateDate" type:"timestamp"`
}
// String returns the string representation
@@ -60967,10 +73456,10 @@ type ReservedInstancesModification struct {
ClientToken *string `locationName:"clientToken" type:"string"`
// The time when the modification request was created.
- CreateDate *time.Time `locationName:"createDate" type:"timestamp" timestampFormat:"iso8601"`
+ CreateDate *time.Time `locationName:"createDate" type:"timestamp"`
// The time for the modification to become effective.
- EffectiveDate *time.Time `locationName:"effectiveDate" type:"timestamp" timestampFormat:"iso8601"`
+ EffectiveDate *time.Time `locationName:"effectiveDate" type:"timestamp"`
// Contains target configurations along with their corresponding new Reserved
// Instance IDs.
@@ -60989,7 +73478,7 @@ type ReservedInstancesModification struct {
StatusMessage *string `locationName:"statusMessage" type:"string"`
// The time when the modification request was last updated.
- UpdateDate *time.Time `locationName:"updateDate" type:"timestamp" timestampFormat:"iso8601"`
+ UpdateDate *time.Time `locationName:"updateDate" type:"timestamp"`
}
// String returns the string representation
@@ -61411,7 +73900,6 @@ func (s ResetImageAttributeOutput) GoString() string {
return s.String()
}
-// Contains the parameters for ResetInstanceAttribute.
type ResetInstanceAttributeInput struct {
_ struct{} `type:"structure"`
@@ -61688,6 +74176,14 @@ type ResponseLaunchTemplateData struct {
// The block device mappings.
BlockDeviceMappings []*LaunchTemplateBlockDeviceMapping `locationName:"blockDeviceMappingSet" locationNameList:"item" type:"list"`
+ // Information about the Capacity Reservation targeting option.
+ CapacityReservationSpecification *LaunchTemplateCapacityReservationSpecificationResponse `locationName:"capacityReservationSpecification" type:"structure"`
+
+ // The CPU options for the instance. For more information, see Optimizing CPU
+ // Options (http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-optimize-cpu.html)
+ // in the Amazon Elastic Compute Cloud User Guide.
+ CpuOptions *LaunchTemplateCpuOptions `locationName:"cpuOptions" type:"structure"`
+
// The credit option for CPU usage of the instance.
CreditSpecification *CreditSpecification `locationName:"creditSpecification" type:"structure"`
@@ -61701,6 +74197,14 @@ type ResponseLaunchTemplateData struct {
// The elastic GPU specification.
ElasticGpuSpecifications []*ElasticGpuSpecificationResponse `locationName:"elasticGpuSpecificationSet" locationNameList:"item" type:"list"`
+ // The elastic inference accelerator for the instance.
+ ElasticInferenceAccelerators []*LaunchTemplateElasticInferenceAcceleratorResponse `locationName:"elasticInferenceAcceleratorSet" locationNameList:"item" type:"list"`
+
+ // Indicates whether an instance is configured for hibernation. For more information,
+ // see Hibernate Your Instance (http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Hibernate.html)
+ // in the Amazon Elastic Compute Cloud User Guide.
+ HibernationOptions *LaunchTemplateHibernationOptions `locationName:"hibernationOptions" type:"structure"`
+
// The IAM instance profile.
IamInstanceProfile *LaunchTemplateIamInstanceProfileSpecification `locationName:"iamInstanceProfile" type:"structure"`
@@ -61723,6 +74227,9 @@ type ResponseLaunchTemplateData struct {
// The name of the key pair.
KeyName *string `locationName:"keyName" type:"string"`
+ // The license configurations.
+ LicenseSpecifications []*LaunchTemplateLicenseConfiguration `locationName:"licenseSet" locationNameList:"item" type:"list"`
+
// The monitoring for the instance.
Monitoring *LaunchTemplatesMonitoring `locationName:"monitoring" type:"structure"`
@@ -61764,6 +74271,18 @@ func (s *ResponseLaunchTemplateData) SetBlockDeviceMappings(v []*LaunchTemplateB
return s
}
+// SetCapacityReservationSpecification sets the CapacityReservationSpecification field's value.
+func (s *ResponseLaunchTemplateData) SetCapacityReservationSpecification(v *LaunchTemplateCapacityReservationSpecificationResponse) *ResponseLaunchTemplateData {
+ s.CapacityReservationSpecification = v
+ return s
+}
+
+// SetCpuOptions sets the CpuOptions field's value.
+func (s *ResponseLaunchTemplateData) SetCpuOptions(v *LaunchTemplateCpuOptions) *ResponseLaunchTemplateData {
+ s.CpuOptions = v
+ return s
+}
+
// SetCreditSpecification sets the CreditSpecification field's value.
func (s *ResponseLaunchTemplateData) SetCreditSpecification(v *CreditSpecification) *ResponseLaunchTemplateData {
s.CreditSpecification = v
@@ -61788,6 +74307,18 @@ func (s *ResponseLaunchTemplateData) SetElasticGpuSpecifications(v []*ElasticGpu
return s
}
+// SetElasticInferenceAccelerators sets the ElasticInferenceAccelerators field's value.
+func (s *ResponseLaunchTemplateData) SetElasticInferenceAccelerators(v []*LaunchTemplateElasticInferenceAcceleratorResponse) *ResponseLaunchTemplateData {
+ s.ElasticInferenceAccelerators = v
+ return s
+}
+
+// SetHibernationOptions sets the HibernationOptions field's value.
+func (s *ResponseLaunchTemplateData) SetHibernationOptions(v *LaunchTemplateHibernationOptions) *ResponseLaunchTemplateData {
+ s.HibernationOptions = v
+ return s
+}
+
// SetIamInstanceProfile sets the IamInstanceProfile field's value.
func (s *ResponseLaunchTemplateData) SetIamInstanceProfile(v *LaunchTemplateIamInstanceProfileSpecification) *ResponseLaunchTemplateData {
s.IamInstanceProfile = v
@@ -61830,6 +74361,12 @@ func (s *ResponseLaunchTemplateData) SetKeyName(v string) *ResponseLaunchTemplat
return s
}
+// SetLicenseSpecifications sets the LicenseSpecifications field's value.
+func (s *ResponseLaunchTemplateData) SetLicenseSpecifications(v []*LaunchTemplateLicenseConfiguration) *ResponseLaunchTemplateData {
+ s.LicenseSpecifications = v
+ return s
+}
+
// SetMonitoring sets the Monitoring field's value.
func (s *ResponseLaunchTemplateData) SetMonitoring(v *LaunchTemplatesMonitoring) *ResponseLaunchTemplateData {
s.Monitoring = v
@@ -61878,7 +74415,6 @@ func (s *ResponseLaunchTemplateData) SetUserData(v string) *ResponseLaunchTempla
return s
}
-// Contains the parameters for RestoreAddressToClassic.
type RestoreAddressToClassicInput struct {
_ struct{} `type:"structure"`
@@ -61929,7 +74465,6 @@ func (s *RestoreAddressToClassicInput) SetPublicIp(v string) *RestoreAddressToCl
return s
}
-// Contains the output of RestoreAddressToClassic.
type RestoreAddressToClassicOutput struct {
_ struct{} `type:"structure"`
@@ -61962,7 +74497,112 @@ func (s *RestoreAddressToClassicOutput) SetStatus(v string) *RestoreAddressToCla
return s
}
-// Contains the parameters for RevokeSecurityGroupEgress.
+type RevokeClientVpnIngressInput struct {
+ _ struct{} `type:"structure"`
+
+ // The ID of the Active Directory group for which to revoke access.
+ AccessGroupId *string `type:"string"`
+
+ // The ID of the Client VPN endpoint with which the authorization rule is associated.
+ //
+ // ClientVpnEndpointId is a required field
+ ClientVpnEndpointId *string `type:"string" required:"true"`
+
+ // Checks whether you have the required permissions for the action, without
+ // actually making the request, and provides an error response. If you have
+ // the required permissions, the error response is DryRunOperation. Otherwise,
+ // it is UnauthorizedOperation.
+ DryRun *bool `type:"boolean"`
+
+ // Indicates whether access should be revoked for all clients.
+ RevokeAllGroups *bool `type:"boolean"`
+
+ // The IPv4 address range, in CIDR notation, of the network for which access
+ // is being removed.
+ //
+ // TargetNetworkCidr is a required field
+ TargetNetworkCidr *string `type:"string" required:"true"`
+}
+
+// String returns the string representation
+func (s RevokeClientVpnIngressInput) String() string {
+ return awsutil.Prettify(s)
+}
+
+// GoString returns the string representation
+func (s RevokeClientVpnIngressInput) GoString() string {
+ return s.String()
+}
+
+// Validate inspects the fields of the type to determine if they are valid.
+func (s *RevokeClientVpnIngressInput) Validate() error {
+ invalidParams := request.ErrInvalidParams{Context: "RevokeClientVpnIngressInput"}
+ if s.ClientVpnEndpointId == nil {
+ invalidParams.Add(request.NewErrParamRequired("ClientVpnEndpointId"))
+ }
+ if s.TargetNetworkCidr == nil {
+ invalidParams.Add(request.NewErrParamRequired("TargetNetworkCidr"))
+ }
+
+ if invalidParams.Len() > 0 {
+ return invalidParams
+ }
+ return nil
+}
+
+// SetAccessGroupId sets the AccessGroupId field's value.
+func (s *RevokeClientVpnIngressInput) SetAccessGroupId(v string) *RevokeClientVpnIngressInput {
+ s.AccessGroupId = &v
+ return s
+}
+
+// SetClientVpnEndpointId sets the ClientVpnEndpointId field's value.
+func (s *RevokeClientVpnIngressInput) SetClientVpnEndpointId(v string) *RevokeClientVpnIngressInput {
+ s.ClientVpnEndpointId = &v
+ return s
+}
+
+// SetDryRun sets the DryRun field's value.
+func (s *RevokeClientVpnIngressInput) SetDryRun(v bool) *RevokeClientVpnIngressInput {
+ s.DryRun = &v
+ return s
+}
+
+// SetRevokeAllGroups sets the RevokeAllGroups field's value.
+func (s *RevokeClientVpnIngressInput) SetRevokeAllGroups(v bool) *RevokeClientVpnIngressInput {
+ s.RevokeAllGroups = &v
+ return s
+}
+
+// SetTargetNetworkCidr sets the TargetNetworkCidr field's value.
+func (s *RevokeClientVpnIngressInput) SetTargetNetworkCidr(v string) *RevokeClientVpnIngressInput {
+ s.TargetNetworkCidr = &v
+ return s
+}
+
+type RevokeClientVpnIngressOutput struct {
+ _ struct{} `type:"structure"`
+
+ // The current state of the authorization rule.
+ Status *ClientVpnAuthorizationRuleStatus `locationName:"status" type:"structure"`
+}
+
+// String returns the string representation
+func (s RevokeClientVpnIngressOutput) String() string {
+ return awsutil.Prettify(s)
+}
+
+// GoString returns the string representation
+func (s RevokeClientVpnIngressOutput) GoString() string {
+ return s.String()
+}
+
+// SetStatus sets the Status field's value.
+func (s *RevokeClientVpnIngressOutput) SetStatus(v *ClientVpnAuthorizationRuleStatus) *RevokeClientVpnIngressOutput {
+ s.Status = v
+ return s
+}
+
type RevokeSecurityGroupEgressInput struct {
_ struct{} `type:"structure"`
@@ -62094,7 +74734,6 @@ func (s RevokeSecurityGroupEgressOutput) GoString() string {
return s.String()
}
-// Contains the parameters for RevokeSecurityGroupIngress.
type RevokeSecurityGroupIngressInput struct {
_ struct{} `type:"structure"`
@@ -62247,7 +74886,7 @@ type Route struct {
// The prefix of the AWS service.
DestinationPrefixListId *string `locationName:"destinationPrefixListId" type:"string"`
- // The ID of the egress-only Internet gateway.
+ // The ID of the egress-only internet gateway.
EgressOnlyInternetGatewayId *string `locationName:"egressOnlyInternetGatewayId" type:"string"`
// The ID of a gateway attached to your VPC.
@@ -62280,7 +74919,10 @@ type Route struct {
// VPC, or the specified NAT instance has been terminated).
State *string `locationName:"state" type:"string" enum:"RouteState"`
- // The ID of the VPC peering connection.
+ // The ID of a transit gateway.
+ TransitGatewayId *string `locationName:"transitGatewayId" type:"string"`
+
+ // The ID of a VPC peering connection.
VpcPeeringConnectionId *string `locationName:"vpcPeeringConnectionId" type:"string"`
}
@@ -62360,6 +75002,12 @@ func (s *Route) SetState(v string) *Route {
return s
}
+// SetTransitGatewayId sets the TransitGatewayId field's value.
+func (s *Route) SetTransitGatewayId(v string) *Route {
+ s.TransitGatewayId = &v
+ return s
+}
+
// SetVpcPeeringConnectionId sets the VpcPeeringConnectionId field's value.
func (s *Route) SetVpcPeeringConnectionId(v string) *Route {
s.VpcPeeringConnectionId = &v
@@ -62373,6 +75021,9 @@ type RouteTable struct {
// The associations between the route table and one or more subnets.
Associations []*RouteTableAssociation `locationName:"associationSet" locationNameList:"item" type:"list"`
+ // The ID of the AWS account that owns the route table.
+ OwnerId *string `locationName:"ownerId" type:"string"`
+
// Any virtual private gateway (VGW) propagating routes.
PropagatingVgws []*PropagatingVgw `locationName:"propagatingVgwSet" locationNameList:"item" type:"list"`
@@ -62405,6 +75056,12 @@ func (s *RouteTable) SetAssociations(v []*RouteTableAssociation) *RouteTable {
return s
}
+// SetOwnerId sets the OwnerId field's value.
+func (s *RouteTable) SetOwnerId(v string) *RouteTable {
+ s.OwnerId = &v
+ return s
+}
+
// SetPropagatingVgws sets the PropagatingVgws field's value.
func (s *RouteTable) SetPropagatingVgws(v []*PropagatingVgw) *RouteTable {
s.PropagatingVgws = v
@@ -62486,7 +75143,6 @@ func (s *RouteTableAssociation) SetSubnetId(v string) *RouteTableAssociation {
return s
}
-// Contains the parameters for RunInstances.
type RunInstancesInput struct {
_ struct{} `type:"structure"`
@@ -62499,6 +75155,9 @@ type RunInstancesInput struct {
// its encryption status is used for the volume encryption status.
BlockDeviceMappings []*BlockDeviceMapping `locationName:"BlockDeviceMapping" locationNameList:"BlockDeviceMapping" type:"list"`
+ // Information about the Capacity Reservation targeting option.
+ CapacityReservationSpecification *CapacityReservationSpecification `type:"structure"`
+
// Unique, case-sensitive identifier you provide to ensure the idempotency of
// the request. For more information, see Ensuring Idempotency (http://docs.aws.amazon.com/AWSEC2/latest/APIReference/Run_Instance_Idempotency.html).
//
@@ -62512,10 +75171,10 @@ type RunInstancesInput struct {
// The credit option for CPU usage of the instance. Valid values are standard
// and unlimited. To change this attribute after launch, use ModifyInstanceCreditSpecification.
- // For more information, see T2 Instances (http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/t2-instances.html)
+ // For more information, see Burstable Performance Instances (http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/burstable-performance-instances.html)
// in the Amazon Elastic Compute Cloud User Guide.
//
- // Default: standard
+ // Default: standard (T2 instances) or unlimited (T3 instances)
CreditSpecification *CreditSpecificationRequest `type:"structure"`
// If you set this parameter to true, you can't terminate the instance using
@@ -62545,6 +75204,14 @@ type RunInstancesInput struct {
// An elastic GPU to associate with the instance.
ElasticGpuSpecification []*ElasticGpuSpecification `locationNameList:"item" type:"list"`
+ // An elastic inference accelerator.
+ ElasticInferenceAccelerators []*ElasticInferenceAccelerator `locationName:"ElasticInferenceAccelerator" locationNameList:"item" type:"list"`
+
+ // Indicates whether an instance is enabled for hibernation. For more information,
+ // see Hibernate Your Instance (http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Hibernate.html)
+ // in the Amazon Elastic Compute Cloud User Guide.
+ HibernationOptions *HibernationOptionsRequest `type:"structure"`
+
// The IAM instance profile.
IamInstanceProfile *IamInstanceProfileSpecification `locationName:"iamInstanceProfile" type:"structure"`
@@ -62560,6 +75227,9 @@ type RunInstancesInput struct {
InstanceInitiatedShutdownBehavior *string `locationName:"instanceInitiatedShutdownBehavior" type:"string" enum:"ShutdownBehavior"`
// The market (purchasing) option for the instances.
+ //
+ // For RunInstances, persistent Spot Instance requests are only supported when
+ // InstanceInterruptionBehavior is set to either hibernate or stop.
InstanceMarketOptions *InstanceMarketOptionsRequest `type:"structure"`
// The instance type. For more information, see Instance Types (http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-types.html)
@@ -62601,6 +75271,9 @@ type RunInstancesInput struct {
// You can specify either the name or ID of a launch template, but not both.
LaunchTemplate *LaunchTemplateSpecification `type:"structure"`
+ // The license configurations.
+ LicenseSpecifications []*LicenseConfigurationRequest `locationName:"LicenseSpecification" locationNameList:"item" type:"list"`
+
// The maximum number of instances to launch. If you specify more instances
// than Amazon EC2 can launch in the target Availability Zone, Amazon EC2 launches
// the largest possible number of instances above MinCount.
@@ -62664,9 +75337,10 @@ type RunInstancesInput struct {
// [EC2-VPC] The ID of the subnet to launch the instance into.
SubnetId *string `type:"string"`
- // The tags to apply to the resources during launch. You can tag instances and
- // volumes. The specified tags are applied to all instances or volumes that
- // are created during launch.
+ // The tags to apply to the resources during launch. You can only tag instances
+ // and volumes on launch. The specified tags are applied to all instances or
+ // volumes that are created during launch. To tag a resource after it has been
+ // created, see CreateTags.
TagSpecifications []*TagSpecification `locationName:"TagSpecification" locationNameList:"item" type:"list"`
// The user data to make available to the instance. For more information, see
@@ -62712,21 +75386,21 @@ func (s *RunInstancesInput) Validate() error {
}
}
}
- if s.Monitoring != nil {
- if err := s.Monitoring.Validate(); err != nil {
- invalidParams.AddNested("Monitoring", err.(request.ErrInvalidParams))
- }
- }
- if s.NetworkInterfaces != nil {
- for i, v := range s.NetworkInterfaces {
+ if s.ElasticInferenceAccelerators != nil {
+ for i, v := range s.ElasticInferenceAccelerators {
if v == nil {
continue
}
if err := v.Validate(); err != nil {
- invalidParams.AddNested(fmt.Sprintf("%s[%v]", "NetworkInterfaces", i), err.(request.ErrInvalidParams))
+ invalidParams.AddNested(fmt.Sprintf("%s[%v]", "ElasticInferenceAccelerators", i), err.(request.ErrInvalidParams))
}
}
}
+ if s.Monitoring != nil {
+ if err := s.Monitoring.Validate(); err != nil {
+ invalidParams.AddNested("Monitoring", err.(request.ErrInvalidParams))
+ }
+ }
if invalidParams.Len() > 0 {
return invalidParams
@@ -62746,6 +75420,12 @@ func (s *RunInstancesInput) SetBlockDeviceMappings(v []*BlockDeviceMapping) *Run
return s
}
+// SetCapacityReservationSpecification sets the CapacityReservationSpecification field's value.
+func (s *RunInstancesInput) SetCapacityReservationSpecification(v *CapacityReservationSpecification) *RunInstancesInput {
+ s.CapacityReservationSpecification = v
+ return s
+}
+
// SetClientToken sets the ClientToken field's value.
func (s *RunInstancesInput) SetClientToken(v string) *RunInstancesInput {
s.ClientToken = &v
@@ -62788,6 +75468,18 @@ func (s *RunInstancesInput) SetElasticGpuSpecification(v []*ElasticGpuSpecificat
return s
}
+// SetElasticInferenceAccelerators sets the ElasticInferenceAccelerators field's value.
+func (s *RunInstancesInput) SetElasticInferenceAccelerators(v []*ElasticInferenceAccelerator) *RunInstancesInput {
+ s.ElasticInferenceAccelerators = v
+ return s
+}
+
+// SetHibernationOptions sets the HibernationOptions field's value.
+func (s *RunInstancesInput) SetHibernationOptions(v *HibernationOptionsRequest) *RunInstancesInput {
+ s.HibernationOptions = v
+ return s
+}
+
// SetIamInstanceProfile sets the IamInstanceProfile field's value.
func (s *RunInstancesInput) SetIamInstanceProfile(v *IamInstanceProfileSpecification) *RunInstancesInput {
s.IamInstanceProfile = v
@@ -62848,6 +75540,12 @@ func (s *RunInstancesInput) SetLaunchTemplate(v *LaunchTemplateSpecification) *R
return s
}
+// SetLicenseSpecifications sets the LicenseSpecifications field's value.
+func (s *RunInstancesInput) SetLicenseSpecifications(v []*LicenseConfigurationRequest) *RunInstancesInput {
+ s.LicenseSpecifications = v
+ return s
+}
+
// SetMaxCount sets the MaxCount field's value.
func (s *RunInstancesInput) SetMaxCount(v int64) *RunInstancesInput {
s.MaxCount = &v
@@ -63152,7 +75850,7 @@ type ScheduledInstance struct {
AvailabilityZone *string `locationName:"availabilityZone" type:"string"`
// The date when the Scheduled Instance was purchased.
- CreateDate *time.Time `locationName:"createDate" type:"timestamp" timestampFormat:"iso8601"`
+ CreateDate *time.Time `locationName:"createDate" type:"timestamp"`
// The hourly price for a single instance.
HourlyPrice *string `locationName:"hourlyPrice" type:"string"`
@@ -63167,13 +75865,13 @@ type ScheduledInstance struct {
NetworkPlatform *string `locationName:"networkPlatform" type:"string"`
// The time for the next schedule to start.
- NextSlotStartTime *time.Time `locationName:"nextSlotStartTime" type:"timestamp" timestampFormat:"iso8601"`
+ NextSlotStartTime *time.Time `locationName:"nextSlotStartTime" type:"timestamp"`
// The platform (Linux/UNIX or Windows).
Platform *string `locationName:"platform" type:"string"`
// The time that the previous schedule ended or will end.
- PreviousSlotEndTime *time.Time `locationName:"previousSlotEndTime" type:"timestamp" timestampFormat:"iso8601"`
+ PreviousSlotEndTime *time.Time `locationName:"previousSlotEndTime" type:"timestamp"`
// The schedule recurrence.
Recurrence *ScheduledInstanceRecurrence `locationName:"recurrence" type:"structure"`
@@ -63185,10 +75883,10 @@ type ScheduledInstance struct {
SlotDurationInHours *int64 `locationName:"slotDurationInHours" type:"integer"`
// The end date for the Scheduled Instance.
- TermEndDate *time.Time `locationName:"termEndDate" type:"timestamp" timestampFormat:"iso8601"`
+ TermEndDate *time.Time `locationName:"termEndDate" type:"timestamp"`
// The start date for the Scheduled Instance.
- TermStartDate *time.Time `locationName:"termStartDate" type:"timestamp" timestampFormat:"iso8601"`
+ TermStartDate *time.Time `locationName:"termStartDate" type:"timestamp"`
// The total number of hours for a single instance for the entire term.
TotalScheduledInstanceHours *int64 `locationName:"totalScheduledInstanceHours" type:"integer"`
@@ -63305,7 +76003,7 @@ type ScheduledInstanceAvailability struct {
AvailableInstanceCount *int64 `locationName:"availableInstanceCount" type:"integer"`
// The time period for the first schedule to start.
- FirstSlotStartTime *time.Time `locationName:"firstSlotStartTime" type:"timestamp" timestampFormat:"iso8601"`
+ FirstSlotStartTime *time.Time `locationName:"firstSlotStartTime" type:"timestamp"`
// The hourly price for a single instance.
HourlyPrice *string `locationName:"hourlyPrice" type:"string"`
@@ -64150,6 +76848,125 @@ func (s *ScheduledInstancesPrivateIpAddressConfig) SetPrivateIpAddress(v string)
return s
}
+type SearchTransitGatewayRoutesInput struct {
+ _ struct{} `type:"structure"`
+
+ // Checks whether you have the required permissions for the action, without
+ // actually making the request, and provides an error response. If you have
+ // the required permissions, the error response is DryRunOperation. Otherwise,
+ // it is UnauthorizedOperation.
+ DryRun *bool `type:"boolean"`
+
+ // One or more filters. The possible values are:
+ //
+ // * transit-gateway-route-destination-cidr-block - The CIDR range.
+ //
+ // * transit-gateway-route-state - The state of the route (active | blackhole).
+ //
+ // * transit-gateway-route-transit-gateway-attachment-id - The ID of the
+ // attachment.
+ //
+ // * transit-gateway-route-type - The route type (static | propagated).
+ //
+ // * transit-gateway-route-vpn-connection-id - The ID of the VPN connection.
+ //
+ // Filters is a required field
+ Filters []*Filter `locationName:"Filter" locationNameList:"Filter" type:"list" required:"true"`
+
+ // The maximum number of routes to return.
+ MaxResults *int64 `min:"5" type:"integer"`
+
+ // The ID of the transit gateway route table.
+ //
+ // TransitGatewayRouteTableId is a required field
+ TransitGatewayRouteTableId *string `type:"string" required:"true"`
+}
+
+// String returns the string representation
+func (s SearchTransitGatewayRoutesInput) String() string {
+ return awsutil.Prettify(s)
+}
+
+// GoString returns the string representation
+func (s SearchTransitGatewayRoutesInput) GoString() string {
+ return s.String()
+}
+
+// Validate inspects the fields of the type to determine if they are valid.
+func (s *SearchTransitGatewayRoutesInput) Validate() error {
+ invalidParams := request.ErrInvalidParams{Context: "SearchTransitGatewayRoutesInput"}
+ if s.Filters == nil {
+ invalidParams.Add(request.NewErrParamRequired("Filters"))
+ }
+ if s.MaxResults != nil && *s.MaxResults < 5 {
+ invalidParams.Add(request.NewErrParamMinValue("MaxResults", 5))
+ }
+ if s.TransitGatewayRouteTableId == nil {
+ invalidParams.Add(request.NewErrParamRequired("TransitGatewayRouteTableId"))
+ }
+
+ if invalidParams.Len() > 0 {
+ return invalidParams
+ }
+ return nil
+}
+
+// SetDryRun sets the DryRun field's value.
+func (s *SearchTransitGatewayRoutesInput) SetDryRun(v bool) *SearchTransitGatewayRoutesInput {
+ s.DryRun = &v
+ return s
+}
+
+// SetFilters sets the Filters field's value.
+func (s *SearchTransitGatewayRoutesInput) SetFilters(v []*Filter) *SearchTransitGatewayRoutesInput {
+ s.Filters = v
+ return s
+}
+
+// SetMaxResults sets the MaxResults field's value.
+func (s *SearchTransitGatewayRoutesInput) SetMaxResults(v int64) *SearchTransitGatewayRoutesInput {
+ s.MaxResults = &v
+ return s
+}
+
+// SetTransitGatewayRouteTableId sets the TransitGatewayRouteTableId field's value.
+func (s *SearchTransitGatewayRoutesInput) SetTransitGatewayRouteTableId(v string) *SearchTransitGatewayRoutesInput {
+ s.TransitGatewayRouteTableId = &v
+ return s
+}
+
+type SearchTransitGatewayRoutesOutput struct {
+ _ struct{} `type:"structure"`
+
+ // Indicates whether there are additional routes available.
+ AdditionalRoutesAvailable *bool `locationName:"additionalRoutesAvailable" type:"boolean"`
+
+ // Information about the routes.
+ Routes []*TransitGatewayRoute `locationName:"routeSet" locationNameList:"item" type:"list"`
+}
+
+// String returns the string representation
+func (s SearchTransitGatewayRoutesOutput) String() string {
+ return awsutil.Prettify(s)
+}
+
+// GoString returns the string representation
+func (s SearchTransitGatewayRoutesOutput) GoString() string {
+ return s.String()
+}
+
+// SetAdditionalRoutesAvailable sets the AdditionalRoutesAvailable field's value.
+func (s *SearchTransitGatewayRoutesOutput) SetAdditionalRoutesAvailable(v bool) *SearchTransitGatewayRoutesOutput {
+ s.AdditionalRoutesAvailable = &v
+ return s
+}
+
+// SetRoutes sets the Routes field's value.
+func (s *SearchTransitGatewayRoutesOutput) SetRoutes(v []*TransitGatewayRoute) *SearchTransitGatewayRoutesOutput {
+ s.Routes = v
+ return s
+}
+
// Describes a security group
type SecurityGroup struct {
_ struct{} `type:"structure"`
@@ -64275,14 +77092,10 @@ type SecurityGroupReference struct {
_ struct{} `type:"structure"`
// The ID of your security group.
- //
- // GroupId is a required field
- GroupId *string `locationName:"groupId" type:"string" required:"true"`
+ GroupId *string `locationName:"groupId" type:"string"`
// The ID of the VPC with the referencing security group.
- //
- // ReferencingVpcId is a required field
- ReferencingVpcId *string `locationName:"referencingVpcId" type:"string" required:"true"`
+ ReferencingVpcId *string `locationName:"referencingVpcId" type:"string"`
// The ID of the VPC peering connection.
VpcPeeringConnectionId *string `locationName:"vpcPeeringConnectionId" type:"string"`
@@ -64533,14 +77346,14 @@ type SlotDateTimeRangeRequest struct {
// The earliest date and time, in UTC, for the Scheduled Instance to start.
//
// EarliestTime is a required field
- EarliestTime *time.Time `type:"timestamp" timestampFormat:"iso8601" required:"true"`
+ EarliestTime *time.Time `type:"timestamp" required:"true"`
// The latest date and time, in UTC, for the Scheduled Instance to start. This
// value must be later than or equal to the earliest date and at most three
// months in the future.
//
// LatestTime is a required field
- LatestTime *time.Time `type:"timestamp" timestampFormat:"iso8601" required:"true"`
+ LatestTime *time.Time `type:"timestamp" required:"true"`
}
// String returns the string representation
@@ -64586,10 +77399,10 @@ type SlotStartTimeRangeRequest struct {
_ struct{} `type:"structure"`
// The earliest date and time, in UTC, for the Scheduled Instance to start.
- EarliestTime *time.Time `type:"timestamp" timestampFormat:"iso8601"`
+ EarliestTime *time.Time `type:"timestamp"`
// The latest date and time, in UTC, for the Scheduled Instance to start.
- LatestTime *time.Time `type:"timestamp" timestampFormat:"iso8601"`
+ LatestTime *time.Time `type:"timestamp"`
}
// String returns the string representation
@@ -64653,7 +77466,7 @@ type Snapshot struct {
SnapshotId *string `locationName:"snapshotId" type:"string"`
// The time stamp when the snapshot was initiated.
- StartTime *time.Time `locationName:"startTime" type:"timestamp" timestampFormat:"iso8601"`
+ StartTime *time.Time `locationName:"startTime" type:"timestamp"`
// The snapshot state.
State *string `locationName:"status" type:"string" enum:"SnapshotState"`
@@ -64940,9 +77753,16 @@ type SnapshotTaskDetail struct {
// The size of the disk in the snapshot, in GiB.
DiskImageSize *float64 `locationName:"diskImageSize" type:"double"`
+ // Indicates whether the snapshot is encrypted.
+ Encrypted *bool `locationName:"encrypted" type:"boolean"`
+
// The format of the disk image from which the snapshot is created.
Format *string `locationName:"format" type:"string"`
+ // The identifier for the AWS Key Management Service (AWS KMS) customer master
+ // key (CMK) that was used to create the encrypted snapshot.
+ KmsKeyId *string `locationName:"kmsKeyId" type:"string"`
+
// The percentage of completion for the import snapshot task.
Progress *string `locationName:"progress" type:"string"`
@@ -64984,12 +77804,24 @@ func (s *SnapshotTaskDetail) SetDiskImageSize(v float64) *SnapshotTaskDetail {
return s
}
+// SetEncrypted sets the Encrypted field's value.
+func (s *SnapshotTaskDetail) SetEncrypted(v bool) *SnapshotTaskDetail {
+ s.Encrypted = &v
+ return s
+}
+
// SetFormat sets the Format field's value.
func (s *SnapshotTaskDetail) SetFormat(v string) *SnapshotTaskDetail {
s.Format = &v
return s
}
+// SetKmsKeyId sets the KmsKeyId field's value.
+func (s *SnapshotTaskDetail) SetKmsKeyId(v string) *SnapshotTaskDetail {
+ s.KmsKeyId = &v
+ return s
+}
+
// SetProgress sets the Progress field's value.
func (s *SnapshotTaskDetail) SetProgress(v string) *SnapshotTaskDetail {
s.Progress = &v
@@ -65177,26 +78009,6 @@ func (s SpotFleetLaunchSpecification) GoString() string {
return s.String()
}
-// Validate inspects the fields of the type to determine if they are valid.
-func (s *SpotFleetLaunchSpecification) Validate() error {
- invalidParams := request.ErrInvalidParams{Context: "SpotFleetLaunchSpecification"}
- if s.NetworkInterfaces != nil {
- for i, v := range s.NetworkInterfaces {
- if v == nil {
- continue
- }
- if err := v.Validate(); err != nil {
- invalidParams.AddNested(fmt.Sprintf("%s[%v]", "NetworkInterfaces", i), err.(request.ErrInvalidParams))
- }
- }
- }
-
- if invalidParams.Len() > 0 {
- return invalidParams
- }
- return nil
-}
-
// SetAddressingType sets the AddressingType field's value.
func (s *SpotFleetLaunchSpecification) SetAddressingType(v string) *SpotFleetLaunchSpecification {
s.AddressingType = &v
@@ -65343,24 +78155,16 @@ type SpotFleetRequestConfig struct {
ActivityStatus *string `locationName:"activityStatus" type:"string" enum:"ActivityStatus"`
// The creation date and time of the request.
- //
- // CreateTime is a required field
- CreateTime *time.Time `locationName:"createTime" type:"timestamp" timestampFormat:"iso8601" required:"true"`
+ CreateTime *time.Time `locationName:"createTime" type:"timestamp"`
// The configuration of the Spot Fleet request.
- //
- // SpotFleetRequestConfig is a required field
- SpotFleetRequestConfig *SpotFleetRequestConfigData `locationName:"spotFleetRequestConfig" type:"structure" required:"true"`
+ SpotFleetRequestConfig *SpotFleetRequestConfigData `locationName:"spotFleetRequestConfig" type:"structure"`
// The ID of the Spot Fleet request.
- //
- // SpotFleetRequestId is a required field
- SpotFleetRequestId *string `locationName:"spotFleetRequestId" type:"string" required:"true"`
+ SpotFleetRequestId *string `locationName:"spotFleetRequestId" type:"string"`
// The state of the Spot Fleet request.
- //
- // SpotFleetRequestState is a required field
- SpotFleetRequestState *string `locationName:"spotFleetRequestState" type:"string" required:"true" enum:"BatchState"`
+ SpotFleetRequestState *string `locationName:"spotFleetRequestState" type:"string" enum:"BatchState"`
}
// String returns the string representation
@@ -65422,7 +78226,7 @@ type SpotFleetRequestConfigData struct {
ExcessCapacityTerminationPolicy *string `locationName:"excessCapacityTerminationPolicy" type:"string" enum:"ExcessCapacityTerminationPolicy"`
// The number of units fulfilled by this request compared to the set target
- // capacity.
+ // capacity. You cannot set this value.
FulfilledCapacity *float64 `locationName:"fulfilledCapacity" type:"double"`
// Grants the Spot Fleet permission to terminate Spot Instances on your behalf
@@ -65435,6 +78239,12 @@ type SpotFleetRequestConfigData struct {
// The behavior when a Spot Instance is interrupted. The default is terminate.
InstanceInterruptionBehavior *string `locationName:"instanceInterruptionBehavior" type:"string" enum:"InstanceInterruptionBehavior"`
+ // The number of Spot pools across which to allocate your target Spot capacity.
+ // Valid only when Spot AllocationStrategy is set to lowest-price. Spot Fleet
+ // selects the cheapest Spot pools and evenly allocates your target Spot capacity
+ // across the number of Spot pools that you specify.
+ InstancePoolsToUseCount *int64 `locationName:"instancePoolsToUseCount" type:"integer"`
+
// The launch specifications for the Spot Fleet request.
LaunchSpecifications []*SpotFleetLaunchSpecification `locationName:"launchSpecifications" locationNameList:"item" type:"list"`
@@ -65450,6 +78260,14 @@ type SpotFleetRequestConfigData struct {
// HS1, M1, M2, M3, and T1.
LoadBalancersConfig *LoadBalancersConfig `locationName:"loadBalancersConfig" type:"structure"`
+ // The order of the launch template overrides to use in fulfilling On-Demand
+ // capacity. If you specify lowestPrice, Spot Fleet uses price to determine
+ // the order, launching the lowest price first. If you specify prioritized,
+ // Spot Fleet uses the priority that you assign to each Spot Fleet launch template
+ // override, launching the highest priority first. If you do not specify a value,
+ // Spot Fleet defaults to lowestPrice.
+ OnDemandAllocationStrategy *string `locationName:"onDemandAllocationStrategy" type:"string" enum:"OnDemandAllocationStrategy"`
+
// The number of On-Demand units fulfilled by this request compared to the set
// target On-Demand capacity.
OnDemandFulfilledCapacity *float64 `locationName:"onDemandFulfilledCapacity" type:"double"`
@@ -65492,12 +78310,12 @@ type SpotFleetRequestConfigData struct {
// The start date and time of the request, in UTC format (for example, YYYY-MM-DDTHH:MM:SSZ).
// The default is to start fulfilling the request immediately.
- ValidFrom *time.Time `locationName:"validFrom" type:"timestamp" timestampFormat:"iso8601"`
+ ValidFrom *time.Time `locationName:"validFrom" type:"timestamp"`
// The end date and time of the request, in UTC format (for example, YYYY-MM-DDTHH:MM:SSZ).
// At this point, no new Spot Instance requests are placed or able to fulfill
// the request. The default end date is 7 days from the current date.
- ValidUntil *time.Time `locationName:"validUntil" type:"timestamp" timestampFormat:"iso8601"`
+ ValidUntil *time.Time `locationName:"validUntil" type:"timestamp"`
}
// String returns the string representation
@@ -65519,16 +78337,6 @@ func (s *SpotFleetRequestConfigData) Validate() error {
if s.TargetCapacity == nil {
invalidParams.Add(request.NewErrParamRequired("TargetCapacity"))
}
- if s.LaunchSpecifications != nil {
- for i, v := range s.LaunchSpecifications {
- if v == nil {
- continue
- }
- if err := v.Validate(); err != nil {
- invalidParams.AddNested(fmt.Sprintf("%s[%v]", "LaunchSpecifications", i), err.(request.ErrInvalidParams))
- }
- }
- }
if s.LaunchTemplateConfigs != nil {
for i, v := range s.LaunchTemplateConfigs {
if v == nil {
@@ -65587,6 +78395,12 @@ func (s *SpotFleetRequestConfigData) SetInstanceInterruptionBehavior(v string) *
return s
}
+// SetInstancePoolsToUseCount sets the InstancePoolsToUseCount field's value.
+func (s *SpotFleetRequestConfigData) SetInstancePoolsToUseCount(v int64) *SpotFleetRequestConfigData {
+ s.InstancePoolsToUseCount = &v
+ return s
+}
+
// SetLaunchSpecifications sets the LaunchSpecifications field's value.
func (s *SpotFleetRequestConfigData) SetLaunchSpecifications(v []*SpotFleetLaunchSpecification) *SpotFleetRequestConfigData {
s.LaunchSpecifications = v
@@ -65605,6 +78419,12 @@ func (s *SpotFleetRequestConfigData) SetLoadBalancersConfig(v *LoadBalancersConf
return s
}
+// SetOnDemandAllocationStrategy sets the OnDemandAllocationStrategy field's value.
+func (s *SpotFleetRequestConfigData) SetOnDemandAllocationStrategy(v string) *SpotFleetRequestConfigData {
+ s.OnDemandAllocationStrategy = &v
+ return s
+}
+
// SetOnDemandFulfilledCapacity sets the OnDemandFulfilledCapacity field's value.
func (s *SpotFleetRequestConfigData) SetOnDemandFulfilledCapacity(v float64) *SpotFleetRequestConfigData {
s.OnDemandFulfilledCapacity = &v
@@ -65711,7 +78531,7 @@ type SpotInstanceRequest struct {
// The date and time when the Spot Instance request was created, in UTC format
// (for example, YYYY-MM-DDTHH:MM:SSZ).
- CreateTime *time.Time `locationName:"createTime" type:"timestamp" timestampFormat:"iso8601"`
+ CreateTime *time.Time `locationName:"createTime" type:"timestamp"`
// The fault codes for the Spot Instance request, if any.
Fault *SpotInstanceStateFault `locationName:"fault" type:"structure"`
@@ -65758,14 +78578,14 @@ type SpotInstanceRequest struct {
// The start date of the request, in UTC format (for example, YYYY-MM-DDTHH:MM:SSZ).
// The request becomes active at this date and time.
- ValidFrom *time.Time `locationName:"validFrom" type:"timestamp" timestampFormat:"iso8601"`
+ ValidFrom *time.Time `locationName:"validFrom" type:"timestamp"`
// The end date of the request, in UTC format (for example, YYYY-MM-DDTHH:MM:SSZ).
// If this is a one-time request, it remains active until all instances launch,
// the request is canceled, or this date is reached. If the request is persistent,
// it remains active until it is canceled or this date is reached. The default
// end date is 7 days from the current date.
- ValidUntil *time.Time `locationName:"validUntil" type:"timestamp" timestampFormat:"iso8601"`
+ ValidUntil *time.Time `locationName:"validUntil" type:"timestamp"`
}
// String returns the string representation
@@ -65938,7 +78758,7 @@ type SpotInstanceStatus struct {
// The date and time of the most recent status update, in UTC format (for example,
// YYYY-MM-DDTHH:MM:SSZ).
- UpdateTime *time.Time `locationName:"updateTime" type:"timestamp" timestampFormat:"iso8601"`
+ UpdateTime *time.Time `locationName:"updateTime" type:"timestamp"`
}
// String returns the string representation
@@ -65985,7 +78805,9 @@ type SpotMarketOptions struct {
// default is the On-Demand price.
MaxPrice *string `type:"string"`
- // The Spot Instance request type.
+ // The Spot Instance request type. For RunInstances, persistent Spot Instance
+ // requests are only supported when InstanceInterruptionBehavior is set to either
+ // hibernate or stop.
SpotInstanceType *string `type:"string" enum:"SpotInstanceType"`
// The end date of the request. For a one-time request, the request remains
@@ -65993,7 +78815,7 @@ type SpotMarketOptions struct {
// is reached. If the request is persistent, it remains active until it is canceled
// or this date and time is reached. The default end date is 7 days from the
// current date.
- ValidUntil *time.Time `type:"timestamp" timestampFormat:"iso8601"`
+ ValidUntil *time.Time `type:"timestamp"`
}
// String returns the string representation
@@ -66041,11 +78863,25 @@ type SpotOptions struct {
_ struct{} `type:"structure"`
// Indicates how to allocate the target capacity across the Spot pools specified
- // by the Spot Fleet request. The default is lowestPrice.
+ // by the Spot Fleet request. The default is lowest-price.
AllocationStrategy *string `locationName:"allocationStrategy" type:"string" enum:"SpotAllocationStrategy"`
// The behavior when a Spot Instance is interrupted. The default is terminate.
InstanceInterruptionBehavior *string `locationName:"instanceInterruptionBehavior" type:"string" enum:"SpotInstanceInterruptionBehavior"`
+
+ // The number of Spot pools across which to allocate your target Spot capacity.
+ // Valid only when AllocationStrategy is set to lowestPrice. EC2 Fleet selects
+ // the cheapest Spot pools and evenly allocates your target Spot capacity across
+ // the number of Spot pools that you specify.
+ InstancePoolsToUseCount *int64 `locationName:"instancePoolsToUseCount" type:"integer"`
+
+ // The minimum target capacity for Spot Instances in the fleet. If the minimum
+ // target capacity is not reached, the fleet launches no instances.
+ MinTargetCapacity *int64 `locationName:"minTargetCapacity" type:"integer"`
+
+ // Indicates that the fleet uses a single instance type to launch all Spot Instances
+ // in the fleet.
+ SingleInstanceType *bool `locationName:"singleInstanceType" type:"boolean"`
}
// String returns the string representation
@@ -66070,6 +78906,24 @@ func (s *SpotOptions) SetInstanceInterruptionBehavior(v string) *SpotOptions {
return s
}
+// SetInstancePoolsToUseCount sets the InstancePoolsToUseCount field's value.
+func (s *SpotOptions) SetInstancePoolsToUseCount(v int64) *SpotOptions {
+ s.InstancePoolsToUseCount = &v
+ return s
+}
+
+// SetMinTargetCapacity sets the MinTargetCapacity field's value.
+func (s *SpotOptions) SetMinTargetCapacity(v int64) *SpotOptions {
+ s.MinTargetCapacity = &v
+ return s
+}
+
+// SetSingleInstanceType sets the SingleInstanceType field's value.
+func (s *SpotOptions) SetSingleInstanceType(v bool) *SpotOptions {
+ s.SingleInstanceType = &v
+ return s
+}
+
// Describes the configuration of Spot Instances in an EC2 Fleet request.
type SpotOptionsRequest struct {
_ struct{} `type:"structure"`
@@ -66080,6 +78934,20 @@ type SpotOptionsRequest struct {
// The behavior when a Spot Instance is interrupted. The default is terminate.
InstanceInterruptionBehavior *string `type:"string" enum:"SpotInstanceInterruptionBehavior"`
+
+ // The number of Spot pools across which to allocate your target Spot capacity.
+ // Valid only when Spot AllocationStrategy is set to lowest-price. EC2 Fleet
+ // selects the cheapest Spot pools and evenly allocates your target Spot capacity
+ // across the number of Spot pools that you specify.
+ InstancePoolsToUseCount *int64 `type:"integer"`
+
+ // The minimum target capacity for Spot Instances in the fleet. If the minimum
+ // target capacity is not reached, the fleet launches no instances.
+ MinTargetCapacity *int64 `type:"integer"`
+
+ // Indicates that the fleet uses a single instance type to launch all Spot Instances
+ // in the fleet.
+ SingleInstanceType *bool `type:"boolean"`
}
// String returns the string representation
@@ -66104,6 +78972,24 @@ func (s *SpotOptionsRequest) SetInstanceInterruptionBehavior(v string) *SpotOpti
return s
}
+// SetInstancePoolsToUseCount sets the InstancePoolsToUseCount field's value.
+func (s *SpotOptionsRequest) SetInstancePoolsToUseCount(v int64) *SpotOptionsRequest {
+ s.InstancePoolsToUseCount = &v
+ return s
+}
+
+// SetMinTargetCapacity sets the MinTargetCapacity field's value.
+func (s *SpotOptionsRequest) SetMinTargetCapacity(v int64) *SpotOptionsRequest {
+ s.MinTargetCapacity = &v
+ return s
+}
+
+// SetSingleInstanceType sets the SingleInstanceType field's value.
+func (s *SpotOptionsRequest) SetSingleInstanceType(v bool) *SpotOptionsRequest {
+ s.SingleInstanceType = &v
+ return s
+}
+
// Describes Spot Instance placement.
type SpotPlacement struct {
_ struct{} `type:"structure"`
@@ -66169,7 +79055,7 @@ type SpotPrice struct {
SpotPrice *string `locationName:"spotPrice" type:"string"`
// The date and time the request was created, in UTC format (for example, YYYY-MM-DDTHH:MM:SSZ).
- Timestamp *time.Time `locationName:"timestamp" type:"timestamp" timestampFormat:"iso8601"`
+ Timestamp *time.Time `locationName:"timestamp" type:"timestamp"`
}
// String returns the string representation
@@ -66294,9 +79180,7 @@ type StaleSecurityGroup struct {
Description *string `locationName:"description" type:"string"`
// The ID of the security group.
- //
- // GroupId is a required field
- GroupId *string `locationName:"groupId" type:"string" required:"true"`
+ GroupId *string `locationName:"groupId" type:"string"`
// The name of the security group.
GroupName *string `locationName:"groupName" type:"string"`
@@ -66357,7 +79241,6 @@ func (s *StaleSecurityGroup) SetVpcId(v string) *StaleSecurityGroup {
return s
}
-// Contains the parameters for StartInstances.
type StartInstancesInput struct {
_ struct{} `type:"structure"`
@@ -66417,7 +79300,6 @@ func (s *StartInstancesInput) SetInstanceIds(v []*string) *StartInstancesInput {
return s
}
-// Contains the output of StartInstances.
type StartInstancesOutput struct {
_ struct{} `type:"structure"`
@@ -66479,6 +79361,8 @@ type StateReason struct {
//
// * Client.InvalidSnapshot.NotFound: The specified snapshot was not found.
//
+ // * Client.UserInitiatedHibernate: Hibernation was initiated on the instance.
+ //
// * Client.UserInitiatedShutdown: The instance was shut down using the Amazon
// EC2 API.
//
@@ -66510,7 +79394,6 @@ func (s *StateReason) SetMessage(v string) *StateReason {
return s
}
-// Contains the parameters for StopInstances.
type StopInstancesInput struct {
_ struct{} `type:"structure"`
@@ -66528,6 +79411,14 @@ type StopInstancesInput struct {
// Default: false
Force *bool `locationName:"force" type:"boolean"`
+ // Hibernates the instance if the instance was enabled for hibernation at launch.
+ // If the instance cannot hibernate successfully, a normal shutdown occurs.
+ // For more information, see Hibernate Your Instance (http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Hibernate.html)
+ // in the Amazon Elastic Compute Cloud User Guide.
+ //
+ // Default: false
+ Hibernate *bool `type:"boolean"`
+
// One or more instance IDs.
//
// InstanceIds is a required field
@@ -66569,13 +79460,18 @@ func (s *StopInstancesInput) SetForce(v bool) *StopInstancesInput {
return s
}
+// SetHibernate sets the Hibernate field's value.
+func (s *StopInstancesInput) SetHibernate(v bool) *StopInstancesInput {
+ s.Hibernate = &v
+ return s
+}
+
// SetInstanceIds sets the InstanceIds field's value.
func (s *StopInstancesInput) SetInstanceIds(v []*string) *StopInstancesInput {
s.InstanceIds = v
return s
}
-// Contains the output of StopInstances.
type StopInstancesOutput struct {
_ struct{} `type:"structure"`
@@ -66667,8 +79563,11 @@ type Subnet struct {
// The Availability Zone of the subnet.
AvailabilityZone *string `locationName:"availabilityZone" type:"string"`
- // The number of unused private IPv4 addresses in the subnet. Note that the
- // IPv4 addresses for any stopped instances are considered unavailable.
+ // The AZ ID of the subnet.
+ AvailabilityZoneId *string `locationName:"availabilityZoneId" type:"string"`
+
+ // The number of unused private IPv4 addresses in the subnet. The IPv4 addresses
+ // for any stopped instances are considered unavailable.
AvailableIpAddressCount *int64 `locationName:"availableIpAddressCount" type:"integer"`
// The IPv4 CIDR block assigned to the subnet.
@@ -66684,9 +79583,15 @@ type Subnet struct {
// address.
MapPublicIpOnLaunch *bool `locationName:"mapPublicIpOnLaunch" type:"boolean"`
+ // The ID of the AWS account that owns the subnet.
+ OwnerId *string `locationName:"ownerId" type:"string"`
+
// The current state of the subnet.
State *string `locationName:"state" type:"string" enum:"SubnetState"`
+ // The Amazon Resource Name (ARN) of the subnet.
+ SubnetArn *string `locationName:"subnetArn" type:"string"`
+
// The ID of the subnet.
SubnetId *string `locationName:"subnetId" type:"string"`
@@ -66719,6 +79624,12 @@ func (s *Subnet) SetAvailabilityZone(v string) *Subnet {
return s
}
+// SetAvailabilityZoneId sets the AvailabilityZoneId field's value.
+func (s *Subnet) SetAvailabilityZoneId(v string) *Subnet {
+ s.AvailabilityZoneId = &v
+ return s
+}
+
// SetAvailableIpAddressCount sets the AvailableIpAddressCount field's value.
func (s *Subnet) SetAvailableIpAddressCount(v int64) *Subnet {
s.AvailableIpAddressCount = &v
@@ -66749,12 +79660,24 @@ func (s *Subnet) SetMapPublicIpOnLaunch(v bool) *Subnet {
return s
}
+// SetOwnerId sets the OwnerId field's value.
+func (s *Subnet) SetOwnerId(v string) *Subnet {
+ s.OwnerId = &v
+ return s
+}
+
// SetState sets the State field's value.
func (s *Subnet) SetState(v string) *Subnet {
s.State = &v
return s
}
+// SetSubnetArn sets the SubnetArn field's value.
+func (s *Subnet) SetSubnetArn(v string) *Subnet {
+ s.SubnetArn = &v
+ return s
+}
+
// SetSubnetId sets the SubnetId field's value.
func (s *Subnet) SetSubnetId(v string) *Subnet {
s.SubnetId = &v
@@ -66848,7 +79771,7 @@ func (s *SubnetIpv6CidrBlockAssociation) SetIpv6CidrBlockState(v *SubnetCidrBloc
return s
}
-// Describes the T2 instance whose credit option for CPU usage was successfully
+// Describes the T2 or T3 instance whose credit option for CPU usage was successfully
// modified.
type SuccessfulInstanceCreditSpecificationItem struct {
_ struct{} `type:"structure"`
@@ -66880,7 +79803,7 @@ type Tag struct {
// The key of the tag.
//
// Constraints: Tag keys are case-sensitive and accept a maximum of 127 Unicode
- // characters. May not begin with aws:
+ // characters. May not begin with aws:.
Key *string `locationName:"key" type:"string"`
// The value of the tag.
@@ -66919,7 +79842,7 @@ type TagDescription struct {
// The tag key.
Key *string `locationName:"key" type:"string"`
- // The ID of the resource. For example, ami-1a2b3c4d.
+ // The ID of the resource.
ResourceId *string `locationName:"resourceId" type:"string"`
// The resource type.
@@ -66968,7 +79891,8 @@ type TagSpecification struct {
_ struct{} `type:"structure"`
// The type of resource to tag. Currently, the resource types that support tagging
- // on creation are instance, snapshot, and volume.
+ // on creation are fleet, dedicated-host, instance, snapshot, and volume. To
+ // tag a resource after it has been created, see CreateTags.
ResourceType *string `locationName:"resourceType" type:"string" enum:"ResourceType"`
// The tags to apply to the resource.
@@ -67210,9 +80134,7 @@ type TargetGroup struct {
_ struct{} `type:"structure"`
// The Amazon Resource Name (ARN) of the target group.
- //
- // Arn is a required field
- Arn *string `locationName:"arn" type:"string" required:"true"`
+ Arn *string `locationName:"arn" type:"string"`
}
// String returns the string representation
@@ -67225,19 +80147,6 @@ func (s TargetGroup) GoString() string {
return s.String()
}
-// Validate inspects the fields of the type to determine if they are valid.
-func (s *TargetGroup) Validate() error {
- invalidParams := request.ErrInvalidParams{Context: "TargetGroup"}
- if s.Arn == nil {
- invalidParams.Add(request.NewErrParamRequired("Arn"))
- }
-
- if invalidParams.Len() > 0 {
- return invalidParams
- }
- return nil
-}
-
// SetArn sets the Arn field's value.
func (s *TargetGroup) SetArn(v string) *TargetGroup {
s.Arn = &v
@@ -67250,9 +80159,7 @@ type TargetGroupsConfig struct {
_ struct{} `type:"structure"`
// One or more target groups.
- //
- // TargetGroups is a required field
- TargetGroups []*TargetGroup `locationName:"targetGroups" locationNameList:"item" min:"1" type:"list" required:"true"`
+ TargetGroups []*TargetGroup `locationName:"targetGroups" locationNameList:"item" min:"1" type:"list"`
}
// String returns the string representation
@@ -67268,22 +80175,9 @@ func (s TargetGroupsConfig) GoString() string {
// Validate inspects the fields of the type to determine if they are valid.
func (s *TargetGroupsConfig) Validate() error {
invalidParams := request.ErrInvalidParams{Context: "TargetGroupsConfig"}
- if s.TargetGroups == nil {
- invalidParams.Add(request.NewErrParamRequired("TargetGroups"))
- }
if s.TargetGroups != nil && len(s.TargetGroups) < 1 {
invalidParams.Add(request.NewErrParamMinLen("TargetGroups", 1))
}
- if s.TargetGroups != nil {
- for i, v := range s.TargetGroups {
- if v == nil {
- continue
- }
- if err := v.Validate(); err != nil {
- invalidParams.AddNested(fmt.Sprintf("%s[%v]", "TargetGroups", i), err.(request.ErrInvalidParams))
- }
- }
- }
if invalidParams.Len() > 0 {
return invalidParams
@@ -67297,6 +80191,75 @@ func (s *TargetGroupsConfig) SetTargetGroups(v []*TargetGroup) *TargetGroupsConf
return s
}
+// Describes a target network associated with a Client VPN endpoint.
+type TargetNetwork struct {
+ _ struct{} `type:"structure"`
+
+ // The ID of the association.
+ AssociationId *string `locationName:"associationId" type:"string"`
+
+ // The ID of the Client VPN endpoint with which the target network is associated.
+ ClientVpnEndpointId *string `locationName:"clientVpnEndpointId" type:"string"`
+
+ // The IDs of the security groups applied to the target network association.
+ SecurityGroups []*string `locationName:"securityGroups" locationNameList:"item" type:"list"`
+
+ // The current state of the target network association.
+ Status *AssociationStatus `locationName:"status" type:"structure"`
+
+ // The ID of the subnet specified as the target network.
+ TargetNetworkId *string `locationName:"targetNetworkId" type:"string"`
+
+ // The ID of the VPC in which the target network (subnet) is located.
+ VpcId *string `locationName:"vpcId" type:"string"`
+}
+
+// String returns the string representation
+func (s TargetNetwork) String() string {
+ return awsutil.Prettify(s)
+}
+
+// GoString returns the string representation
+func (s TargetNetwork) GoString() string {
+ return s.String()
+}
+
+// SetAssociationId sets the AssociationId field's value.
+func (s *TargetNetwork) SetAssociationId(v string) *TargetNetwork {
+ s.AssociationId = &v
+ return s
+}
+
+// SetClientVpnEndpointId sets the ClientVpnEndpointId field's value.
+func (s *TargetNetwork) SetClientVpnEndpointId(v string) *TargetNetwork {
+ s.ClientVpnEndpointId = &v
+ return s
+}
+
+// SetSecurityGroups sets the SecurityGroups field's value.
+func (s *TargetNetwork) SetSecurityGroups(v []*string) *TargetNetwork {
+ s.SecurityGroups = v
+ return s
+}
+
+// SetStatus sets the Status field's value.
+func (s *TargetNetwork) SetStatus(v *AssociationStatus) *TargetNetwork {
+ s.Status = v
+ return s
+}
+
+// SetTargetNetworkId sets the TargetNetworkId field's value.
+func (s *TargetNetwork) SetTargetNetworkId(v string) *TargetNetwork {
+ s.TargetNetworkId = &v
+ return s
+}
+
+// SetVpcId sets the VpcId field's value.
+func (s *TargetNetwork) SetVpcId(v string) *TargetNetwork {
+ s.VpcId = &v
+ return s
+}
+
// The total value of the new Convertible Reserved Instances.
type TargetReservationValue struct {
_ struct{} `type:"structure"`
@@ -67333,7 +80296,159 @@ func (s *TargetReservationValue) SetTargetConfiguration(v *TargetConfiguration)
return s
}
-// Contains the parameters for TerminateInstances.
+type TerminateClientVpnConnectionsInput struct {
+ _ struct{} `type:"structure"`
+
+ // The ID of the Client VPN endpoint to which the client is connected.
+ //
+ // ClientVpnEndpointId is a required field
+ ClientVpnEndpointId *string `type:"string" required:"true"`
+
+ // The ID of the client connection to be terminated.
+ ConnectionId *string `type:"string"`
+
+ // Checks whether you have the required permissions for the action, without
+ // actually making the request, and provides an error response. If you have
+ // the required permissions, the error response is DryRunOperation. Otherwise,
+ // it is UnauthorizedOperation.
+ DryRun *bool `type:"boolean"`
+
+ // The name of the user who initiated the connection. Use this option to terminate
+ // all active connections for the specified user. This option can only be used
+ // if the user has established up to five connections.
+ Username *string `type:"string"`
+}
+
+// String returns the string representation
+func (s TerminateClientVpnConnectionsInput) String() string {
+ return awsutil.Prettify(s)
+}
+
+// GoString returns the string representation
+func (s TerminateClientVpnConnectionsInput) GoString() string {
+ return s.String()
+}
+
+// Validate inspects the fields of the type to determine if they are valid.
+func (s *TerminateClientVpnConnectionsInput) Validate() error {
+ invalidParams := request.ErrInvalidParams{Context: "TerminateClientVpnConnectionsInput"}
+ if s.ClientVpnEndpointId == nil {
+ invalidParams.Add(request.NewErrParamRequired("ClientVpnEndpointId"))
+ }
+
+ if invalidParams.Len() > 0 {
+ return invalidParams
+ }
+ return nil
+}
+
+// SetClientVpnEndpointId sets the ClientVpnEndpointId field's value.
+func (s *TerminateClientVpnConnectionsInput) SetClientVpnEndpointId(v string) *TerminateClientVpnConnectionsInput {
+ s.ClientVpnEndpointId = &v
+ return s
+}
+
+// SetConnectionId sets the ConnectionId field's value.
+func (s *TerminateClientVpnConnectionsInput) SetConnectionId(v string) *TerminateClientVpnConnectionsInput {
+ s.ConnectionId = &v
+ return s
+}
+
+// SetDryRun sets the DryRun field's value.
+func (s *TerminateClientVpnConnectionsInput) SetDryRun(v bool) *TerminateClientVpnConnectionsInput {
+ s.DryRun = &v
+ return s
+}
+
+// SetUsername sets the Username field's value.
+func (s *TerminateClientVpnConnectionsInput) SetUsername(v string) *TerminateClientVpnConnectionsInput {
+ s.Username = &v
+ return s
+}
+
+type TerminateClientVpnConnectionsOutput struct {
+ _ struct{} `type:"structure"`
+
+ // The ID of the Client VPN endpoint.
+ ClientVpnEndpointId *string `locationName:"clientVpnEndpointId" type:"string"`
+
+ // The current state of the client connections.
+ ConnectionStatuses []*TerminateConnectionStatus `locationName:"connectionStatuses" locationNameList:"item" type:"list"`
+
+ // The user who established the terminated client connections.
+ Username *string `locationName:"username" type:"string"`
+}
+
+// String returns the string representation
+func (s TerminateClientVpnConnectionsOutput) String() string {
+ return awsutil.Prettify(s)
+}
+
+// GoString returns the string representation
+func (s TerminateClientVpnConnectionsOutput) GoString() string {
+ return s.String()
+}
+
+// SetClientVpnEndpointId sets the ClientVpnEndpointId field's value.
+func (s *TerminateClientVpnConnectionsOutput) SetClientVpnEndpointId(v string) *TerminateClientVpnConnectionsOutput {
+ s.ClientVpnEndpointId = &v
+ return s
+}
+
+// SetConnectionStatuses sets the ConnectionStatuses field's value.
+func (s *TerminateClientVpnConnectionsOutput) SetConnectionStatuses(v []*TerminateConnectionStatus) *TerminateClientVpnConnectionsOutput {
+ s.ConnectionStatuses = v
+ return s
+}
+
+// SetUsername sets the Username field's value.
+func (s *TerminateClientVpnConnectionsOutput) SetUsername(v string) *TerminateClientVpnConnectionsOutput {
+ s.Username = &v
+ return s
+}
+
+// Information about a terminated Client VPN endpoint client connection.
+type TerminateConnectionStatus struct {
+ _ struct{} `type:"structure"`
+
+ // The ID of the client connection.
+ ConnectionId *string `locationName:"connectionId" type:"string"`
+
+ // A message about the status of the client connection, if applicable.
+ CurrentStatus *ClientVpnConnectionStatus `locationName:"currentStatus" type:"structure"`
+
+ // The state of the client connection.
+ PreviousStatus *ClientVpnConnectionStatus `locationName:"previousStatus" type:"structure"`
+}
+
+// String returns the string representation
+func (s TerminateConnectionStatus) String() string {
+ return awsutil.Prettify(s)
+}
+
+// GoString returns the string representation
+func (s TerminateConnectionStatus) GoString() string {
+ return s.String()
+}
+
+// SetConnectionId sets the ConnectionId field's value.
+func (s *TerminateConnectionStatus) SetConnectionId(v string) *TerminateConnectionStatus {
+ s.ConnectionId = &v
+ return s
+}
+
+// SetCurrentStatus sets the CurrentStatus field's value.
+func (s *TerminateConnectionStatus) SetCurrentStatus(v *ClientVpnConnectionStatus) *TerminateConnectionStatus {
+ s.CurrentStatus = v
+ return s
+}
+
+// SetPreviousStatus sets the PreviousStatus field's value.
+func (s *TerminateConnectionStatus) SetPreviousStatus(v *ClientVpnConnectionStatus) *TerminateConnectionStatus {
+ s.PreviousStatus = v
+ return s
+}
+
type TerminateInstancesInput struct {
_ struct{} `type:"structure"`
@@ -67387,7 +80502,6 @@ func (s *TerminateInstancesInput) SetInstanceIds(v []*string) *TerminateInstance
return s
}
-// Contains the output of TerminateInstances.
type TerminateInstancesOutput struct {
_ struct{} `type:"structure"`
@@ -67411,6 +80525,954 @@ func (s *TerminateInstancesOutput) SetTerminatingInstances(v []*InstanceStateCha
return s
}
+// Describes a transit gateway.
+type TransitGateway struct {
+ _ struct{} `type:"structure"`
+
+ // The creation time.
+ CreationTime *time.Time `locationName:"creationTime" type:"timestamp"`
+
+ // The description of the transit gateway.
+ Description *string `locationName:"description" type:"string"`
+
+ // The transit gateway options.
+ Options *TransitGatewayOptions `locationName:"options" type:"structure"`
+
+ // The ID of the AWS account ID that owns the transit gateway.
+ OwnerId *string `locationName:"ownerId" type:"string"`
+
+ // The state of the transit gateway.
+ State *string `locationName:"state" type:"string" enum:"TransitGatewayState"`
+
+ // The tags for the transit gateway.
+ Tags []*Tag `locationName:"tagSet" locationNameList:"item" type:"list"`
+
+ // The Amazon Resource Name (ARN) of the transit gateway.
+ TransitGatewayArn *string `locationName:"transitGatewayArn" type:"string"`
+
+ // The ID of the transit gateway.
+ TransitGatewayId *string `locationName:"transitGatewayId" type:"string"`
+}
+
+// String returns the string representation
+func (s TransitGateway) String() string {
+ return awsutil.Prettify(s)
+}
+
+// GoString returns the string representation
+func (s TransitGateway) GoString() string {
+ return s.String()
+}
+
+// SetCreationTime sets the CreationTime field's value.
+func (s *TransitGateway) SetCreationTime(v time.Time) *TransitGateway {
+ s.CreationTime = &v
+ return s
+}
+
+// SetDescription sets the Description field's value.
+func (s *TransitGateway) SetDescription(v string) *TransitGateway {
+ s.Description = &v
+ return s
+}
+
+// SetOptions sets the Options field's value.
+func (s *TransitGateway) SetOptions(v *TransitGatewayOptions) *TransitGateway {
+ s.Options = v
+ return s
+}
+
+// SetOwnerId sets the OwnerId field's value.
+func (s *TransitGateway) SetOwnerId(v string) *TransitGateway {
+ s.OwnerId = &v
+ return s
+}
+
+// SetState sets the State field's value.
+func (s *TransitGateway) SetState(v string) *TransitGateway {
+ s.State = &v
+ return s
+}
+
+// SetTags sets the Tags field's value.
+func (s *TransitGateway) SetTags(v []*Tag) *TransitGateway {
+ s.Tags = v
+ return s
+}
+
+// SetTransitGatewayArn sets the TransitGatewayArn field's value.
+func (s *TransitGateway) SetTransitGatewayArn(v string) *TransitGateway {
+ s.TransitGatewayArn = &v
+ return s
+}
+
+// SetTransitGatewayId sets the TransitGatewayId field's value.
+func (s *TransitGateway) SetTransitGatewayId(v string) *TransitGateway {
+ s.TransitGatewayId = &v
+ return s
+}
+
+// Describes an association between a resource attachment and a transit gateway
+// route table.
+type TransitGatewayAssociation struct {
+ _ struct{} `type:"structure"`
+
+ // The ID of the resource.
+ ResourceId *string `locationName:"resourceId" type:"string"`
+
+ // The resource type.
+ ResourceType *string `locationName:"resourceType" type:"string" enum:"TransitGatewayAttachmentResourceType"`
+
+ // The state of the association.
+ State *string `locationName:"state" type:"string" enum:"TransitGatewayAssociationState"`
+
+ // The ID of the attachment.
+ TransitGatewayAttachmentId *string `locationName:"transitGatewayAttachmentId" type:"string"`
+
+ // The ID of the transit gateway route table.
+ TransitGatewayRouteTableId *string `locationName:"transitGatewayRouteTableId" type:"string"`
+}
+
+// String returns the string representation
+func (s TransitGatewayAssociation) String() string {
+ return awsutil.Prettify(s)
+}
+
+// GoString returns the string representation
+func (s TransitGatewayAssociation) GoString() string {
+ return s.String()
+}
+
+// SetResourceId sets the ResourceId field's value.
+func (s *TransitGatewayAssociation) SetResourceId(v string) *TransitGatewayAssociation {
+ s.ResourceId = &v
+ return s
+}
+
+// SetResourceType sets the ResourceType field's value.
+func (s *TransitGatewayAssociation) SetResourceType(v string) *TransitGatewayAssociation {
+ s.ResourceType = &v
+ return s
+}
+
+// SetState sets the State field's value.
+func (s *TransitGatewayAssociation) SetState(v string) *TransitGatewayAssociation {
+ s.State = &v
+ return s
+}
+
+// SetTransitGatewayAttachmentId sets the TransitGatewayAttachmentId field's value.
+func (s *TransitGatewayAssociation) SetTransitGatewayAttachmentId(v string) *TransitGatewayAssociation {
+ s.TransitGatewayAttachmentId = &v
+ return s
+}
+
+// SetTransitGatewayRouteTableId sets the TransitGatewayRouteTableId field's value.
+func (s *TransitGatewayAssociation) SetTransitGatewayRouteTableId(v string) *TransitGatewayAssociation {
+ s.TransitGatewayRouteTableId = &v
+ return s
+}
+
+// Describes an attachment between a resource and a transit gateway.
+type TransitGatewayAttachment struct {
+ _ struct{} `type:"structure"`
+
+ // The association.
+ Association *TransitGatewayAttachmentAssociation `locationName:"association" type:"structure"`
+
+ // The creation time.
+ CreationTime *time.Time `locationName:"creationTime" type:"timestamp"`
+
+ // The ID of the resource.
+ ResourceId *string `locationName:"resourceId" type:"string"`
+
+ // The ID of the AWS account that owns the resource.
+ ResourceOwnerId *string `locationName:"resourceOwnerId" type:"string"`
+
+ // The resource type.
+ ResourceType *string `locationName:"resourceType" type:"string" enum:"TransitGatewayAttachmentResourceType"`
+
+ // The attachment state.
+ State *string `locationName:"state" type:"string" enum:"TransitGatewayAttachmentState"`
+
+ // The tags for the attachment.
+ Tags []*Tag `locationName:"tagSet" locationNameList:"item" type:"list"`
+
+ // The ID of the attachment.
+ TransitGatewayAttachmentId *string `locationName:"transitGatewayAttachmentId" type:"string"`
+
+ // The ID of the transit gateway.
+ TransitGatewayId *string `locationName:"transitGatewayId" type:"string"`
+
+ // The ID of the AWS account that owns the transit gateway.
+ TransitGatewayOwnerId *string `locationName:"transitGatewayOwnerId" type:"string"`
+}
+
+// String returns the string representation
+func (s TransitGatewayAttachment) String() string {
+ return awsutil.Prettify(s)
+}
+
+// GoString returns the string representation
+func (s TransitGatewayAttachment) GoString() string {
+ return s.String()
+}
+
+// SetAssociation sets the Association field's value.
+func (s *TransitGatewayAttachment) SetAssociation(v *TransitGatewayAttachmentAssociation) *TransitGatewayAttachment {
+ s.Association = v
+ return s
+}
+
+// SetCreationTime sets the CreationTime field's value.
+func (s *TransitGatewayAttachment) SetCreationTime(v time.Time) *TransitGatewayAttachment {
+ s.CreationTime = &v
+ return s
+}
+
+// SetResourceId sets the ResourceId field's value.
+func (s *TransitGatewayAttachment) SetResourceId(v string) *TransitGatewayAttachment {
+ s.ResourceId = &v
+ return s
+}
+
+// SetResourceOwnerId sets the ResourceOwnerId field's value.
+func (s *TransitGatewayAttachment) SetResourceOwnerId(v string) *TransitGatewayAttachment {
+ s.ResourceOwnerId = &v
+ return s
+}
+
+// SetResourceType sets the ResourceType field's value.
+func (s *TransitGatewayAttachment) SetResourceType(v string) *TransitGatewayAttachment {
+ s.ResourceType = &v
+ return s
+}
+
+// SetState sets the State field's value.
+func (s *TransitGatewayAttachment) SetState(v string) *TransitGatewayAttachment {
+ s.State = &v
+ return s
+}
+
+// SetTags sets the Tags field's value.
+func (s *TransitGatewayAttachment) SetTags(v []*Tag) *TransitGatewayAttachment {
+ s.Tags = v
+ return s
+}
+
+// SetTransitGatewayAttachmentId sets the TransitGatewayAttachmentId field's value.
+func (s *TransitGatewayAttachment) SetTransitGatewayAttachmentId(v string) *TransitGatewayAttachment {
+ s.TransitGatewayAttachmentId = &v
+ return s
+}
+
+// SetTransitGatewayId sets the TransitGatewayId field's value.
+func (s *TransitGatewayAttachment) SetTransitGatewayId(v string) *TransitGatewayAttachment {
+ s.TransitGatewayId = &v
+ return s
+}
+
+// SetTransitGatewayOwnerId sets the TransitGatewayOwnerId field's value.
+func (s *TransitGatewayAttachment) SetTransitGatewayOwnerId(v string) *TransitGatewayAttachment {
+ s.TransitGatewayOwnerId = &v
+ return s
+}
+
+// Describes an association.
+type TransitGatewayAttachmentAssociation struct {
+ _ struct{} `type:"structure"`
+
+ // The state of the association.
+ State *string `locationName:"state" type:"string" enum:"TransitGatewayAssociationState"`
+
+ // The ID of the route table for the transit gateway.
+ TransitGatewayRouteTableId *string `locationName:"transitGatewayRouteTableId" type:"string"`
+}
+
+// String returns the string representation
+func (s TransitGatewayAttachmentAssociation) String() string {
+ return awsutil.Prettify(s)
+}
+
+// GoString returns the string representation
+func (s TransitGatewayAttachmentAssociation) GoString() string {
+ return s.String()
+}
+
+// SetState sets the State field's value.
+func (s *TransitGatewayAttachmentAssociation) SetState(v string) *TransitGatewayAttachmentAssociation {
+ s.State = &v
+ return s
+}
+
+// SetTransitGatewayRouteTableId sets the TransitGatewayRouteTableId field's value.
+func (s *TransitGatewayAttachmentAssociation) SetTransitGatewayRouteTableId(v string) *TransitGatewayAttachmentAssociation {
+ s.TransitGatewayRouteTableId = &v
+ return s
+}
+
+// Describes a propagation route table.
+type TransitGatewayAttachmentPropagation struct {
+ _ struct{} `type:"structure"`
+
+ // The state of the propagation route table.
+ State *string `locationName:"state" type:"string" enum:"TransitGatewayPropagationState"`
+
+ // The ID of the propagation route table.
+ TransitGatewayRouteTableId *string `locationName:"transitGatewayRouteTableId" type:"string"`
+}
+
+// String returns the string representation
+func (s TransitGatewayAttachmentPropagation) String() string {
+ return awsutil.Prettify(s)
+}
+
+// GoString returns the string representation
+func (s TransitGatewayAttachmentPropagation) GoString() string {
+ return s.String()
+}
+
+// SetState sets the State field's value.
+func (s *TransitGatewayAttachmentPropagation) SetState(v string) *TransitGatewayAttachmentPropagation {
+ s.State = &v
+ return s
+}
+
+// SetTransitGatewayRouteTableId sets the TransitGatewayRouteTableId field's value.
+func (s *TransitGatewayAttachmentPropagation) SetTransitGatewayRouteTableId(v string) *TransitGatewayAttachmentPropagation {
+ s.TransitGatewayRouteTableId = &v
+ return s
+}
+
+// Describes the options for a transit gateway.
+type TransitGatewayOptions struct {
+ _ struct{} `type:"structure"`
+
+ // A private Autonomous System Number (ASN) for the Amazon side of a BGP session.
+ // The range is 64512 to 65534 for 16-bit ASNs and 4200000000 to 4294967294
+ // for 32-bit ASNs.
+ AmazonSideAsn *int64 `locationName:"amazonSideAsn" type:"long"`
+
+ // The ID of the default association route table.
+ AssociationDefaultRouteTableId *string `locationName:"associationDefaultRouteTableId" type:"string"`
+
+ // Indicates whether attachment requests are automatically accepted.
+ AutoAcceptSharedAttachments *string `locationName:"autoAcceptSharedAttachments" type:"string" enum:"AutoAcceptSharedAttachmentsValue"`
+
+ // Indicates whether resource attachments are automatically associated with
+ // the default association route table.
+ DefaultRouteTableAssociation *string `locationName:"defaultRouteTableAssociation" type:"string" enum:"DefaultRouteTableAssociationValue"`
+
+ // Indicates whether resource attachments automatically propagate routes to
+ // the default propagation route table.
+ DefaultRouteTablePropagation *string `locationName:"defaultRouteTablePropagation" type:"string" enum:"DefaultRouteTablePropagationValue"`
+
+ // Indicates whether DNS support is enabled.
+ DnsSupport *string `locationName:"dnsSupport" type:"string" enum:"DnsSupportValue"`
+
+ // The ID of the default propagation route table.
+ PropagationDefaultRouteTableId *string `locationName:"propagationDefaultRouteTableId" type:"string"`
+
+ // Indicates whether Equal Cost Multipath Protocol support is enabled.
+ VpnEcmpSupport *string `locationName:"vpnEcmpSupport" type:"string" enum:"VpnEcmpSupportValue"`
+}
+
+// String returns the string representation
+func (s TransitGatewayOptions) String() string {
+ return awsutil.Prettify(s)
+}
+
+// GoString returns the string representation
+func (s TransitGatewayOptions) GoString() string {
+ return s.String()
+}
+
+// SetAmazonSideAsn sets the AmazonSideAsn field's value.
+func (s *TransitGatewayOptions) SetAmazonSideAsn(v int64) *TransitGatewayOptions {
+ s.AmazonSideAsn = &v
+ return s
+}
+
+// SetAssociationDefaultRouteTableId sets the AssociationDefaultRouteTableId field's value.
+func (s *TransitGatewayOptions) SetAssociationDefaultRouteTableId(v string) *TransitGatewayOptions {
+ s.AssociationDefaultRouteTableId = &v
+ return s
+}
+
+// SetAutoAcceptSharedAttachments sets the AutoAcceptSharedAttachments field's value.
+func (s *TransitGatewayOptions) SetAutoAcceptSharedAttachments(v string) *TransitGatewayOptions {
+ s.AutoAcceptSharedAttachments = &v
+ return s
+}
+
+// SetDefaultRouteTableAssociation sets the DefaultRouteTableAssociation field's value.
+func (s *TransitGatewayOptions) SetDefaultRouteTableAssociation(v string) *TransitGatewayOptions {
+ s.DefaultRouteTableAssociation = &v
+ return s
+}
+
+// SetDefaultRouteTablePropagation sets the DefaultRouteTablePropagation field's value.
+func (s *TransitGatewayOptions) SetDefaultRouteTablePropagation(v string) *TransitGatewayOptions {
+ s.DefaultRouteTablePropagation = &v
+ return s
+}
+
+// SetDnsSupport sets the DnsSupport field's value.
+func (s *TransitGatewayOptions) SetDnsSupport(v string) *TransitGatewayOptions {
+ s.DnsSupport = &v
+ return s
+}
+
+// SetPropagationDefaultRouteTableId sets the PropagationDefaultRouteTableId field's value.
+func (s *TransitGatewayOptions) SetPropagationDefaultRouteTableId(v string) *TransitGatewayOptions {
+ s.PropagationDefaultRouteTableId = &v
+ return s
+}
+
+// SetVpnEcmpSupport sets the VpnEcmpSupport field's value.
+func (s *TransitGatewayOptions) SetVpnEcmpSupport(v string) *TransitGatewayOptions {
+ s.VpnEcmpSupport = &v
+ return s
+}
+
+// Describes route propagation.
+type TransitGatewayPropagation struct {
+ _ struct{} `type:"structure"`
+
+ // The ID of the resource.
+ ResourceId *string `locationName:"resourceId" type:"string"`
+
+ // The resource type.
+ ResourceType *string `locationName:"resourceType" type:"string" enum:"TransitGatewayAttachmentResourceType"`
+
+ // The state.
+ State *string `locationName:"state" type:"string" enum:"TransitGatewayPropagationState"`
+
+ // The ID of the attachment.
+ TransitGatewayAttachmentId *string `locationName:"transitGatewayAttachmentId" type:"string"`
+
+ // The ID of the transit gateway route table.
+ TransitGatewayRouteTableId *string `locationName:"transitGatewayRouteTableId" type:"string"`
+}
+
+// String returns the string representation
+func (s TransitGatewayPropagation) String() string {
+ return awsutil.Prettify(s)
+}
+
+// GoString returns the string representation
+func (s TransitGatewayPropagation) GoString() string {
+ return s.String()
+}
+
+// SetResourceId sets the ResourceId field's value.
+func (s *TransitGatewayPropagation) SetResourceId(v string) *TransitGatewayPropagation {
+ s.ResourceId = &v
+ return s
+}
+
+// SetResourceType sets the ResourceType field's value.
+func (s *TransitGatewayPropagation) SetResourceType(v string) *TransitGatewayPropagation {
+ s.ResourceType = &v
+ return s
+}
+
+// SetState sets the State field's value.
+func (s *TransitGatewayPropagation) SetState(v string) *TransitGatewayPropagation {
+ s.State = &v
+ return s
+}
+
+// SetTransitGatewayAttachmentId sets the TransitGatewayAttachmentId field's value.
+func (s *TransitGatewayPropagation) SetTransitGatewayAttachmentId(v string) *TransitGatewayPropagation {
+ s.TransitGatewayAttachmentId = &v
+ return s
+}
+
+// SetTransitGatewayRouteTableId sets the TransitGatewayRouteTableId field's value.
+func (s *TransitGatewayPropagation) SetTransitGatewayRouteTableId(v string) *TransitGatewayPropagation {
+ s.TransitGatewayRouteTableId = &v
+ return s
+}
+
+// Describes the options for a transit gateway.
+type TransitGatewayRequestOptions struct {
+ _ struct{} `type:"structure"`
+
+ // A private Autonomous System Number (ASN) for the Amazon side of a BGP session.
+ // The range is 64512 to 65534 for 16-bit ASNs and 4200000000 to 4294967294
+ // for 32-bit ASNs.
+ AmazonSideAsn *int64 `type:"long"`
+
+ // Enable or disable automatic acceptance of attachment requests. The default
+ // is disable.
+ AutoAcceptSharedAttachments *string `type:"string" enum:"AutoAcceptSharedAttachmentsValue"`
+
+ // Enable or disable automatic association with the default association route
+ // table. The default is enable.
+ DefaultRouteTableAssociation *string `type:"string" enum:"DefaultRouteTableAssociationValue"`
+
+ // Enable or disable automatic propagation of routes to the default propagation
+ // route table. The default is enable.
+ DefaultRouteTablePropagation *string `type:"string" enum:"DefaultRouteTablePropagationValue"`
+
+ // Enable or disable DNS support.
+ DnsSupport *string `type:"string" enum:"DnsSupportValue"`
+
+ // Enable or disable Equal Cost Multipath Protocol support.
+ VpnEcmpSupport *string `type:"string" enum:"VpnEcmpSupportValue"`
+}
+
+// String returns the string representation
+func (s TransitGatewayRequestOptions) String() string {
+ return awsutil.Prettify(s)
+}
+
+// GoString returns the string representation
+func (s TransitGatewayRequestOptions) GoString() string {
+ return s.String()
+}
+
+// SetAmazonSideAsn sets the AmazonSideAsn field's value.
+func (s *TransitGatewayRequestOptions) SetAmazonSideAsn(v int64) *TransitGatewayRequestOptions {
+ s.AmazonSideAsn = &v
+ return s
+}
+
+// SetAutoAcceptSharedAttachments sets the AutoAcceptSharedAttachments field's value.
+func (s *TransitGatewayRequestOptions) SetAutoAcceptSharedAttachments(v string) *TransitGatewayRequestOptions {
+ s.AutoAcceptSharedAttachments = &v
+ return s
+}
+
+// SetDefaultRouteTableAssociation sets the DefaultRouteTableAssociation field's value.
+func (s *TransitGatewayRequestOptions) SetDefaultRouteTableAssociation(v string) *TransitGatewayRequestOptions {
+ s.DefaultRouteTableAssociation = &v
+ return s
+}
+
+// SetDefaultRouteTablePropagation sets the DefaultRouteTablePropagation field's value.
+func (s *TransitGatewayRequestOptions) SetDefaultRouteTablePropagation(v string) *TransitGatewayRequestOptions {
+ s.DefaultRouteTablePropagation = &v
+ return s
+}
+
+// SetDnsSupport sets the DnsSupport field's value.
+func (s *TransitGatewayRequestOptions) SetDnsSupport(v string) *TransitGatewayRequestOptions {
+ s.DnsSupport = &v
+ return s
+}
+
+// SetVpnEcmpSupport sets the VpnEcmpSupport field's value.
+func (s *TransitGatewayRequestOptions) SetVpnEcmpSupport(v string) *TransitGatewayRequestOptions {
+ s.VpnEcmpSupport = &v
+ return s
+}
+
+// Describes a route for a transit gateway route table.
+type TransitGatewayRoute struct {
+ _ struct{} `type:"structure"`
+
+ // The CIDR block used for destination matches.
+ DestinationCidrBlock *string `locationName:"destinationCidrBlock" type:"string"`
+
+ // The state of the route.
+ State *string `locationName:"state" type:"string" enum:"TransitGatewayRouteState"`
+
+ // The attachments.
+ TransitGatewayAttachments []*TransitGatewayRouteAttachment `locationName:"transitGatewayAttachments" locationNameList:"item" type:"list"`
+
+ // The route type.
+ Type *string `locationName:"type" type:"string" enum:"TransitGatewayRouteType"`
+}
+
+// String returns the string representation
+func (s TransitGatewayRoute) String() string {
+ return awsutil.Prettify(s)
+}
+
+// GoString returns the string representation
+func (s TransitGatewayRoute) GoString() string {
+ return s.String()
+}
+
+// SetDestinationCidrBlock sets the DestinationCidrBlock field's value.
+func (s *TransitGatewayRoute) SetDestinationCidrBlock(v string) *TransitGatewayRoute {
+ s.DestinationCidrBlock = &v
+ return s
+}
+
+// SetState sets the State field's value.
+func (s *TransitGatewayRoute) SetState(v string) *TransitGatewayRoute {
+ s.State = &v
+ return s
+}
+
+// SetTransitGatewayAttachments sets the TransitGatewayAttachments field's value.
+func (s *TransitGatewayRoute) SetTransitGatewayAttachments(v []*TransitGatewayRouteAttachment) *TransitGatewayRoute {
+ s.TransitGatewayAttachments = v
+ return s
+}
+
+// SetType sets the Type field's value.
+func (s *TransitGatewayRoute) SetType(v string) *TransitGatewayRoute {
+ s.Type = &v
+ return s
+}
+
+// Describes a route attachment.
+type TransitGatewayRouteAttachment struct {
+ _ struct{} `type:"structure"`
+
+ // The ID of the resource.
+ ResourceId *string `locationName:"resourceId" type:"string"`
+
+ // The resource type.
+ ResourceType *string `locationName:"resourceType" type:"string" enum:"TransitGatewayAttachmentResourceType"`
+
+ // The ID of the attachment.
+ TransitGatewayAttachmentId *string `locationName:"transitGatewayAttachmentId" type:"string"`
+}
+
+// String returns the string representation
+func (s TransitGatewayRouteAttachment) String() string {
+ return awsutil.Prettify(s)
+}
+
+// GoString returns the string representation
+func (s TransitGatewayRouteAttachment) GoString() string {
+ return s.String()
+}
+
+// SetResourceId sets the ResourceId field's value.
+func (s *TransitGatewayRouteAttachment) SetResourceId(v string) *TransitGatewayRouteAttachment {
+ s.ResourceId = &v
+ return s
+}
+
+// SetResourceType sets the ResourceType field's value.
+func (s *TransitGatewayRouteAttachment) SetResourceType(v string) *TransitGatewayRouteAttachment {
+ s.ResourceType = &v
+ return s
+}
+
+// SetTransitGatewayAttachmentId sets the TransitGatewayAttachmentId field's value.
+func (s *TransitGatewayRouteAttachment) SetTransitGatewayAttachmentId(v string) *TransitGatewayRouteAttachment {
+ s.TransitGatewayAttachmentId = &v
+ return s
+}
+
+// Describes a transit gateway route table.
+type TransitGatewayRouteTable struct {
+ _ struct{} `type:"structure"`
+
+ // The creation time.
+ CreationTime *time.Time `locationName:"creationTime" type:"timestamp"`
+
+ // Indicates whether this is the default association route table for the transit
+ // gateway.
+ DefaultAssociationRouteTable *bool `locationName:"defaultAssociationRouteTable" type:"boolean"`
+
+ // Indicates whether this is the default propagation route table for the transit
+ // gateway.
+ DefaultPropagationRouteTable *bool `locationName:"defaultPropagationRouteTable" type:"boolean"`
+
+ // The state of the transit gateway route table.
+ State *string `locationName:"state" type:"string" enum:"TransitGatewayRouteTableState"`
+
+ // Any tags assigned to the route table.
+ Tags []*Tag `locationName:"tagSet" locationNameList:"item" type:"list"`
+
+ // The ID of the transit gateway.
+ TransitGatewayId *string `locationName:"transitGatewayId" type:"string"`
+
+ // The ID of the transit gateway route table.
+ TransitGatewayRouteTableId *string `locationName:"transitGatewayRouteTableId" type:"string"`
+}
+
+// String returns the string representation
+func (s TransitGatewayRouteTable) String() string {
+ return awsutil.Prettify(s)
+}
+
+// GoString returns the string representation
+func (s TransitGatewayRouteTable) GoString() string {
+ return s.String()
+}
+
+// SetCreationTime sets the CreationTime field's value.
+func (s *TransitGatewayRouteTable) SetCreationTime(v time.Time) *TransitGatewayRouteTable {
+ s.CreationTime = &v
+ return s
+}
+
+// SetDefaultAssociationRouteTable sets the DefaultAssociationRouteTable field's value.
+func (s *TransitGatewayRouteTable) SetDefaultAssociationRouteTable(v bool) *TransitGatewayRouteTable {
+ s.DefaultAssociationRouteTable = &v
+ return s
+}
+
+// SetDefaultPropagationRouteTable sets the DefaultPropagationRouteTable field's value.
+func (s *TransitGatewayRouteTable) SetDefaultPropagationRouteTable(v bool) *TransitGatewayRouteTable {
+ s.DefaultPropagationRouteTable = &v
+ return s
+}
+
+// SetState sets the State field's value.
+func (s *TransitGatewayRouteTable) SetState(v string) *TransitGatewayRouteTable {
+ s.State = &v
+ return s
+}
+
+// SetTags sets the Tags field's value.
+func (s *TransitGatewayRouteTable) SetTags(v []*Tag) *TransitGatewayRouteTable {
+ s.Tags = v
+ return s
+}
+
+// SetTransitGatewayId sets the TransitGatewayId field's value.
+func (s *TransitGatewayRouteTable) SetTransitGatewayId(v string) *TransitGatewayRouteTable {
+ s.TransitGatewayId = &v
+ return s
+}
+
+// SetTransitGatewayRouteTableId sets the TransitGatewayRouteTableId field's value.
+func (s *TransitGatewayRouteTable) SetTransitGatewayRouteTableId(v string) *TransitGatewayRouteTable {
+ s.TransitGatewayRouteTableId = &v
+ return s
+}
+
+// Describes an association between a route table and a resource attachment.
+type TransitGatewayRouteTableAssociation struct {
+ _ struct{} `type:"structure"`
+
+ // The ID of the resource.
+ ResourceId *string `locationName:"resourceId" type:"string"`
+
+ // The resource type.
+ ResourceType *string `locationName:"resourceType" type:"string" enum:"TransitGatewayAttachmentResourceType"`
+
+ // The state of the association.
+ State *string `locationName:"state" type:"string" enum:"TransitGatewayAssociationState"`
+
+ // The ID of the attachment.
+ TransitGatewayAttachmentId *string `locationName:"transitGatewayAttachmentId" type:"string"`
+}
+
+// String returns the string representation
+func (s TransitGatewayRouteTableAssociation) String() string {
+ return awsutil.Prettify(s)
+}
+
+// GoString returns the string representation
+func (s TransitGatewayRouteTableAssociation) GoString() string {
+ return s.String()
+}
+
+// SetResourceId sets the ResourceId field's value.
+func (s *TransitGatewayRouteTableAssociation) SetResourceId(v string) *TransitGatewayRouteTableAssociation {
+ s.ResourceId = &v
+ return s
+}
+
+// SetResourceType sets the ResourceType field's value.
+func (s *TransitGatewayRouteTableAssociation) SetResourceType(v string) *TransitGatewayRouteTableAssociation {
+ s.ResourceType = &v
+ return s
+}
+
+// SetState sets the State field's value.
+func (s *TransitGatewayRouteTableAssociation) SetState(v string) *TransitGatewayRouteTableAssociation {
+ s.State = &v
+ return s
+}
+
+// SetTransitGatewayAttachmentId sets the TransitGatewayAttachmentId field's value.
+func (s *TransitGatewayRouteTableAssociation) SetTransitGatewayAttachmentId(v string) *TransitGatewayRouteTableAssociation {
+ s.TransitGatewayAttachmentId = &v
+ return s
+}
+
+// Describes a route table propagation.
+type TransitGatewayRouteTablePropagation struct {
+ _ struct{} `type:"structure"`
+
+ // The ID of the resource.
+ ResourceId *string `locationName:"resourceId" type:"string"`
+
+ // The type of resource.
+ ResourceType *string `locationName:"resourceType" type:"string" enum:"TransitGatewayAttachmentResourceType"`
+
+ // The state of the resource.
+ State *string `locationName:"state" type:"string" enum:"TransitGatewayPropagationState"`
+
+ // The ID of the attachment.
+ TransitGatewayAttachmentId *string `locationName:"transitGatewayAttachmentId" type:"string"`
+}
+
+// String returns the string representation
+func (s TransitGatewayRouteTablePropagation) String() string {
+ return awsutil.Prettify(s)
+}
+
+// GoString returns the string representation
+func (s TransitGatewayRouteTablePropagation) GoString() string {
+ return s.String()
+}
+
+// SetResourceId sets the ResourceId field's value.
+func (s *TransitGatewayRouteTablePropagation) SetResourceId(v string) *TransitGatewayRouteTablePropagation {
+ s.ResourceId = &v
+ return s
+}
+
+// SetResourceType sets the ResourceType field's value.
+func (s *TransitGatewayRouteTablePropagation) SetResourceType(v string) *TransitGatewayRouteTablePropagation {
+ s.ResourceType = &v
+ return s
+}
+
+// SetState sets the State field's value.
+func (s *TransitGatewayRouteTablePropagation) SetState(v string) *TransitGatewayRouteTablePropagation {
+ s.State = &v
+ return s
+}
+
+// SetTransitGatewayAttachmentId sets the TransitGatewayAttachmentId field's value.
+func (s *TransitGatewayRouteTablePropagation) SetTransitGatewayAttachmentId(v string) *TransitGatewayRouteTablePropagation {
+ s.TransitGatewayAttachmentId = &v
+ return s
+}
+
+// Describes a VPC attachment.
+type TransitGatewayVpcAttachment struct {
+ _ struct{} `type:"structure"`
+
+ // The creation time.
+ CreationTime *time.Time `locationName:"creationTime" type:"timestamp"`
+
+ // The VPC attachment options.
+ Options *TransitGatewayVpcAttachmentOptions `locationName:"options" type:"structure"`
+
+ // The state of the VPC attachment.
+ State *string `locationName:"state" type:"string" enum:"TransitGatewayAttachmentState"`
+
+ // The IDs of the subnets.
+ SubnetIds []*string `locationName:"subnetIds" locationNameList:"item" type:"list"`
+
+ // The tags for the VPC attachment.
+ Tags []*Tag `locationName:"tagSet" locationNameList:"item" type:"list"`
+
+ // The ID of the attachment.
+ TransitGatewayAttachmentId *string `locationName:"transitGatewayAttachmentId" type:"string"`
+
+ // The ID of the transit gateway.
+ TransitGatewayId *string `locationName:"transitGatewayId" type:"string"`
+
+ // The ID of the VPC.
+ VpcId *string `locationName:"vpcId" type:"string"`
+
+ // The ID of the AWS account that owns the VPC.
+ VpcOwnerId *string `locationName:"vpcOwnerId" type:"string"`
+}
+
+// String returns the string representation
+func (s TransitGatewayVpcAttachment) String() string {
+ return awsutil.Prettify(s)
+}
+
+// GoString returns the string representation
+func (s TransitGatewayVpcAttachment) GoString() string {
+ return s.String()
+}
+
+// SetCreationTime sets the CreationTime field's value.
+func (s *TransitGatewayVpcAttachment) SetCreationTime(v time.Time) *TransitGatewayVpcAttachment {
+ s.CreationTime = &v
+ return s
+}
+
+// SetOptions sets the Options field's value.
+func (s *TransitGatewayVpcAttachment) SetOptions(v *TransitGatewayVpcAttachmentOptions) *TransitGatewayVpcAttachment {
+ s.Options = v
+ return s
+}
+
+// SetState sets the State field's value.
+func (s *TransitGatewayVpcAttachment) SetState(v string) *TransitGatewayVpcAttachment {
+ s.State = &v
+ return s
+}
+
+// SetSubnetIds sets the SubnetIds field's value.
+func (s *TransitGatewayVpcAttachment) SetSubnetIds(v []*string) *TransitGatewayVpcAttachment {
+ s.SubnetIds = v
+ return s
+}
+
+// SetTags sets the Tags field's value.
+func (s *TransitGatewayVpcAttachment) SetTags(v []*Tag) *TransitGatewayVpcAttachment {
+ s.Tags = v
+ return s
+}
+
+// SetTransitGatewayAttachmentId sets the TransitGatewayAttachmentId field's value.
+func (s *TransitGatewayVpcAttachment) SetTransitGatewayAttachmentId(v string) *TransitGatewayVpcAttachment {
+ s.TransitGatewayAttachmentId = &v
+ return s
+}
+
+// SetTransitGatewayId sets the TransitGatewayId field's value.
+func (s *TransitGatewayVpcAttachment) SetTransitGatewayId(v string) *TransitGatewayVpcAttachment {
+ s.TransitGatewayId = &v
+ return s
+}
+
+// SetVpcId sets the VpcId field's value.
+func (s *TransitGatewayVpcAttachment) SetVpcId(v string) *TransitGatewayVpcAttachment {
+ s.VpcId = &v
+ return s
+}
+
+// SetVpcOwnerId sets the VpcOwnerId field's value.
+func (s *TransitGatewayVpcAttachment) SetVpcOwnerId(v string) *TransitGatewayVpcAttachment {
+ s.VpcOwnerId = &v
+ return s
+}
+
+// Describes the VPC attachment options.
+type TransitGatewayVpcAttachmentOptions struct {
+ _ struct{} `type:"structure"`
+
+ // Indicates whether DNS support is enabled.
+ DnsSupport *string `locationName:"dnsSupport" type:"string" enum:"DnsSupportValue"`
+
+ // Indicates whether IPv6 support is enabled.
+ Ipv6Support *string `locationName:"ipv6Support" type:"string" enum:"Ipv6SupportValue"`
+}
+
+// String returns the string representation
+func (s TransitGatewayVpcAttachmentOptions) String() string {
+ return awsutil.Prettify(s)
+}
+
+// GoString returns the string representation
+func (s TransitGatewayVpcAttachmentOptions) GoString() string {
+ return s.String()
+}
+
+// SetDnsSupport sets the DnsSupport field's value.
+func (s *TransitGatewayVpcAttachmentOptions) SetDnsSupport(v string) *TransitGatewayVpcAttachmentOptions {
+ s.DnsSupport = &v
+ return s
+}
+
+// SetIpv6Support sets the Ipv6Support field's value.
+func (s *TransitGatewayVpcAttachmentOptions) SetIpv6Support(v string) *TransitGatewayVpcAttachmentOptions {
+ s.Ipv6Support = &v
+ return s
+}
+
type UnassignIpv6AddressesInput struct {
_ struct{} `type:"structure"`
@@ -67563,7 +81625,6 @@ func (s UnassignPrivateIpAddressesOutput) GoString() string {
return s.String()
}
-// Contains the parameters for UnmonitorInstances.
type UnmonitorInstancesInput struct {
_ struct{} `type:"structure"`
@@ -67614,7 +81675,6 @@ func (s *UnmonitorInstancesInput) SetInstanceIds(v []*string) *UnmonitorInstance
return s
}
-// Contains the output of UnmonitorInstances.
type UnmonitorInstancesOutput struct {
_ struct{} `type:"structure"`
@@ -67638,12 +81698,13 @@ func (s *UnmonitorInstancesOutput) SetInstanceMonitorings(v []*InstanceMonitorin
return s
}
-// Describes the T2 instance whose credit option for CPU usage was not modified.
+// Describes the T2 or T3 instance whose credit option for CPU usage was not
+// modified.
type UnsuccessfulInstanceCreditSpecificationItem struct {
_ struct{} `type:"structure"`
- // The applicable error for the T2 instance whose credit option for CPU usage
- // was not modified.
+ // The applicable error for the T2 or T3 instance whose credit option for CPU
+ // usage was not modified.
Error *UnsuccessfulInstanceCreditSpecificationItemError `locationName:"error" type:"structure"`
// The ID of the instance.
@@ -67672,8 +81733,8 @@ func (s *UnsuccessfulInstanceCreditSpecificationItem) SetInstanceId(v string) *U
return s
}
-// Information about the error for the T2 instance whose credit option for CPU
-// usage was not modified.
+// Information about the error for the T2 or T3 instance whose credit option
+// for CPU usage was not modified.
type UnsuccessfulInstanceCreditSpecificationItemError struct {
_ struct{} `type:"structure"`
@@ -67711,9 +81772,7 @@ type UnsuccessfulItem struct {
_ struct{} `type:"structure"`
// Information about the error.
- //
- // Error is a required field
- Error *UnsuccessfulItemError `locationName:"error" type:"structure" required:"true"`
+ Error *UnsuccessfulItemError `locationName:"error" type:"structure"`
// The ID of the resource.
ResourceId *string `locationName:"resourceId" type:"string"`
@@ -67747,14 +81806,10 @@ type UnsuccessfulItemError struct {
_ struct{} `type:"structure"`
// The error code.
- //
- // Code is a required field
- Code *string `locationName:"code" type:"string" required:"true"`
+ Code *string `locationName:"code" type:"string"`
// The error message accompanying the error code.
- //
- // Message is a required field
- Message *string `locationName:"message" type:"string" required:"true"`
+ Message *string `locationName:"message" type:"string"`
}
// String returns the string representation
@@ -67779,7 +81834,6 @@ func (s *UnsuccessfulItemError) SetMessage(v string) *UnsuccessfulItemError {
return s
}
-// Contains the parameters for UpdateSecurityGroupRuleDescriptionsEgress.
type UpdateSecurityGroupRuleDescriptionsEgressInput struct {
_ struct{} `type:"structure"`
@@ -67851,7 +81905,6 @@ func (s *UpdateSecurityGroupRuleDescriptionsEgressInput) SetIpPermissions(v []*I
return s
}
-// Contains the output of UpdateSecurityGroupRuleDescriptionsEgress.
type UpdateSecurityGroupRuleDescriptionsEgressOutput struct {
_ struct{} `type:"structure"`
@@ -67875,7 +81928,6 @@ func (s *UpdateSecurityGroupRuleDescriptionsEgressOutput) SetReturn(v bool) *Upd
return s
}
-// Contains the parameters for UpdateSecurityGroupRuleDescriptionsIngress.
type UpdateSecurityGroupRuleDescriptionsIngressInput struct {
_ struct{} `type:"structure"`
@@ -67947,7 +81999,6 @@ func (s *UpdateSecurityGroupRuleDescriptionsIngressInput) SetIpPermissions(v []*
return s
}
-// Contains the output of UpdateSecurityGroupRuleDescriptionsIngress.
type UpdateSecurityGroupRuleDescriptionsIngressOutput struct {
_ struct{} `type:"structure"`
@@ -68165,7 +82216,7 @@ type VgwTelemetry struct {
AcceptedRouteCount *int64 `locationName:"acceptedRouteCount" type:"integer"`
// The date and time of the last change in status.
- LastStatusChange *time.Time `locationName:"lastStatusChange" type:"timestamp" timestampFormat:"iso8601"`
+ LastStatusChange *time.Time `locationName:"lastStatusChange" type:"timestamp"`
// The Internet-routable IP address of the virtual private gateway's outside
// interface.
@@ -68229,7 +82280,7 @@ type Volume struct {
AvailabilityZone *string `locationName:"availabilityZone" type:"string"`
// The time stamp when volume creation was initiated.
- CreateTime *time.Time `locationName:"createTime" type:"timestamp" timestampFormat:"iso8601"`
+ CreateTime *time.Time `locationName:"createTime" type:"timestamp"`
// Indicates whether the volume will be encrypted.
Encrypted *bool `locationName:"encrypted" type:"boolean"`
@@ -68238,12 +82289,17 @@ type Volume struct {
// For Provisioned IOPS SSD volumes, this represents the number of IOPS that
// are provisioned for the volume. For General Purpose SSD volumes, this represents
// the baseline performance of the volume and the rate at which the volume accumulates
- // I/O credits for bursting. For more information on General Purpose SSD baseline
- // performance, I/O credits, and bursting, see Amazon EBS Volume Types (http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSVolumeTypes.html)
+ // I/O credits for bursting. For more information about General Purpose SSD
+ // baseline performance, I/O credits, and bursting, see Amazon EBS Volume Types
+ // (http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSVolumeTypes.html)
// in the Amazon Elastic Compute Cloud User Guide.
//
- // Constraint: Range is 100-32000 IOPS for io1 volumes and 100-10000 IOPS for
- // gp2 volumes.
+ // Constraints: Range is 100-16,000 IOPS for gp2 volumes and 100 to 64,000IOPS
+ // for io1 volumes in most regions. Maximum io1IOPS of 64,000 is guaranteed
+ // only on Nitro-based instances (AWSEC2/latest/UserGuide/instance-types.html#ec2-nitro-instances).
+ // Other instance families guarantee performance up to 32,000 IOPS. For more
+ // information, see Amazon EBS Volume Types (http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSVolumeTypes.html)
+ // in the Amazon Elastic Compute Cloud User Guide.
//
// Condition: This parameter is required for requests to create io1 volumes;
// it is not used in requests to create gp2, st1, sc1, or standard volumes.
@@ -68361,7 +82417,7 @@ type VolumeAttachment struct {
_ struct{} `type:"structure"`
// The time stamp when the attachment initiated.
- AttachTime *time.Time `locationName:"attachTime" type:"timestamp" timestampFormat:"iso8601"`
+ AttachTime *time.Time `locationName:"attachTime" type:"timestamp"`
// Indicates whether the EBS volume is deleted on instance termination.
DeleteOnTermination *bool `locationName:"deleteOnTermination" type:"boolean"`
@@ -68470,41 +82526,41 @@ func (s *VolumeDetail) SetSize(v int64) *VolumeDetail {
type VolumeModification struct {
_ struct{} `type:"structure"`
- // Modification completion or failure time.
- EndTime *time.Time `locationName:"endTime" type:"timestamp" timestampFormat:"iso8601"`
+ // The modification completion or failure time.
+ EndTime *time.Time `locationName:"endTime" type:"timestamp"`
- // Current state of modification. Modification state is null for unmodified
+ // The current modification state. The modification state is null for unmodified
// volumes.
ModificationState *string `locationName:"modificationState" type:"string" enum:"VolumeModificationState"`
- // Original IOPS rate of the volume being modified.
+ // The original IOPS rate of the volume.
OriginalIops *int64 `locationName:"originalIops" type:"integer"`
- // Original size of the volume being modified.
+ // The original size of the volume.
OriginalSize *int64 `locationName:"originalSize" type:"integer"`
- // Original EBS volume type of the volume being modified.
+ // The original EBS volume type of the volume.
OriginalVolumeType *string `locationName:"originalVolumeType" type:"string" enum:"VolumeType"`
- // Modification progress from 0 to 100%.
+ // The modification progress, from 0 to 100 percent complete.
Progress *int64 `locationName:"progress" type:"long"`
- // Modification start time
- StartTime *time.Time `locationName:"startTime" type:"timestamp" timestampFormat:"iso8601"`
+ // The modification start time.
+ StartTime *time.Time `locationName:"startTime" type:"timestamp"`
- // Generic status message on modification progress or failure.
+ // A status message about the modification progress or failure.
StatusMessage *string `locationName:"statusMessage" type:"string"`
- // Target IOPS rate of the volume being modified.
+ // The target IOPS rate of the volume.
TargetIops *int64 `locationName:"targetIops" type:"integer"`
- // Target size of the volume being modified.
+ // The target size of the volume, in GiB.
TargetSize *int64 `locationName:"targetSize" type:"integer"`
- // Target EBS volume type of the volume being modified.
+ // The target EBS volume type of the volume.
TargetVolumeType *string `locationName:"targetVolumeType" type:"string" enum:"VolumeType"`
- // ID of the volume being modified.
+ // The ID of the volume.
VolumeId *string `locationName:"volumeId" type:"string"`
}
@@ -68688,10 +82744,10 @@ type VolumeStatusEvent struct {
EventType *string `locationName:"eventType" type:"string"`
// The latest end time of the event.
- NotAfter *time.Time `locationName:"notAfter" type:"timestamp" timestampFormat:"iso8601"`
+ NotAfter *time.Time `locationName:"notAfter" type:"timestamp"`
// The earliest start time of the event.
- NotBefore *time.Time `locationName:"notBefore" type:"timestamp" timestampFormat:"iso8601"`
+ NotBefore *time.Time `locationName:"notBefore" type:"timestamp"`
}
// String returns the string representation
@@ -68850,6 +82906,9 @@ type Vpc struct {
// Indicates whether the VPC is the default VPC.
IsDefault *bool `locationName:"isDefault" type:"boolean"`
+ // The ID of the AWS account that owns the VPC.
+ OwnerId *string `locationName:"ownerId" type:"string"`
+
// The current state of the VPC.
State *string `locationName:"state" type:"string" enum:"VpcState"`
@@ -68906,6 +82965,12 @@ func (s *Vpc) SetIsDefault(v bool) *Vpc {
return s
}
+// SetOwnerId sets the OwnerId field's value.
+func (s *Vpc) SetOwnerId(v string) *Vpc {
+ s.OwnerId = &v
+ return s
+}
+
// SetState sets the State field's value.
func (s *Vpc) SetState(v string) *Vpc {
s.State = &v
@@ -69079,7 +83144,7 @@ type VpcEndpoint struct {
_ struct{} `type:"structure"`
// The date and time the VPC endpoint was created.
- CreationTimestamp *time.Time `locationName:"creationTimestamp" type:"timestamp" timestampFormat:"iso8601"`
+ CreationTimestamp *time.Time `locationName:"creationTimestamp" type:"timestamp"`
// (Interface endpoint) The DNS entries for the endpoint.
DnsEntries []*DnsEntry `locationName:"dnsEntrySet" locationNameList:"item" type:"list"`
@@ -69213,7 +83278,7 @@ type VpcEndpointConnection struct {
_ struct{} `type:"structure"`
// The date and time the VPC endpoint was created.
- CreationTimestamp *time.Time `locationName:"creationTimestamp" type:"timestamp" timestampFormat:"iso8601"`
+ CreationTimestamp *time.Time `locationName:"creationTimestamp" type:"timestamp"`
// The ID of the service to which the endpoint is connected.
ServiceId *string `locationName:"serviceId" type:"string"`
@@ -69319,7 +83384,7 @@ type VpcPeeringConnection struct {
AccepterVpcInfo *VpcPeeringConnectionVpcInfo `locationName:"accepterVpcInfo" type:"structure"`
// The time that an unaccepted VPC peering connection will expire.
- ExpirationTime *time.Time `locationName:"expirationTime" type:"timestamp" timestampFormat:"iso8601"`
+ ExpirationTime *time.Time `locationName:"expirationTime" type:"timestamp"`
// Information about the requester VPC. CIDR block information is only returned
// when describing an active VPC peering connection.
@@ -69569,6 +83634,9 @@ type VpnConnection struct {
// Any tags assigned to the VPN connection.
Tags []*Tag `locationName:"tagSet" locationNameList:"item" type:"list"`
+ // The ID of the transit gateway associated with the VPN connection.
+ TransitGatewayId *string `locationName:"transitGatewayId" type:"string"`
+
// The type of VPN connection.
Type *string `locationName:"type" type:"string" enum:"GatewayType"`
@@ -69634,6 +83702,12 @@ func (s *VpnConnection) SetTags(v []*Tag) *VpnConnection {
return s
}
+// SetTransitGatewayId sets the TransitGatewayId field's value.
+func (s *VpnConnection) SetTransitGatewayId(v string) *VpnConnection {
+ s.TransitGatewayId = &v
+ return s
+}
+
// SetType sets the Type field's value.
func (s *VpnConnection) SetType(v string) *VpnConnection {
s.Type = &v
@@ -69897,6 +83971,79 @@ func (s *VpnTunnelOptionsSpecification) SetTunnelInsideCidr(v string) *VpnTunnel
return s
}
+type WithdrawByoipCidrInput struct {
+ _ struct{} `type:"structure"`
+
+ // The public IPv4 address range, in CIDR notation.
+ //
+ // Cidr is a required field
+ Cidr *string `type:"string" required:"true"`
+
+ // Checks whether you have the required permissions for the action, without
+ // actually making the request, and provides an error response. If you have
+ // the required permissions, the error response is DryRunOperation. Otherwise,
+ // it is UnauthorizedOperation.
+ DryRun *bool `type:"boolean"`
+}
+
+// String returns the string representation
+func (s WithdrawByoipCidrInput) String() string {
+ return awsutil.Prettify(s)
+}
+
+// GoString returns the string representation
+func (s WithdrawByoipCidrInput) GoString() string {
+ return s.String()
+}
+
+// Validate inspects the fields of the type to determine if they are valid.
+func (s *WithdrawByoipCidrInput) Validate() error {
+ invalidParams := request.ErrInvalidParams{Context: "WithdrawByoipCidrInput"}
+ if s.Cidr == nil {
+ invalidParams.Add(request.NewErrParamRequired("Cidr"))
+ }
+
+ if invalidParams.Len() > 0 {
+ return invalidParams
+ }
+ return nil
+}
+
+// SetCidr sets the Cidr field's value.
+func (s *WithdrawByoipCidrInput) SetCidr(v string) *WithdrawByoipCidrInput {
+ s.Cidr = &v
+ return s
+}
+
+// SetDryRun sets the DryRun field's value.
+func (s *WithdrawByoipCidrInput) SetDryRun(v bool) *WithdrawByoipCidrInput {
+ s.DryRun = &v
+ return s
+}
+
+type WithdrawByoipCidrOutput struct {
+ _ struct{} `type:"structure"`
+
+ // Information about the address pool.
+ ByoipCidr *ByoipCidr `locationName:"byoipCidr" type:"structure"`
+}
+
+// String returns the string representation
+func (s WithdrawByoipCidrOutput) String() string {
+ return awsutil.Prettify(s)
+}
+
+// GoString returns the string representation
+func (s WithdrawByoipCidrOutput) GoString() string {
+ return s.String()
+}
+
+// SetByoipCidr sets the ByoipCidr field's value.
+func (s *WithdrawByoipCidrOutput) SetByoipCidr(v *ByoipCidr) *WithdrawByoipCidrOutput {
+ s.ByoipCidr = v
+ return s
+}
+
const (
// AccountAttributeNameSupportedPlatforms is a AccountAttributeName enum value
AccountAttributeNameSupportedPlatforms = "supported-platforms"
@@ -69958,6 +84105,31 @@ const (
// ArchitectureValuesX8664 is a ArchitectureValues enum value
ArchitectureValuesX8664 = "x86_64"
+
+ // ArchitectureValuesArm64 is a ArchitectureValues enum value
+ ArchitectureValuesArm64 = "arm64"
+)
+
+const (
+ // AssociatedNetworkTypeVpc is a AssociatedNetworkType enum value
+ AssociatedNetworkTypeVpc = "vpc"
+)
+
+const (
+ // AssociationStatusCodeAssociating is a AssociationStatusCode enum value
+ AssociationStatusCodeAssociating = "associating"
+
+ // AssociationStatusCodeAssociated is a AssociationStatusCode enum value
+ AssociationStatusCodeAssociated = "associated"
+
+ // AssociationStatusCodeAssociationFailed is a AssociationStatusCode enum value
+ AssociationStatusCodeAssociationFailed = "association-failed"
+
+ // AssociationStatusCodeDisassociating is a AssociationStatusCode enum value
+ AssociationStatusCodeDisassociating = "disassociating"
+
+ // AssociationStatusCodeDisassociated is a AssociationStatusCode enum value
+ AssociationStatusCodeDisassociated = "disassociated"
)
const (
@@ -69974,6 +84146,14 @@ const (
AttachmentStatusDetached = "detached"
)
+const (
+ // AutoAcceptSharedAttachmentsValueEnable is a AutoAcceptSharedAttachmentsValue enum value
+ AutoAcceptSharedAttachmentsValueEnable = "enable"
+
+ // AutoAcceptSharedAttachmentsValueDisable is a AutoAcceptSharedAttachmentsValue enum value
+ AutoAcceptSharedAttachmentsValueDisable = "disable"
+)
+
const (
// AutoPlacementOn is a AutoPlacement enum value
AutoPlacementOn = "on"
@@ -70042,6 +84222,29 @@ const (
BundleTaskStateFailed = "failed"
)
+const (
+ // ByoipCidrStateAdvertised is a ByoipCidrState enum value
+ ByoipCidrStateAdvertised = "advertised"
+
+ // ByoipCidrStateDeprovisioned is a ByoipCidrState enum value
+ ByoipCidrStateDeprovisioned = "deprovisioned"
+
+ // ByoipCidrStateFailedDeprovision is a ByoipCidrState enum value
+ ByoipCidrStateFailedDeprovision = "failed-deprovision"
+
+ // ByoipCidrStateFailedProvision is a ByoipCidrState enum value
+ ByoipCidrStateFailedProvision = "failed-provision"
+
+ // ByoipCidrStatePendingDeprovision is a ByoipCidrState enum value
+ ByoipCidrStatePendingDeprovision = "pending-deprovision"
+
+ // ByoipCidrStatePendingProvision is a ByoipCidrState enum value
+ ByoipCidrStatePendingProvision = "pending-provision"
+
+ // ByoipCidrStateProvisioned is a ByoipCidrState enum value
+ ByoipCidrStateProvisioned = "provisioned"
+)
+
const (
// CancelBatchErrorCodeFleetRequestIdDoesNotExist is a CancelBatchErrorCode enum value
CancelBatchErrorCodeFleetRequestIdDoesNotExist = "fleetRequestIdDoesNotExist"
@@ -70073,6 +84276,137 @@ const (
CancelSpotInstanceRequestStateCompleted = "completed"
)
+const (
+ // CapacityReservationInstancePlatformLinuxUnix is a CapacityReservationInstancePlatform enum value
+ CapacityReservationInstancePlatformLinuxUnix = "Linux/UNIX"
+
+ // CapacityReservationInstancePlatformRedHatEnterpriseLinux is a CapacityReservationInstancePlatform enum value
+ CapacityReservationInstancePlatformRedHatEnterpriseLinux = "Red Hat Enterprise Linux"
+
+ // CapacityReservationInstancePlatformSuselinux is a CapacityReservationInstancePlatform enum value
+ CapacityReservationInstancePlatformSuselinux = "SUSE Linux"
+
+ // CapacityReservationInstancePlatformWindows is a CapacityReservationInstancePlatform enum value
+ CapacityReservationInstancePlatformWindows = "Windows"
+
+ // CapacityReservationInstancePlatformWindowswithSqlserver is a CapacityReservationInstancePlatform enum value
+ CapacityReservationInstancePlatformWindowswithSqlserver = "Windows with SQL Server"
+
+ // CapacityReservationInstancePlatformWindowswithSqlserverEnterprise is a CapacityReservationInstancePlatform enum value
+ CapacityReservationInstancePlatformWindowswithSqlserverEnterprise = "Windows with SQL Server Enterprise"
+
+ // CapacityReservationInstancePlatformWindowswithSqlserverStandard is a CapacityReservationInstancePlatform enum value
+ CapacityReservationInstancePlatformWindowswithSqlserverStandard = "Windows with SQL Server Standard"
+
+ // CapacityReservationInstancePlatformWindowswithSqlserverWeb is a CapacityReservationInstancePlatform enum value
+ CapacityReservationInstancePlatformWindowswithSqlserverWeb = "Windows with SQL Server Web"
+)
+
+const (
+ // CapacityReservationPreferenceOpen is a CapacityReservationPreference enum value
+ CapacityReservationPreferenceOpen = "open"
+
+ // CapacityReservationPreferenceNone is a CapacityReservationPreference enum value
+ CapacityReservationPreferenceNone = "none"
+)
+
+const (
+ // CapacityReservationStateActive is a CapacityReservationState enum value
+ CapacityReservationStateActive = "active"
+
+ // CapacityReservationStateExpired is a CapacityReservationState enum value
+ CapacityReservationStateExpired = "expired"
+
+ // CapacityReservationStateCancelled is a CapacityReservationState enum value
+ CapacityReservationStateCancelled = "cancelled"
+
+ // CapacityReservationStatePending is a CapacityReservationState enum value
+ CapacityReservationStatePending = "pending"
+
+ // CapacityReservationStateFailed is a CapacityReservationState enum value
+ CapacityReservationStateFailed = "failed"
+)
+
+const (
+ // CapacityReservationTenancyDefault is a CapacityReservationTenancy enum value
+ CapacityReservationTenancyDefault = "default"
+
+ // CapacityReservationTenancyDedicated is a CapacityReservationTenancy enum value
+ CapacityReservationTenancyDedicated = "dedicated"
+)
+
+const (
+ // ClientCertificateRevocationListStatusCodePending is a ClientCertificateRevocationListStatusCode enum value
+ ClientCertificateRevocationListStatusCodePending = "pending"
+
+ // ClientCertificateRevocationListStatusCodeActive is a ClientCertificateRevocationListStatusCode enum value
+ ClientCertificateRevocationListStatusCodeActive = "active"
+)
+
+const (
+ // ClientVpnAuthenticationTypeCertificateAuthentication is a ClientVpnAuthenticationType enum value
+ ClientVpnAuthenticationTypeCertificateAuthentication = "certificate-authentication"
+
+ // ClientVpnAuthenticationTypeDirectoryServiceAuthentication is a ClientVpnAuthenticationType enum value
+ ClientVpnAuthenticationTypeDirectoryServiceAuthentication = "directory-service-authentication"
+)
+
+const (
+ // ClientVpnAuthorizationRuleStatusCodeAuthorizing is a ClientVpnAuthorizationRuleStatusCode enum value
+ ClientVpnAuthorizationRuleStatusCodeAuthorizing = "authorizing"
+
+ // ClientVpnAuthorizationRuleStatusCodeActive is a ClientVpnAuthorizationRuleStatusCode enum value
+ ClientVpnAuthorizationRuleStatusCodeActive = "active"
+
+ // ClientVpnAuthorizationRuleStatusCodeFailed is a ClientVpnAuthorizationRuleStatusCode enum value
+ ClientVpnAuthorizationRuleStatusCodeFailed = "failed"
+
+ // ClientVpnAuthorizationRuleStatusCodeRevoking is a ClientVpnAuthorizationRuleStatusCode enum value
+ ClientVpnAuthorizationRuleStatusCodeRevoking = "revoking"
+)
+
+const (
+ // ClientVpnConnectionStatusCodeActive is a ClientVpnConnectionStatusCode enum value
+ ClientVpnConnectionStatusCodeActive = "active"
+
+ // ClientVpnConnectionStatusCodeFailedToTerminate is a ClientVpnConnectionStatusCode enum value
+ ClientVpnConnectionStatusCodeFailedToTerminate = "failed-to-terminate"
+
+ // ClientVpnConnectionStatusCodeTerminating is a ClientVpnConnectionStatusCode enum value
+ ClientVpnConnectionStatusCodeTerminating = "terminating"
+
+ // ClientVpnConnectionStatusCodeTerminated is a ClientVpnConnectionStatusCode enum value
+ ClientVpnConnectionStatusCodeTerminated = "terminated"
+)
+
+const (
+ // ClientVpnEndpointStatusCodePendingAssociate is a ClientVpnEndpointStatusCode enum value
+ ClientVpnEndpointStatusCodePendingAssociate = "pending-associate"
+
+ // ClientVpnEndpointStatusCodeAvailable is a ClientVpnEndpointStatusCode enum value
+ ClientVpnEndpointStatusCodeAvailable = "available"
+
+ // ClientVpnEndpointStatusCodeDeleting is a ClientVpnEndpointStatusCode enum value
+ ClientVpnEndpointStatusCodeDeleting = "deleting"
+
+ // ClientVpnEndpointStatusCodeDeleted is a ClientVpnEndpointStatusCode enum value
+ ClientVpnEndpointStatusCodeDeleted = "deleted"
+)
+
+const (
+ // ClientVpnRouteStatusCodeCreating is a ClientVpnRouteStatusCode enum value
+ ClientVpnRouteStatusCodeCreating = "creating"
+
+ // ClientVpnRouteStatusCodeActive is a ClientVpnRouteStatusCode enum value
+ ClientVpnRouteStatusCodeActive = "active"
+
+ // ClientVpnRouteStatusCodeFailed is a ClientVpnRouteStatusCode enum value
+ ClientVpnRouteStatusCodeFailed = "failed"
+
+ // ClientVpnRouteStatusCodeDeleting is a ClientVpnRouteStatusCode enum value
+ ClientVpnRouteStatusCodeDeleting = "deleting"
+)
+
const (
// ConnectionNotificationStateEnabled is a ConnectionNotificationState enum value
ConnectionNotificationStateEnabled = "Enabled"
@@ -70118,6 +84452,22 @@ const (
DatafeedSubscriptionStateInactive = "Inactive"
)
+const (
+ // DefaultRouteTableAssociationValueEnable is a DefaultRouteTableAssociationValue enum value
+ DefaultRouteTableAssociationValueEnable = "enable"
+
+ // DefaultRouteTableAssociationValueDisable is a DefaultRouteTableAssociationValue enum value
+ DefaultRouteTableAssociationValueDisable = "disable"
+)
+
+const (
+ // DefaultRouteTablePropagationValueEnable is a DefaultRouteTablePropagationValue enum value
+ DefaultRouteTablePropagationValueEnable = "enable"
+
+ // DefaultRouteTablePropagationValueDisable is a DefaultRouteTablePropagationValue enum value
+ DefaultRouteTablePropagationValueDisable = "disable"
+)
+
const (
// DefaultTargetCapacityTypeSpot is a DefaultTargetCapacityType enum value
DefaultTargetCapacityTypeSpot = "spot"
@@ -70159,6 +84509,14 @@ const (
DiskImageFormatVhd = "VHD"
)
+const (
+ // DnsSupportValueEnable is a DnsSupportValue enum value
+ DnsSupportValueEnable = "enable"
+
+ // DnsSupportValueDisable is a DnsSupportValue enum value
+ DnsSupportValueDisable = "disable"
+)
+
const (
// DomainTypeVpc is a DomainType enum value
DomainTypeVpc = "vpc"
@@ -70180,6 +84538,14 @@ const (
ElasticGpuStatusImpaired = "IMPAIRED"
)
+const (
+ // EndDateTypeUnlimited is a EndDateType enum value
+ EndDateTypeUnlimited = "unlimited"
+
+ // EndDateTypeLimited is a EndDateType enum value
+ EndDateTypeLimited = "limited"
+)
+
const (
// EventCodeInstanceReboot is a EventCode enum value
EventCodeInstanceReboot = "instance-reboot"
@@ -70274,6 +84640,14 @@ const (
FleetExcessCapacityTerminationPolicyTermination = "termination"
)
+const (
+ // FleetOnDemandAllocationStrategyLowestPrice is a FleetOnDemandAllocationStrategy enum value
+ FleetOnDemandAllocationStrategyLowestPrice = "lowest-price"
+
+ // FleetOnDemandAllocationStrategyPrioritized is a FleetOnDemandAllocationStrategy enum value
+ FleetOnDemandAllocationStrategyPrioritized = "prioritized"
+)
+
const (
// FleetStateCodeSubmitted is a FleetStateCode enum value
FleetStateCodeSubmitted = "submitted"
@@ -70303,6 +84677,9 @@ const (
// FleetTypeMaintain is a FleetType enum value
FleetTypeMaintain = "maintain"
+
+ // FleetTypeInstant is a FleetType enum value
+ FleetTypeInstant = "instant"
)
const (
@@ -70499,6 +84876,14 @@ const (
InstanceInterruptionBehaviorTerminate = "terminate"
)
+const (
+ // InstanceLifecycleSpot is a InstanceLifecycle enum value
+ InstanceLifecycleSpot = "spot"
+
+ // InstanceLifecycleOnDemand is a InstanceLifecycle enum value
+ InstanceLifecycleOnDemand = "on-demand"
+)
+
const (
// InstanceLifecycleTypeSpot is a InstanceLifecycleType enum value
InstanceLifecycleTypeSpot = "spot"
@@ -70507,6 +84892,14 @@ const (
InstanceLifecycleTypeScheduled = "scheduled"
)
+const (
+ // InstanceMatchCriteriaOpen is a InstanceMatchCriteria enum value
+ InstanceMatchCriteriaOpen = "open"
+
+ // InstanceMatchCriteriaTargeted is a InstanceMatchCriteria enum value
+ InstanceMatchCriteriaTargeted = "targeted"
+)
+
const (
// InstanceStateNamePending is a InstanceStateName enum value
InstanceStateNamePending = "pending"
@@ -70552,6 +84945,27 @@ const (
// InstanceTypeT22xlarge is a InstanceType enum value
InstanceTypeT22xlarge = "t2.2xlarge"
+ // InstanceTypeT3Nano is a InstanceType enum value
+ InstanceTypeT3Nano = "t3.nano"
+
+ // InstanceTypeT3Micro is a InstanceType enum value
+ InstanceTypeT3Micro = "t3.micro"
+
+ // InstanceTypeT3Small is a InstanceType enum value
+ InstanceTypeT3Small = "t3.small"
+
+ // InstanceTypeT3Medium is a InstanceType enum value
+ InstanceTypeT3Medium = "t3.medium"
+
+ // InstanceTypeT3Large is a InstanceType enum value
+ InstanceTypeT3Large = "t3.large"
+
+ // InstanceTypeT3Xlarge is a InstanceType enum value
+ InstanceTypeT3Xlarge = "t3.xlarge"
+
+ // InstanceTypeT32xlarge is a InstanceType enum value
+ InstanceTypeT32xlarge = "t3.2xlarge"
+
// InstanceTypeM1Small is a InstanceType enum value
InstanceTypeM1Small = "m1.small"
@@ -70639,6 +85053,78 @@ const (
// InstanceTypeR416xlarge is a InstanceType enum value
InstanceTypeR416xlarge = "r4.16xlarge"
+ // InstanceTypeR5Large is a InstanceType enum value
+ InstanceTypeR5Large = "r5.large"
+
+ // InstanceTypeR5Xlarge is a InstanceType enum value
+ InstanceTypeR5Xlarge = "r5.xlarge"
+
+ // InstanceTypeR52xlarge is a InstanceType enum value
+ InstanceTypeR52xlarge = "r5.2xlarge"
+
+ // InstanceTypeR54xlarge is a InstanceType enum value
+ InstanceTypeR54xlarge = "r5.4xlarge"
+
+ // InstanceTypeR58xlarge is a InstanceType enum value
+ InstanceTypeR58xlarge = "r5.8xlarge"
+
+ // InstanceTypeR512xlarge is a InstanceType enum value
+ InstanceTypeR512xlarge = "r5.12xlarge"
+
+ // InstanceTypeR516xlarge is a InstanceType enum value
+ InstanceTypeR516xlarge = "r5.16xlarge"
+
+ // InstanceTypeR524xlarge is a InstanceType enum value
+ InstanceTypeR524xlarge = "r5.24xlarge"
+
+ // InstanceTypeR5Metal is a InstanceType enum value
+ InstanceTypeR5Metal = "r5.metal"
+
+ // InstanceTypeR5aLarge is a InstanceType enum value
+ InstanceTypeR5aLarge = "r5a.large"
+
+ // InstanceTypeR5aXlarge is a InstanceType enum value
+ InstanceTypeR5aXlarge = "r5a.xlarge"
+
+ // InstanceTypeR5a2xlarge is a InstanceType enum value
+ InstanceTypeR5a2xlarge = "r5a.2xlarge"
+
+ // InstanceTypeR5a4xlarge is a InstanceType enum value
+ InstanceTypeR5a4xlarge = "r5a.4xlarge"
+
+ // InstanceTypeR5a12xlarge is a InstanceType enum value
+ InstanceTypeR5a12xlarge = "r5a.12xlarge"
+
+ // InstanceTypeR5a24xlarge is a InstanceType enum value
+ InstanceTypeR5a24xlarge = "r5a.24xlarge"
+
+ // InstanceTypeR5dLarge is a InstanceType enum value
+ InstanceTypeR5dLarge = "r5d.large"
+
+ // InstanceTypeR5dXlarge is a InstanceType enum value
+ InstanceTypeR5dXlarge = "r5d.xlarge"
+
+ // InstanceTypeR5d2xlarge is a InstanceType enum value
+ InstanceTypeR5d2xlarge = "r5d.2xlarge"
+
+ // InstanceTypeR5d4xlarge is a InstanceType enum value
+ InstanceTypeR5d4xlarge = "r5d.4xlarge"
+
+ // InstanceTypeR5d8xlarge is a InstanceType enum value
+ InstanceTypeR5d8xlarge = "r5d.8xlarge"
+
+ // InstanceTypeR5d12xlarge is a InstanceType enum value
+ InstanceTypeR5d12xlarge = "r5d.12xlarge"
+
+ // InstanceTypeR5d16xlarge is a InstanceType enum value
+ InstanceTypeR5d16xlarge = "r5d.16xlarge"
+
+ // InstanceTypeR5d24xlarge is a InstanceType enum value
+ InstanceTypeR5d24xlarge = "r5d.24xlarge"
+
+ // InstanceTypeR5dMetal is a InstanceType enum value
+ InstanceTypeR5dMetal = "r5d.metal"
+
// InstanceTypeX116xlarge is a InstanceType enum value
InstanceTypeX116xlarge = "x1.16xlarge"
@@ -70774,6 +85260,24 @@ const (
// InstanceTypeC5d18xlarge is a InstanceType enum value
InstanceTypeC5d18xlarge = "c5d.18xlarge"
+ // InstanceTypeC5nLarge is a InstanceType enum value
+ InstanceTypeC5nLarge = "c5n.large"
+
+ // InstanceTypeC5nXlarge is a InstanceType enum value
+ InstanceTypeC5nXlarge = "c5n.xlarge"
+
+ // InstanceTypeC5n2xlarge is a InstanceType enum value
+ InstanceTypeC5n2xlarge = "c5n.2xlarge"
+
+ // InstanceTypeC5n4xlarge is a InstanceType enum value
+ InstanceTypeC5n4xlarge = "c5n.4xlarge"
+
+ // InstanceTypeC5n9xlarge is a InstanceType enum value
+ InstanceTypeC5n9xlarge = "c5n.9xlarge"
+
+ // InstanceTypeC5n18xlarge is a InstanceType enum value
+ InstanceTypeC5n18xlarge = "c5n.18xlarge"
+
// InstanceTypeCc14xlarge is a InstanceType enum value
InstanceTypeCc14xlarge = "cc1.4xlarge"
@@ -70795,6 +85299,9 @@ const (
// InstanceTypeG316xlarge is a InstanceType enum value
InstanceTypeG316xlarge = "g3.16xlarge"
+ // InstanceTypeG3sXlarge is a InstanceType enum value
+ InstanceTypeG3sXlarge = "g3s.xlarge"
+
// InstanceTypeCg14xlarge is a InstanceType enum value
InstanceTypeCg14xlarge = "cg1.4xlarge"
@@ -70816,6 +85323,9 @@ const (
// InstanceTypeP316xlarge is a InstanceType enum value
InstanceTypeP316xlarge = "p3.16xlarge"
+ // InstanceTypeP3dn24xlarge is a InstanceType enum value
+ InstanceTypeP3dn24xlarge = "p3dn.24xlarge"
+
// InstanceTypeD2Xlarge is a InstanceType enum value
InstanceTypeD2Xlarge = "d2.xlarge"
@@ -70831,6 +85341,9 @@ const (
// InstanceTypeF12xlarge is a InstanceType enum value
InstanceTypeF12xlarge = "f1.2xlarge"
+ // InstanceTypeF14xlarge is a InstanceType enum value
+ InstanceTypeF14xlarge = "f1.4xlarge"
+
// InstanceTypeF116xlarge is a InstanceType enum value
InstanceTypeF116xlarge = "f1.16xlarge"
@@ -70852,6 +85365,24 @@ const (
// InstanceTypeM524xlarge is a InstanceType enum value
InstanceTypeM524xlarge = "m5.24xlarge"
+ // InstanceTypeM5aLarge is a InstanceType enum value
+ InstanceTypeM5aLarge = "m5a.large"
+
+ // InstanceTypeM5aXlarge is a InstanceType enum value
+ InstanceTypeM5aXlarge = "m5a.xlarge"
+
+ // InstanceTypeM5a2xlarge is a InstanceType enum value
+ InstanceTypeM5a2xlarge = "m5a.2xlarge"
+
+ // InstanceTypeM5a4xlarge is a InstanceType enum value
+ InstanceTypeM5a4xlarge = "m5a.4xlarge"
+
+ // InstanceTypeM5a12xlarge is a InstanceType enum value
+ InstanceTypeM5a12xlarge = "m5a.12xlarge"
+
+ // InstanceTypeM5a24xlarge is a InstanceType enum value
+ InstanceTypeM5a24xlarge = "m5a.24xlarge"
+
// InstanceTypeM5dLarge is a InstanceType enum value
InstanceTypeM5dLarge = "m5d.large"
@@ -70881,6 +85412,48 @@ const (
// InstanceTypeH116xlarge is a InstanceType enum value
InstanceTypeH116xlarge = "h1.16xlarge"
+
+ // InstanceTypeZ1dLarge is a InstanceType enum value
+ InstanceTypeZ1dLarge = "z1d.large"
+
+ // InstanceTypeZ1dXlarge is a InstanceType enum value
+ InstanceTypeZ1dXlarge = "z1d.xlarge"
+
+ // InstanceTypeZ1d2xlarge is a InstanceType enum value
+ InstanceTypeZ1d2xlarge = "z1d.2xlarge"
+
+ // InstanceTypeZ1d3xlarge is a InstanceType enum value
+ InstanceTypeZ1d3xlarge = "z1d.3xlarge"
+
+ // InstanceTypeZ1d6xlarge is a InstanceType enum value
+ InstanceTypeZ1d6xlarge = "z1d.6xlarge"
+
+ // InstanceTypeZ1d12xlarge is a InstanceType enum value
+ InstanceTypeZ1d12xlarge = "z1d.12xlarge"
+
+ // InstanceTypeU6tb1Metal is a InstanceType enum value
+ InstanceTypeU6tb1Metal = "u-6tb1.metal"
+
+ // InstanceTypeU9tb1Metal is a InstanceType enum value
+ InstanceTypeU9tb1Metal = "u-9tb1.metal"
+
+ // InstanceTypeU12tb1Metal is a InstanceType enum value
+ InstanceTypeU12tb1Metal = "u-12tb1.metal"
+
+ // InstanceTypeA1Medium is a InstanceType enum value
+ InstanceTypeA1Medium = "a1.medium"
+
+ // InstanceTypeA1Large is a InstanceType enum value
+ InstanceTypeA1Large = "a1.large"
+
+ // InstanceTypeA1Xlarge is a InstanceType enum value
+ InstanceTypeA1Xlarge = "a1.xlarge"
+
+ // InstanceTypeA12xlarge is a InstanceType enum value
+ InstanceTypeA12xlarge = "a1.2xlarge"
+
+ // InstanceTypeA14xlarge is a InstanceType enum value
+ InstanceTypeA14xlarge = "a1.4xlarge"
)
const (
@@ -70891,6 +85464,14 @@ const (
InterfacePermissionTypeEipAssociate = "EIP-ASSOCIATE"
)
+const (
+ // Ipv6SupportValueEnable is a Ipv6SupportValue enum value
+ Ipv6SupportValueEnable = "enable"
+
+ // Ipv6SupportValueDisable is a Ipv6SupportValue enum value
+ Ipv6SupportValueDisable = "disable"
+)
+
const (
// LaunchTemplateErrorCodeLaunchTemplateIdDoesNotExist is a LaunchTemplateErrorCode enum value
LaunchTemplateErrorCodeLaunchTemplateIdDoesNotExist = "launchTemplateIdDoesNotExist"
@@ -70939,6 +85520,14 @@ const (
ListingStatusClosed = "closed"
)
+const (
+ // LogDestinationTypeCloudWatchLogs is a LogDestinationType enum value
+ LogDestinationTypeCloudWatchLogs = "cloud-watch-logs"
+
+ // LogDestinationTypeS3 is a LogDestinationType enum value
+ LogDestinationTypeS3 = "s3"
+)
+
const (
// MarketTypeSpot is a MarketType enum value
MarketTypeSpot = "spot"
@@ -71064,6 +85653,14 @@ const (
OfferingTypeValuesAllUpfront = "All Upfront"
)
+const (
+ // OnDemandAllocationStrategyLowestPrice is a OnDemandAllocationStrategy enum value
+ OnDemandAllocationStrategyLowestPrice = "lowestPrice"
+
+ // OnDemandAllocationStrategyPrioritized is a OnDemandAllocationStrategy enum value
+ OnDemandAllocationStrategyPrioritized = "prioritized"
+)
+
const (
// OperationTypeAdd is a OperationType enum value
OperationTypeAdd = "add"
@@ -71108,6 +85705,9 @@ const (
// PlacementStrategySpread is a PlacementStrategy enum value
PlacementStrategySpread = "spread"
+
+ // PlacementStrategyPartition is a PlacementStrategy enum value
+ PlacementStrategyPartition = "partition"
)
const (
@@ -71241,9 +85841,21 @@ const (
// ResourceTypeCustomerGateway is a ResourceType enum value
ResourceTypeCustomerGateway = "customer-gateway"
+ // ResourceTypeDedicatedHost is a ResourceType enum value
+ ResourceTypeDedicatedHost = "dedicated-host"
+
// ResourceTypeDhcpOptions is a ResourceType enum value
ResourceTypeDhcpOptions = "dhcp-options"
+ // ResourceTypeElasticIp is a ResourceType enum value
+ ResourceTypeElasticIp = "elastic-ip"
+
+ // ResourceTypeFleet is a ResourceType enum value
+ ResourceTypeFleet = "fleet"
+
+ // ResourceTypeFpgaImage is a ResourceType enum value
+ ResourceTypeFpgaImage = "fpga-image"
+
// ResourceTypeImage is a ResourceType enum value
ResourceTypeImage = "image"
@@ -71253,6 +85865,12 @@ const (
// ResourceTypeInternetGateway is a ResourceType enum value
ResourceTypeInternetGateway = "internet-gateway"
+ // ResourceTypeLaunchTemplate is a ResourceType enum value
+ ResourceTypeLaunchTemplate = "launch-template"
+
+ // ResourceTypeNatgateway is a ResourceType enum value
+ ResourceTypeNatgateway = "natgateway"
+
// ResourceTypeNetworkAcl is a ResourceType enum value
ResourceTypeNetworkAcl = "network-acl"
@@ -71265,6 +85883,9 @@ const (
// ResourceTypeRouteTable is a ResourceType enum value
ResourceTypeRouteTable = "route-table"
+ // ResourceTypeSecurityGroup is a ResourceType enum value
+ ResourceTypeSecurityGroup = "security-group"
+
// ResourceTypeSnapshot is a ResourceType enum value
ResourceTypeSnapshot = "snapshot"
@@ -71274,8 +85895,14 @@ const (
// ResourceTypeSubnet is a ResourceType enum value
ResourceTypeSubnet = "subnet"
- // ResourceTypeSecurityGroup is a ResourceType enum value
- ResourceTypeSecurityGroup = "security-group"
+ // ResourceTypeTransitGateway is a ResourceType enum value
+ ResourceTypeTransitGateway = "transit-gateway"
+
+ // ResourceTypeTransitGatewayAttachment is a ResourceType enum value
+ ResourceTypeTransitGatewayAttachment = "transit-gateway-attachment"
+
+ // ResourceTypeTransitGatewayRouteTable is a ResourceType enum value
+ ResourceTypeTransitGatewayRouteTable = "transit-gateway-route-table"
// ResourceTypeVolume is a ResourceType enum value
ResourceTypeVolume = "volume"
@@ -71283,6 +85910,9 @@ const (
// ResourceTypeVpc is a ResourceType enum value
ResourceTypeVpc = "vpc"
+ // ResourceTypeVpcPeeringConnection is a ResourceType enum value
+ ResourceTypeVpcPeeringConnection = "vpc-peering-connection"
+
// ResourceTypeVpnConnection is a ResourceType enum value
ResourceTypeVpnConnection = "vpn-connection"
@@ -71544,6 +86174,141 @@ const (
TrafficTypeAll = "ALL"
)
+const (
+ // TransitGatewayAssociationStateAssociating is a TransitGatewayAssociationState enum value
+ TransitGatewayAssociationStateAssociating = "associating"
+
+ // TransitGatewayAssociationStateAssociated is a TransitGatewayAssociationState enum value
+ TransitGatewayAssociationStateAssociated = "associated"
+
+ // TransitGatewayAssociationStateDisassociating is a TransitGatewayAssociationState enum value
+ TransitGatewayAssociationStateDisassociating = "disassociating"
+
+ // TransitGatewayAssociationStateDisassociated is a TransitGatewayAssociationState enum value
+ TransitGatewayAssociationStateDisassociated = "disassociated"
+)
+
+const (
+ // TransitGatewayAttachmentResourceTypeVpc is a TransitGatewayAttachmentResourceType enum value
+ TransitGatewayAttachmentResourceTypeVpc = "vpc"
+
+ // TransitGatewayAttachmentResourceTypeVpn is a TransitGatewayAttachmentResourceType enum value
+ TransitGatewayAttachmentResourceTypeVpn = "vpn"
+)
+
+const (
+ // TransitGatewayAttachmentStatePendingAcceptance is a TransitGatewayAttachmentState enum value
+ TransitGatewayAttachmentStatePendingAcceptance = "pendingAcceptance"
+
+ // TransitGatewayAttachmentStateRollingBack is a TransitGatewayAttachmentState enum value
+ TransitGatewayAttachmentStateRollingBack = "rollingBack"
+
+ // TransitGatewayAttachmentStatePending is a TransitGatewayAttachmentState enum value
+ TransitGatewayAttachmentStatePending = "pending"
+
+ // TransitGatewayAttachmentStateAvailable is a TransitGatewayAttachmentState enum value
+ TransitGatewayAttachmentStateAvailable = "available"
+
+ // TransitGatewayAttachmentStateModifying is a TransitGatewayAttachmentState enum value
+ TransitGatewayAttachmentStateModifying = "modifying"
+
+ // TransitGatewayAttachmentStateDeleting is a TransitGatewayAttachmentState enum value
+ TransitGatewayAttachmentStateDeleting = "deleting"
+
+ // TransitGatewayAttachmentStateDeleted is a TransitGatewayAttachmentState enum value
+ TransitGatewayAttachmentStateDeleted = "deleted"
+
+ // TransitGatewayAttachmentStateFailed is a TransitGatewayAttachmentState enum value
+ TransitGatewayAttachmentStateFailed = "failed"
+
+ // TransitGatewayAttachmentStateRejected is a TransitGatewayAttachmentState enum value
+ TransitGatewayAttachmentStateRejected = "rejected"
+
+ // TransitGatewayAttachmentStateRejecting is a TransitGatewayAttachmentState enum value
+ TransitGatewayAttachmentStateRejecting = "rejecting"
+
+ // TransitGatewayAttachmentStateFailing is a TransitGatewayAttachmentState enum value
+ TransitGatewayAttachmentStateFailing = "failing"
+)
+
+const (
+ // TransitGatewayPropagationStateEnabling is a TransitGatewayPropagationState enum value
+ TransitGatewayPropagationStateEnabling = "enabling"
+
+ // TransitGatewayPropagationStateEnabled is a TransitGatewayPropagationState enum value
+ TransitGatewayPropagationStateEnabled = "enabled"
+
+ // TransitGatewayPropagationStateDisabling is a TransitGatewayPropagationState enum value
+ TransitGatewayPropagationStateDisabling = "disabling"
+
+ // TransitGatewayPropagationStateDisabled is a TransitGatewayPropagationState enum value
+ TransitGatewayPropagationStateDisabled = "disabled"
+)
+
+const (
+ // TransitGatewayRouteStatePending is a TransitGatewayRouteState enum value
+ TransitGatewayRouteStatePending = "pending"
+
+ // TransitGatewayRouteStateActive is a TransitGatewayRouteState enum value
+ TransitGatewayRouteStateActive = "active"
+
+ // TransitGatewayRouteStateBlackhole is a TransitGatewayRouteState enum value
+ TransitGatewayRouteStateBlackhole = "blackhole"
+
+ // TransitGatewayRouteStateDeleting is a TransitGatewayRouteState enum value
+ TransitGatewayRouteStateDeleting = "deleting"
+
+ // TransitGatewayRouteStateDeleted is a TransitGatewayRouteState enum value
+ TransitGatewayRouteStateDeleted = "deleted"
+)
+
+const (
+ // TransitGatewayRouteTableStatePending is a TransitGatewayRouteTableState enum value
+ TransitGatewayRouteTableStatePending = "pending"
+
+ // TransitGatewayRouteTableStateAvailable is a TransitGatewayRouteTableState enum value
+ TransitGatewayRouteTableStateAvailable = "available"
+
+ // TransitGatewayRouteTableStateDeleting is a TransitGatewayRouteTableState enum value
+ TransitGatewayRouteTableStateDeleting = "deleting"
+
+ // TransitGatewayRouteTableStateDeleted is a TransitGatewayRouteTableState enum value
+ TransitGatewayRouteTableStateDeleted = "deleted"
+)
+
+const (
+ // TransitGatewayRouteTypeStatic is a TransitGatewayRouteType enum value
+ TransitGatewayRouteTypeStatic = "static"
+
+ // TransitGatewayRouteTypePropagated is a TransitGatewayRouteType enum value
+ TransitGatewayRouteTypePropagated = "propagated"
+)
+
+const (
+ // TransitGatewayStatePending is a TransitGatewayState enum value
+ TransitGatewayStatePending = "pending"
+
+ // TransitGatewayStateAvailable is a TransitGatewayState enum value
+ TransitGatewayStateAvailable = "available"
+
+ // TransitGatewayStateModifying is a TransitGatewayState enum value
+ TransitGatewayStateModifying = "modifying"
+
+ // TransitGatewayStateDeleting is a TransitGatewayState enum value
+ TransitGatewayStateDeleting = "deleting"
+
+ // TransitGatewayStateDeleted is a TransitGatewayState enum value
+ TransitGatewayStateDeleted = "deleted"
+)
+
+const (
+ // TransportProtocolTcp is a TransportProtocol enum value
+ TransportProtocolTcp = "tcp"
+
+ // TransportProtocolUdp is a TransportProtocol enum value
+ TransportProtocolUdp = "udp"
+)
+
const (
// UnsuccessfulInstanceCreditSpecificationErrorCodeInvalidInstanceIdMalformed is a UnsuccessfulInstanceCreditSpecificationErrorCode enum value
UnsuccessfulInstanceCreditSpecificationErrorCodeInvalidInstanceIdMalformed = "InvalidInstanceID.Malformed"
@@ -71739,6 +86504,19 @@ const (
VpcTenancyDefault = "default"
)
+const (
+ // VpnEcmpSupportValueEnable is a VpnEcmpSupportValue enum value
+ VpnEcmpSupportValueEnable = "enable"
+
+ // VpnEcmpSupportValueDisable is a VpnEcmpSupportValue enum value
+ VpnEcmpSupportValueDisable = "disable"
+)
+
+const (
+ // VpnProtocolOpenvpn is a VpnProtocol enum value
+ VpnProtocolOpenvpn = "openvpn"
+)
+
const (
// VpnStatePending is a VpnState enum value
VpnStatePending = "pending"
diff --git a/vendor/github.com/aws/aws-sdk-go/service/ec2/doc.go b/vendor/github.com/aws/aws-sdk-go/service/ec2/doc.go
index 909e05a14f3..c258e0e85c0 100644
--- a/vendor/github.com/aws/aws-sdk-go/service/ec2/doc.go
+++ b/vendor/github.com/aws/aws-sdk-go/service/ec2/doc.go
@@ -3,9 +3,22 @@
// Package ec2 provides the client and types for making API
// requests to Amazon Elastic Compute Cloud.
//
-// Amazon Elastic Compute Cloud (Amazon EC2) provides resizable computing capacity
-// in the AWS Cloud. Using Amazon EC2 eliminates the need to invest in hardware
-// up front, so you can develop and deploy applications faster.
+// Amazon Elastic Compute Cloud (Amazon EC2) provides secure and resizable computing
+// capacity in the AWS cloud. Using Amazon EC2 eliminates the need to invest
+// in hardware up front, so you can develop and deploy applications faster.
+//
+// To learn more about Amazon EC2, Amazon EBS, and Amazon VPC, see the following
+// resources:
+//
+// * Amazon EC2 product page (http://aws.amazon.com/ec2)
+//
+// * Amazon EC2 documentation (http://aws.amazon.com/documentation/ec2)
+//
+// * Amazon EBS product page (http://aws.amazon.com/ebs)
+//
+// * Amazon VPC product page (http://aws.amazon.com/vpc)
+//
+// * Amazon VPC documentation (http://aws.amazon.com/documentation/vpc)
//
// See https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15 for more information on this service.
//
diff --git a/vendor/github.com/aws/aws-sdk-go/service/ec2/ec2iface/interface.go b/vendor/github.com/aws/aws-sdk-go/service/ec2/ec2iface/interface.go
index fd411c28d98..b501759b609 100644
--- a/vendor/github.com/aws/aws-sdk-go/service/ec2/ec2iface/interface.go
+++ b/vendor/github.com/aws/aws-sdk-go/service/ec2/ec2iface/interface.go
@@ -64,6 +64,10 @@ type EC2API interface {
AcceptReservedInstancesExchangeQuoteWithContext(aws.Context, *ec2.AcceptReservedInstancesExchangeQuoteInput, ...request.Option) (*ec2.AcceptReservedInstancesExchangeQuoteOutput, error)
AcceptReservedInstancesExchangeQuoteRequest(*ec2.AcceptReservedInstancesExchangeQuoteInput) (*request.Request, *ec2.AcceptReservedInstancesExchangeQuoteOutput)
+ AcceptTransitGatewayVpcAttachment(*ec2.AcceptTransitGatewayVpcAttachmentInput) (*ec2.AcceptTransitGatewayVpcAttachmentOutput, error)
+ AcceptTransitGatewayVpcAttachmentWithContext(aws.Context, *ec2.AcceptTransitGatewayVpcAttachmentInput, ...request.Option) (*ec2.AcceptTransitGatewayVpcAttachmentOutput, error)
+ AcceptTransitGatewayVpcAttachmentRequest(*ec2.AcceptTransitGatewayVpcAttachmentInput) (*request.Request, *ec2.AcceptTransitGatewayVpcAttachmentOutput)
+
AcceptVpcEndpointConnections(*ec2.AcceptVpcEndpointConnectionsInput) (*ec2.AcceptVpcEndpointConnectionsOutput, error)
AcceptVpcEndpointConnectionsWithContext(aws.Context, *ec2.AcceptVpcEndpointConnectionsInput, ...request.Option) (*ec2.AcceptVpcEndpointConnectionsOutput, error)
AcceptVpcEndpointConnectionsRequest(*ec2.AcceptVpcEndpointConnectionsInput) (*request.Request, *ec2.AcceptVpcEndpointConnectionsOutput)
@@ -72,6 +76,10 @@ type EC2API interface {
AcceptVpcPeeringConnectionWithContext(aws.Context, *ec2.AcceptVpcPeeringConnectionInput, ...request.Option) (*ec2.AcceptVpcPeeringConnectionOutput, error)
AcceptVpcPeeringConnectionRequest(*ec2.AcceptVpcPeeringConnectionInput) (*request.Request, *ec2.AcceptVpcPeeringConnectionOutput)
+ AdvertiseByoipCidr(*ec2.AdvertiseByoipCidrInput) (*ec2.AdvertiseByoipCidrOutput, error)
+ AdvertiseByoipCidrWithContext(aws.Context, *ec2.AdvertiseByoipCidrInput, ...request.Option) (*ec2.AdvertiseByoipCidrOutput, error)
+ AdvertiseByoipCidrRequest(*ec2.AdvertiseByoipCidrInput) (*request.Request, *ec2.AdvertiseByoipCidrOutput)
+
AllocateAddress(*ec2.AllocateAddressInput) (*ec2.AllocateAddressOutput, error)
AllocateAddressWithContext(aws.Context, *ec2.AllocateAddressInput, ...request.Option) (*ec2.AllocateAddressOutput, error)
AllocateAddressRequest(*ec2.AllocateAddressInput) (*request.Request, *ec2.AllocateAddressOutput)
@@ -80,6 +88,10 @@ type EC2API interface {
AllocateHostsWithContext(aws.Context, *ec2.AllocateHostsInput, ...request.Option) (*ec2.AllocateHostsOutput, error)
AllocateHostsRequest(*ec2.AllocateHostsInput) (*request.Request, *ec2.AllocateHostsOutput)
+ ApplySecurityGroupsToClientVpnTargetNetwork(*ec2.ApplySecurityGroupsToClientVpnTargetNetworkInput) (*ec2.ApplySecurityGroupsToClientVpnTargetNetworkOutput, error)
+ ApplySecurityGroupsToClientVpnTargetNetworkWithContext(aws.Context, *ec2.ApplySecurityGroupsToClientVpnTargetNetworkInput, ...request.Option) (*ec2.ApplySecurityGroupsToClientVpnTargetNetworkOutput, error)
+ ApplySecurityGroupsToClientVpnTargetNetworkRequest(*ec2.ApplySecurityGroupsToClientVpnTargetNetworkInput) (*request.Request, *ec2.ApplySecurityGroupsToClientVpnTargetNetworkOutput)
+
AssignIpv6Addresses(*ec2.AssignIpv6AddressesInput) (*ec2.AssignIpv6AddressesOutput, error)
AssignIpv6AddressesWithContext(aws.Context, *ec2.AssignIpv6AddressesInput, ...request.Option) (*ec2.AssignIpv6AddressesOutput, error)
AssignIpv6AddressesRequest(*ec2.AssignIpv6AddressesInput) (*request.Request, *ec2.AssignIpv6AddressesOutput)
@@ -92,6 +104,10 @@ type EC2API interface {
AssociateAddressWithContext(aws.Context, *ec2.AssociateAddressInput, ...request.Option) (*ec2.AssociateAddressOutput, error)
AssociateAddressRequest(*ec2.AssociateAddressInput) (*request.Request, *ec2.AssociateAddressOutput)
+ AssociateClientVpnTargetNetwork(*ec2.AssociateClientVpnTargetNetworkInput) (*ec2.AssociateClientVpnTargetNetworkOutput, error)
+ AssociateClientVpnTargetNetworkWithContext(aws.Context, *ec2.AssociateClientVpnTargetNetworkInput, ...request.Option) (*ec2.AssociateClientVpnTargetNetworkOutput, error)
+ AssociateClientVpnTargetNetworkRequest(*ec2.AssociateClientVpnTargetNetworkInput) (*request.Request, *ec2.AssociateClientVpnTargetNetworkOutput)
+
AssociateDhcpOptions(*ec2.AssociateDhcpOptionsInput) (*ec2.AssociateDhcpOptionsOutput, error)
AssociateDhcpOptionsWithContext(aws.Context, *ec2.AssociateDhcpOptionsInput, ...request.Option) (*ec2.AssociateDhcpOptionsOutput, error)
AssociateDhcpOptionsRequest(*ec2.AssociateDhcpOptionsInput) (*request.Request, *ec2.AssociateDhcpOptionsOutput)
@@ -108,6 +124,10 @@ type EC2API interface {
AssociateSubnetCidrBlockWithContext(aws.Context, *ec2.AssociateSubnetCidrBlockInput, ...request.Option) (*ec2.AssociateSubnetCidrBlockOutput, error)
AssociateSubnetCidrBlockRequest(*ec2.AssociateSubnetCidrBlockInput) (*request.Request, *ec2.AssociateSubnetCidrBlockOutput)
+ AssociateTransitGatewayRouteTable(*ec2.AssociateTransitGatewayRouteTableInput) (*ec2.AssociateTransitGatewayRouteTableOutput, error)
+ AssociateTransitGatewayRouteTableWithContext(aws.Context, *ec2.AssociateTransitGatewayRouteTableInput, ...request.Option) (*ec2.AssociateTransitGatewayRouteTableOutput, error)
+ AssociateTransitGatewayRouteTableRequest(*ec2.AssociateTransitGatewayRouteTableInput) (*request.Request, *ec2.AssociateTransitGatewayRouteTableOutput)
+
AssociateVpcCidrBlock(*ec2.AssociateVpcCidrBlockInput) (*ec2.AssociateVpcCidrBlockOutput, error)
AssociateVpcCidrBlockWithContext(aws.Context, *ec2.AssociateVpcCidrBlockInput, ...request.Option) (*ec2.AssociateVpcCidrBlockOutput, error)
AssociateVpcCidrBlockRequest(*ec2.AssociateVpcCidrBlockInput) (*request.Request, *ec2.AssociateVpcCidrBlockOutput)
@@ -132,6 +152,10 @@ type EC2API interface {
AttachVpnGatewayWithContext(aws.Context, *ec2.AttachVpnGatewayInput, ...request.Option) (*ec2.AttachVpnGatewayOutput, error)
AttachVpnGatewayRequest(*ec2.AttachVpnGatewayInput) (*request.Request, *ec2.AttachVpnGatewayOutput)
+ AuthorizeClientVpnIngress(*ec2.AuthorizeClientVpnIngressInput) (*ec2.AuthorizeClientVpnIngressOutput, error)
+ AuthorizeClientVpnIngressWithContext(aws.Context, *ec2.AuthorizeClientVpnIngressInput, ...request.Option) (*ec2.AuthorizeClientVpnIngressOutput, error)
+ AuthorizeClientVpnIngressRequest(*ec2.AuthorizeClientVpnIngressInput) (*request.Request, *ec2.AuthorizeClientVpnIngressOutput)
+
AuthorizeSecurityGroupEgress(*ec2.AuthorizeSecurityGroupEgressInput) (*ec2.AuthorizeSecurityGroupEgressOutput, error)
AuthorizeSecurityGroupEgressWithContext(aws.Context, *ec2.AuthorizeSecurityGroupEgressInput, ...request.Option) (*ec2.AuthorizeSecurityGroupEgressOutput, error)
AuthorizeSecurityGroupEgressRequest(*ec2.AuthorizeSecurityGroupEgressInput) (*request.Request, *ec2.AuthorizeSecurityGroupEgressOutput)
@@ -148,6 +172,10 @@ type EC2API interface {
CancelBundleTaskWithContext(aws.Context, *ec2.CancelBundleTaskInput, ...request.Option) (*ec2.CancelBundleTaskOutput, error)
CancelBundleTaskRequest(*ec2.CancelBundleTaskInput) (*request.Request, *ec2.CancelBundleTaskOutput)
+ CancelCapacityReservation(*ec2.CancelCapacityReservationInput) (*ec2.CancelCapacityReservationOutput, error)
+ CancelCapacityReservationWithContext(aws.Context, *ec2.CancelCapacityReservationInput, ...request.Option) (*ec2.CancelCapacityReservationOutput, error)
+ CancelCapacityReservationRequest(*ec2.CancelCapacityReservationInput) (*request.Request, *ec2.CancelCapacityReservationOutput)
+
CancelConversionTask(*ec2.CancelConversionTaskInput) (*ec2.CancelConversionTaskOutput, error)
CancelConversionTaskWithContext(aws.Context, *ec2.CancelConversionTaskInput, ...request.Option) (*ec2.CancelConversionTaskOutput, error)
CancelConversionTaskRequest(*ec2.CancelConversionTaskInput) (*request.Request, *ec2.CancelConversionTaskOutput)
@@ -188,6 +216,18 @@ type EC2API interface {
CopySnapshotWithContext(aws.Context, *ec2.CopySnapshotInput, ...request.Option) (*ec2.CopySnapshotOutput, error)
CopySnapshotRequest(*ec2.CopySnapshotInput) (*request.Request, *ec2.CopySnapshotOutput)
+ CreateCapacityReservation(*ec2.CreateCapacityReservationInput) (*ec2.CreateCapacityReservationOutput, error)
+ CreateCapacityReservationWithContext(aws.Context, *ec2.CreateCapacityReservationInput, ...request.Option) (*ec2.CreateCapacityReservationOutput, error)
+ CreateCapacityReservationRequest(*ec2.CreateCapacityReservationInput) (*request.Request, *ec2.CreateCapacityReservationOutput)
+
+ CreateClientVpnEndpoint(*ec2.CreateClientVpnEndpointInput) (*ec2.CreateClientVpnEndpointOutput, error)
+ CreateClientVpnEndpointWithContext(aws.Context, *ec2.CreateClientVpnEndpointInput, ...request.Option) (*ec2.CreateClientVpnEndpointOutput, error)
+ CreateClientVpnEndpointRequest(*ec2.CreateClientVpnEndpointInput) (*request.Request, *ec2.CreateClientVpnEndpointOutput)
+
+ CreateClientVpnRoute(*ec2.CreateClientVpnRouteInput) (*ec2.CreateClientVpnRouteOutput, error)
+ CreateClientVpnRouteWithContext(aws.Context, *ec2.CreateClientVpnRouteInput, ...request.Option) (*ec2.CreateClientVpnRouteOutput, error)
+ CreateClientVpnRouteRequest(*ec2.CreateClientVpnRouteInput) (*request.Request, *ec2.CreateClientVpnRouteOutput)
+
CreateCustomerGateway(*ec2.CreateCustomerGatewayInput) (*ec2.CreateCustomerGatewayOutput, error)
CreateCustomerGatewayWithContext(aws.Context, *ec2.CreateCustomerGatewayInput, ...request.Option) (*ec2.CreateCustomerGatewayOutput, error)
CreateCustomerGatewayRequest(*ec2.CreateCustomerGatewayInput) (*request.Request, *ec2.CreateCustomerGatewayOutput)
@@ -300,6 +340,22 @@ type EC2API interface {
CreateTagsWithContext(aws.Context, *ec2.CreateTagsInput, ...request.Option) (*ec2.CreateTagsOutput, error)
CreateTagsRequest(*ec2.CreateTagsInput) (*request.Request, *ec2.CreateTagsOutput)
+ CreateTransitGateway(*ec2.CreateTransitGatewayInput) (*ec2.CreateTransitGatewayOutput, error)
+ CreateTransitGatewayWithContext(aws.Context, *ec2.CreateTransitGatewayInput, ...request.Option) (*ec2.CreateTransitGatewayOutput, error)
+ CreateTransitGatewayRequest(*ec2.CreateTransitGatewayInput) (*request.Request, *ec2.CreateTransitGatewayOutput)
+
+ CreateTransitGatewayRoute(*ec2.CreateTransitGatewayRouteInput) (*ec2.CreateTransitGatewayRouteOutput, error)
+ CreateTransitGatewayRouteWithContext(aws.Context, *ec2.CreateTransitGatewayRouteInput, ...request.Option) (*ec2.CreateTransitGatewayRouteOutput, error)
+ CreateTransitGatewayRouteRequest(*ec2.CreateTransitGatewayRouteInput) (*request.Request, *ec2.CreateTransitGatewayRouteOutput)
+
+ CreateTransitGatewayRouteTable(*ec2.CreateTransitGatewayRouteTableInput) (*ec2.CreateTransitGatewayRouteTableOutput, error)
+ CreateTransitGatewayRouteTableWithContext(aws.Context, *ec2.CreateTransitGatewayRouteTableInput, ...request.Option) (*ec2.CreateTransitGatewayRouteTableOutput, error)
+ CreateTransitGatewayRouteTableRequest(*ec2.CreateTransitGatewayRouteTableInput) (*request.Request, *ec2.CreateTransitGatewayRouteTableOutput)
+
+ CreateTransitGatewayVpcAttachment(*ec2.CreateTransitGatewayVpcAttachmentInput) (*ec2.CreateTransitGatewayVpcAttachmentOutput, error)
+ CreateTransitGatewayVpcAttachmentWithContext(aws.Context, *ec2.CreateTransitGatewayVpcAttachmentInput, ...request.Option) (*ec2.CreateTransitGatewayVpcAttachmentOutput, error)
+ CreateTransitGatewayVpcAttachmentRequest(*ec2.CreateTransitGatewayVpcAttachmentInput) (*request.Request, *ec2.CreateTransitGatewayVpcAttachmentOutput)
+
CreateVolume(*ec2.CreateVolumeInput) (*ec2.Volume, error)
CreateVolumeWithContext(aws.Context, *ec2.CreateVolumeInput, ...request.Option) (*ec2.Volume, error)
CreateVolumeRequest(*ec2.CreateVolumeInput) (*request.Request, *ec2.Volume)
@@ -336,6 +392,14 @@ type EC2API interface {
CreateVpnGatewayWithContext(aws.Context, *ec2.CreateVpnGatewayInput, ...request.Option) (*ec2.CreateVpnGatewayOutput, error)
CreateVpnGatewayRequest(*ec2.CreateVpnGatewayInput) (*request.Request, *ec2.CreateVpnGatewayOutput)
+ DeleteClientVpnEndpoint(*ec2.DeleteClientVpnEndpointInput) (*ec2.DeleteClientVpnEndpointOutput, error)
+ DeleteClientVpnEndpointWithContext(aws.Context, *ec2.DeleteClientVpnEndpointInput, ...request.Option) (*ec2.DeleteClientVpnEndpointOutput, error)
+ DeleteClientVpnEndpointRequest(*ec2.DeleteClientVpnEndpointInput) (*request.Request, *ec2.DeleteClientVpnEndpointOutput)
+
+ DeleteClientVpnRoute(*ec2.DeleteClientVpnRouteInput) (*ec2.DeleteClientVpnRouteOutput, error)
+ DeleteClientVpnRouteWithContext(aws.Context, *ec2.DeleteClientVpnRouteInput, ...request.Option) (*ec2.DeleteClientVpnRouteOutput, error)
+ DeleteClientVpnRouteRequest(*ec2.DeleteClientVpnRouteInput) (*request.Request, *ec2.DeleteClientVpnRouteOutput)
+
DeleteCustomerGateway(*ec2.DeleteCustomerGatewayInput) (*ec2.DeleteCustomerGatewayOutput, error)
DeleteCustomerGatewayWithContext(aws.Context, *ec2.DeleteCustomerGatewayInput, ...request.Option) (*ec2.DeleteCustomerGatewayOutput, error)
DeleteCustomerGatewayRequest(*ec2.DeleteCustomerGatewayInput) (*request.Request, *ec2.DeleteCustomerGatewayOutput)
@@ -428,6 +492,22 @@ type EC2API interface {
DeleteTagsWithContext(aws.Context, *ec2.DeleteTagsInput, ...request.Option) (*ec2.DeleteTagsOutput, error)
DeleteTagsRequest(*ec2.DeleteTagsInput) (*request.Request, *ec2.DeleteTagsOutput)
+ DeleteTransitGateway(*ec2.DeleteTransitGatewayInput) (*ec2.DeleteTransitGatewayOutput, error)
+ DeleteTransitGatewayWithContext(aws.Context, *ec2.DeleteTransitGatewayInput, ...request.Option) (*ec2.DeleteTransitGatewayOutput, error)
+ DeleteTransitGatewayRequest(*ec2.DeleteTransitGatewayInput) (*request.Request, *ec2.DeleteTransitGatewayOutput)
+
+ DeleteTransitGatewayRoute(*ec2.DeleteTransitGatewayRouteInput) (*ec2.DeleteTransitGatewayRouteOutput, error)
+ DeleteTransitGatewayRouteWithContext(aws.Context, *ec2.DeleteTransitGatewayRouteInput, ...request.Option) (*ec2.DeleteTransitGatewayRouteOutput, error)
+ DeleteTransitGatewayRouteRequest(*ec2.DeleteTransitGatewayRouteInput) (*request.Request, *ec2.DeleteTransitGatewayRouteOutput)
+
+ DeleteTransitGatewayRouteTable(*ec2.DeleteTransitGatewayRouteTableInput) (*ec2.DeleteTransitGatewayRouteTableOutput, error)
+ DeleteTransitGatewayRouteTableWithContext(aws.Context, *ec2.DeleteTransitGatewayRouteTableInput, ...request.Option) (*ec2.DeleteTransitGatewayRouteTableOutput, error)
+ DeleteTransitGatewayRouteTableRequest(*ec2.DeleteTransitGatewayRouteTableInput) (*request.Request, *ec2.DeleteTransitGatewayRouteTableOutput)
+
+ DeleteTransitGatewayVpcAttachment(*ec2.DeleteTransitGatewayVpcAttachmentInput) (*ec2.DeleteTransitGatewayVpcAttachmentOutput, error)
+ DeleteTransitGatewayVpcAttachmentWithContext(aws.Context, *ec2.DeleteTransitGatewayVpcAttachmentInput, ...request.Option) (*ec2.DeleteTransitGatewayVpcAttachmentOutput, error)
+ DeleteTransitGatewayVpcAttachmentRequest(*ec2.DeleteTransitGatewayVpcAttachmentInput) (*request.Request, *ec2.DeleteTransitGatewayVpcAttachmentOutput)
+
DeleteVolume(*ec2.DeleteVolumeInput) (*ec2.DeleteVolumeOutput, error)
DeleteVolumeWithContext(aws.Context, *ec2.DeleteVolumeInput, ...request.Option) (*ec2.DeleteVolumeOutput, error)
DeleteVolumeRequest(*ec2.DeleteVolumeInput) (*request.Request, *ec2.DeleteVolumeOutput)
@@ -464,6 +544,10 @@ type EC2API interface {
DeleteVpnGatewayWithContext(aws.Context, *ec2.DeleteVpnGatewayInput, ...request.Option) (*ec2.DeleteVpnGatewayOutput, error)
DeleteVpnGatewayRequest(*ec2.DeleteVpnGatewayInput) (*request.Request, *ec2.DeleteVpnGatewayOutput)
+ DeprovisionByoipCidr(*ec2.DeprovisionByoipCidrInput) (*ec2.DeprovisionByoipCidrOutput, error)
+ DeprovisionByoipCidrWithContext(aws.Context, *ec2.DeprovisionByoipCidrInput, ...request.Option) (*ec2.DeprovisionByoipCidrOutput, error)
+ DeprovisionByoipCidrRequest(*ec2.DeprovisionByoipCidrInput) (*request.Request, *ec2.DeprovisionByoipCidrOutput)
+
DeregisterImage(*ec2.DeregisterImageInput) (*ec2.DeregisterImageOutput, error)
DeregisterImageWithContext(aws.Context, *ec2.DeregisterImageInput, ...request.Option) (*ec2.DeregisterImageOutput, error)
DeregisterImageRequest(*ec2.DeregisterImageInput) (*request.Request, *ec2.DeregisterImageOutput)
@@ -488,10 +572,38 @@ type EC2API interface {
DescribeBundleTasksWithContext(aws.Context, *ec2.DescribeBundleTasksInput, ...request.Option) (*ec2.DescribeBundleTasksOutput, error)
DescribeBundleTasksRequest(*ec2.DescribeBundleTasksInput) (*request.Request, *ec2.DescribeBundleTasksOutput)
+ DescribeByoipCidrs(*ec2.DescribeByoipCidrsInput) (*ec2.DescribeByoipCidrsOutput, error)
+ DescribeByoipCidrsWithContext(aws.Context, *ec2.DescribeByoipCidrsInput, ...request.Option) (*ec2.DescribeByoipCidrsOutput, error)
+ DescribeByoipCidrsRequest(*ec2.DescribeByoipCidrsInput) (*request.Request, *ec2.DescribeByoipCidrsOutput)
+
+ DescribeCapacityReservations(*ec2.DescribeCapacityReservationsInput) (*ec2.DescribeCapacityReservationsOutput, error)
+ DescribeCapacityReservationsWithContext(aws.Context, *ec2.DescribeCapacityReservationsInput, ...request.Option) (*ec2.DescribeCapacityReservationsOutput, error)
+ DescribeCapacityReservationsRequest(*ec2.DescribeCapacityReservationsInput) (*request.Request, *ec2.DescribeCapacityReservationsOutput)
+
DescribeClassicLinkInstances(*ec2.DescribeClassicLinkInstancesInput) (*ec2.DescribeClassicLinkInstancesOutput, error)
DescribeClassicLinkInstancesWithContext(aws.Context, *ec2.DescribeClassicLinkInstancesInput, ...request.Option) (*ec2.DescribeClassicLinkInstancesOutput, error)
DescribeClassicLinkInstancesRequest(*ec2.DescribeClassicLinkInstancesInput) (*request.Request, *ec2.DescribeClassicLinkInstancesOutput)
+ DescribeClientVpnAuthorizationRules(*ec2.DescribeClientVpnAuthorizationRulesInput) (*ec2.DescribeClientVpnAuthorizationRulesOutput, error)
+ DescribeClientVpnAuthorizationRulesWithContext(aws.Context, *ec2.DescribeClientVpnAuthorizationRulesInput, ...request.Option) (*ec2.DescribeClientVpnAuthorizationRulesOutput, error)
+ DescribeClientVpnAuthorizationRulesRequest(*ec2.DescribeClientVpnAuthorizationRulesInput) (*request.Request, *ec2.DescribeClientVpnAuthorizationRulesOutput)
+
+ DescribeClientVpnConnections(*ec2.DescribeClientVpnConnectionsInput) (*ec2.DescribeClientVpnConnectionsOutput, error)
+ DescribeClientVpnConnectionsWithContext(aws.Context, *ec2.DescribeClientVpnConnectionsInput, ...request.Option) (*ec2.DescribeClientVpnConnectionsOutput, error)
+ DescribeClientVpnConnectionsRequest(*ec2.DescribeClientVpnConnectionsInput) (*request.Request, *ec2.DescribeClientVpnConnectionsOutput)
+
+ DescribeClientVpnEndpoints(*ec2.DescribeClientVpnEndpointsInput) (*ec2.DescribeClientVpnEndpointsOutput, error)
+ DescribeClientVpnEndpointsWithContext(aws.Context, *ec2.DescribeClientVpnEndpointsInput, ...request.Option) (*ec2.DescribeClientVpnEndpointsOutput, error)
+ DescribeClientVpnEndpointsRequest(*ec2.DescribeClientVpnEndpointsInput) (*request.Request, *ec2.DescribeClientVpnEndpointsOutput)
+
+ DescribeClientVpnRoutes(*ec2.DescribeClientVpnRoutesInput) (*ec2.DescribeClientVpnRoutesOutput, error)
+ DescribeClientVpnRoutesWithContext(aws.Context, *ec2.DescribeClientVpnRoutesInput, ...request.Option) (*ec2.DescribeClientVpnRoutesOutput, error)
+ DescribeClientVpnRoutesRequest(*ec2.DescribeClientVpnRoutesInput) (*request.Request, *ec2.DescribeClientVpnRoutesOutput)
+
+ DescribeClientVpnTargetNetworks(*ec2.DescribeClientVpnTargetNetworksInput) (*ec2.DescribeClientVpnTargetNetworksOutput, error)
+ DescribeClientVpnTargetNetworksWithContext(aws.Context, *ec2.DescribeClientVpnTargetNetworksInput, ...request.Option) (*ec2.DescribeClientVpnTargetNetworksOutput, error)
+ DescribeClientVpnTargetNetworksRequest(*ec2.DescribeClientVpnTargetNetworksInput) (*request.Request, *ec2.DescribeClientVpnTargetNetworksOutput)
+
DescribeConversionTasks(*ec2.DescribeConversionTasksInput) (*ec2.DescribeConversionTasksOutput, error)
DescribeConversionTasksWithContext(aws.Context, *ec2.DescribeConversionTasksInput, ...request.Option) (*ec2.DescribeConversionTasksOutput, error)
DescribeConversionTasksRequest(*ec2.DescribeConversionTasksInput) (*request.Request, *ec2.DescribeConversionTasksOutput)
@@ -645,6 +757,9 @@ type EC2API interface {
DescribeNetworkInterfacesWithContext(aws.Context, *ec2.DescribeNetworkInterfacesInput, ...request.Option) (*ec2.DescribeNetworkInterfacesOutput, error)
DescribeNetworkInterfacesRequest(*ec2.DescribeNetworkInterfacesInput) (*request.Request, *ec2.DescribeNetworkInterfacesOutput)
+ DescribeNetworkInterfacesPages(*ec2.DescribeNetworkInterfacesInput, func(*ec2.DescribeNetworkInterfacesOutput, bool) bool) error
+ DescribeNetworkInterfacesPagesWithContext(aws.Context, *ec2.DescribeNetworkInterfacesInput, func(*ec2.DescribeNetworkInterfacesOutput, bool) bool, ...request.Option) error
+
DescribePlacementGroups(*ec2.DescribePlacementGroupsInput) (*ec2.DescribePlacementGroupsOutput, error)
DescribePlacementGroupsWithContext(aws.Context, *ec2.DescribePlacementGroupsInput, ...request.Option) (*ec2.DescribePlacementGroupsOutput, error)
DescribePlacementGroupsRequest(*ec2.DescribePlacementGroupsInput) (*request.Request, *ec2.DescribePlacementGroupsOutput)
@@ -657,6 +772,10 @@ type EC2API interface {
DescribePrincipalIdFormatWithContext(aws.Context, *ec2.DescribePrincipalIdFormatInput, ...request.Option) (*ec2.DescribePrincipalIdFormatOutput, error)
DescribePrincipalIdFormatRequest(*ec2.DescribePrincipalIdFormatInput) (*request.Request, *ec2.DescribePrincipalIdFormatOutput)
+ DescribePublicIpv4Pools(*ec2.DescribePublicIpv4PoolsInput) (*ec2.DescribePublicIpv4PoolsOutput, error)
+ DescribePublicIpv4PoolsWithContext(aws.Context, *ec2.DescribePublicIpv4PoolsInput, ...request.Option) (*ec2.DescribePublicIpv4PoolsOutput, error)
+ DescribePublicIpv4PoolsRequest(*ec2.DescribePublicIpv4PoolsInput) (*request.Request, *ec2.DescribePublicIpv4PoolsOutput)
+
DescribeRegions(*ec2.DescribeRegionsInput) (*ec2.DescribeRegionsOutput, error)
DescribeRegionsWithContext(aws.Context, *ec2.DescribeRegionsInput, ...request.Option) (*ec2.DescribeRegionsOutput, error)
DescribeRegionsRequest(*ec2.DescribeRegionsInput) (*request.Request, *ec2.DescribeRegionsOutput)
@@ -687,6 +806,9 @@ type EC2API interface {
DescribeRouteTablesWithContext(aws.Context, *ec2.DescribeRouteTablesInput, ...request.Option) (*ec2.DescribeRouteTablesOutput, error)
DescribeRouteTablesRequest(*ec2.DescribeRouteTablesInput) (*request.Request, *ec2.DescribeRouteTablesOutput)
+ DescribeRouteTablesPages(*ec2.DescribeRouteTablesInput, func(*ec2.DescribeRouteTablesOutput, bool) bool) error
+ DescribeRouteTablesPagesWithContext(aws.Context, *ec2.DescribeRouteTablesInput, func(*ec2.DescribeRouteTablesOutput, bool) bool, ...request.Option) error
+
DescribeScheduledInstanceAvailability(*ec2.DescribeScheduledInstanceAvailabilityInput) (*ec2.DescribeScheduledInstanceAvailabilityOutput, error)
DescribeScheduledInstanceAvailabilityWithContext(aws.Context, *ec2.DescribeScheduledInstanceAvailabilityInput, ...request.Option) (*ec2.DescribeScheduledInstanceAvailabilityOutput, error)
DescribeScheduledInstanceAvailabilityRequest(*ec2.DescribeScheduledInstanceAvailabilityInput) (*request.Request, *ec2.DescribeScheduledInstanceAvailabilityOutput)
@@ -703,6 +825,9 @@ type EC2API interface {
DescribeSecurityGroupsWithContext(aws.Context, *ec2.DescribeSecurityGroupsInput, ...request.Option) (*ec2.DescribeSecurityGroupsOutput, error)
DescribeSecurityGroupsRequest(*ec2.DescribeSecurityGroupsInput) (*request.Request, *ec2.DescribeSecurityGroupsOutput)
+ DescribeSecurityGroupsPages(*ec2.DescribeSecurityGroupsInput, func(*ec2.DescribeSecurityGroupsOutput, bool) bool) error
+ DescribeSecurityGroupsPagesWithContext(aws.Context, *ec2.DescribeSecurityGroupsInput, func(*ec2.DescribeSecurityGroupsOutput, bool) bool, ...request.Option) error
+
DescribeSnapshotAttribute(*ec2.DescribeSnapshotAttributeInput) (*ec2.DescribeSnapshotAttributeOutput, error)
DescribeSnapshotAttributeWithContext(aws.Context, *ec2.DescribeSnapshotAttributeInput, ...request.Option) (*ec2.DescribeSnapshotAttributeOutput, error)
DescribeSnapshotAttributeRequest(*ec2.DescribeSnapshotAttributeInput) (*request.Request, *ec2.DescribeSnapshotAttributeOutput)
@@ -759,6 +884,22 @@ type EC2API interface {
DescribeTagsPages(*ec2.DescribeTagsInput, func(*ec2.DescribeTagsOutput, bool) bool) error
DescribeTagsPagesWithContext(aws.Context, *ec2.DescribeTagsInput, func(*ec2.DescribeTagsOutput, bool) bool, ...request.Option) error
+ DescribeTransitGatewayAttachments(*ec2.DescribeTransitGatewayAttachmentsInput) (*ec2.DescribeTransitGatewayAttachmentsOutput, error)
+ DescribeTransitGatewayAttachmentsWithContext(aws.Context, *ec2.DescribeTransitGatewayAttachmentsInput, ...request.Option) (*ec2.DescribeTransitGatewayAttachmentsOutput, error)
+ DescribeTransitGatewayAttachmentsRequest(*ec2.DescribeTransitGatewayAttachmentsInput) (*request.Request, *ec2.DescribeTransitGatewayAttachmentsOutput)
+
+ DescribeTransitGatewayRouteTables(*ec2.DescribeTransitGatewayRouteTablesInput) (*ec2.DescribeTransitGatewayRouteTablesOutput, error)
+ DescribeTransitGatewayRouteTablesWithContext(aws.Context, *ec2.DescribeTransitGatewayRouteTablesInput, ...request.Option) (*ec2.DescribeTransitGatewayRouteTablesOutput, error)
+ DescribeTransitGatewayRouteTablesRequest(*ec2.DescribeTransitGatewayRouteTablesInput) (*request.Request, *ec2.DescribeTransitGatewayRouteTablesOutput)
+
+ DescribeTransitGatewayVpcAttachments(*ec2.DescribeTransitGatewayVpcAttachmentsInput) (*ec2.DescribeTransitGatewayVpcAttachmentsOutput, error)
+ DescribeTransitGatewayVpcAttachmentsWithContext(aws.Context, *ec2.DescribeTransitGatewayVpcAttachmentsInput, ...request.Option) (*ec2.DescribeTransitGatewayVpcAttachmentsOutput, error)
+ DescribeTransitGatewayVpcAttachmentsRequest(*ec2.DescribeTransitGatewayVpcAttachmentsInput) (*request.Request, *ec2.DescribeTransitGatewayVpcAttachmentsOutput)
+
+ DescribeTransitGateways(*ec2.DescribeTransitGatewaysInput) (*ec2.DescribeTransitGatewaysOutput, error)
+ DescribeTransitGatewaysWithContext(aws.Context, *ec2.DescribeTransitGatewaysInput, ...request.Option) (*ec2.DescribeTransitGatewaysOutput, error)
+ DescribeTransitGatewaysRequest(*ec2.DescribeTransitGatewaysInput) (*request.Request, *ec2.DescribeTransitGatewaysOutput)
+
DescribeVolumeAttribute(*ec2.DescribeVolumeAttributeInput) (*ec2.DescribeVolumeAttributeOutput, error)
DescribeVolumeAttributeWithContext(aws.Context, *ec2.DescribeVolumeAttributeInput, ...request.Option) (*ec2.DescribeVolumeAttributeOutput, error)
DescribeVolumeAttributeRequest(*ec2.DescribeVolumeAttributeInput) (*request.Request, *ec2.DescribeVolumeAttributeOutput)
@@ -853,6 +994,10 @@ type EC2API interface {
DetachVpnGatewayWithContext(aws.Context, *ec2.DetachVpnGatewayInput, ...request.Option) (*ec2.DetachVpnGatewayOutput, error)
DetachVpnGatewayRequest(*ec2.DetachVpnGatewayInput) (*request.Request, *ec2.DetachVpnGatewayOutput)
+ DisableTransitGatewayRouteTablePropagation(*ec2.DisableTransitGatewayRouteTablePropagationInput) (*ec2.DisableTransitGatewayRouteTablePropagationOutput, error)
+ DisableTransitGatewayRouteTablePropagationWithContext(aws.Context, *ec2.DisableTransitGatewayRouteTablePropagationInput, ...request.Option) (*ec2.DisableTransitGatewayRouteTablePropagationOutput, error)
+ DisableTransitGatewayRouteTablePropagationRequest(*ec2.DisableTransitGatewayRouteTablePropagationInput) (*request.Request, *ec2.DisableTransitGatewayRouteTablePropagationOutput)
+
DisableVgwRoutePropagation(*ec2.DisableVgwRoutePropagationInput) (*ec2.DisableVgwRoutePropagationOutput, error)
DisableVgwRoutePropagationWithContext(aws.Context, *ec2.DisableVgwRoutePropagationInput, ...request.Option) (*ec2.DisableVgwRoutePropagationOutput, error)
DisableVgwRoutePropagationRequest(*ec2.DisableVgwRoutePropagationInput) (*request.Request, *ec2.DisableVgwRoutePropagationOutput)
@@ -869,6 +1014,10 @@ type EC2API interface {
DisassociateAddressWithContext(aws.Context, *ec2.DisassociateAddressInput, ...request.Option) (*ec2.DisassociateAddressOutput, error)
DisassociateAddressRequest(*ec2.DisassociateAddressInput) (*request.Request, *ec2.DisassociateAddressOutput)
+ DisassociateClientVpnTargetNetwork(*ec2.DisassociateClientVpnTargetNetworkInput) (*ec2.DisassociateClientVpnTargetNetworkOutput, error)
+ DisassociateClientVpnTargetNetworkWithContext(aws.Context, *ec2.DisassociateClientVpnTargetNetworkInput, ...request.Option) (*ec2.DisassociateClientVpnTargetNetworkOutput, error)
+ DisassociateClientVpnTargetNetworkRequest(*ec2.DisassociateClientVpnTargetNetworkInput) (*request.Request, *ec2.DisassociateClientVpnTargetNetworkOutput)
+
DisassociateIamInstanceProfile(*ec2.DisassociateIamInstanceProfileInput) (*ec2.DisassociateIamInstanceProfileOutput, error)
DisassociateIamInstanceProfileWithContext(aws.Context, *ec2.DisassociateIamInstanceProfileInput, ...request.Option) (*ec2.DisassociateIamInstanceProfileOutput, error)
DisassociateIamInstanceProfileRequest(*ec2.DisassociateIamInstanceProfileInput) (*request.Request, *ec2.DisassociateIamInstanceProfileOutput)
@@ -881,10 +1030,18 @@ type EC2API interface {
DisassociateSubnetCidrBlockWithContext(aws.Context, *ec2.DisassociateSubnetCidrBlockInput, ...request.Option) (*ec2.DisassociateSubnetCidrBlockOutput, error)
DisassociateSubnetCidrBlockRequest(*ec2.DisassociateSubnetCidrBlockInput) (*request.Request, *ec2.DisassociateSubnetCidrBlockOutput)
+ DisassociateTransitGatewayRouteTable(*ec2.DisassociateTransitGatewayRouteTableInput) (*ec2.DisassociateTransitGatewayRouteTableOutput, error)
+ DisassociateTransitGatewayRouteTableWithContext(aws.Context, *ec2.DisassociateTransitGatewayRouteTableInput, ...request.Option) (*ec2.DisassociateTransitGatewayRouteTableOutput, error)
+ DisassociateTransitGatewayRouteTableRequest(*ec2.DisassociateTransitGatewayRouteTableInput) (*request.Request, *ec2.DisassociateTransitGatewayRouteTableOutput)
+
DisassociateVpcCidrBlock(*ec2.DisassociateVpcCidrBlockInput) (*ec2.DisassociateVpcCidrBlockOutput, error)
DisassociateVpcCidrBlockWithContext(aws.Context, *ec2.DisassociateVpcCidrBlockInput, ...request.Option) (*ec2.DisassociateVpcCidrBlockOutput, error)
DisassociateVpcCidrBlockRequest(*ec2.DisassociateVpcCidrBlockInput) (*request.Request, *ec2.DisassociateVpcCidrBlockOutput)
+ EnableTransitGatewayRouteTablePropagation(*ec2.EnableTransitGatewayRouteTablePropagationInput) (*ec2.EnableTransitGatewayRouteTablePropagationOutput, error)
+ EnableTransitGatewayRouteTablePropagationWithContext(aws.Context, *ec2.EnableTransitGatewayRouteTablePropagationInput, ...request.Option) (*ec2.EnableTransitGatewayRouteTablePropagationOutput, error)
+ EnableTransitGatewayRouteTablePropagationRequest(*ec2.EnableTransitGatewayRouteTablePropagationInput) (*request.Request, *ec2.EnableTransitGatewayRouteTablePropagationOutput)
+
EnableVgwRoutePropagation(*ec2.EnableVgwRoutePropagationInput) (*ec2.EnableVgwRoutePropagationOutput, error)
EnableVgwRoutePropagationWithContext(aws.Context, *ec2.EnableVgwRoutePropagationInput, ...request.Option) (*ec2.EnableVgwRoutePropagationOutput, error)
EnableVgwRoutePropagationRequest(*ec2.EnableVgwRoutePropagationInput) (*request.Request, *ec2.EnableVgwRoutePropagationOutput)
@@ -901,6 +1058,18 @@ type EC2API interface {
EnableVpcClassicLinkDnsSupportWithContext(aws.Context, *ec2.EnableVpcClassicLinkDnsSupportInput, ...request.Option) (*ec2.EnableVpcClassicLinkDnsSupportOutput, error)
EnableVpcClassicLinkDnsSupportRequest(*ec2.EnableVpcClassicLinkDnsSupportInput) (*request.Request, *ec2.EnableVpcClassicLinkDnsSupportOutput)
+ ExportClientVpnClientCertificateRevocationList(*ec2.ExportClientVpnClientCertificateRevocationListInput) (*ec2.ExportClientVpnClientCertificateRevocationListOutput, error)
+ ExportClientVpnClientCertificateRevocationListWithContext(aws.Context, *ec2.ExportClientVpnClientCertificateRevocationListInput, ...request.Option) (*ec2.ExportClientVpnClientCertificateRevocationListOutput, error)
+ ExportClientVpnClientCertificateRevocationListRequest(*ec2.ExportClientVpnClientCertificateRevocationListInput) (*request.Request, *ec2.ExportClientVpnClientCertificateRevocationListOutput)
+
+ ExportClientVpnClientConfiguration(*ec2.ExportClientVpnClientConfigurationInput) (*ec2.ExportClientVpnClientConfigurationOutput, error)
+ ExportClientVpnClientConfigurationWithContext(aws.Context, *ec2.ExportClientVpnClientConfigurationInput, ...request.Option) (*ec2.ExportClientVpnClientConfigurationOutput, error)
+ ExportClientVpnClientConfigurationRequest(*ec2.ExportClientVpnClientConfigurationInput) (*request.Request, *ec2.ExportClientVpnClientConfigurationOutput)
+
+ ExportTransitGatewayRoutes(*ec2.ExportTransitGatewayRoutesInput) (*ec2.ExportTransitGatewayRoutesOutput, error)
+ ExportTransitGatewayRoutesWithContext(aws.Context, *ec2.ExportTransitGatewayRoutesInput, ...request.Option) (*ec2.ExportTransitGatewayRoutesOutput, error)
+ ExportTransitGatewayRoutesRequest(*ec2.ExportTransitGatewayRoutesInput) (*request.Request, *ec2.ExportTransitGatewayRoutesOutput)
+
GetConsoleOutput(*ec2.GetConsoleOutputInput) (*ec2.GetConsoleOutputOutput, error)
GetConsoleOutputWithContext(aws.Context, *ec2.GetConsoleOutputInput, ...request.Option) (*ec2.GetConsoleOutputOutput, error)
GetConsoleOutputRequest(*ec2.GetConsoleOutputInput) (*request.Request, *ec2.GetConsoleOutputOutput)
@@ -925,6 +1094,22 @@ type EC2API interface {
GetReservedInstancesExchangeQuoteWithContext(aws.Context, *ec2.GetReservedInstancesExchangeQuoteInput, ...request.Option) (*ec2.GetReservedInstancesExchangeQuoteOutput, error)
GetReservedInstancesExchangeQuoteRequest(*ec2.GetReservedInstancesExchangeQuoteInput) (*request.Request, *ec2.GetReservedInstancesExchangeQuoteOutput)
+ GetTransitGatewayAttachmentPropagations(*ec2.GetTransitGatewayAttachmentPropagationsInput) (*ec2.GetTransitGatewayAttachmentPropagationsOutput, error)
+ GetTransitGatewayAttachmentPropagationsWithContext(aws.Context, *ec2.GetTransitGatewayAttachmentPropagationsInput, ...request.Option) (*ec2.GetTransitGatewayAttachmentPropagationsOutput, error)
+ GetTransitGatewayAttachmentPropagationsRequest(*ec2.GetTransitGatewayAttachmentPropagationsInput) (*request.Request, *ec2.GetTransitGatewayAttachmentPropagationsOutput)
+
+ GetTransitGatewayRouteTableAssociations(*ec2.GetTransitGatewayRouteTableAssociationsInput) (*ec2.GetTransitGatewayRouteTableAssociationsOutput, error)
+ GetTransitGatewayRouteTableAssociationsWithContext(aws.Context, *ec2.GetTransitGatewayRouteTableAssociationsInput, ...request.Option) (*ec2.GetTransitGatewayRouteTableAssociationsOutput, error)
+ GetTransitGatewayRouteTableAssociationsRequest(*ec2.GetTransitGatewayRouteTableAssociationsInput) (*request.Request, *ec2.GetTransitGatewayRouteTableAssociationsOutput)
+
+ GetTransitGatewayRouteTablePropagations(*ec2.GetTransitGatewayRouteTablePropagationsInput) (*ec2.GetTransitGatewayRouteTablePropagationsOutput, error)
+ GetTransitGatewayRouteTablePropagationsWithContext(aws.Context, *ec2.GetTransitGatewayRouteTablePropagationsInput, ...request.Option) (*ec2.GetTransitGatewayRouteTablePropagationsOutput, error)
+ GetTransitGatewayRouteTablePropagationsRequest(*ec2.GetTransitGatewayRouteTablePropagationsInput) (*request.Request, *ec2.GetTransitGatewayRouteTablePropagationsOutput)
+
+ ImportClientVpnClientCertificateRevocationList(*ec2.ImportClientVpnClientCertificateRevocationListInput) (*ec2.ImportClientVpnClientCertificateRevocationListOutput, error)
+ ImportClientVpnClientCertificateRevocationListWithContext(aws.Context, *ec2.ImportClientVpnClientCertificateRevocationListInput, ...request.Option) (*ec2.ImportClientVpnClientCertificateRevocationListOutput, error)
+ ImportClientVpnClientCertificateRevocationListRequest(*ec2.ImportClientVpnClientCertificateRevocationListInput) (*request.Request, *ec2.ImportClientVpnClientCertificateRevocationListOutput)
+
ImportImage(*ec2.ImportImageInput) (*ec2.ImportImageOutput, error)
ImportImageWithContext(aws.Context, *ec2.ImportImageInput, ...request.Option) (*ec2.ImportImageOutput, error)
ImportImageRequest(*ec2.ImportImageInput) (*request.Request, *ec2.ImportImageOutput)
@@ -945,6 +1130,14 @@ type EC2API interface {
ImportVolumeWithContext(aws.Context, *ec2.ImportVolumeInput, ...request.Option) (*ec2.ImportVolumeOutput, error)
ImportVolumeRequest(*ec2.ImportVolumeInput) (*request.Request, *ec2.ImportVolumeOutput)
+ ModifyCapacityReservation(*ec2.ModifyCapacityReservationInput) (*ec2.ModifyCapacityReservationOutput, error)
+ ModifyCapacityReservationWithContext(aws.Context, *ec2.ModifyCapacityReservationInput, ...request.Option) (*ec2.ModifyCapacityReservationOutput, error)
+ ModifyCapacityReservationRequest(*ec2.ModifyCapacityReservationInput) (*request.Request, *ec2.ModifyCapacityReservationOutput)
+
+ ModifyClientVpnEndpoint(*ec2.ModifyClientVpnEndpointInput) (*ec2.ModifyClientVpnEndpointOutput, error)
+ ModifyClientVpnEndpointWithContext(aws.Context, *ec2.ModifyClientVpnEndpointInput, ...request.Option) (*ec2.ModifyClientVpnEndpointOutput, error)
+ ModifyClientVpnEndpointRequest(*ec2.ModifyClientVpnEndpointInput) (*request.Request, *ec2.ModifyClientVpnEndpointOutput)
+
ModifyFleet(*ec2.ModifyFleetInput) (*ec2.ModifyFleetOutput, error)
ModifyFleetWithContext(aws.Context, *ec2.ModifyFleetInput, ...request.Option) (*ec2.ModifyFleetOutput, error)
ModifyFleetRequest(*ec2.ModifyFleetInput) (*request.Request, *ec2.ModifyFleetOutput)
@@ -973,6 +1166,10 @@ type EC2API interface {
ModifyInstanceAttributeWithContext(aws.Context, *ec2.ModifyInstanceAttributeInput, ...request.Option) (*ec2.ModifyInstanceAttributeOutput, error)
ModifyInstanceAttributeRequest(*ec2.ModifyInstanceAttributeInput) (*request.Request, *ec2.ModifyInstanceAttributeOutput)
+ ModifyInstanceCapacityReservationAttributes(*ec2.ModifyInstanceCapacityReservationAttributesInput) (*ec2.ModifyInstanceCapacityReservationAttributesOutput, error)
+ ModifyInstanceCapacityReservationAttributesWithContext(aws.Context, *ec2.ModifyInstanceCapacityReservationAttributesInput, ...request.Option) (*ec2.ModifyInstanceCapacityReservationAttributesOutput, error)
+ ModifyInstanceCapacityReservationAttributesRequest(*ec2.ModifyInstanceCapacityReservationAttributesInput) (*request.Request, *ec2.ModifyInstanceCapacityReservationAttributesOutput)
+
ModifyInstanceCreditSpecification(*ec2.ModifyInstanceCreditSpecificationInput) (*ec2.ModifyInstanceCreditSpecificationOutput, error)
ModifyInstanceCreditSpecificationWithContext(aws.Context, *ec2.ModifyInstanceCreditSpecificationInput, ...request.Option) (*ec2.ModifyInstanceCreditSpecificationOutput, error)
ModifyInstanceCreditSpecificationRequest(*ec2.ModifyInstanceCreditSpecificationInput) (*request.Request, *ec2.ModifyInstanceCreditSpecificationOutput)
@@ -1005,6 +1202,10 @@ type EC2API interface {
ModifySubnetAttributeWithContext(aws.Context, *ec2.ModifySubnetAttributeInput, ...request.Option) (*ec2.ModifySubnetAttributeOutput, error)
ModifySubnetAttributeRequest(*ec2.ModifySubnetAttributeInput) (*request.Request, *ec2.ModifySubnetAttributeOutput)
+ ModifyTransitGatewayVpcAttachment(*ec2.ModifyTransitGatewayVpcAttachmentInput) (*ec2.ModifyTransitGatewayVpcAttachmentOutput, error)
+ ModifyTransitGatewayVpcAttachmentWithContext(aws.Context, *ec2.ModifyTransitGatewayVpcAttachmentInput, ...request.Option) (*ec2.ModifyTransitGatewayVpcAttachmentOutput, error)
+ ModifyTransitGatewayVpcAttachmentRequest(*ec2.ModifyTransitGatewayVpcAttachmentInput) (*request.Request, *ec2.ModifyTransitGatewayVpcAttachmentOutput)
+
ModifyVolume(*ec2.ModifyVolumeInput) (*ec2.ModifyVolumeOutput, error)
ModifyVolumeWithContext(aws.Context, *ec2.ModifyVolumeInput, ...request.Option) (*ec2.ModifyVolumeOutput, error)
ModifyVolumeRequest(*ec2.ModifyVolumeInput) (*request.Request, *ec2.ModifyVolumeOutput)
@@ -1049,6 +1250,10 @@ type EC2API interface {
MoveAddressToVpcWithContext(aws.Context, *ec2.MoveAddressToVpcInput, ...request.Option) (*ec2.MoveAddressToVpcOutput, error)
MoveAddressToVpcRequest(*ec2.MoveAddressToVpcInput) (*request.Request, *ec2.MoveAddressToVpcOutput)
+ ProvisionByoipCidr(*ec2.ProvisionByoipCidrInput) (*ec2.ProvisionByoipCidrOutput, error)
+ ProvisionByoipCidrWithContext(aws.Context, *ec2.ProvisionByoipCidrInput, ...request.Option) (*ec2.ProvisionByoipCidrOutput, error)
+ ProvisionByoipCidrRequest(*ec2.ProvisionByoipCidrInput) (*request.Request, *ec2.ProvisionByoipCidrOutput)
+
PurchaseHostReservation(*ec2.PurchaseHostReservationInput) (*ec2.PurchaseHostReservationOutput, error)
PurchaseHostReservationWithContext(aws.Context, *ec2.PurchaseHostReservationInput, ...request.Option) (*ec2.PurchaseHostReservationOutput, error)
PurchaseHostReservationRequest(*ec2.PurchaseHostReservationInput) (*request.Request, *ec2.PurchaseHostReservationOutput)
@@ -1069,6 +1274,10 @@ type EC2API interface {
RegisterImageWithContext(aws.Context, *ec2.RegisterImageInput, ...request.Option) (*ec2.RegisterImageOutput, error)
RegisterImageRequest(*ec2.RegisterImageInput) (*request.Request, *ec2.RegisterImageOutput)
+ RejectTransitGatewayVpcAttachment(*ec2.RejectTransitGatewayVpcAttachmentInput) (*ec2.RejectTransitGatewayVpcAttachmentOutput, error)
+ RejectTransitGatewayVpcAttachmentWithContext(aws.Context, *ec2.RejectTransitGatewayVpcAttachmentInput, ...request.Option) (*ec2.RejectTransitGatewayVpcAttachmentOutput, error)
+ RejectTransitGatewayVpcAttachmentRequest(*ec2.RejectTransitGatewayVpcAttachmentInput) (*request.Request, *ec2.RejectTransitGatewayVpcAttachmentOutput)
+
RejectVpcEndpointConnections(*ec2.RejectVpcEndpointConnectionsInput) (*ec2.RejectVpcEndpointConnectionsOutput, error)
RejectVpcEndpointConnectionsWithContext(aws.Context, *ec2.RejectVpcEndpointConnectionsInput, ...request.Option) (*ec2.RejectVpcEndpointConnectionsOutput, error)
RejectVpcEndpointConnectionsRequest(*ec2.RejectVpcEndpointConnectionsInput) (*request.Request, *ec2.RejectVpcEndpointConnectionsOutput)
@@ -1105,6 +1314,10 @@ type EC2API interface {
ReplaceRouteTableAssociationWithContext(aws.Context, *ec2.ReplaceRouteTableAssociationInput, ...request.Option) (*ec2.ReplaceRouteTableAssociationOutput, error)
ReplaceRouteTableAssociationRequest(*ec2.ReplaceRouteTableAssociationInput) (*request.Request, *ec2.ReplaceRouteTableAssociationOutput)
+ ReplaceTransitGatewayRoute(*ec2.ReplaceTransitGatewayRouteInput) (*ec2.ReplaceTransitGatewayRouteOutput, error)
+ ReplaceTransitGatewayRouteWithContext(aws.Context, *ec2.ReplaceTransitGatewayRouteInput, ...request.Option) (*ec2.ReplaceTransitGatewayRouteOutput, error)
+ ReplaceTransitGatewayRouteRequest(*ec2.ReplaceTransitGatewayRouteInput) (*request.Request, *ec2.ReplaceTransitGatewayRouteOutput)
+
ReportInstanceStatus(*ec2.ReportInstanceStatusInput) (*ec2.ReportInstanceStatusOutput, error)
ReportInstanceStatusWithContext(aws.Context, *ec2.ReportInstanceStatusInput, ...request.Option) (*ec2.ReportInstanceStatusOutput, error)
ReportInstanceStatusRequest(*ec2.ReportInstanceStatusInput) (*request.Request, *ec2.ReportInstanceStatusOutput)
@@ -1141,6 +1354,10 @@ type EC2API interface {
RestoreAddressToClassicWithContext(aws.Context, *ec2.RestoreAddressToClassicInput, ...request.Option) (*ec2.RestoreAddressToClassicOutput, error)
RestoreAddressToClassicRequest(*ec2.RestoreAddressToClassicInput) (*request.Request, *ec2.RestoreAddressToClassicOutput)
+ RevokeClientVpnIngress(*ec2.RevokeClientVpnIngressInput) (*ec2.RevokeClientVpnIngressOutput, error)
+ RevokeClientVpnIngressWithContext(aws.Context, *ec2.RevokeClientVpnIngressInput, ...request.Option) (*ec2.RevokeClientVpnIngressOutput, error)
+ RevokeClientVpnIngressRequest(*ec2.RevokeClientVpnIngressInput) (*request.Request, *ec2.RevokeClientVpnIngressOutput)
+
RevokeSecurityGroupEgress(*ec2.RevokeSecurityGroupEgressInput) (*ec2.RevokeSecurityGroupEgressOutput, error)
RevokeSecurityGroupEgressWithContext(aws.Context, *ec2.RevokeSecurityGroupEgressInput, ...request.Option) (*ec2.RevokeSecurityGroupEgressOutput, error)
RevokeSecurityGroupEgressRequest(*ec2.RevokeSecurityGroupEgressInput) (*request.Request, *ec2.RevokeSecurityGroupEgressOutput)
@@ -1157,6 +1374,10 @@ type EC2API interface {
RunScheduledInstancesWithContext(aws.Context, *ec2.RunScheduledInstancesInput, ...request.Option) (*ec2.RunScheduledInstancesOutput, error)
RunScheduledInstancesRequest(*ec2.RunScheduledInstancesInput) (*request.Request, *ec2.RunScheduledInstancesOutput)
+ SearchTransitGatewayRoutes(*ec2.SearchTransitGatewayRoutesInput) (*ec2.SearchTransitGatewayRoutesOutput, error)
+ SearchTransitGatewayRoutesWithContext(aws.Context, *ec2.SearchTransitGatewayRoutesInput, ...request.Option) (*ec2.SearchTransitGatewayRoutesOutput, error)
+ SearchTransitGatewayRoutesRequest(*ec2.SearchTransitGatewayRoutesInput) (*request.Request, *ec2.SearchTransitGatewayRoutesOutput)
+
StartInstances(*ec2.StartInstancesInput) (*ec2.StartInstancesOutput, error)
StartInstancesWithContext(aws.Context, *ec2.StartInstancesInput, ...request.Option) (*ec2.StartInstancesOutput, error)
StartInstancesRequest(*ec2.StartInstancesInput) (*request.Request, *ec2.StartInstancesOutput)
@@ -1165,6 +1386,10 @@ type EC2API interface {
StopInstancesWithContext(aws.Context, *ec2.StopInstancesInput, ...request.Option) (*ec2.StopInstancesOutput, error)
StopInstancesRequest(*ec2.StopInstancesInput) (*request.Request, *ec2.StopInstancesOutput)
+ TerminateClientVpnConnections(*ec2.TerminateClientVpnConnectionsInput) (*ec2.TerminateClientVpnConnectionsOutput, error)
+ TerminateClientVpnConnectionsWithContext(aws.Context, *ec2.TerminateClientVpnConnectionsInput, ...request.Option) (*ec2.TerminateClientVpnConnectionsOutput, error)
+ TerminateClientVpnConnectionsRequest(*ec2.TerminateClientVpnConnectionsInput) (*request.Request, *ec2.TerminateClientVpnConnectionsOutput)
+
TerminateInstances(*ec2.TerminateInstancesInput) (*ec2.TerminateInstancesOutput, error)
TerminateInstancesWithContext(aws.Context, *ec2.TerminateInstancesInput, ...request.Option) (*ec2.TerminateInstancesOutput, error)
TerminateInstancesRequest(*ec2.TerminateInstancesInput) (*request.Request, *ec2.TerminateInstancesOutput)
@@ -1189,6 +1414,10 @@ type EC2API interface {
UpdateSecurityGroupRuleDescriptionsIngressWithContext(aws.Context, *ec2.UpdateSecurityGroupRuleDescriptionsIngressInput, ...request.Option) (*ec2.UpdateSecurityGroupRuleDescriptionsIngressOutput, error)
UpdateSecurityGroupRuleDescriptionsIngressRequest(*ec2.UpdateSecurityGroupRuleDescriptionsIngressInput) (*request.Request, *ec2.UpdateSecurityGroupRuleDescriptionsIngressOutput)
+ WithdrawByoipCidr(*ec2.WithdrawByoipCidrInput) (*ec2.WithdrawByoipCidrOutput, error)
+ WithdrawByoipCidrWithContext(aws.Context, *ec2.WithdrawByoipCidrInput, ...request.Option) (*ec2.WithdrawByoipCidrOutput, error)
+ WithdrawByoipCidrRequest(*ec2.WithdrawByoipCidrInput) (*request.Request, *ec2.WithdrawByoipCidrOutput)
+
WaitUntilBundleTaskComplete(*ec2.DescribeBundleTasksInput) error
WaitUntilBundleTaskCompleteWithContext(aws.Context, *ec2.DescribeBundleTasksInput, ...request.WaiterOption) error
diff --git a/vendor/github.com/aws/aws-sdk-go/service/resourcegroupstaggingapi/api.go b/vendor/github.com/aws/aws-sdk-go/service/resourcegroupstaggingapi/api.go
new file mode 100644
index 00000000000..351a6363009
--- /dev/null
+++ b/vendor/github.com/aws/aws-sdk-go/service/resourcegroupstaggingapi/api.go
@@ -0,0 +1,1311 @@
+// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT.
+
+package resourcegroupstaggingapi
+
+import (
+ "fmt"
+
+ "github.com/aws/aws-sdk-go/aws"
+ "github.com/aws/aws-sdk-go/aws/awsutil"
+ "github.com/aws/aws-sdk-go/aws/request"
+)
+
+const opGetResources = "GetResources"
+
+// GetResourcesRequest generates a "aws/request.Request" representing the
+// client's request for the GetResources operation. The "output" return
+// value will be populated with the request's response once the request completes
+// successfully.
+//
+// Use "Send" method on the returned Request to send the API call to the service.
+// the "output" return value is not valid until after Send returns without error.
+//
+// See GetResources for more information on using the GetResources
+// API call, and error handling.
+//
+// This method is useful when you want to inject custom logic or configuration
+// into the SDK's request lifecycle. Such as custom headers, or retry logic.
+//
+//
+// // Example sending a request using the GetResourcesRequest method.
+// req, resp := client.GetResourcesRequest(params)
+//
+// err := req.Send()
+// if err == nil { // resp is now filled
+// fmt.Println(resp)
+// }
+//
+// See also, https://docs.aws.amazon.com/goto/WebAPI/resourcegroupstaggingapi-2017-01-26/GetResources
+func (c *ResourceGroupsTaggingAPI) GetResourcesRequest(input *GetResourcesInput) (req *request.Request, output *GetResourcesOutput) {
+ op := &request.Operation{
+ Name: opGetResources,
+ HTTPMethod: "POST",
+ HTTPPath: "/",
+ Paginator: &request.Paginator{
+ InputTokens: []string{"PaginationToken"},
+ OutputTokens: []string{"PaginationToken"},
+ LimitToken: "ResourcesPerPage",
+ TruncationToken: "",
+ },
+ }
+
+ if input == nil {
+ input = &GetResourcesInput{}
+ }
+
+ output = &GetResourcesOutput{}
+ req = c.newRequest(op, input, output)
+ return
+}
+
+// GetResources API operation for AWS Resource Groups Tagging API.
+//
+// Returns all the tagged resources that are associated with the specified tags
+// (keys and values) located in the specified region for the AWS account. The
+// tags and the resource types that you specify in the request are known as
+// filters. The response includes all tags that are associated with the requested
+// resources. If no filter is provided, this action returns a paginated resource
+// list with the associated tags.
+//
+// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
+// with awserr.Error's Code and Message methods to get detailed information about
+// the error.
+//
+// See the AWS API reference guide for AWS Resource Groups Tagging API's
+// API operation GetResources for usage and error information.
+//
+// Returned Error Codes:
+// * ErrCodeInvalidParameterException "InvalidParameterException"
+// A parameter is missing or a malformed string or invalid or out-of-range value
+// was supplied for the request parameter.
+//
+// * ErrCodeThrottledException "ThrottledException"
+// The request was denied to limit the frequency of submitted requests.
+//
+// * ErrCodeInternalServiceException "InternalServiceException"
+// The request processing failed because of an unknown error, exception, or
+// failure. You can retry the request.
+//
+// * ErrCodePaginationTokenExpiredException "PaginationTokenExpiredException"
+// A PaginationToken is valid for a maximum of 15 minutes. Your request was
+// denied because the specified PaginationToken has expired.
+//
+// See also, https://docs.aws.amazon.com/goto/WebAPI/resourcegroupstaggingapi-2017-01-26/GetResources
+func (c *ResourceGroupsTaggingAPI) GetResources(input *GetResourcesInput) (*GetResourcesOutput, error) {
+ req, out := c.GetResourcesRequest(input)
+ return out, req.Send()
+}
+
+// GetResourcesWithContext is the same as GetResources with the addition of
+// the ability to pass a context and additional request options.
+//
+// See GetResources for details on how to use this API operation.
+//
+// The context must be non-nil and will be used for request cancellation. If
+// the context is nil a panic will occur. In the future the SDK may create
+// sub-contexts for http.Requests. See https://golang.org/pkg/context/
+// for more information on using Contexts.
+func (c *ResourceGroupsTaggingAPI) GetResourcesWithContext(ctx aws.Context, input *GetResourcesInput, opts ...request.Option) (*GetResourcesOutput, error) {
+ req, out := c.GetResourcesRequest(input)
+ req.SetContext(ctx)
+ req.ApplyOptions(opts...)
+ return out, req.Send()
+}
+
+// GetResourcesPages iterates over the pages of a GetResources operation,
+// calling the "fn" function with the response data for each page. To stop
+// iterating, return false from the fn function.
+//
+// See GetResources method for more information on how to use this operation.
+//
+// Note: This operation can generate multiple requests to a service.
+//
+// // Example iterating over at most 3 pages of a GetResources operation.
+// pageNum := 0
+// err := client.GetResourcesPages(params,
+// func(page *GetResourcesOutput, lastPage bool) bool {
+// pageNum++
+// fmt.Println(page)
+// return pageNum <= 3
+// })
+//
+func (c *ResourceGroupsTaggingAPI) GetResourcesPages(input *GetResourcesInput, fn func(*GetResourcesOutput, bool) bool) error {
+ return c.GetResourcesPagesWithContext(aws.BackgroundContext(), input, fn)
+}
+
+// GetResourcesPagesWithContext same as GetResourcesPages except
+// it takes a Context and allows setting request options on the pages.
+//
+// The context must be non-nil and will be used for request cancellation. If
+// the context is nil a panic will occur. In the future the SDK may create
+// sub-contexts for http.Requests. See https://golang.org/pkg/context/
+// for more information on using Contexts.
+func (c *ResourceGroupsTaggingAPI) GetResourcesPagesWithContext(ctx aws.Context, input *GetResourcesInput, fn func(*GetResourcesOutput, bool) bool, opts ...request.Option) error {
+ p := request.Pagination{
+ NewRequest: func() (*request.Request, error) {
+ var inCpy *GetResourcesInput
+ if input != nil {
+ tmp := *input
+ inCpy = &tmp
+ }
+ req, _ := c.GetResourcesRequest(inCpy)
+ req.SetContext(ctx)
+ req.ApplyOptions(opts...)
+ return req, nil
+ },
+ }
+
+ cont := true
+ for p.Next() && cont {
+ cont = fn(p.Page().(*GetResourcesOutput), !p.HasNextPage())
+ }
+ return p.Err()
+}
+
+const opGetTagKeys = "GetTagKeys"
+
+// GetTagKeysRequest generates a "aws/request.Request" representing the
+// client's request for the GetTagKeys operation. The "output" return
+// value will be populated with the request's response once the request completes
+// successfully.
+//
+// Use "Send" method on the returned Request to send the API call to the service.
+// the "output" return value is not valid until after Send returns without error.
+//
+// See GetTagKeys for more information on using the GetTagKeys
+// API call, and error handling.
+//
+// This method is useful when you want to inject custom logic or configuration
+// into the SDK's request lifecycle. Such as custom headers, or retry logic.
+//
+//
+// // Example sending a request using the GetTagKeysRequest method.
+// req, resp := client.GetTagKeysRequest(params)
+//
+// err := req.Send()
+// if err == nil { // resp is now filled
+// fmt.Println(resp)
+// }
+//
+// See also, https://docs.aws.amazon.com/goto/WebAPI/resourcegroupstaggingapi-2017-01-26/GetTagKeys
+func (c *ResourceGroupsTaggingAPI) GetTagKeysRequest(input *GetTagKeysInput) (req *request.Request, output *GetTagKeysOutput) {
+ op := &request.Operation{
+ Name: opGetTagKeys,
+ HTTPMethod: "POST",
+ HTTPPath: "/",
+ Paginator: &request.Paginator{
+ InputTokens: []string{"PaginationToken"},
+ OutputTokens: []string{"PaginationToken"},
+ LimitToken: "",
+ TruncationToken: "",
+ },
+ }
+
+ if input == nil {
+ input = &GetTagKeysInput{}
+ }
+
+ output = &GetTagKeysOutput{}
+ req = c.newRequest(op, input, output)
+ return
+}
+
+// GetTagKeys API operation for AWS Resource Groups Tagging API.
+//
+// Returns all tag keys in the specified region for the AWS account.
+//
+// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
+// with awserr.Error's Code and Message methods to get detailed information about
+// the error.
+//
+// See the AWS API reference guide for AWS Resource Groups Tagging API's
+// API operation GetTagKeys for usage and error information.
+//
+// Returned Error Codes:
+// * ErrCodeInvalidParameterException "InvalidParameterException"
+// A parameter is missing or a malformed string or invalid or out-of-range value
+// was supplied for the request parameter.
+//
+// * ErrCodeThrottledException "ThrottledException"
+// The request was denied to limit the frequency of submitted requests.
+//
+// * ErrCodeInternalServiceException "InternalServiceException"
+// The request processing failed because of an unknown error, exception, or
+// failure. You can retry the request.
+//
+// * ErrCodePaginationTokenExpiredException "PaginationTokenExpiredException"
+// A PaginationToken is valid for a maximum of 15 minutes. Your request was
+// denied because the specified PaginationToken has expired.
+//
+// See also, https://docs.aws.amazon.com/goto/WebAPI/resourcegroupstaggingapi-2017-01-26/GetTagKeys
+func (c *ResourceGroupsTaggingAPI) GetTagKeys(input *GetTagKeysInput) (*GetTagKeysOutput, error) {
+ req, out := c.GetTagKeysRequest(input)
+ return out, req.Send()
+}
+
+// GetTagKeysWithContext is the same as GetTagKeys with the addition of
+// the ability to pass a context and additional request options.
+//
+// See GetTagKeys for details on how to use this API operation.
+//
+// The context must be non-nil and will be used for request cancellation. If
+// the context is nil a panic will occur. In the future the SDK may create
+// sub-contexts for http.Requests. See https://golang.org/pkg/context/
+// for more information on using Contexts.
+func (c *ResourceGroupsTaggingAPI) GetTagKeysWithContext(ctx aws.Context, input *GetTagKeysInput, opts ...request.Option) (*GetTagKeysOutput, error) {
+ req, out := c.GetTagKeysRequest(input)
+ req.SetContext(ctx)
+ req.ApplyOptions(opts...)
+ return out, req.Send()
+}
+
+// GetTagKeysPages iterates over the pages of a GetTagKeys operation,
+// calling the "fn" function with the response data for each page. To stop
+// iterating, return false from the fn function.
+//
+// See GetTagKeys method for more information on how to use this operation.
+//
+// Note: This operation can generate multiple requests to a service.
+//
+// // Example iterating over at most 3 pages of a GetTagKeys operation.
+// pageNum := 0
+// err := client.GetTagKeysPages(params,
+// func(page *GetTagKeysOutput, lastPage bool) bool {
+// pageNum++
+// fmt.Println(page)
+// return pageNum <= 3
+// })
+//
+func (c *ResourceGroupsTaggingAPI) GetTagKeysPages(input *GetTagKeysInput, fn func(*GetTagKeysOutput, bool) bool) error {
+ return c.GetTagKeysPagesWithContext(aws.BackgroundContext(), input, fn)
+}
+
+// GetTagKeysPagesWithContext same as GetTagKeysPages except
+// it takes a Context and allows setting request options on the pages.
+//
+// The context must be non-nil and will be used for request cancellation. If
+// the context is nil a panic will occur. In the future the SDK may create
+// sub-contexts for http.Requests. See https://golang.org/pkg/context/
+// for more information on using Contexts.
+func (c *ResourceGroupsTaggingAPI) GetTagKeysPagesWithContext(ctx aws.Context, input *GetTagKeysInput, fn func(*GetTagKeysOutput, bool) bool, opts ...request.Option) error {
+ p := request.Pagination{
+ NewRequest: func() (*request.Request, error) {
+ var inCpy *GetTagKeysInput
+ if input != nil {
+ tmp := *input
+ inCpy = &tmp
+ }
+ req, _ := c.GetTagKeysRequest(inCpy)
+ req.SetContext(ctx)
+ req.ApplyOptions(opts...)
+ return req, nil
+ },
+ }
+
+ cont := true
+ for p.Next() && cont {
+ cont = fn(p.Page().(*GetTagKeysOutput), !p.HasNextPage())
+ }
+ return p.Err()
+}
+
+const opGetTagValues = "GetTagValues"
+
+// GetTagValuesRequest generates a "aws/request.Request" representing the
+// client's request for the GetTagValues operation. The "output" return
+// value will be populated with the request's response once the request completes
+// successfully.
+//
+// Use "Send" method on the returned Request to send the API call to the service.
+// the "output" return value is not valid until after Send returns without error.
+//
+// See GetTagValues for more information on using the GetTagValues
+// API call, and error handling.
+//
+// This method is useful when you want to inject custom logic or configuration
+// into the SDK's request lifecycle. Such as custom headers, or retry logic.
+//
+//
+// // Example sending a request using the GetTagValuesRequest method.
+// req, resp := client.GetTagValuesRequest(params)
+//
+// err := req.Send()
+// if err == nil { // resp is now filled
+// fmt.Println(resp)
+// }
+//
+// See also, https://docs.aws.amazon.com/goto/WebAPI/resourcegroupstaggingapi-2017-01-26/GetTagValues
+func (c *ResourceGroupsTaggingAPI) GetTagValuesRequest(input *GetTagValuesInput) (req *request.Request, output *GetTagValuesOutput) {
+ op := &request.Operation{
+ Name: opGetTagValues,
+ HTTPMethod: "POST",
+ HTTPPath: "/",
+ Paginator: &request.Paginator{
+ InputTokens: []string{"PaginationToken"},
+ OutputTokens: []string{"PaginationToken"},
+ LimitToken: "",
+ TruncationToken: "",
+ },
+ }
+
+ if input == nil {
+ input = &GetTagValuesInput{}
+ }
+
+ output = &GetTagValuesOutput{}
+ req = c.newRequest(op, input, output)
+ return
+}
+
+// GetTagValues API operation for AWS Resource Groups Tagging API.
+//
+// Returns all tag values for the specified key in the specified region for
+// the AWS account.
+//
+// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
+// with awserr.Error's Code and Message methods to get detailed information about
+// the error.
+//
+// See the AWS API reference guide for AWS Resource Groups Tagging API's
+// API operation GetTagValues for usage and error information.
+//
+// Returned Error Codes:
+// * ErrCodeInvalidParameterException "InvalidParameterException"
+// A parameter is missing or a malformed string or invalid or out-of-range value
+// was supplied for the request parameter.
+//
+// * ErrCodeThrottledException "ThrottledException"
+// The request was denied to limit the frequency of submitted requests.
+//
+// * ErrCodeInternalServiceException "InternalServiceException"
+// The request processing failed because of an unknown error, exception, or
+// failure. You can retry the request.
+//
+// * ErrCodePaginationTokenExpiredException "PaginationTokenExpiredException"
+// A PaginationToken is valid for a maximum of 15 minutes. Your request was
+// denied because the specified PaginationToken has expired.
+//
+// See also, https://docs.aws.amazon.com/goto/WebAPI/resourcegroupstaggingapi-2017-01-26/GetTagValues
+func (c *ResourceGroupsTaggingAPI) GetTagValues(input *GetTagValuesInput) (*GetTagValuesOutput, error) {
+ req, out := c.GetTagValuesRequest(input)
+ return out, req.Send()
+}
+
+// GetTagValuesWithContext is the same as GetTagValues with the addition of
+// the ability to pass a context and additional request options.
+//
+// See GetTagValues for details on how to use this API operation.
+//
+// The context must be non-nil and will be used for request cancellation. If
+// the context is nil a panic will occur. In the future the SDK may create
+// sub-contexts for http.Requests. See https://golang.org/pkg/context/
+// for more information on using Contexts.
+func (c *ResourceGroupsTaggingAPI) GetTagValuesWithContext(ctx aws.Context, input *GetTagValuesInput, opts ...request.Option) (*GetTagValuesOutput, error) {
+ req, out := c.GetTagValuesRequest(input)
+ req.SetContext(ctx)
+ req.ApplyOptions(opts...)
+ return out, req.Send()
+}
+
+// GetTagValuesPages iterates over the pages of a GetTagValues operation,
+// calling the "fn" function with the response data for each page. To stop
+// iterating, return false from the fn function.
+//
+// See GetTagValues method for more information on how to use this operation.
+//
+// Note: This operation can generate multiple requests to a service.
+//
+// // Example iterating over at most 3 pages of a GetTagValues operation.
+// pageNum := 0
+// err := client.GetTagValuesPages(params,
+// func(page *GetTagValuesOutput, lastPage bool) bool {
+// pageNum++
+// fmt.Println(page)
+// return pageNum <= 3
+// })
+//
+func (c *ResourceGroupsTaggingAPI) GetTagValuesPages(input *GetTagValuesInput, fn func(*GetTagValuesOutput, bool) bool) error {
+ return c.GetTagValuesPagesWithContext(aws.BackgroundContext(), input, fn)
+}
+
+// GetTagValuesPagesWithContext same as GetTagValuesPages except
+// it takes a Context and allows setting request options on the pages.
+//
+// The context must be non-nil and will be used for request cancellation. If
+// the context is nil a panic will occur. In the future the SDK may create
+// sub-contexts for http.Requests. See https://golang.org/pkg/context/
+// for more information on using Contexts.
+func (c *ResourceGroupsTaggingAPI) GetTagValuesPagesWithContext(ctx aws.Context, input *GetTagValuesInput, fn func(*GetTagValuesOutput, bool) bool, opts ...request.Option) error {
+ p := request.Pagination{
+ NewRequest: func() (*request.Request, error) {
+ var inCpy *GetTagValuesInput
+ if input != nil {
+ tmp := *input
+ inCpy = &tmp
+ }
+ req, _ := c.GetTagValuesRequest(inCpy)
+ req.SetContext(ctx)
+ req.ApplyOptions(opts...)
+ return req, nil
+ },
+ }
+
+ cont := true
+ for p.Next() && cont {
+ cont = fn(p.Page().(*GetTagValuesOutput), !p.HasNextPage())
+ }
+ return p.Err()
+}
+
+const opTagResources = "TagResources"
+
+// TagResourcesRequest generates a "aws/request.Request" representing the
+// client's request for the TagResources operation. The "output" return
+// value will be populated with the request's response once the request completes
+// successfully.
+//
+// Use "Send" method on the returned Request to send the API call to the service.
+// the "output" return value is not valid until after Send returns without error.
+//
+// See TagResources for more information on using the TagResources
+// API call, and error handling.
+//
+// This method is useful when you want to inject custom logic or configuration
+// into the SDK's request lifecycle. Such as custom headers, or retry logic.
+//
+//
+// // Example sending a request using the TagResourcesRequest method.
+// req, resp := client.TagResourcesRequest(params)
+//
+// err := req.Send()
+// if err == nil { // resp is now filled
+// fmt.Println(resp)
+// }
+//
+// See also, https://docs.aws.amazon.com/goto/WebAPI/resourcegroupstaggingapi-2017-01-26/TagResources
+func (c *ResourceGroupsTaggingAPI) TagResourcesRequest(input *TagResourcesInput) (req *request.Request, output *TagResourcesOutput) {
+ op := &request.Operation{
+ Name: opTagResources,
+ HTTPMethod: "POST",
+ HTTPPath: "/",
+ }
+
+ if input == nil {
+ input = &TagResourcesInput{}
+ }
+
+ output = &TagResourcesOutput{}
+ req = c.newRequest(op, input, output)
+ return
+}
+
+// TagResources API operation for AWS Resource Groups Tagging API.
+//
+// Applies one or more tags to the specified resources. Note the following:
+//
+// * Not all resources can have tags. For a list of resources that support
+// tagging, see Supported Resources (http://docs.aws.amazon.com/awsconsolehelpdocs/latest/gsg/supported-resources.html)
+// in the AWS Resource Groups and Tag Editor User Guide.
+//
+// * Each resource can have up to 50 tags. For other limits, see Tag Restrictions
+// (http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Using_Tags.html#tag-restrictions)
+// in the Amazon EC2 User Guide for Linux Instances.
+//
+// * You can only tag resources that are located in the specified region
+// for the AWS account.
+//
+// * To add tags to a resource, you need the necessary permissions for the
+// service that the resource belongs to as well as permissions for adding
+// tags. For more information, see Obtaining Permissions for Tagging (http://docs.aws.amazon.com/awsconsolehelpdocs/latest/gsg/obtaining-permissions-for-tagging.html)
+// in the AWS Resource Groups and Tag Editor User Guide.
+//
+// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
+// with awserr.Error's Code and Message methods to get detailed information about
+// the error.
+//
+// See the AWS API reference guide for AWS Resource Groups Tagging API's
+// API operation TagResources for usage and error information.
+//
+// Returned Error Codes:
+// * ErrCodeInvalidParameterException "InvalidParameterException"
+// A parameter is missing or a malformed string or invalid or out-of-range value
+// was supplied for the request parameter.
+//
+// * ErrCodeThrottledException "ThrottledException"
+// The request was denied to limit the frequency of submitted requests.
+//
+// * ErrCodeInternalServiceException "InternalServiceException"
+// The request processing failed because of an unknown error, exception, or
+// failure. You can retry the request.
+//
+// See also, https://docs.aws.amazon.com/goto/WebAPI/resourcegroupstaggingapi-2017-01-26/TagResources
+func (c *ResourceGroupsTaggingAPI) TagResources(input *TagResourcesInput) (*TagResourcesOutput, error) {
+ req, out := c.TagResourcesRequest(input)
+ return out, req.Send()
+}
+
+// TagResourcesWithContext is the same as TagResources with the addition of
+// the ability to pass a context and additional request options.
+//
+// See TagResources for details on how to use this API operation.
+//
+// The context must be non-nil and will be used for request cancellation. If
+// the context is nil a panic will occur. In the future the SDK may create
+// sub-contexts for http.Requests. See https://golang.org/pkg/context/
+// for more information on using Contexts.
+func (c *ResourceGroupsTaggingAPI) TagResourcesWithContext(ctx aws.Context, input *TagResourcesInput, opts ...request.Option) (*TagResourcesOutput, error) {
+ req, out := c.TagResourcesRequest(input)
+ req.SetContext(ctx)
+ req.ApplyOptions(opts...)
+ return out, req.Send()
+}
+
+const opUntagResources = "UntagResources"
+
+// UntagResourcesRequest generates a "aws/request.Request" representing the
+// client's request for the UntagResources operation. The "output" return
+// value will be populated with the request's response once the request completes
+// successfully.
+//
+// Use "Send" method on the returned Request to send the API call to the service.
+// the "output" return value is not valid until after Send returns without error.
+//
+// See UntagResources for more information on using the UntagResources
+// API call, and error handling.
+//
+// This method is useful when you want to inject custom logic or configuration
+// into the SDK's request lifecycle. Such as custom headers, or retry logic.
+//
+//
+// // Example sending a request using the UntagResourcesRequest method.
+// req, resp := client.UntagResourcesRequest(params)
+//
+// err := req.Send()
+// if err == nil { // resp is now filled
+// fmt.Println(resp)
+// }
+//
+// See also, https://docs.aws.amazon.com/goto/WebAPI/resourcegroupstaggingapi-2017-01-26/UntagResources
+func (c *ResourceGroupsTaggingAPI) UntagResourcesRequest(input *UntagResourcesInput) (req *request.Request, output *UntagResourcesOutput) {
+ op := &request.Operation{
+ Name: opUntagResources,
+ HTTPMethod: "POST",
+ HTTPPath: "/",
+ }
+
+ if input == nil {
+ input = &UntagResourcesInput{}
+ }
+
+ output = &UntagResourcesOutput{}
+ req = c.newRequest(op, input, output)
+ return
+}
+
+// UntagResources API operation for AWS Resource Groups Tagging API.
+//
+// Removes the specified tags from the specified resources. When you specify
+// a tag key, the action removes both that key and its associated value. The
+// operation succeeds even if you attempt to remove tags from a resource that
+// were already removed. Note the following:
+//
+// * To remove tags from a resource, you need the necessary permissions for
+// the service that the resource belongs to as well as permissions for removing
+// tags. For more information, see Obtaining Permissions for Tagging (http://docs.aws.amazon.com/awsconsolehelpdocs/latest/gsg/obtaining-permissions-for-tagging.html)
+// in the AWS Resource Groups and Tag Editor User Guide.
+//
+// * You can only tag resources that are located in the specified region
+// for the AWS account.
+//
+// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
+// with awserr.Error's Code and Message methods to get detailed information about
+// the error.
+//
+// See the AWS API reference guide for AWS Resource Groups Tagging API's
+// API operation UntagResources for usage and error information.
+//
+// Returned Error Codes:
+// * ErrCodeInvalidParameterException "InvalidParameterException"
+// A parameter is missing or a malformed string or invalid or out-of-range value
+// was supplied for the request parameter.
+//
+// * ErrCodeThrottledException "ThrottledException"
+// The request was denied to limit the frequency of submitted requests.
+//
+// * ErrCodeInternalServiceException "InternalServiceException"
+// The request processing failed because of an unknown error, exception, or
+// failure. You can retry the request.
+//
+// See also, https://docs.aws.amazon.com/goto/WebAPI/resourcegroupstaggingapi-2017-01-26/UntagResources
+func (c *ResourceGroupsTaggingAPI) UntagResources(input *UntagResourcesInput) (*UntagResourcesOutput, error) {
+ req, out := c.UntagResourcesRequest(input)
+ return out, req.Send()
+}
+
+// UntagResourcesWithContext is the same as UntagResources with the addition of
+// the ability to pass a context and additional request options.
+//
+// See UntagResources for details on how to use this API operation.
+//
+// The context must be non-nil and will be used for request cancellation. If
+// the context is nil a panic will occur. In the future the SDK may create
+// sub-contexts for http.Requests. See https://golang.org/pkg/context/
+// for more information on using Contexts.
+func (c *ResourceGroupsTaggingAPI) UntagResourcesWithContext(ctx aws.Context, input *UntagResourcesInput, opts ...request.Option) (*UntagResourcesOutput, error) {
+ req, out := c.UntagResourcesRequest(input)
+ req.SetContext(ctx)
+ req.ApplyOptions(opts...)
+ return out, req.Send()
+}
+
+// Details of the common errors that all actions return.
+type FailureInfo struct {
+ _ struct{} `type:"structure"`
+
+ // The code of the common error. Valid values include InternalServiceException,
+ // InvalidParameterException, and any valid error code returned by the AWS service
+ // that hosts the resource that you want to tag.
+ ErrorCode *string `type:"string" enum:"ErrorCode"`
+
+ // The message of the common error.
+ ErrorMessage *string `type:"string"`
+
+ // The HTTP status code of the common error.
+ StatusCode *int64 `type:"integer"`
+}
+
+// String returns the string representation
+func (s FailureInfo) String() string {
+ return awsutil.Prettify(s)
+}
+
+// GoString returns the string representation
+func (s FailureInfo) GoString() string {
+ return s.String()
+}
+
+// SetErrorCode sets the ErrorCode field's value.
+func (s *FailureInfo) SetErrorCode(v string) *FailureInfo {
+ s.ErrorCode = &v
+ return s
+}
+
+// SetErrorMessage sets the ErrorMessage field's value.
+func (s *FailureInfo) SetErrorMessage(v string) *FailureInfo {
+ s.ErrorMessage = &v
+ return s
+}
+
+// SetStatusCode sets the StatusCode field's value.
+func (s *FailureInfo) SetStatusCode(v int64) *FailureInfo {
+ s.StatusCode = &v
+ return s
+}
+
+type GetResourcesInput struct {
+ _ struct{} `type:"structure"`
+
+ // A string that indicates that additional data is available. Leave this value
+ // empty for your initial request. If the response includes a PaginationToken,
+ // use that string for this value to request an additional page of data.
+ PaginationToken *string `type:"string"`
+
+ // The constraints on the resources that you want returned. The format of each
+ // resource type is service[:resourceType]. For example, specifying a resource
+ // type of ec2 returns all tagged Amazon EC2 resources (which includes tagged
+ // EC2 instances). Specifying a resource type of ec2:instance returns only EC2
+ // instances.
+ //
+ // The string for each service name and resource type is the same as that embedded
+ // in a resource's Amazon Resource Name (ARN). Consult the AWS General Reference
+ // for the following:
+ //
+ // * For a list of service name strings, see AWS Service Namespaces (http://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html#genref-aws-service-namespaces).
+ //
+ // * For resource type strings, see Example ARNs (http://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html#arns-syntax).
+ //
+ // * For more information about ARNs, see Amazon Resource Names (ARNs) and
+ // AWS Service Namespaces (http://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html).
+ ResourceTypeFilters []*string `type:"list"`
+
+ // A limit that restricts the number of resources returned by GetResources in
+ // paginated output. You can set ResourcesPerPage to a minimum of 1 item and
+ // the maximum of 50 items.
+ ResourcesPerPage *int64 `type:"integer"`
+
+ // A list of tags (keys and values). A request can include up to 50 keys, and
+ // each key can include up to 20 values.
+ //
+ // If you specify multiple filters connected by an AND operator in a single
+ // request, the response returns only those resources that are associated with
+ // every specified filter.
+ //
+ // If you specify multiple filters connected by an OR operator in a single request,
+ // the response returns all resources that are associated with at least one
+ // or possibly more of the specified filters.
+ TagFilters []*TagFilter `type:"list"`
+
+ // A limit that restricts the number of tags (key and value pairs) returned
+ // by GetResources in paginated output. A resource with no tags is counted as
+ // having one tag (one key and value pair).
+ //
+ // GetResources does not split a resource and its associated tags across pages.
+ // If the specified TagsPerPage would cause such a break, a PaginationToken
+ // is returned in place of the affected resource and its tags. Use that token
+ // in another request to get the remaining data. For example, if you specify
+ // a TagsPerPage of 100 and the account has 22 resources with 10 tags each (meaning
+ // that each resource has 10 key and value pairs), the output will consist of
+ // 3 pages, with the first page displaying the first 10 resources, each with
+ // its 10 tags, the second page displaying the next 10 resources each with its
+ // 10 tags, and the third page displaying the remaining 2 resources, each with
+ // its 10 tags.
+ //
+ // You can set TagsPerPage
+ TagsPerPage *int64 `type:"integer"`
+}
+
+// String returns the string representation
+func (s GetResourcesInput) String() string {
+ return awsutil.Prettify(s)
+}
+
+// GoString returns the string representation
+func (s GetResourcesInput) GoString() string {
+ return s.String()
+}
+
+// Validate inspects the fields of the type to determine if they are valid.
+func (s *GetResourcesInput) Validate() error {
+ invalidParams := request.ErrInvalidParams{Context: "GetResourcesInput"}
+ if s.TagFilters != nil {
+ for i, v := range s.TagFilters {
+ if v == nil {
+ continue
+ }
+ if err := v.Validate(); err != nil {
+ invalidParams.AddNested(fmt.Sprintf("%s[%v]", "TagFilters", i), err.(request.ErrInvalidParams))
+ }
+ }
+ }
+
+ if invalidParams.Len() > 0 {
+ return invalidParams
+ }
+ return nil
+}
+
+// SetPaginationToken sets the PaginationToken field's value.
+func (s *GetResourcesInput) SetPaginationToken(v string) *GetResourcesInput {
+ s.PaginationToken = &v
+ return s
+}
+
+// SetResourceTypeFilters sets the ResourceTypeFilters field's value.
+func (s *GetResourcesInput) SetResourceTypeFilters(v []*string) *GetResourcesInput {
+ s.ResourceTypeFilters = v
+ return s
+}
+
+// SetResourcesPerPage sets the ResourcesPerPage field's value.
+func (s *GetResourcesInput) SetResourcesPerPage(v int64) *GetResourcesInput {
+ s.ResourcesPerPage = &v
+ return s
+}
+
+// SetTagFilters sets the TagFilters field's value.
+func (s *GetResourcesInput) SetTagFilters(v []*TagFilter) *GetResourcesInput {
+ s.TagFilters = v
+ return s
+}
+
+// SetTagsPerPage sets the TagsPerPage field's value.
+func (s *GetResourcesInput) SetTagsPerPage(v int64) *GetResourcesInput {
+ s.TagsPerPage = &v
+ return s
+}
+
+type GetResourcesOutput struct {
+ _ struct{} `type:"structure"`
+
+ // A string that indicates that the response contains more data than can be
+ // returned in a single response. To receive additional data, specify this string
+ // for the PaginationToken value in a subsequent request.
+ PaginationToken *string `type:"string"`
+
+ // A list of resource ARNs and the tags (keys and values) associated with each.
+ ResourceTagMappingList []*ResourceTagMapping `type:"list"`
+}
+
+// String returns the string representation
+func (s GetResourcesOutput) String() string {
+ return awsutil.Prettify(s)
+}
+
+// GoString returns the string representation
+func (s GetResourcesOutput) GoString() string {
+ return s.String()
+}
+
+// SetPaginationToken sets the PaginationToken field's value.
+func (s *GetResourcesOutput) SetPaginationToken(v string) *GetResourcesOutput {
+ s.PaginationToken = &v
+ return s
+}
+
+// SetResourceTagMappingList sets the ResourceTagMappingList field's value.
+func (s *GetResourcesOutput) SetResourceTagMappingList(v []*ResourceTagMapping) *GetResourcesOutput {
+ s.ResourceTagMappingList = v
+ return s
+}
+
+type GetTagKeysInput struct {
+ _ struct{} `type:"structure"`
+
+ // A string that indicates that additional data is available. Leave this value
+ // empty for your initial request. If the response includes a PaginationToken,
+ // use that string for this value to request an additional page of data.
+ PaginationToken *string `type:"string"`
+}
+
+// String returns the string representation
+func (s GetTagKeysInput) String() string {
+ return awsutil.Prettify(s)
+}
+
+// GoString returns the string representation
+func (s GetTagKeysInput) GoString() string {
+ return s.String()
+}
+
+// SetPaginationToken sets the PaginationToken field's value.
+func (s *GetTagKeysInput) SetPaginationToken(v string) *GetTagKeysInput {
+ s.PaginationToken = &v
+ return s
+}
+
+type GetTagKeysOutput struct {
+ _ struct{} `type:"structure"`
+
+ // A string that indicates that the response contains more data than can be
+ // returned in a single response. To receive additional data, specify this string
+ // for the PaginationToken value in a subsequent request.
+ PaginationToken *string `type:"string"`
+
+ // A list of all tag keys in the AWS account.
+ TagKeys []*string `type:"list"`
+}
+
+// String returns the string representation
+func (s GetTagKeysOutput) String() string {
+ return awsutil.Prettify(s)
+}
+
+// GoString returns the string representation
+func (s GetTagKeysOutput) GoString() string {
+ return s.String()
+}
+
+// SetPaginationToken sets the PaginationToken field's value.
+func (s *GetTagKeysOutput) SetPaginationToken(v string) *GetTagKeysOutput {
+ s.PaginationToken = &v
+ return s
+}
+
+// SetTagKeys sets the TagKeys field's value.
+func (s *GetTagKeysOutput) SetTagKeys(v []*string) *GetTagKeysOutput {
+ s.TagKeys = v
+ return s
+}
+
+type GetTagValuesInput struct {
+ _ struct{} `type:"structure"`
+
+ // The key for which you want to list all existing values in the specified region
+ // for the AWS account.
+ //
+ // Key is a required field
+ Key *string `min:"1" type:"string" required:"true"`
+
+ // A string that indicates that additional data is available. Leave this value
+ // empty for your initial request. If the response includes a PaginationToken,
+ // use that string for this value to request an additional page of data.
+ PaginationToken *string `type:"string"`
+}
+
+// String returns the string representation
+func (s GetTagValuesInput) String() string {
+ return awsutil.Prettify(s)
+}
+
+// GoString returns the string representation
+func (s GetTagValuesInput) GoString() string {
+ return s.String()
+}
+
+// Validate inspects the fields of the type to determine if they are valid.
+func (s *GetTagValuesInput) Validate() error {
+ invalidParams := request.ErrInvalidParams{Context: "GetTagValuesInput"}
+ if s.Key == nil {
+ invalidParams.Add(request.NewErrParamRequired("Key"))
+ }
+ if s.Key != nil && len(*s.Key) < 1 {
+ invalidParams.Add(request.NewErrParamMinLen("Key", 1))
+ }
+
+ if invalidParams.Len() > 0 {
+ return invalidParams
+ }
+ return nil
+}
+
+// SetKey sets the Key field's value.
+func (s *GetTagValuesInput) SetKey(v string) *GetTagValuesInput {
+ s.Key = &v
+ return s
+}
+
+// SetPaginationToken sets the PaginationToken field's value.
+func (s *GetTagValuesInput) SetPaginationToken(v string) *GetTagValuesInput {
+ s.PaginationToken = &v
+ return s
+}
+
+type GetTagValuesOutput struct {
+ _ struct{} `type:"structure"`
+
+ // A string that indicates that the response contains more data than can be
+ // returned in a single response. To receive additional data, specify this string
+ // for the PaginationToken value in a subsequent request.
+ PaginationToken *string `type:"string"`
+
+ // A list of all tag values for the specified key in the AWS account.
+ TagValues []*string `type:"list"`
+}
+
+// String returns the string representation
+func (s GetTagValuesOutput) String() string {
+ return awsutil.Prettify(s)
+}
+
+// GoString returns the string representation
+func (s GetTagValuesOutput) GoString() string {
+ return s.String()
+}
+
+// SetPaginationToken sets the PaginationToken field's value.
+func (s *GetTagValuesOutput) SetPaginationToken(v string) *GetTagValuesOutput {
+ s.PaginationToken = &v
+ return s
+}
+
+// SetTagValues sets the TagValues field's value.
+func (s *GetTagValuesOutput) SetTagValues(v []*string) *GetTagValuesOutput {
+ s.TagValues = v
+ return s
+}
+
+// A list of resource ARNs and the tags (keys and values) that are associated
+// with each.
+type ResourceTagMapping struct {
+ _ struct{} `type:"structure"`
+
+ // An array of resource ARN(s).
+ ResourceARN *string `min:"1" type:"string"`
+
+ // The tags that have been applied to one or more AWS resources.
+ Tags []*Tag `type:"list"`
+}
+
+// String returns the string representation
+func (s ResourceTagMapping) String() string {
+ return awsutil.Prettify(s)
+}
+
+// GoString returns the string representation
+func (s ResourceTagMapping) GoString() string {
+ return s.String()
+}
+
+// SetResourceARN sets the ResourceARN field's value.
+func (s *ResourceTagMapping) SetResourceARN(v string) *ResourceTagMapping {
+ s.ResourceARN = &v
+ return s
+}
+
+// SetTags sets the Tags field's value.
+func (s *ResourceTagMapping) SetTags(v []*Tag) *ResourceTagMapping {
+ s.Tags = v
+ return s
+}
+
+// The metadata that you apply to AWS resources to help you categorize and organize
+// them. Each tag consists of a key and an optional value, both of which you
+// define. For more information, see Tag Basics (http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Using_Tags.html#tag-basics)
+// in the Amazon EC2 User Guide for Linux Instances.
+type Tag struct {
+ _ struct{} `type:"structure"`
+
+ // One part of a key-value pair that make up a tag. A key is a general label
+ // that acts like a category for more specific tag values.
+ //
+ // Key is a required field
+ Key *string `min:"1" type:"string" required:"true"`
+
+ // The optional part of a key-value pair that make up a tag. A value acts as
+ // a descriptor within a tag category (key).
+ //
+ // Value is a required field
+ Value *string `type:"string" required:"true"`
+}
+
+// String returns the string representation
+func (s Tag) String() string {
+ return awsutil.Prettify(s)
+}
+
+// GoString returns the string representation
+func (s Tag) GoString() string {
+ return s.String()
+}
+
+// SetKey sets the Key field's value.
+func (s *Tag) SetKey(v string) *Tag {
+ s.Key = &v
+ return s
+}
+
+// SetValue sets the Value field's value.
+func (s *Tag) SetValue(v string) *Tag {
+ s.Value = &v
+ return s
+}
+
+// A list of tags (keys and values) that are used to specify the associated
+// resources.
+type TagFilter struct {
+ _ struct{} `type:"structure"`
+
+ // One part of a key-value pair that make up a tag. A key is a general label
+ // that acts like a category for more specific tag values.
+ Key *string `min:"1" type:"string"`
+
+ // The optional part of a key-value pair that make up a tag. A value acts as
+ // a descriptor within a tag category (key).
+ Values []*string `type:"list"`
+}
+
+// String returns the string representation
+func (s TagFilter) String() string {
+ return awsutil.Prettify(s)
+}
+
+// GoString returns the string representation
+func (s TagFilter) GoString() string {
+ return s.String()
+}
+
+// Validate inspects the fields of the type to determine if they are valid.
+func (s *TagFilter) Validate() error {
+ invalidParams := request.ErrInvalidParams{Context: "TagFilter"}
+ if s.Key != nil && len(*s.Key) < 1 {
+ invalidParams.Add(request.NewErrParamMinLen("Key", 1))
+ }
+
+ if invalidParams.Len() > 0 {
+ return invalidParams
+ }
+ return nil
+}
+
+// SetKey sets the Key field's value.
+func (s *TagFilter) SetKey(v string) *TagFilter {
+ s.Key = &v
+ return s
+}
+
+// SetValues sets the Values field's value.
+func (s *TagFilter) SetValues(v []*string) *TagFilter {
+ s.Values = v
+ return s
+}
+
+type TagResourcesInput struct {
+ _ struct{} `type:"structure"`
+
+ // A list of ARNs. An ARN (Amazon Resource Name) uniquely identifies a resource.
+ // You can specify a minimum of 1 and a maximum of 20 ARNs (resources) to tag.
+ // An ARN can be set to a maximum of 1600 characters. For more information,
+ // see Amazon Resource Names (ARNs) and AWS Service Namespaces (http://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html)
+ // in the AWS General Reference.
+ //
+ // ResourceARNList is a required field
+ ResourceARNList []*string `min:"1" type:"list" required:"true"`
+
+ // The tags that you want to add to the specified resources. A tag consists
+ // of a key and a value that you define.
+ //
+ // Tags is a required field
+ Tags map[string]*string `min:"1" type:"map" required:"true"`
+}
+
+// String returns the string representation
+func (s TagResourcesInput) String() string {
+ return awsutil.Prettify(s)
+}
+
+// GoString returns the string representation
+func (s TagResourcesInput) GoString() string {
+ return s.String()
+}
+
+// Validate inspects the fields of the type to determine if they are valid.
+func (s *TagResourcesInput) Validate() error {
+ invalidParams := request.ErrInvalidParams{Context: "TagResourcesInput"}
+ if s.ResourceARNList == nil {
+ invalidParams.Add(request.NewErrParamRequired("ResourceARNList"))
+ }
+ if s.ResourceARNList != nil && len(s.ResourceARNList) < 1 {
+ invalidParams.Add(request.NewErrParamMinLen("ResourceARNList", 1))
+ }
+ if s.Tags == nil {
+ invalidParams.Add(request.NewErrParamRequired("Tags"))
+ }
+ if s.Tags != nil && len(s.Tags) < 1 {
+ invalidParams.Add(request.NewErrParamMinLen("Tags", 1))
+ }
+
+ if invalidParams.Len() > 0 {
+ return invalidParams
+ }
+ return nil
+}
+
+// SetResourceARNList sets the ResourceARNList field's value.
+func (s *TagResourcesInput) SetResourceARNList(v []*string) *TagResourcesInput {
+ s.ResourceARNList = v
+ return s
+}
+
+// SetTags sets the Tags field's value.
+func (s *TagResourcesInput) SetTags(v map[string]*string) *TagResourcesInput {
+ s.Tags = v
+ return s
+}
+
+type TagResourcesOutput struct {
+ _ struct{} `type:"structure"`
+
+ // Details of resources that could not be tagged. An error code, status code,
+ // and error message are returned for each failed item.
+ FailedResourcesMap map[string]*FailureInfo `type:"map"`
+}
+
+// String returns the string representation
+func (s TagResourcesOutput) String() string {
+ return awsutil.Prettify(s)
+}
+
+// GoString returns the string representation
+func (s TagResourcesOutput) GoString() string {
+ return s.String()
+}
+
+// SetFailedResourcesMap sets the FailedResourcesMap field's value.
+func (s *TagResourcesOutput) SetFailedResourcesMap(v map[string]*FailureInfo) *TagResourcesOutput {
+ s.FailedResourcesMap = v
+ return s
+}
+
+type UntagResourcesInput struct {
+ _ struct{} `type:"structure"`
+
+ // A list of ARNs. An ARN (Amazon Resource Name) uniquely identifies a resource.
+ // You can specify a minimum of 1 and a maximum of 20 ARNs (resources) to untag.
+ // An ARN can be set to a maximum of 1600 characters. For more information,
+ // see Amazon Resource Names (ARNs) and AWS Service Namespaces (http://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html)
+ // in the AWS General Reference.
+ //
+ // ResourceARNList is a required field
+ ResourceARNList []*string `min:"1" type:"list" required:"true"`
+
+ // A list of the tag keys that you want to remove from the specified resources.
+ //
+ // TagKeys is a required field
+ TagKeys []*string `min:"1" type:"list" required:"true"`
+}
+
+// String returns the string representation
+func (s UntagResourcesInput) String() string {
+ return awsutil.Prettify(s)
+}
+
+// GoString returns the string representation
+func (s UntagResourcesInput) GoString() string {
+ return s.String()
+}
+
+// Validate inspects the fields of the type to determine if they are valid.
+func (s *UntagResourcesInput) Validate() error {
+ invalidParams := request.ErrInvalidParams{Context: "UntagResourcesInput"}
+ if s.ResourceARNList == nil {
+ invalidParams.Add(request.NewErrParamRequired("ResourceARNList"))
+ }
+ if s.ResourceARNList != nil && len(s.ResourceARNList) < 1 {
+ invalidParams.Add(request.NewErrParamMinLen("ResourceARNList", 1))
+ }
+ if s.TagKeys == nil {
+ invalidParams.Add(request.NewErrParamRequired("TagKeys"))
+ }
+ if s.TagKeys != nil && len(s.TagKeys) < 1 {
+ invalidParams.Add(request.NewErrParamMinLen("TagKeys", 1))
+ }
+
+ if invalidParams.Len() > 0 {
+ return invalidParams
+ }
+ return nil
+}
+
+// SetResourceARNList sets the ResourceARNList field's value.
+func (s *UntagResourcesInput) SetResourceARNList(v []*string) *UntagResourcesInput {
+ s.ResourceARNList = v
+ return s
+}
+
+// SetTagKeys sets the TagKeys field's value.
+func (s *UntagResourcesInput) SetTagKeys(v []*string) *UntagResourcesInput {
+ s.TagKeys = v
+ return s
+}
+
+type UntagResourcesOutput struct {
+ _ struct{} `type:"structure"`
+
+ // Details of resources that could not be untagged. An error code, status code,
+ // and error message are returned for each failed item.
+ FailedResourcesMap map[string]*FailureInfo `type:"map"`
+}
+
+// String returns the string representation
+func (s UntagResourcesOutput) String() string {
+ return awsutil.Prettify(s)
+}
+
+// GoString returns the string representation
+func (s UntagResourcesOutput) GoString() string {
+ return s.String()
+}
+
+// SetFailedResourcesMap sets the FailedResourcesMap field's value.
+func (s *UntagResourcesOutput) SetFailedResourcesMap(v map[string]*FailureInfo) *UntagResourcesOutput {
+ s.FailedResourcesMap = v
+ return s
+}
+
+const (
+ // ErrorCodeInternalServiceException is a ErrorCode enum value
+ ErrorCodeInternalServiceException = "InternalServiceException"
+
+ // ErrorCodeInvalidParameterException is a ErrorCode enum value
+ ErrorCodeInvalidParameterException = "InvalidParameterException"
+)
diff --git a/vendor/github.com/aws/aws-sdk-go/service/resourcegroupstaggingapi/doc.go b/vendor/github.com/aws/aws-sdk-go/service/resourcegroupstaggingapi/doc.go
new file mode 100644
index 00000000000..45896e0ec83
--- /dev/null
+++ b/vendor/github.com/aws/aws-sdk-go/service/resourcegroupstaggingapi/doc.go
@@ -0,0 +1,64 @@
+// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT.
+
+// Package resourcegroupstaggingapi provides the client and types for making API
+// requests to AWS Resource Groups Tagging API.
+//
+// This guide describes the API operations for the resource groups tagging.
+//
+// A tag is a label that you assign to an AWS resource. A tag consists of a
+// key and a value, both of which you define. For example, if you have two Amazon
+// EC2 instances, you might assign both a tag key of "Stack." But the value
+// of "Stack" might be "Testing" for one and "Production" for the other.
+//
+// Tagging can help you organize your resources and enables you to simplify
+// resource management, access management and cost allocation. For more information
+// about tagging, see Working with Tag Editor (http://docs.aws.amazon.com/awsconsolehelpdocs/latest/gsg/tag-editor.html)
+// and Working with Resource Groups (http://docs.aws.amazon.com/awsconsolehelpdocs/latest/gsg/resource-groups.html).
+// For more information about permissions you need to use the resource groups
+// tagging APIs, see Obtaining Permissions for Resource Groups (http://docs.aws.amazon.com/awsconsolehelpdocs/latest/gsg/obtaining-permissions-for-resource-groups.html)
+// and Obtaining Permissions for Tagging (http://docs.aws.amazon.com/awsconsolehelpdocs/latest/gsg/obtaining-permissions-for-tagging.html).
+//
+// You can use the resource groups tagging APIs to complete the following tasks:
+//
+// * Tag and untag supported resources located in the specified region for
+// the AWS account
+//
+// * Use tag-based filters to search for resources located in the specified
+// region for the AWS account
+//
+// * List all existing tag keys in the specified region for the AWS account
+//
+// * List all existing values for the specified key in the specified region
+// for the AWS account
+//
+// Not all resources can have tags. For a lists of resources that you can tag,
+// see Supported Resources (http://docs.aws.amazon.com/awsconsolehelpdocs/latest/gsg/supported-resources.html)
+// in the AWS Resource Groups and Tag Editor User Guide.
+//
+// To make full use of the resource groups tagging APIs, you might need additional
+// IAM permissions, including permission to access the resources of individual
+// services as well as permission to view and apply tags to those resources.
+// For more information, see Obtaining Permissions for Tagging (http://docs.aws.amazon.com/awsconsolehelpdocs/latest/gsg/obtaining-permissions-for-tagging.html)
+// in the AWS Resource Groups and Tag Editor User Guide.
+//
+// See https://docs.aws.amazon.com/goto/WebAPI/resourcegroupstaggingapi-2017-01-26 for more information on this service.
+//
+// See resourcegroupstaggingapi package documentation for more information.
+// https://docs.aws.amazon.com/sdk-for-go/api/service/resourcegroupstaggingapi/
+//
+// Using the Client
+//
+// To contact AWS Resource Groups Tagging API with the SDK use the New function to create
+// a new service client. With that client you can make API requests to the service.
+// These clients are safe to use concurrently.
+//
+// See the SDK's documentation for more information on how to use the SDK.
+// https://docs.aws.amazon.com/sdk-for-go/api/
+//
+// See aws.Config documentation for more information on configuring SDK clients.
+// https://docs.aws.amazon.com/sdk-for-go/api/aws/#Config
+//
+// See the AWS Resource Groups Tagging API client ResourceGroupsTaggingAPI for more
+// information on creating client for this service.
+// https://docs.aws.amazon.com/sdk-for-go/api/service/resourcegroupstaggingapi/#New
+package resourcegroupstaggingapi
diff --git a/vendor/github.com/aws/aws-sdk-go/service/resourcegroupstaggingapi/errors.go b/vendor/github.com/aws/aws-sdk-go/service/resourcegroupstaggingapi/errors.go
new file mode 100644
index 00000000000..89e5a769dbc
--- /dev/null
+++ b/vendor/github.com/aws/aws-sdk-go/service/resourcegroupstaggingapi/errors.go
@@ -0,0 +1,33 @@
+// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT.
+
+package resourcegroupstaggingapi
+
+const (
+
+ // ErrCodeInternalServiceException for service response error code
+ // "InternalServiceException".
+ //
+ // The request processing failed because of an unknown error, exception, or
+ // failure. You can retry the request.
+ ErrCodeInternalServiceException = "InternalServiceException"
+
+ // ErrCodeInvalidParameterException for service response error code
+ // "InvalidParameterException".
+ //
+ // A parameter is missing or a malformed string or invalid or out-of-range value
+ // was supplied for the request parameter.
+ ErrCodeInvalidParameterException = "InvalidParameterException"
+
+ // ErrCodePaginationTokenExpiredException for service response error code
+ // "PaginationTokenExpiredException".
+ //
+ // A PaginationToken is valid for a maximum of 15 minutes. Your request was
+ // denied because the specified PaginationToken has expired.
+ ErrCodePaginationTokenExpiredException = "PaginationTokenExpiredException"
+
+ // ErrCodeThrottledException for service response error code
+ // "ThrottledException".
+ //
+ // The request was denied to limit the frequency of submitted requests.
+ ErrCodeThrottledException = "ThrottledException"
+)
diff --git a/vendor/github.com/aws/aws-sdk-go/service/resourcegroupstaggingapi/resourcegroupstaggingapiiface/interface.go b/vendor/github.com/aws/aws-sdk-go/service/resourcegroupstaggingapi/resourcegroupstaggingapiiface/interface.go
new file mode 100644
index 00000000000..a0ece6e9645
--- /dev/null
+++ b/vendor/github.com/aws/aws-sdk-go/service/resourcegroupstaggingapi/resourcegroupstaggingapiiface/interface.go
@@ -0,0 +1,93 @@
+// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT.
+
+// Package resourcegroupstaggingapiiface provides an interface to enable mocking the AWS Resource Groups Tagging API service client
+// for testing your code.
+//
+// It is important to note that this interface will have breaking changes
+// when the service model is updated and adds new API operations, paginators,
+// and waiters.
+package resourcegroupstaggingapiiface
+
+import (
+ "github.com/aws/aws-sdk-go/aws"
+ "github.com/aws/aws-sdk-go/aws/request"
+ "github.com/aws/aws-sdk-go/service/resourcegroupstaggingapi"
+)
+
+// ResourceGroupsTaggingAPIAPI provides an interface to enable mocking the
+// resourcegroupstaggingapi.ResourceGroupsTaggingAPI service client's API operation,
+// paginators, and waiters. This make unit testing your code that calls out
+// to the SDK's service client's calls easier.
+//
+// The best way to use this interface is so the SDK's service client's calls
+// can be stubbed out for unit testing your code with the SDK without needing
+// to inject custom request handlers into the SDK's request pipeline.
+//
+// // myFunc uses an SDK service client to make a request to
+// // AWS Resource Groups Tagging API.
+// func myFunc(svc resourcegroupstaggingapiiface.ResourceGroupsTaggingAPIAPI) bool {
+// // Make svc.GetResources request
+// }
+//
+// func main() {
+// sess := session.New()
+// svc := resourcegroupstaggingapi.New(sess)
+//
+// myFunc(svc)
+// }
+//
+// In your _test.go file:
+//
+// // Define a mock struct to be used in your unit tests of myFunc.
+// type mockResourceGroupsTaggingAPIClient struct {
+// resourcegroupstaggingapiiface.ResourceGroupsTaggingAPIAPI
+// }
+// func (m *mockResourceGroupsTaggingAPIClient) GetResources(input *resourcegroupstaggingapi.GetResourcesInput) (*resourcegroupstaggingapi.GetResourcesOutput, error) {
+// // mock response/functionality
+// }
+//
+// func TestMyFunc(t *testing.T) {
+// // Setup Test
+// mockSvc := &mockResourceGroupsTaggingAPIClient{}
+//
+// myfunc(mockSvc)
+//
+// // Verify myFunc's functionality
+// }
+//
+// It is important to note that this interface will have breaking changes
+// when the service model is updated and adds new API operations, paginators,
+// and waiters. Its suggested to use the pattern above for testing, or using
+// tooling to generate mocks to satisfy the interfaces.
+type ResourceGroupsTaggingAPIAPI interface {
+ GetResources(*resourcegroupstaggingapi.GetResourcesInput) (*resourcegroupstaggingapi.GetResourcesOutput, error)
+ GetResourcesWithContext(aws.Context, *resourcegroupstaggingapi.GetResourcesInput, ...request.Option) (*resourcegroupstaggingapi.GetResourcesOutput, error)
+ GetResourcesRequest(*resourcegroupstaggingapi.GetResourcesInput) (*request.Request, *resourcegroupstaggingapi.GetResourcesOutput)
+
+ GetResourcesPages(*resourcegroupstaggingapi.GetResourcesInput, func(*resourcegroupstaggingapi.GetResourcesOutput, bool) bool) error
+ GetResourcesPagesWithContext(aws.Context, *resourcegroupstaggingapi.GetResourcesInput, func(*resourcegroupstaggingapi.GetResourcesOutput, bool) bool, ...request.Option) error
+
+ GetTagKeys(*resourcegroupstaggingapi.GetTagKeysInput) (*resourcegroupstaggingapi.GetTagKeysOutput, error)
+ GetTagKeysWithContext(aws.Context, *resourcegroupstaggingapi.GetTagKeysInput, ...request.Option) (*resourcegroupstaggingapi.GetTagKeysOutput, error)
+ GetTagKeysRequest(*resourcegroupstaggingapi.GetTagKeysInput) (*request.Request, *resourcegroupstaggingapi.GetTagKeysOutput)
+
+ GetTagKeysPages(*resourcegroupstaggingapi.GetTagKeysInput, func(*resourcegroupstaggingapi.GetTagKeysOutput, bool) bool) error
+ GetTagKeysPagesWithContext(aws.Context, *resourcegroupstaggingapi.GetTagKeysInput, func(*resourcegroupstaggingapi.GetTagKeysOutput, bool) bool, ...request.Option) error
+
+ GetTagValues(*resourcegroupstaggingapi.GetTagValuesInput) (*resourcegroupstaggingapi.GetTagValuesOutput, error)
+ GetTagValuesWithContext(aws.Context, *resourcegroupstaggingapi.GetTagValuesInput, ...request.Option) (*resourcegroupstaggingapi.GetTagValuesOutput, error)
+ GetTagValuesRequest(*resourcegroupstaggingapi.GetTagValuesInput) (*request.Request, *resourcegroupstaggingapi.GetTagValuesOutput)
+
+ GetTagValuesPages(*resourcegroupstaggingapi.GetTagValuesInput, func(*resourcegroupstaggingapi.GetTagValuesOutput, bool) bool) error
+ GetTagValuesPagesWithContext(aws.Context, *resourcegroupstaggingapi.GetTagValuesInput, func(*resourcegroupstaggingapi.GetTagValuesOutput, bool) bool, ...request.Option) error
+
+ TagResources(*resourcegroupstaggingapi.TagResourcesInput) (*resourcegroupstaggingapi.TagResourcesOutput, error)
+ TagResourcesWithContext(aws.Context, *resourcegroupstaggingapi.TagResourcesInput, ...request.Option) (*resourcegroupstaggingapi.TagResourcesOutput, error)
+ TagResourcesRequest(*resourcegroupstaggingapi.TagResourcesInput) (*request.Request, *resourcegroupstaggingapi.TagResourcesOutput)
+
+ UntagResources(*resourcegroupstaggingapi.UntagResourcesInput) (*resourcegroupstaggingapi.UntagResourcesOutput, error)
+ UntagResourcesWithContext(aws.Context, *resourcegroupstaggingapi.UntagResourcesInput, ...request.Option) (*resourcegroupstaggingapi.UntagResourcesOutput, error)
+ UntagResourcesRequest(*resourcegroupstaggingapi.UntagResourcesInput) (*request.Request, *resourcegroupstaggingapi.UntagResourcesOutput)
+}
+
+var _ ResourceGroupsTaggingAPIAPI = (*resourcegroupstaggingapi.ResourceGroupsTaggingAPI)(nil)
diff --git a/vendor/github.com/aws/aws-sdk-go/service/resourcegroupstaggingapi/service.go b/vendor/github.com/aws/aws-sdk-go/service/resourcegroupstaggingapi/service.go
new file mode 100644
index 00000000000..705db6b0d70
--- /dev/null
+++ b/vendor/github.com/aws/aws-sdk-go/service/resourcegroupstaggingapi/service.go
@@ -0,0 +1,97 @@
+// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT.
+
+package resourcegroupstaggingapi
+
+import (
+ "github.com/aws/aws-sdk-go/aws"
+ "github.com/aws/aws-sdk-go/aws/client"
+ "github.com/aws/aws-sdk-go/aws/client/metadata"
+ "github.com/aws/aws-sdk-go/aws/request"
+ "github.com/aws/aws-sdk-go/aws/signer/v4"
+ "github.com/aws/aws-sdk-go/private/protocol/jsonrpc"
+)
+
+// ResourceGroupsTaggingAPI provides the API operation methods for making requests to
+// AWS Resource Groups Tagging API. See this package's package overview docs
+// for details on the service.
+//
+// ResourceGroupsTaggingAPI methods are safe to use concurrently. It is not safe to
+// modify mutate any of the struct's properties though.
+type ResourceGroupsTaggingAPI struct {
+ *client.Client
+}
+
+// Used for custom client initialization logic
+var initClient func(*client.Client)
+
+// Used for custom request initialization logic
+var initRequest func(*request.Request)
+
+// Service information constants
+const (
+ ServiceName = "tagging" // Name of service.
+ EndpointsID = ServiceName // ID to lookup a service endpoint with.
+ ServiceID = "Resource Groups Tagging API" // ServiceID is a unique identifer of a specific service.
+)
+
+// New creates a new instance of the ResourceGroupsTaggingAPI client with a session.
+// If additional configuration is needed for the client instance use the optional
+// aws.Config parameter to add your extra config.
+//
+// Example:
+// // Create a ResourceGroupsTaggingAPI client from just a session.
+// svc := resourcegroupstaggingapi.New(mySession)
+//
+// // Create a ResourceGroupsTaggingAPI client with additional configuration
+// svc := resourcegroupstaggingapi.New(mySession, aws.NewConfig().WithRegion("us-west-2"))
+func New(p client.ConfigProvider, cfgs ...*aws.Config) *ResourceGroupsTaggingAPI {
+ c := p.ClientConfig(EndpointsID, cfgs...)
+ return newClient(*c.Config, c.Handlers, c.Endpoint, c.SigningRegion, c.SigningName)
+}
+
+// newClient creates, initializes and returns a new service client instance.
+func newClient(cfg aws.Config, handlers request.Handlers, endpoint, signingRegion, signingName string) *ResourceGroupsTaggingAPI {
+ svc := &ResourceGroupsTaggingAPI{
+ Client: client.New(
+ cfg,
+ metadata.ClientInfo{
+ ServiceName: ServiceName,
+ ServiceID: ServiceID,
+ SigningName: signingName,
+ SigningRegion: signingRegion,
+ Endpoint: endpoint,
+ APIVersion: "2017-01-26",
+ JSONVersion: "1.1",
+ TargetPrefix: "ResourceGroupsTaggingAPI_20170126",
+ },
+ handlers,
+ ),
+ }
+
+ // Handlers
+ svc.Handlers.Sign.PushBackNamed(v4.SignRequestHandler)
+ svc.Handlers.Build.PushBackNamed(jsonrpc.BuildHandler)
+ svc.Handlers.Unmarshal.PushBackNamed(jsonrpc.UnmarshalHandler)
+ svc.Handlers.UnmarshalMeta.PushBackNamed(jsonrpc.UnmarshalMetaHandler)
+ svc.Handlers.UnmarshalError.PushBackNamed(jsonrpc.UnmarshalErrorHandler)
+
+ // Run custom client initialization if present
+ if initClient != nil {
+ initClient(svc.Client)
+ }
+
+ return svc
+}
+
+// newRequest creates a new request for a ResourceGroupsTaggingAPI operation and runs any
+// custom request initialization.
+func (c *ResourceGroupsTaggingAPI) newRequest(op *request.Operation, params, data interface{}) *request.Request {
+ req := c.NewRequest(op, params, data)
+
+ // Run custom request initialization if present
+ if initRequest != nil {
+ initRequest(req)
+ }
+
+ return req
+}
diff --git a/vendor/github.com/aws/aws-sdk-go/service/s3/api.go b/vendor/github.com/aws/aws-sdk-go/service/s3/api.go
index 07fc06af1f9..3b3c2e380cb 100644
--- a/vendor/github.com/aws/aws-sdk-go/service/s3/api.go
+++ b/vendor/github.com/aws/aws-sdk-go/service/s3/api.go
@@ -11,6 +11,7 @@ import (
"time"
"github.com/aws/aws-sdk-go/aws"
+ "github.com/aws/aws-sdk-go/aws/awserr"
"github.com/aws/aws-sdk-go/aws/awsutil"
"github.com/aws/aws-sdk-go/aws/client"
"github.com/aws/aws-sdk-go/aws/request"
@@ -26,7 +27,7 @@ const opAbortMultipartUpload = "AbortMultipartUpload"
// AbortMultipartUploadRequest generates a "aws/request.Request" representing the
// client's request for the AbortMultipartUpload operation. The "output" return
// value will be populated with the request's response once the request completes
-// successfuly.
+// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
@@ -109,7 +110,7 @@ const opCompleteMultipartUpload = "CompleteMultipartUpload"
// CompleteMultipartUploadRequest generates a "aws/request.Request" representing the
// client's request for the CompleteMultipartUpload operation. The "output" return
// value will be populated with the request's response once the request completes
-// successfuly.
+// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
@@ -183,7 +184,7 @@ const opCopyObject = "CopyObject"
// CopyObjectRequest generates a "aws/request.Request" representing the
// client's request for the CopyObject operation. The "output" return
// value will be populated with the request's response once the request completes
-// successfuly.
+// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
@@ -263,7 +264,7 @@ const opCreateBucket = "CreateBucket"
// CreateBucketRequest generates a "aws/request.Request" representing the
// client's request for the CreateBucket operation. The "output" return
// value will be populated with the request's response once the request completes
-// successfuly.
+// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
@@ -345,7 +346,7 @@ const opCreateMultipartUpload = "CreateMultipartUpload"
// CreateMultipartUploadRequest generates a "aws/request.Request" representing the
// client's request for the CreateMultipartUpload operation. The "output" return
// value will be populated with the request's response once the request completes
-// successfuly.
+// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
@@ -425,7 +426,7 @@ const opDeleteBucket = "DeleteBucket"
// DeleteBucketRequest generates a "aws/request.Request" representing the
// client's request for the DeleteBucket operation. The "output" return
// value will be populated with the request's response once the request completes
-// successfuly.
+// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
@@ -459,8 +460,7 @@ func (c *S3) DeleteBucketRequest(input *DeleteBucketInput) (req *request.Request
output = &DeleteBucketOutput{}
req = c.newRequest(op, input, output)
- req.Handlers.Unmarshal.Remove(restxml.UnmarshalHandler)
- req.Handlers.Unmarshal.PushBackNamed(protocol.UnmarshalDiscardBodyHandler)
+ req.Handlers.Unmarshal.Swap(restxml.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
return
}
@@ -502,7 +502,7 @@ const opDeleteBucketAnalyticsConfiguration = "DeleteBucketAnalyticsConfiguration
// DeleteBucketAnalyticsConfigurationRequest generates a "aws/request.Request" representing the
// client's request for the DeleteBucketAnalyticsConfiguration operation. The "output" return
// value will be populated with the request's response once the request completes
-// successfuly.
+// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
@@ -536,8 +536,7 @@ func (c *S3) DeleteBucketAnalyticsConfigurationRequest(input *DeleteBucketAnalyt
output = &DeleteBucketAnalyticsConfigurationOutput{}
req = c.newRequest(op, input, output)
- req.Handlers.Unmarshal.Remove(restxml.UnmarshalHandler)
- req.Handlers.Unmarshal.PushBackNamed(protocol.UnmarshalDiscardBodyHandler)
+ req.Handlers.Unmarshal.Swap(restxml.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
return
}
@@ -579,7 +578,7 @@ const opDeleteBucketCors = "DeleteBucketCors"
// DeleteBucketCorsRequest generates a "aws/request.Request" representing the
// client's request for the DeleteBucketCors operation. The "output" return
// value will be populated with the request's response once the request completes
-// successfuly.
+// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
@@ -613,14 +612,13 @@ func (c *S3) DeleteBucketCorsRequest(input *DeleteBucketCorsInput) (req *request
output = &DeleteBucketCorsOutput{}
req = c.newRequest(op, input, output)
- req.Handlers.Unmarshal.Remove(restxml.UnmarshalHandler)
- req.Handlers.Unmarshal.PushBackNamed(protocol.UnmarshalDiscardBodyHandler)
+ req.Handlers.Unmarshal.Swap(restxml.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
return
}
// DeleteBucketCors API operation for Amazon Simple Storage Service.
//
-// Deletes the cors configuration information set for the bucket.
+// Deletes the CORS configuration information set for the bucket.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
@@ -655,7 +653,7 @@ const opDeleteBucketEncryption = "DeleteBucketEncryption"
// DeleteBucketEncryptionRequest generates a "aws/request.Request" representing the
// client's request for the DeleteBucketEncryption operation. The "output" return
// value will be populated with the request's response once the request completes
-// successfuly.
+// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
@@ -689,8 +687,7 @@ func (c *S3) DeleteBucketEncryptionRequest(input *DeleteBucketEncryptionInput) (
output = &DeleteBucketEncryptionOutput{}
req = c.newRequest(op, input, output)
- req.Handlers.Unmarshal.Remove(restxml.UnmarshalHandler)
- req.Handlers.Unmarshal.PushBackNamed(protocol.UnmarshalDiscardBodyHandler)
+ req.Handlers.Unmarshal.Swap(restxml.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
return
}
@@ -731,7 +728,7 @@ const opDeleteBucketInventoryConfiguration = "DeleteBucketInventoryConfiguration
// DeleteBucketInventoryConfigurationRequest generates a "aws/request.Request" representing the
// client's request for the DeleteBucketInventoryConfiguration operation. The "output" return
// value will be populated with the request's response once the request completes
-// successfuly.
+// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
@@ -765,8 +762,7 @@ func (c *S3) DeleteBucketInventoryConfigurationRequest(input *DeleteBucketInvent
output = &DeleteBucketInventoryConfigurationOutput{}
req = c.newRequest(op, input, output)
- req.Handlers.Unmarshal.Remove(restxml.UnmarshalHandler)
- req.Handlers.Unmarshal.PushBackNamed(protocol.UnmarshalDiscardBodyHandler)
+ req.Handlers.Unmarshal.Swap(restxml.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
return
}
@@ -808,7 +804,7 @@ const opDeleteBucketLifecycle = "DeleteBucketLifecycle"
// DeleteBucketLifecycleRequest generates a "aws/request.Request" representing the
// client's request for the DeleteBucketLifecycle operation. The "output" return
// value will be populated with the request's response once the request completes
-// successfuly.
+// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
@@ -842,8 +838,7 @@ func (c *S3) DeleteBucketLifecycleRequest(input *DeleteBucketLifecycleInput) (re
output = &DeleteBucketLifecycleOutput{}
req = c.newRequest(op, input, output)
- req.Handlers.Unmarshal.Remove(restxml.UnmarshalHandler)
- req.Handlers.Unmarshal.PushBackNamed(protocol.UnmarshalDiscardBodyHandler)
+ req.Handlers.Unmarshal.Swap(restxml.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
return
}
@@ -884,7 +879,7 @@ const opDeleteBucketMetricsConfiguration = "DeleteBucketMetricsConfiguration"
// DeleteBucketMetricsConfigurationRequest generates a "aws/request.Request" representing the
// client's request for the DeleteBucketMetricsConfiguration operation. The "output" return
// value will be populated with the request's response once the request completes
-// successfuly.
+// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
@@ -918,8 +913,7 @@ func (c *S3) DeleteBucketMetricsConfigurationRequest(input *DeleteBucketMetricsC
output = &DeleteBucketMetricsConfigurationOutput{}
req = c.newRequest(op, input, output)
- req.Handlers.Unmarshal.Remove(restxml.UnmarshalHandler)
- req.Handlers.Unmarshal.PushBackNamed(protocol.UnmarshalDiscardBodyHandler)
+ req.Handlers.Unmarshal.Swap(restxml.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
return
}
@@ -961,7 +955,7 @@ const opDeleteBucketPolicy = "DeleteBucketPolicy"
// DeleteBucketPolicyRequest generates a "aws/request.Request" representing the
// client's request for the DeleteBucketPolicy operation. The "output" return
// value will be populated with the request's response once the request completes
-// successfuly.
+// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
@@ -995,8 +989,7 @@ func (c *S3) DeleteBucketPolicyRequest(input *DeleteBucketPolicyInput) (req *req
output = &DeleteBucketPolicyOutput{}
req = c.newRequest(op, input, output)
- req.Handlers.Unmarshal.Remove(restxml.UnmarshalHandler)
- req.Handlers.Unmarshal.PushBackNamed(protocol.UnmarshalDiscardBodyHandler)
+ req.Handlers.Unmarshal.Swap(restxml.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
return
}
@@ -1037,7 +1030,7 @@ const opDeleteBucketReplication = "DeleteBucketReplication"
// DeleteBucketReplicationRequest generates a "aws/request.Request" representing the
// client's request for the DeleteBucketReplication operation. The "output" return
// value will be populated with the request's response once the request completes
-// successfuly.
+// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
@@ -1071,14 +1064,15 @@ func (c *S3) DeleteBucketReplicationRequest(input *DeleteBucketReplicationInput)
output = &DeleteBucketReplicationOutput{}
req = c.newRequest(op, input, output)
- req.Handlers.Unmarshal.Remove(restxml.UnmarshalHandler)
- req.Handlers.Unmarshal.PushBackNamed(protocol.UnmarshalDiscardBodyHandler)
+ req.Handlers.Unmarshal.Swap(restxml.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
return
}
// DeleteBucketReplication API operation for Amazon Simple Storage Service.
//
-// Deletes the replication configuration from the bucket.
+// Deletes the replication configuration from the bucket. For information about
+// replication configuration, see Cross-Region Replication (CRR) ( https://docs.aws.amazon.com/AmazonS3/latest/dev/crr.html)
+// in the Amazon S3 Developer Guide.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
@@ -1113,7 +1107,7 @@ const opDeleteBucketTagging = "DeleteBucketTagging"
// DeleteBucketTaggingRequest generates a "aws/request.Request" representing the
// client's request for the DeleteBucketTagging operation. The "output" return
// value will be populated with the request's response once the request completes
-// successfuly.
+// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
@@ -1147,8 +1141,7 @@ func (c *S3) DeleteBucketTaggingRequest(input *DeleteBucketTaggingInput) (req *r
output = &DeleteBucketTaggingOutput{}
req = c.newRequest(op, input, output)
- req.Handlers.Unmarshal.Remove(restxml.UnmarshalHandler)
- req.Handlers.Unmarshal.PushBackNamed(protocol.UnmarshalDiscardBodyHandler)
+ req.Handlers.Unmarshal.Swap(restxml.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
return
}
@@ -1189,7 +1182,7 @@ const opDeleteBucketWebsite = "DeleteBucketWebsite"
// DeleteBucketWebsiteRequest generates a "aws/request.Request" representing the
// client's request for the DeleteBucketWebsite operation. The "output" return
// value will be populated with the request's response once the request completes
-// successfuly.
+// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
@@ -1223,8 +1216,7 @@ func (c *S3) DeleteBucketWebsiteRequest(input *DeleteBucketWebsiteInput) (req *r
output = &DeleteBucketWebsiteOutput{}
req = c.newRequest(op, input, output)
- req.Handlers.Unmarshal.Remove(restxml.UnmarshalHandler)
- req.Handlers.Unmarshal.PushBackNamed(protocol.UnmarshalDiscardBodyHandler)
+ req.Handlers.Unmarshal.Swap(restxml.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
return
}
@@ -1265,7 +1257,7 @@ const opDeleteObject = "DeleteObject"
// DeleteObjectRequest generates a "aws/request.Request" representing the
// client's request for the DeleteObject operation. The "output" return
// value will be populated with the request's response once the request completes
-// successfuly.
+// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
@@ -1341,7 +1333,7 @@ const opDeleteObjectTagging = "DeleteObjectTagging"
// DeleteObjectTaggingRequest generates a "aws/request.Request" representing the
// client's request for the DeleteObjectTagging operation. The "output" return
// value will be populated with the request's response once the request completes
-// successfuly.
+// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
@@ -1415,7 +1407,7 @@ const opDeleteObjects = "DeleteObjects"
// DeleteObjectsRequest generates a "aws/request.Request" representing the
// client's request for the DeleteObjects operation. The "output" return
// value will be populated with the request's response once the request completes
-// successfuly.
+// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
@@ -1485,12 +1477,87 @@ func (c *S3) DeleteObjectsWithContext(ctx aws.Context, input *DeleteObjectsInput
return out, req.Send()
}
+const opDeletePublicAccessBlock = "DeletePublicAccessBlock"
+
+// DeletePublicAccessBlockRequest generates a "aws/request.Request" representing the
+// client's request for the DeletePublicAccessBlock operation. The "output" return
+// value will be populated with the request's response once the request completes
+// successfully.
+//
+// Use "Send" method on the returned Request to send the API call to the service.
+// the "output" return value is not valid until after Send returns without error.
+//
+// See DeletePublicAccessBlock for more information on using the DeletePublicAccessBlock
+// API call, and error handling.
+//
+// This method is useful when you want to inject custom logic or configuration
+// into the SDK's request lifecycle. Such as custom headers, or retry logic.
+//
+//
+// // Example sending a request using the DeletePublicAccessBlockRequest method.
+// req, resp := client.DeletePublicAccessBlockRequest(params)
+//
+// err := req.Send()
+// if err == nil { // resp is now filled
+// fmt.Println(resp)
+// }
+//
+// See also, https://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/DeletePublicAccessBlock
+func (c *S3) DeletePublicAccessBlockRequest(input *DeletePublicAccessBlockInput) (req *request.Request, output *DeletePublicAccessBlockOutput) {
+ op := &request.Operation{
+ Name: opDeletePublicAccessBlock,
+ HTTPMethod: "DELETE",
+ HTTPPath: "/{Bucket}?publicAccessBlock",
+ }
+
+ if input == nil {
+ input = &DeletePublicAccessBlockInput{}
+ }
+
+ output = &DeletePublicAccessBlockOutput{}
+ req = c.newRequest(op, input, output)
+ req.Handlers.Unmarshal.Swap(restxml.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
+ return
+}
+
+// DeletePublicAccessBlock API operation for Amazon Simple Storage Service.
+//
+// Removes the PublicAccessBlock configuration from an Amazon S3 bucket.
+//
+// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
+// with awserr.Error's Code and Message methods to get detailed information about
+// the error.
+//
+// See the AWS API reference guide for Amazon Simple Storage Service's
+// API operation DeletePublicAccessBlock for usage and error information.
+// See also, https://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/DeletePublicAccessBlock
+func (c *S3) DeletePublicAccessBlock(input *DeletePublicAccessBlockInput) (*DeletePublicAccessBlockOutput, error) {
+ req, out := c.DeletePublicAccessBlockRequest(input)
+ return out, req.Send()
+}
+
+// DeletePublicAccessBlockWithContext is the same as DeletePublicAccessBlock with the addition of
+// the ability to pass a context and additional request options.
+//
+// See DeletePublicAccessBlock for details on how to use this API operation.
+//
+// The context must be non-nil and will be used for request cancellation. If
+// the context is nil a panic will occur. In the future the SDK may create
+// sub-contexts for http.Requests. See https://golang.org/pkg/context/
+// for more information on using Contexts.
+func (c *S3) DeletePublicAccessBlockWithContext(ctx aws.Context, input *DeletePublicAccessBlockInput, opts ...request.Option) (*DeletePublicAccessBlockOutput, error) {
+ req, out := c.DeletePublicAccessBlockRequest(input)
+ req.SetContext(ctx)
+ req.ApplyOptions(opts...)
+ return out, req.Send()
+}
+
const opGetBucketAccelerateConfiguration = "GetBucketAccelerateConfiguration"
// GetBucketAccelerateConfigurationRequest generates a "aws/request.Request" representing the
// client's request for the GetBucketAccelerateConfiguration operation. The "output" return
// value will be populated with the request's response once the request completes
-// successfuly.
+// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
@@ -1564,7 +1631,7 @@ const opGetBucketAcl = "GetBucketAcl"
// GetBucketAclRequest generates a "aws/request.Request" representing the
// client's request for the GetBucketAcl operation. The "output" return
// value will be populated with the request's response once the request completes
-// successfuly.
+// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
@@ -1638,7 +1705,7 @@ const opGetBucketAnalyticsConfiguration = "GetBucketAnalyticsConfiguration"
// GetBucketAnalyticsConfigurationRequest generates a "aws/request.Request" representing the
// client's request for the GetBucketAnalyticsConfiguration operation. The "output" return
// value will be populated with the request's response once the request completes
-// successfuly.
+// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
@@ -1713,7 +1780,7 @@ const opGetBucketCors = "GetBucketCors"
// GetBucketCorsRequest generates a "aws/request.Request" representing the
// client's request for the GetBucketCors operation. The "output" return
// value will be populated with the request's response once the request completes
-// successfuly.
+// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
@@ -1752,7 +1819,7 @@ func (c *S3) GetBucketCorsRequest(input *GetBucketCorsInput) (req *request.Reque
// GetBucketCors API operation for Amazon Simple Storage Service.
//
-// Returns the cors configuration for the bucket.
+// Returns the CORS configuration for the bucket.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
@@ -1787,7 +1854,7 @@ const opGetBucketEncryption = "GetBucketEncryption"
// GetBucketEncryptionRequest generates a "aws/request.Request" representing the
// client's request for the GetBucketEncryption operation. The "output" return
// value will be populated with the request's response once the request completes
-// successfuly.
+// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
@@ -1861,7 +1928,7 @@ const opGetBucketInventoryConfiguration = "GetBucketInventoryConfiguration"
// GetBucketInventoryConfigurationRequest generates a "aws/request.Request" representing the
// client's request for the GetBucketInventoryConfiguration operation. The "output" return
// value will be populated with the request's response once the request completes
-// successfuly.
+// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
@@ -1936,7 +2003,7 @@ const opGetBucketLifecycle = "GetBucketLifecycle"
// GetBucketLifecycleRequest generates a "aws/request.Request" representing the
// client's request for the GetBucketLifecycle operation. The "output" return
// value will be populated with the request's response once the request completes
-// successfuly.
+// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
@@ -1957,6 +2024,8 @@ const opGetBucketLifecycle = "GetBucketLifecycle"
// }
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/GetBucketLifecycle
+//
+// Deprecated: GetBucketLifecycle has been deprecated
func (c *S3) GetBucketLifecycleRequest(input *GetBucketLifecycleInput) (req *request.Request, output *GetBucketLifecycleOutput) {
if c.Client.Config.Logger != nil {
c.Client.Config.Logger.Log("This operation, GetBucketLifecycle, has been deprecated")
@@ -1987,6 +2056,8 @@ func (c *S3) GetBucketLifecycleRequest(input *GetBucketLifecycleInput) (req *req
// See the AWS API reference guide for Amazon Simple Storage Service's
// API operation GetBucketLifecycle for usage and error information.
// See also, https://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/GetBucketLifecycle
+//
+// Deprecated: GetBucketLifecycle has been deprecated
func (c *S3) GetBucketLifecycle(input *GetBucketLifecycleInput) (*GetBucketLifecycleOutput, error) {
req, out := c.GetBucketLifecycleRequest(input)
return out, req.Send()
@@ -2001,6 +2072,8 @@ func (c *S3) GetBucketLifecycle(input *GetBucketLifecycleInput) (*GetBucketLifec
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
+//
+// Deprecated: GetBucketLifecycleWithContext has been deprecated
func (c *S3) GetBucketLifecycleWithContext(ctx aws.Context, input *GetBucketLifecycleInput, opts ...request.Option) (*GetBucketLifecycleOutput, error) {
req, out := c.GetBucketLifecycleRequest(input)
req.SetContext(ctx)
@@ -2013,7 +2086,7 @@ const opGetBucketLifecycleConfiguration = "GetBucketLifecycleConfiguration"
// GetBucketLifecycleConfigurationRequest generates a "aws/request.Request" representing the
// client's request for the GetBucketLifecycleConfiguration operation. The "output" return
// value will be populated with the request's response once the request completes
-// successfuly.
+// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
@@ -2087,7 +2160,7 @@ const opGetBucketLocation = "GetBucketLocation"
// GetBucketLocationRequest generates a "aws/request.Request" representing the
// client's request for the GetBucketLocation operation. The "output" return
// value will be populated with the request's response once the request completes
-// successfuly.
+// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
@@ -2161,7 +2234,7 @@ const opGetBucketLogging = "GetBucketLogging"
// GetBucketLoggingRequest generates a "aws/request.Request" representing the
// client's request for the GetBucketLogging operation. The "output" return
// value will be populated with the request's response once the request completes
-// successfuly.
+// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
@@ -2236,7 +2309,7 @@ const opGetBucketMetricsConfiguration = "GetBucketMetricsConfiguration"
// GetBucketMetricsConfigurationRequest generates a "aws/request.Request" representing the
// client's request for the GetBucketMetricsConfiguration operation. The "output" return
// value will be populated with the request's response once the request completes
-// successfuly.
+// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
@@ -2311,7 +2384,7 @@ const opGetBucketNotification = "GetBucketNotification"
// GetBucketNotificationRequest generates a "aws/request.Request" representing the
// client's request for the GetBucketNotification operation. The "output" return
// value will be populated with the request's response once the request completes
-// successfuly.
+// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
@@ -2332,6 +2405,8 @@ const opGetBucketNotification = "GetBucketNotification"
// }
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/GetBucketNotification
+//
+// Deprecated: GetBucketNotification has been deprecated
func (c *S3) GetBucketNotificationRequest(input *GetBucketNotificationConfigurationRequest) (req *request.Request, output *NotificationConfigurationDeprecated) {
if c.Client.Config.Logger != nil {
c.Client.Config.Logger.Log("This operation, GetBucketNotification, has been deprecated")
@@ -2362,6 +2437,8 @@ func (c *S3) GetBucketNotificationRequest(input *GetBucketNotificationConfigurat
// See the AWS API reference guide for Amazon Simple Storage Service's
// API operation GetBucketNotification for usage and error information.
// See also, https://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/GetBucketNotification
+//
+// Deprecated: GetBucketNotification has been deprecated
func (c *S3) GetBucketNotification(input *GetBucketNotificationConfigurationRequest) (*NotificationConfigurationDeprecated, error) {
req, out := c.GetBucketNotificationRequest(input)
return out, req.Send()
@@ -2376,6 +2453,8 @@ func (c *S3) GetBucketNotification(input *GetBucketNotificationConfigurationRequ
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
+//
+// Deprecated: GetBucketNotificationWithContext has been deprecated
func (c *S3) GetBucketNotificationWithContext(ctx aws.Context, input *GetBucketNotificationConfigurationRequest, opts ...request.Option) (*NotificationConfigurationDeprecated, error) {
req, out := c.GetBucketNotificationRequest(input)
req.SetContext(ctx)
@@ -2388,7 +2467,7 @@ const opGetBucketNotificationConfiguration = "GetBucketNotificationConfiguration
// GetBucketNotificationConfigurationRequest generates a "aws/request.Request" representing the
// client's request for the GetBucketNotificationConfiguration operation. The "output" return
// value will be populated with the request's response once the request completes
-// successfuly.
+// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
@@ -2462,7 +2541,7 @@ const opGetBucketPolicy = "GetBucketPolicy"
// GetBucketPolicyRequest generates a "aws/request.Request" representing the
// client's request for the GetBucketPolicy operation. The "output" return
// value will be populated with the request's response once the request completes
-// successfuly.
+// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
@@ -2531,12 +2610,87 @@ func (c *S3) GetBucketPolicyWithContext(ctx aws.Context, input *GetBucketPolicyI
return out, req.Send()
}
+const opGetBucketPolicyStatus = "GetBucketPolicyStatus"
+
+// GetBucketPolicyStatusRequest generates a "aws/request.Request" representing the
+// client's request for the GetBucketPolicyStatus operation. The "output" return
+// value will be populated with the request's response once the request completes
+// successfully.
+//
+// Use "Send" method on the returned Request to send the API call to the service.
+// the "output" return value is not valid until after Send returns without error.
+//
+// See GetBucketPolicyStatus for more information on using the GetBucketPolicyStatus
+// API call, and error handling.
+//
+// This method is useful when you want to inject custom logic or configuration
+// into the SDK's request lifecycle. Such as custom headers, or retry logic.
+//
+//
+// // Example sending a request using the GetBucketPolicyStatusRequest method.
+// req, resp := client.GetBucketPolicyStatusRequest(params)
+//
+// err := req.Send()
+// if err == nil { // resp is now filled
+// fmt.Println(resp)
+// }
+//
+// See also, https://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/GetBucketPolicyStatus
+func (c *S3) GetBucketPolicyStatusRequest(input *GetBucketPolicyStatusInput) (req *request.Request, output *GetBucketPolicyStatusOutput) {
+ op := &request.Operation{
+ Name: opGetBucketPolicyStatus,
+ HTTPMethod: "GET",
+ HTTPPath: "/{Bucket}?policyStatus",
+ }
+
+ if input == nil {
+ input = &GetBucketPolicyStatusInput{}
+ }
+
+ output = &GetBucketPolicyStatusOutput{}
+ req = c.newRequest(op, input, output)
+ return
+}
+
+// GetBucketPolicyStatus API operation for Amazon Simple Storage Service.
+//
+// Retrieves the policy status for an Amazon S3 bucket, indicating whether the
+// bucket is public.
+//
+// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
+// with awserr.Error's Code and Message methods to get detailed information about
+// the error.
+//
+// See the AWS API reference guide for Amazon Simple Storage Service's
+// API operation GetBucketPolicyStatus for usage and error information.
+// See also, https://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/GetBucketPolicyStatus
+func (c *S3) GetBucketPolicyStatus(input *GetBucketPolicyStatusInput) (*GetBucketPolicyStatusOutput, error) {
+ req, out := c.GetBucketPolicyStatusRequest(input)
+ return out, req.Send()
+}
+
+// GetBucketPolicyStatusWithContext is the same as GetBucketPolicyStatus with the addition of
+// the ability to pass a context and additional request options.
+//
+// See GetBucketPolicyStatus for details on how to use this API operation.
+//
+// The context must be non-nil and will be used for request cancellation. If
+// the context is nil a panic will occur. In the future the SDK may create
+// sub-contexts for http.Requests. See https://golang.org/pkg/context/
+// for more information on using Contexts.
+func (c *S3) GetBucketPolicyStatusWithContext(ctx aws.Context, input *GetBucketPolicyStatusInput, opts ...request.Option) (*GetBucketPolicyStatusOutput, error) {
+ req, out := c.GetBucketPolicyStatusRequest(input)
+ req.SetContext(ctx)
+ req.ApplyOptions(opts...)
+ return out, req.Send()
+}
+
const opGetBucketReplication = "GetBucketReplication"
// GetBucketReplicationRequest generates a "aws/request.Request" representing the
// client's request for the GetBucketReplication operation. The "output" return
// value will be populated with the request's response once the request completes
-// successfuly.
+// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
@@ -2577,6 +2731,10 @@ func (c *S3) GetBucketReplicationRequest(input *GetBucketReplicationInput) (req
//
// Returns the replication configuration of a bucket.
//
+// It can take a while to propagate the put or delete a replication configuration
+// to all Amazon S3 systems. Therefore, a get request soon after put or delete
+// can return a wrong result.
+//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
@@ -2610,7 +2768,7 @@ const opGetBucketRequestPayment = "GetBucketRequestPayment"
// GetBucketRequestPaymentRequest generates a "aws/request.Request" representing the
// client's request for the GetBucketRequestPayment operation. The "output" return
// value will be populated with the request's response once the request completes
-// successfuly.
+// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
@@ -2684,7 +2842,7 @@ const opGetBucketTagging = "GetBucketTagging"
// GetBucketTaggingRequest generates a "aws/request.Request" representing the
// client's request for the GetBucketTagging operation. The "output" return
// value will be populated with the request's response once the request completes
-// successfuly.
+// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
@@ -2758,7 +2916,7 @@ const opGetBucketVersioning = "GetBucketVersioning"
// GetBucketVersioningRequest generates a "aws/request.Request" representing the
// client's request for the GetBucketVersioning operation. The "output" return
// value will be populated with the request's response once the request completes
-// successfuly.
+// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
@@ -2832,7 +2990,7 @@ const opGetBucketWebsite = "GetBucketWebsite"
// GetBucketWebsiteRequest generates a "aws/request.Request" representing the
// client's request for the GetBucketWebsite operation. The "output" return
// value will be populated with the request's response once the request completes
-// successfuly.
+// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
@@ -2906,7 +3064,7 @@ const opGetObject = "GetObject"
// GetObjectRequest generates a "aws/request.Request" representing the
// client's request for the GetObject operation. The "output" return
// value will be populated with the request's response once the request completes
-// successfuly.
+// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
@@ -2985,7 +3143,7 @@ const opGetObjectAcl = "GetObjectAcl"
// GetObjectAclRequest generates a "aws/request.Request" representing the
// client's request for the GetObjectAcl operation. The "output" return
// value will be populated with the request's response once the request completes
-// successfuly.
+// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
@@ -3059,12 +3217,236 @@ func (c *S3) GetObjectAclWithContext(ctx aws.Context, input *GetObjectAclInput,
return out, req.Send()
}
+const opGetObjectLegalHold = "GetObjectLegalHold"
+
+// GetObjectLegalHoldRequest generates a "aws/request.Request" representing the
+// client's request for the GetObjectLegalHold operation. The "output" return
+// value will be populated with the request's response once the request completes
+// successfully.
+//
+// Use "Send" method on the returned Request to send the API call to the service.
+// the "output" return value is not valid until after Send returns without error.
+//
+// See GetObjectLegalHold for more information on using the GetObjectLegalHold
+// API call, and error handling.
+//
+// This method is useful when you want to inject custom logic or configuration
+// into the SDK's request lifecycle. Such as custom headers, or retry logic.
+//
+//
+// // Example sending a request using the GetObjectLegalHoldRequest method.
+// req, resp := client.GetObjectLegalHoldRequest(params)
+//
+// err := req.Send()
+// if err == nil { // resp is now filled
+// fmt.Println(resp)
+// }
+//
+// See also, https://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/GetObjectLegalHold
+func (c *S3) GetObjectLegalHoldRequest(input *GetObjectLegalHoldInput) (req *request.Request, output *GetObjectLegalHoldOutput) {
+ op := &request.Operation{
+ Name: opGetObjectLegalHold,
+ HTTPMethod: "GET",
+ HTTPPath: "/{Bucket}/{Key+}?legal-hold",
+ }
+
+ if input == nil {
+ input = &GetObjectLegalHoldInput{}
+ }
+
+ output = &GetObjectLegalHoldOutput{}
+ req = c.newRequest(op, input, output)
+ return
+}
+
+// GetObjectLegalHold API operation for Amazon Simple Storage Service.
+//
+// Gets an object's current Legal Hold status.
+//
+// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
+// with awserr.Error's Code and Message methods to get detailed information about
+// the error.
+//
+// See the AWS API reference guide for Amazon Simple Storage Service's
+// API operation GetObjectLegalHold for usage and error information.
+// See also, https://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/GetObjectLegalHold
+func (c *S3) GetObjectLegalHold(input *GetObjectLegalHoldInput) (*GetObjectLegalHoldOutput, error) {
+ req, out := c.GetObjectLegalHoldRequest(input)
+ return out, req.Send()
+}
+
+// GetObjectLegalHoldWithContext is the same as GetObjectLegalHold with the addition of
+// the ability to pass a context and additional request options.
+//
+// See GetObjectLegalHold for details on how to use this API operation.
+//
+// The context must be non-nil and will be used for request cancellation. If
+// the context is nil a panic will occur. In the future the SDK may create
+// sub-contexts for http.Requests. See https://golang.org/pkg/context/
+// for more information on using Contexts.
+func (c *S3) GetObjectLegalHoldWithContext(ctx aws.Context, input *GetObjectLegalHoldInput, opts ...request.Option) (*GetObjectLegalHoldOutput, error) {
+ req, out := c.GetObjectLegalHoldRequest(input)
+ req.SetContext(ctx)
+ req.ApplyOptions(opts...)
+ return out, req.Send()
+}
+
+const opGetObjectLockConfiguration = "GetObjectLockConfiguration"
+
+// GetObjectLockConfigurationRequest generates a "aws/request.Request" representing the
+// client's request for the GetObjectLockConfiguration operation. The "output" return
+// value will be populated with the request's response once the request completes
+// successfully.
+//
+// Use "Send" method on the returned Request to send the API call to the service.
+// the "output" return value is not valid until after Send returns without error.
+//
+// See GetObjectLockConfiguration for more information on using the GetObjectLockConfiguration
+// API call, and error handling.
+//
+// This method is useful when you want to inject custom logic or configuration
+// into the SDK's request lifecycle. Such as custom headers, or retry logic.
+//
+//
+// // Example sending a request using the GetObjectLockConfigurationRequest method.
+// req, resp := client.GetObjectLockConfigurationRequest(params)
+//
+// err := req.Send()
+// if err == nil { // resp is now filled
+// fmt.Println(resp)
+// }
+//
+// See also, https://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/GetObjectLockConfiguration
+func (c *S3) GetObjectLockConfigurationRequest(input *GetObjectLockConfigurationInput) (req *request.Request, output *GetObjectLockConfigurationOutput) {
+ op := &request.Operation{
+ Name: opGetObjectLockConfiguration,
+ HTTPMethod: "GET",
+ HTTPPath: "/{Bucket}?object-lock",
+ }
+
+ if input == nil {
+ input = &GetObjectLockConfigurationInput{}
+ }
+
+ output = &GetObjectLockConfigurationOutput{}
+ req = c.newRequest(op, input, output)
+ return
+}
+
+// GetObjectLockConfiguration API operation for Amazon Simple Storage Service.
+//
+// Gets the Object Lock configuration for a bucket. The rule specified in the
+// Object Lock configuration will be applied by default to every new object
+// placed in the specified bucket.
+//
+// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
+// with awserr.Error's Code and Message methods to get detailed information about
+// the error.
+//
+// See the AWS API reference guide for Amazon Simple Storage Service's
+// API operation GetObjectLockConfiguration for usage and error information.
+// See also, https://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/GetObjectLockConfiguration
+func (c *S3) GetObjectLockConfiguration(input *GetObjectLockConfigurationInput) (*GetObjectLockConfigurationOutput, error) {
+ req, out := c.GetObjectLockConfigurationRequest(input)
+ return out, req.Send()
+}
+
+// GetObjectLockConfigurationWithContext is the same as GetObjectLockConfiguration with the addition of
+// the ability to pass a context and additional request options.
+//
+// See GetObjectLockConfiguration for details on how to use this API operation.
+//
+// The context must be non-nil and will be used for request cancellation. If
+// the context is nil a panic will occur. In the future the SDK may create
+// sub-contexts for http.Requests. See https://golang.org/pkg/context/
+// for more information on using Contexts.
+func (c *S3) GetObjectLockConfigurationWithContext(ctx aws.Context, input *GetObjectLockConfigurationInput, opts ...request.Option) (*GetObjectLockConfigurationOutput, error) {
+ req, out := c.GetObjectLockConfigurationRequest(input)
+ req.SetContext(ctx)
+ req.ApplyOptions(opts...)
+ return out, req.Send()
+}
+
+const opGetObjectRetention = "GetObjectRetention"
+
+// GetObjectRetentionRequest generates a "aws/request.Request" representing the
+// client's request for the GetObjectRetention operation. The "output" return
+// value will be populated with the request's response once the request completes
+// successfully.
+//
+// Use "Send" method on the returned Request to send the API call to the service.
+// the "output" return value is not valid until after Send returns without error.
+//
+// See GetObjectRetention for more information on using the GetObjectRetention
+// API call, and error handling.
+//
+// This method is useful when you want to inject custom logic or configuration
+// into the SDK's request lifecycle. Such as custom headers, or retry logic.
+//
+//
+// // Example sending a request using the GetObjectRetentionRequest method.
+// req, resp := client.GetObjectRetentionRequest(params)
+//
+// err := req.Send()
+// if err == nil { // resp is now filled
+// fmt.Println(resp)
+// }
+//
+// See also, https://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/GetObjectRetention
+func (c *S3) GetObjectRetentionRequest(input *GetObjectRetentionInput) (req *request.Request, output *GetObjectRetentionOutput) {
+ op := &request.Operation{
+ Name: opGetObjectRetention,
+ HTTPMethod: "GET",
+ HTTPPath: "/{Bucket}/{Key+}?retention",
+ }
+
+ if input == nil {
+ input = &GetObjectRetentionInput{}
+ }
+
+ output = &GetObjectRetentionOutput{}
+ req = c.newRequest(op, input, output)
+ return
+}
+
+// GetObjectRetention API operation for Amazon Simple Storage Service.
+//
+// Retrieves an object's retention settings.
+//
+// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
+// with awserr.Error's Code and Message methods to get detailed information about
+// the error.
+//
+// See the AWS API reference guide for Amazon Simple Storage Service's
+// API operation GetObjectRetention for usage and error information.
+// See also, https://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/GetObjectRetention
+func (c *S3) GetObjectRetention(input *GetObjectRetentionInput) (*GetObjectRetentionOutput, error) {
+ req, out := c.GetObjectRetentionRequest(input)
+ return out, req.Send()
+}
+
+// GetObjectRetentionWithContext is the same as GetObjectRetention with the addition of
+// the ability to pass a context and additional request options.
+//
+// See GetObjectRetention for details on how to use this API operation.
+//
+// The context must be non-nil and will be used for request cancellation. If
+// the context is nil a panic will occur. In the future the SDK may create
+// sub-contexts for http.Requests. See https://golang.org/pkg/context/
+// for more information on using Contexts.
+func (c *S3) GetObjectRetentionWithContext(ctx aws.Context, input *GetObjectRetentionInput, opts ...request.Option) (*GetObjectRetentionOutput, error) {
+ req, out := c.GetObjectRetentionRequest(input)
+ req.SetContext(ctx)
+ req.ApplyOptions(opts...)
+ return out, req.Send()
+}
+
const opGetObjectTagging = "GetObjectTagging"
// GetObjectTaggingRequest generates a "aws/request.Request" representing the
// client's request for the GetObjectTagging operation. The "output" return
// value will be populated with the request's response once the request completes
-// successfuly.
+// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
@@ -3138,7 +3520,7 @@ const opGetObjectTorrent = "GetObjectTorrent"
// GetObjectTorrentRequest generates a "aws/request.Request" representing the
// client's request for the GetObjectTorrent operation. The "output" return
// value will be populated with the request's response once the request completes
-// successfuly.
+// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
@@ -3207,12 +3589,86 @@ func (c *S3) GetObjectTorrentWithContext(ctx aws.Context, input *GetObjectTorren
return out, req.Send()
}
+const opGetPublicAccessBlock = "GetPublicAccessBlock"
+
+// GetPublicAccessBlockRequest generates a "aws/request.Request" representing the
+// client's request for the GetPublicAccessBlock operation. The "output" return
+// value will be populated with the request's response once the request completes
+// successfully.
+//
+// Use "Send" method on the returned Request to send the API call to the service.
+// the "output" return value is not valid until after Send returns without error.
+//
+// See GetPublicAccessBlock for more information on using the GetPublicAccessBlock
+// API call, and error handling.
+//
+// This method is useful when you want to inject custom logic or configuration
+// into the SDK's request lifecycle. Such as custom headers, or retry logic.
+//
+//
+// // Example sending a request using the GetPublicAccessBlockRequest method.
+// req, resp := client.GetPublicAccessBlockRequest(params)
+//
+// err := req.Send()
+// if err == nil { // resp is now filled
+// fmt.Println(resp)
+// }
+//
+// See also, https://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/GetPublicAccessBlock
+func (c *S3) GetPublicAccessBlockRequest(input *GetPublicAccessBlockInput) (req *request.Request, output *GetPublicAccessBlockOutput) {
+ op := &request.Operation{
+ Name: opGetPublicAccessBlock,
+ HTTPMethod: "GET",
+ HTTPPath: "/{Bucket}?publicAccessBlock",
+ }
+
+ if input == nil {
+ input = &GetPublicAccessBlockInput{}
+ }
+
+ output = &GetPublicAccessBlockOutput{}
+ req = c.newRequest(op, input, output)
+ return
+}
+
+// GetPublicAccessBlock API operation for Amazon Simple Storage Service.
+//
+// Retrieves the PublicAccessBlock configuration for an Amazon S3 bucket.
+//
+// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
+// with awserr.Error's Code and Message methods to get detailed information about
+// the error.
+//
+// See the AWS API reference guide for Amazon Simple Storage Service's
+// API operation GetPublicAccessBlock for usage and error information.
+// See also, https://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/GetPublicAccessBlock
+func (c *S3) GetPublicAccessBlock(input *GetPublicAccessBlockInput) (*GetPublicAccessBlockOutput, error) {
+ req, out := c.GetPublicAccessBlockRequest(input)
+ return out, req.Send()
+}
+
+// GetPublicAccessBlockWithContext is the same as GetPublicAccessBlock with the addition of
+// the ability to pass a context and additional request options.
+//
+// See GetPublicAccessBlock for details on how to use this API operation.
+//
+// The context must be non-nil and will be used for request cancellation. If
+// the context is nil a panic will occur. In the future the SDK may create
+// sub-contexts for http.Requests. See https://golang.org/pkg/context/
+// for more information on using Contexts.
+func (c *S3) GetPublicAccessBlockWithContext(ctx aws.Context, input *GetPublicAccessBlockInput, opts ...request.Option) (*GetPublicAccessBlockOutput, error) {
+ req, out := c.GetPublicAccessBlockRequest(input)
+ req.SetContext(ctx)
+ req.ApplyOptions(opts...)
+ return out, req.Send()
+}
+
const opHeadBucket = "HeadBucket"
// HeadBucketRequest generates a "aws/request.Request" representing the
// client's request for the HeadBucket operation. The "output" return
// value will be populated with the request's response once the request completes
-// successfuly.
+// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
@@ -3246,8 +3702,7 @@ func (c *S3) HeadBucketRequest(input *HeadBucketInput) (req *request.Request, ou
output = &HeadBucketOutput{}
req = c.newRequest(op, input, output)
- req.Handlers.Unmarshal.Remove(restxml.UnmarshalHandler)
- req.Handlers.Unmarshal.PushBackNamed(protocol.UnmarshalDiscardBodyHandler)
+ req.Handlers.Unmarshal.Swap(restxml.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
return
}
@@ -3294,7 +3749,7 @@ const opHeadObject = "HeadObject"
// HeadObjectRequest generates a "aws/request.Request" representing the
// client's request for the HeadObject operation. The "output" return
// value will be populated with the request's response once the request completes
-// successfuly.
+// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
@@ -3373,7 +3828,7 @@ const opListBucketAnalyticsConfigurations = "ListBucketAnalyticsConfigurations"
// ListBucketAnalyticsConfigurationsRequest generates a "aws/request.Request" representing the
// client's request for the ListBucketAnalyticsConfigurations operation. The "output" return
// value will be populated with the request's response once the request completes
-// successfuly.
+// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
@@ -3447,7 +3902,7 @@ const opListBucketInventoryConfigurations = "ListBucketInventoryConfigurations"
// ListBucketInventoryConfigurationsRequest generates a "aws/request.Request" representing the
// client's request for the ListBucketInventoryConfigurations operation. The "output" return
// value will be populated with the request's response once the request completes
-// successfuly.
+// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
@@ -3521,7 +3976,7 @@ const opListBucketMetricsConfigurations = "ListBucketMetricsConfigurations"
// ListBucketMetricsConfigurationsRequest generates a "aws/request.Request" representing the
// client's request for the ListBucketMetricsConfigurations operation. The "output" return
// value will be populated with the request's response once the request completes
-// successfuly.
+// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
@@ -3595,7 +4050,7 @@ const opListBuckets = "ListBuckets"
// ListBucketsRequest generates a "aws/request.Request" representing the
// client's request for the ListBuckets operation. The "output" return
// value will be populated with the request's response once the request completes
-// successfuly.
+// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
@@ -3669,7 +4124,7 @@ const opListMultipartUploads = "ListMultipartUploads"
// ListMultipartUploadsRequest generates a "aws/request.Request" representing the
// client's request for the ListMultipartUploads operation. The "output" return
// value will be populated with the request's response once the request completes
-// successfuly.
+// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
@@ -3799,7 +4254,7 @@ const opListObjectVersions = "ListObjectVersions"
// ListObjectVersionsRequest generates a "aws/request.Request" representing the
// client's request for the ListObjectVersions operation. The "output" return
// value will be populated with the request's response once the request completes
-// successfuly.
+// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
@@ -3929,7 +4384,7 @@ const opListObjects = "ListObjects"
// ListObjectsRequest generates a "aws/request.Request" representing the
// client's request for the ListObjects operation. The "output" return
// value will be populated with the request's response once the request completes
-// successfuly.
+// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
@@ -4066,7 +4521,7 @@ const opListObjectsV2 = "ListObjectsV2"
// ListObjectsV2Request generates a "aws/request.Request" representing the
// client's request for the ListObjectsV2 operation. The "output" return
// value will be populated with the request's response once the request completes
-// successfuly.
+// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
@@ -4204,7 +4659,7 @@ const opListParts = "ListParts"
// ListPartsRequest generates a "aws/request.Request" representing the
// client's request for the ListParts operation. The "output" return
// value will be populated with the request's response once the request completes
-// successfuly.
+// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
@@ -4334,7 +4789,7 @@ const opPutBucketAccelerateConfiguration = "PutBucketAccelerateConfiguration"
// PutBucketAccelerateConfigurationRequest generates a "aws/request.Request" representing the
// client's request for the PutBucketAccelerateConfiguration operation. The "output" return
// value will be populated with the request's response once the request completes
-// successfuly.
+// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
@@ -4368,8 +4823,7 @@ func (c *S3) PutBucketAccelerateConfigurationRequest(input *PutBucketAccelerateC
output = &PutBucketAccelerateConfigurationOutput{}
req = c.newRequest(op, input, output)
- req.Handlers.Unmarshal.Remove(restxml.UnmarshalHandler)
- req.Handlers.Unmarshal.PushBackNamed(protocol.UnmarshalDiscardBodyHandler)
+ req.Handlers.Unmarshal.Swap(restxml.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
return
}
@@ -4410,7 +4864,7 @@ const opPutBucketAcl = "PutBucketAcl"
// PutBucketAclRequest generates a "aws/request.Request" representing the
// client's request for the PutBucketAcl operation. The "output" return
// value will be populated with the request's response once the request completes
-// successfuly.
+// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
@@ -4444,8 +4898,7 @@ func (c *S3) PutBucketAclRequest(input *PutBucketAclInput) (req *request.Request
output = &PutBucketAclOutput{}
req = c.newRequest(op, input, output)
- req.Handlers.Unmarshal.Remove(restxml.UnmarshalHandler)
- req.Handlers.Unmarshal.PushBackNamed(protocol.UnmarshalDiscardBodyHandler)
+ req.Handlers.Unmarshal.Swap(restxml.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
return
}
@@ -4486,7 +4939,7 @@ const opPutBucketAnalyticsConfiguration = "PutBucketAnalyticsConfiguration"
// PutBucketAnalyticsConfigurationRequest generates a "aws/request.Request" representing the
// client's request for the PutBucketAnalyticsConfiguration operation. The "output" return
// value will be populated with the request's response once the request completes
-// successfuly.
+// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
@@ -4520,8 +4973,7 @@ func (c *S3) PutBucketAnalyticsConfigurationRequest(input *PutBucketAnalyticsCon
output = &PutBucketAnalyticsConfigurationOutput{}
req = c.newRequest(op, input, output)
- req.Handlers.Unmarshal.Remove(restxml.UnmarshalHandler)
- req.Handlers.Unmarshal.PushBackNamed(protocol.UnmarshalDiscardBodyHandler)
+ req.Handlers.Unmarshal.Swap(restxml.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
return
}
@@ -4563,7 +5015,7 @@ const opPutBucketCors = "PutBucketCors"
// PutBucketCorsRequest generates a "aws/request.Request" representing the
// client's request for the PutBucketCors operation. The "output" return
// value will be populated with the request's response once the request completes
-// successfuly.
+// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
@@ -4597,14 +5049,13 @@ func (c *S3) PutBucketCorsRequest(input *PutBucketCorsInput) (req *request.Reque
output = &PutBucketCorsOutput{}
req = c.newRequest(op, input, output)
- req.Handlers.Unmarshal.Remove(restxml.UnmarshalHandler)
- req.Handlers.Unmarshal.PushBackNamed(protocol.UnmarshalDiscardBodyHandler)
+ req.Handlers.Unmarshal.Swap(restxml.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
return
}
// PutBucketCors API operation for Amazon Simple Storage Service.
//
-// Sets the cors configuration for a bucket.
+// Sets the CORS configuration for a bucket.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
@@ -4639,7 +5090,7 @@ const opPutBucketEncryption = "PutBucketEncryption"
// PutBucketEncryptionRequest generates a "aws/request.Request" representing the
// client's request for the PutBucketEncryption operation. The "output" return
// value will be populated with the request's response once the request completes
-// successfuly.
+// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
@@ -4673,8 +5124,7 @@ func (c *S3) PutBucketEncryptionRequest(input *PutBucketEncryptionInput) (req *r
output = &PutBucketEncryptionOutput{}
req = c.newRequest(op, input, output)
- req.Handlers.Unmarshal.Remove(restxml.UnmarshalHandler)
- req.Handlers.Unmarshal.PushBackNamed(protocol.UnmarshalDiscardBodyHandler)
+ req.Handlers.Unmarshal.Swap(restxml.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
return
}
@@ -4716,7 +5166,7 @@ const opPutBucketInventoryConfiguration = "PutBucketInventoryConfiguration"
// PutBucketInventoryConfigurationRequest generates a "aws/request.Request" representing the
// client's request for the PutBucketInventoryConfiguration operation. The "output" return
// value will be populated with the request's response once the request completes
-// successfuly.
+// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
@@ -4750,8 +5200,7 @@ func (c *S3) PutBucketInventoryConfigurationRequest(input *PutBucketInventoryCon
output = &PutBucketInventoryConfigurationOutput{}
req = c.newRequest(op, input, output)
- req.Handlers.Unmarshal.Remove(restxml.UnmarshalHandler)
- req.Handlers.Unmarshal.PushBackNamed(protocol.UnmarshalDiscardBodyHandler)
+ req.Handlers.Unmarshal.Swap(restxml.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
return
}
@@ -4793,7 +5242,7 @@ const opPutBucketLifecycle = "PutBucketLifecycle"
// PutBucketLifecycleRequest generates a "aws/request.Request" representing the
// client's request for the PutBucketLifecycle operation. The "output" return
// value will be populated with the request's response once the request completes
-// successfuly.
+// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
@@ -4814,6 +5263,8 @@ const opPutBucketLifecycle = "PutBucketLifecycle"
// }
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/PutBucketLifecycle
+//
+// Deprecated: PutBucketLifecycle has been deprecated
func (c *S3) PutBucketLifecycleRequest(input *PutBucketLifecycleInput) (req *request.Request, output *PutBucketLifecycleOutput) {
if c.Client.Config.Logger != nil {
c.Client.Config.Logger.Log("This operation, PutBucketLifecycle, has been deprecated")
@@ -4830,8 +5281,7 @@ func (c *S3) PutBucketLifecycleRequest(input *PutBucketLifecycleInput) (req *req
output = &PutBucketLifecycleOutput{}
req = c.newRequest(op, input, output)
- req.Handlers.Unmarshal.Remove(restxml.UnmarshalHandler)
- req.Handlers.Unmarshal.PushBackNamed(protocol.UnmarshalDiscardBodyHandler)
+ req.Handlers.Unmarshal.Swap(restxml.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
return
}
@@ -4846,6 +5296,8 @@ func (c *S3) PutBucketLifecycleRequest(input *PutBucketLifecycleInput) (req *req
// See the AWS API reference guide for Amazon Simple Storage Service's
// API operation PutBucketLifecycle for usage and error information.
// See also, https://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/PutBucketLifecycle
+//
+// Deprecated: PutBucketLifecycle has been deprecated
func (c *S3) PutBucketLifecycle(input *PutBucketLifecycleInput) (*PutBucketLifecycleOutput, error) {
req, out := c.PutBucketLifecycleRequest(input)
return out, req.Send()
@@ -4860,6 +5312,8 @@ func (c *S3) PutBucketLifecycle(input *PutBucketLifecycleInput) (*PutBucketLifec
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
+//
+// Deprecated: PutBucketLifecycleWithContext has been deprecated
func (c *S3) PutBucketLifecycleWithContext(ctx aws.Context, input *PutBucketLifecycleInput, opts ...request.Option) (*PutBucketLifecycleOutput, error) {
req, out := c.PutBucketLifecycleRequest(input)
req.SetContext(ctx)
@@ -4872,7 +5326,7 @@ const opPutBucketLifecycleConfiguration = "PutBucketLifecycleConfiguration"
// PutBucketLifecycleConfigurationRequest generates a "aws/request.Request" representing the
// client's request for the PutBucketLifecycleConfiguration operation. The "output" return
// value will be populated with the request's response once the request completes
-// successfuly.
+// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
@@ -4906,8 +5360,7 @@ func (c *S3) PutBucketLifecycleConfigurationRequest(input *PutBucketLifecycleCon
output = &PutBucketLifecycleConfigurationOutput{}
req = c.newRequest(op, input, output)
- req.Handlers.Unmarshal.Remove(restxml.UnmarshalHandler)
- req.Handlers.Unmarshal.PushBackNamed(protocol.UnmarshalDiscardBodyHandler)
+ req.Handlers.Unmarshal.Swap(restxml.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
return
}
@@ -4949,7 +5402,7 @@ const opPutBucketLogging = "PutBucketLogging"
// PutBucketLoggingRequest generates a "aws/request.Request" representing the
// client's request for the PutBucketLogging operation. The "output" return
// value will be populated with the request's response once the request completes
-// successfuly.
+// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
@@ -4983,8 +5436,7 @@ func (c *S3) PutBucketLoggingRequest(input *PutBucketLoggingInput) (req *request
output = &PutBucketLoggingOutput{}
req = c.newRequest(op, input, output)
- req.Handlers.Unmarshal.Remove(restxml.UnmarshalHandler)
- req.Handlers.Unmarshal.PushBackNamed(protocol.UnmarshalDiscardBodyHandler)
+ req.Handlers.Unmarshal.Swap(restxml.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
return
}
@@ -5027,7 +5479,7 @@ const opPutBucketMetricsConfiguration = "PutBucketMetricsConfiguration"
// PutBucketMetricsConfigurationRequest generates a "aws/request.Request" representing the
// client's request for the PutBucketMetricsConfiguration operation. The "output" return
// value will be populated with the request's response once the request completes
-// successfuly.
+// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
@@ -5061,8 +5513,7 @@ func (c *S3) PutBucketMetricsConfigurationRequest(input *PutBucketMetricsConfigu
output = &PutBucketMetricsConfigurationOutput{}
req = c.newRequest(op, input, output)
- req.Handlers.Unmarshal.Remove(restxml.UnmarshalHandler)
- req.Handlers.Unmarshal.PushBackNamed(protocol.UnmarshalDiscardBodyHandler)
+ req.Handlers.Unmarshal.Swap(restxml.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
return
}
@@ -5104,7 +5555,7 @@ const opPutBucketNotification = "PutBucketNotification"
// PutBucketNotificationRequest generates a "aws/request.Request" representing the
// client's request for the PutBucketNotification operation. The "output" return
// value will be populated with the request's response once the request completes
-// successfuly.
+// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
@@ -5125,6 +5576,8 @@ const opPutBucketNotification = "PutBucketNotification"
// }
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/PutBucketNotification
+//
+// Deprecated: PutBucketNotification has been deprecated
func (c *S3) PutBucketNotificationRequest(input *PutBucketNotificationInput) (req *request.Request, output *PutBucketNotificationOutput) {
if c.Client.Config.Logger != nil {
c.Client.Config.Logger.Log("This operation, PutBucketNotification, has been deprecated")
@@ -5141,8 +5594,7 @@ func (c *S3) PutBucketNotificationRequest(input *PutBucketNotificationInput) (re
output = &PutBucketNotificationOutput{}
req = c.newRequest(op, input, output)
- req.Handlers.Unmarshal.Remove(restxml.UnmarshalHandler)
- req.Handlers.Unmarshal.PushBackNamed(protocol.UnmarshalDiscardBodyHandler)
+ req.Handlers.Unmarshal.Swap(restxml.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
return
}
@@ -5157,6 +5609,8 @@ func (c *S3) PutBucketNotificationRequest(input *PutBucketNotificationInput) (re
// See the AWS API reference guide for Amazon Simple Storage Service's
// API operation PutBucketNotification for usage and error information.
// See also, https://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/PutBucketNotification
+//
+// Deprecated: PutBucketNotification has been deprecated
func (c *S3) PutBucketNotification(input *PutBucketNotificationInput) (*PutBucketNotificationOutput, error) {
req, out := c.PutBucketNotificationRequest(input)
return out, req.Send()
@@ -5171,6 +5625,8 @@ func (c *S3) PutBucketNotification(input *PutBucketNotificationInput) (*PutBucke
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
+//
+// Deprecated: PutBucketNotificationWithContext has been deprecated
func (c *S3) PutBucketNotificationWithContext(ctx aws.Context, input *PutBucketNotificationInput, opts ...request.Option) (*PutBucketNotificationOutput, error) {
req, out := c.PutBucketNotificationRequest(input)
req.SetContext(ctx)
@@ -5183,7 +5639,7 @@ const opPutBucketNotificationConfiguration = "PutBucketNotificationConfiguration
// PutBucketNotificationConfigurationRequest generates a "aws/request.Request" representing the
// client's request for the PutBucketNotificationConfiguration operation. The "output" return
// value will be populated with the request's response once the request completes
-// successfuly.
+// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
@@ -5217,8 +5673,7 @@ func (c *S3) PutBucketNotificationConfigurationRequest(input *PutBucketNotificat
output = &PutBucketNotificationConfigurationOutput{}
req = c.newRequest(op, input, output)
- req.Handlers.Unmarshal.Remove(restxml.UnmarshalHandler)
- req.Handlers.Unmarshal.PushBackNamed(protocol.UnmarshalDiscardBodyHandler)
+ req.Handlers.Unmarshal.Swap(restxml.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
return
}
@@ -5259,7 +5714,7 @@ const opPutBucketPolicy = "PutBucketPolicy"
// PutBucketPolicyRequest generates a "aws/request.Request" representing the
// client's request for the PutBucketPolicy operation. The "output" return
// value will be populated with the request's response once the request completes
-// successfuly.
+// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
@@ -5293,8 +5748,7 @@ func (c *S3) PutBucketPolicyRequest(input *PutBucketPolicyInput) (req *request.R
output = &PutBucketPolicyOutput{}
req = c.newRequest(op, input, output)
- req.Handlers.Unmarshal.Remove(restxml.UnmarshalHandler)
- req.Handlers.Unmarshal.PushBackNamed(protocol.UnmarshalDiscardBodyHandler)
+ req.Handlers.Unmarshal.Swap(restxml.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
return
}
@@ -5336,7 +5790,7 @@ const opPutBucketReplication = "PutBucketReplication"
// PutBucketReplicationRequest generates a "aws/request.Request" representing the
// client's request for the PutBucketReplication operation. The "output" return
// value will be populated with the request's response once the request completes
-// successfuly.
+// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
@@ -5370,15 +5824,15 @@ func (c *S3) PutBucketReplicationRequest(input *PutBucketReplicationInput) (req
output = &PutBucketReplicationOutput{}
req = c.newRequest(op, input, output)
- req.Handlers.Unmarshal.Remove(restxml.UnmarshalHandler)
- req.Handlers.Unmarshal.PushBackNamed(protocol.UnmarshalDiscardBodyHandler)
+ req.Handlers.Unmarshal.Swap(restxml.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
return
}
// PutBucketReplication API operation for Amazon Simple Storage Service.
//
-// Creates a new replication configuration (or replaces an existing one, if
-// present).
+// Creates a replication configuration or replaces an existing one. For more
+// information, see Cross-Region Replication (CRR) ( https://docs.aws.amazon.com/AmazonS3/latest/dev/crr.html)
+// in the Amazon S3 Developer Guide.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
@@ -5413,7 +5867,7 @@ const opPutBucketRequestPayment = "PutBucketRequestPayment"
// PutBucketRequestPaymentRequest generates a "aws/request.Request" representing the
// client's request for the PutBucketRequestPayment operation. The "output" return
// value will be populated with the request's response once the request completes
-// successfuly.
+// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
@@ -5447,8 +5901,7 @@ func (c *S3) PutBucketRequestPaymentRequest(input *PutBucketRequestPaymentInput)
output = &PutBucketRequestPaymentOutput{}
req = c.newRequest(op, input, output)
- req.Handlers.Unmarshal.Remove(restxml.UnmarshalHandler)
- req.Handlers.Unmarshal.PushBackNamed(protocol.UnmarshalDiscardBodyHandler)
+ req.Handlers.Unmarshal.Swap(restxml.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
return
}
@@ -5493,7 +5946,7 @@ const opPutBucketTagging = "PutBucketTagging"
// PutBucketTaggingRequest generates a "aws/request.Request" representing the
// client's request for the PutBucketTagging operation. The "output" return
// value will be populated with the request's response once the request completes
-// successfuly.
+// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
@@ -5527,8 +5980,7 @@ func (c *S3) PutBucketTaggingRequest(input *PutBucketTaggingInput) (req *request
output = &PutBucketTaggingOutput{}
req = c.newRequest(op, input, output)
- req.Handlers.Unmarshal.Remove(restxml.UnmarshalHandler)
- req.Handlers.Unmarshal.PushBackNamed(protocol.UnmarshalDiscardBodyHandler)
+ req.Handlers.Unmarshal.Swap(restxml.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
return
}
@@ -5569,7 +6021,7 @@ const opPutBucketVersioning = "PutBucketVersioning"
// PutBucketVersioningRequest generates a "aws/request.Request" representing the
// client's request for the PutBucketVersioning operation. The "output" return
// value will be populated with the request's response once the request completes
-// successfuly.
+// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
@@ -5603,8 +6055,7 @@ func (c *S3) PutBucketVersioningRequest(input *PutBucketVersioningInput) (req *r
output = &PutBucketVersioningOutput{}
req = c.newRequest(op, input, output)
- req.Handlers.Unmarshal.Remove(restxml.UnmarshalHandler)
- req.Handlers.Unmarshal.PushBackNamed(protocol.UnmarshalDiscardBodyHandler)
+ req.Handlers.Unmarshal.Swap(restxml.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
return
}
@@ -5646,7 +6097,7 @@ const opPutBucketWebsite = "PutBucketWebsite"
// PutBucketWebsiteRequest generates a "aws/request.Request" representing the
// client's request for the PutBucketWebsite operation. The "output" return
// value will be populated with the request's response once the request completes
-// successfuly.
+// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
@@ -5680,8 +6131,7 @@ func (c *S3) PutBucketWebsiteRequest(input *PutBucketWebsiteInput) (req *request
output = &PutBucketWebsiteOutput{}
req = c.newRequest(op, input, output)
- req.Handlers.Unmarshal.Remove(restxml.UnmarshalHandler)
- req.Handlers.Unmarshal.PushBackNamed(protocol.UnmarshalDiscardBodyHandler)
+ req.Handlers.Unmarshal.Swap(restxml.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
return
}
@@ -5722,7 +6172,7 @@ const opPutObject = "PutObject"
// PutObjectRequest generates a "aws/request.Request" representing the
// client's request for the PutObject operation. The "output" return
// value will be populated with the request's response once the request completes
-// successfuly.
+// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
@@ -5796,7 +6246,7 @@ const opPutObjectAcl = "PutObjectAcl"
// PutObjectAclRequest generates a "aws/request.Request" representing the
// client's request for the PutObjectAcl operation. The "output" return
// value will be populated with the request's response once the request completes
-// successfuly.
+// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
@@ -5871,12 +6321,236 @@ func (c *S3) PutObjectAclWithContext(ctx aws.Context, input *PutObjectAclInput,
return out, req.Send()
}
+const opPutObjectLegalHold = "PutObjectLegalHold"
+
+// PutObjectLegalHoldRequest generates a "aws/request.Request" representing the
+// client's request for the PutObjectLegalHold operation. The "output" return
+// value will be populated with the request's response once the request completes
+// successfully.
+//
+// Use "Send" method on the returned Request to send the API call to the service.
+// the "output" return value is not valid until after Send returns without error.
+//
+// See PutObjectLegalHold for more information on using the PutObjectLegalHold
+// API call, and error handling.
+//
+// This method is useful when you want to inject custom logic or configuration
+// into the SDK's request lifecycle. Such as custom headers, or retry logic.
+//
+//
+// // Example sending a request using the PutObjectLegalHoldRequest method.
+// req, resp := client.PutObjectLegalHoldRequest(params)
+//
+// err := req.Send()
+// if err == nil { // resp is now filled
+// fmt.Println(resp)
+// }
+//
+// See also, https://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/PutObjectLegalHold
+func (c *S3) PutObjectLegalHoldRequest(input *PutObjectLegalHoldInput) (req *request.Request, output *PutObjectLegalHoldOutput) {
+ op := &request.Operation{
+ Name: opPutObjectLegalHold,
+ HTTPMethod: "PUT",
+ HTTPPath: "/{Bucket}/{Key+}?legal-hold",
+ }
+
+ if input == nil {
+ input = &PutObjectLegalHoldInput{}
+ }
+
+ output = &PutObjectLegalHoldOutput{}
+ req = c.newRequest(op, input, output)
+ return
+}
+
+// PutObjectLegalHold API operation for Amazon Simple Storage Service.
+//
+// Applies a Legal Hold configuration to the specified object.
+//
+// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
+// with awserr.Error's Code and Message methods to get detailed information about
+// the error.
+//
+// See the AWS API reference guide for Amazon Simple Storage Service's
+// API operation PutObjectLegalHold for usage and error information.
+// See also, https://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/PutObjectLegalHold
+func (c *S3) PutObjectLegalHold(input *PutObjectLegalHoldInput) (*PutObjectLegalHoldOutput, error) {
+ req, out := c.PutObjectLegalHoldRequest(input)
+ return out, req.Send()
+}
+
+// PutObjectLegalHoldWithContext is the same as PutObjectLegalHold with the addition of
+// the ability to pass a context and additional request options.
+//
+// See PutObjectLegalHold for details on how to use this API operation.
+//
+// The context must be non-nil and will be used for request cancellation. If
+// the context is nil a panic will occur. In the future the SDK may create
+// sub-contexts for http.Requests. See https://golang.org/pkg/context/
+// for more information on using Contexts.
+func (c *S3) PutObjectLegalHoldWithContext(ctx aws.Context, input *PutObjectLegalHoldInput, opts ...request.Option) (*PutObjectLegalHoldOutput, error) {
+ req, out := c.PutObjectLegalHoldRequest(input)
+ req.SetContext(ctx)
+ req.ApplyOptions(opts...)
+ return out, req.Send()
+}
+
+const opPutObjectLockConfiguration = "PutObjectLockConfiguration"
+
+// PutObjectLockConfigurationRequest generates a "aws/request.Request" representing the
+// client's request for the PutObjectLockConfiguration operation. The "output" return
+// value will be populated with the request's response once the request completes
+// successfully.
+//
+// Use "Send" method on the returned Request to send the API call to the service.
+// the "output" return value is not valid until after Send returns without error.
+//
+// See PutObjectLockConfiguration for more information on using the PutObjectLockConfiguration
+// API call, and error handling.
+//
+// This method is useful when you want to inject custom logic or configuration
+// into the SDK's request lifecycle. Such as custom headers, or retry logic.
+//
+//
+// // Example sending a request using the PutObjectLockConfigurationRequest method.
+// req, resp := client.PutObjectLockConfigurationRequest(params)
+//
+// err := req.Send()
+// if err == nil { // resp is now filled
+// fmt.Println(resp)
+// }
+//
+// See also, https://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/PutObjectLockConfiguration
+func (c *S3) PutObjectLockConfigurationRequest(input *PutObjectLockConfigurationInput) (req *request.Request, output *PutObjectLockConfigurationOutput) {
+ op := &request.Operation{
+ Name: opPutObjectLockConfiguration,
+ HTTPMethod: "PUT",
+ HTTPPath: "/{Bucket}?object-lock",
+ }
+
+ if input == nil {
+ input = &PutObjectLockConfigurationInput{}
+ }
+
+ output = &PutObjectLockConfigurationOutput{}
+ req = c.newRequest(op, input, output)
+ return
+}
+
+// PutObjectLockConfiguration API operation for Amazon Simple Storage Service.
+//
+// Places an Object Lock configuration on the specified bucket. The rule specified
+// in the Object Lock configuration will be applied by default to every new
+// object placed in the specified bucket.
+//
+// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
+// with awserr.Error's Code and Message methods to get detailed information about
+// the error.
+//
+// See the AWS API reference guide for Amazon Simple Storage Service's
+// API operation PutObjectLockConfiguration for usage and error information.
+// See also, https://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/PutObjectLockConfiguration
+func (c *S3) PutObjectLockConfiguration(input *PutObjectLockConfigurationInput) (*PutObjectLockConfigurationOutput, error) {
+ req, out := c.PutObjectLockConfigurationRequest(input)
+ return out, req.Send()
+}
+
+// PutObjectLockConfigurationWithContext is the same as PutObjectLockConfiguration with the addition of
+// the ability to pass a context and additional request options.
+//
+// See PutObjectLockConfiguration for details on how to use this API operation.
+//
+// The context must be non-nil and will be used for request cancellation. If
+// the context is nil a panic will occur. In the future the SDK may create
+// sub-contexts for http.Requests. See https://golang.org/pkg/context/
+// for more information on using Contexts.
+func (c *S3) PutObjectLockConfigurationWithContext(ctx aws.Context, input *PutObjectLockConfigurationInput, opts ...request.Option) (*PutObjectLockConfigurationOutput, error) {
+ req, out := c.PutObjectLockConfigurationRequest(input)
+ req.SetContext(ctx)
+ req.ApplyOptions(opts...)
+ return out, req.Send()
+}
+
+const opPutObjectRetention = "PutObjectRetention"
+
+// PutObjectRetentionRequest generates a "aws/request.Request" representing the
+// client's request for the PutObjectRetention operation. The "output" return
+// value will be populated with the request's response once the request completes
+// successfully.
+//
+// Use "Send" method on the returned Request to send the API call to the service.
+// the "output" return value is not valid until after Send returns without error.
+//
+// See PutObjectRetention for more information on using the PutObjectRetention
+// API call, and error handling.
+//
+// This method is useful when you want to inject custom logic or configuration
+// into the SDK's request lifecycle. Such as custom headers, or retry logic.
+//
+//
+// // Example sending a request using the PutObjectRetentionRequest method.
+// req, resp := client.PutObjectRetentionRequest(params)
+//
+// err := req.Send()
+// if err == nil { // resp is now filled
+// fmt.Println(resp)
+// }
+//
+// See also, https://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/PutObjectRetention
+func (c *S3) PutObjectRetentionRequest(input *PutObjectRetentionInput) (req *request.Request, output *PutObjectRetentionOutput) {
+ op := &request.Operation{
+ Name: opPutObjectRetention,
+ HTTPMethod: "PUT",
+ HTTPPath: "/{Bucket}/{Key+}?retention",
+ }
+
+ if input == nil {
+ input = &PutObjectRetentionInput{}
+ }
+
+ output = &PutObjectRetentionOutput{}
+ req = c.newRequest(op, input, output)
+ return
+}
+
+// PutObjectRetention API operation for Amazon Simple Storage Service.
+//
+// Places an Object Retention configuration on an object.
+//
+// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
+// with awserr.Error's Code and Message methods to get detailed information about
+// the error.
+//
+// See the AWS API reference guide for Amazon Simple Storage Service's
+// API operation PutObjectRetention for usage and error information.
+// See also, https://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/PutObjectRetention
+func (c *S3) PutObjectRetention(input *PutObjectRetentionInput) (*PutObjectRetentionOutput, error) {
+ req, out := c.PutObjectRetentionRequest(input)
+ return out, req.Send()
+}
+
+// PutObjectRetentionWithContext is the same as PutObjectRetention with the addition of
+// the ability to pass a context and additional request options.
+//
+// See PutObjectRetention for details on how to use this API operation.
+//
+// The context must be non-nil and will be used for request cancellation. If
+// the context is nil a panic will occur. In the future the SDK may create
+// sub-contexts for http.Requests. See https://golang.org/pkg/context/
+// for more information on using Contexts.
+func (c *S3) PutObjectRetentionWithContext(ctx aws.Context, input *PutObjectRetentionInput, opts ...request.Option) (*PutObjectRetentionOutput, error) {
+ req, out := c.PutObjectRetentionRequest(input)
+ req.SetContext(ctx)
+ req.ApplyOptions(opts...)
+ return out, req.Send()
+}
+
const opPutObjectTagging = "PutObjectTagging"
// PutObjectTaggingRequest generates a "aws/request.Request" representing the
// client's request for the PutObjectTagging operation. The "output" return
// value will be populated with the request's response once the request completes
-// successfuly.
+// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
@@ -5945,12 +6619,88 @@ func (c *S3) PutObjectTaggingWithContext(ctx aws.Context, input *PutObjectTaggin
return out, req.Send()
}
+const opPutPublicAccessBlock = "PutPublicAccessBlock"
+
+// PutPublicAccessBlockRequest generates a "aws/request.Request" representing the
+// client's request for the PutPublicAccessBlock operation. The "output" return
+// value will be populated with the request's response once the request completes
+// successfully.
+//
+// Use "Send" method on the returned Request to send the API call to the service.
+// the "output" return value is not valid until after Send returns without error.
+//
+// See PutPublicAccessBlock for more information on using the PutPublicAccessBlock
+// API call, and error handling.
+//
+// This method is useful when you want to inject custom logic or configuration
+// into the SDK's request lifecycle. Such as custom headers, or retry logic.
+//
+//
+// // Example sending a request using the PutPublicAccessBlockRequest method.
+// req, resp := client.PutPublicAccessBlockRequest(params)
+//
+// err := req.Send()
+// if err == nil { // resp is now filled
+// fmt.Println(resp)
+// }
+//
+// See also, https://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/PutPublicAccessBlock
+func (c *S3) PutPublicAccessBlockRequest(input *PutPublicAccessBlockInput) (req *request.Request, output *PutPublicAccessBlockOutput) {
+ op := &request.Operation{
+ Name: opPutPublicAccessBlock,
+ HTTPMethod: "PUT",
+ HTTPPath: "/{Bucket}?publicAccessBlock",
+ }
+
+ if input == nil {
+ input = &PutPublicAccessBlockInput{}
+ }
+
+ output = &PutPublicAccessBlockOutput{}
+ req = c.newRequest(op, input, output)
+ req.Handlers.Unmarshal.Swap(restxml.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
+ return
+}
+
+// PutPublicAccessBlock API operation for Amazon Simple Storage Service.
+//
+// Creates or modifies the PublicAccessBlock configuration for an Amazon S3
+// bucket.
+//
+// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
+// with awserr.Error's Code and Message methods to get detailed information about
+// the error.
+//
+// See the AWS API reference guide for Amazon Simple Storage Service's
+// API operation PutPublicAccessBlock for usage and error information.
+// See also, https://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/PutPublicAccessBlock
+func (c *S3) PutPublicAccessBlock(input *PutPublicAccessBlockInput) (*PutPublicAccessBlockOutput, error) {
+ req, out := c.PutPublicAccessBlockRequest(input)
+ return out, req.Send()
+}
+
+// PutPublicAccessBlockWithContext is the same as PutPublicAccessBlock with the addition of
+// the ability to pass a context and additional request options.
+//
+// See PutPublicAccessBlock for details on how to use this API operation.
+//
+// The context must be non-nil and will be used for request cancellation. If
+// the context is nil a panic will occur. In the future the SDK may create
+// sub-contexts for http.Requests. See https://golang.org/pkg/context/
+// for more information on using Contexts.
+func (c *S3) PutPublicAccessBlockWithContext(ctx aws.Context, input *PutPublicAccessBlockInput, opts ...request.Option) (*PutPublicAccessBlockOutput, error) {
+ req, out := c.PutPublicAccessBlockRequest(input)
+ req.SetContext(ctx)
+ req.ApplyOptions(opts...)
+ return out, req.Send()
+}
+
const opRestoreObject = "RestoreObject"
// RestoreObjectRequest generates a "aws/request.Request" representing the
// client's request for the RestoreObject operation. The "output" return
// value will be populated with the request's response once the request completes
-// successfuly.
+// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
@@ -6029,7 +6779,7 @@ const opSelectObjectContent = "SelectObjectContent"
// SelectObjectContentRequest generates a "aws/request.Request" representing the
// client's request for the SelectObjectContent operation. The "output" return
// value will be populated with the request's response once the request completes
-// successfuly.
+// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
@@ -6111,7 +6861,7 @@ const opUploadPart = "UploadPart"
// UploadPartRequest generates a "aws/request.Request" representing the
// client's request for the UploadPart operation. The "output" return
// value will be populated with the request's response once the request completes
-// successfuly.
+// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
@@ -6191,7 +6941,7 @@ const opUploadPartCopy = "UploadPartCopy"
// UploadPartCopyRequest generates a "aws/request.Request" representing the
// client's request for the UploadPartCopy operation. The "output" return
// value will be populated with the request's response once the request completes
-// successfuly.
+// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
@@ -6321,6 +7071,9 @@ func (s *AbortMultipartUploadInput) Validate() error {
if s.Bucket == nil {
invalidParams.Add(request.NewErrParamRequired("Bucket"))
}
+ if s.Bucket != nil && len(*s.Bucket) < 1 {
+ invalidParams.Add(request.NewErrParamMinLen("Bucket", 1))
+ }
if s.Key == nil {
invalidParams.Add(request.NewErrParamRequired("Key"))
}
@@ -6466,7 +7219,7 @@ func (s *AccessControlPolicy) SetOwner(v *Owner) *AccessControlPolicy {
return s
}
-// Container for information regarding the access control for replicas.
+// A container for information about access control for replicas.
type AccessControlTranslation struct {
_ struct{} `type:"structure"`
@@ -6819,7 +7572,7 @@ type Bucket struct {
_ struct{} `type:"structure"`
// Date the bucket was created.
- CreationDate *time.Time `type:"timestamp" timestampFormat:"iso8601"`
+ CreationDate *time.Time `type:"timestamp"`
// The name of the bucket.
Name *string `type:"string"`
@@ -7066,11 +7819,16 @@ func (s *CORSRule) SetMaxAgeSeconds(v int64) *CORSRule {
type CSVInput struct {
_ struct{} `type:"structure"`
- // Single character used to indicate a row should be ignored when present at
- // the start of a row.
+ // Specifies that CSV field values may contain quoted record delimiters and
+ // such records should be allowed. Default value is FALSE. Setting this value
+ // to TRUE may lower performance.
+ AllowQuotedRecordDelimiter *bool `type:"boolean"`
+
+ // The single character used to indicate a row should be ignored when present
+ // at the start of a row.
Comments *string `type:"string"`
- // Value used to separate individual fields in a record.
+ // The value used to separate individual fields in a record.
FieldDelimiter *string `type:"string"`
// Describes the first line of input. Valid values: None, Ignore, Use.
@@ -7079,11 +7837,11 @@ type CSVInput struct {
// Value used for escaping where the field delimiter is part of the value.
QuoteCharacter *string `type:"string"`
- // Single character used for escaping the quote character inside an already
+ // The single character used for escaping the quote character inside an already
// escaped value.
QuoteEscapeCharacter *string `type:"string"`
- // Value used to separate individual records.
+ // The value used to separate individual records.
RecordDelimiter *string `type:"string"`
}
@@ -7097,6 +7855,12 @@ func (s CSVInput) GoString() string {
return s.String()
}
+// SetAllowQuotedRecordDelimiter sets the AllowQuotedRecordDelimiter field's value.
+func (s *CSVInput) SetAllowQuotedRecordDelimiter(v bool) *CSVInput {
+ s.AllowQuotedRecordDelimiter = &v
+ return s
+}
+
// SetComments sets the Comments field's value.
func (s *CSVInput) SetComments(v string) *CSVInput {
s.Comments = &v
@@ -7137,20 +7901,20 @@ func (s *CSVInput) SetRecordDelimiter(v string) *CSVInput {
type CSVOutput struct {
_ struct{} `type:"structure"`
- // Value used to separate individual fields in a record.
+ // The value used to separate individual fields in a record.
FieldDelimiter *string `type:"string"`
- // Value used for escaping where the field delimiter is part of the value.
+ // The value used for escaping where the field delimiter is part of the value.
QuoteCharacter *string `type:"string"`
- // Single character used for escaping the quote character inside an already
+ // Th single character used for escaping the quote character inside an already
// escaped value.
QuoteEscapeCharacter *string `type:"string"`
// Indicates whether or not all output fields should be quoted.
QuoteFields *string `type:"string" enum:"QuoteFields"`
- // Value used to separate individual records.
+ // The value used to separate individual records.
RecordDelimiter *string `type:"string"`
}
@@ -7199,12 +7963,14 @@ type CloudFunctionConfiguration struct {
CloudFunction *string `type:"string"`
- // Bucket event for which to send notifications.
+ // The bucket event for which to send notifications.
+ //
+ // Deprecated: Event has been deprecated
Event *string `deprecated:"true" type:"string" enum:"Event"`
Events []*string `locationName:"Event" type:"list" flattened:"true"`
- // Optional unique identifier for configurations in a notification configuration.
+ // An optional unique identifier for configurations in a notification configuration.
// If you don't provide one, Amazon S3 will assign an ID.
Id *string `type:"string"`
@@ -7310,6 +8076,9 @@ func (s *CompleteMultipartUploadInput) Validate() error {
if s.Bucket == nil {
invalidParams.Add(request.NewErrParamRequired("Bucket"))
}
+ if s.Bucket != nil && len(*s.Bucket) < 1 {
+ invalidParams.Add(request.NewErrParamMinLen("Bucket", 1))
+ }
if s.Key == nil {
invalidParams.Add(request.NewErrParamRequired("Key"))
}
@@ -7385,7 +8154,7 @@ type CompleteMultipartUploadOutput struct {
// If present, specifies the ID of the AWS Key Management Service (KMS) master
// encryption key that was used for the object.
- SSEKMSKeyId *string `location:"header" locationName:"x-amz-server-side-encryption-aws-kms-key-id" type:"string"`
+ SSEKMSKeyId *string `location:"header" locationName:"x-amz-server-side-encryption-aws-kms-key-id" type:"string" sensitive:"true"`
// The Server-side encryption algorithm used when storing this object in S3
// (e.g., AES256, aws:kms).
@@ -7564,7 +8333,7 @@ func (s *Condition) SetKeyPrefixEquals(v string) *Condition {
}
type ContinuationEvent struct {
- _ struct{} `type:"structure"`
+ _ struct{} `locationName:"ContinuationEvent" type:"structure"`
}
// String returns the string representation
@@ -7625,14 +8394,14 @@ type CopyObjectInput struct {
CopySourceIfMatch *string `location:"header" locationName:"x-amz-copy-source-if-match" type:"string"`
// Copies the object if it has been modified since the specified time.
- CopySourceIfModifiedSince *time.Time `location:"header" locationName:"x-amz-copy-source-if-modified-since" type:"timestamp" timestampFormat:"rfc822"`
+ CopySourceIfModifiedSince *time.Time `location:"header" locationName:"x-amz-copy-source-if-modified-since" type:"timestamp"`
// Copies the object if its entity tag (ETag) is different than the specified
// ETag.
CopySourceIfNoneMatch *string `location:"header" locationName:"x-amz-copy-source-if-none-match" type:"string"`
// Copies the object if it hasn't been modified since the specified time.
- CopySourceIfUnmodifiedSince *time.Time `location:"header" locationName:"x-amz-copy-source-if-unmodified-since" type:"timestamp" timestampFormat:"rfc822"`
+ CopySourceIfUnmodifiedSince *time.Time `location:"header" locationName:"x-amz-copy-source-if-unmodified-since" type:"timestamp"`
// Specifies the algorithm to use when decrypting the source object (e.g., AES256).
CopySourceSSECustomerAlgorithm *string `location:"header" locationName:"x-amz-copy-source-server-side-encryption-customer-algorithm" type:"string"`
@@ -7640,7 +8409,7 @@ type CopyObjectInput struct {
// Specifies the customer-provided encryption key for Amazon S3 to use to decrypt
// the source object. The encryption key provided in this header must be one
// that was used when the source object was created.
- CopySourceSSECustomerKey *string `location:"header" locationName:"x-amz-copy-source-server-side-encryption-customer-key" type:"string"`
+ CopySourceSSECustomerKey *string `location:"header" locationName:"x-amz-copy-source-server-side-encryption-customer-key" type:"string" sensitive:"true"`
// Specifies the 128-bit MD5 digest of the encryption key according to RFC 1321.
// Amazon S3 uses this header for a message integrity check to ensure the encryption
@@ -7648,7 +8417,7 @@ type CopyObjectInput struct {
CopySourceSSECustomerKeyMD5 *string `location:"header" locationName:"x-amz-copy-source-server-side-encryption-customer-key-MD5" type:"string"`
// The date and time at which the object is no longer cacheable.
- Expires *time.Time `location:"header" locationName:"Expires" type:"timestamp" timestampFormat:"rfc822"`
+ Expires *time.Time `location:"header" locationName:"Expires" type:"timestamp"`
// Gives the grantee READ, READ_ACP, and WRITE_ACP permissions on the object.
GrantFullControl *string `location:"header" locationName:"x-amz-grant-full-control" type:"string"`
@@ -7672,6 +8441,15 @@ type CopyObjectInput struct {
// with metadata provided in the request.
MetadataDirective *string `location:"header" locationName:"x-amz-metadata-directive" type:"string" enum:"MetadataDirective"`
+ // Specifies whether you want to apply a Legal Hold to the copied object.
+ ObjectLockLegalHoldStatus *string `location:"header" locationName:"x-amz-object-lock-legal-hold" type:"string" enum:"ObjectLockLegalHoldStatus"`
+
+ // The Object Lock mode that you want to apply to the copied object.
+ ObjectLockMode *string `location:"header" locationName:"x-amz-object-lock-mode" type:"string" enum:"ObjectLockMode"`
+
+ // The date and time when you want the copied object's Object Lock to expire.
+ ObjectLockRetainUntilDate *time.Time `location:"header" locationName:"x-amz-object-lock-retain-until-date" type:"timestamp" timestampFormat:"iso8601"`
+
// Confirms that the requester knows that she or he will be charged for the
// request. Bucket owners need not specify this parameter in their requests.
// Documentation on downloading objects from requester pays buckets can be found
@@ -7686,7 +8464,7 @@ type CopyObjectInput struct {
// does not store the encryption key. The key must be appropriate for use with
// the algorithm specified in the x-amz-server-side-encryption-customer-algorithm
// header.
- SSECustomerKey *string `location:"header" locationName:"x-amz-server-side-encryption-customer-key" type:"string"`
+ SSECustomerKey *string `location:"header" locationName:"x-amz-server-side-encryption-customer-key" type:"string" sensitive:"true"`
// Specifies the 128-bit MD5 digest of the encryption key according to RFC 1321.
// Amazon S3 uses this header for a message integrity check to ensure the encryption
@@ -7697,7 +8475,7 @@ type CopyObjectInput struct {
// requests for an object protected by AWS KMS will fail if not made via SSL
// or using SigV4. Documentation on configuring any of the officially supported
// AWS SDKs and CLI can be found at http://docs.aws.amazon.com/AmazonS3/latest/dev/UsingAWSSDK.html#specify-signature-version
- SSEKMSKeyId *string `location:"header" locationName:"x-amz-server-side-encryption-aws-kms-key-id" type:"string"`
+ SSEKMSKeyId *string `location:"header" locationName:"x-amz-server-side-encryption-aws-kms-key-id" type:"string" sensitive:"true"`
// The Server-side encryption algorithm used when storing this object in S3
// (e.g., AES256, aws:kms).
@@ -7737,6 +8515,9 @@ func (s *CopyObjectInput) Validate() error {
if s.Bucket == nil {
invalidParams.Add(request.NewErrParamRequired("Bucket"))
}
+ if s.Bucket != nil && len(*s.Bucket) < 1 {
+ invalidParams.Add(request.NewErrParamMinLen("Bucket", 1))
+ }
if s.CopySource == nil {
invalidParams.Add(request.NewErrParamRequired("CopySource"))
}
@@ -7905,6 +8686,24 @@ func (s *CopyObjectInput) SetMetadataDirective(v string) *CopyObjectInput {
return s
}
+// SetObjectLockLegalHoldStatus sets the ObjectLockLegalHoldStatus field's value.
+func (s *CopyObjectInput) SetObjectLockLegalHoldStatus(v string) *CopyObjectInput {
+ s.ObjectLockLegalHoldStatus = &v
+ return s
+}
+
+// SetObjectLockMode sets the ObjectLockMode field's value.
+func (s *CopyObjectInput) SetObjectLockMode(v string) *CopyObjectInput {
+ s.ObjectLockMode = &v
+ return s
+}
+
+// SetObjectLockRetainUntilDate sets the ObjectLockRetainUntilDate field's value.
+func (s *CopyObjectInput) SetObjectLockRetainUntilDate(v time.Time) *CopyObjectInput {
+ s.ObjectLockRetainUntilDate = &v
+ return s
+}
+
// SetRequestPayer sets the RequestPayer field's value.
func (s *CopyObjectInput) SetRequestPayer(v string) *CopyObjectInput {
s.RequestPayer = &v
@@ -7998,7 +8797,7 @@ type CopyObjectOutput struct {
// If present, specifies the ID of the AWS Key Management Service (KMS) master
// encryption key that was used for the object.
- SSEKMSKeyId *string `location:"header" locationName:"x-amz-server-side-encryption-aws-kms-key-id" type:"string"`
+ SSEKMSKeyId *string `location:"header" locationName:"x-amz-server-side-encryption-aws-kms-key-id" type:"string" sensitive:"true"`
// The Server-side encryption algorithm used when storing this object in S3
// (e.g., AES256, aws:kms).
@@ -8077,7 +8876,7 @@ type CopyObjectResult struct {
ETag *string `type:"string"`
- LastModified *time.Time `type:"timestamp" timestampFormat:"iso8601"`
+ LastModified *time.Time `type:"timestamp"`
}
// String returns the string representation
@@ -8109,7 +8908,7 @@ type CopyPartResult struct {
ETag *string `type:"string"`
// Date and time at which the object was uploaded.
- LastModified *time.Time `type:"timestamp" timestampFormat:"iso8601"`
+ LastModified *time.Time `type:"timestamp"`
}
// String returns the string representation
@@ -8184,6 +8983,9 @@ type CreateBucketInput struct {
// Allows grantee to write the ACL for the applicable bucket.
GrantWriteACP *string `location:"header" locationName:"x-amz-grant-write-acp" type:"string"`
+
+ // Specifies whether you want S3 Object Lock to be enabled for the new bucket.
+ ObjectLockEnabledForBucket *bool `location:"header" locationName:"x-amz-bucket-object-lock-enabled" type:"boolean"`
}
// String returns the string representation
@@ -8202,6 +9004,9 @@ func (s *CreateBucketInput) Validate() error {
if s.Bucket == nil {
invalidParams.Add(request.NewErrParamRequired("Bucket"))
}
+ if s.Bucket != nil && len(*s.Bucket) < 1 {
+ invalidParams.Add(request.NewErrParamMinLen("Bucket", 1))
+ }
if invalidParams.Len() > 0 {
return invalidParams
@@ -8264,6 +9069,12 @@ func (s *CreateBucketInput) SetGrantWriteACP(v string) *CreateBucketInput {
return s
}
+// SetObjectLockEnabledForBucket sets the ObjectLockEnabledForBucket field's value.
+func (s *CreateBucketInput) SetObjectLockEnabledForBucket(v bool) *CreateBucketInput {
+ s.ObjectLockEnabledForBucket = &v
+ return s
+}
+
type CreateBucketOutput struct {
_ struct{} `type:"structure"`
@@ -8313,7 +9124,7 @@ type CreateMultipartUploadInput struct {
ContentType *string `location:"header" locationName:"Content-Type" type:"string"`
// The date and time at which the object is no longer cacheable.
- Expires *time.Time `location:"header" locationName:"Expires" type:"timestamp" timestampFormat:"rfc822"`
+ Expires *time.Time `location:"header" locationName:"Expires" type:"timestamp"`
// Gives the grantee READ, READ_ACP, and WRITE_ACP permissions on the object.
GrantFullControl *string `location:"header" locationName:"x-amz-grant-full-control" type:"string"`
@@ -8333,6 +9144,15 @@ type CreateMultipartUploadInput struct {
// A map of metadata to store with the object in S3.
Metadata map[string]*string `location:"headers" locationName:"x-amz-meta-" type:"map"`
+ // Specifies whether you want to apply a Legal Hold to the uploaded object.
+ ObjectLockLegalHoldStatus *string `location:"header" locationName:"x-amz-object-lock-legal-hold" type:"string" enum:"ObjectLockLegalHoldStatus"`
+
+ // Specifies the Object Lock mode that you want to apply to the uploaded object.
+ ObjectLockMode *string `location:"header" locationName:"x-amz-object-lock-mode" type:"string" enum:"ObjectLockMode"`
+
+ // Specifies the date and time when you want the Object Lock to expire.
+ ObjectLockRetainUntilDate *time.Time `location:"header" locationName:"x-amz-object-lock-retain-until-date" type:"timestamp" timestampFormat:"iso8601"`
+
// Confirms that the requester knows that she or he will be charged for the
// request. Bucket owners need not specify this parameter in their requests.
// Documentation on downloading objects from requester pays buckets can be found
@@ -8347,7 +9167,7 @@ type CreateMultipartUploadInput struct {
// does not store the encryption key. The key must be appropriate for use with
// the algorithm specified in the x-amz-server-side-encryption-customer-algorithm
// header.
- SSECustomerKey *string `location:"header" locationName:"x-amz-server-side-encryption-customer-key" type:"string"`
+ SSECustomerKey *string `location:"header" locationName:"x-amz-server-side-encryption-customer-key" type:"string" sensitive:"true"`
// Specifies the 128-bit MD5 digest of the encryption key according to RFC 1321.
// Amazon S3 uses this header for a message integrity check to ensure the encryption
@@ -8358,7 +9178,7 @@ type CreateMultipartUploadInput struct {
// requests for an object protected by AWS KMS will fail if not made via SSL
// or using SigV4. Documentation on configuring any of the officially supported
// AWS SDKs and CLI can be found at http://docs.aws.amazon.com/AmazonS3/latest/dev/UsingAWSSDK.html#specify-signature-version
- SSEKMSKeyId *string `location:"header" locationName:"x-amz-server-side-encryption-aws-kms-key-id" type:"string"`
+ SSEKMSKeyId *string `location:"header" locationName:"x-amz-server-side-encryption-aws-kms-key-id" type:"string" sensitive:"true"`
// The Server-side encryption algorithm used when storing this object in S3
// (e.g., AES256, aws:kms).
@@ -8392,6 +9212,9 @@ func (s *CreateMultipartUploadInput) Validate() error {
if s.Bucket == nil {
invalidParams.Add(request.NewErrParamRequired("Bucket"))
}
+ if s.Bucket != nil && len(*s.Bucket) < 1 {
+ invalidParams.Add(request.NewErrParamMinLen("Bucket", 1))
+ }
if s.Key == nil {
invalidParams.Add(request.NewErrParamRequired("Key"))
}
@@ -8496,6 +9319,24 @@ func (s *CreateMultipartUploadInput) SetMetadata(v map[string]*string) *CreateMu
return s
}
+// SetObjectLockLegalHoldStatus sets the ObjectLockLegalHoldStatus field's value.
+func (s *CreateMultipartUploadInput) SetObjectLockLegalHoldStatus(v string) *CreateMultipartUploadInput {
+ s.ObjectLockLegalHoldStatus = &v
+ return s
+}
+
+// SetObjectLockMode sets the ObjectLockMode field's value.
+func (s *CreateMultipartUploadInput) SetObjectLockMode(v string) *CreateMultipartUploadInput {
+ s.ObjectLockMode = &v
+ return s
+}
+
+// SetObjectLockRetainUntilDate sets the ObjectLockRetainUntilDate field's value.
+func (s *CreateMultipartUploadInput) SetObjectLockRetainUntilDate(v time.Time) *CreateMultipartUploadInput {
+ s.ObjectLockRetainUntilDate = &v
+ return s
+}
+
// SetRequestPayer sets the RequestPayer field's value.
func (s *CreateMultipartUploadInput) SetRequestPayer(v string) *CreateMultipartUploadInput {
s.RequestPayer = &v
@@ -8561,7 +9402,7 @@ type CreateMultipartUploadOutput struct {
_ struct{} `type:"structure"`
// Date when multipart upload will become eligible for abort operation by lifecycle.
- AbortDate *time.Time `location:"header" locationName:"x-amz-abort-date" type:"timestamp" timestampFormat:"rfc822"`
+ AbortDate *time.Time `location:"header" locationName:"x-amz-abort-date" type:"timestamp"`
// Id of the lifecycle rule that makes a multipart upload eligible for abort
// operation.
@@ -8589,7 +9430,7 @@ type CreateMultipartUploadOutput struct {
// If present, specifies the ID of the AWS Key Management Service (KMS) master
// encryption key that was used for the object.
- SSEKMSKeyId *string `location:"header" locationName:"x-amz-server-side-encryption-aws-kms-key-id" type:"string"`
+ SSEKMSKeyId *string `location:"header" locationName:"x-amz-server-side-encryption-aws-kms-key-id" type:"string" sensitive:"true"`
// The Server-side encryption algorithm used when storing this object in S3
// (e.g., AES256, aws:kms).
@@ -8676,6 +9517,50 @@ func (s *CreateMultipartUploadOutput) SetUploadId(v string) *CreateMultipartUplo
return s
}
+// The container element for specifying the default Object Lock retention settings
+// for new objects placed in the specified bucket.
+type DefaultRetention struct {
+ _ struct{} `type:"structure"`
+
+ // The number of days that you want to specify for the default retention period.
+ Days *int64 `type:"integer"`
+
+ // The default Object Lock retention mode you want to apply to new objects placed
+ // in the specified bucket.
+ Mode *string `type:"string" enum:"ObjectLockRetentionMode"`
+
+ // The number of years that you want to specify for the default retention period.
+ Years *int64 `type:"integer"`
+}
+
+// String returns the string representation
+func (s DefaultRetention) String() string {
+ return awsutil.Prettify(s)
+}
+
+// GoString returns the string representation
+func (s DefaultRetention) GoString() string {
+ return s.String()
+}
+
+// SetDays sets the Days field's value.
+func (s *DefaultRetention) SetDays(v int64) *DefaultRetention {
+ s.Days = &v
+ return s
+}
+
+// SetMode sets the Mode field's value.
+func (s *DefaultRetention) SetMode(v string) *DefaultRetention {
+ s.Mode = &v
+ return s
+}
+
+// SetYears sets the Years field's value.
+func (s *DefaultRetention) SetYears(v int64) *DefaultRetention {
+ s.Years = &v
+ return s
+}
+
type Delete struct {
_ struct{} `type:"structure"`
@@ -8762,6 +9647,9 @@ func (s *DeleteBucketAnalyticsConfigurationInput) Validate() error {
if s.Bucket == nil {
invalidParams.Add(request.NewErrParamRequired("Bucket"))
}
+ if s.Bucket != nil && len(*s.Bucket) < 1 {
+ invalidParams.Add(request.NewErrParamMinLen("Bucket", 1))
+ }
if s.Id == nil {
invalidParams.Add(request.NewErrParamRequired("Id"))
}
@@ -8828,6 +9716,9 @@ func (s *DeleteBucketCorsInput) Validate() error {
if s.Bucket == nil {
invalidParams.Add(request.NewErrParamRequired("Bucket"))
}
+ if s.Bucket != nil && len(*s.Bucket) < 1 {
+ invalidParams.Add(request.NewErrParamMinLen("Bucket", 1))
+ }
if invalidParams.Len() > 0 {
return invalidParams
@@ -8888,6 +9779,9 @@ func (s *DeleteBucketEncryptionInput) Validate() error {
if s.Bucket == nil {
invalidParams.Add(request.NewErrParamRequired("Bucket"))
}
+ if s.Bucket != nil && len(*s.Bucket) < 1 {
+ invalidParams.Add(request.NewErrParamMinLen("Bucket", 1))
+ }
if invalidParams.Len() > 0 {
return invalidParams
@@ -8945,6 +9839,9 @@ func (s *DeleteBucketInput) Validate() error {
if s.Bucket == nil {
invalidParams.Add(request.NewErrParamRequired("Bucket"))
}
+ if s.Bucket != nil && len(*s.Bucket) < 1 {
+ invalidParams.Add(request.NewErrParamMinLen("Bucket", 1))
+ }
if invalidParams.Len() > 0 {
return invalidParams
@@ -8995,6 +9892,9 @@ func (s *DeleteBucketInventoryConfigurationInput) Validate() error {
if s.Bucket == nil {
invalidParams.Add(request.NewErrParamRequired("Bucket"))
}
+ if s.Bucket != nil && len(*s.Bucket) < 1 {
+ invalidParams.Add(request.NewErrParamMinLen("Bucket", 1))
+ }
if s.Id == nil {
invalidParams.Add(request.NewErrParamRequired("Id"))
}
@@ -9061,6 +9961,9 @@ func (s *DeleteBucketLifecycleInput) Validate() error {
if s.Bucket == nil {
invalidParams.Add(request.NewErrParamRequired("Bucket"))
}
+ if s.Bucket != nil && len(*s.Bucket) < 1 {
+ invalidParams.Add(request.NewErrParamMinLen("Bucket", 1))
+ }
if invalidParams.Len() > 0 {
return invalidParams
@@ -9125,6 +10028,9 @@ func (s *DeleteBucketMetricsConfigurationInput) Validate() error {
if s.Bucket == nil {
invalidParams.Add(request.NewErrParamRequired("Bucket"))
}
+ if s.Bucket != nil && len(*s.Bucket) < 1 {
+ invalidParams.Add(request.NewErrParamMinLen("Bucket", 1))
+ }
if s.Id == nil {
invalidParams.Add(request.NewErrParamRequired("Id"))
}
@@ -9205,6 +10111,9 @@ func (s *DeleteBucketPolicyInput) Validate() error {
if s.Bucket == nil {
invalidParams.Add(request.NewErrParamRequired("Bucket"))
}
+ if s.Bucket != nil && len(*s.Bucket) < 1 {
+ invalidParams.Add(request.NewErrParamMinLen("Bucket", 1))
+ }
if invalidParams.Len() > 0 {
return invalidParams
@@ -9242,6 +10151,11 @@ func (s DeleteBucketPolicyOutput) GoString() string {
type DeleteBucketReplicationInput struct {
_ struct{} `type:"structure"`
+ // The bucket name.
+ //
+ // It can take a while to propagate the deletion of a replication configuration
+ // to all Amazon S3 systems.
+ //
// Bucket is a required field
Bucket *string `location:"uri" locationName:"Bucket" type:"string" required:"true"`
}
@@ -9262,6 +10176,9 @@ func (s *DeleteBucketReplicationInput) Validate() error {
if s.Bucket == nil {
invalidParams.Add(request.NewErrParamRequired("Bucket"))
}
+ if s.Bucket != nil && len(*s.Bucket) < 1 {
+ invalidParams.Add(request.NewErrParamMinLen("Bucket", 1))
+ }
if invalidParams.Len() > 0 {
return invalidParams
@@ -9319,6 +10236,9 @@ func (s *DeleteBucketTaggingInput) Validate() error {
if s.Bucket == nil {
invalidParams.Add(request.NewErrParamRequired("Bucket"))
}
+ if s.Bucket != nil && len(*s.Bucket) < 1 {
+ invalidParams.Add(request.NewErrParamMinLen("Bucket", 1))
+ }
if invalidParams.Len() > 0 {
return invalidParams
@@ -9376,6 +10296,9 @@ func (s *DeleteBucketWebsiteInput) Validate() error {
if s.Bucket == nil {
invalidParams.Add(request.NewErrParamRequired("Bucket"))
}
+ if s.Bucket != nil && len(*s.Bucket) < 1 {
+ invalidParams.Add(request.NewErrParamMinLen("Bucket", 1))
+ }
if invalidParams.Len() > 0 {
return invalidParams
@@ -9421,7 +10344,7 @@ type DeleteMarkerEntry struct {
Key *string `min:"1" type:"string"`
// Date and time the object was last modified.
- LastModified *time.Time `type:"timestamp" timestampFormat:"iso8601"`
+ LastModified *time.Time `type:"timestamp"`
Owner *Owner `type:"structure"`
@@ -9469,12 +10392,43 @@ func (s *DeleteMarkerEntry) SetVersionId(v string) *DeleteMarkerEntry {
return s
}
+// Specifies whether Amazon S3 should replicate delete makers.
+type DeleteMarkerReplication struct {
+ _ struct{} `type:"structure"`
+
+ // The status of the delete marker replication.
+ //
+ // In the current implementation, Amazon S3 doesn't replicate the delete markers.
+ // The status must be Disabled.
+ Status *string `type:"string" enum:"DeleteMarkerReplicationStatus"`
+}
+
+// String returns the string representation
+func (s DeleteMarkerReplication) String() string {
+ return awsutil.Prettify(s)
+}
+
+// GoString returns the string representation
+func (s DeleteMarkerReplication) GoString() string {
+ return s.String()
+}
+
+// SetStatus sets the Status field's value.
+func (s *DeleteMarkerReplication) SetStatus(v string) *DeleteMarkerReplication {
+ s.Status = &v
+ return s
+}
+
type DeleteObjectInput struct {
_ struct{} `type:"structure"`
// Bucket is a required field
Bucket *string `location:"uri" locationName:"Bucket" type:"string" required:"true"`
+ // Indicates whether S3 Object Lock should bypass Governance-mode restrictions
+ // to process this operation.
+ BypassGovernanceRetention *bool `location:"header" locationName:"x-amz-bypass-governance-retention" type:"boolean"`
+
// Key is a required field
Key *string `location:"uri" locationName:"Key" min:"1" type:"string" required:"true"`
@@ -9508,6 +10462,9 @@ func (s *DeleteObjectInput) Validate() error {
if s.Bucket == nil {
invalidParams.Add(request.NewErrParamRequired("Bucket"))
}
+ if s.Bucket != nil && len(*s.Bucket) < 1 {
+ invalidParams.Add(request.NewErrParamMinLen("Bucket", 1))
+ }
if s.Key == nil {
invalidParams.Add(request.NewErrParamRequired("Key"))
}
@@ -9534,6 +10491,12 @@ func (s *DeleteObjectInput) getBucket() (v string) {
return *s.Bucket
}
+// SetBypassGovernanceRetention sets the BypassGovernanceRetention field's value.
+func (s *DeleteObjectInput) SetBypassGovernanceRetention(v bool) *DeleteObjectInput {
+ s.BypassGovernanceRetention = &v
+ return s
+}
+
// SetKey sets the Key field's value.
func (s *DeleteObjectInput) SetKey(v string) *DeleteObjectInput {
s.Key = &v
@@ -9631,6 +10594,9 @@ func (s *DeleteObjectTaggingInput) Validate() error {
if s.Bucket == nil {
invalidParams.Add(request.NewErrParamRequired("Bucket"))
}
+ if s.Bucket != nil && len(*s.Bucket) < 1 {
+ invalidParams.Add(request.NewErrParamMinLen("Bucket", 1))
+ }
if s.Key == nil {
invalidParams.Add(request.NewErrParamRequired("Key"))
}
@@ -9698,6 +10664,11 @@ type DeleteObjectsInput struct {
// Bucket is a required field
Bucket *string `location:"uri" locationName:"Bucket" type:"string" required:"true"`
+ // Specifies whether you want to delete this object even if it has a Governance-type
+ // Object Lock in place. You must have sufficient permissions to perform this
+ // operation.
+ BypassGovernanceRetention *bool `location:"header" locationName:"x-amz-bypass-governance-retention" type:"boolean"`
+
// Delete is a required field
Delete *Delete `locationName:"Delete" type:"structure" required:"true" xmlURI:"http://s3.amazonaws.com/doc/2006-03-01/"`
@@ -9728,6 +10699,9 @@ func (s *DeleteObjectsInput) Validate() error {
if s.Bucket == nil {
invalidParams.Add(request.NewErrParamRequired("Bucket"))
}
+ if s.Bucket != nil && len(*s.Bucket) < 1 {
+ invalidParams.Add(request.NewErrParamMinLen("Bucket", 1))
+ }
if s.Delete == nil {
invalidParams.Add(request.NewErrParamRequired("Delete"))
}
@@ -9756,6 +10730,12 @@ func (s *DeleteObjectsInput) getBucket() (v string) {
return *s.Bucket
}
+// SetBypassGovernanceRetention sets the BypassGovernanceRetention field's value.
+func (s *DeleteObjectsInput) SetBypassGovernanceRetention(v bool) *DeleteObjectsInput {
+ s.BypassGovernanceRetention = &v
+ return s
+}
+
// SetDelete sets the Delete field's value.
func (s *DeleteObjectsInput) SetDelete(v *Delete) *DeleteObjectsInput {
s.Delete = v
@@ -9814,6 +10794,68 @@ func (s *DeleteObjectsOutput) SetRequestCharged(v string) *DeleteObjectsOutput {
return s
}
+type DeletePublicAccessBlockInput struct {
+ _ struct{} `type:"structure"`
+
+ // The Amazon S3 bucket whose PublicAccessBlock configuration you want to delete.
+ //
+ // Bucket is a required field
+ Bucket *string `location:"uri" locationName:"Bucket" type:"string" required:"true"`
+}
+
+// String returns the string representation
+func (s DeletePublicAccessBlockInput) String() string {
+ return awsutil.Prettify(s)
+}
+
+// GoString returns the string representation
+func (s DeletePublicAccessBlockInput) GoString() string {
+ return s.String()
+}
+
+// Validate inspects the fields of the type to determine if they are valid.
+func (s *DeletePublicAccessBlockInput) Validate() error {
+ invalidParams := request.ErrInvalidParams{Context: "DeletePublicAccessBlockInput"}
+ if s.Bucket == nil {
+ invalidParams.Add(request.NewErrParamRequired("Bucket"))
+ }
+ if s.Bucket != nil && len(*s.Bucket) < 1 {
+ invalidParams.Add(request.NewErrParamMinLen("Bucket", 1))
+ }
+
+ if invalidParams.Len() > 0 {
+ return invalidParams
+ }
+ return nil
+}
+
+// SetBucket sets the Bucket field's value.
+func (s *DeletePublicAccessBlockInput) SetBucket(v string) *DeletePublicAccessBlockInput {
+ s.Bucket = &v
+ return s
+}
+
+func (s *DeletePublicAccessBlockInput) getBucket() (v string) {
+ if s.Bucket == nil {
+ return v
+ }
+ return *s.Bucket
+}
+
+type DeletePublicAccessBlockOutput struct {
+ _ struct{} `type:"structure"`
+}
+
+// String returns the string representation
+func (s DeletePublicAccessBlockOutput) String() string {
+ return awsutil.Prettify(s)
+}
+
+// GoString returns the string representation
+func (s DeletePublicAccessBlockOutput) GoString() string {
+ return s.String()
+}
+
type DeletedObject struct {
_ struct{} `type:"structure"`
@@ -9860,27 +10902,43 @@ func (s *DeletedObject) SetVersionId(v string) *DeletedObject {
return s
}
-// Container for replication destination information.
+// A container for information about the replication destination.
type Destination struct {
_ struct{} `type:"structure"`
- // Container for information regarding the access control for replicas.
+ // A container for information about access control for replicas.
+ //
+ // Use this element only in a cross-account scenario where source and destination
+ // bucket owners are not the same to change replica ownership to the AWS account
+ // that owns the destination bucket. If you don't add this element to the replication
+ // configuration, the replicas are owned by same AWS account that owns the source
+ // object.
AccessControlTranslation *AccessControlTranslation `type:"structure"`
- // Account ID of the destination bucket. Currently this is only being verified
- // if Access Control Translation is enabled
+ // The account ID of the destination bucket. Currently, Amazon S3 verifies this
+ // value only if Access Control Translation is enabled.
+ //
+ // In a cross-account scenario, if you change replica ownership to the AWS account
+ // that owns the destination bucket by adding the AccessControlTranslation element,
+ // this is the account ID of the owner of the destination bucket.
Account *string `type:"string"`
- // Amazon resource name (ARN) of the bucket where you want Amazon S3 to store
- // replicas of the object identified by the rule.
+ // The Amazon Resource Name (ARN) of the bucket where you want Amazon S3 to
+ // store replicas of the object identified by the rule.
+ //
+ // If there are multiple rules in your replication configuration, all rules
+ // must specify the same bucket as the destination. A replication configuration
+ // can replicate objects to only one destination bucket.
//
// Bucket is a required field
Bucket *string `type:"string" required:"true"`
- // Container for information regarding encryption based configuration for replicas.
+ // A container that provides information about encryption. If SourceSelectionCriteria
+ // is specified, you must specify this element.
EncryptionConfiguration *EncryptionConfiguration `type:"structure"`
- // The class of storage used to store the object.
+ // The class of storage used to store the object. By default Amazon S3 uses
+ // storage class of the source object when creating a replica.
StorageClass *string `type:"string" enum:"StorageClass"`
}
@@ -9966,7 +11024,7 @@ type Encryption struct {
// If the encryption type is aws:kms, this optional value specifies the AWS
// KMS key ID to use for encryption of job results.
- KMSKeyId *string `type:"string"`
+ KMSKeyId *string `type:"string" sensitive:"true"`
}
// String returns the string representation
@@ -10010,11 +11068,13 @@ func (s *Encryption) SetKMSKeyId(v string) *Encryption {
return s
}
-// Container for information regarding encryption based configuration for replicas.
+// A container for information about the encryption-based configuration for
+// replicas.
type EncryptionConfiguration struct {
_ struct{} `type:"structure"`
- // The id of the KMS key used to encrypt the replica object.
+ // The ID of the AWS KMS key for the AWS Region where the destination bucket
+ // resides. Amazon S3 uses this key to encrypt the replica object.
ReplicaKmsKeyID *string `type:"string"`
}
@@ -10035,7 +11095,7 @@ func (s *EncryptionConfiguration) SetReplicaKmsKeyID(v string) *EncryptionConfig
}
type EndEvent struct {
- _ struct{} `type:"structure"`
+ _ struct{} `locationName:"EndEvent" type:"structure"`
}
// String returns the string representation
@@ -10147,14 +11207,16 @@ func (s *ErrorDocument) SetKey(v string) *ErrorDocument {
return s
}
-// Container for key value pair that defines the criteria for the filter rule.
+// A container for a key value pair that defines the criteria for the filter
+// rule.
type FilterRule struct {
_ struct{} `type:"structure"`
- // Object key name prefix or suffix identifying one or more objects to which
- // the filtering rule applies. Maximum prefix length can be up to 1,024 characters.
+ // The object key name prefix or suffix identifying one or more objects to which
+ // the filtering rule applies. The maximum prefix length is 1,024 characters.
// Overlapping prefixes and suffixes are not supported. For more information,
- // go to Configuring Event Notifications (http://docs.aws.amazon.com/AmazonS3/latest/dev/NotificationHowTo.html)
+ // see Configuring Event Notifications (http://docs.aws.amazon.com/AmazonS3/latest/dev/NotificationHowTo.html)
+ // in the Amazon Simple Storage Service Developer Guide.
Name *string `type:"string" enum:"FilterRuleName"`
Value *string `type:"string"`
@@ -10207,6 +11269,9 @@ func (s *GetBucketAccelerateConfigurationInput) Validate() error {
if s.Bucket == nil {
invalidParams.Add(request.NewErrParamRequired("Bucket"))
}
+ if s.Bucket != nil && len(*s.Bucket) < 1 {
+ invalidParams.Add(request.NewErrParamMinLen("Bucket", 1))
+ }
if invalidParams.Len() > 0 {
return invalidParams
@@ -10273,6 +11338,9 @@ func (s *GetBucketAclInput) Validate() error {
if s.Bucket == nil {
invalidParams.Add(request.NewErrParamRequired("Bucket"))
}
+ if s.Bucket != nil && len(*s.Bucket) < 1 {
+ invalidParams.Add(request.NewErrParamMinLen("Bucket", 1))
+ }
if invalidParams.Len() > 0 {
return invalidParams
@@ -10354,6 +11422,9 @@ func (s *GetBucketAnalyticsConfigurationInput) Validate() error {
if s.Bucket == nil {
invalidParams.Add(request.NewErrParamRequired("Bucket"))
}
+ if s.Bucket != nil && len(*s.Bucket) < 1 {
+ invalidParams.Add(request.NewErrParamMinLen("Bucket", 1))
+ }
if s.Id == nil {
invalidParams.Add(request.NewErrParamRequired("Id"))
}
@@ -10429,6 +11500,9 @@ func (s *GetBucketCorsInput) Validate() error {
if s.Bucket == nil {
invalidParams.Add(request.NewErrParamRequired("Bucket"))
}
+ if s.Bucket != nil && len(*s.Bucket) < 1 {
+ invalidParams.Add(request.NewErrParamMinLen("Bucket", 1))
+ }
if invalidParams.Len() > 0 {
return invalidParams
@@ -10497,6 +11571,9 @@ func (s *GetBucketEncryptionInput) Validate() error {
if s.Bucket == nil {
invalidParams.Add(request.NewErrParamRequired("Bucket"))
}
+ if s.Bucket != nil && len(*s.Bucket) < 1 {
+ invalidParams.Add(request.NewErrParamMinLen("Bucket", 1))
+ }
if invalidParams.Len() > 0 {
return invalidParams
@@ -10571,6 +11648,9 @@ func (s *GetBucketInventoryConfigurationInput) Validate() error {
if s.Bucket == nil {
invalidParams.Add(request.NewErrParamRequired("Bucket"))
}
+ if s.Bucket != nil && len(*s.Bucket) < 1 {
+ invalidParams.Add(request.NewErrParamMinLen("Bucket", 1))
+ }
if s.Id == nil {
invalidParams.Add(request.NewErrParamRequired("Id"))
}
@@ -10646,6 +11726,9 @@ func (s *GetBucketLifecycleConfigurationInput) Validate() error {
if s.Bucket == nil {
invalidParams.Add(request.NewErrParamRequired("Bucket"))
}
+ if s.Bucket != nil && len(*s.Bucket) < 1 {
+ invalidParams.Add(request.NewErrParamMinLen("Bucket", 1))
+ }
if invalidParams.Len() > 0 {
return invalidParams
@@ -10711,6 +11794,9 @@ func (s *GetBucketLifecycleInput) Validate() error {
if s.Bucket == nil {
invalidParams.Add(request.NewErrParamRequired("Bucket"))
}
+ if s.Bucket != nil && len(*s.Bucket) < 1 {
+ invalidParams.Add(request.NewErrParamMinLen("Bucket", 1))
+ }
if invalidParams.Len() > 0 {
return invalidParams
@@ -10776,6 +11862,9 @@ func (s *GetBucketLocationInput) Validate() error {
if s.Bucket == nil {
invalidParams.Add(request.NewErrParamRequired("Bucket"))
}
+ if s.Bucket != nil && len(*s.Bucket) < 1 {
+ invalidParams.Add(request.NewErrParamMinLen("Bucket", 1))
+ }
if invalidParams.Len() > 0 {
return invalidParams
@@ -10841,6 +11930,9 @@ func (s *GetBucketLoggingInput) Validate() error {
if s.Bucket == nil {
invalidParams.Add(request.NewErrParamRequired("Bucket"))
}
+ if s.Bucket != nil && len(*s.Bucket) < 1 {
+ invalidParams.Add(request.NewErrParamMinLen("Bucket", 1))
+ }
if invalidParams.Len() > 0 {
return invalidParams
@@ -10916,6 +12008,9 @@ func (s *GetBucketMetricsConfigurationInput) Validate() error {
if s.Bucket == nil {
invalidParams.Add(request.NewErrParamRequired("Bucket"))
}
+ if s.Bucket != nil && len(*s.Bucket) < 1 {
+ invalidParams.Add(request.NewErrParamMinLen("Bucket", 1))
+ }
if s.Id == nil {
invalidParams.Add(request.NewErrParamRequired("Id"))
}
@@ -10993,6 +12088,9 @@ func (s *GetBucketNotificationConfigurationRequest) Validate() error {
if s.Bucket == nil {
invalidParams.Add(request.NewErrParamRequired("Bucket"))
}
+ if s.Bucket != nil && len(*s.Bucket) < 1 {
+ invalidParams.Add(request.NewErrParamMinLen("Bucket", 1))
+ }
if invalidParams.Len() > 0 {
return invalidParams
@@ -11036,6 +12134,9 @@ func (s *GetBucketPolicyInput) Validate() error {
if s.Bucket == nil {
invalidParams.Add(request.NewErrParamRequired("Bucket"))
}
+ if s.Bucket != nil && len(*s.Bucket) < 1 {
+ invalidParams.Add(request.NewErrParamMinLen("Bucket", 1))
+ }
if invalidParams.Len() > 0 {
return invalidParams
@@ -11079,6 +12180,77 @@ func (s *GetBucketPolicyOutput) SetPolicy(v string) *GetBucketPolicyOutput {
return s
}
+type GetBucketPolicyStatusInput struct {
+ _ struct{} `type:"structure"`
+
+ // The name of the Amazon S3 bucket whose policy status you want to retrieve.
+ //
+ // Bucket is a required field
+ Bucket *string `location:"uri" locationName:"Bucket" type:"string" required:"true"`
+}
+
+// String returns the string representation
+func (s GetBucketPolicyStatusInput) String() string {
+ return awsutil.Prettify(s)
+}
+
+// GoString returns the string representation
+func (s GetBucketPolicyStatusInput) GoString() string {
+ return s.String()
+}
+
+// Validate inspects the fields of the type to determine if they are valid.
+func (s *GetBucketPolicyStatusInput) Validate() error {
+ invalidParams := request.ErrInvalidParams{Context: "GetBucketPolicyStatusInput"}
+ if s.Bucket == nil {
+ invalidParams.Add(request.NewErrParamRequired("Bucket"))
+ }
+ if s.Bucket != nil && len(*s.Bucket) < 1 {
+ invalidParams.Add(request.NewErrParamMinLen("Bucket", 1))
+ }
+
+ if invalidParams.Len() > 0 {
+ return invalidParams
+ }
+ return nil
+}
+
+// SetBucket sets the Bucket field's value.
+func (s *GetBucketPolicyStatusInput) SetBucket(v string) *GetBucketPolicyStatusInput {
+ s.Bucket = &v
+ return s
+}
+
+func (s *GetBucketPolicyStatusInput) getBucket() (v string) {
+ if s.Bucket == nil {
+ return v
+ }
+ return *s.Bucket
+}
+
+type GetBucketPolicyStatusOutput struct {
+ _ struct{} `type:"structure" payload:"PolicyStatus"`
+
+ // The policy status for the specified bucket.
+ PolicyStatus *PolicyStatus `type:"structure"`
+}
+
+// String returns the string representation
+func (s GetBucketPolicyStatusOutput) String() string {
+ return awsutil.Prettify(s)
+}
+
+// GoString returns the string representation
+func (s GetBucketPolicyStatusOutput) GoString() string {
+ return s.String()
+}
+
+// SetPolicyStatus sets the PolicyStatus field's value.
+func (s *GetBucketPolicyStatusOutput) SetPolicyStatus(v *PolicyStatus) *GetBucketPolicyStatusOutput {
+ s.PolicyStatus = v
+ return s
+}
+
type GetBucketReplicationInput struct {
_ struct{} `type:"structure"`
@@ -11102,6 +12274,9 @@ func (s *GetBucketReplicationInput) Validate() error {
if s.Bucket == nil {
invalidParams.Add(request.NewErrParamRequired("Bucket"))
}
+ if s.Bucket != nil && len(*s.Bucket) < 1 {
+ invalidParams.Add(request.NewErrParamMinLen("Bucket", 1))
+ }
if invalidParams.Len() > 0 {
return invalidParams
@@ -11125,8 +12300,8 @@ func (s *GetBucketReplicationInput) getBucket() (v string) {
type GetBucketReplicationOutput struct {
_ struct{} `type:"structure" payload:"ReplicationConfiguration"`
- // Container for replication rules. You can add as many as 1,000 rules. Total
- // replication configuration size can be up to 2 MB.
+ // A container for replication rules. You can add up to 1,000 rules. The maximum
+ // size of a replication configuration is 2 MB.
ReplicationConfiguration *ReplicationConfiguration `type:"structure"`
}
@@ -11169,6 +12344,9 @@ func (s *GetBucketRequestPaymentInput) Validate() error {
if s.Bucket == nil {
invalidParams.Add(request.NewErrParamRequired("Bucket"))
}
+ if s.Bucket != nil && len(*s.Bucket) < 1 {
+ invalidParams.Add(request.NewErrParamMinLen("Bucket", 1))
+ }
if invalidParams.Len() > 0 {
return invalidParams
@@ -11235,6 +12413,9 @@ func (s *GetBucketTaggingInput) Validate() error {
if s.Bucket == nil {
invalidParams.Add(request.NewErrParamRequired("Bucket"))
}
+ if s.Bucket != nil && len(*s.Bucket) < 1 {
+ invalidParams.Add(request.NewErrParamMinLen("Bucket", 1))
+ }
if invalidParams.Len() > 0 {
return invalidParams
@@ -11301,6 +12482,9 @@ func (s *GetBucketVersioningInput) Validate() error {
if s.Bucket == nil {
invalidParams.Add(request.NewErrParamRequired("Bucket"))
}
+ if s.Bucket != nil && len(*s.Bucket) < 1 {
+ invalidParams.Add(request.NewErrParamMinLen("Bucket", 1))
+ }
if invalidParams.Len() > 0 {
return invalidParams
@@ -11378,6 +12562,9 @@ func (s *GetBucketWebsiteInput) Validate() error {
if s.Bucket == nil {
invalidParams.Add(request.NewErrParamRequired("Bucket"))
}
+ if s.Bucket != nil && len(*s.Bucket) < 1 {
+ invalidParams.Add(request.NewErrParamMinLen("Bucket", 1))
+ }
if invalidParams.Len() > 0 {
return invalidParams
@@ -11479,6 +12666,9 @@ func (s *GetObjectAclInput) Validate() error {
if s.Bucket == nil {
invalidParams.Add(request.NewErrParamRequired("Bucket"))
}
+ if s.Bucket != nil && len(*s.Bucket) < 1 {
+ invalidParams.Add(request.NewErrParamMinLen("Bucket", 1))
+ }
if s.Key == nil {
invalidParams.Add(request.NewErrParamRequired("Key"))
}
@@ -11576,7 +12766,7 @@ type GetObjectInput struct {
// Return the object only if it has been modified since the specified time,
// otherwise return a 304 (not modified).
- IfModifiedSince *time.Time `location:"header" locationName:"If-Modified-Since" type:"timestamp" timestampFormat:"rfc822"`
+ IfModifiedSince *time.Time `location:"header" locationName:"If-Modified-Since" type:"timestamp"`
// Return the object only if its entity tag (ETag) is different from the one
// specified, otherwise return a 304 (not modified).
@@ -11584,7 +12774,7 @@ type GetObjectInput struct {
// Return the object only if it has not been modified since the specified time,
// otherwise return a 412 (precondition failed).
- IfUnmodifiedSince *time.Time `location:"header" locationName:"If-Unmodified-Since" type:"timestamp" timestampFormat:"rfc822"`
+ IfUnmodifiedSince *time.Time `location:"header" locationName:"If-Unmodified-Since" type:"timestamp"`
// Key is a required field
Key *string `location:"uri" locationName:"Key" min:"1" type:"string" required:"true"`
@@ -11620,7 +12810,7 @@ type GetObjectInput struct {
ResponseContentType *string `location:"querystring" locationName:"response-content-type" type:"string"`
// Sets the Expires header of the response.
- ResponseExpires *time.Time `location:"querystring" locationName:"response-expires" type:"timestamp" timestampFormat:"iso8601"`
+ ResponseExpires *time.Time `location:"querystring" locationName:"response-expires" type:"timestamp"`
// Specifies the algorithm to use to when encrypting the object (e.g., AES256).
SSECustomerAlgorithm *string `location:"header" locationName:"x-amz-server-side-encryption-customer-algorithm" type:"string"`
@@ -11630,7 +12820,7 @@ type GetObjectInput struct {
// does not store the encryption key. The key must be appropriate for use with
// the algorithm specified in the x-amz-server-side-encryption-customer-algorithm
// header.
- SSECustomerKey *string `location:"header" locationName:"x-amz-server-side-encryption-customer-key" type:"string"`
+ SSECustomerKey *string `location:"header" locationName:"x-amz-server-side-encryption-customer-key" type:"string" sensitive:"true"`
// Specifies the 128-bit MD5 digest of the encryption key according to RFC 1321.
// Amazon S3 uses this header for a message integrity check to ensure the encryption
@@ -11657,6 +12847,9 @@ func (s *GetObjectInput) Validate() error {
if s.Bucket == nil {
invalidParams.Add(request.NewErrParamRequired("Bucket"))
}
+ if s.Bucket != nil && len(*s.Bucket) < 1 {
+ invalidParams.Add(request.NewErrParamMinLen("Bucket", 1))
+ }
if s.Key == nil {
invalidParams.Add(request.NewErrParamRequired("Key"))
}
@@ -11798,6 +12991,186 @@ func (s *GetObjectInput) SetVersionId(v string) *GetObjectInput {
return s
}
+type GetObjectLegalHoldInput struct {
+ _ struct{} `type:"structure"`
+
+ // The bucket containing the object whose Legal Hold status you want to retrieve.
+ //
+ // Bucket is a required field
+ Bucket *string `location:"uri" locationName:"Bucket" type:"string" required:"true"`
+
+ // The key name for the object whose Legal Hold status you want to retrieve.
+ //
+ // Key is a required field
+ Key *string `location:"uri" locationName:"Key" min:"1" type:"string" required:"true"`
+
+ // Confirms that the requester knows that she or he will be charged for the
+ // request. Bucket owners need not specify this parameter in their requests.
+ // Documentation on downloading objects from requester pays buckets can be found
+ // at http://docs.aws.amazon.com/AmazonS3/latest/dev/ObjectsinRequesterPaysBuckets.html
+ RequestPayer *string `location:"header" locationName:"x-amz-request-payer" type:"string" enum:"RequestPayer"`
+
+ // The version ID of the object whose Legal Hold status you want to retrieve.
+ VersionId *string `location:"querystring" locationName:"versionId" type:"string"`
+}
+
+// String returns the string representation
+func (s GetObjectLegalHoldInput) String() string {
+ return awsutil.Prettify(s)
+}
+
+// GoString returns the string representation
+func (s GetObjectLegalHoldInput) GoString() string {
+ return s.String()
+}
+
+// Validate inspects the fields of the type to determine if they are valid.
+func (s *GetObjectLegalHoldInput) Validate() error {
+ invalidParams := request.ErrInvalidParams{Context: "GetObjectLegalHoldInput"}
+ if s.Bucket == nil {
+ invalidParams.Add(request.NewErrParamRequired("Bucket"))
+ }
+ if s.Bucket != nil && len(*s.Bucket) < 1 {
+ invalidParams.Add(request.NewErrParamMinLen("Bucket", 1))
+ }
+ if s.Key == nil {
+ invalidParams.Add(request.NewErrParamRequired("Key"))
+ }
+ if s.Key != nil && len(*s.Key) < 1 {
+ invalidParams.Add(request.NewErrParamMinLen("Key", 1))
+ }
+
+ if invalidParams.Len() > 0 {
+ return invalidParams
+ }
+ return nil
+}
+
+// SetBucket sets the Bucket field's value.
+func (s *GetObjectLegalHoldInput) SetBucket(v string) *GetObjectLegalHoldInput {
+ s.Bucket = &v
+ return s
+}
+
+func (s *GetObjectLegalHoldInput) getBucket() (v string) {
+ if s.Bucket == nil {
+ return v
+ }
+ return *s.Bucket
+}
+
+// SetKey sets the Key field's value.
+func (s *GetObjectLegalHoldInput) SetKey(v string) *GetObjectLegalHoldInput {
+ s.Key = &v
+ return s
+}
+
+// SetRequestPayer sets the RequestPayer field's value.
+func (s *GetObjectLegalHoldInput) SetRequestPayer(v string) *GetObjectLegalHoldInput {
+ s.RequestPayer = &v
+ return s
+}
+
+// SetVersionId sets the VersionId field's value.
+func (s *GetObjectLegalHoldInput) SetVersionId(v string) *GetObjectLegalHoldInput {
+ s.VersionId = &v
+ return s
+}
+
+type GetObjectLegalHoldOutput struct {
+ _ struct{} `type:"structure" payload:"LegalHold"`
+
+ // The current Legal Hold status for the specified object.
+ LegalHold *ObjectLockLegalHold `type:"structure"`
+}
+
+// String returns the string representation
+func (s GetObjectLegalHoldOutput) String() string {
+ return awsutil.Prettify(s)
+}
+
+// GoString returns the string representation
+func (s GetObjectLegalHoldOutput) GoString() string {
+ return s.String()
+}
+
+// SetLegalHold sets the LegalHold field's value.
+func (s *GetObjectLegalHoldOutput) SetLegalHold(v *ObjectLockLegalHold) *GetObjectLegalHoldOutput {
+ s.LegalHold = v
+ return s
+}
+
+type GetObjectLockConfigurationInput struct {
+ _ struct{} `type:"structure"`
+
+ // The bucket whose Object Lock configuration you want to retrieve.
+ //
+ // Bucket is a required field
+ Bucket *string `location:"uri" locationName:"Bucket" type:"string" required:"true"`
+}
+
+// String returns the string representation
+func (s GetObjectLockConfigurationInput) String() string {
+ return awsutil.Prettify(s)
+}
+
+// GoString returns the string representation
+func (s GetObjectLockConfigurationInput) GoString() string {
+ return s.String()
+}
+
+// Validate inspects the fields of the type to determine if they are valid.
+func (s *GetObjectLockConfigurationInput) Validate() error {
+ invalidParams := request.ErrInvalidParams{Context: "GetObjectLockConfigurationInput"}
+ if s.Bucket == nil {
+ invalidParams.Add(request.NewErrParamRequired("Bucket"))
+ }
+ if s.Bucket != nil && len(*s.Bucket) < 1 {
+ invalidParams.Add(request.NewErrParamMinLen("Bucket", 1))
+ }
+
+ if invalidParams.Len() > 0 {
+ return invalidParams
+ }
+ return nil
+}
+
+// SetBucket sets the Bucket field's value.
+func (s *GetObjectLockConfigurationInput) SetBucket(v string) *GetObjectLockConfigurationInput {
+ s.Bucket = &v
+ return s
+}
+
+func (s *GetObjectLockConfigurationInput) getBucket() (v string) {
+ if s.Bucket == nil {
+ return v
+ }
+ return *s.Bucket
+}
+
+type GetObjectLockConfigurationOutput struct {
+ _ struct{} `type:"structure" payload:"ObjectLockConfiguration"`
+
+ // The specified bucket's Object Lock configuration.
+ ObjectLockConfiguration *ObjectLockConfiguration `type:"structure"`
+}
+
+// String returns the string representation
+func (s GetObjectLockConfigurationOutput) String() string {
+ return awsutil.Prettify(s)
+}
+
+// GoString returns the string representation
+func (s GetObjectLockConfigurationOutput) GoString() string {
+ return s.String()
+}
+
+// SetObjectLockConfiguration sets the ObjectLockConfiguration field's value.
+func (s *GetObjectLockConfigurationOutput) SetObjectLockConfiguration(v *ObjectLockConfiguration) *GetObjectLockConfigurationOutput {
+ s.ObjectLockConfiguration = v
+ return s
+}
+
type GetObjectOutput struct {
_ struct{} `type:"structure" payload:"Body"`
@@ -11847,7 +13220,7 @@ type GetObjectOutput struct {
Expires *string `location:"header" locationName:"Expires" type:"string"`
// Last modified date of the object
- LastModified *time.Time `location:"header" locationName:"Last-Modified" type:"timestamp" timestampFormat:"rfc822"`
+ LastModified *time.Time `location:"header" locationName:"Last-Modified" type:"timestamp"`
// A map of metadata to store with the object in S3.
Metadata map[string]*string `location:"headers" locationName:"x-amz-meta-" type:"map"`
@@ -11858,6 +13231,16 @@ type GetObjectOutput struct {
// you can create metadata whose values are not legal HTTP headers.
MissingMeta *int64 `location:"header" locationName:"x-amz-missing-meta" type:"integer"`
+ // Indicates whether this object has an active legal hold. This field is only
+ // returned if you have permission to view an object's legal hold status.
+ ObjectLockLegalHoldStatus *string `location:"header" locationName:"x-amz-object-lock-legal-hold" type:"string" enum:"ObjectLockLegalHoldStatus"`
+
+ // The Object Lock mode currently in place for this object.
+ ObjectLockMode *string `location:"header" locationName:"x-amz-object-lock-mode" type:"string" enum:"ObjectLockMode"`
+
+ // The date and time when this object's Object Lock will expire.
+ ObjectLockRetainUntilDate *time.Time `location:"header" locationName:"x-amz-object-lock-retain-until-date" type:"timestamp" timestampFormat:"iso8601"`
+
// The count of parts this object has.
PartsCount *int64 `location:"header" locationName:"x-amz-mp-parts-count" type:"integer"`
@@ -11883,7 +13266,7 @@ type GetObjectOutput struct {
// If present, specifies the ID of the AWS Key Management Service (KMS) master
// encryption key that was used for the object.
- SSEKMSKeyId *string `location:"header" locationName:"x-amz-server-side-encryption-aws-kms-key-id" type:"string"`
+ SSEKMSKeyId *string `location:"header" locationName:"x-amz-server-side-encryption-aws-kms-key-id" type:"string" sensitive:"true"`
// The Server-side encryption algorithm used when storing this object in S3
// (e.g., AES256, aws:kms).
@@ -12009,6 +13392,24 @@ func (s *GetObjectOutput) SetMissingMeta(v int64) *GetObjectOutput {
return s
}
+// SetObjectLockLegalHoldStatus sets the ObjectLockLegalHoldStatus field's value.
+func (s *GetObjectOutput) SetObjectLockLegalHoldStatus(v string) *GetObjectOutput {
+ s.ObjectLockLegalHoldStatus = &v
+ return s
+}
+
+// SetObjectLockMode sets the ObjectLockMode field's value.
+func (s *GetObjectOutput) SetObjectLockMode(v string) *GetObjectOutput {
+ s.ObjectLockMode = &v
+ return s
+}
+
+// SetObjectLockRetainUntilDate sets the ObjectLockRetainUntilDate field's value.
+func (s *GetObjectOutput) SetObjectLockRetainUntilDate(v time.Time) *GetObjectOutput {
+ s.ObjectLockRetainUntilDate = &v
+ return s
+}
+
// SetPartsCount sets the PartsCount field's value.
func (s *GetObjectOutput) SetPartsCount(v int64) *GetObjectOutput {
s.PartsCount = &v
@@ -12081,6 +13482,115 @@ func (s *GetObjectOutput) SetWebsiteRedirectLocation(v string) *GetObjectOutput
return s
}
+type GetObjectRetentionInput struct {
+ _ struct{} `type:"structure"`
+
+ // The bucket containing the object whose retention settings you want to retrieve.
+ //
+ // Bucket is a required field
+ Bucket *string `location:"uri" locationName:"Bucket" type:"string" required:"true"`
+
+ // The key name for the object whose retention settings you want to retrieve.
+ //
+ // Key is a required field
+ Key *string `location:"uri" locationName:"Key" min:"1" type:"string" required:"true"`
+
+ // Confirms that the requester knows that she or he will be charged for the
+ // request. Bucket owners need not specify this parameter in their requests.
+ // Documentation on downloading objects from requester pays buckets can be found
+ // at http://docs.aws.amazon.com/AmazonS3/latest/dev/ObjectsinRequesterPaysBuckets.html
+ RequestPayer *string `location:"header" locationName:"x-amz-request-payer" type:"string" enum:"RequestPayer"`
+
+ // The version ID for the object whose retention settings you want to retrieve.
+ VersionId *string `location:"querystring" locationName:"versionId" type:"string"`
+}
+
+// String returns the string representation
+func (s GetObjectRetentionInput) String() string {
+ return awsutil.Prettify(s)
+}
+
+// GoString returns the string representation
+func (s GetObjectRetentionInput) GoString() string {
+ return s.String()
+}
+
+// Validate inspects the fields of the type to determine if they are valid.
+func (s *GetObjectRetentionInput) Validate() error {
+ invalidParams := request.ErrInvalidParams{Context: "GetObjectRetentionInput"}
+ if s.Bucket == nil {
+ invalidParams.Add(request.NewErrParamRequired("Bucket"))
+ }
+ if s.Bucket != nil && len(*s.Bucket) < 1 {
+ invalidParams.Add(request.NewErrParamMinLen("Bucket", 1))
+ }
+ if s.Key == nil {
+ invalidParams.Add(request.NewErrParamRequired("Key"))
+ }
+ if s.Key != nil && len(*s.Key) < 1 {
+ invalidParams.Add(request.NewErrParamMinLen("Key", 1))
+ }
+
+ if invalidParams.Len() > 0 {
+ return invalidParams
+ }
+ return nil
+}
+
+// SetBucket sets the Bucket field's value.
+func (s *GetObjectRetentionInput) SetBucket(v string) *GetObjectRetentionInput {
+ s.Bucket = &v
+ return s
+}
+
+func (s *GetObjectRetentionInput) getBucket() (v string) {
+ if s.Bucket == nil {
+ return v
+ }
+ return *s.Bucket
+}
+
+// SetKey sets the Key field's value.
+func (s *GetObjectRetentionInput) SetKey(v string) *GetObjectRetentionInput {
+ s.Key = &v
+ return s
+}
+
+// SetRequestPayer sets the RequestPayer field's value.
+func (s *GetObjectRetentionInput) SetRequestPayer(v string) *GetObjectRetentionInput {
+ s.RequestPayer = &v
+ return s
+}
+
+// SetVersionId sets the VersionId field's value.
+func (s *GetObjectRetentionInput) SetVersionId(v string) *GetObjectRetentionInput {
+ s.VersionId = &v
+ return s
+}
+
+type GetObjectRetentionOutput struct {
+ _ struct{} `type:"structure" payload:"Retention"`
+
+ // The container element for an object's retention settings.
+ Retention *ObjectLockRetention `type:"structure"`
+}
+
+// String returns the string representation
+func (s GetObjectRetentionOutput) String() string {
+ return awsutil.Prettify(s)
+}
+
+// GoString returns the string representation
+func (s GetObjectRetentionOutput) GoString() string {
+ return s.String()
+}
+
+// SetRetention sets the Retention field's value.
+func (s *GetObjectRetentionOutput) SetRetention(v *ObjectLockRetention) *GetObjectRetentionOutput {
+ s.Retention = v
+ return s
+}
+
type GetObjectTaggingInput struct {
_ struct{} `type:"structure"`
@@ -12109,6 +13619,9 @@ func (s *GetObjectTaggingInput) Validate() error {
if s.Bucket == nil {
invalidParams.Add(request.NewErrParamRequired("Bucket"))
}
+ if s.Bucket != nil && len(*s.Bucket) < 1 {
+ invalidParams.Add(request.NewErrParamMinLen("Bucket", 1))
+ }
if s.Key == nil {
invalidParams.Add(request.NewErrParamRequired("Key"))
}
@@ -12210,6 +13723,9 @@ func (s *GetObjectTorrentInput) Validate() error {
if s.Bucket == nil {
invalidParams.Add(request.NewErrParamRequired("Bucket"))
}
+ if s.Bucket != nil && len(*s.Bucket) < 1 {
+ invalidParams.Add(request.NewErrParamMinLen("Bucket", 1))
+ }
if s.Key == nil {
invalidParams.Add(request.NewErrParamRequired("Key"))
}
@@ -12280,6 +13796,79 @@ func (s *GetObjectTorrentOutput) SetRequestCharged(v string) *GetObjectTorrentOu
return s
}
+type GetPublicAccessBlockInput struct {
+ _ struct{} `type:"structure"`
+
+ // The name of the Amazon S3 bucket whose PublicAccessBlock configuration you
+ // want to retrieve.
+ //
+ // Bucket is a required field
+ Bucket *string `location:"uri" locationName:"Bucket" type:"string" required:"true"`
+}
+
+// String returns the string representation
+func (s GetPublicAccessBlockInput) String() string {
+ return awsutil.Prettify(s)
+}
+
+// GoString returns the string representation
+func (s GetPublicAccessBlockInput) GoString() string {
+ return s.String()
+}
+
+// Validate inspects the fields of the type to determine if they are valid.
+func (s *GetPublicAccessBlockInput) Validate() error {
+ invalidParams := request.ErrInvalidParams{Context: "GetPublicAccessBlockInput"}
+ if s.Bucket == nil {
+ invalidParams.Add(request.NewErrParamRequired("Bucket"))
+ }
+ if s.Bucket != nil && len(*s.Bucket) < 1 {
+ invalidParams.Add(request.NewErrParamMinLen("Bucket", 1))
+ }
+
+ if invalidParams.Len() > 0 {
+ return invalidParams
+ }
+ return nil
+}
+
+// SetBucket sets the Bucket field's value.
+func (s *GetPublicAccessBlockInput) SetBucket(v string) *GetPublicAccessBlockInput {
+ s.Bucket = &v
+ return s
+}
+
+func (s *GetPublicAccessBlockInput) getBucket() (v string) {
+ if s.Bucket == nil {
+ return v
+ }
+ return *s.Bucket
+}
+
+type GetPublicAccessBlockOutput struct {
+ _ struct{} `type:"structure" payload:"PublicAccessBlockConfiguration"`
+
+ // The PublicAccessBlock configuration currently in effect for this Amazon S3
+ // bucket.
+ PublicAccessBlockConfiguration *PublicAccessBlockConfiguration `type:"structure"`
+}
+
+// String returns the string representation
+func (s GetPublicAccessBlockOutput) String() string {
+ return awsutil.Prettify(s)
+}
+
+// GoString returns the string representation
+func (s GetPublicAccessBlockOutput) GoString() string {
+ return s.String()
+}
+
+// SetPublicAccessBlockConfiguration sets the PublicAccessBlockConfiguration field's value.
+func (s *GetPublicAccessBlockOutput) SetPublicAccessBlockConfiguration(v *PublicAccessBlockConfiguration) *GetPublicAccessBlockOutput {
+ s.PublicAccessBlockConfiguration = v
+ return s
+}
+
type GlacierJobParameters struct {
_ struct{} `type:"structure"`
@@ -12461,6 +14050,9 @@ func (s *HeadBucketInput) Validate() error {
if s.Bucket == nil {
invalidParams.Add(request.NewErrParamRequired("Bucket"))
}
+ if s.Bucket != nil && len(*s.Bucket) < 1 {
+ invalidParams.Add(request.NewErrParamMinLen("Bucket", 1))
+ }
if invalidParams.Len() > 0 {
return invalidParams
@@ -12507,7 +14099,7 @@ type HeadObjectInput struct {
// Return the object only if it has been modified since the specified time,
// otherwise return a 304 (not modified).
- IfModifiedSince *time.Time `location:"header" locationName:"If-Modified-Since" type:"timestamp" timestampFormat:"rfc822"`
+ IfModifiedSince *time.Time `location:"header" locationName:"If-Modified-Since" type:"timestamp"`
// Return the object only if its entity tag (ETag) is different from the one
// specified, otherwise return a 304 (not modified).
@@ -12515,7 +14107,7 @@ type HeadObjectInput struct {
// Return the object only if it has not been modified since the specified time,
// otherwise return a 412 (precondition failed).
- IfUnmodifiedSince *time.Time `location:"header" locationName:"If-Unmodified-Since" type:"timestamp" timestampFormat:"rfc822"`
+ IfUnmodifiedSince *time.Time `location:"header" locationName:"If-Unmodified-Since" type:"timestamp"`
// Key is a required field
Key *string `location:"uri" locationName:"Key" min:"1" type:"string" required:"true"`
@@ -12544,7 +14136,7 @@ type HeadObjectInput struct {
// does not store the encryption key. The key must be appropriate for use with
// the algorithm specified in the x-amz-server-side-encryption-customer-algorithm
// header.
- SSECustomerKey *string `location:"header" locationName:"x-amz-server-side-encryption-customer-key" type:"string"`
+ SSECustomerKey *string `location:"header" locationName:"x-amz-server-side-encryption-customer-key" type:"string" sensitive:"true"`
// Specifies the 128-bit MD5 digest of the encryption key according to RFC 1321.
// Amazon S3 uses this header for a message integrity check to ensure the encryption
@@ -12571,6 +14163,9 @@ func (s *HeadObjectInput) Validate() error {
if s.Bucket == nil {
invalidParams.Add(request.NewErrParamRequired("Bucket"))
}
+ if s.Bucket != nil && len(*s.Bucket) < 1 {
+ invalidParams.Add(request.NewErrParamMinLen("Bucket", 1))
+ }
if s.Key == nil {
invalidParams.Add(request.NewErrParamRequired("Key"))
}
@@ -12719,7 +14314,7 @@ type HeadObjectOutput struct {
Expires *string `location:"header" locationName:"Expires" type:"string"`
// Last modified date of the object
- LastModified *time.Time `location:"header" locationName:"Last-Modified" type:"timestamp" timestampFormat:"rfc822"`
+ LastModified *time.Time `location:"header" locationName:"Last-Modified" type:"timestamp"`
// A map of metadata to store with the object in S3.
Metadata map[string]*string `location:"headers" locationName:"x-amz-meta-" type:"map"`
@@ -12730,6 +14325,15 @@ type HeadObjectOutput struct {
// you can create metadata whose values are not legal HTTP headers.
MissingMeta *int64 `location:"header" locationName:"x-amz-missing-meta" type:"integer"`
+ // The Legal Hold status for the specified object.
+ ObjectLockLegalHoldStatus *string `location:"header" locationName:"x-amz-object-lock-legal-hold" type:"string" enum:"ObjectLockLegalHoldStatus"`
+
+ // The Object Lock mode currently in place for this object.
+ ObjectLockMode *string `location:"header" locationName:"x-amz-object-lock-mode" type:"string" enum:"ObjectLockMode"`
+
+ // The date and time when this object's Object Lock will expire.
+ ObjectLockRetainUntilDate *time.Time `location:"header" locationName:"x-amz-object-lock-retain-until-date" type:"timestamp" timestampFormat:"iso8601"`
+
// The count of parts this object has.
PartsCount *int64 `location:"header" locationName:"x-amz-mp-parts-count" type:"integer"`
@@ -12755,7 +14359,7 @@ type HeadObjectOutput struct {
// If present, specifies the ID of the AWS Key Management Service (KMS) master
// encryption key that was used for the object.
- SSEKMSKeyId *string `location:"header" locationName:"x-amz-server-side-encryption-aws-kms-key-id" type:"string"`
+ SSEKMSKeyId *string `location:"header" locationName:"x-amz-server-side-encryption-aws-kms-key-id" type:"string" sensitive:"true"`
// The Server-side encryption algorithm used when storing this object in S3
// (e.g., AES256, aws:kms).
@@ -12866,6 +14470,24 @@ func (s *HeadObjectOutput) SetMissingMeta(v int64) *HeadObjectOutput {
return s
}
+// SetObjectLockLegalHoldStatus sets the ObjectLockLegalHoldStatus field's value.
+func (s *HeadObjectOutput) SetObjectLockLegalHoldStatus(v string) *HeadObjectOutput {
+ s.ObjectLockLegalHoldStatus = &v
+ return s
+}
+
+// SetObjectLockMode sets the ObjectLockMode field's value.
+func (s *HeadObjectOutput) SetObjectLockMode(v string) *HeadObjectOutput {
+ s.ObjectLockMode = &v
+ return s
+}
+
+// SetObjectLockRetainUntilDate sets the ObjectLockRetainUntilDate field's value.
+func (s *HeadObjectOutput) SetObjectLockRetainUntilDate(v time.Time) *HeadObjectOutput {
+ s.ObjectLockRetainUntilDate = &v
+ return s
+}
+
// SetPartsCount sets the PartsCount field's value.
func (s *HeadObjectOutput) SetPartsCount(v int64) *HeadObjectOutput {
s.PartsCount = &v
@@ -13013,12 +14635,15 @@ type InputSerialization struct {
// Describes the serialization of a CSV-encoded object.
CSV *CSVInput `type:"structure"`
- // Specifies object's compression format. Valid values: NONE, GZIP. Default
+ // Specifies object's compression format. Valid values: NONE, GZIP, BZIP2. Default
// Value: NONE.
CompressionType *string `type:"string" enum:"CompressionType"`
// Specifies JSON as object's input serialization format.
JSON *JSONInput `type:"structure"`
+
+ // Specifies Parquet as object's input serialization format.
+ Parquet *ParquetInput `type:"structure"`
}
// String returns the string representation
@@ -13049,6 +14674,12 @@ func (s *InputSerialization) SetJSON(v *JSONInput) *InputSerialization {
return s
}
+// SetParquet sets the Parquet field's value.
+func (s *InputSerialization) SetParquet(v *ParquetInput) *InputSerialization {
+ s.Parquet = v
+ return s
+}
+
type InventoryConfiguration struct {
_ struct{} `type:"structure"`
@@ -13226,10 +14857,10 @@ func (s *InventoryDestination) SetS3BucketDestination(v *InventoryS3BucketDestin
type InventoryEncryption struct {
_ struct{} `type:"structure"`
- // Specifies the use of SSE-KMS to encrypt delievered Inventory reports.
+ // Specifies the use of SSE-KMS to encrypt delivered Inventory reports.
SSEKMS *SSEKMS `locationName:"SSE-KMS" type:"structure"`
- // Specifies the use of SSE-S3 to encrypt delievered Inventory reports.
+ // Specifies the use of SSE-S3 to encrypt delivered Inventory reports.
SSES3 *SSES3 `locationName:"SSE-S3" type:"structure"`
}
@@ -13485,12 +15116,12 @@ func (s *JSONOutput) SetRecordDelimiter(v string) *JSONOutput {
return s
}
-// Container for object key name prefix and suffix filtering rules.
+// A container for object key name prefix and suffix filtering rules.
type KeyFilter struct {
_ struct{} `type:"structure"`
- // A list of containers for key value pair that defines the criteria for the
- // filter rule.
+ // A list of containers for the key value pair that defines the criteria for
+ // the filter rule.
FilterRules []*FilterRule `locationName:"FilterRule" type:"list" flattened:"true"`
}
@@ -13510,23 +15141,24 @@ func (s *KeyFilter) SetFilterRules(v []*FilterRule) *KeyFilter {
return s
}
-// Container for specifying the AWS Lambda notification configuration.
+// A container for specifying the configuration for AWS Lambda notifications.
type LambdaFunctionConfiguration struct {
_ struct{} `type:"structure"`
// Events is a required field
Events []*string `locationName:"Event" type:"list" flattened:"true" required:"true"`
- // Container for object key name filtering rules. For information about key
- // name filtering, go to Configuring Event Notifications (http://docs.aws.amazon.com/AmazonS3/latest/dev/NotificationHowTo.html)
+ // A container for object key name filtering rules. For information about key
+ // name filtering, see Configuring Event Notifications (http://docs.aws.amazon.com/AmazonS3/latest/dev/NotificationHowTo.html)
+ // in the Amazon Simple Storage Service Developer Guide.
Filter *NotificationConfigurationFilter `type:"structure"`
- // Optional unique identifier for configurations in a notification configuration.
+ // An optional unique identifier for configurations in a notification configuration.
// If you don't provide one, Amazon S3 will assign an ID.
Id *string `type:"string"`
- // Lambda cloud function ARN that Amazon S3 can invoke when it detects events
- // of the specified type.
+ // The Amazon Resource Name (ARN) of the Lambda cloud function that Amazon S3
+ // can invoke when it detects events of the specified type.
//
// LambdaFunctionArn is a required field
LambdaFunctionArn *string `locationName:"CloudFunction" type:"string" required:"true"`
@@ -13701,6 +15333,8 @@ type LifecycleRule struct {
// Prefix identifying one or more objects to which the rule applies. This is
// deprecated; use Filter instead.
+ //
+ // Deprecated: Prefix has been deprecated
Prefix *string `deprecated:"true" type:"string"`
// If 'Enabled', the rule is currently being applied. If 'Disabled', the rule
@@ -13943,6 +15577,9 @@ func (s *ListBucketAnalyticsConfigurationsInput) Validate() error {
if s.Bucket == nil {
invalidParams.Add(request.NewErrParamRequired("Bucket"))
}
+ if s.Bucket != nil && len(*s.Bucket) < 1 {
+ invalidParams.Add(request.NewErrParamMinLen("Bucket", 1))
+ }
if invalidParams.Len() > 0 {
return invalidParams
@@ -14054,6 +15691,9 @@ func (s *ListBucketInventoryConfigurationsInput) Validate() error {
if s.Bucket == nil {
invalidParams.Add(request.NewErrParamRequired("Bucket"))
}
+ if s.Bucket != nil && len(*s.Bucket) < 1 {
+ invalidParams.Add(request.NewErrParamMinLen("Bucket", 1))
+ }
if invalidParams.Len() > 0 {
return invalidParams
@@ -14165,6 +15805,9 @@ func (s *ListBucketMetricsConfigurationsInput) Validate() error {
if s.Bucket == nil {
invalidParams.Add(request.NewErrParamRequired("Bucket"))
}
+ if s.Bucket != nil && len(*s.Bucket) < 1 {
+ invalidParams.Add(request.NewErrParamMinLen("Bucket", 1))
+ }
if invalidParams.Len() > 0 {
return invalidParams
@@ -14343,6 +15986,9 @@ func (s *ListMultipartUploadsInput) Validate() error {
if s.Bucket == nil {
invalidParams.Add(request.NewErrParamRequired("Bucket"))
}
+ if s.Bucket != nil && len(*s.Bucket) < 1 {
+ invalidParams.Add(request.NewErrParamMinLen("Bucket", 1))
+ }
if invalidParams.Len() > 0 {
return invalidParams
@@ -14579,6 +16225,9 @@ func (s *ListObjectVersionsInput) Validate() error {
if s.Bucket == nil {
invalidParams.Add(request.NewErrParamRequired("Bucket"))
}
+ if s.Bucket != nil && len(*s.Bucket) < 1 {
+ invalidParams.Add(request.NewErrParamMinLen("Bucket", 1))
+ }
if invalidParams.Len() > 0 {
return invalidParams
@@ -14811,6 +16460,9 @@ func (s *ListObjectsInput) Validate() error {
if s.Bucket == nil {
invalidParams.Add(request.NewErrParamRequired("Bucket"))
}
+ if s.Bucket != nil && len(*s.Bucket) < 1 {
+ invalidParams.Add(request.NewErrParamMinLen("Bucket", 1))
+ }
if invalidParams.Len() > 0 {
return invalidParams
@@ -15028,6 +16680,9 @@ func (s *ListObjectsV2Input) Validate() error {
if s.Bucket == nil {
invalidParams.Add(request.NewErrParamRequired("Bucket"))
}
+ if s.Bucket != nil && len(*s.Bucket) < 1 {
+ invalidParams.Add(request.NewErrParamMinLen("Bucket", 1))
+ }
if invalidParams.Len() > 0 {
return invalidParams
@@ -15273,6 +16928,9 @@ func (s *ListPartsInput) Validate() error {
if s.Bucket == nil {
invalidParams.Add(request.NewErrParamRequired("Bucket"))
}
+ if s.Bucket != nil && len(*s.Bucket) < 1 {
+ invalidParams.Add(request.NewErrParamMinLen("Bucket", 1))
+ }
if s.Key == nil {
invalidParams.Add(request.NewErrParamRequired("Key"))
}
@@ -15336,7 +16994,7 @@ type ListPartsOutput struct {
_ struct{} `type:"structure"`
// Date when multipart upload will become eligible for abort operation by lifecycle.
- AbortDate *time.Time `location:"header" locationName:"x-amz-abort-date" type:"timestamp" timestampFormat:"rfc822"`
+ AbortDate *time.Time `location:"header" locationName:"x-amz-abort-date" type:"timestamp"`
// Id of the lifecycle rule that makes a multipart upload eligible for abort
// operation.
@@ -15892,7 +17550,7 @@ type MultipartUpload struct {
_ struct{} `type:"structure"`
// Date and time at which the multipart upload was initiated.
- Initiated *time.Time `type:"timestamp" timestampFormat:"iso8601"`
+ Initiated *time.Time `type:"timestamp"`
// Identifies who initiated the multipart upload.
Initiator *Initiator `type:"structure"`
@@ -15966,7 +17624,8 @@ type NoncurrentVersionExpiration struct {
// Specifies the number of days an object is noncurrent before Amazon S3 can
// perform the associated action. For information about the noncurrent days
// calculations, see How Amazon S3 Calculates When an Object Became Noncurrent
- // (http://docs.aws.amazon.com/AmazonS3/latest/dev/s3-access-control.html)
+ // (http://docs.aws.amazon.com/AmazonS3/latest/dev/s3-access-control.html) in
+ // the Amazon Simple Storage Service Developer Guide.
NoncurrentDays *int64 `type:"integer"`
}
@@ -15987,18 +17646,19 @@ func (s *NoncurrentVersionExpiration) SetNoncurrentDays(v int64) *NoncurrentVers
}
// Container for the transition rule that describes when noncurrent objects
-// transition to the STANDARD_IA, ONEZONE_IA or GLACIER storage class. If your
-// bucket is versioning-enabled (or versioning is suspended), you can set this
-// action to request that Amazon S3 transition noncurrent object versions to
-// the STANDARD_IA, ONEZONE_IA or GLACIER storage class at a specific period
-// in the object's lifetime.
+// transition to the STANDARD_IA, ONEZONE_IA, INTELLIGENT_TIERING or GLACIER
+// storage class. If your bucket is versioning-enabled (or versioning is suspended),
+// you can set this action to request that Amazon S3 transition noncurrent object
+// versions to the STANDARD_IA, ONEZONE_IA, INTELLIGENT_TIERING or GLACIER storage
+// class at a specific period in the object's lifetime.
type NoncurrentVersionTransition struct {
_ struct{} `type:"structure"`
// Specifies the number of days an object is noncurrent before Amazon S3 can
// perform the associated action. For information about the noncurrent days
// calculations, see How Amazon S3 Calculates When an Object Became Noncurrent
- // (http://docs.aws.amazon.com/AmazonS3/latest/dev/s3-access-control.html)
+ // (http://docs.aws.amazon.com/AmazonS3/latest/dev/s3-access-control.html) in
+ // the Amazon Simple Storage Service Developer Guide.
NoncurrentDays *int64 `type:"integer"`
// The class of storage used to store the object.
@@ -16027,8 +17687,8 @@ func (s *NoncurrentVersionTransition) SetStorageClass(v string) *NoncurrentVersi
return s
}
-// Container for specifying the notification configuration of the bucket. If
-// this element is empty, notifications are turned off on the bucket.
+// A container for specifying the notification configuration of the bucket.
+// If this element is empty, notifications are turned off for the bucket.
type NotificationConfiguration struct {
_ struct{} `type:"structure"`
@@ -16145,12 +17805,13 @@ func (s *NotificationConfigurationDeprecated) SetTopicConfiguration(v *TopicConf
return s
}
-// Container for object key name filtering rules. For information about key
-// name filtering, go to Configuring Event Notifications (http://docs.aws.amazon.com/AmazonS3/latest/dev/NotificationHowTo.html)
+// A container for object key name filtering rules. For information about key
+// name filtering, see Configuring Event Notifications (http://docs.aws.amazon.com/AmazonS3/latest/dev/NotificationHowTo.html)
+// in the Amazon Simple Storage Service Developer Guide.
type NotificationConfigurationFilter struct {
_ struct{} `type:"structure"`
- // Container for object key name prefix and suffix filtering rules.
+ // A container for object key name prefix and suffix filtering rules.
Key *KeyFilter `locationName:"S3Key" type:"structure"`
}
@@ -16177,7 +17838,7 @@ type Object struct {
Key *string `min:"1" type:"string"`
- LastModified *time.Time `type:"timestamp" timestampFormat:"iso8601"`
+ LastModified *time.Time `type:"timestamp"`
Owner *Owner `type:"structure"`
@@ -16283,6 +17944,121 @@ func (s *ObjectIdentifier) SetVersionId(v string) *ObjectIdentifier {
return s
}
+// The container element for Object Lock configuration parameters.
+type ObjectLockConfiguration struct {
+ _ struct{} `type:"structure"`
+
+ // Indicates whether this bucket has an Object Lock configuration enabled.
+ ObjectLockEnabled *string `type:"string" enum:"ObjectLockEnabled"`
+
+ // The Object Lock rule in place for the specified object.
+ Rule *ObjectLockRule `type:"structure"`
+}
+
+// String returns the string representation
+func (s ObjectLockConfiguration) String() string {
+ return awsutil.Prettify(s)
+}
+
+// GoString returns the string representation
+func (s ObjectLockConfiguration) GoString() string {
+ return s.String()
+}
+
+// SetObjectLockEnabled sets the ObjectLockEnabled field's value.
+func (s *ObjectLockConfiguration) SetObjectLockEnabled(v string) *ObjectLockConfiguration {
+ s.ObjectLockEnabled = &v
+ return s
+}
+
+// SetRule sets the Rule field's value.
+func (s *ObjectLockConfiguration) SetRule(v *ObjectLockRule) *ObjectLockConfiguration {
+ s.Rule = v
+ return s
+}
+
+// A Legal Hold configuration for an object.
+type ObjectLockLegalHold struct {
+ _ struct{} `type:"structure"`
+
+ // Indicates whether the specified object has a Legal Hold in place.
+ Status *string `type:"string" enum:"ObjectLockLegalHoldStatus"`
+}
+
+// String returns the string representation
+func (s ObjectLockLegalHold) String() string {
+ return awsutil.Prettify(s)
+}
+
+// GoString returns the string representation
+func (s ObjectLockLegalHold) GoString() string {
+ return s.String()
+}
+
+// SetStatus sets the Status field's value.
+func (s *ObjectLockLegalHold) SetStatus(v string) *ObjectLockLegalHold {
+ s.Status = &v
+ return s
+}
+
+// A Retention configuration for an object.
+type ObjectLockRetention struct {
+ _ struct{} `type:"structure"`
+
+ // Indicates the Retention mode for the specified object.
+ Mode *string `type:"string" enum:"ObjectLockRetentionMode"`
+
+ // The date on which this Object Lock Retention will expire.
+ RetainUntilDate *time.Time `type:"timestamp" timestampFormat:"iso8601"`
+}
+
+// String returns the string representation
+func (s ObjectLockRetention) String() string {
+ return awsutil.Prettify(s)
+}
+
+// GoString returns the string representation
+func (s ObjectLockRetention) GoString() string {
+ return s.String()
+}
+
+// SetMode sets the Mode field's value.
+func (s *ObjectLockRetention) SetMode(v string) *ObjectLockRetention {
+ s.Mode = &v
+ return s
+}
+
+// SetRetainUntilDate sets the RetainUntilDate field's value.
+func (s *ObjectLockRetention) SetRetainUntilDate(v time.Time) *ObjectLockRetention {
+ s.RetainUntilDate = &v
+ return s
+}
+
+// The container element for an Object Lock rule.
+type ObjectLockRule struct {
+ _ struct{} `type:"structure"`
+
+ // The default retention period that you want to apply to new objects placed
+ // in the specified bucket.
+ DefaultRetention *DefaultRetention `type:"structure"`
+}
+
+// String returns the string representation
+func (s ObjectLockRule) String() string {
+ return awsutil.Prettify(s)
+}
+
+// GoString returns the string representation
+func (s ObjectLockRule) GoString() string {
+ return s.String()
+}
+
+// SetDefaultRetention sets the DefaultRetention field's value.
+func (s *ObjectLockRule) SetDefaultRetention(v *DefaultRetention) *ObjectLockRule {
+ s.DefaultRetention = v
+ return s
+}
+
type ObjectVersion struct {
_ struct{} `type:"structure"`
@@ -16296,7 +18072,7 @@ type ObjectVersion struct {
Key *string `min:"1" type:"string"`
// Date and time the object was last modified.
- LastModified *time.Time `type:"timestamp" timestampFormat:"iso8601"`
+ LastModified *time.Time `type:"timestamp"`
Owner *Owner `type:"structure"`
@@ -16470,6 +18246,20 @@ func (s *Owner) SetID(v string) *Owner {
return s
}
+type ParquetInput struct {
+ _ struct{} `type:"structure"`
+}
+
+// String returns the string representation
+func (s ParquetInput) String() string {
+ return awsutil.Prettify(s)
+}
+
+// GoString returns the string representation
+func (s ParquetInput) GoString() string {
+ return s.String()
+}
+
type Part struct {
_ struct{} `type:"structure"`
@@ -16477,13 +18267,13 @@ type Part struct {
ETag *string `type:"string"`
// Date and time at which the part was uploaded.
- LastModified *time.Time `type:"timestamp" timestampFormat:"iso8601"`
+ LastModified *time.Time `type:"timestamp"`
// Part number identifying the part. This is a positive integer between 1 and
// 10,000.
PartNumber *int64 `type:"integer"`
- // Size of the uploaded part data.
+ // Size in bytes of the uploaded part data.
Size *int64 `type:"integer"`
}
@@ -16521,16 +18311,41 @@ func (s *Part) SetSize(v int64) *Part {
return s
}
+// The container element for a bucket's policy status.
+type PolicyStatus struct {
+ _ struct{} `type:"structure"`
+
+ // The policy status for this bucket. TRUE indicates that this bucket is public.
+ // FALSE indicates that the bucket is not public.
+ IsPublic *bool `locationName:"IsPublic" type:"boolean"`
+}
+
+// String returns the string representation
+func (s PolicyStatus) String() string {
+ return awsutil.Prettify(s)
+}
+
+// GoString returns the string representation
+func (s PolicyStatus) GoString() string {
+ return s.String()
+}
+
+// SetIsPublic sets the IsPublic field's value.
+func (s *PolicyStatus) SetIsPublic(v bool) *PolicyStatus {
+ s.IsPublic = &v
+ return s
+}
+
type Progress struct {
_ struct{} `type:"structure"`
- // Current number of uncompressed object bytes processed.
+ // The current number of uncompressed object bytes processed.
BytesProcessed *int64 `type:"long"`
- // Current number of bytes of records payload data returned.
+ // The current number of bytes of records payload data returned.
BytesReturned *int64 `type:"long"`
- // Current number of object bytes scanned.
+ // The current number of object bytes scanned.
BytesScanned *int64 `type:"long"`
}
@@ -16563,7 +18378,7 @@ func (s *Progress) SetBytesScanned(v int64) *Progress {
}
type ProgressEvent struct {
- _ struct{} `type:"structure" payload:"Details"`
+ _ struct{} `locationName:"ProgressEvent" type:"structure" payload:"Details"`
// The Progress event details.
Details *Progress `locationName:"Details" type:"structure"`
@@ -16597,11 +18412,86 @@ func (s *ProgressEvent) UnmarshalEvent(
if err := payloadUnmarshaler.UnmarshalPayload(
bytes.NewReader(msg.Payload), s,
); err != nil {
- return fmt.Errorf("failed to unmarshal payload, %v", err)
+ return err
}
return nil
}
+type PublicAccessBlockConfiguration struct {
+ _ struct{} `type:"structure"`
+
+ // Specifies whether Amazon S3 should block public access control lists (ACLs)
+ // for this bucket and objects in this bucket. Setting this element to TRUE
+ // causes the following behavior:
+ //
+ // * PUT Bucket acl and PUT Object acl calls fail if the specified ACL is
+ // public.
+ //
+ // * PUT Object calls fail if the request includes a public ACL.
+ //
+ // Enabling this setting doesn't affect existing policies or ACLs.
+ BlockPublicAcls *bool `locationName:"BlockPublicAcls" type:"boolean"`
+
+ // Specifies whether Amazon S3 should block public bucket policies for this
+ // bucket. Setting this element to TRUE causes Amazon S3 to reject calls to
+ // PUT Bucket policy if the specified bucket policy allows public access.
+ //
+ // Enabling this setting doesn't affect existing bucket policies.
+ BlockPublicPolicy *bool `locationName:"BlockPublicPolicy" type:"boolean"`
+
+ // Specifies whether Amazon S3 should ignore public ACLs for this bucket and
+ // objects in this bucket. Setting this element to TRUE causes Amazon S3 to
+ // ignore all public ACLs on this bucket and objects in this bucket.
+ //
+ // Enabling this setting doesn't affect the persistence of any existing ACLs
+ // and doesn't prevent new public ACLs from being set.
+ IgnorePublicAcls *bool `locationName:"IgnorePublicAcls" type:"boolean"`
+
+ // Specifies whether Amazon S3 should restrict public bucket policies for this
+ // bucket. Setting this element to TRUE restricts access to this bucket to only
+ // AWS services and authorized users within this account if the bucket has a
+ // public policy.
+ //
+ // Enabling this setting doesn't affect previously stored bucket policies, except
+ // that public and cross-account access within any public bucket policy, including
+ // non-public delegation to specific accounts, is blocked.
+ RestrictPublicBuckets *bool `locationName:"RestrictPublicBuckets" type:"boolean"`
+}
+
+// String returns the string representation
+func (s PublicAccessBlockConfiguration) String() string {
+ return awsutil.Prettify(s)
+}
+
+// GoString returns the string representation
+func (s PublicAccessBlockConfiguration) GoString() string {
+ return s.String()
+}
+
+// SetBlockPublicAcls sets the BlockPublicAcls field's value.
+func (s *PublicAccessBlockConfiguration) SetBlockPublicAcls(v bool) *PublicAccessBlockConfiguration {
+ s.BlockPublicAcls = &v
+ return s
+}
+
+// SetBlockPublicPolicy sets the BlockPublicPolicy field's value.
+func (s *PublicAccessBlockConfiguration) SetBlockPublicPolicy(v bool) *PublicAccessBlockConfiguration {
+ s.BlockPublicPolicy = &v
+ return s
+}
+
+// SetIgnorePublicAcls sets the IgnorePublicAcls field's value.
+func (s *PublicAccessBlockConfiguration) SetIgnorePublicAcls(v bool) *PublicAccessBlockConfiguration {
+ s.IgnorePublicAcls = &v
+ return s
+}
+
+// SetRestrictPublicBuckets sets the RestrictPublicBuckets field's value.
+func (s *PublicAccessBlockConfiguration) SetRestrictPublicBuckets(v bool) *PublicAccessBlockConfiguration {
+ s.RestrictPublicBuckets = &v
+ return s
+}
+
type PutBucketAccelerateConfigurationInput struct {
_ struct{} `type:"structure" payload:"AccelerateConfiguration"`
@@ -16635,6 +18525,9 @@ func (s *PutBucketAccelerateConfigurationInput) Validate() error {
if s.Bucket == nil {
invalidParams.Add(request.NewErrParamRequired("Bucket"))
}
+ if s.Bucket != nil && len(*s.Bucket) < 1 {
+ invalidParams.Add(request.NewErrParamMinLen("Bucket", 1))
+ }
if invalidParams.Len() > 0 {
return invalidParams
@@ -16719,6 +18612,9 @@ func (s *PutBucketAclInput) Validate() error {
if s.Bucket == nil {
invalidParams.Add(request.NewErrParamRequired("Bucket"))
}
+ if s.Bucket != nil && len(*s.Bucket) < 1 {
+ invalidParams.Add(request.NewErrParamMinLen("Bucket", 1))
+ }
if s.AccessControlPolicy != nil {
if err := s.AccessControlPolicy.Validate(); err != nil {
invalidParams.AddNested("AccessControlPolicy", err.(request.ErrInvalidParams))
@@ -16838,6 +18734,9 @@ func (s *PutBucketAnalyticsConfigurationInput) Validate() error {
if s.Bucket == nil {
invalidParams.Add(request.NewErrParamRequired("Bucket"))
}
+ if s.Bucket != nil && len(*s.Bucket) < 1 {
+ invalidParams.Add(request.NewErrParamMinLen("Bucket", 1))
+ }
if s.Id == nil {
invalidParams.Add(request.NewErrParamRequired("Id"))
}
@@ -16918,6 +18817,9 @@ func (s *PutBucketCorsInput) Validate() error {
if s.Bucket == nil {
invalidParams.Add(request.NewErrParamRequired("Bucket"))
}
+ if s.Bucket != nil && len(*s.Bucket) < 1 {
+ invalidParams.Add(request.NewErrParamMinLen("Bucket", 1))
+ }
if s.CORSConfiguration == nil {
invalidParams.Add(request.NewErrParamRequired("CORSConfiguration"))
}
@@ -16998,6 +18900,9 @@ func (s *PutBucketEncryptionInput) Validate() error {
if s.Bucket == nil {
invalidParams.Add(request.NewErrParamRequired("Bucket"))
}
+ if s.Bucket != nil && len(*s.Bucket) < 1 {
+ invalidParams.Add(request.NewErrParamMinLen("Bucket", 1))
+ }
if s.ServerSideEncryptionConfiguration == nil {
invalidParams.Add(request.NewErrParamRequired("ServerSideEncryptionConfiguration"))
}
@@ -17081,6 +18986,9 @@ func (s *PutBucketInventoryConfigurationInput) Validate() error {
if s.Bucket == nil {
invalidParams.Add(request.NewErrParamRequired("Bucket"))
}
+ if s.Bucket != nil && len(*s.Bucket) < 1 {
+ invalidParams.Add(request.NewErrParamMinLen("Bucket", 1))
+ }
if s.Id == nil {
invalidParams.Add(request.NewErrParamRequired("Id"))
}
@@ -17163,6 +19071,9 @@ func (s *PutBucketLifecycleConfigurationInput) Validate() error {
if s.Bucket == nil {
invalidParams.Add(request.NewErrParamRequired("Bucket"))
}
+ if s.Bucket != nil && len(*s.Bucket) < 1 {
+ invalidParams.Add(request.NewErrParamMinLen("Bucket", 1))
+ }
if s.LifecycleConfiguration != nil {
if err := s.LifecycleConfiguration.Validate(); err != nil {
invalidParams.AddNested("LifecycleConfiguration", err.(request.ErrInvalidParams))
@@ -17233,6 +19144,9 @@ func (s *PutBucketLifecycleInput) Validate() error {
if s.Bucket == nil {
invalidParams.Add(request.NewErrParamRequired("Bucket"))
}
+ if s.Bucket != nil && len(*s.Bucket) < 1 {
+ invalidParams.Add(request.NewErrParamMinLen("Bucket", 1))
+ }
if s.LifecycleConfiguration != nil {
if err := s.LifecycleConfiguration.Validate(); err != nil {
invalidParams.AddNested("LifecycleConfiguration", err.(request.ErrInvalidParams))
@@ -17304,6 +19218,9 @@ func (s *PutBucketLoggingInput) Validate() error {
if s.Bucket == nil {
invalidParams.Add(request.NewErrParamRequired("Bucket"))
}
+ if s.Bucket != nil && len(*s.Bucket) < 1 {
+ invalidParams.Add(request.NewErrParamMinLen("Bucket", 1))
+ }
if s.BucketLoggingStatus == nil {
invalidParams.Add(request.NewErrParamRequired("BucketLoggingStatus"))
}
@@ -17387,6 +19304,9 @@ func (s *PutBucketMetricsConfigurationInput) Validate() error {
if s.Bucket == nil {
invalidParams.Add(request.NewErrParamRequired("Bucket"))
}
+ if s.Bucket != nil && len(*s.Bucket) < 1 {
+ invalidParams.Add(request.NewErrParamMinLen("Bucket", 1))
+ }
if s.Id == nil {
invalidParams.Add(request.NewErrParamRequired("Id"))
}
@@ -17450,8 +19370,8 @@ type PutBucketNotificationConfigurationInput struct {
// Bucket is a required field
Bucket *string `location:"uri" locationName:"Bucket" type:"string" required:"true"`
- // Container for specifying the notification configuration of the bucket. If
- // this element is empty, notifications are turned off on the bucket.
+ // A container for specifying the notification configuration of the bucket.
+ // If this element is empty, notifications are turned off for the bucket.
//
// NotificationConfiguration is a required field
NotificationConfiguration *NotificationConfiguration `locationName:"NotificationConfiguration" type:"structure" required:"true" xmlURI:"http://s3.amazonaws.com/doc/2006-03-01/"`
@@ -17473,6 +19393,9 @@ func (s *PutBucketNotificationConfigurationInput) Validate() error {
if s.Bucket == nil {
invalidParams.Add(request.NewErrParamRequired("Bucket"))
}
+ if s.Bucket != nil && len(*s.Bucket) < 1 {
+ invalidParams.Add(request.NewErrParamMinLen("Bucket", 1))
+ }
if s.NotificationConfiguration == nil {
invalidParams.Add(request.NewErrParamRequired("NotificationConfiguration"))
}
@@ -17547,6 +19470,9 @@ func (s *PutBucketNotificationInput) Validate() error {
if s.Bucket == nil {
invalidParams.Add(request.NewErrParamRequired("Bucket"))
}
+ if s.Bucket != nil && len(*s.Bucket) < 1 {
+ invalidParams.Add(request.NewErrParamMinLen("Bucket", 1))
+ }
if s.NotificationConfiguration == nil {
invalidParams.Add(request.NewErrParamRequired("NotificationConfiguration"))
}
@@ -17622,6 +19548,9 @@ func (s *PutBucketPolicyInput) Validate() error {
if s.Bucket == nil {
invalidParams.Add(request.NewErrParamRequired("Bucket"))
}
+ if s.Bucket != nil && len(*s.Bucket) < 1 {
+ invalidParams.Add(request.NewErrParamMinLen("Bucket", 1))
+ }
if s.Policy == nil {
invalidParams.Add(request.NewErrParamRequired("Policy"))
}
@@ -17677,8 +19606,8 @@ type PutBucketReplicationInput struct {
// Bucket is a required field
Bucket *string `location:"uri" locationName:"Bucket" type:"string" required:"true"`
- // Container for replication rules. You can add as many as 1,000 rules. Total
- // replication configuration size can be up to 2 MB.
+ // A container for replication rules. You can add up to 1,000 rules. The maximum
+ // size of a replication configuration is 2 MB.
//
// ReplicationConfiguration is a required field
ReplicationConfiguration *ReplicationConfiguration `locationName:"ReplicationConfiguration" type:"structure" required:"true" xmlURI:"http://s3.amazonaws.com/doc/2006-03-01/"`
@@ -17700,6 +19629,9 @@ func (s *PutBucketReplicationInput) Validate() error {
if s.Bucket == nil {
invalidParams.Add(request.NewErrParamRequired("Bucket"))
}
+ if s.Bucket != nil && len(*s.Bucket) < 1 {
+ invalidParams.Add(request.NewErrParamMinLen("Bucket", 1))
+ }
if s.ReplicationConfiguration == nil {
invalidParams.Add(request.NewErrParamRequired("ReplicationConfiguration"))
}
@@ -17774,6 +19706,9 @@ func (s *PutBucketRequestPaymentInput) Validate() error {
if s.Bucket == nil {
invalidParams.Add(request.NewErrParamRequired("Bucket"))
}
+ if s.Bucket != nil && len(*s.Bucket) < 1 {
+ invalidParams.Add(request.NewErrParamMinLen("Bucket", 1))
+ }
if s.RequestPaymentConfiguration == nil {
invalidParams.Add(request.NewErrParamRequired("RequestPaymentConfiguration"))
}
@@ -17848,6 +19783,9 @@ func (s *PutBucketTaggingInput) Validate() error {
if s.Bucket == nil {
invalidParams.Add(request.NewErrParamRequired("Bucket"))
}
+ if s.Bucket != nil && len(*s.Bucket) < 1 {
+ invalidParams.Add(request.NewErrParamMinLen("Bucket", 1))
+ }
if s.Tagging == nil {
invalidParams.Add(request.NewErrParamRequired("Tagging"))
}
@@ -17926,6 +19864,9 @@ func (s *PutBucketVersioningInput) Validate() error {
if s.Bucket == nil {
invalidParams.Add(request.NewErrParamRequired("Bucket"))
}
+ if s.Bucket != nil && len(*s.Bucket) < 1 {
+ invalidParams.Add(request.NewErrParamMinLen("Bucket", 1))
+ }
if s.VersioningConfiguration == nil {
invalidParams.Add(request.NewErrParamRequired("VersioningConfiguration"))
}
@@ -18001,6 +19942,9 @@ func (s *PutBucketWebsiteInput) Validate() error {
if s.Bucket == nil {
invalidParams.Add(request.NewErrParamRequired("Bucket"))
}
+ if s.Bucket != nil && len(*s.Bucket) < 1 {
+ invalidParams.Add(request.NewErrParamMinLen("Bucket", 1))
+ }
if s.WebsiteConfiguration == nil {
invalidParams.Add(request.NewErrParamRequired("WebsiteConfiguration"))
}
@@ -18105,6 +20049,9 @@ func (s *PutObjectAclInput) Validate() error {
if s.Bucket == nil {
invalidParams.Add(request.NewErrParamRequired("Bucket"))
}
+ if s.Bucket != nil && len(*s.Bucket) < 1 {
+ invalidParams.Add(request.NewErrParamMinLen("Bucket", 1))
+ }
if s.Key == nil {
invalidParams.Add(request.NewErrParamRequired("Key"))
}
@@ -18259,7 +20206,7 @@ type PutObjectInput struct {
ContentType *string `location:"header" locationName:"Content-Type" type:"string"`
// The date and time at which the object is no longer cacheable.
- Expires *time.Time `location:"header" locationName:"Expires" type:"timestamp" timestampFormat:"rfc822"`
+ Expires *time.Time `location:"header" locationName:"Expires" type:"timestamp"`
// Gives the grantee READ, READ_ACP, and WRITE_ACP permissions on the object.
GrantFullControl *string `location:"header" locationName:"x-amz-grant-full-control" type:"string"`
@@ -18281,6 +20228,15 @@ type PutObjectInput struct {
// A map of metadata to store with the object in S3.
Metadata map[string]*string `location:"headers" locationName:"x-amz-meta-" type:"map"`
+ // The Legal Hold status that you want to apply to the specified object.
+ ObjectLockLegalHoldStatus *string `location:"header" locationName:"x-amz-object-lock-legal-hold" type:"string" enum:"ObjectLockLegalHoldStatus"`
+
+ // The Object Lock mode that you want to apply to this object.
+ ObjectLockMode *string `location:"header" locationName:"x-amz-object-lock-mode" type:"string" enum:"ObjectLockMode"`
+
+ // The date and time when you want this object's Object Lock to expire.
+ ObjectLockRetainUntilDate *time.Time `location:"header" locationName:"x-amz-object-lock-retain-until-date" type:"timestamp" timestampFormat:"iso8601"`
+
// Confirms that the requester knows that she or he will be charged for the
// request. Bucket owners need not specify this parameter in their requests.
// Documentation on downloading objects from requester pays buckets can be found
@@ -18295,7 +20251,7 @@ type PutObjectInput struct {
// does not store the encryption key. The key must be appropriate for use with
// the algorithm specified in the x-amz-server-side-encryption-customer-algorithm
// header.
- SSECustomerKey *string `location:"header" locationName:"x-amz-server-side-encryption-customer-key" type:"string"`
+ SSECustomerKey *string `location:"header" locationName:"x-amz-server-side-encryption-customer-key" type:"string" sensitive:"true"`
// Specifies the 128-bit MD5 digest of the encryption key according to RFC 1321.
// Amazon S3 uses this header for a message integrity check to ensure the encryption
@@ -18306,7 +20262,7 @@ type PutObjectInput struct {
// requests for an object protected by AWS KMS will fail if not made via SSL
// or using SigV4. Documentation on configuring any of the officially supported
// AWS SDKs and CLI can be found at http://docs.aws.amazon.com/AmazonS3/latest/dev/UsingAWSSDK.html#specify-signature-version
- SSEKMSKeyId *string `location:"header" locationName:"x-amz-server-side-encryption-aws-kms-key-id" type:"string"`
+ SSEKMSKeyId *string `location:"header" locationName:"x-amz-server-side-encryption-aws-kms-key-id" type:"string" sensitive:"true"`
// The Server-side encryption algorithm used when storing this object in S3
// (e.g., AES256, aws:kms).
@@ -18315,7 +20271,8 @@ type PutObjectInput struct {
// The type of storage to use for the object. Defaults to 'STANDARD'.
StorageClass *string `location:"header" locationName:"x-amz-storage-class" type:"string" enum:"StorageClass"`
- // The tag-set for the object. The tag-set must be encoded as URL Query parameters
+ // The tag-set for the object. The tag-set must be encoded as URL Query parameters.
+ // (For example, "Key1=Value1")
Tagging *string `location:"header" locationName:"x-amz-tagging" type:"string"`
// If the bucket is configured as a website, redirects requests for this object
@@ -18340,6 +20297,9 @@ func (s *PutObjectInput) Validate() error {
if s.Bucket == nil {
invalidParams.Add(request.NewErrParamRequired("Bucket"))
}
+ if s.Bucket != nil && len(*s.Bucket) < 1 {
+ invalidParams.Add(request.NewErrParamMinLen("Bucket", 1))
+ }
if s.Key == nil {
invalidParams.Add(request.NewErrParamRequired("Key"))
}
@@ -18462,6 +20422,24 @@ func (s *PutObjectInput) SetMetadata(v map[string]*string) *PutObjectInput {
return s
}
+// SetObjectLockLegalHoldStatus sets the ObjectLockLegalHoldStatus field's value.
+func (s *PutObjectInput) SetObjectLockLegalHoldStatus(v string) *PutObjectInput {
+ s.ObjectLockLegalHoldStatus = &v
+ return s
+}
+
+// SetObjectLockMode sets the ObjectLockMode field's value.
+func (s *PutObjectInput) SetObjectLockMode(v string) *PutObjectInput {
+ s.ObjectLockMode = &v
+ return s
+}
+
+// SetObjectLockRetainUntilDate sets the ObjectLockRetainUntilDate field's value.
+func (s *PutObjectInput) SetObjectLockRetainUntilDate(v time.Time) *PutObjectInput {
+ s.ObjectLockRetainUntilDate = &v
+ return s
+}
+
// SetRequestPayer sets the RequestPayer field's value.
func (s *PutObjectInput) SetRequestPayer(v string) *PutObjectInput {
s.RequestPayer = &v
@@ -18523,6 +20501,227 @@ func (s *PutObjectInput) SetWebsiteRedirectLocation(v string) *PutObjectInput {
return s
}
+type PutObjectLegalHoldInput struct {
+ _ struct{} `type:"structure" payload:"LegalHold"`
+
+ // The bucket containing the object that you want to place a Legal Hold on.
+ //
+ // Bucket is a required field
+ Bucket *string `location:"uri" locationName:"Bucket" type:"string" required:"true"`
+
+ // The key name for the object that you want to place a Legal Hold on.
+ //
+ // Key is a required field
+ Key *string `location:"uri" locationName:"Key" min:"1" type:"string" required:"true"`
+
+ // Container element for the Legal Hold configuration you want to apply to the
+ // specified object.
+ LegalHold *ObjectLockLegalHold `locationName:"LegalHold" type:"structure" xmlURI:"http://s3.amazonaws.com/doc/2006-03-01/"`
+
+ // Confirms that the requester knows that she or he will be charged for the
+ // request. Bucket owners need not specify this parameter in their requests.
+ // Documentation on downloading objects from requester pays buckets can be found
+ // at http://docs.aws.amazon.com/AmazonS3/latest/dev/ObjectsinRequesterPaysBuckets.html
+ RequestPayer *string `location:"header" locationName:"x-amz-request-payer" type:"string" enum:"RequestPayer"`
+
+ // The version ID of the object that you want to place a Legal Hold on.
+ VersionId *string `location:"querystring" locationName:"versionId" type:"string"`
+}
+
+// String returns the string representation
+func (s PutObjectLegalHoldInput) String() string {
+ return awsutil.Prettify(s)
+}
+
+// GoString returns the string representation
+func (s PutObjectLegalHoldInput) GoString() string {
+ return s.String()
+}
+
+// Validate inspects the fields of the type to determine if they are valid.
+func (s *PutObjectLegalHoldInput) Validate() error {
+ invalidParams := request.ErrInvalidParams{Context: "PutObjectLegalHoldInput"}
+ if s.Bucket == nil {
+ invalidParams.Add(request.NewErrParamRequired("Bucket"))
+ }
+ if s.Bucket != nil && len(*s.Bucket) < 1 {
+ invalidParams.Add(request.NewErrParamMinLen("Bucket", 1))
+ }
+ if s.Key == nil {
+ invalidParams.Add(request.NewErrParamRequired("Key"))
+ }
+ if s.Key != nil && len(*s.Key) < 1 {
+ invalidParams.Add(request.NewErrParamMinLen("Key", 1))
+ }
+
+ if invalidParams.Len() > 0 {
+ return invalidParams
+ }
+ return nil
+}
+
+// SetBucket sets the Bucket field's value.
+func (s *PutObjectLegalHoldInput) SetBucket(v string) *PutObjectLegalHoldInput {
+ s.Bucket = &v
+ return s
+}
+
+func (s *PutObjectLegalHoldInput) getBucket() (v string) {
+ if s.Bucket == nil {
+ return v
+ }
+ return *s.Bucket
+}
+
+// SetKey sets the Key field's value.
+func (s *PutObjectLegalHoldInput) SetKey(v string) *PutObjectLegalHoldInput {
+ s.Key = &v
+ return s
+}
+
+// SetLegalHold sets the LegalHold field's value.
+func (s *PutObjectLegalHoldInput) SetLegalHold(v *ObjectLockLegalHold) *PutObjectLegalHoldInput {
+ s.LegalHold = v
+ return s
+}
+
+// SetRequestPayer sets the RequestPayer field's value.
+func (s *PutObjectLegalHoldInput) SetRequestPayer(v string) *PutObjectLegalHoldInput {
+ s.RequestPayer = &v
+ return s
+}
+
+// SetVersionId sets the VersionId field's value.
+func (s *PutObjectLegalHoldInput) SetVersionId(v string) *PutObjectLegalHoldInput {
+ s.VersionId = &v
+ return s
+}
+
+type PutObjectLegalHoldOutput struct {
+ _ struct{} `type:"structure"`
+
+ // If present, indicates that the requester was successfully charged for the
+ // request.
+ RequestCharged *string `location:"header" locationName:"x-amz-request-charged" type:"string" enum:"RequestCharged"`
+}
+
+// String returns the string representation
+func (s PutObjectLegalHoldOutput) String() string {
+ return awsutil.Prettify(s)
+}
+
+// GoString returns the string representation
+func (s PutObjectLegalHoldOutput) GoString() string {
+ return s.String()
+}
+
+// SetRequestCharged sets the RequestCharged field's value.
+func (s *PutObjectLegalHoldOutput) SetRequestCharged(v string) *PutObjectLegalHoldOutput {
+ s.RequestCharged = &v
+ return s
+}
+
+type PutObjectLockConfigurationInput struct {
+ _ struct{} `type:"structure" payload:"ObjectLockConfiguration"`
+
+ // The bucket whose Object Lock configuration you want to create or replace.
+ //
+ // Bucket is a required field
+ Bucket *string `location:"uri" locationName:"Bucket" type:"string" required:"true"`
+
+ // The Object Lock configuration that you want to apply to the specified bucket.
+ ObjectLockConfiguration *ObjectLockConfiguration `locationName:"ObjectLockConfiguration" type:"structure" xmlURI:"http://s3.amazonaws.com/doc/2006-03-01/"`
+
+ // Confirms that the requester knows that she or he will be charged for the
+ // request. Bucket owners need not specify this parameter in their requests.
+ // Documentation on downloading objects from requester pays buckets can be found
+ // at http://docs.aws.amazon.com/AmazonS3/latest/dev/ObjectsinRequesterPaysBuckets.html
+ RequestPayer *string `location:"header" locationName:"x-amz-request-payer" type:"string" enum:"RequestPayer"`
+
+ Token *string `location:"header" locationName:"x-amz-bucket-object-lock-token" type:"string"`
+}
+
+// String returns the string representation
+func (s PutObjectLockConfigurationInput) String() string {
+ return awsutil.Prettify(s)
+}
+
+// GoString returns the string representation
+func (s PutObjectLockConfigurationInput) GoString() string {
+ return s.String()
+}
+
+// Validate inspects the fields of the type to determine if they are valid.
+func (s *PutObjectLockConfigurationInput) Validate() error {
+ invalidParams := request.ErrInvalidParams{Context: "PutObjectLockConfigurationInput"}
+ if s.Bucket == nil {
+ invalidParams.Add(request.NewErrParamRequired("Bucket"))
+ }
+ if s.Bucket != nil && len(*s.Bucket) < 1 {
+ invalidParams.Add(request.NewErrParamMinLen("Bucket", 1))
+ }
+
+ if invalidParams.Len() > 0 {
+ return invalidParams
+ }
+ return nil
+}
+
+// SetBucket sets the Bucket field's value.
+func (s *PutObjectLockConfigurationInput) SetBucket(v string) *PutObjectLockConfigurationInput {
+ s.Bucket = &v
+ return s
+}
+
+func (s *PutObjectLockConfigurationInput) getBucket() (v string) {
+ if s.Bucket == nil {
+ return v
+ }
+ return *s.Bucket
+}
+
+// SetObjectLockConfiguration sets the ObjectLockConfiguration field's value.
+func (s *PutObjectLockConfigurationInput) SetObjectLockConfiguration(v *ObjectLockConfiguration) *PutObjectLockConfigurationInput {
+ s.ObjectLockConfiguration = v
+ return s
+}
+
+// SetRequestPayer sets the RequestPayer field's value.
+func (s *PutObjectLockConfigurationInput) SetRequestPayer(v string) *PutObjectLockConfigurationInput {
+ s.RequestPayer = &v
+ return s
+}
+
+// SetToken sets the Token field's value.
+func (s *PutObjectLockConfigurationInput) SetToken(v string) *PutObjectLockConfigurationInput {
+ s.Token = &v
+ return s
+}
+
+type PutObjectLockConfigurationOutput struct {
+ _ struct{} `type:"structure"`
+
+ // If present, indicates that the requester was successfully charged for the
+ // request.
+ RequestCharged *string `location:"header" locationName:"x-amz-request-charged" type:"string" enum:"RequestCharged"`
+}
+
+// String returns the string representation
+func (s PutObjectLockConfigurationOutput) String() string {
+ return awsutil.Prettify(s)
+}
+
+// GoString returns the string representation
+func (s PutObjectLockConfigurationOutput) GoString() string {
+ return s.String()
+}
+
+// SetRequestCharged sets the RequestCharged field's value.
+func (s *PutObjectLockConfigurationOutput) SetRequestCharged(v string) *PutObjectLockConfigurationOutput {
+ s.RequestCharged = &v
+ return s
+}
+
type PutObjectOutput struct {
_ struct{} `type:"structure"`
@@ -18549,7 +20748,7 @@ type PutObjectOutput struct {
// If present, specifies the ID of the AWS Key Management Service (KMS) master
// encryption key that was used for the object.
- SSEKMSKeyId *string `location:"header" locationName:"x-amz-server-side-encryption-aws-kms-key-id" type:"string"`
+ SSEKMSKeyId *string `location:"header" locationName:"x-amz-server-side-encryption-aws-kms-key-id" type:"string" sensitive:"true"`
// The Server-side encryption algorithm used when storing this object in S3
// (e.g., AES256, aws:kms).
@@ -18617,6 +20816,137 @@ func (s *PutObjectOutput) SetVersionId(v string) *PutObjectOutput {
return s
}
+type PutObjectRetentionInput struct {
+ _ struct{} `type:"structure" payload:"Retention"`
+
+ // The bucket that contains the object you want to apply this Object Retention
+ // configuration to.
+ //
+ // Bucket is a required field
+ Bucket *string `location:"uri" locationName:"Bucket" type:"string" required:"true"`
+
+ // Indicates whether this operation should bypass Governance-mode restrictions.j
+ BypassGovernanceRetention *bool `location:"header" locationName:"x-amz-bypass-governance-retention" type:"boolean"`
+
+ // The key name for the object that you want to apply this Object Retention
+ // configuration to.
+ //
+ // Key is a required field
+ Key *string `location:"uri" locationName:"Key" min:"1" type:"string" required:"true"`
+
+ // Confirms that the requester knows that she or he will be charged for the
+ // request. Bucket owners need not specify this parameter in their requests.
+ // Documentation on downloading objects from requester pays buckets can be found
+ // at http://docs.aws.amazon.com/AmazonS3/latest/dev/ObjectsinRequesterPaysBuckets.html
+ RequestPayer *string `location:"header" locationName:"x-amz-request-payer" type:"string" enum:"RequestPayer"`
+
+ // The container element for the Object Retention configuration.
+ Retention *ObjectLockRetention `locationName:"Retention" type:"structure" xmlURI:"http://s3.amazonaws.com/doc/2006-03-01/"`
+
+ // The version ID for the object that you want to apply this Object Retention
+ // configuration to.
+ VersionId *string `location:"querystring" locationName:"versionId" type:"string"`
+}
+
+// String returns the string representation
+func (s PutObjectRetentionInput) String() string {
+ return awsutil.Prettify(s)
+}
+
+// GoString returns the string representation
+func (s PutObjectRetentionInput) GoString() string {
+ return s.String()
+}
+
+// Validate inspects the fields of the type to determine if they are valid.
+func (s *PutObjectRetentionInput) Validate() error {
+ invalidParams := request.ErrInvalidParams{Context: "PutObjectRetentionInput"}
+ if s.Bucket == nil {
+ invalidParams.Add(request.NewErrParamRequired("Bucket"))
+ }
+ if s.Bucket != nil && len(*s.Bucket) < 1 {
+ invalidParams.Add(request.NewErrParamMinLen("Bucket", 1))
+ }
+ if s.Key == nil {
+ invalidParams.Add(request.NewErrParamRequired("Key"))
+ }
+ if s.Key != nil && len(*s.Key) < 1 {
+ invalidParams.Add(request.NewErrParamMinLen("Key", 1))
+ }
+
+ if invalidParams.Len() > 0 {
+ return invalidParams
+ }
+ return nil
+}
+
+// SetBucket sets the Bucket field's value.
+func (s *PutObjectRetentionInput) SetBucket(v string) *PutObjectRetentionInput {
+ s.Bucket = &v
+ return s
+}
+
+func (s *PutObjectRetentionInput) getBucket() (v string) {
+ if s.Bucket == nil {
+ return v
+ }
+ return *s.Bucket
+}
+
+// SetBypassGovernanceRetention sets the BypassGovernanceRetention field's value.
+func (s *PutObjectRetentionInput) SetBypassGovernanceRetention(v bool) *PutObjectRetentionInput {
+ s.BypassGovernanceRetention = &v
+ return s
+}
+
+// SetKey sets the Key field's value.
+func (s *PutObjectRetentionInput) SetKey(v string) *PutObjectRetentionInput {
+ s.Key = &v
+ return s
+}
+
+// SetRequestPayer sets the RequestPayer field's value.
+func (s *PutObjectRetentionInput) SetRequestPayer(v string) *PutObjectRetentionInput {
+ s.RequestPayer = &v
+ return s
+}
+
+// SetRetention sets the Retention field's value.
+func (s *PutObjectRetentionInput) SetRetention(v *ObjectLockRetention) *PutObjectRetentionInput {
+ s.Retention = v
+ return s
+}
+
+// SetVersionId sets the VersionId field's value.
+func (s *PutObjectRetentionInput) SetVersionId(v string) *PutObjectRetentionInput {
+ s.VersionId = &v
+ return s
+}
+
+type PutObjectRetentionOutput struct {
+ _ struct{} `type:"structure"`
+
+ // If present, indicates that the requester was successfully charged for the
+ // request.
+ RequestCharged *string `location:"header" locationName:"x-amz-request-charged" type:"string" enum:"RequestCharged"`
+}
+
+// String returns the string representation
+func (s PutObjectRetentionOutput) String() string {
+ return awsutil.Prettify(s)
+}
+
+// GoString returns the string representation
+func (s PutObjectRetentionOutput) GoString() string {
+ return s.String()
+}
+
+// SetRequestCharged sets the RequestCharged field's value.
+func (s *PutObjectRetentionOutput) SetRequestCharged(v string) *PutObjectRetentionOutput {
+ s.RequestCharged = &v
+ return s
+}
+
type PutObjectTaggingInput struct {
_ struct{} `type:"structure" payload:"Tagging"`
@@ -18648,6 +20978,9 @@ func (s *PutObjectTaggingInput) Validate() error {
if s.Bucket == nil {
invalidParams.Add(request.NewErrParamRequired("Bucket"))
}
+ if s.Bucket != nil && len(*s.Bucket) < 1 {
+ invalidParams.Add(request.NewErrParamMinLen("Bucket", 1))
+ }
if s.Key == nil {
invalidParams.Add(request.NewErrParamRequired("Key"))
}
@@ -18722,24 +21055,107 @@ func (s *PutObjectTaggingOutput) SetVersionId(v string) *PutObjectTaggingOutput
return s
}
-// Container for specifying an configuration when you want Amazon S3 to publish
-// events to an Amazon Simple Queue Service (Amazon SQS) queue.
+type PutPublicAccessBlockInput struct {
+ _ struct{} `type:"structure" payload:"PublicAccessBlockConfiguration"`
+
+ // The name of the Amazon S3 bucket whose PublicAccessBlock configuration you
+ // want to set.
+ //
+ // Bucket is a required field
+ Bucket *string `location:"uri" locationName:"Bucket" type:"string" required:"true"`
+
+ // The PublicAccessBlock configuration that you want to apply to this Amazon
+ // S3 bucket. You can enable the configuration options in any combination. For
+ // more information about when Amazon S3 considers a bucket or object public,
+ // see The Meaning of "Public" (https://docs.aws.amazon.com/AmazonS3/latest/dev/access-control-block-public-access.html#access-control-block-public-access-policy-status)
+ // in the Amazon Simple Storage Service Developer Guide.
+ //
+ // PublicAccessBlockConfiguration is a required field
+ PublicAccessBlockConfiguration *PublicAccessBlockConfiguration `locationName:"PublicAccessBlockConfiguration" type:"structure" required:"true" xmlURI:"http://s3.amazonaws.com/doc/2006-03-01/"`
+}
+
+// String returns the string representation
+func (s PutPublicAccessBlockInput) String() string {
+ return awsutil.Prettify(s)
+}
+
+// GoString returns the string representation
+func (s PutPublicAccessBlockInput) GoString() string {
+ return s.String()
+}
+
+// Validate inspects the fields of the type to determine if they are valid.
+func (s *PutPublicAccessBlockInput) Validate() error {
+ invalidParams := request.ErrInvalidParams{Context: "PutPublicAccessBlockInput"}
+ if s.Bucket == nil {
+ invalidParams.Add(request.NewErrParamRequired("Bucket"))
+ }
+ if s.Bucket != nil && len(*s.Bucket) < 1 {
+ invalidParams.Add(request.NewErrParamMinLen("Bucket", 1))
+ }
+ if s.PublicAccessBlockConfiguration == nil {
+ invalidParams.Add(request.NewErrParamRequired("PublicAccessBlockConfiguration"))
+ }
+
+ if invalidParams.Len() > 0 {
+ return invalidParams
+ }
+ return nil
+}
+
+// SetBucket sets the Bucket field's value.
+func (s *PutPublicAccessBlockInput) SetBucket(v string) *PutPublicAccessBlockInput {
+ s.Bucket = &v
+ return s
+}
+
+func (s *PutPublicAccessBlockInput) getBucket() (v string) {
+ if s.Bucket == nil {
+ return v
+ }
+ return *s.Bucket
+}
+
+// SetPublicAccessBlockConfiguration sets the PublicAccessBlockConfiguration field's value.
+func (s *PutPublicAccessBlockInput) SetPublicAccessBlockConfiguration(v *PublicAccessBlockConfiguration) *PutPublicAccessBlockInput {
+ s.PublicAccessBlockConfiguration = v
+ return s
+}
+
+type PutPublicAccessBlockOutput struct {
+ _ struct{} `type:"structure"`
+}
+
+// String returns the string representation
+func (s PutPublicAccessBlockOutput) String() string {
+ return awsutil.Prettify(s)
+}
+
+// GoString returns the string representation
+func (s PutPublicAccessBlockOutput) GoString() string {
+ return s.String()
+}
+
+// A container for specifying the configuration for publication of messages
+// to an Amazon Simple Queue Service (Amazon SQS) queue.when Amazon S3 detects
+// specified events.
type QueueConfiguration struct {
_ struct{} `type:"structure"`
// Events is a required field
Events []*string `locationName:"Event" type:"list" flattened:"true" required:"true"`
- // Container for object key name filtering rules. For information about key
- // name filtering, go to Configuring Event Notifications (http://docs.aws.amazon.com/AmazonS3/latest/dev/NotificationHowTo.html)
+ // A container for object key name filtering rules. For information about key
+ // name filtering, see Configuring Event Notifications (http://docs.aws.amazon.com/AmazonS3/latest/dev/NotificationHowTo.html)
+ // in the Amazon Simple Storage Service Developer Guide.
Filter *NotificationConfigurationFilter `type:"structure"`
- // Optional unique identifier for configurations in a notification configuration.
+ // An optional unique identifier for configurations in a notification configuration.
// If you don't provide one, Amazon S3 will assign an ID.
Id *string `type:"string"`
- // Amazon SQS queue ARN to which Amazon S3 will publish a message when it detects
- // events of specified type.
+ // The Amazon Resource Name (ARN) of the Amazon SQS queue to which Amazon S3
+ // will publish a message when it detects events of the specified type.
//
// QueueArn is a required field
QueueArn *string `locationName:"Queue" type:"string" required:"true"`
@@ -18798,12 +21214,14 @@ func (s *QueueConfiguration) SetQueueArn(v string) *QueueConfiguration {
type QueueConfigurationDeprecated struct {
_ struct{} `type:"structure"`
- // Bucket event for which to send notifications.
+ // The bucket event for which to send notifications.
+ //
+ // Deprecated: Event has been deprecated
Event *string `deprecated:"true" type:"string" enum:"Event"`
Events []*string `locationName:"Event" type:"list" flattened:"true"`
- // Optional unique identifier for configurations in a notification configuration.
+ // An optional unique identifier for configurations in a notification configuration.
// If you don't provide one, Amazon S3 will assign an ID.
Id *string `type:"string"`
@@ -18845,7 +21263,7 @@ func (s *QueueConfigurationDeprecated) SetQueue(v string) *QueueConfigurationDep
}
type RecordsEvent struct {
- _ struct{} `type:"structure" payload:"Payload"`
+ _ struct{} `locationName:"RecordsEvent" type:"structure" payload:"Payload"`
// The byte array of partial, one or more result records.
//
@@ -18999,19 +21417,19 @@ func (s *RedirectAllRequestsTo) SetProtocol(v string) *RedirectAllRequestsTo {
return s
}
-// Container for replication rules. You can add as many as 1,000 rules. Total
-// replication configuration size can be up to 2 MB.
+// A container for replication rules. You can add up to 1,000 rules. The maximum
+// size of a replication configuration is 2 MB.
type ReplicationConfiguration struct {
_ struct{} `type:"structure"`
- // Amazon Resource Name (ARN) of an IAM role for Amazon S3 to assume when replicating
- // the objects.
+ // The Amazon Resource Name (ARN) of the AWS Identity and Access Management
+ // (IAM) role that Amazon S3 can assume when replicating the objects.
//
// Role is a required field
Role *string `type:"string" required:"true"`
- // Container for information about a particular replication rule. Replication
- // configuration must have at least one rule and can contain up to 1,000 rules.
+ // A container for one or more replication rules. A replication configuration
+ // must have at least one rule and can contain a maximum of 1,000 rules.
//
// Rules is a required field
Rules []*ReplicationRule `locationName:"Rule" type:"list" flattened:"true" required:"true"`
@@ -19065,29 +21483,57 @@ func (s *ReplicationConfiguration) SetRules(v []*ReplicationRule) *ReplicationCo
return s
}
-// Container for information about a particular replication rule.
+// A container for information about a specific replication rule.
type ReplicationRule struct {
_ struct{} `type:"structure"`
- // Container for replication destination information.
+ // Specifies whether Amazon S3 should replicate delete makers.
+ DeleteMarkerReplication *DeleteMarkerReplication `type:"structure"`
+
+ // A container for information about the replication destination.
//
// Destination is a required field
Destination *Destination `type:"structure" required:"true"`
- // Unique identifier for the rule. The value cannot be longer than 255 characters.
+ // A filter that identifies the subset of objects to which the replication rule
+ // applies. A Filter must specify exactly one Prefix, Tag, or an And child element.
+ Filter *ReplicationRuleFilter `type:"structure"`
+
+ // A unique identifier for the rule. The maximum value is 255 characters.
ID *string `type:"string"`
- // Object keyname prefix identifying one or more objects to which the rule applies.
- // Maximum prefix length can be up to 1,024 characters. Overlapping prefixes
- // are not supported.
+ // An object keyname prefix that identifies the object or objects to which the
+ // rule applies. The maximum prefix length is 1,024 characters.
//
- // Prefix is a required field
- Prefix *string `type:"string" required:"true"`
+ // Deprecated: Prefix has been deprecated
+ Prefix *string `deprecated:"true" type:"string"`
- // Container for filters that define which source objects should be replicated.
+ // The priority associated with the rule. If you specify multiple rules in a
+ // replication configuration, Amazon S3 prioritizes the rules to prevent conflicts
+ // when filtering. If two or more rules identify the same object based on a
+ // specified filter, the rule with higher priority takes precedence. For example:
+ //
+ // * Same object quality prefix based filter criteria If prefixes you specified
+ // in multiple rules overlap
+ //
+ // * Same object qualify tag based filter criteria specified in multiple
+ // rules
+ //
+ // For more information, see Cross-Region Replication (CRR) ( https://docs.aws.amazon.com/AmazonS3/latest/dev/crr.html)
+ // in the Amazon S3 Developer Guide.
+ Priority *int64 `type:"integer"`
+
+ // A container that describes additional filters for identifying the source
+ // objects that you want to replicate. You can choose to enable or disable the
+ // replication of these objects. Currently, Amazon S3 supports only the filter
+ // that you can specify for objects created with server-side encryption using
+ // an AWS KMS-Managed Key (SSE-KMS).
+ //
+ // If you want Amazon S3 to replicate objects created with server-side encryption
+ // using AWS KMS-Managed Keys.
SourceSelectionCriteria *SourceSelectionCriteria `type:"structure"`
- // The rule is ignored if status is not Enabled.
+ // If status isn't enabled, the rule is ignored.
//
// Status is a required field
Status *string `type:"string" required:"true" enum:"ReplicationRuleStatus"`
@@ -19109,9 +21555,6 @@ func (s *ReplicationRule) Validate() error {
if s.Destination == nil {
invalidParams.Add(request.NewErrParamRequired("Destination"))
}
- if s.Prefix == nil {
- invalidParams.Add(request.NewErrParamRequired("Prefix"))
- }
if s.Status == nil {
invalidParams.Add(request.NewErrParamRequired("Status"))
}
@@ -19120,6 +21563,11 @@ func (s *ReplicationRule) Validate() error {
invalidParams.AddNested("Destination", err.(request.ErrInvalidParams))
}
}
+ if s.Filter != nil {
+ if err := s.Filter.Validate(); err != nil {
+ invalidParams.AddNested("Filter", err.(request.ErrInvalidParams))
+ }
+ }
if s.SourceSelectionCriteria != nil {
if err := s.SourceSelectionCriteria.Validate(); err != nil {
invalidParams.AddNested("SourceSelectionCriteria", err.(request.ErrInvalidParams))
@@ -19132,12 +21580,24 @@ func (s *ReplicationRule) Validate() error {
return nil
}
+// SetDeleteMarkerReplication sets the DeleteMarkerReplication field's value.
+func (s *ReplicationRule) SetDeleteMarkerReplication(v *DeleteMarkerReplication) *ReplicationRule {
+ s.DeleteMarkerReplication = v
+ return s
+}
+
// SetDestination sets the Destination field's value.
func (s *ReplicationRule) SetDestination(v *Destination) *ReplicationRule {
s.Destination = v
return s
}
+// SetFilter sets the Filter field's value.
+func (s *ReplicationRule) SetFilter(v *ReplicationRuleFilter) *ReplicationRule {
+ s.Filter = v
+ return s
+}
+
// SetID sets the ID field's value.
func (s *ReplicationRule) SetID(v string) *ReplicationRule {
s.ID = &v
@@ -19150,6 +21610,12 @@ func (s *ReplicationRule) SetPrefix(v string) *ReplicationRule {
return s
}
+// SetPriority sets the Priority field's value.
+func (s *ReplicationRule) SetPriority(v int64) *ReplicationRule {
+ s.Priority = &v
+ return s
+}
+
// SetSourceSelectionCriteria sets the SourceSelectionCriteria field's value.
func (s *ReplicationRule) SetSourceSelectionCriteria(v *SourceSelectionCriteria) *ReplicationRule {
s.SourceSelectionCriteria = v
@@ -19162,6 +21628,130 @@ func (s *ReplicationRule) SetStatus(v string) *ReplicationRule {
return s
}
+type ReplicationRuleAndOperator struct {
+ _ struct{} `type:"structure"`
+
+ Prefix *string `type:"string"`
+
+ Tags []*Tag `locationName:"Tag" locationNameList:"Tag" type:"list" flattened:"true"`
+}
+
+// String returns the string representation
+func (s ReplicationRuleAndOperator) String() string {
+ return awsutil.Prettify(s)
+}
+
+// GoString returns the string representation
+func (s ReplicationRuleAndOperator) GoString() string {
+ return s.String()
+}
+
+// Validate inspects the fields of the type to determine if they are valid.
+func (s *ReplicationRuleAndOperator) Validate() error {
+ invalidParams := request.ErrInvalidParams{Context: "ReplicationRuleAndOperator"}
+ if s.Tags != nil {
+ for i, v := range s.Tags {
+ if v == nil {
+ continue
+ }
+ if err := v.Validate(); err != nil {
+ invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
+ }
+ }
+ }
+
+ if invalidParams.Len() > 0 {
+ return invalidParams
+ }
+ return nil
+}
+
+// SetPrefix sets the Prefix field's value.
+func (s *ReplicationRuleAndOperator) SetPrefix(v string) *ReplicationRuleAndOperator {
+ s.Prefix = &v
+ return s
+}
+
+// SetTags sets the Tags field's value.
+func (s *ReplicationRuleAndOperator) SetTags(v []*Tag) *ReplicationRuleAndOperator {
+ s.Tags = v
+ return s
+}
+
+// A filter that identifies the subset of objects to which the replication rule
+// applies. A Filter must specify exactly one Prefix, Tag, or an And child element.
+type ReplicationRuleFilter struct {
+ _ struct{} `type:"structure"`
+
+ // A container for specifying rule filters. The filters determine the subset
+ // of objects to which the rule applies. This element is required only if you
+ // specify more than one filter. For example:
+ //
+ // * If you specify both a Prefix and a Tag filter, wrap these filters in
+ // an And tag.
+ //
+ // * If you specify a filter based on multiple tags, wrap the Tag elements
+ // in an And tag.
+ And *ReplicationRuleAndOperator `type:"structure"`
+
+ // An object keyname prefix that identifies the subset of objects to which the
+ // rule applies.
+ Prefix *string `type:"string"`
+
+ // A container for specifying a tag key and value.
+ //
+ // The rule applies only to objects that have the tag in their tag set.
+ Tag *Tag `type:"structure"`
+}
+
+// String returns the string representation
+func (s ReplicationRuleFilter) String() string {
+ return awsutil.Prettify(s)
+}
+
+// GoString returns the string representation
+func (s ReplicationRuleFilter) GoString() string {
+ return s.String()
+}
+
+// Validate inspects the fields of the type to determine if they are valid.
+func (s *ReplicationRuleFilter) Validate() error {
+ invalidParams := request.ErrInvalidParams{Context: "ReplicationRuleFilter"}
+ if s.And != nil {
+ if err := s.And.Validate(); err != nil {
+ invalidParams.AddNested("And", err.(request.ErrInvalidParams))
+ }
+ }
+ if s.Tag != nil {
+ if err := s.Tag.Validate(); err != nil {
+ invalidParams.AddNested("Tag", err.(request.ErrInvalidParams))
+ }
+ }
+
+ if invalidParams.Len() > 0 {
+ return invalidParams
+ }
+ return nil
+}
+
+// SetAnd sets the And field's value.
+func (s *ReplicationRuleFilter) SetAnd(v *ReplicationRuleAndOperator) *ReplicationRuleFilter {
+ s.And = v
+ return s
+}
+
+// SetPrefix sets the Prefix field's value.
+func (s *ReplicationRuleFilter) SetPrefix(v string) *ReplicationRuleFilter {
+ s.Prefix = &v
+ return s
+}
+
+// SetTag sets the Tag field's value.
+func (s *ReplicationRuleFilter) SetTag(v *Tag) *ReplicationRuleFilter {
+ s.Tag = v
+ return s
+}
+
type RequestPaymentConfiguration struct {
_ struct{} `type:"structure"`
@@ -19261,6 +21851,9 @@ func (s *RestoreObjectInput) Validate() error {
if s.Bucket == nil {
invalidParams.Add(request.NewErrParamRequired("Bucket"))
}
+ if s.Bucket != nil && len(*s.Bucket) < 1 {
+ invalidParams.Add(request.NewErrParamMinLen("Bucket", 1))
+ }
if s.Key == nil {
invalidParams.Add(request.NewErrParamRequired("Key"))
}
@@ -19466,7 +22059,7 @@ type RoutingRule struct {
// Container for redirect information. You can redirect requests to another
// host, to another page, or with another protocol. In the event of an error,
- // you can can specify a different error code to return.
+ // you can specify a different error code to return.
//
// Redirect is a required field
Redirect *Redirect `type:"structure" required:"true"`
@@ -19527,11 +22120,11 @@ type Rule struct {
NoncurrentVersionExpiration *NoncurrentVersionExpiration `type:"structure"`
// Container for the transition rule that describes when noncurrent objects
- // transition to the STANDARD_IA, ONEZONE_IA or GLACIER storage class. If your
- // bucket is versioning-enabled (or versioning is suspended), you can set this
- // action to request that Amazon S3 transition noncurrent object versions to
- // the STANDARD_IA, ONEZONE_IA or GLACIER storage class at a specific period
- // in the object's lifetime.
+ // transition to the STANDARD_IA, ONEZONE_IA, INTELLIGENT_TIERING or GLACIER
+ // storage class. If your bucket is versioning-enabled (or versioning is suspended),
+ // you can set this action to request that Amazon S3 transition noncurrent object
+ // versions to the STANDARD_IA, ONEZONE_IA, INTELLIGENT_TIERING or GLACIER storage
+ // class at a specific period in the object's lifetime.
NoncurrentVersionTransition *NoncurrentVersionTransition `type:"structure"`
// Prefix identifying one or more objects to which the rule applies.
@@ -19622,7 +22215,7 @@ func (s *Rule) SetTransition(v *Transition) *Rule {
return s
}
-// Specifies the use of SSE-KMS to encrypt delievered Inventory reports.
+// Specifies the use of SSE-KMS to encrypt delivered Inventory reports.
type SSEKMS struct {
_ struct{} `locationName:"SSE-KMS" type:"structure"`
@@ -19630,7 +22223,7 @@ type SSEKMS struct {
// key to use for encrypting Inventory reports.
//
// KeyId is a required field
- KeyId *string `type:"string" required:"true"`
+ KeyId *string `type:"string" required:"true" sensitive:"true"`
}
// String returns the string representation
@@ -19662,7 +22255,7 @@ func (s *SSEKMS) SetKeyId(v string) *SSEKMS {
return s
}
-// Specifies the use of SSE-S3 to encrypt delievered Inventory reports.
+// Specifies the use of SSE-S3 to encrypt delivered Inventory reports.
type SSES3 struct {
_ struct{} `locationName:"SSE-S3" type:"structure"`
}
@@ -19779,7 +22372,7 @@ type SelectObjectContentEventStreamReader interface {
// HTTP this will also close the HTTP connection.
Close() error
- // Returns any error that has occured while reading from the event stream.
+ // Returns any error that has occurred while reading from the event stream.
Err() error
}
@@ -19889,22 +22482,25 @@ func (r *readSelectObjectContentEventStream) unmarshalerForEventType(
case "Stats":
return &StatsEvent{}, nil
default:
- return nil, fmt.Errorf(
- "unknown event type name, %s, for SelectObjectContentEventStream", eventType)
+ return nil, awserr.New(
+ request.ErrCodeSerialization,
+ fmt.Sprintf("unknown event type name, %s, for SelectObjectContentEventStream", eventType),
+ nil,
+ )
}
}
// Request to filter the contents of an Amazon S3 object based on a simple Structured
// Query Language (SQL) statement. In the request, along with the SQL expression,
-// you must also specify a data serialization format (JSON or CSV) of the object.
-// Amazon S3 uses this to parse object data into records, and returns only records
+// you must specify a data serialization format (JSON or CSV) of the object.
+// Amazon S3 uses this to parse object data into records. It returns only records
// that match the specified SQL expression. You must also specify the data serialization
-// format for the response. For more information, go to S3Select API Documentation
-// (https://docs.aws.amazon.com/AmazonS3/latest/API/RESTObjectSELECTContent.html)
+// format for the response. For more information, see S3Select API Documentation
+// (http://docs.aws.amazon.com/AmazonS3/latest/API/RESTObjectSELECTContent.html).
type SelectObjectContentInput struct {
_ struct{} `locationName:"SelectObjectContentRequest" type:"structure" xmlURI:"http://s3.amazonaws.com/doc/2006-03-01/"`
- // The S3 Bucket.
+ // The S3 bucket.
//
// Bucket is a required field
Bucket *string `location:"uri" locationName:"Bucket" type:"string" required:"true"`
@@ -19914,7 +22510,7 @@ type SelectObjectContentInput struct {
// Expression is a required field
Expression *string `type:"string" required:"true"`
- // The type of the provided expression (e.g., SQL).
+ // The type of the provided expression (for example., SQL).
//
// ExpressionType is a required field
ExpressionType *string `type:"string" required:"true" enum:"ExpressionType"`
@@ -19924,7 +22520,7 @@ type SelectObjectContentInput struct {
// InputSerialization is a required field
InputSerialization *InputSerialization `type:"structure" required:"true"`
- // The Object Key.
+ // The object key.
//
// Key is a required field
Key *string `location:"uri" locationName:"Key" min:"1" type:"string" required:"true"`
@@ -19937,16 +22533,16 @@ type SelectObjectContentInput struct {
// Specifies if periodic request progress information should be enabled.
RequestProgress *RequestProgress `type:"structure"`
- // The SSE Algorithm used to encrypt the object. For more information, go to
- // Server-Side Encryption (Using Customer-Provided Encryption Keys (https://docs.aws.amazon.com/AmazonS3/latest/dev/ServerSideEncryptionCustomerKeys.html)
+ // The SSE Algorithm used to encrypt the object. For more information, see
+ // Server-Side Encryption (Using Customer-Provided Encryption Keys (http://docs.aws.amazon.com/AmazonS3/latest/dev/ServerSideEncryptionCustomerKeys.html).
SSECustomerAlgorithm *string `location:"header" locationName:"x-amz-server-side-encryption-customer-algorithm" type:"string"`
- // The SSE Customer Key. For more information, go to Server-Side Encryption
- // (Using Customer-Provided Encryption Keys (https://docs.aws.amazon.com/AmazonS3/latest/dev/ServerSideEncryptionCustomerKeys.html)
- SSECustomerKey *string `location:"header" locationName:"x-amz-server-side-encryption-customer-key" type:"string"`
+ // The SSE Customer Key. For more information, see Server-Side Encryption (Using
+ // Customer-Provided Encryption Keys (http://docs.aws.amazon.com/AmazonS3/latest/dev/ServerSideEncryptionCustomerKeys.html).
+ SSECustomerKey *string `location:"header" locationName:"x-amz-server-side-encryption-customer-key" type:"string" sensitive:"true"`
- // The SSE Customer Key MD5. For more information, go to Server-Side Encryption
- // (Using Customer-Provided Encryption Keys (https://docs.aws.amazon.com/AmazonS3/latest/dev/ServerSideEncryptionCustomerKeys.html)
+ // The SSE Customer Key MD5. For more information, see Server-Side Encryption
+ // (Using Customer-Provided Encryption Keys (http://docs.aws.amazon.com/AmazonS3/latest/dev/ServerSideEncryptionCustomerKeys.html).
SSECustomerKeyMD5 *string `location:"header" locationName:"x-amz-server-side-encryption-customer-key-MD5" type:"string"`
}
@@ -19966,6 +22562,9 @@ func (s *SelectObjectContentInput) Validate() error {
if s.Bucket == nil {
invalidParams.Add(request.NewErrParamRequired("Bucket"))
}
+ if s.Bucket != nil && len(*s.Bucket) < 1 {
+ invalidParams.Add(request.NewErrParamMinLen("Bucket", 1))
+ }
if s.Expression == nil {
invalidParams.Add(request.NewErrParamRequired("Expression"))
}
@@ -20196,7 +22795,7 @@ type ServerSideEncryptionByDefault struct {
// KMS master key ID to use for the default encryption. This parameter is allowed
// if SSEAlgorithm is aws:kms.
- KMSMasterKeyID *string `type:"string"`
+ KMSMasterKeyID *string `type:"string" sensitive:"true"`
// Server-side encryption algorithm to use for the default encryption.
//
@@ -20332,11 +22931,13 @@ func (s *ServerSideEncryptionRule) SetApplyServerSideEncryptionByDefault(v *Serv
return s
}
-// Container for filters that define which source objects should be replicated.
+// A container for filters that define which source objects should be replicated.
type SourceSelectionCriteria struct {
_ struct{} `type:"structure"`
- // Container for filter information of selection of KMS Encrypted S3 objects.
+ // A container for filter information for the selection of S3 objects encrypted
+ // with AWS KMS. If you include SourceSelectionCriteria in the replication configuration,
+ // this element is required.
SseKmsEncryptedObjects *SseKmsEncryptedObjects `type:"structure"`
}
@@ -20371,12 +22972,13 @@ func (s *SourceSelectionCriteria) SetSseKmsEncryptedObjects(v *SseKmsEncryptedOb
return s
}
-// Container for filter information of selection of KMS Encrypted S3 objects.
+// A container for filter information for the selection of S3 objects encrypted
+// with AWS KMS.
type SseKmsEncryptedObjects struct {
_ struct{} `type:"structure"`
- // The replication for KMS encrypted S3 objects is disabled if status is not
- // Enabled.
+ // If the status is not Enabled, replication for S3 objects encrypted with AWS
+ // KMS is disabled.
//
// Status is a required field
Status *string `type:"string" required:"true" enum:"SseKmsEncryptedObjectsStatus"`
@@ -20414,13 +23016,13 @@ func (s *SseKmsEncryptedObjects) SetStatus(v string) *SseKmsEncryptedObjects {
type Stats struct {
_ struct{} `type:"structure"`
- // Total number of uncompressed object bytes processed.
+ // The total number of uncompressed object bytes processed.
BytesProcessed *int64 `type:"long"`
- // Total number of bytes of records payload data returned.
+ // The total number of bytes of records payload data returned.
BytesReturned *int64 `type:"long"`
- // Total number of object bytes scanned.
+ // The total number of object bytes scanned.
BytesScanned *int64 `type:"long"`
}
@@ -20453,7 +23055,7 @@ func (s *Stats) SetBytesScanned(v int64) *Stats {
}
type StatsEvent struct {
- _ struct{} `type:"structure" payload:"Details"`
+ _ struct{} `locationName:"StatsEvent" type:"structure" payload:"Details"`
// The Stats event details.
Details *Stats `locationName:"Details" type:"structure"`
@@ -20487,7 +23089,7 @@ func (s *StatsEvent) UnmarshalEvent(
if err := payloadUnmarshaler.UnmarshalPayload(
bytes.NewReader(msg.Payload), s,
); err != nil {
- return fmt.Errorf("failed to unmarshal payload, %v", err)
+ return err
}
return nil
}
@@ -20735,24 +23337,26 @@ func (s *TargetGrant) SetPermission(v string) *TargetGrant {
return s
}
-// Container for specifying the configuration when you want Amazon S3 to publish
-// events to an Amazon Simple Notification Service (Amazon SNS) topic.
+// A container for specifying the configuration for publication of messages
+// to an Amazon Simple Notification Service (Amazon SNS) topic.when Amazon S3
+// detects specified events.
type TopicConfiguration struct {
_ struct{} `type:"structure"`
// Events is a required field
Events []*string `locationName:"Event" type:"list" flattened:"true" required:"true"`
- // Container for object key name filtering rules. For information about key
- // name filtering, go to Configuring Event Notifications (http://docs.aws.amazon.com/AmazonS3/latest/dev/NotificationHowTo.html)
+ // A container for object key name filtering rules. For information about key
+ // name filtering, see Configuring Event Notifications (http://docs.aws.amazon.com/AmazonS3/latest/dev/NotificationHowTo.html)
+ // in the Amazon Simple Storage Service Developer Guide.
Filter *NotificationConfigurationFilter `type:"structure"`
- // Optional unique identifier for configurations in a notification configuration.
+ // An optional unique identifier for configurations in a notification configuration.
// If you don't provide one, Amazon S3 will assign an ID.
Id *string `type:"string"`
- // Amazon SNS topic ARN to which Amazon S3 will publish a message when it detects
- // events of specified type.
+ // The Amazon Resource Name (ARN) of the Amazon SNS topic to which Amazon S3
+ // will publish a message when it detects events of the specified type.
//
// TopicArn is a required field
TopicArn *string `locationName:"Topic" type:"string" required:"true"`
@@ -20812,11 +23416,13 @@ type TopicConfigurationDeprecated struct {
_ struct{} `type:"structure"`
// Bucket event for which to send notifications.
+ //
+ // Deprecated: Event has been deprecated
Event *string `deprecated:"true" type:"string" enum:"Event"`
Events []*string `locationName:"Event" type:"list" flattened:"true"`
- // Optional unique identifier for configurations in a notification configuration.
+ // An optional unique identifier for configurations in a notification configuration.
// If you don't provide one, Amazon S3 will assign an ID.
Id *string `type:"string"`
@@ -20918,14 +23524,14 @@ type UploadPartCopyInput struct {
CopySourceIfMatch *string `location:"header" locationName:"x-amz-copy-source-if-match" type:"string"`
// Copies the object if it has been modified since the specified time.
- CopySourceIfModifiedSince *time.Time `location:"header" locationName:"x-amz-copy-source-if-modified-since" type:"timestamp" timestampFormat:"rfc822"`
+ CopySourceIfModifiedSince *time.Time `location:"header" locationName:"x-amz-copy-source-if-modified-since" type:"timestamp"`
// Copies the object if its entity tag (ETag) is different than the specified
// ETag.
CopySourceIfNoneMatch *string `location:"header" locationName:"x-amz-copy-source-if-none-match" type:"string"`
// Copies the object if it hasn't been modified since the specified time.
- CopySourceIfUnmodifiedSince *time.Time `location:"header" locationName:"x-amz-copy-source-if-unmodified-since" type:"timestamp" timestampFormat:"rfc822"`
+ CopySourceIfUnmodifiedSince *time.Time `location:"header" locationName:"x-amz-copy-source-if-unmodified-since" type:"timestamp"`
// The range of bytes to copy from the source object. The range value must use
// the form bytes=first-last, where the first and last are the zero-based byte
@@ -20940,7 +23546,7 @@ type UploadPartCopyInput struct {
// Specifies the customer-provided encryption key for Amazon S3 to use to decrypt
// the source object. The encryption key provided in this header must be one
// that was used when the source object was created.
- CopySourceSSECustomerKey *string `location:"header" locationName:"x-amz-copy-source-server-side-encryption-customer-key" type:"string"`
+ CopySourceSSECustomerKey *string `location:"header" locationName:"x-amz-copy-source-server-side-encryption-customer-key" type:"string" sensitive:"true"`
// Specifies the 128-bit MD5 digest of the encryption key according to RFC 1321.
// Amazon S3 uses this header for a message integrity check to ensure the encryption
@@ -20971,7 +23577,7 @@ type UploadPartCopyInput struct {
// the algorithm specified in the x-amz-server-side-encryption-customer-algorithm
// header. This must be the same encryption key specified in the initiate multipart
// upload request.
- SSECustomerKey *string `location:"header" locationName:"x-amz-server-side-encryption-customer-key" type:"string"`
+ SSECustomerKey *string `location:"header" locationName:"x-amz-server-side-encryption-customer-key" type:"string" sensitive:"true"`
// Specifies the 128-bit MD5 digest of the encryption key according to RFC 1321.
// Amazon S3 uses this header for a message integrity check to ensure the encryption
@@ -21000,6 +23606,9 @@ func (s *UploadPartCopyInput) Validate() error {
if s.Bucket == nil {
invalidParams.Add(request.NewErrParamRequired("Bucket"))
}
+ if s.Bucket != nil && len(*s.Bucket) < 1 {
+ invalidParams.Add(request.NewErrParamMinLen("Bucket", 1))
+ }
if s.CopySource == nil {
invalidParams.Add(request.NewErrParamRequired("CopySource"))
}
@@ -21170,7 +23779,7 @@ type UploadPartCopyOutput struct {
// If present, specifies the ID of the AWS Key Management Service (KMS) master
// encryption key that was used for the object.
- SSEKMSKeyId *string `location:"header" locationName:"x-amz-server-side-encryption-aws-kms-key-id" type:"string"`
+ SSEKMSKeyId *string `location:"header" locationName:"x-amz-server-side-encryption-aws-kms-key-id" type:"string" sensitive:"true"`
// The Server-side encryption algorithm used when storing this object in S3
// (e.g., AES256, aws:kms).
@@ -21273,7 +23882,7 @@ type UploadPartInput struct {
// the algorithm specified in the x-amz-server-side-encryption-customer-algorithm
// header. This must be the same encryption key specified in the initiate multipart
// upload request.
- SSECustomerKey *string `location:"header" locationName:"x-amz-server-side-encryption-customer-key" type:"string"`
+ SSECustomerKey *string `location:"header" locationName:"x-amz-server-side-encryption-customer-key" type:"string" sensitive:"true"`
// Specifies the 128-bit MD5 digest of the encryption key according to RFC 1321.
// Amazon S3 uses this header for a message integrity check to ensure the encryption
@@ -21302,6 +23911,9 @@ func (s *UploadPartInput) Validate() error {
if s.Bucket == nil {
invalidParams.Add(request.NewErrParamRequired("Bucket"))
}
+ if s.Bucket != nil && len(*s.Bucket) < 1 {
+ invalidParams.Add(request.NewErrParamMinLen("Bucket", 1))
+ }
if s.Key == nil {
invalidParams.Add(request.NewErrParamRequired("Key"))
}
@@ -21423,7 +24035,7 @@ type UploadPartOutput struct {
// If present, specifies the ID of the AWS Key Management Service (KMS) master
// encryption key that was used for the object.
- SSEKMSKeyId *string `location:"header" locationName:"x-amz-server-side-encryption-aws-kms-key-id" type:"string"`
+ SSEKMSKeyId *string `location:"header" locationName:"x-amz-server-side-encryption-aws-kms-key-id" type:"string" sensitive:"true"`
// The Server-side encryption algorithm used when storing this object in S3
// (e.g., AES256, aws:kms).
@@ -21678,6 +24290,17 @@ const (
// CompressionTypeGzip is a CompressionType enum value
CompressionTypeGzip = "GZIP"
+
+ // CompressionTypeBzip2 is a CompressionType enum value
+ CompressionTypeBzip2 = "BZIP2"
+)
+
+const (
+ // DeleteMarkerReplicationStatusEnabled is a DeleteMarkerReplicationStatus enum value
+ DeleteMarkerReplicationStatusEnabled = "Enabled"
+
+ // DeleteMarkerReplicationStatusDisabled is a DeleteMarkerReplicationStatus enum value
+ DeleteMarkerReplicationStatusDisabled = "Disabled"
)
// Requests Amazon S3 to encode the object keys in the response and specifies
@@ -21691,7 +24314,7 @@ const (
EncodingTypeUrl = "url"
)
-// Bucket event for which to send notifications.
+// The bucket event for which to send notifications.
const (
// EventS3ReducedRedundancyLostObject is a Event enum value
EventS3ReducedRedundancyLostObject = "s3:ReducedRedundancyLostObject"
@@ -21719,6 +24342,12 @@ const (
// EventS3ObjectRemovedDeleteMarkerCreated is a Event enum value
EventS3ObjectRemovedDeleteMarkerCreated = "s3:ObjectRemoved:DeleteMarkerCreated"
+
+ // EventS3ObjectRestorePost is a Event enum value
+ EventS3ObjectRestorePost = "s3:ObjectRestore:Post"
+
+ // EventS3ObjectRestoreCompleted is a Event enum value
+ EventS3ObjectRestoreCompleted = "s3:ObjectRestore:Completed"
)
const (
@@ -21759,6 +24388,9 @@ const (
// InventoryFormatOrc is a InventoryFormat enum value
InventoryFormatOrc = "ORC"
+
+ // InventoryFormatParquet is a InventoryFormat enum value
+ InventoryFormatParquet = "Parquet"
)
const (
@@ -21798,6 +24430,15 @@ const (
// InventoryOptionalFieldEncryptionStatus is a InventoryOptionalField enum value
InventoryOptionalFieldEncryptionStatus = "EncryptionStatus"
+
+ // InventoryOptionalFieldObjectLockRetainUntilDate is a InventoryOptionalField enum value
+ InventoryOptionalFieldObjectLockRetainUntilDate = "ObjectLockRetainUntilDate"
+
+ // InventoryOptionalFieldObjectLockMode is a InventoryOptionalField enum value
+ InventoryOptionalFieldObjectLockMode = "ObjectLockMode"
+
+ // InventoryOptionalFieldObjectLockLegalHoldStatus is a InventoryOptionalField enum value
+ InventoryOptionalFieldObjectLockLegalHoldStatus = "ObjectLockLegalHoldStatus"
)
const (
@@ -21855,6 +24496,35 @@ const (
ObjectCannedACLBucketOwnerFullControl = "bucket-owner-full-control"
)
+const (
+ // ObjectLockEnabledEnabled is a ObjectLockEnabled enum value
+ ObjectLockEnabledEnabled = "Enabled"
+)
+
+const (
+ // ObjectLockLegalHoldStatusOn is a ObjectLockLegalHoldStatus enum value
+ ObjectLockLegalHoldStatusOn = "ON"
+
+ // ObjectLockLegalHoldStatusOff is a ObjectLockLegalHoldStatus enum value
+ ObjectLockLegalHoldStatusOff = "OFF"
+)
+
+const (
+ // ObjectLockModeGovernance is a ObjectLockMode enum value
+ ObjectLockModeGovernance = "GOVERNANCE"
+
+ // ObjectLockModeCompliance is a ObjectLockMode enum value
+ ObjectLockModeCompliance = "COMPLIANCE"
+)
+
+const (
+ // ObjectLockRetentionModeGovernance is a ObjectLockRetentionMode enum value
+ ObjectLockRetentionModeGovernance = "GOVERNANCE"
+
+ // ObjectLockRetentionModeCompliance is a ObjectLockRetentionMode enum value
+ ObjectLockRetentionModeCompliance = "COMPLIANCE"
+)
+
const (
// ObjectStorageClassStandard is a ObjectStorageClass enum value
ObjectStorageClassStandard = "STANDARD"
@@ -21870,6 +24540,9 @@ const (
// ObjectStorageClassOnezoneIa is a ObjectStorageClass enum value
ObjectStorageClassOnezoneIa = "ONEZONE_IA"
+
+ // ObjectStorageClassIntelligentTiering is a ObjectStorageClass enum value
+ ObjectStorageClassIntelligentTiering = "INTELLIGENT_TIERING"
)
const (
@@ -21994,6 +24667,12 @@ const (
// StorageClassOnezoneIa is a StorageClass enum value
StorageClassOnezoneIa = "ONEZONE_IA"
+
+ // StorageClassIntelligentTiering is a StorageClass enum value
+ StorageClassIntelligentTiering = "INTELLIGENT_TIERING"
+
+ // StorageClassGlacier is a StorageClass enum value
+ StorageClassGlacier = "GLACIER"
)
const (
@@ -22029,6 +24708,9 @@ const (
// TransitionStorageClassOnezoneIa is a TransitionStorageClass enum value
TransitionStorageClassOnezoneIa = "ONEZONE_IA"
+
+ // TransitionStorageClassIntelligentTiering is a TransitionStorageClass enum value
+ TransitionStorageClassIntelligentTiering = "INTELLIGENT_TIERING"
)
const (
diff --git a/vendor/github.com/aws/aws-sdk-go/service/s3/customizations.go b/vendor/github.com/aws/aws-sdk-go/service/s3/customizations.go
index a55beab96db..95f2456363e 100644
--- a/vendor/github.com/aws/aws-sdk-go/service/s3/customizations.go
+++ b/vendor/github.com/aws/aws-sdk-go/service/s3/customizations.go
@@ -3,6 +3,7 @@ package s3
import (
"github.com/aws/aws-sdk-go/aws/client"
"github.com/aws/aws-sdk-go/aws/request"
+ "github.com/aws/aws-sdk-go/internal/s3err"
)
func init() {
@@ -21,6 +22,7 @@ func defaultInitClientFn(c *client.Client) {
// S3 uses custom error unmarshaling logic
c.Handlers.UnmarshalError.Clear()
c.Handlers.UnmarshalError.PushBack(unmarshalError)
+ c.Handlers.UnmarshalError.PushBackNamed(s3err.RequestFailureWrapperHandler())
}
func defaultInitRequestFn(r *request.Request) {
@@ -31,6 +33,7 @@ func defaultInitRequestFn(r *request.Request) {
switch r.Operation.Name {
case opPutBucketCors, opPutBucketLifecycle, opPutBucketPolicy,
opPutBucketTagging, opDeleteObjects, opPutBucketLifecycleConfiguration,
+ opPutObjectLegalHold, opPutObjectRetention, opPutObjectLockConfiguration,
opPutBucketReplication:
// These S3 operations require Content-MD5 to be set
r.Handlers.Build.PushBack(contentMD5)
@@ -42,6 +45,7 @@ func defaultInitRequestFn(r *request.Request) {
r.Handlers.Validate.PushFront(populateLocationConstraint)
case opCopyObject, opUploadPartCopy, opCompleteMultipartUpload:
r.Handlers.Unmarshal.PushFront(copyMultipartStatusOKUnmarhsalError)
+ r.Handlers.Unmarshal.PushBackNamed(s3err.RequestFailureWrapperHandler())
case opPutObject, opUploadPart:
r.Handlers.Build.PushBack(computeBodyHashes)
// Disabled until #1837 root issue is resolved.
diff --git a/vendor/github.com/aws/aws-sdk-go/service/s3/service.go b/vendor/github.com/aws/aws-sdk-go/service/s3/service.go
index 20de53f29d7..d17dcc9dadc 100644
--- a/vendor/github.com/aws/aws-sdk-go/service/s3/service.go
+++ b/vendor/github.com/aws/aws-sdk-go/service/s3/service.go
@@ -67,7 +67,9 @@ func newClient(cfg aws.Config, handlers request.Handlers, endpoint, signingRegio
}
// Handlers
- svc.Handlers.Sign.PushBackNamed(v4.SignRequestHandler)
+ svc.Handlers.Sign.PushBackNamed(v4.BuildNamedHandler(v4.SignRequestHandler.Name, func(s *v4.Signer) {
+ s.DisableURIPathEscaping = true
+ }))
svc.Handlers.Build.PushBackNamed(restxml.BuildHandler)
svc.Handlers.Unmarshal.PushBackNamed(restxml.UnmarshalHandler)
svc.Handlers.UnmarshalMeta.PushBackNamed(restxml.UnmarshalMetaHandler)
diff --git a/vendor/github.com/aws/aws-sdk-go/service/s3/statusok_error.go b/vendor/github.com/aws/aws-sdk-go/service/s3/statusok_error.go
index 9f33efc6ca8..fde3050f95b 100644
--- a/vendor/github.com/aws/aws-sdk-go/service/s3/statusok_error.go
+++ b/vendor/github.com/aws/aws-sdk-go/service/s3/statusok_error.go
@@ -13,7 +13,11 @@ import (
func copyMultipartStatusOKUnmarhsalError(r *request.Request) {
b, err := ioutil.ReadAll(r.HTTPResponse.Body)
if err != nil {
- r.Error = awserr.New("SerializationError", "unable to read response body", err)
+ r.Error = awserr.NewRequestFailure(
+ awserr.New("SerializationError", "unable to read response body", err),
+ r.HTTPResponse.StatusCode,
+ r.RequestID,
+ )
return
}
body := bytes.NewReader(b)
diff --git a/vendor/github.com/aws/aws-sdk-go/service/s3/unmarshal_error.go b/vendor/github.com/aws/aws-sdk-go/service/s3/unmarshal_error.go
index bcca8627af3..12c0612c8de 100644
--- a/vendor/github.com/aws/aws-sdk-go/service/s3/unmarshal_error.go
+++ b/vendor/github.com/aws/aws-sdk-go/service/s3/unmarshal_error.go
@@ -23,22 +23,17 @@ func unmarshalError(r *request.Request) {
defer r.HTTPResponse.Body.Close()
defer io.Copy(ioutil.Discard, r.HTTPResponse.Body)
- hostID := r.HTTPResponse.Header.Get("X-Amz-Id-2")
-
// Bucket exists in a different region, and request needs
// to be made to the correct region.
if r.HTTPResponse.StatusCode == http.StatusMovedPermanently {
- r.Error = requestFailure{
- RequestFailure: awserr.NewRequestFailure(
- awserr.New("BucketRegionError",
- fmt.Sprintf("incorrect region, the bucket is not in '%s' region",
- aws.StringValue(r.Config.Region)),
- nil),
- r.HTTPResponse.StatusCode,
- r.RequestID,
- ),
- hostID: hostID,
- }
+ r.Error = awserr.NewRequestFailure(
+ awserr.New("BucketRegionError",
+ fmt.Sprintf("incorrect region, the bucket is not in '%s' region",
+ aws.StringValue(r.Config.Region)),
+ nil),
+ r.HTTPResponse.StatusCode,
+ r.RequestID,
+ )
return
}
@@ -63,14 +58,11 @@ func unmarshalError(r *request.Request) {
errMsg = statusText
}
- r.Error = requestFailure{
- RequestFailure: awserr.NewRequestFailure(
- awserr.New(errCode, errMsg, err),
- r.HTTPResponse.StatusCode,
- r.RequestID,
- ),
- hostID: hostID,
- }
+ r.Error = awserr.NewRequestFailure(
+ awserr.New(errCode, errMsg, err),
+ r.HTTPResponse.StatusCode,
+ r.RequestID,
+ )
}
// A RequestFailure provides access to the S3 Request ID and Host ID values
@@ -83,21 +75,3 @@ type RequestFailure interface {
// Host ID is the S3 Host ID needed for debug, and contacting support
HostID() string
}
-
-type requestFailure struct {
- awserr.RequestFailure
-
- hostID string
-}
-
-func (r requestFailure) Error() string {
- extra := fmt.Sprintf("status code: %d, request id: %s, host id: %s",
- r.StatusCode(), r.RequestID(), r.hostID)
- return awserr.SprintError(r.Code(), r.Message(), extra, r.OrigErr())
-}
-func (r requestFailure) String() string {
- return r.Error()
-}
-func (r requestFailure) HostID() string {
- return r.hostID
-}
diff --git a/vendor/github.com/aws/aws-sdk-go/service/sts/api.go b/vendor/github.com/aws/aws-sdk-go/service/sts/api.go
index b46da12ca3d..ee908f9167b 100644
--- a/vendor/github.com/aws/aws-sdk-go/service/sts/api.go
+++ b/vendor/github.com/aws/aws-sdk-go/service/sts/api.go
@@ -15,7 +15,7 @@ const opAssumeRole = "AssumeRole"
// AssumeRoleRequest generates a "aws/request.Request" representing the
// client's request for the AssumeRole operation. The "output" return
// value will be populated with the request's response once the request completes
-// successfuly.
+// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
@@ -209,7 +209,7 @@ const opAssumeRoleWithSAML = "AssumeRoleWithSAML"
// AssumeRoleWithSAMLRequest generates a "aws/request.Request" representing the
// client's request for the AssumeRoleWithSAML operation. The "output" return
// value will be populated with the request's response once the request completes
-// successfuly.
+// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
@@ -391,7 +391,7 @@ const opAssumeRoleWithWebIdentity = "AssumeRoleWithWebIdentity"
// AssumeRoleWithWebIdentityRequest generates a "aws/request.Request" representing the
// client's request for the AssumeRoleWithWebIdentity operation. The "output" return
// value will be populated with the request's response once the request completes
-// successfuly.
+// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
@@ -602,7 +602,7 @@ const opDecodeAuthorizationMessage = "DecodeAuthorizationMessage"
// DecodeAuthorizationMessageRequest generates a "aws/request.Request" representing the
// client's request for the DecodeAuthorizationMessage operation. The "output" return
// value will be populated with the request's response once the request completes
-// successfuly.
+// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
@@ -714,7 +714,7 @@ const opGetCallerIdentity = "GetCallerIdentity"
// GetCallerIdentityRequest generates a "aws/request.Request" representing the
// client's request for the GetCallerIdentity operation. The "output" return
// value will be populated with the request's response once the request completes
-// successfuly.
+// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
@@ -789,7 +789,7 @@ const opGetFederationToken = "GetFederationToken"
// GetFederationTokenRequest generates a "aws/request.Request" representing the
// client's request for the GetFederationToken operation. The "output" return
// value will be populated with the request's response once the request completes
-// successfuly.
+// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
@@ -958,7 +958,7 @@ const opGetSessionToken = "GetSessionToken"
// GetSessionTokenRequest generates a "aws/request.Request" representing the
// client's request for the GetSessionToken operation. The "output" return
// value will be populated with the request's response once the request completes
-// successfuly.
+// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
@@ -1908,7 +1908,7 @@ type Credentials struct {
// The date on which the current credentials expire.
//
// Expiration is a required field
- Expiration *time.Time `type:"timestamp" timestampFormat:"iso8601" required:"true"`
+ Expiration *time.Time `type:"timestamp" required:"true"`
// The secret access key that can be used to sign requests.
//