diff --git a/CHANGELOG_PENDING.md b/CHANGELOG_PENDING.md index 8a1927a39ca..d4ebbc70a38 100644 --- a/CHANGELOG_PENDING.md +++ b/CHANGELOG_PENDING.md @@ -3,3 +3,5 @@ ### SDK Enhancements ### SDK Bugs +* Remove test dependency on golang.org/x/net. + * This was used for h2 support which is now transparently available in the stdlib. diff --git a/go.mod b/go.mod index 78680c74db3..6d96f47241d 100644 --- a/go.mod +++ b/go.mod @@ -2,9 +2,4 @@ module github.com/aws/aws-sdk-go go 1.19 -require ( - github.com/jmespath/go-jmespath v0.4.0 - golang.org/x/net v0.17.0 -) - -require golang.org/x/text v0.13.0 // indirect +require github.com/jmespath/go-jmespath v0.4.0 diff --git a/go.sum b/go.sum index 1d2030fc29c..d717f694a5d 100644 --- a/go.sum +++ b/go.sum @@ -7,10 +7,6 @@ github.com/jmespath/go-jmespath/internal/testify v1.5.1/go.mod h1:L3OGu8Wl2/fWfC github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= -golang.org/x/net v0.17.0 h1:pVaXccu2ozPjCXewfr1S7xza/zcXTity9cCdXQYSjIM= -golang.org/x/net v0.17.0/go.mod h1:NxSsAGuq816PNPmqtQdLE42eU2Fs7NoRIZrHJAlaCOE= -golang.org/x/text v0.13.0 h1:ablQoSUd0tRdKxZewP80B+BaqeKJuVhuRxj/dkrun3k= -golang.org/x/text v0.13.0/go.mod h1:TvPlkZtksWOMsz7fbANvkp4WM8x/WCo/om8BMLbz+aE= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/yaml.v2 v2.2.8 h1:obN1ZagJSUGI0Ek/LBmuj4SNLPfIny3KsKFopxRdj10= gopkg.in/yaml.v2 v2.2.8/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= diff --git a/private/model/api/docstring.go b/private/model/api/docstring.go index 12da1fe98b5..29782f01b95 100644 --- a/private/model/api/docstring.go +++ b/private/model/api/docstring.go @@ -6,6 +6,7 @@ package api import ( "bufio" "encoding/json" + "encoding/xml" "fmt" "html" "io" @@ -13,9 +14,6 @@ import ( "os" "regexp" "strings" - - xhtml "golang.org/x/net/html" - "golang.org/x/net/html/atom" ) type apiDocumentation struct { @@ -225,12 +223,17 @@ func getLeadingWhitespace(v string) string { // generateDoc will generate the proper doc string for html encoded or plain text doc entries. func generateDoc(htmlSrc string) string { - tokenizer := xhtml.NewTokenizer(strings.NewReader(htmlSrc)) + tokenizer := xml.NewDecoder(strings.NewReader(htmlSrc)) + tokenizer.Strict = false + tokenizer.AutoClose = xml.HTMLAutoClose + tokenizer.Entity = xml.HTMLEntity + + // Some service docstrings are hopelessly malformed. Rather than throwing + // up our hands, the converter will map over as much as it can. If it + // returns an error, we stop there and go with whatever it was able to + // produce. var builder strings.Builder - if err := encodeHTMLToText(&builder, tokenizer); err != nil { - panic(fmt.Sprintf("failed to generated docs, %v", err)) - } - + encodeHTMLToText(&builder, tokenizer) return wrap(strings.Trim(builder.String(), "\n"), 72) } @@ -241,31 +244,30 @@ type stringWriter interface { WriteString(string) (int, error) } -func encodeHTMLToText(w stringWriter, z *xhtml.Tokenizer) error { +func encodeHTMLToText(w stringWriter, z *xml.Decoder) error { encoder := newHTMLTokenEncoder(w) defer encoder.Flush() for { - tt := z.Next() - if tt == xhtml.ErrorToken { - if err := z.Err(); err == io.EOF { - return nil - } else if err != nil { - return err - } + tt, err := z.Token() + if err == io.EOF { + return nil + } + if err != nil { + return err } - if err := encoder.Encode(z.Token()); err != nil { + if err := encoder.Encode(tt); err != nil { return err } } } type htmlTokenHandler interface { - OnStartTagToken(xhtml.Token) htmlTokenHandler - OnEndTagToken(xhtml.Token, bool) - OnSelfClosingTagToken(xhtml.Token) - OnTextTagToken(xhtml.Token) + OnStartTagToken(xml.StartElement) htmlTokenHandler + OnEndTagToken(xml.Token, bool) + OnSelfClosingTagToken(xml.Token) + OnTextTagToken(xml.CharData) } type htmlTokenEncoder struct { @@ -293,21 +295,21 @@ func newHTMLTokenEncoder(w stringWriter) *htmlTokenEncoder { } func (e *htmlTokenEncoder) Flush() error { - e.baseHandler.handler.OnEndTagToken(xhtml.Token{Type: xhtml.TextToken}, true) + e.baseHandler.handler.OnEndTagToken(xml.CharData([]byte{}), true) return nil } -func (e *htmlTokenEncoder) Encode(token xhtml.Token) error { +func (e *htmlTokenEncoder) Encode(token xml.Token) error { h := e.baseHandler if len(e.handlers) != 0 { h = e.handlers[len(e.handlers)-1] } - switch token.Type { - case xhtml.StartTagToken: + switch v := token.(type) { + case xml.StartElement: e.depth++ - next := h.handler.OnStartTagToken(token) + next := h.handler.OnStartTagToken(v) if next != nil { e.handlers = append(e.handlers, tokenHandlerItem{ handler: next, @@ -315,7 +317,7 @@ func (e *htmlTokenEncoder) Encode(token xhtml.Token) error { }) } - case xhtml.EndTagToken: + case xml.EndElement: handlerBlockClosing := e.depth == h.depth h.handler.OnEndTagToken(token, handlerBlockClosing) @@ -330,11 +332,8 @@ func (e *htmlTokenEncoder) Encode(token xhtml.Token) error { e.depth = 0 } - case xhtml.SelfClosingTagToken: - h.handler.OnSelfClosingTagToken(token) - - case xhtml.TextToken: - h.handler.OnTextTagToken(token) + case xml.CharData: + h.handler.OnTextTagToken(v) } return nil @@ -344,11 +343,11 @@ type baseTokenHandler struct { w stringWriter } -func (e *baseTokenHandler) OnStartTagToken(token xhtml.Token) htmlTokenHandler { return nil } -func (e *baseTokenHandler) OnEndTagToken(token xhtml.Token, blockClosing bool) {} -func (e *baseTokenHandler) OnSelfClosingTagToken(token xhtml.Token) {} -func (e *baseTokenHandler) OnTextTagToken(token xhtml.Token) { - e.w.WriteString(token.Data) +func (e *baseTokenHandler) OnStartTagToken(token xml.StartElement) htmlTokenHandler { return nil } +func (e *baseTokenHandler) OnEndTagToken(token xml.Token, blockClosing bool) {} +func (e *baseTokenHandler) OnSelfClosingTagToken(token xml.Token) {} +func (e *baseTokenHandler) OnTextTagToken(token xml.CharData) { + e.w.WriteString(string(token)) } type blockTokenHandler struct { @@ -372,27 +371,27 @@ func newBlockTokenHandler(w stringWriter) *blockTokenHandler { }, } } -func (e *blockTokenHandler) OnStartTagToken(token xhtml.Token) htmlTokenHandler { +func (e *blockTokenHandler) OnStartTagToken(token xml.StartElement) htmlTokenHandler { e.started = true if e.newlineBeforeNextBlock { e.w.WriteString("\n") e.newlineBeforeNextBlock = false } - switch token.DataAtom { - case atom.A: + switch token.Name.Local { + case "a": return newLinkTokenHandler(e.w, token) - case atom.Ul: + case "ul": e.w.WriteString("\n") e.newlineBeforeNextBlock = true return newListTokenHandler(e.w) - case atom.Div, atom.Dt, atom.P, atom.H1, atom.H2, atom.H3, atom.H4, atom.H5, atom.H6: + case "div", "dt", "p", "h1", "h2", "h3", "h4", "h5", "h6": e.w.WriteString("\n") e.newlineBeforeNextBlock = true return newBlockTokenHandler(e.w) - case atom.Pre, atom.Code: + case "pre", "code": if e.rootBlock { e.w.WriteString("\n") e.w.WriteString(indent) @@ -403,7 +402,7 @@ func (e *blockTokenHandler) OnStartTagToken(token xhtml.Token) htmlTokenHandler return nil } -func (e *blockTokenHandler) OnEndTagToken(token xhtml.Token, blockClosing bool) { +func (e *blockTokenHandler) OnEndTagToken(token xml.Token, blockClosing bool) { if !blockClosing { return } @@ -417,15 +416,15 @@ func (e *blockTokenHandler) OnEndTagToken(token xhtml.Token, blockClosing bool) e.strBuilder.Reset() } -func (e *blockTokenHandler) OnTextTagToken(token xhtml.Token) { +func (e *blockTokenHandler) OnTextTagToken(token xml.CharData) { if e.newlineBeforeNextBlock { e.w.WriteString("\n") e.newlineBeforeNextBlock = false } if !e.started { - token.Data = strings.TrimLeft(token.Data, " \t\n") + token = xml.CharData(strings.TrimLeft(string(token), " \t\n")) } - if len(token.Data) != 0 { + if len(token) != 0 { e.started = true } e.baseTokenHandler.OnTextTagToken(token) @@ -433,10 +432,10 @@ func (e *blockTokenHandler) OnTextTagToken(token xhtml.Token) { type linkTokenHandler struct { baseTokenHandler - linkToken xhtml.Token + linkToken xml.StartElement } -func newLinkTokenHandler(w stringWriter, token xhtml.Token) *linkTokenHandler { +func newLinkTokenHandler(w stringWriter, token xml.StartElement) *linkTokenHandler { return &linkTokenHandler{ baseTokenHandler: baseTokenHandler{ w: w, @@ -444,7 +443,7 @@ func newLinkTokenHandler(w stringWriter, token xhtml.Token) *linkTokenHandler { linkToken: token, } } -func (e *linkTokenHandler) OnEndTagToken(token xhtml.Token, blockClosing bool) { +func (e *linkTokenHandler) OnEndTagToken(token xml.Token, blockClosing bool) { if !blockClosing { return } @@ -467,9 +466,9 @@ func newListTokenHandler(w stringWriter) *listTokenHandler { }, } } -func (e *listTokenHandler) OnStartTagToken(token xhtml.Token) htmlTokenHandler { - switch token.DataAtom { - case atom.Li: +func (e *listTokenHandler) OnStartTagToken(token xml.StartElement) htmlTokenHandler { + switch token.Name.Local { + case "li": if e.items >= 1 { e.w.WriteString("\n\n") } @@ -479,7 +478,7 @@ func (e *listTokenHandler) OnStartTagToken(token xhtml.Token) htmlTokenHandler { return nil } -func (e *listTokenHandler) OnTextTagToken(token xhtml.Token) { +func (e *listTokenHandler) OnTextTagToken(token xml.CharData) { // Squash whitespace between list and items } @@ -500,14 +499,14 @@ func newListItemTokenHandler(w stringWriter) *listItemTokenHandler { }, } } -func (e *listItemTokenHandler) OnStartTagToken(token xhtml.Token) htmlTokenHandler { - switch token.DataAtom { - case atom.P: +func (e *listItemTokenHandler) OnStartTagToken(token xml.StartElement) htmlTokenHandler { + switch token.Name.Local { + case "p": return newBlockTokenHandler(e.w) } return nil } -func (e *listItemTokenHandler) OnEndTagToken(token xhtml.Token, blockClosing bool) { +func (e *listItemTokenHandler) OnEndTagToken(token xml.Token, blockClosing bool) { if !blockClosing { return } @@ -533,7 +532,7 @@ func newTrimSpaceTokenHandler(w stringWriter) *trimSpaceTokenHandler { }, } } -func (e *trimSpaceTokenHandler) OnEndTagToken(token xhtml.Token, blockClosing bool) { +func (e *trimSpaceTokenHandler) OnEndTagToken(token xml.Token, blockClosing bool) { if !blockClosing { return } @@ -541,10 +540,10 @@ func (e *trimSpaceTokenHandler) OnEndTagToken(token xhtml.Token, blockClosing bo e.origWriter.WriteString(strings.TrimSpace(e.strBuilder.String())) } -func getHTMLTokenAttr(attr []xhtml.Attribute, name string) (string, bool) { +func getHTMLTokenAttr(attr []xml.Attr, name string) (string, bool) { for _, a := range attr { - if strings.EqualFold(a.Key, name) { - return a.Val, true + if strings.EqualFold(a.Name.Local, name) { + return a.Value, true } } return "", false diff --git a/private/protocol/eventstream/eventstreamtest/setup_server.go b/private/protocol/eventstream/eventstreamtest/setup_server.go deleted file mode 100644 index 5140abd29b6..00000000000 --- a/private/protocol/eventstream/eventstreamtest/setup_server.go +++ /dev/null @@ -1,18 +0,0 @@ -//go:build !go1.10 -// +build !go1.10 - -package eventstreamtest - -import ( - "net/http" - "net/http/httptest" -) - -// /x/net/http2 is only available for the latest two versions of Go. Any Go -// version older than that cannot use the utility to configure the http2 -// server. -func setupServer(server *httptest.Server, useH2 bool) *http.Client { - server.Start() - - return nil -} diff --git a/private/protocol/eventstream/eventstreamtest/setup_server_1_10.go b/private/protocol/eventstream/eventstreamtest/setup_server_1_10.go deleted file mode 100644 index 642c8235aa3..00000000000 --- a/private/protocol/eventstream/eventstreamtest/setup_server_1_10.go +++ /dev/null @@ -1,41 +0,0 @@ -//go:build go1.15 -// +build go1.15 - -package eventstreamtest - -import ( - "crypto/tls" - "net/http" - "net/http/httptest" - - "golang.org/x/net/http2" -) - -// /x/net/http2 is only available for the latest two versions of Go. Any Go -// version older than that cannot use the utility to configure the http2 -// server. -func setupServer(server *httptest.Server, useH2 bool) *http.Client { - server.Config.TLSConfig = &tls.Config{ - InsecureSkipVerify: true, - } - - clientTrans := &http.Transport{ - TLSClientConfig: &tls.Config{ - InsecureSkipVerify: true, - }, - } - - if useH2 { - http2.ConfigureServer(server.Config, nil) - http2.ConfigureTransport(clientTrans) - server.Config.TLSConfig.NextProtos = []string{http2.NextProtoTLS} - clientTrans.TLSClientConfig.NextProtos = []string{http2.NextProtoTLS} - } - server.TLS = server.Config.TLSConfig - - server.StartTLS() - - return &http.Client{ - Transport: clientTrans, - } -} diff --git a/private/protocol/eventstream/eventstreamtest/testing.go b/private/protocol/eventstream/eventstreamtest/testing.go index 3f77d9d9f91..6246c472b0f 100644 --- a/private/protocol/eventstream/eventstreamtest/testing.go +++ b/private/protocol/eventstream/eventstreamtest/testing.go @@ -6,6 +6,7 @@ package eventstreamtest import ( "bytes" "context" + "crypto/tls" "fmt" "io" "net/http" @@ -21,14 +22,43 @@ import ( "github.com/aws/aws-sdk-go/awstesting/unit" "github.com/aws/aws-sdk-go/private/protocol" "github.com/aws/aws-sdk-go/private/protocol/eventstream" - "golang.org/x/net/http2" ) const ( errClientDisconnected = "client disconnected" errStreamClosed = "http2: stream closed" + + // x/net had an exported StreamError type that we could assert against, + // net/http's h2 implementation internalizes all of its error types but the + // Error() text pattern remains identical + http2StreamError = "stream error: stream ID" ) +func setupServer(server *httptest.Server, useH2 bool) *http.Client { + server.Config.TLSConfig = &tls.Config{ + InsecureSkipVerify: true, + } + + tr := &http.Transport{ + TLSClientConfig: &tls.Config{ + InsecureSkipVerify: true, + }, + } + + if useH2 { + server.Config.TLSConfig.NextProtos = []string{"h2"} + tr.TLSClientConfig.NextProtos = []string{"h2"} + tr.ForceAttemptHTTP2 = true + } + server.TLS = server.Config.TLSConfig + + server.StartTLS() + + return &http.Client{ + Transport: tr, + } +} + // ServeEventStream provides serving EventStream messages from a HTTP server to // the client. The events are sent sequentially to the client without delay. type ServeEventStream struct { @@ -106,12 +136,7 @@ func (s *ServeEventStream) serveBiDirectionalStream(w http.ResponseWriter, r *ht } func isError(err error) bool { - switch err.(type) { - case http2.StreamError: - return false - } - - for _, s := range []string{errClientDisconnected, errStreamClosed} { + for _, s := range []string{errClientDisconnected, errStreamClosed, http2StreamError} { if strings.Contains(err.Error(), s) { return false } diff --git a/service/acmpca/api.go b/service/acmpca/api.go index d82663775dc..4decb2447f5 100644 --- a/service/acmpca/api.go +++ b/service/acmpca/api.go @@ -2771,6 +2771,7 @@ type ASN1Subject struct { // located. Country *string `min:"2" type:"string"` + // // Contains a sequence of one or more X.500 relative distinguished names (RDNs), // each of which consists of an object identifier (OID) and a value. For more // information, see NIST’s definition of Object Identifier (OID) (https://csrc.nist.gov/glossary/term/Object_Identifier). @@ -4360,6 +4361,7 @@ type CustomAttribute struct { // ObjectIdentifier is a required field ObjectIdentifier *string `type:"string" required:"true"` + // // Specifies the attribute value of relative distinguished name (RDN). // // Value is a required field @@ -4422,15 +4424,18 @@ func (s *CustomAttribute) SetValue(v string) *CustomAttribute { type CustomExtension struct { _ struct{} `type:"structure"` + // // Specifies the critical flag of the X.509 extension. Critical *bool `type:"boolean"` + // // Specifies the object identifier (OID) of the X.509 extension. For more information, // see the Global OID reference database. (https://oidref.com/2.5.29) // // ObjectIdentifier is a required field ObjectIdentifier *string `type:"string" required:"true"` + // // Specifies the base64-encoded value of the X.509 extension. // // Value is a required field @@ -5083,6 +5088,7 @@ type Extensions struct { // paths that include this certificate. CertificatePolicies []*PolicyInformation `min:"1" type:"list"` + // // Contains a sequence of one or more X.509 extensions, each of which consists // of an object identifier (OID), a base64-encoded value, and the critical flag. // For more information, see the Global OID reference database. (https://oidref.com/2.5.29) diff --git a/service/iam/api.go b/service/iam/api.go index 4b9f6181b11..d7737eb6ff6 100644 --- a/service/iam/api.go +++ b/service/iam/api.go @@ -20805,6 +20805,7 @@ type CreateServiceLinkedRoleInput struct { // AWSServiceName is a required field AWSServiceName *string `min:"1" type:"string" required:"true"` + // // A string that you provide, which is combined with the service-provided prefix // to form the complete role name. If you make multiple requests for the same // service, then you must supply a different CustomSuffix for each request. diff --git a/service/kinesis/cust_integ_shared_test.go b/service/kinesis/cust_integ_shared_test.go index a408ef4c4ba..eab7baa92d4 100644 --- a/service/kinesis/cust_integ_shared_test.go +++ b/service/kinesis/cust_integ_shared_test.go @@ -19,7 +19,6 @@ import ( "github.com/aws/aws-sdk-go/aws/awserr" "github.com/aws/aws-sdk-go/awstesting/integration" "github.com/aws/aws-sdk-go/service/kinesis" - "golang.org/x/net/http2" ) var ( @@ -131,26 +130,18 @@ func TestMain(m *testing.M) { } func createClient() *kinesis.Kinesis { - ts := &http.Transport{} - - if skipTLSVerify { - ts.TLSClientConfig = &tls.Config{ - InsecureSkipVerify: true, - } + ts := &http.Transport{ + TLSClientConfig: &tls.Config{ + InsecureSkipVerify: skipTLSVerify, + }, } - http2.ConfigureTransport(ts) switch hUsage { - case "default": - // Restore H2 optional support since the Transport/TLSConfig was - // modified. - http2.ConfigureTransport(ts) - case "1": - // Do nothing. Without usign ConfigureTransport h2 won't be available. + case "1", "default": ts.TLSClientConfig.NextProtos = []string{"http/1.1"} case "2": // Force the TLS ALPN (NextProto) to H2 only. - ts.TLSClientConfig.NextProtos = []string{http2.NextProtoTLS} + ts.TLSClientConfig.NextProtos = []string{"h2"} default: panic("unknown h usage, " + hUsage) } diff --git a/service/kms/api.go b/service/kms/api.go index 6f2ea228a16..30d4752cd4e 100644 --- a/service/kms/api.go +++ b/service/kms/api.go @@ -807,6 +807,7 @@ func (c *KMS) CreateCustomKeyStoreRequest(input *CreateCustomKeyStoreInput) (req // for Amazon VPC endpoint service connectivity for an external key store. // // - XksProxyInvalidResponseException +// // KMS cannot interpret the response it received from the external key store // proxy. The problem might be a poorly constructed response, but it could also // be a transient network issue. If you see this error repeatedly, report it @@ -9167,6 +9168,7 @@ func (c *KMS) UpdateCustomKeyStoreRequest(input *UpdateCustomKeyStoreInput) (req // for Amazon VPC endpoint service connectivity for an external key store. // // - XksProxyInvalidResponseException +// // KMS cannot interpret the response it received from the external key store // proxy. The problem might be a poorly constructed response, but it could also // be a transient network issue. If you see this error repeatedly, report it diff --git a/service/kms/errors.go b/service/kms/errors.go index 5cce759a066..993fd238634 100644 --- a/service/kms/errors.go +++ b/service/kms/errors.go @@ -425,6 +425,7 @@ const ( // ErrCodeXksProxyInvalidResponseException for service response error code // "XksProxyInvalidResponseException". // + // // KMS cannot interpret the response it received from the external key store // proxy. The problem might be a poorly constructed response, but it could also // be a transient network issue. If you see this error repeatedly, report it diff --git a/service/lexruntimeservice/api.go b/service/lexruntimeservice/api.go index 5806dd970fe..3763c0d43ab 100644 --- a/service/lexruntimeservice/api.go +++ b/service/lexruntimeservice/api.go @@ -3442,6 +3442,7 @@ type PutSessionOutput struct { // Content type as specified in the Accept HTTP header in the request. ContentType *string `location:"header" locationName:"Content-Type" type:"string"` + // // * ConfirmIntent - Amazon Lex is expecting a "yes" or "no" response to // confirm the intent before fulfilling an intent. // diff --git a/service/macie2/api.go b/service/macie2/api.go index 8ad699282ee..9b209e0f340 100644 --- a/service/macie2/api.go +++ b/service/macie2/api.go @@ -2309,7 +2309,6 @@ func (c *Macie2) DisassociateFromMasterAccountRequest(input *DisassociateFromMas // // (Deprecated) Disassociates a member account from its Amazon Macie administrator // account. This operation has been replaced by the DisassociateFromAdministratorAccount -// operation. // // 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 @@ -4061,7 +4060,6 @@ func (c *Macie2) GetMasterAccountRequest(input *GetMasterAccountInput) (req *req // // (Deprecated) Retrieves information about the Amazon Macie administrator account // for an account. This operation has been replaced by the GetAdministratorAccount -// operation. // // 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 diff --git a/service/mediaconvert/api.go b/service/mediaconvert/api.go index 496fe1958fa..72a8aad5cbc 100644 --- a/service/mediaconvert/api.go +++ b/service/mediaconvert/api.go @@ -6876,10 +6876,7 @@ type CmafGroupSettings struct { // nearest integer value above its current value in seconds. When set to SPEC\\_COMPLIANT, // the segment target duration is rounded up to the nearest integer value if // fraction seconds are greater than or equal to 0.5 (>= 0.5) and rounded down - // if less than 0.5 (< 0.5). You may need to use LEGACY if your client needs - // to ensure that the target duration is always longer than the actual duration - // of the segment. Some older players may experience interrupted playback when - // the actual duration of a track in a segment is longer than the target duration. + // if less than 0.5 ( TargetDurationCompatibilityMode *string `locationName:"targetDurationCompatibilityMode" type:"string" enum:"CmafTargetDurationCompatibilityMode"` // Specify the video sample composition time offset mode in the output fMP4 @@ -14542,10 +14539,7 @@ type HlsGroupSettings struct { // nearest integer value above its current value in seconds. When set to SPEC\\_COMPLIANT, // the segment target duration is rounded up to the nearest integer value if // fraction seconds are greater than or equal to 0.5 (>= 0.5) and rounded down - // if less than 0.5 (< 0.5). You may need to use LEGACY if your client needs - // to ensure that the target duration is always longer than the actual duration - // of the segment. Some older players may experience interrupted playback when - // the actual duration of a track in a segment is longer than the target duration. + // if less than 0.5 ( TargetDurationCompatibilityMode *string `locationName:"targetDurationCompatibilityMode" type:"string" enum:"HlsTargetDurationCompatibilityMode"` // Specify the type of the ID3 frame to use for ID3 timestamps in your output. @@ -30064,10 +30058,7 @@ func CmafStreamInfResolution_Values() []string { // nearest integer value above its current value in seconds. When set to SPEC\\_COMPLIANT, // the segment target duration is rounded up to the nearest integer value if // fraction seconds are greater than or equal to 0.5 (>= 0.5) and rounded down -// if less than 0.5 (< 0.5). You may need to use LEGACY if your client needs -// to ensure that the target duration is always longer than the actual duration -// of the segment. Some older players may experience interrupted playback when -// the actual duration of a track in a segment is longer than the target duration. +// if less than 0.5 ( const ( // CmafTargetDurationCompatibilityModeLegacy is a CmafTargetDurationCompatibilityMode enum value CmafTargetDurationCompatibilityModeLegacy = "LEGACY" @@ -34177,10 +34168,7 @@ func HlsStreamInfResolution_Values() []string { // nearest integer value above its current value in seconds. When set to SPEC\\_COMPLIANT, // the segment target duration is rounded up to the nearest integer value if // fraction seconds are greater than or equal to 0.5 (>= 0.5) and rounded down -// if less than 0.5 (< 0.5). You may need to use LEGACY if your client needs -// to ensure that the target duration is always longer than the actual duration -// of the segment. Some older players may experience interrupted playback when -// the actual duration of a track in a segment is longer than the target duration. +// if less than 0.5 ( const ( // HlsTargetDurationCompatibilityModeLegacy is a HlsTargetDurationCompatibilityMode enum value HlsTargetDurationCompatibilityModeLegacy = "LEGACY" diff --git a/service/medialive/api.go b/service/medialive/api.go index 0069e2f7c11..0bfc6c876e2 100644 --- a/service/medialive/api.go +++ b/service/medialive/api.go @@ -26929,8 +26929,7 @@ type InputLossBehavior struct { // On input loss, the number of milliseconds to substitute black into the output // before switching to the frame specified by inputLossImageType. A value x, - // where 0 <= x <= 1,000,000 and a value of 1,000,000 will be interpreted as - // infinite. + // where 0 BlackFrameMsec *int64 `locationName:"blackFrameMsec" type:"integer"` // When input loss image type is "color" this field specifies the color to use. @@ -26946,8 +26945,7 @@ type InputLossBehavior struct { InputLossImageType *string `locationName:"inputLossImageType" type:"string" enum:"InputLossImageType"` // On input loss, the number of milliseconds to repeat the previous picture - // before substituting black into the output. A value x, where 0 <= x <= 1,000,000 - // and a value of 1,000,000 will be interpreted as infinite. + // before substituting black into the output. A value x, where 0 RepeatFrameMsec *int64 `locationName:"repeatFrameMsec" type:"integer"` } diff --git a/service/mq/api.go b/service/mq/api.go index fa6cf02bb72..5be819cc493 100644 --- a/service/mq/api.go +++ b/service/mq/api.go @@ -7082,11 +7082,6 @@ type User struct { // must not contain a tilde (~) character. Amazon MQ prohibts using guest // as a valid usename. This value must be 2-100 characters long. // - // Do not add personally identifiable information (PII) or other confidential - // or sensitive information in broker usernames. Broker usernames are accessible - // to other Amazon Web Services services, including CloudWatch Logs. Broker - // usernames are not intended to be used for private or sensitive data. - // // Username is a required field Username *string `locationName:"username" type:"string" required:"true"` } diff --git a/service/pinpoint/api.go b/service/pinpoint/api.go index 9948ae4ce97..b88fa6f12d4 100644 --- a/service/pinpoint/api.go +++ b/service/pinpoint/api.go @@ -14562,6 +14562,26 @@ func (s *ApplicationsResponse) SetNextToken(v string) *ApplicationsResponse { type AttributeDimension struct { _ struct{} `type:"structure"` + // * INCLUSIVE - endpoints that have attributes matching the values are included + // in the segment. + // + // * EXCLUSIVE - endpoints that have attributes matching the values are excluded + // in the segment. + // + // * CONTAINS - endpoints that have attributes' substrings match the values + // are included in the segment. + // + // * BEFORE - endpoints with attributes read as ISO_INSTANT datetimes before + // the value are included in the segment. + // + // * AFTER - endpoints with attributes read as ISO_INSTANT datetimes after + // the value are included in the segment. + // + // * ON - endpoints with attributes read as ISO_INSTANT dates on the value + // are included in the segment. Time is ignored in this comparison. + // + // * BETWEEN - endpoints with attributes read as ISO_INSTANT datetimes between + // the values are included in the segment. AttributeType *string `type:"string" enum:"AttributeType"` // The criteria values to use for the segment dimension. Depending on the value @@ -15381,7 +15401,7 @@ type CampaignEventFilter struct { // The type of event that causes the campaign to be sent. Valid values are: // SYSTEM, sends the campaign when a system event occurs; and, ENDPOINT, sends - // the campaign when an endpoint event (Events resource) occurs. + // the campaign when an endpoint event (Events // // FilterType is a required field FilterType *string `type:"string" required:"true" enum:"FilterType"` @@ -18175,12 +18195,7 @@ type CustomMessageActivity struct { // The unique identifier for the version of the message template to use for // the message. If specified, this value must match the identifier for an existing // template version. To retrieve a list of versions and version identifiers - // for a template, use the Template Versions resource. - // - // If you don't specify a value for this property, Amazon Pinpoint uses the - // active version of the template. The active version is typically the version - // of a template that's been most recently reviewed and approved for use, depending - // on your workflow. It isn't necessarily the latest version of a template. + // for a template, use the Template Versions TemplateVersion *string `type:"string"` } @@ -21055,12 +21070,7 @@ type EmailMessageActivity struct { // The unique identifier for the version of the email template to use for the // message. If specified, this value must match the identifier for an existing // template version. To retrieve a list of versions and version identifiers - // for a template, use the Template Versions resource. - // - // If you don't specify a value for this property, Amazon Pinpoint uses the - // active version of the template. The active version is typically the version - // of a template that's been most recently reviewed and approved for use, depending - // on your workflow. It isn't necessarily the latest version of a template. + // for a template, use the Template Versions TemplateVersion *string `type:"string"` } @@ -22745,7 +22755,7 @@ type EventFilter struct { // The type of event that causes the campaign to be sent or the journey activity // to be performed. Valid values are: SYSTEM, sends the campaign or performs // the activity when a system event occurs; and, ENDPOINT, sends the campaign - // or performs the activity when an endpoint event (Events resource) occurs. + // or performs the activity when an endpoint event (Events resource // // FilterType is a required field FilterType *string `type:"string" required:"true" enum:"FilterType"` @@ -33900,12 +33910,7 @@ type PushMessageActivity struct { // The unique identifier for the version of the push notification template to // use for the message. If specified, this value must match the identifier for // an existing template version. To retrieve a list of versions and version - // identifiers for a template, use the Template Versions resource. - // - // If you don't specify a value for this property, Amazon Pinpoint uses the - // active version of the template. The active version is typically the version - // of a template that's been most recently reviewed and approved for use, depending - // on your workflow. It isn't necessarily the latest version of a template. + // identifiers for a template, use the Template Versions TemplateVersion *string `type:"string"` } @@ -35443,12 +35448,7 @@ type SMSMessageActivity struct { // The unique identifier for the version of the SMS template to use for the // message. If specified, this value must match the identifier for an existing // template version. To retrieve a list of versions and version identifiers - // for a template, use the Template Versions resource. - // - // If you don't specify a value for this property, Amazon Pinpoint uses the - // active version of the template. The active version is typically the version - // of a template that's been most recently reviewed and approved for use, depending - // on your workflow. It isn't necessarily the latest version of a template. + // for a template, use the Template Versions TemplateVersion *string `type:"string"` } @@ -37939,12 +37939,7 @@ type Template struct { // The unique identifier for the version of the message template to use for // the message. If specified, this value must match the identifier for an existing // template version. To retrieve a list of versions and version identifiers - // for a template, use the Template Versions resource. - // - // If you don't specify a value for this property, Amazon Pinpoint uses the - // active version of the template. The active version is typically the version - // of a template that's been most recently reviewed and approved for use, depending - // on your workflow. It isn't necessarily the latest version of a template. + // for a template, use the Template Versions Version *string `type:"string"` } @@ -37988,7 +37983,7 @@ type TemplateActiveVersionRequest struct { // the unique identifier for any existing version of the template. If you specify // an identifier, the value must match the identifier for an existing template // version. To retrieve a list of versions and version identifiers for a template, - // use the Template Versions resource. + // use the Template Versions Version *string `type:"string"` } @@ -42255,7 +42250,7 @@ type WriteApplicationSettingsRequest struct { // that are used by campaigns in the application. // // To override these settings and define custom settings for a specific campaign, - // use the CampaignHook object of the Campaign resource. + // use the CampaignHook object of the Campaign CampaignHook *CampaignHook `type:"structure"` // Specifies whether to enable application-related alarms in Amazon CloudWatch. @@ -42268,7 +42263,7 @@ type WriteApplicationSettingsRequest struct { // The default sending limits for campaigns in the application. To override // these limits and define custom limits for a specific campaign or journey, - // use the Campaign resource or the Journey resource, respectively. + // use the Campaign Limits *CampaignLimits `type:"structure"` // The default quiet time for campaigns in the application. Quiet time is a @@ -42290,8 +42285,7 @@ type WriteApplicationSettingsRequest struct { // from a campaign or journey, even if quiet time is enabled. // // To override the default quiet time settings for a specific campaign or journey, - // use the Campaign resource or the Journey resource to define a custom quiet - // time for the campaign or journey. + // use the Campaign QuietTime *QuietTime `type:"structure"` } @@ -42740,7 +42734,7 @@ type WriteJourneyRequest struct { // // PAUSED, CANCELLED, COMPLETED, and CLOSED states are not supported in requests // to create or update a journey. To cancel, pause, or resume a journey, use - // the Journey State resource. + // the Journey State State *string `type:"string" enum:"State"` // An array of time zone estimation methods, if any, to use for determining diff --git a/service/rds/api.go b/service/rds/api.go index 272e3c3dbf3..0c4f316c51d 100644 --- a/service/rds/api.go +++ b/service/rds/api.go @@ -45030,18 +45030,18 @@ type FailoverState struct { // The current status of the global cluster. Possible values are as follows: // - // * pending – The service received a request to switch over or fail over + // * pending – The service received a request to switch over or fail over // the global cluster. The global cluster's primary DB cluster and the specified // secondary DB cluster are being verified before the operation starts. // - // * failing-over – Aurora is promoting the chosen secondary Aurora DB - // cluster to become the new primary DB cluster to fail over the global cluster. + // * failing-over – Aurora is promoting the chosen secondary Aurora DB cluster + // to become the new primary DB cluster to fail over the global cluster. // - // * cancelling – The request to switch over or fail over the global cluster + // * cancelling – The request to switch over or fail over the global cluster // was cancelled and the primary Aurora DB cluster and the selected secondary // Aurora DB cluster are returning to their previous states. // - // * switching-over – This status covers the range of Aurora internal operations + // * switching-over – This status covers the range of Aurora internal operations // that take place during the switchover process, such as demoting the primary // Aurora DB cluster, promoting the secondary Aurora DB cluster, and synchronizing // replicas. diff --git a/service/rekognition/api.go b/service/rekognition/api.go index 6e837a9ee8f..7032a789542 100644 --- a/service/rekognition/api.go +++ b/service/rekognition/api.go @@ -123,6 +123,7 @@ func (c *Rekognition) AssociateFacesRequest(input *AssociateFacesInput) (req *re // or deletion of the User caused an inconsistent state. ** // // - ServiceQuotaExceededException +// // The size of the collection exceeds the allowed limit. For more information, // see Guidelines and quotas in Amazon Rekognition in the Amazon Rekognition // Developer Guide. @@ -413,6 +414,7 @@ func (c *Rekognition) CopyProjectVersionRequest(input *CopyProjectVersionInput) // call again. // // - ServiceQuotaExceededException +// // The size of the collection exceeds the allowed limit. For more information, // see Guidelines and quotas in Amazon Rekognition in the Amazon Rekognition // Developer Guide. @@ -533,6 +535,7 @@ func (c *Rekognition) CreateCollectionRequest(input *CreateCollectionInput) (req // A resource with the specified ID already exists. // // - ServiceQuotaExceededException +// // The size of the collection exceeds the allowed limit. For more information, // see Guidelines and quotas in Amazon Rekognition in the Amazon Rekognition // Developer Guide. @@ -1009,6 +1012,7 @@ func (c *Rekognition) CreateProjectVersionRequest(input *CreateProjectVersionInp // this limit, contact Amazon Rekognition. // // - ServiceQuotaExceededException +// // The size of the collection exceeds the allowed limit. For more information, // see Guidelines and quotas in Amazon Rekognition in the Amazon Rekognition // Developer Guide. @@ -1145,6 +1149,7 @@ func (c *Rekognition) CreateStreamProcessorRequest(input *CreateStreamProcessorI // this limit, contact Amazon Rekognition. // // - ServiceQuotaExceededException +// // The size of the collection exceeds the allowed limit. For more information, // see Guidelines and quotas in Amazon Rekognition in the Amazon Rekognition // Developer Guide. @@ -1242,6 +1247,7 @@ func (c *Rekognition) CreateUserRequest(input *CreateUserInput) (req *request.Re // The resource specified in the request cannot be found. // // - ServiceQuotaExceededException +// // The size of the collection exceeds the allowed limit. For more information, // see Guidelines and quotas in Amazon Rekognition in the Amazon Rekognition // Developer Guide. @@ -5832,6 +5838,7 @@ func (c *Rekognition) IndexFacesRequest(input *IndexFacesInput) (req *request.Re // The provided image format is not supported. // // - ServiceQuotaExceededException +// // The size of the collection exceeds the allowed limit. For more information, // see Guidelines and quotas in Amazon Rekognition in the Amazon Rekognition // Developer Guide. @@ -7339,6 +7346,7 @@ func (c *Rekognition) PutProjectPolicyRequest(input *PutProjectPolicyInput) (req // call again. // // - ServiceQuotaExceededException +// // The size of the collection exceeds the allowed limit. For more information, // see Guidelines and quotas in Amazon Rekognition in the Amazon Rekognition // Developer Guide. @@ -9585,6 +9593,7 @@ func (c *Rekognition) TagResourceRequest(input *TagResourceInput) (req *request. // the API operation again. // // - ServiceQuotaExceededException +// // The size of the collection exceeds the allowed limit. For more information, // see Guidelines and quotas in Amazon Rekognition in the Amazon Rekognition // Developer Guide. diff --git a/service/rekognition/errors.go b/service/rekognition/errors.go index ad4bf56fb1a..4078bcd7ca4 100644 --- a/service/rekognition/errors.go +++ b/service/rekognition/errors.go @@ -141,6 +141,7 @@ const ( // ErrCodeServiceQuotaExceededException for service response error code // "ServiceQuotaExceededException". // + // // The size of the collection exceeds the allowed limit. For more information, // see Guidelines and quotas in Amazon Rekognition in the Amazon Rekognition // Developer Guide. diff --git a/service/sagemaker/api.go b/service/sagemaker/api.go index 995fe135374..2d04a5201e8 100644 --- a/service/sagemaker/api.go +++ b/service/sagemaker/api.go @@ -36627,6 +36627,7 @@ type Channel struct { // To use a model for incremental training, choose File input model. InputMode *string `type:"string" enum:"TrainingInputMode"` + // // Specify RecordIO as the value when input data is in raw format but the training // algorithm requires the RecordIO format. In this case, SageMaker wraps each // individual S3 object in a RecordIO record. If the input data is already in