github.com/aavshr/aws-sdk-go@v1.41.3/private/model/api/codegentest/service/rpcservice/api.go (about) 1 // Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. 2 3 package rpcservice 4 5 import ( 6 "bytes" 7 "fmt" 8 "io" 9 "sync" 10 "time" 11 12 "github.com/aavshr/aws-sdk-go/aws" 13 "github.com/aavshr/aws-sdk-go/aws/awserr" 14 "github.com/aavshr/aws-sdk-go/aws/awsutil" 15 "github.com/aavshr/aws-sdk-go/aws/client" 16 "github.com/aavshr/aws-sdk-go/aws/request" 17 "github.com/aavshr/aws-sdk-go/private/protocol" 18 "github.com/aavshr/aws-sdk-go/private/protocol/eventstream" 19 "github.com/aavshr/aws-sdk-go/private/protocol/eventstream/eventstreamapi" 20 "github.com/aavshr/aws-sdk-go/private/protocol/jsonrpc" 21 "github.com/aavshr/aws-sdk-go/private/protocol/rest" 22 ) 23 24 const opEmptyStream = "EmptyStream" 25 26 // EmptyStreamRequest generates a "aws/request.Request" representing the 27 // client's request for the EmptyStream operation. The "output" return 28 // value will be populated with the request's response once the request completes 29 // successfully. 30 // 31 // Use "Send" method on the returned Request to send the API call to the service. 32 // the "output" return value is not valid until after Send returns without error. 33 // 34 // See EmptyStream for more information on using the EmptyStream 35 // API call, and error handling. 36 // 37 // This method is useful when you want to inject custom logic or configuration 38 // into the SDK's request lifecycle. Such as custom headers, or retry logic. 39 // 40 // 41 // // Example sending a request using the EmptyStreamRequest method. 42 // req, resp := client.EmptyStreamRequest(params) 43 // 44 // err := req.Send() 45 // if err == nil { // resp is now filled 46 // fmt.Println(resp) 47 // } 48 // 49 // See also, https://docs.aws.amazon.com/goto/WebAPI/RPCService-0000-00-00/EmptyStream 50 func (c *RPCService) EmptyStreamRequest(input *EmptyStreamInput) (req *request.Request, output *EmptyStreamOutput) { 51 op := &request.Operation{ 52 Name: opEmptyStream, 53 HTTPMethod: "POST", 54 HTTPPath: "/", 55 } 56 57 if input == nil { 58 input = &EmptyStreamInput{} 59 } 60 61 output = &EmptyStreamOutput{} 62 req = c.newRequest(op, input, output) 63 64 es := NewEmptyStreamEventStream() 65 output.eventStream = es 66 67 req.Handlers.Send.Swap(client.LogHTTPResponseHandler.Name, client.LogHTTPResponseHeaderHandler) 68 req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, rest.UnmarshalHandler) 69 req.Handlers.Unmarshal.PushBack(es.runOutputStream) 70 es.output = output 71 req.Handlers.Unmarshal.PushBack(es.recvInitialEvent) 72 req.Handlers.Unmarshal.PushBack(es.runOnStreamPartClose) 73 return 74 } 75 76 // EmptyStream API operation for RPC Service. 77 // 78 // Returns awserr.Error for service API and SDK errors. Use runtime type assertions 79 // with awserr.Error's Code and Message methods to get detailed information about 80 // the error. 81 // 82 // See the AWS API reference guide for RPC Service's 83 // API operation EmptyStream for usage and error information. 84 // See also, https://docs.aws.amazon.com/goto/WebAPI/RPCService-0000-00-00/EmptyStream 85 func (c *RPCService) EmptyStream(input *EmptyStreamInput) (*EmptyStreamOutput, error) { 86 req, out := c.EmptyStreamRequest(input) 87 return out, req.Send() 88 } 89 90 // EmptyStreamWithContext is the same as EmptyStream with the addition of 91 // the ability to pass a context and additional request options. 92 // 93 // See EmptyStream for details on how to use this API operation. 94 // 95 // The context must be non-nil and will be used for request cancellation. If 96 // the context is nil a panic will occur. In the future the SDK may create 97 // sub-contexts for http.Requests. See https://golang.org/pkg/context/ 98 // for more information on using Contexts. 99 func (c *RPCService) EmptyStreamWithContext(ctx aws.Context, input *EmptyStreamInput, opts ...request.Option) (*EmptyStreamOutput, error) { 100 req, out := c.EmptyStreamRequest(input) 101 req.SetContext(ctx) 102 req.ApplyOptions(opts...) 103 return out, req.Send() 104 } 105 106 var _ awserr.Error 107 108 // EmptyStreamEventStream provides the event stream handling for the EmptyStream. 109 // 110 // For testing and mocking the event stream this type should be initialized via 111 // the NewEmptyStreamEventStream constructor function. Using the functional options 112 // to pass in nested mock behavior. 113 type EmptyStreamEventStream struct { 114 115 // Reader is the EventStream reader for the EmptyEventStream 116 // events. This value is automatically set by the SDK when the API call is made 117 // Use this member when unit testing your code with the SDK to mock out the 118 // EventStream Reader. 119 // 120 // Must not be nil. 121 Reader EmptyEventStreamReader 122 123 outputReader io.ReadCloser 124 output *EmptyStreamOutput 125 126 done chan struct{} 127 closeOnce sync.Once 128 err *eventstreamapi.OnceError 129 } 130 131 // NewEmptyStreamEventStream initializes an EmptyStreamEventStream. 132 // This function should only be used for testing and mocking the EmptyStreamEventStream 133 // stream within your application. 134 // 135 // The Reader member must be set before reading events from the stream. 136 // 137 // es := NewEmptyStreamEventStream(func(o *EmptyStreamEventStream{ 138 // es.Reader = myMockStreamReader 139 // }) 140 func NewEmptyStreamEventStream(opts ...func(*EmptyStreamEventStream)) *EmptyStreamEventStream { 141 es := &EmptyStreamEventStream{ 142 done: make(chan struct{}), 143 err: eventstreamapi.NewOnceError(), 144 } 145 146 for _, fn := range opts { 147 fn(es) 148 } 149 150 return es 151 } 152 153 func (es *EmptyStreamEventStream) runOnStreamPartClose(r *request.Request) { 154 if es.done == nil { 155 return 156 } 157 go es.waitStreamPartClose() 158 159 } 160 161 func (es *EmptyStreamEventStream) waitStreamPartClose() { 162 var outputErrCh <-chan struct{} 163 if v, ok := es.Reader.(interface{ ErrorSet() <-chan struct{} }); ok { 164 outputErrCh = v.ErrorSet() 165 } 166 var outputClosedCh <-chan struct{} 167 if v, ok := es.Reader.(interface{ Closed() <-chan struct{} }); ok { 168 outputClosedCh = v.Closed() 169 } 170 171 select { 172 case <-es.done: 173 case <-outputErrCh: 174 es.err.SetError(es.Reader.Err()) 175 es.Close() 176 case <-outputClosedCh: 177 if err := es.Reader.Err(); err != nil { 178 es.err.SetError(es.Reader.Err()) 179 } 180 es.Close() 181 } 182 } 183 184 type eventTypeForEmptyStreamEventStreamOutputEvent struct { 185 unmarshalerForEvent func(string) (eventstreamapi.Unmarshaler, error) 186 output *EmptyStreamOutput 187 } 188 189 func (e eventTypeForEmptyStreamEventStreamOutputEvent) UnmarshalerForEventName(eventType string) (eventstreamapi.Unmarshaler, error) { 190 if eventType == "initial-response" { 191 return e.output, nil 192 } 193 return e.unmarshalerForEvent(eventType) 194 } 195 196 // Events returns a channel to read events from. 197 // 198 // These events are: 199 // 200 // * EmptyEventStreamUnknownEvent 201 func (es *EmptyStreamEventStream) Events() <-chan EmptyEventStreamEvent { 202 return es.Reader.Events() 203 } 204 205 func (es *EmptyStreamEventStream) runOutputStream(r *request.Request) { 206 var opts []func(*eventstream.Decoder) 207 if r.Config.Logger != nil && r.Config.LogLevel.Matches(aws.LogDebugWithEventStreamBody) { 208 opts = append(opts, eventstream.DecodeWithLogger(r.Config.Logger)) 209 } 210 211 unmarshalerForEvent := unmarshalerForEmptyEventStreamEvent{ 212 metadata: protocol.ResponseMetadata{ 213 StatusCode: r.HTTPResponse.StatusCode, 214 RequestID: r.RequestID, 215 }, 216 }.UnmarshalerForEventName 217 unmarshalerForEvent = eventTypeForEmptyStreamEventStreamOutputEvent{ 218 unmarshalerForEvent: unmarshalerForEvent, 219 output: es.output, 220 }.UnmarshalerForEventName 221 222 decoder := eventstream.NewDecoder(r.HTTPResponse.Body, opts...) 223 eventReader := eventstreamapi.NewEventReader(decoder, 224 protocol.HandlerPayloadUnmarshal{ 225 Unmarshalers: r.Handlers.UnmarshalStream, 226 }, 227 unmarshalerForEvent, 228 ) 229 230 es.outputReader = r.HTTPResponse.Body 231 es.Reader = newReadEmptyEventStream(eventReader) 232 } 233 func (es *EmptyStreamEventStream) recvInitialEvent(r *request.Request) { 234 // Wait for the initial response event, which must be the first 235 // event to be received from the API. 236 select { 237 case event, ok := <-es.Events(): 238 if !ok { 239 return 240 } 241 242 v, ok := event.(*EmptyStreamOutput) 243 if !ok || v == nil { 244 r.Error = awserr.New( 245 request.ErrCodeSerialization, 246 fmt.Sprintf("invalid event, %T, expect %T, %v", 247 event, (*EmptyStreamOutput)(nil), v), 248 nil, 249 ) 250 return 251 } 252 253 *es.output = *v 254 es.output.eventStream = es 255 } 256 } 257 258 // Close closes the stream. This will also cause the stream to be closed. 259 // Close must be called when done using the stream API. Not calling Close 260 // may result in resource leaks. 261 // 262 // You can use the closing of the Reader's Events channel to terminate your 263 // application's read from the API's stream. 264 // 265 func (es *EmptyStreamEventStream) Close() (err error) { 266 es.closeOnce.Do(es.safeClose) 267 return es.Err() 268 } 269 270 func (es *EmptyStreamEventStream) safeClose() { 271 if es.done != nil { 272 close(es.done) 273 } 274 275 es.Reader.Close() 276 if es.outputReader != nil { 277 es.outputReader.Close() 278 } 279 } 280 281 // Err returns any error that occurred while reading or writing EventStream 282 // Events from the service API's response. Returns nil if there were no errors. 283 func (es *EmptyStreamEventStream) Err() error { 284 if err := es.err.Err(); err != nil { 285 return err 286 } 287 if err := es.Reader.Err(); err != nil { 288 return err 289 } 290 291 return nil 292 } 293 294 const opGetEventStream = "GetEventStream" 295 296 // GetEventStreamRequest generates a "aws/request.Request" representing the 297 // client's request for the GetEventStream operation. The "output" return 298 // value will be populated with the request's response once the request completes 299 // successfully. 300 // 301 // Use "Send" method on the returned Request to send the API call to the service. 302 // the "output" return value is not valid until after Send returns without error. 303 // 304 // See GetEventStream for more information on using the GetEventStream 305 // API call, and error handling. 306 // 307 // This method is useful when you want to inject custom logic or configuration 308 // into the SDK's request lifecycle. Such as custom headers, or retry logic. 309 // 310 // 311 // // Example sending a request using the GetEventStreamRequest method. 312 // req, resp := client.GetEventStreamRequest(params) 313 // 314 // err := req.Send() 315 // if err == nil { // resp is now filled 316 // fmt.Println(resp) 317 // } 318 // 319 // See also, https://docs.aws.amazon.com/goto/WebAPI/RPCService-0000-00-00/GetEventStream 320 func (c *RPCService) GetEventStreamRequest(input *GetEventStreamInput) (req *request.Request, output *GetEventStreamOutput) { 321 op := &request.Operation{ 322 Name: opGetEventStream, 323 HTTPMethod: "POST", 324 HTTPPath: "/", 325 } 326 327 if input == nil { 328 input = &GetEventStreamInput{} 329 } 330 331 output = &GetEventStreamOutput{} 332 req = c.newRequest(op, input, output) 333 334 es := NewGetEventStreamEventStream() 335 output.eventStream = es 336 337 req.Handlers.Send.Swap(client.LogHTTPResponseHandler.Name, client.LogHTTPResponseHeaderHandler) 338 req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, rest.UnmarshalHandler) 339 req.Handlers.Unmarshal.PushBack(es.runOutputStream) 340 es.output = output 341 req.Handlers.Unmarshal.PushBack(es.recvInitialEvent) 342 req.Handlers.Unmarshal.PushBack(es.runOnStreamPartClose) 343 return 344 } 345 346 // GetEventStream API operation for RPC Service. 347 // 348 // Returns awserr.Error for service API and SDK errors. Use runtime type assertions 349 // with awserr.Error's Code and Message methods to get detailed information about 350 // the error. 351 // 352 // See the AWS API reference guide for RPC Service's 353 // API operation GetEventStream for usage and error information. 354 // See also, https://docs.aws.amazon.com/goto/WebAPI/RPCService-0000-00-00/GetEventStream 355 func (c *RPCService) GetEventStream(input *GetEventStreamInput) (*GetEventStreamOutput, error) { 356 req, out := c.GetEventStreamRequest(input) 357 return out, req.Send() 358 } 359 360 // GetEventStreamWithContext is the same as GetEventStream with the addition of 361 // the ability to pass a context and additional request options. 362 // 363 // See GetEventStream for details on how to use this API operation. 364 // 365 // The context must be non-nil and will be used for request cancellation. If 366 // the context is nil a panic will occur. In the future the SDK may create 367 // sub-contexts for http.Requests. See https://golang.org/pkg/context/ 368 // for more information on using Contexts. 369 func (c *RPCService) GetEventStreamWithContext(ctx aws.Context, input *GetEventStreamInput, opts ...request.Option) (*GetEventStreamOutput, error) { 370 req, out := c.GetEventStreamRequest(input) 371 req.SetContext(ctx) 372 req.ApplyOptions(opts...) 373 return out, req.Send() 374 } 375 376 var _ awserr.Error 377 378 // GetEventStreamEventStream provides the event stream handling for the GetEventStream. 379 // 380 // For testing and mocking the event stream this type should be initialized via 381 // the NewGetEventStreamEventStream constructor function. Using the functional options 382 // to pass in nested mock behavior. 383 type GetEventStreamEventStream struct { 384 385 // Reader is the EventStream reader for the EventStream 386 // events. This value is automatically set by the SDK when the API call is made 387 // Use this member when unit testing your code with the SDK to mock out the 388 // EventStream Reader. 389 // 390 // Must not be nil. 391 Reader EventStreamReader 392 393 outputReader io.ReadCloser 394 output *GetEventStreamOutput 395 396 done chan struct{} 397 closeOnce sync.Once 398 err *eventstreamapi.OnceError 399 } 400 401 // NewGetEventStreamEventStream initializes an GetEventStreamEventStream. 402 // This function should only be used for testing and mocking the GetEventStreamEventStream 403 // stream within your application. 404 // 405 // The Reader member must be set before reading events from the stream. 406 // 407 // es := NewGetEventStreamEventStream(func(o *GetEventStreamEventStream{ 408 // es.Reader = myMockStreamReader 409 // }) 410 func NewGetEventStreamEventStream(opts ...func(*GetEventStreamEventStream)) *GetEventStreamEventStream { 411 es := &GetEventStreamEventStream{ 412 done: make(chan struct{}), 413 err: eventstreamapi.NewOnceError(), 414 } 415 416 for _, fn := range opts { 417 fn(es) 418 } 419 420 return es 421 } 422 423 func (es *GetEventStreamEventStream) runOnStreamPartClose(r *request.Request) { 424 if es.done == nil { 425 return 426 } 427 go es.waitStreamPartClose() 428 429 } 430 431 func (es *GetEventStreamEventStream) waitStreamPartClose() { 432 var outputErrCh <-chan struct{} 433 if v, ok := es.Reader.(interface{ ErrorSet() <-chan struct{} }); ok { 434 outputErrCh = v.ErrorSet() 435 } 436 var outputClosedCh <-chan struct{} 437 if v, ok := es.Reader.(interface{ Closed() <-chan struct{} }); ok { 438 outputClosedCh = v.Closed() 439 } 440 441 select { 442 case <-es.done: 443 case <-outputErrCh: 444 es.err.SetError(es.Reader.Err()) 445 es.Close() 446 case <-outputClosedCh: 447 if err := es.Reader.Err(); err != nil { 448 es.err.SetError(es.Reader.Err()) 449 } 450 es.Close() 451 } 452 } 453 454 type eventTypeForGetEventStreamEventStreamOutputEvent struct { 455 unmarshalerForEvent func(string) (eventstreamapi.Unmarshaler, error) 456 output *GetEventStreamOutput 457 } 458 459 func (e eventTypeForGetEventStreamEventStreamOutputEvent) UnmarshalerForEventName(eventType string) (eventstreamapi.Unmarshaler, error) { 460 if eventType == "initial-response" { 461 return e.output, nil 462 } 463 return e.unmarshalerForEvent(eventType) 464 } 465 466 // Events returns a channel to read events from. 467 // 468 // These events are: 469 // 470 // * EmptyEvent 471 // * ExplicitPayloadEvent 472 // * HeaderOnlyEvent 473 // * ImplicitPayloadEvent 474 // * PayloadOnlyEvent 475 // * PayloadOnlyBlobEvent 476 // * PayloadOnlyStringEvent 477 // * EventStreamUnknownEvent 478 func (es *GetEventStreamEventStream) Events() <-chan EventStreamEvent { 479 return es.Reader.Events() 480 } 481 482 func (es *GetEventStreamEventStream) runOutputStream(r *request.Request) { 483 var opts []func(*eventstream.Decoder) 484 if r.Config.Logger != nil && r.Config.LogLevel.Matches(aws.LogDebugWithEventStreamBody) { 485 opts = append(opts, eventstream.DecodeWithLogger(r.Config.Logger)) 486 } 487 488 unmarshalerForEvent := unmarshalerForEventStreamEvent{ 489 metadata: protocol.ResponseMetadata{ 490 StatusCode: r.HTTPResponse.StatusCode, 491 RequestID: r.RequestID, 492 }, 493 }.UnmarshalerForEventName 494 unmarshalerForEvent = eventTypeForGetEventStreamEventStreamOutputEvent{ 495 unmarshalerForEvent: unmarshalerForEvent, 496 output: es.output, 497 }.UnmarshalerForEventName 498 499 decoder := eventstream.NewDecoder(r.HTTPResponse.Body, opts...) 500 eventReader := eventstreamapi.NewEventReader(decoder, 501 protocol.HandlerPayloadUnmarshal{ 502 Unmarshalers: r.Handlers.UnmarshalStream, 503 }, 504 unmarshalerForEvent, 505 ) 506 507 es.outputReader = r.HTTPResponse.Body 508 es.Reader = newReadEventStream(eventReader) 509 } 510 func (es *GetEventStreamEventStream) recvInitialEvent(r *request.Request) { 511 // Wait for the initial response event, which must be the first 512 // event to be received from the API. 513 select { 514 case event, ok := <-es.Events(): 515 if !ok { 516 return 517 } 518 519 v, ok := event.(*GetEventStreamOutput) 520 if !ok || v == nil { 521 r.Error = awserr.New( 522 request.ErrCodeSerialization, 523 fmt.Sprintf("invalid event, %T, expect %T, %v", 524 event, (*GetEventStreamOutput)(nil), v), 525 nil, 526 ) 527 return 528 } 529 530 *es.output = *v 531 es.output.eventStream = es 532 } 533 } 534 535 // Close closes the stream. This will also cause the stream to be closed. 536 // Close must be called when done using the stream API. Not calling Close 537 // may result in resource leaks. 538 // 539 // You can use the closing of the Reader's Events channel to terminate your 540 // application's read from the API's stream. 541 // 542 func (es *GetEventStreamEventStream) Close() (err error) { 543 es.closeOnce.Do(es.safeClose) 544 return es.Err() 545 } 546 547 func (es *GetEventStreamEventStream) safeClose() { 548 if es.done != nil { 549 close(es.done) 550 } 551 552 es.Reader.Close() 553 if es.outputReader != nil { 554 es.outputReader.Close() 555 } 556 } 557 558 // Err returns any error that occurred while reading or writing EventStream 559 // Events from the service API's response. Returns nil if there were no errors. 560 func (es *GetEventStreamEventStream) Err() error { 561 if err := es.err.Err(); err != nil { 562 return err 563 } 564 if err := es.Reader.Err(); err != nil { 565 return err 566 } 567 568 return nil 569 } 570 571 const opOtherOperation = "OtherOperation" 572 573 // OtherOperationRequest generates a "aws/request.Request" representing the 574 // client's request for the OtherOperation operation. The "output" return 575 // value will be populated with the request's response once the request completes 576 // successfully. 577 // 578 // Use "Send" method on the returned Request to send the API call to the service. 579 // the "output" return value is not valid until after Send returns without error. 580 // 581 // See OtherOperation for more information on using the OtherOperation 582 // API call, and error handling. 583 // 584 // This method is useful when you want to inject custom logic or configuration 585 // into the SDK's request lifecycle. Such as custom headers, or retry logic. 586 // 587 // 588 // // Example sending a request using the OtherOperationRequest method. 589 // req, resp := client.OtherOperationRequest(params) 590 // 591 // err := req.Send() 592 // if err == nil { // resp is now filled 593 // fmt.Println(resp) 594 // } 595 // 596 // See also, https://docs.aws.amazon.com/goto/WebAPI/RPCService-0000-00-00/OtherOperation 597 func (c *RPCService) OtherOperationRequest(input *OtherOperationInput) (req *request.Request, output *OtherOperationOutput) { 598 op := &request.Operation{ 599 Name: opOtherOperation, 600 HTTPMethod: "POST", 601 HTTPPath: "/", 602 } 603 604 if input == nil { 605 input = &OtherOperationInput{} 606 } 607 608 output = &OtherOperationOutput{} 609 req = c.newRequest(op, input, output) 610 req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler) 611 return 612 } 613 614 // OtherOperation API operation for RPC Service. 615 // 616 // Returns awserr.Error for service API and SDK errors. Use runtime type assertions 617 // with awserr.Error's Code and Message methods to get detailed information about 618 // the error. 619 // 620 // See the AWS API reference guide for RPC Service's 621 // API operation OtherOperation for usage and error information. 622 // 623 // Returned Error Types: 624 // * ExceptionEvent2 625 // 626 // See also, https://docs.aws.amazon.com/goto/WebAPI/RPCService-0000-00-00/OtherOperation 627 func (c *RPCService) OtherOperation(input *OtherOperationInput) (*OtherOperationOutput, error) { 628 req, out := c.OtherOperationRequest(input) 629 return out, req.Send() 630 } 631 632 // OtherOperationWithContext is the same as OtherOperation with the addition of 633 // the ability to pass a context and additional request options. 634 // 635 // See OtherOperation for details on how to use this API operation. 636 // 637 // The context must be non-nil and will be used for request cancellation. If 638 // the context is nil a panic will occur. In the future the SDK may create 639 // sub-contexts for http.Requests. See https://golang.org/pkg/context/ 640 // for more information on using Contexts. 641 func (c *RPCService) OtherOperationWithContext(ctx aws.Context, input *OtherOperationInput, opts ...request.Option) (*OtherOperationOutput, error) { 642 req, out := c.OtherOperationRequest(input) 643 req.SetContext(ctx) 644 req.ApplyOptions(opts...) 645 return out, req.Send() 646 } 647 648 type EmptyEvent struct { 649 _ struct{} `type:"structure"` 650 } 651 652 // String returns the string representation. 653 // 654 // API parameter values that are decorated as "sensitive" in the API will not 655 // be included in the string output. The member name will be present, but the 656 // value will be replaced with "sensitive". 657 func (s EmptyEvent) String() string { 658 return awsutil.Prettify(s) 659 } 660 661 // GoString returns the string representation. 662 // 663 // API parameter values that are decorated as "sensitive" in the API will not 664 // be included in the string output. The member name will be present, but the 665 // value will be replaced with "sensitive". 666 func (s EmptyEvent) GoString() string { 667 return s.String() 668 } 669 670 // The EmptyEvent is and event in the EventStream group of events. 671 func (s *EmptyEvent) eventEventStream() {} 672 673 // UnmarshalEvent unmarshals the EventStream Message into the EmptyEvent value. 674 // This method is only used internally within the SDK's EventStream handling. 675 func (s *EmptyEvent) UnmarshalEvent( 676 payloadUnmarshaler protocol.PayloadUnmarshaler, 677 msg eventstream.Message, 678 ) error { 679 return nil 680 } 681 682 // MarshalEvent marshals the type into an stream event value. This method 683 // should only used internally within the SDK's EventStream handling. 684 func (s *EmptyEvent) MarshalEvent(pm protocol.PayloadMarshaler) (msg eventstream.Message, err error) { 685 msg.Headers.Set(eventstreamapi.MessageTypeHeader, eventstream.StringValue(eventstreamapi.EventMessageType)) 686 return msg, err 687 } 688 689 // EmptyEventStreamEvent groups together all EventStream 690 // events writes for EmptyEventStream. 691 // 692 // These events are: 693 // 694 type EmptyEventStreamEvent interface { 695 eventEmptyEventStream() 696 eventstreamapi.Marshaler 697 eventstreamapi.Unmarshaler 698 } 699 700 // EmptyEventStreamReader provides the interface for reading to the stream. The 701 // default implementation for this interface will be EmptyEventStream. 702 // 703 // The reader's Close method must allow multiple concurrent calls. 704 // 705 // These events are: 706 // 707 // * EmptyEventStreamUnknownEvent 708 type EmptyEventStreamReader interface { 709 // Returns a channel of events as they are read from the event stream. 710 Events() <-chan EmptyEventStreamEvent 711 712 // Close will stop the reader reading events from the stream. 713 Close() error 714 715 // Returns any error that has occurred while reading from the event stream. 716 Err() error 717 } 718 719 type readEmptyEventStream struct { 720 eventReader *eventstreamapi.EventReader 721 stream chan EmptyEventStreamEvent 722 err *eventstreamapi.OnceError 723 724 done chan struct{} 725 closeOnce sync.Once 726 } 727 728 func newReadEmptyEventStream(eventReader *eventstreamapi.EventReader) *readEmptyEventStream { 729 r := &readEmptyEventStream{ 730 eventReader: eventReader, 731 stream: make(chan EmptyEventStreamEvent), 732 done: make(chan struct{}), 733 err: eventstreamapi.NewOnceError(), 734 } 735 go r.readEventStream() 736 737 return r 738 } 739 740 // Close will close the underlying event stream reader. 741 func (r *readEmptyEventStream) Close() error { 742 r.closeOnce.Do(r.safeClose) 743 return r.Err() 744 } 745 746 func (r *readEmptyEventStream) ErrorSet() <-chan struct{} { 747 return r.err.ErrorSet() 748 } 749 750 func (r *readEmptyEventStream) Closed() <-chan struct{} { 751 return r.done 752 } 753 754 func (r *readEmptyEventStream) safeClose() { 755 close(r.done) 756 } 757 758 func (r *readEmptyEventStream) Err() error { 759 return r.err.Err() 760 } 761 762 func (r *readEmptyEventStream) Events() <-chan EmptyEventStreamEvent { 763 return r.stream 764 } 765 766 func (r *readEmptyEventStream) readEventStream() { 767 defer r.Close() 768 defer close(r.stream) 769 770 for { 771 event, err := r.eventReader.ReadEvent() 772 if err != nil { 773 if err == io.EOF { 774 return 775 } 776 select { 777 case <-r.done: 778 // If closed already ignore the error 779 return 780 default: 781 } 782 if _, ok := err.(*eventstreamapi.UnknownMessageTypeError); ok { 783 continue 784 } 785 r.err.SetError(err) 786 return 787 } 788 789 select { 790 case r.stream <- event.(EmptyEventStreamEvent): 791 case <-r.done: 792 return 793 } 794 } 795 } 796 797 type unmarshalerForEmptyEventStreamEvent struct { 798 metadata protocol.ResponseMetadata 799 } 800 801 func (u unmarshalerForEmptyEventStreamEvent) UnmarshalerForEventName(eventType string) (eventstreamapi.Unmarshaler, error) { 802 switch eventType { 803 default: 804 return &EmptyEventStreamUnknownEvent{Type: eventType}, nil 805 } 806 } 807 808 // EmptyEventStreamUnknownEvent provides a failsafe event for the 809 // EmptyEventStream group of events when an unknown event is received. 810 type EmptyEventStreamUnknownEvent struct { 811 Type string 812 Message eventstream.Message 813 } 814 815 // The EmptyEventStreamUnknownEvent is and event in the EmptyEventStream 816 // group of events. 817 func (s *EmptyEventStreamUnknownEvent) eventEmptyEventStream() {} 818 819 // MarshalEvent marshals the type into an stream event value. This method 820 // should only used internally within the SDK's EventStream handling. 821 func (e *EmptyEventStreamUnknownEvent) MarshalEvent(pm protocol.PayloadMarshaler) ( 822 msg eventstream.Message, err error, 823 ) { 824 return e.Message.Clone(), nil 825 } 826 827 // UnmarshalEvent unmarshals the EventStream Message into the EmptyEventStream value. 828 // This method is only used internally within the SDK's EventStream handling. 829 func (e *EmptyEventStreamUnknownEvent) UnmarshalEvent( 830 payloadUnmarshaler protocol.PayloadUnmarshaler, 831 msg eventstream.Message, 832 ) error { 833 e.Message = msg.Clone() 834 return nil 835 } 836 837 type EmptyStreamInput struct { 838 _ struct{} `type:"structure"` 839 } 840 841 // String returns the string representation. 842 // 843 // API parameter values that are decorated as "sensitive" in the API will not 844 // be included in the string output. The member name will be present, but the 845 // value will be replaced with "sensitive". 846 func (s EmptyStreamInput) String() string { 847 return awsutil.Prettify(s) 848 } 849 850 // GoString returns the string representation. 851 // 852 // API parameter values that are decorated as "sensitive" in the API will not 853 // be included in the string output. The member name will be present, but the 854 // value will be replaced with "sensitive". 855 func (s EmptyStreamInput) GoString() string { 856 return s.String() 857 } 858 859 type EmptyStreamOutput struct { 860 _ struct{} `type:"structure"` 861 862 eventStream *EmptyStreamEventStream 863 } 864 865 // String returns the string representation. 866 // 867 // API parameter values that are decorated as "sensitive" in the API will not 868 // be included in the string output. The member name will be present, but the 869 // value will be replaced with "sensitive". 870 func (s EmptyStreamOutput) String() string { 871 return awsutil.Prettify(s) 872 } 873 874 // GoString returns the string representation. 875 // 876 // API parameter values that are decorated as "sensitive" in the API will not 877 // be included in the string output. The member name will be present, but the 878 // value will be replaced with "sensitive". 879 func (s EmptyStreamOutput) GoString() string { 880 return s.String() 881 } 882 883 // GetStream returns the type to interact with the event stream. 884 func (s *EmptyStreamOutput) GetStream() *EmptyStreamEventStream { 885 return s.eventStream 886 } 887 888 // The EmptyStreamOutput is and event in the EmptyEventStream group of events. 889 func (s *EmptyStreamOutput) eventEmptyEventStream() {} 890 891 // UnmarshalEvent unmarshals the EventStream Message into the EmptyStreamOutput value. 892 // This method is only used internally within the SDK's EventStream handling. 893 func (s *EmptyStreamOutput) UnmarshalEvent( 894 payloadUnmarshaler protocol.PayloadUnmarshaler, 895 msg eventstream.Message, 896 ) error { 897 if err := payloadUnmarshaler.UnmarshalPayload( 898 bytes.NewReader(msg.Payload), s, 899 ); err != nil { 900 return err 901 } 902 return nil 903 } 904 905 // MarshalEvent marshals the type into an stream event value. This method 906 // should only used internally within the SDK's EventStream handling. 907 func (s *EmptyStreamOutput) MarshalEvent(pm protocol.PayloadMarshaler) (msg eventstream.Message, err error) { 908 msg.Headers.Set(eventstreamapi.MessageTypeHeader, eventstream.StringValue(eventstreamapi.EventMessageType)) 909 var buf bytes.Buffer 910 if err = pm.MarshalPayload(&buf, s); err != nil { 911 return eventstream.Message{}, err 912 } 913 msg.Payload = buf.Bytes() 914 return msg, err 915 } 916 917 // EventStreamEvent groups together all EventStream 918 // events writes for EventStream. 919 // 920 // These events are: 921 // 922 // * EmptyEvent 923 // * ExplicitPayloadEvent 924 // * HeaderOnlyEvent 925 // * ImplicitPayloadEvent 926 // * PayloadOnlyEvent 927 // * PayloadOnlyBlobEvent 928 // * PayloadOnlyStringEvent 929 type EventStreamEvent interface { 930 eventEventStream() 931 eventstreamapi.Marshaler 932 eventstreamapi.Unmarshaler 933 } 934 935 // EventStreamReader provides the interface for reading to the stream. The 936 // default implementation for this interface will be EventStream. 937 // 938 // The reader's Close method must allow multiple concurrent calls. 939 // 940 // These events are: 941 // 942 // * EmptyEvent 943 // * ExplicitPayloadEvent 944 // * HeaderOnlyEvent 945 // * ImplicitPayloadEvent 946 // * PayloadOnlyEvent 947 // * PayloadOnlyBlobEvent 948 // * PayloadOnlyStringEvent 949 // * EventStreamUnknownEvent 950 type EventStreamReader interface { 951 // Returns a channel of events as they are read from the event stream. 952 Events() <-chan EventStreamEvent 953 954 // Close will stop the reader reading events from the stream. 955 Close() error 956 957 // Returns any error that has occurred while reading from the event stream. 958 Err() error 959 } 960 961 type readEventStream struct { 962 eventReader *eventstreamapi.EventReader 963 stream chan EventStreamEvent 964 err *eventstreamapi.OnceError 965 966 done chan struct{} 967 closeOnce sync.Once 968 } 969 970 func newReadEventStream(eventReader *eventstreamapi.EventReader) *readEventStream { 971 r := &readEventStream{ 972 eventReader: eventReader, 973 stream: make(chan EventStreamEvent), 974 done: make(chan struct{}), 975 err: eventstreamapi.NewOnceError(), 976 } 977 go r.readEventStream() 978 979 return r 980 } 981 982 // Close will close the underlying event stream reader. 983 func (r *readEventStream) Close() error { 984 r.closeOnce.Do(r.safeClose) 985 return r.Err() 986 } 987 988 func (r *readEventStream) ErrorSet() <-chan struct{} { 989 return r.err.ErrorSet() 990 } 991 992 func (r *readEventStream) Closed() <-chan struct{} { 993 return r.done 994 } 995 996 func (r *readEventStream) safeClose() { 997 close(r.done) 998 } 999 1000 func (r *readEventStream) Err() error { 1001 return r.err.Err() 1002 } 1003 1004 func (r *readEventStream) Events() <-chan EventStreamEvent { 1005 return r.stream 1006 } 1007 1008 func (r *readEventStream) readEventStream() { 1009 defer r.Close() 1010 defer close(r.stream) 1011 1012 for { 1013 event, err := r.eventReader.ReadEvent() 1014 if err != nil { 1015 if err == io.EOF { 1016 return 1017 } 1018 select { 1019 case <-r.done: 1020 // If closed already ignore the error 1021 return 1022 default: 1023 } 1024 if _, ok := err.(*eventstreamapi.UnknownMessageTypeError); ok { 1025 continue 1026 } 1027 r.err.SetError(err) 1028 return 1029 } 1030 1031 select { 1032 case r.stream <- event.(EventStreamEvent): 1033 case <-r.done: 1034 return 1035 } 1036 } 1037 } 1038 1039 type unmarshalerForEventStreamEvent struct { 1040 metadata protocol.ResponseMetadata 1041 } 1042 1043 func (u unmarshalerForEventStreamEvent) UnmarshalerForEventName(eventType string) (eventstreamapi.Unmarshaler, error) { 1044 switch eventType { 1045 case "Empty": 1046 return &EmptyEvent{}, nil 1047 case "ExplicitPayload": 1048 return &ExplicitPayloadEvent{}, nil 1049 case "Headers": 1050 return &HeaderOnlyEvent{}, nil 1051 case "ImplicitPayload": 1052 return &ImplicitPayloadEvent{}, nil 1053 case "PayloadOnly": 1054 return &PayloadOnlyEvent{}, nil 1055 case "PayloadOnlyBlob": 1056 return &PayloadOnlyBlobEvent{}, nil 1057 case "PayloadOnlyString": 1058 return &PayloadOnlyStringEvent{}, nil 1059 case "Exception": 1060 return newErrorExceptionEvent(u.metadata).(eventstreamapi.Unmarshaler), nil 1061 case "Exception2": 1062 return newErrorExceptionEvent2(u.metadata).(eventstreamapi.Unmarshaler), nil 1063 default: 1064 return &EventStreamUnknownEvent{Type: eventType}, nil 1065 } 1066 } 1067 1068 // EventStreamUnknownEvent provides a failsafe event for the 1069 // EventStream group of events when an unknown event is received. 1070 type EventStreamUnknownEvent struct { 1071 Type string 1072 Message eventstream.Message 1073 } 1074 1075 // The EventStreamUnknownEvent is and event in the EventStream 1076 // group of events. 1077 func (s *EventStreamUnknownEvent) eventEventStream() {} 1078 1079 // MarshalEvent marshals the type into an stream event value. This method 1080 // should only used internally within the SDK's EventStream handling. 1081 func (e *EventStreamUnknownEvent) MarshalEvent(pm protocol.PayloadMarshaler) ( 1082 msg eventstream.Message, err error, 1083 ) { 1084 return e.Message.Clone(), nil 1085 } 1086 1087 // UnmarshalEvent unmarshals the EventStream Message into the EventStream value. 1088 // This method is only used internally within the SDK's EventStream handling. 1089 func (e *EventStreamUnknownEvent) UnmarshalEvent( 1090 payloadUnmarshaler protocol.PayloadUnmarshaler, 1091 msg eventstream.Message, 1092 ) error { 1093 e.Message = msg.Clone() 1094 return nil 1095 } 1096 1097 type ExceptionEvent struct { 1098 _ struct{} `type:"structure"` 1099 RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"` 1100 1101 IntVal *int64 `type:"integer"` 1102 1103 Message_ *string `locationName:"message" type:"string"` 1104 } 1105 1106 // String returns the string representation. 1107 // 1108 // API parameter values that are decorated as "sensitive" in the API will not 1109 // be included in the string output. The member name will be present, but the 1110 // value will be replaced with "sensitive". 1111 func (s ExceptionEvent) String() string { 1112 return awsutil.Prettify(s) 1113 } 1114 1115 // GoString returns the string representation. 1116 // 1117 // API parameter values that are decorated as "sensitive" in the API will not 1118 // be included in the string output. The member name will be present, but the 1119 // value will be replaced with "sensitive". 1120 func (s ExceptionEvent) GoString() string { 1121 return s.String() 1122 } 1123 1124 // The ExceptionEvent is and event in the EventStream group of events. 1125 func (s *ExceptionEvent) eventEventStream() {} 1126 1127 // UnmarshalEvent unmarshals the EventStream Message into the ExceptionEvent value. 1128 // This method is only used internally within the SDK's EventStream handling. 1129 func (s *ExceptionEvent) UnmarshalEvent( 1130 payloadUnmarshaler protocol.PayloadUnmarshaler, 1131 msg eventstream.Message, 1132 ) error { 1133 if err := payloadUnmarshaler.UnmarshalPayload( 1134 bytes.NewReader(msg.Payload), s, 1135 ); err != nil { 1136 return err 1137 } 1138 return nil 1139 } 1140 1141 // MarshalEvent marshals the type into an stream event value. This method 1142 // should only used internally within the SDK's EventStream handling. 1143 func (s *ExceptionEvent) MarshalEvent(pm protocol.PayloadMarshaler) (msg eventstream.Message, err error) { 1144 msg.Headers.Set(eventstreamapi.MessageTypeHeader, eventstream.StringValue(eventstreamapi.ExceptionMessageType)) 1145 var buf bytes.Buffer 1146 if err = pm.MarshalPayload(&buf, s); err != nil { 1147 return eventstream.Message{}, err 1148 } 1149 msg.Payload = buf.Bytes() 1150 return msg, err 1151 } 1152 1153 func newErrorExceptionEvent(v protocol.ResponseMetadata) error { 1154 return &ExceptionEvent{ 1155 RespMetadata: v, 1156 } 1157 } 1158 1159 // Code returns the exception type name. 1160 func (s *ExceptionEvent) Code() string { 1161 return "ExceptionEvent" 1162 } 1163 1164 // Message returns the exception's message. 1165 func (s *ExceptionEvent) Message() string { 1166 if s.Message_ != nil { 1167 return *s.Message_ 1168 } 1169 return "" 1170 } 1171 1172 // OrigErr always returns nil, satisfies awserr.Error interface. 1173 func (s *ExceptionEvent) OrigErr() error { 1174 return nil 1175 } 1176 1177 func (s *ExceptionEvent) Error() string { 1178 return fmt.Sprintf("%s: %s\n%s", s.Code(), s.Message(), s.String()) 1179 } 1180 1181 // Status code returns the HTTP status code for the request's response error. 1182 func (s *ExceptionEvent) StatusCode() int { 1183 return s.RespMetadata.StatusCode 1184 } 1185 1186 // RequestID returns the service's response RequestID for request. 1187 func (s *ExceptionEvent) RequestID() string { 1188 return s.RespMetadata.RequestID 1189 } 1190 1191 type ExceptionEvent2 struct { 1192 _ struct{} `type:"structure"` 1193 RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"` 1194 1195 Message_ *string `locationName:"message" type:"string"` 1196 } 1197 1198 // String returns the string representation. 1199 // 1200 // API parameter values that are decorated as "sensitive" in the API will not 1201 // be included in the string output. The member name will be present, but the 1202 // value will be replaced with "sensitive". 1203 func (s ExceptionEvent2) String() string { 1204 return awsutil.Prettify(s) 1205 } 1206 1207 // GoString returns the string representation. 1208 // 1209 // API parameter values that are decorated as "sensitive" in the API will not 1210 // be included in the string output. The member name will be present, but the 1211 // value will be replaced with "sensitive". 1212 func (s ExceptionEvent2) GoString() string { 1213 return s.String() 1214 } 1215 1216 // The ExceptionEvent2 is and event in the EventStream group of events. 1217 func (s *ExceptionEvent2) eventEventStream() {} 1218 1219 // UnmarshalEvent unmarshals the EventStream Message into the ExceptionEvent2 value. 1220 // This method is only used internally within the SDK's EventStream handling. 1221 func (s *ExceptionEvent2) UnmarshalEvent( 1222 payloadUnmarshaler protocol.PayloadUnmarshaler, 1223 msg eventstream.Message, 1224 ) error { 1225 if err := payloadUnmarshaler.UnmarshalPayload( 1226 bytes.NewReader(msg.Payload), s, 1227 ); err != nil { 1228 return err 1229 } 1230 return nil 1231 } 1232 1233 // MarshalEvent marshals the type into an stream event value. This method 1234 // should only used internally within the SDK's EventStream handling. 1235 func (s *ExceptionEvent2) MarshalEvent(pm protocol.PayloadMarshaler) (msg eventstream.Message, err error) { 1236 msg.Headers.Set(eventstreamapi.MessageTypeHeader, eventstream.StringValue(eventstreamapi.ExceptionMessageType)) 1237 var buf bytes.Buffer 1238 if err = pm.MarshalPayload(&buf, s); err != nil { 1239 return eventstream.Message{}, err 1240 } 1241 msg.Payload = buf.Bytes() 1242 return msg, err 1243 } 1244 1245 func newErrorExceptionEvent2(v protocol.ResponseMetadata) error { 1246 return &ExceptionEvent2{ 1247 RespMetadata: v, 1248 } 1249 } 1250 1251 // Code returns the exception type name. 1252 func (s *ExceptionEvent2) Code() string { 1253 return "ExceptionEvent2" 1254 } 1255 1256 // Message returns the exception's message. 1257 func (s *ExceptionEvent2) Message() string { 1258 if s.Message_ != nil { 1259 return *s.Message_ 1260 } 1261 return "" 1262 } 1263 1264 // OrigErr always returns nil, satisfies awserr.Error interface. 1265 func (s *ExceptionEvent2) OrigErr() error { 1266 return nil 1267 } 1268 1269 func (s *ExceptionEvent2) Error() string { 1270 return fmt.Sprintf("%s: %s", s.Code(), s.Message()) 1271 } 1272 1273 // Status code returns the HTTP status code for the request's response error. 1274 func (s *ExceptionEvent2) StatusCode() int { 1275 return s.RespMetadata.StatusCode 1276 } 1277 1278 // RequestID returns the service's response RequestID for request. 1279 func (s *ExceptionEvent2) RequestID() string { 1280 return s.RespMetadata.RequestID 1281 } 1282 1283 type ExplicitPayloadEvent struct { 1284 _ struct{} `type:"structure" payload:"NestedVal"` 1285 1286 LongVal *int64 `location:"header" type:"long"` 1287 1288 NestedVal *NestedShape `locationName:"NestedVal" type:"structure"` 1289 1290 StringVal *string `location:"header" type:"string"` 1291 } 1292 1293 // String returns the string representation. 1294 // 1295 // API parameter values that are decorated as "sensitive" in the API will not 1296 // be included in the string output. The member name will be present, but the 1297 // value will be replaced with "sensitive". 1298 func (s ExplicitPayloadEvent) String() string { 1299 return awsutil.Prettify(s) 1300 } 1301 1302 // GoString returns the string representation. 1303 // 1304 // API parameter values that are decorated as "sensitive" in the API will not 1305 // be included in the string output. The member name will be present, but the 1306 // value will be replaced with "sensitive". 1307 func (s ExplicitPayloadEvent) GoString() string { 1308 return s.String() 1309 } 1310 1311 // SetLongVal sets the LongVal field's value. 1312 func (s *ExplicitPayloadEvent) SetLongVal(v int64) *ExplicitPayloadEvent { 1313 s.LongVal = &v 1314 return s 1315 } 1316 1317 // SetNestedVal sets the NestedVal field's value. 1318 func (s *ExplicitPayloadEvent) SetNestedVal(v *NestedShape) *ExplicitPayloadEvent { 1319 s.NestedVal = v 1320 return s 1321 } 1322 1323 // SetStringVal sets the StringVal field's value. 1324 func (s *ExplicitPayloadEvent) SetStringVal(v string) *ExplicitPayloadEvent { 1325 s.StringVal = &v 1326 return s 1327 } 1328 1329 // The ExplicitPayloadEvent is and event in the EventStream group of events. 1330 func (s *ExplicitPayloadEvent) eventEventStream() {} 1331 1332 // UnmarshalEvent unmarshals the EventStream Message into the ExplicitPayloadEvent value. 1333 // This method is only used internally within the SDK's EventStream handling. 1334 func (s *ExplicitPayloadEvent) UnmarshalEvent( 1335 payloadUnmarshaler protocol.PayloadUnmarshaler, 1336 msg eventstream.Message, 1337 ) error { 1338 if hv := msg.Headers.Get("LongVal"); hv != nil { 1339 v := hv.Get().(int64) 1340 s.LongVal = &v 1341 } 1342 if hv := msg.Headers.Get("StringVal"); hv != nil { 1343 v := hv.Get().(string) 1344 s.StringVal = &v 1345 } 1346 if err := payloadUnmarshaler.UnmarshalPayload( 1347 bytes.NewReader(msg.Payload), s, 1348 ); err != nil { 1349 return err 1350 } 1351 return nil 1352 } 1353 1354 // MarshalEvent marshals the type into an stream event value. This method 1355 // should only used internally within the SDK's EventStream handling. 1356 func (s *ExplicitPayloadEvent) MarshalEvent(pm protocol.PayloadMarshaler) (msg eventstream.Message, err error) { 1357 msg.Headers.Set(eventstreamapi.MessageTypeHeader, eventstream.StringValue(eventstreamapi.EventMessageType)) 1358 msg.Headers.Set("LongVal", eventstream.Int64Value(*s.LongVal)) 1359 msg.Headers.Set("StringVal", eventstream.StringValue(*s.StringVal)) 1360 var buf bytes.Buffer 1361 if err = pm.MarshalPayload(&buf, s); err != nil { 1362 return eventstream.Message{}, err 1363 } 1364 msg.Payload = buf.Bytes() 1365 return msg, err 1366 } 1367 1368 type GetEventStreamInput struct { 1369 _ struct{} `type:"structure"` 1370 1371 InputVal *string `type:"string"` 1372 } 1373 1374 // String returns the string representation. 1375 // 1376 // API parameter values that are decorated as "sensitive" in the API will not 1377 // be included in the string output. The member name will be present, but the 1378 // value will be replaced with "sensitive". 1379 func (s GetEventStreamInput) String() string { 1380 return awsutil.Prettify(s) 1381 } 1382 1383 // GoString returns the string representation. 1384 // 1385 // API parameter values that are decorated as "sensitive" in the API will not 1386 // be included in the string output. The member name will be present, but the 1387 // value will be replaced with "sensitive". 1388 func (s GetEventStreamInput) GoString() string { 1389 return s.String() 1390 } 1391 1392 // SetInputVal sets the InputVal field's value. 1393 func (s *GetEventStreamInput) SetInputVal(v string) *GetEventStreamInput { 1394 s.InputVal = &v 1395 return s 1396 } 1397 1398 type GetEventStreamOutput struct { 1399 _ struct{} `type:"structure"` 1400 1401 eventStream *GetEventStreamEventStream 1402 1403 IntVal *int64 `type:"integer"` 1404 1405 StrVal *string `type:"string"` 1406 } 1407 1408 // String returns the string representation. 1409 // 1410 // API parameter values that are decorated as "sensitive" in the API will not 1411 // be included in the string output. The member name will be present, but the 1412 // value will be replaced with "sensitive". 1413 func (s GetEventStreamOutput) String() string { 1414 return awsutil.Prettify(s) 1415 } 1416 1417 // GoString returns the string representation. 1418 // 1419 // API parameter values that are decorated as "sensitive" in the API will not 1420 // be included in the string output. The member name will be present, but the 1421 // value will be replaced with "sensitive". 1422 func (s GetEventStreamOutput) GoString() string { 1423 return s.String() 1424 } 1425 1426 // SetIntVal sets the IntVal field's value. 1427 func (s *GetEventStreamOutput) SetIntVal(v int64) *GetEventStreamOutput { 1428 s.IntVal = &v 1429 return s 1430 } 1431 1432 // SetStrVal sets the StrVal field's value. 1433 func (s *GetEventStreamOutput) SetStrVal(v string) *GetEventStreamOutput { 1434 s.StrVal = &v 1435 return s 1436 } 1437 1438 // GetStream returns the type to interact with the event stream. 1439 func (s *GetEventStreamOutput) GetStream() *GetEventStreamEventStream { 1440 return s.eventStream 1441 } 1442 1443 // The GetEventStreamOutput is and event in the EventStream group of events. 1444 func (s *GetEventStreamOutput) eventEventStream() {} 1445 1446 // UnmarshalEvent unmarshals the EventStream Message into the GetEventStreamOutput value. 1447 // This method is only used internally within the SDK's EventStream handling. 1448 func (s *GetEventStreamOutput) UnmarshalEvent( 1449 payloadUnmarshaler protocol.PayloadUnmarshaler, 1450 msg eventstream.Message, 1451 ) error { 1452 if err := payloadUnmarshaler.UnmarshalPayload( 1453 bytes.NewReader(msg.Payload), s, 1454 ); err != nil { 1455 return err 1456 } 1457 return nil 1458 } 1459 1460 // MarshalEvent marshals the type into an stream event value. This method 1461 // should only used internally within the SDK's EventStream handling. 1462 func (s *GetEventStreamOutput) MarshalEvent(pm protocol.PayloadMarshaler) (msg eventstream.Message, err error) { 1463 msg.Headers.Set(eventstreamapi.MessageTypeHeader, eventstream.StringValue(eventstreamapi.EventMessageType)) 1464 var buf bytes.Buffer 1465 if err = pm.MarshalPayload(&buf, s); err != nil { 1466 return eventstream.Message{}, err 1467 } 1468 msg.Payload = buf.Bytes() 1469 return msg, err 1470 } 1471 1472 type HeaderOnlyEvent struct { 1473 _ struct{} `type:"structure"` 1474 1475 // BlobVal is automatically base64 encoded/decoded by the SDK. 1476 BlobVal []byte `location:"header" type:"blob"` 1477 1478 BoolVal *bool `location:"header" type:"boolean"` 1479 1480 ByteVal *int64 `location:"header" type:"byte"` 1481 1482 IntegerVal *int64 `location:"header" type:"integer"` 1483 1484 LongVal *int64 `location:"header" type:"long"` 1485 1486 ShortVal *int64 `location:"header" type:"short"` 1487 1488 StringVal *string `location:"header" type:"string"` 1489 1490 TimeVal *time.Time `location:"header" type:"timestamp"` 1491 } 1492 1493 // String returns the string representation. 1494 // 1495 // API parameter values that are decorated as "sensitive" in the API will not 1496 // be included in the string output. The member name will be present, but the 1497 // value will be replaced with "sensitive". 1498 func (s HeaderOnlyEvent) String() string { 1499 return awsutil.Prettify(s) 1500 } 1501 1502 // GoString returns the string representation. 1503 // 1504 // API parameter values that are decorated as "sensitive" in the API will not 1505 // be included in the string output. The member name will be present, but the 1506 // value will be replaced with "sensitive". 1507 func (s HeaderOnlyEvent) GoString() string { 1508 return s.String() 1509 } 1510 1511 // SetBlobVal sets the BlobVal field's value. 1512 func (s *HeaderOnlyEvent) SetBlobVal(v []byte) *HeaderOnlyEvent { 1513 s.BlobVal = v 1514 return s 1515 } 1516 1517 // SetBoolVal sets the BoolVal field's value. 1518 func (s *HeaderOnlyEvent) SetBoolVal(v bool) *HeaderOnlyEvent { 1519 s.BoolVal = &v 1520 return s 1521 } 1522 1523 // SetByteVal sets the ByteVal field's value. 1524 func (s *HeaderOnlyEvent) SetByteVal(v int64) *HeaderOnlyEvent { 1525 s.ByteVal = &v 1526 return s 1527 } 1528 1529 // SetIntegerVal sets the IntegerVal field's value. 1530 func (s *HeaderOnlyEvent) SetIntegerVal(v int64) *HeaderOnlyEvent { 1531 s.IntegerVal = &v 1532 return s 1533 } 1534 1535 // SetLongVal sets the LongVal field's value. 1536 func (s *HeaderOnlyEvent) SetLongVal(v int64) *HeaderOnlyEvent { 1537 s.LongVal = &v 1538 return s 1539 } 1540 1541 // SetShortVal sets the ShortVal field's value. 1542 func (s *HeaderOnlyEvent) SetShortVal(v int64) *HeaderOnlyEvent { 1543 s.ShortVal = &v 1544 return s 1545 } 1546 1547 // SetStringVal sets the StringVal field's value. 1548 func (s *HeaderOnlyEvent) SetStringVal(v string) *HeaderOnlyEvent { 1549 s.StringVal = &v 1550 return s 1551 } 1552 1553 // SetTimeVal sets the TimeVal field's value. 1554 func (s *HeaderOnlyEvent) SetTimeVal(v time.Time) *HeaderOnlyEvent { 1555 s.TimeVal = &v 1556 return s 1557 } 1558 1559 // The HeaderOnlyEvent is and event in the EventStream group of events. 1560 func (s *HeaderOnlyEvent) eventEventStream() {} 1561 1562 // UnmarshalEvent unmarshals the EventStream Message into the HeaderOnlyEvent value. 1563 // This method is only used internally within the SDK's EventStream handling. 1564 func (s *HeaderOnlyEvent) UnmarshalEvent( 1565 payloadUnmarshaler protocol.PayloadUnmarshaler, 1566 msg eventstream.Message, 1567 ) error { 1568 if hv := msg.Headers.Get("BlobVal"); hv != nil { 1569 v := hv.Get().([]byte) 1570 s.BlobVal = v 1571 } 1572 if hv := msg.Headers.Get("BoolVal"); hv != nil { 1573 v := hv.Get().(bool) 1574 s.BoolVal = &v 1575 } 1576 if hv := msg.Headers.Get("ByteVal"); hv != nil { 1577 v := hv.Get().(int8) 1578 m := int64(v) 1579 s.ByteVal = &m 1580 } 1581 if hv := msg.Headers.Get("IntegerVal"); hv != nil { 1582 v := hv.Get().(int32) 1583 m := int64(v) 1584 s.IntegerVal = &m 1585 } 1586 if hv := msg.Headers.Get("LongVal"); hv != nil { 1587 v := hv.Get().(int64) 1588 s.LongVal = &v 1589 } 1590 if hv := msg.Headers.Get("ShortVal"); hv != nil { 1591 v := hv.Get().(int16) 1592 m := int64(v) 1593 s.ShortVal = &m 1594 } 1595 if hv := msg.Headers.Get("StringVal"); hv != nil { 1596 v := hv.Get().(string) 1597 s.StringVal = &v 1598 } 1599 if hv := msg.Headers.Get("TimeVal"); hv != nil { 1600 v := hv.Get().(time.Time) 1601 s.TimeVal = &v 1602 } 1603 return nil 1604 } 1605 1606 // MarshalEvent marshals the type into an stream event value. This method 1607 // should only used internally within the SDK's EventStream handling. 1608 func (s *HeaderOnlyEvent) MarshalEvent(pm protocol.PayloadMarshaler) (msg eventstream.Message, err error) { 1609 msg.Headers.Set(eventstreamapi.MessageTypeHeader, eventstream.StringValue(eventstreamapi.EventMessageType)) 1610 msg.Headers.Set("BlobVal", eventstream.BytesValue(s.BlobVal)) 1611 msg.Headers.Set("BoolVal", eventstream.BoolValue(*s.BoolVal)) 1612 msg.Headers.Set("ByteVal", eventstream.Int8Value(int8(*s.ByteVal))) 1613 msg.Headers.Set("IntegerVal", eventstream.Int32Value(int32(*s.IntegerVal))) 1614 msg.Headers.Set("LongVal", eventstream.Int64Value(*s.LongVal)) 1615 msg.Headers.Set("ShortVal", eventstream.Int16Value(int16(*s.ShortVal))) 1616 msg.Headers.Set("StringVal", eventstream.StringValue(*s.StringVal)) 1617 msg.Headers.Set("TimeVal", eventstream.TimestampValue(*s.TimeVal)) 1618 return msg, err 1619 } 1620 1621 type ImplicitPayloadEvent struct { 1622 _ struct{} `type:"structure"` 1623 1624 ByteVal *int64 `location:"header" type:"byte"` 1625 1626 IntegerVal *int64 `type:"integer"` 1627 1628 ShortVal *int64 `type:"short"` 1629 } 1630 1631 // String returns the string representation. 1632 // 1633 // API parameter values that are decorated as "sensitive" in the API will not 1634 // be included in the string output. The member name will be present, but the 1635 // value will be replaced with "sensitive". 1636 func (s ImplicitPayloadEvent) String() string { 1637 return awsutil.Prettify(s) 1638 } 1639 1640 // GoString returns the string representation. 1641 // 1642 // API parameter values that are decorated as "sensitive" in the API will not 1643 // be included in the string output. The member name will be present, but the 1644 // value will be replaced with "sensitive". 1645 func (s ImplicitPayloadEvent) GoString() string { 1646 return s.String() 1647 } 1648 1649 // SetByteVal sets the ByteVal field's value. 1650 func (s *ImplicitPayloadEvent) SetByteVal(v int64) *ImplicitPayloadEvent { 1651 s.ByteVal = &v 1652 return s 1653 } 1654 1655 // SetIntegerVal sets the IntegerVal field's value. 1656 func (s *ImplicitPayloadEvent) SetIntegerVal(v int64) *ImplicitPayloadEvent { 1657 s.IntegerVal = &v 1658 return s 1659 } 1660 1661 // SetShortVal sets the ShortVal field's value. 1662 func (s *ImplicitPayloadEvent) SetShortVal(v int64) *ImplicitPayloadEvent { 1663 s.ShortVal = &v 1664 return s 1665 } 1666 1667 // The ImplicitPayloadEvent is and event in the EventStream group of events. 1668 func (s *ImplicitPayloadEvent) eventEventStream() {} 1669 1670 // UnmarshalEvent unmarshals the EventStream Message into the ImplicitPayloadEvent value. 1671 // This method is only used internally within the SDK's EventStream handling. 1672 func (s *ImplicitPayloadEvent) UnmarshalEvent( 1673 payloadUnmarshaler protocol.PayloadUnmarshaler, 1674 msg eventstream.Message, 1675 ) error { 1676 if hv := msg.Headers.Get("ByteVal"); hv != nil { 1677 v := hv.Get().(int8) 1678 m := int64(v) 1679 s.ByteVal = &m 1680 } 1681 if err := payloadUnmarshaler.UnmarshalPayload( 1682 bytes.NewReader(msg.Payload), s, 1683 ); err != nil { 1684 return err 1685 } 1686 return nil 1687 } 1688 1689 // MarshalEvent marshals the type into an stream event value. This method 1690 // should only used internally within the SDK's EventStream handling. 1691 func (s *ImplicitPayloadEvent) MarshalEvent(pm protocol.PayloadMarshaler) (msg eventstream.Message, err error) { 1692 msg.Headers.Set(eventstreamapi.MessageTypeHeader, eventstream.StringValue(eventstreamapi.EventMessageType)) 1693 msg.Headers.Set("ByteVal", eventstream.Int8Value(int8(*s.ByteVal))) 1694 var buf bytes.Buffer 1695 if err = pm.MarshalPayload(&buf, s); err != nil { 1696 return eventstream.Message{}, err 1697 } 1698 msg.Payload = buf.Bytes() 1699 return msg, err 1700 } 1701 1702 type NestedShape struct { 1703 _ struct{} `type:"structure"` 1704 1705 IntVal *int64 `type:"integer"` 1706 1707 StrVal *string `type:"string"` 1708 } 1709 1710 // String returns the string representation. 1711 // 1712 // API parameter values that are decorated as "sensitive" in the API will not 1713 // be included in the string output. The member name will be present, but the 1714 // value will be replaced with "sensitive". 1715 func (s NestedShape) String() string { 1716 return awsutil.Prettify(s) 1717 } 1718 1719 // GoString returns the string representation. 1720 // 1721 // API parameter values that are decorated as "sensitive" in the API will not 1722 // be included in the string output. The member name will be present, but the 1723 // value will be replaced with "sensitive". 1724 func (s NestedShape) GoString() string { 1725 return s.String() 1726 } 1727 1728 // SetIntVal sets the IntVal field's value. 1729 func (s *NestedShape) SetIntVal(v int64) *NestedShape { 1730 s.IntVal = &v 1731 return s 1732 } 1733 1734 // SetStrVal sets the StrVal field's value. 1735 func (s *NestedShape) SetStrVal(v string) *NestedShape { 1736 s.StrVal = &v 1737 return s 1738 } 1739 1740 type OtherOperationInput struct { 1741 _ struct{} `type:"structure"` 1742 } 1743 1744 // String returns the string representation. 1745 // 1746 // API parameter values that are decorated as "sensitive" in the API will not 1747 // be included in the string output. The member name will be present, but the 1748 // value will be replaced with "sensitive". 1749 func (s OtherOperationInput) String() string { 1750 return awsutil.Prettify(s) 1751 } 1752 1753 // GoString returns the string representation. 1754 // 1755 // API parameter values that are decorated as "sensitive" in the API will not 1756 // be included in the string output. The member name will be present, but the 1757 // value will be replaced with "sensitive". 1758 func (s OtherOperationInput) GoString() string { 1759 return s.String() 1760 } 1761 1762 type OtherOperationOutput struct { 1763 _ struct{} `type:"structure"` 1764 } 1765 1766 // String returns the string representation. 1767 // 1768 // API parameter values that are decorated as "sensitive" in the API will not 1769 // be included in the string output. The member name will be present, but the 1770 // value will be replaced with "sensitive". 1771 func (s OtherOperationOutput) String() string { 1772 return awsutil.Prettify(s) 1773 } 1774 1775 // GoString returns the string representation. 1776 // 1777 // API parameter values that are decorated as "sensitive" in the API will not 1778 // be included in the string output. The member name will be present, but the 1779 // value will be replaced with "sensitive". 1780 func (s OtherOperationOutput) GoString() string { 1781 return s.String() 1782 } 1783 1784 type PayloadOnlyBlobEvent struct { 1785 _ struct{} `type:"structure" payload:"BlobPayload"` 1786 1787 // BlobPayload is automatically base64 encoded/decoded by the SDK. 1788 BlobPayload []byte `type:"blob"` 1789 } 1790 1791 // String returns the string representation. 1792 // 1793 // API parameter values that are decorated as "sensitive" in the API will not 1794 // be included in the string output. The member name will be present, but the 1795 // value will be replaced with "sensitive". 1796 func (s PayloadOnlyBlobEvent) String() string { 1797 return awsutil.Prettify(s) 1798 } 1799 1800 // GoString returns the string representation. 1801 // 1802 // API parameter values that are decorated as "sensitive" in the API will not 1803 // be included in the string output. The member name will be present, but the 1804 // value will be replaced with "sensitive". 1805 func (s PayloadOnlyBlobEvent) GoString() string { 1806 return s.String() 1807 } 1808 1809 // SetBlobPayload sets the BlobPayload field's value. 1810 func (s *PayloadOnlyBlobEvent) SetBlobPayload(v []byte) *PayloadOnlyBlobEvent { 1811 s.BlobPayload = v 1812 return s 1813 } 1814 1815 // The PayloadOnlyBlobEvent is and event in the EventStream group of events. 1816 func (s *PayloadOnlyBlobEvent) eventEventStream() {} 1817 1818 // UnmarshalEvent unmarshals the EventStream Message into the PayloadOnlyBlobEvent value. 1819 // This method is only used internally within the SDK's EventStream handling. 1820 func (s *PayloadOnlyBlobEvent) UnmarshalEvent( 1821 payloadUnmarshaler protocol.PayloadUnmarshaler, 1822 msg eventstream.Message, 1823 ) error { 1824 s.BlobPayload = make([]byte, len(msg.Payload)) 1825 copy(s.BlobPayload, msg.Payload) 1826 return nil 1827 } 1828 1829 // MarshalEvent marshals the type into an stream event value. This method 1830 // should only used internally within the SDK's EventStream handling. 1831 func (s *PayloadOnlyBlobEvent) MarshalEvent(pm protocol.PayloadMarshaler) (msg eventstream.Message, err error) { 1832 msg.Headers.Set(eventstreamapi.MessageTypeHeader, eventstream.StringValue(eventstreamapi.EventMessageType)) 1833 msg.Headers.Set(":content-type", eventstream.StringValue("application/octet-stream")) 1834 msg.Payload = s.BlobPayload 1835 return msg, err 1836 } 1837 1838 type PayloadOnlyEvent struct { 1839 _ struct{} `type:"structure" payload:"NestedVal"` 1840 1841 NestedVal *NestedShape `locationName:"NestedVal" type:"structure"` 1842 } 1843 1844 // String returns the string representation. 1845 // 1846 // API parameter values that are decorated as "sensitive" in the API will not 1847 // be included in the string output. The member name will be present, but the 1848 // value will be replaced with "sensitive". 1849 func (s PayloadOnlyEvent) String() string { 1850 return awsutil.Prettify(s) 1851 } 1852 1853 // GoString returns the string representation. 1854 // 1855 // API parameter values that are decorated as "sensitive" in the API will not 1856 // be included in the string output. The member name will be present, but the 1857 // value will be replaced with "sensitive". 1858 func (s PayloadOnlyEvent) GoString() string { 1859 return s.String() 1860 } 1861 1862 // SetNestedVal sets the NestedVal field's value. 1863 func (s *PayloadOnlyEvent) SetNestedVal(v *NestedShape) *PayloadOnlyEvent { 1864 s.NestedVal = v 1865 return s 1866 } 1867 1868 // The PayloadOnlyEvent is and event in the EventStream group of events. 1869 func (s *PayloadOnlyEvent) eventEventStream() {} 1870 1871 // UnmarshalEvent unmarshals the EventStream Message into the PayloadOnlyEvent value. 1872 // This method is only used internally within the SDK's EventStream handling. 1873 func (s *PayloadOnlyEvent) UnmarshalEvent( 1874 payloadUnmarshaler protocol.PayloadUnmarshaler, 1875 msg eventstream.Message, 1876 ) error { 1877 if err := payloadUnmarshaler.UnmarshalPayload( 1878 bytes.NewReader(msg.Payload), s, 1879 ); err != nil { 1880 return err 1881 } 1882 return nil 1883 } 1884 1885 // MarshalEvent marshals the type into an stream event value. This method 1886 // should only used internally within the SDK's EventStream handling. 1887 func (s *PayloadOnlyEvent) MarshalEvent(pm protocol.PayloadMarshaler) (msg eventstream.Message, err error) { 1888 msg.Headers.Set(eventstreamapi.MessageTypeHeader, eventstream.StringValue(eventstreamapi.EventMessageType)) 1889 var buf bytes.Buffer 1890 if err = pm.MarshalPayload(&buf, s); err != nil { 1891 return eventstream.Message{}, err 1892 } 1893 msg.Payload = buf.Bytes() 1894 return msg, err 1895 } 1896 1897 type PayloadOnlyStringEvent struct { 1898 _ struct{} `type:"structure" payload:"StringPayload"` 1899 1900 StringPayload *string `locationName:"StringPayload" type:"string"` 1901 } 1902 1903 // String returns the string representation. 1904 // 1905 // API parameter values that are decorated as "sensitive" in the API will not 1906 // be included in the string output. The member name will be present, but the 1907 // value will be replaced with "sensitive". 1908 func (s PayloadOnlyStringEvent) String() string { 1909 return awsutil.Prettify(s) 1910 } 1911 1912 // GoString returns the string representation. 1913 // 1914 // API parameter values that are decorated as "sensitive" in the API will not 1915 // be included in the string output. The member name will be present, but the 1916 // value will be replaced with "sensitive". 1917 func (s PayloadOnlyStringEvent) GoString() string { 1918 return s.String() 1919 } 1920 1921 // SetStringPayload sets the StringPayload field's value. 1922 func (s *PayloadOnlyStringEvent) SetStringPayload(v string) *PayloadOnlyStringEvent { 1923 s.StringPayload = &v 1924 return s 1925 } 1926 1927 // The PayloadOnlyStringEvent is and event in the EventStream group of events. 1928 func (s *PayloadOnlyStringEvent) eventEventStream() {} 1929 1930 // UnmarshalEvent unmarshals the EventStream Message into the PayloadOnlyStringEvent value. 1931 // This method is only used internally within the SDK's EventStream handling. 1932 func (s *PayloadOnlyStringEvent) UnmarshalEvent( 1933 payloadUnmarshaler protocol.PayloadUnmarshaler, 1934 msg eventstream.Message, 1935 ) error { 1936 s.StringPayload = aws.String(string(msg.Payload)) 1937 return nil 1938 } 1939 1940 // MarshalEvent marshals the type into an stream event value. This method 1941 // should only used internally within the SDK's EventStream handling. 1942 func (s *PayloadOnlyStringEvent) MarshalEvent(pm protocol.PayloadMarshaler) (msg eventstream.Message, err error) { 1943 msg.Headers.Set(eventstreamapi.MessageTypeHeader, eventstream.StringValue(eventstreamapi.EventMessageType)) 1944 msg.Payload = []byte(aws.StringValue(s.StringPayload)) 1945 return msg, err 1946 }