404 Not Found


nginx
beegazpacho.com - GrazzMean
Uname: Linux in-mum-web1557.main-hosting.eu 5.14.0-611.42.1.el9_7.x86_64 #1 SMP PREEMPT_DYNAMIC Tue Mar 24 05:30:20 EDT 2026 x86_64
Software: LiteSpeed
PHP version: 8.2.30 [ PHP INFO ] PHP os: Linux
Server Ip: 91.108.106.64
Your Ip: 216.73.216.168
User: u848900432 (848900432) | Group: o51372345 (1051372345)
Safe Mode: OFF
Disable Function:
NONE

name : api.go
// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT.

package backupstorage

import (
	"fmt"
	"io"
	"time"

	"github.com/aws/aws-sdk-go/aws"
	"github.com/aws/aws-sdk-go/aws/awsutil"
	"github.com/aws/aws-sdk-go/aws/request"
	"github.com/aws/aws-sdk-go/aws/signer/v4"
	"github.com/aws/aws-sdk-go/private/protocol"
	"github.com/aws/aws-sdk-go/private/protocol/restjson"
)

const opDeleteObject = "DeleteObject"

// DeleteObjectRequest generates a "aws/request.Request" representing the
// client's request for the DeleteObject operation. The "output" return
// value will be populated with the request's response once the request completes
// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
//
// See DeleteObject for more information on using the DeleteObject
// API call, and error handling.
//
// This method is useful when you want to inject custom logic or configuration
// into the SDK's request lifecycle. Such as custom headers, or retry logic.
//
//	// Example sending a request using the DeleteObjectRequest method.
//	req, resp := client.DeleteObjectRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/backupstorage-2018-04-10/DeleteObject
func (c *BackupStorage) DeleteObjectRequest(input *DeleteObjectInput) (req *request.Request, output *DeleteObjectOutput) {
	op := &request.Operation{
		Name:       opDeleteObject,
		HTTPMethod: "DELETE",
		HTTPPath:   "/backup-jobs/{jobId}/object/{objectName}",
	}

	if input == nil {
		input = &DeleteObjectInput{}
	}

	output = &DeleteObjectOutput{}
	req = c.newRequest(op, input, output)
	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
	return
}

// DeleteObject API operation for AWS Backup Storage.
//
// Delete Object from the incremental base Backup.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for AWS Backup Storage's
// API operation DeleteObject for usage and error information.
//
// Returned Error Types:
//
//   - ServiceUnavailableException
//     Retryable exception, indicates internal server error.
//
//   - ServiceInternalException
//     Deprecated. To be removed from the model.
//
//   - RetryableException
//     Retryable exception. In general indicates internal failure that can be fixed
//     by retry.
//
//   - IllegalArgumentException
//     Non-retryable exception, indicates client error (wrong argument passed to
//     API). See exception message for details.
//
//   - ResourceNotFoundException
//     Non-retryable exception. Attempted to make an operation on non-existing or
//     expired resource.
//
//   - ThrottlingException
//     Increased rate over throttling limits. Can be retried with exponential backoff.
//
//   - AccessDeniedException
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/backupstorage-2018-04-10/DeleteObject
func (c *BackupStorage) DeleteObject(input *DeleteObjectInput) (*DeleteObjectOutput, error) {
	req, out := c.DeleteObjectRequest(input)
	return out, req.Send()
}

// DeleteObjectWithContext is the same as DeleteObject with the addition of
// the ability to pass a context and additional request options.
//
// See DeleteObject for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *BackupStorage) DeleteObjectWithContext(ctx aws.Context, input *DeleteObjectInput, opts ...request.Option) (*DeleteObjectOutput, error) {
	req, out := c.DeleteObjectRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

const opGetChunk = "GetChunk"

// GetChunkRequest generates a "aws/request.Request" representing the
// client's request for the GetChunk operation. The "output" return
// value will be populated with the request's response once the request completes
// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
//
// See GetChunk for more information on using the GetChunk
// API call, and error handling.
//
// This method is useful when you want to inject custom logic or configuration
// into the SDK's request lifecycle. Such as custom headers, or retry logic.
//
//	// Example sending a request using the GetChunkRequest method.
//	req, resp := client.GetChunkRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/backupstorage-2018-04-10/GetChunk
func (c *BackupStorage) GetChunkRequest(input *GetChunkInput) (req *request.Request, output *GetChunkOutput) {
	op := &request.Operation{
		Name:       opGetChunk,
		HTTPMethod: "GET",
		HTTPPath:   "/restore-jobs/{jobId}/chunk/{chunkToken}",
	}

	if input == nil {
		input = &GetChunkInput{}
	}

	output = &GetChunkOutput{}
	req = c.newRequest(op, input, output)
	return
}

// GetChunk API operation for AWS Backup Storage.
//
// Gets the specified object's chunk.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for AWS Backup Storage's
// API operation GetChunk for usage and error information.
//
// Returned Error Types:
//
//   - IllegalArgumentException
//     Non-retryable exception, indicates client error (wrong argument passed to
//     API). See exception message for details.
//
//   - RetryableException
//     Retryable exception. In general indicates internal failure that can be fixed
//     by retry.
//
//   - ResourceNotFoundException
//     Non-retryable exception. Attempted to make an operation on non-existing or
//     expired resource.
//
//   - ServiceInternalException
//     Deprecated. To be removed from the model.
//
//   - ThrottlingException
//     Increased rate over throttling limits. Can be retried with exponential backoff.
//
//   - KMSInvalidKeyUsageException
//     Non-retryable exception. Indicates the KMS key usage is incorrect. See exception
//     message for details.
//
//   - AccessDeniedException
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/backupstorage-2018-04-10/GetChunk
func (c *BackupStorage) GetChunk(input *GetChunkInput) (*GetChunkOutput, error) {
	req, out := c.GetChunkRequest(input)
	return out, req.Send()
}

// GetChunkWithContext is the same as GetChunk with the addition of
// the ability to pass a context and additional request options.
//
// See GetChunk for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *BackupStorage) GetChunkWithContext(ctx aws.Context, input *GetChunkInput, opts ...request.Option) (*GetChunkOutput, error) {
	req, out := c.GetChunkRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

const opGetObjectMetadata = "GetObjectMetadata"

// GetObjectMetadataRequest generates a "aws/request.Request" representing the
// client's request for the GetObjectMetadata operation. The "output" return
// value will be populated with the request's response once the request completes
// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
//
// See GetObjectMetadata for more information on using the GetObjectMetadata
// API call, and error handling.
//
// This method is useful when you want to inject custom logic or configuration
// into the SDK's request lifecycle. Such as custom headers, or retry logic.
//
//	// Example sending a request using the GetObjectMetadataRequest method.
//	req, resp := client.GetObjectMetadataRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/backupstorage-2018-04-10/GetObjectMetadata
func (c *BackupStorage) GetObjectMetadataRequest(input *GetObjectMetadataInput) (req *request.Request, output *GetObjectMetadataOutput) {
	op := &request.Operation{
		Name:       opGetObjectMetadata,
		HTTPMethod: "GET",
		HTTPPath:   "/restore-jobs/{jobId}/object/{objectToken}/metadata",
	}

	if input == nil {
		input = &GetObjectMetadataInput{}
	}

	output = &GetObjectMetadataOutput{}
	req = c.newRequest(op, input, output)
	return
}

// GetObjectMetadata API operation for AWS Backup Storage.
//
// Get metadata associated with an Object.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for AWS Backup Storage's
// API operation GetObjectMetadata for usage and error information.
//
// Returned Error Types:
//
//   - ServiceUnavailableException
//     Retryable exception, indicates internal server error.
//
//   - ServiceInternalException
//     Deprecated. To be removed from the model.
//
//   - ResourceNotFoundException
//     Non-retryable exception. Attempted to make an operation on non-existing or
//     expired resource.
//
//   - RetryableException
//     Retryable exception. In general indicates internal failure that can be fixed
//     by retry.
//
//   - IllegalArgumentException
//     Non-retryable exception, indicates client error (wrong argument passed to
//     API). See exception message for details.
//
//   - ThrottlingException
//     Increased rate over throttling limits. Can be retried with exponential backoff.
//
//   - KMSInvalidKeyUsageException
//     Non-retryable exception. Indicates the KMS key usage is incorrect. See exception
//     message for details.
//
//   - AccessDeniedException
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/backupstorage-2018-04-10/GetObjectMetadata
func (c *BackupStorage) GetObjectMetadata(input *GetObjectMetadataInput) (*GetObjectMetadataOutput, error) {
	req, out := c.GetObjectMetadataRequest(input)
	return out, req.Send()
}

// GetObjectMetadataWithContext is the same as GetObjectMetadata with the addition of
// the ability to pass a context and additional request options.
//
// See GetObjectMetadata for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *BackupStorage) GetObjectMetadataWithContext(ctx aws.Context, input *GetObjectMetadataInput, opts ...request.Option) (*GetObjectMetadataOutput, error) {
	req, out := c.GetObjectMetadataRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

const opListChunks = "ListChunks"

// ListChunksRequest generates a "aws/request.Request" representing the
// client's request for the ListChunks operation. The "output" return
// value will be populated with the request's response once the request completes
// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
//
// See ListChunks for more information on using the ListChunks
// API call, and error handling.
//
// This method is useful when you want to inject custom logic or configuration
// into the SDK's request lifecycle. Such as custom headers, or retry logic.
//
//	// Example sending a request using the ListChunksRequest method.
//	req, resp := client.ListChunksRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/backupstorage-2018-04-10/ListChunks
func (c *BackupStorage) ListChunksRequest(input *ListChunksInput) (req *request.Request, output *ListChunksOutput) {
	op := &request.Operation{
		Name:       opListChunks,
		HTTPMethod: "GET",
		HTTPPath:   "/restore-jobs/{jobId}/chunks/{objectToken}/list",
		Paginator: &request.Paginator{
			InputTokens:     []string{"NextToken"},
			OutputTokens:    []string{"NextToken"},
			LimitToken:      "MaxResults",
			TruncationToken: "",
		},
	}

	if input == nil {
		input = &ListChunksInput{}
	}

	output = &ListChunksOutput{}
	req = c.newRequest(op, input, output)
	return
}

// ListChunks API operation for AWS Backup Storage.
//
// # List chunks in a given Object
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for AWS Backup Storage's
// API operation ListChunks for usage and error information.
//
// Returned Error Types:
//
//   - ServiceUnavailableException
//     Retryable exception, indicates internal server error.
//
//   - ResourceNotFoundException
//     Non-retryable exception. Attempted to make an operation on non-existing or
//     expired resource.
//
//   - ServiceInternalException
//     Deprecated. To be removed from the model.
//
//   - RetryableException
//     Retryable exception. In general indicates internal failure that can be fixed
//     by retry.
//
//   - IllegalArgumentException
//     Non-retryable exception, indicates client error (wrong argument passed to
//     API). See exception message for details.
//
//   - AccessDeniedException
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/backupstorage-2018-04-10/ListChunks
func (c *BackupStorage) ListChunks(input *ListChunksInput) (*ListChunksOutput, error) {
	req, out := c.ListChunksRequest(input)
	return out, req.Send()
}

// ListChunksWithContext is the same as ListChunks with the addition of
// the ability to pass a context and additional request options.
//
// See ListChunks for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *BackupStorage) ListChunksWithContext(ctx aws.Context, input *ListChunksInput, opts ...request.Option) (*ListChunksOutput, error) {
	req, out := c.ListChunksRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

// ListChunksPages iterates over the pages of a ListChunks operation,
// calling the "fn" function with the response data for each page. To stop
// iterating, return false from the fn function.
//
// See ListChunks method for more information on how to use this operation.
//
// Note: This operation can generate multiple requests to a service.
//
//	// Example iterating over at most 3 pages of a ListChunks operation.
//	pageNum := 0
//	err := client.ListChunksPages(params,
//	    func(page *backupstorage.ListChunksOutput, lastPage bool) bool {
//	        pageNum++
//	        fmt.Println(page)
//	        return pageNum <= 3
//	    })
func (c *BackupStorage) ListChunksPages(input *ListChunksInput, fn func(*ListChunksOutput, bool) bool) error {
	return c.ListChunksPagesWithContext(aws.BackgroundContext(), input, fn)
}

// ListChunksPagesWithContext same as ListChunksPages except
// it takes a Context and allows setting request options on the pages.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *BackupStorage) ListChunksPagesWithContext(ctx aws.Context, input *ListChunksInput, fn func(*ListChunksOutput, bool) bool, opts ...request.Option) error {
	p := request.Pagination{
		NewRequest: func() (*request.Request, error) {
			var inCpy *ListChunksInput
			if input != nil {
				tmp := *input
				inCpy = &tmp
			}
			req, _ := c.ListChunksRequest(inCpy)
			req.SetContext(ctx)
			req.ApplyOptions(opts...)
			return req, nil
		},
	}

	for p.Next() {
		if !fn(p.Page().(*ListChunksOutput), !p.HasNextPage()) {
			break
		}
	}

	return p.Err()
}

const opListObjects = "ListObjects"

// ListObjectsRequest generates a "aws/request.Request" representing the
// client's request for the ListObjects operation. The "output" return
// value will be populated with the request's response once the request completes
// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
//
// See ListObjects for more information on using the ListObjects
// API call, and error handling.
//
// This method is useful when you want to inject custom logic or configuration
// into the SDK's request lifecycle. Such as custom headers, or retry logic.
//
//	// Example sending a request using the ListObjectsRequest method.
//	req, resp := client.ListObjectsRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/backupstorage-2018-04-10/ListObjects
func (c *BackupStorage) ListObjectsRequest(input *ListObjectsInput) (req *request.Request, output *ListObjectsOutput) {
	op := &request.Operation{
		Name:       opListObjects,
		HTTPMethod: "GET",
		HTTPPath:   "/restore-jobs/{jobId}/objects/list",
		Paginator: &request.Paginator{
			InputTokens:     []string{"NextToken"},
			OutputTokens:    []string{"NextToken"},
			LimitToken:      "MaxResults",
			TruncationToken: "",
		},
	}

	if input == nil {
		input = &ListObjectsInput{}
	}

	output = &ListObjectsOutput{}
	req = c.newRequest(op, input, output)
	return
}

// ListObjects API operation for AWS Backup Storage.
//
// List all Objects in a given Backup.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for AWS Backup Storage's
// API operation ListObjects for usage and error information.
//
// Returned Error Types:
//
//   - ServiceUnavailableException
//     Retryable exception, indicates internal server error.
//
//   - ServiceInternalException
//     Deprecated. To be removed from the model.
//
//   - RetryableException
//     Retryable exception. In general indicates internal failure that can be fixed
//     by retry.
//
//   - IllegalArgumentException
//     Non-retryable exception, indicates client error (wrong argument passed to
//     API). See exception message for details.
//
//   - ThrottlingException
//     Increased rate over throttling limits. Can be retried with exponential backoff.
//
//   - ResourceNotFoundException
//     Non-retryable exception. Attempted to make an operation on non-existing or
//     expired resource.
//
//   - KMSInvalidKeyUsageException
//     Non-retryable exception. Indicates the KMS key usage is incorrect. See exception
//     message for details.
//
//   - AccessDeniedException
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/backupstorage-2018-04-10/ListObjects
func (c *BackupStorage) ListObjects(input *ListObjectsInput) (*ListObjectsOutput, error) {
	req, out := c.ListObjectsRequest(input)
	return out, req.Send()
}

// ListObjectsWithContext is the same as ListObjects with the addition of
// the ability to pass a context and additional request options.
//
// See ListObjects for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *BackupStorage) ListObjectsWithContext(ctx aws.Context, input *ListObjectsInput, opts ...request.Option) (*ListObjectsOutput, error) {
	req, out := c.ListObjectsRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

// ListObjectsPages iterates over the pages of a ListObjects operation,
// calling the "fn" function with the response data for each page. To stop
// iterating, return false from the fn function.
//
// See ListObjects method for more information on how to use this operation.
//
// Note: This operation can generate multiple requests to a service.
//
//	// Example iterating over at most 3 pages of a ListObjects operation.
//	pageNum := 0
//	err := client.ListObjectsPages(params,
//	    func(page *backupstorage.ListObjectsOutput, lastPage bool) bool {
//	        pageNum++
//	        fmt.Println(page)
//	        return pageNum <= 3
//	    })
func (c *BackupStorage) ListObjectsPages(input *ListObjectsInput, fn func(*ListObjectsOutput, bool) bool) error {
	return c.ListObjectsPagesWithContext(aws.BackgroundContext(), input, fn)
}

// ListObjectsPagesWithContext same as ListObjectsPages except
// it takes a Context and allows setting request options on the pages.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *BackupStorage) ListObjectsPagesWithContext(ctx aws.Context, input *ListObjectsInput, fn func(*ListObjectsOutput, bool) bool, opts ...request.Option) error {
	p := request.Pagination{
		NewRequest: func() (*request.Request, error) {
			var inCpy *ListObjectsInput
			if input != nil {
				tmp := *input
				inCpy = &tmp
			}
			req, _ := c.ListObjectsRequest(inCpy)
			req.SetContext(ctx)
			req.ApplyOptions(opts...)
			return req, nil
		},
	}

	for p.Next() {
		if !fn(p.Page().(*ListObjectsOutput), !p.HasNextPage()) {
			break
		}
	}

	return p.Err()
}

const opNotifyObjectComplete = "NotifyObjectComplete"

// NotifyObjectCompleteRequest generates a "aws/request.Request" representing the
// client's request for the NotifyObjectComplete operation. The "output" return
// value will be populated with the request's response once the request completes
// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
//
// See NotifyObjectComplete for more information on using the NotifyObjectComplete
// API call, and error handling.
//
// This method is useful when you want to inject custom logic or configuration
// into the SDK's request lifecycle. Such as custom headers, or retry logic.
//
//	// Example sending a request using the NotifyObjectCompleteRequest method.
//	req, resp := client.NotifyObjectCompleteRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/backupstorage-2018-04-10/NotifyObjectComplete
func (c *BackupStorage) NotifyObjectCompleteRequest(input *NotifyObjectCompleteInput) (req *request.Request, output *NotifyObjectCompleteOutput) {
	op := &request.Operation{
		Name:       opNotifyObjectComplete,
		HTTPMethod: "PUT",
		HTTPPath:   "/backup-jobs/{jobId}/object/{uploadId}/complete",
	}

	if input == nil {
		input = &NotifyObjectCompleteInput{}
	}

	output = &NotifyObjectCompleteOutput{}
	req = c.newRequest(op, input, output)
	req.Handlers.Sign.Remove(v4.SignRequestHandler)
	handler := v4.BuildNamedHandler("v4.CustomSignerHandler", v4.WithUnsignedPayload)
	req.Handlers.Sign.PushFrontNamed(handler)
	return
}

// NotifyObjectComplete API operation for AWS Backup Storage.
//
// # Complete upload
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for AWS Backup Storage's
// API operation NotifyObjectComplete for usage and error information.
//
// Returned Error Types:
//
//   - ServiceUnavailableException
//     Retryable exception, indicates internal server error.
//
//   - ServiceInternalException
//     Deprecated. To be removed from the model.
//
//   - NotReadableInputStreamException
//     Retryalble exception. Indicated issues while reading an input stream due
//     to the networking issues or connection drop on the client side.
//
//   - RetryableException
//     Retryable exception. In general indicates internal failure that can be fixed
//     by retry.
//
//   - IllegalArgumentException
//     Non-retryable exception, indicates client error (wrong argument passed to
//     API). See exception message for details.
//
//   - ThrottlingException
//     Increased rate over throttling limits. Can be retried with exponential backoff.
//
//   - KMSInvalidKeyUsageException
//     Non-retryable exception. Indicates the KMS key usage is incorrect. See exception
//     message for details.
//
//   - AccessDeniedException
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/backupstorage-2018-04-10/NotifyObjectComplete
func (c *BackupStorage) NotifyObjectComplete(input *NotifyObjectCompleteInput) (*NotifyObjectCompleteOutput, error) {
	req, out := c.NotifyObjectCompleteRequest(input)
	return out, req.Send()
}

// NotifyObjectCompleteWithContext is the same as NotifyObjectComplete with the addition of
// the ability to pass a context and additional request options.
//
// See NotifyObjectComplete for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *BackupStorage) NotifyObjectCompleteWithContext(ctx aws.Context, input *NotifyObjectCompleteInput, opts ...request.Option) (*NotifyObjectCompleteOutput, error) {
	req, out := c.NotifyObjectCompleteRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

const opPutChunk = "PutChunk"

// PutChunkRequest generates a "aws/request.Request" representing the
// client's request for the PutChunk operation. The "output" return
// value will be populated with the request's response once the request completes
// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
//
// See PutChunk for more information on using the PutChunk
// API call, and error handling.
//
// This method is useful when you want to inject custom logic or configuration
// into the SDK's request lifecycle. Such as custom headers, or retry logic.
//
//	// Example sending a request using the PutChunkRequest method.
//	req, resp := client.PutChunkRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/backupstorage-2018-04-10/PutChunk
func (c *BackupStorage) PutChunkRequest(input *PutChunkInput) (req *request.Request, output *PutChunkOutput) {
	op := &request.Operation{
		Name:       opPutChunk,
		HTTPMethod: "PUT",
		HTTPPath:   "/backup-jobs/{jobId}/chunk/{uploadId}/{chunkIndex}",
	}

	if input == nil {
		input = &PutChunkInput{}
	}

	output = &PutChunkOutput{}
	req = c.newRequest(op, input, output)
	req.Handlers.Sign.Remove(v4.SignRequestHandler)
	handler := v4.BuildNamedHandler("v4.CustomSignerHandler", v4.WithUnsignedPayload)
	req.Handlers.Sign.PushFrontNamed(handler)
	return
}

// PutChunk API operation for AWS Backup Storage.
//
// Upload chunk.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for AWS Backup Storage's
// API operation PutChunk for usage and error information.
//
// Returned Error Types:
//
//   - ServiceUnavailableException
//     Retryable exception, indicates internal server error.
//
//   - ServiceInternalException
//     Deprecated. To be removed from the model.
//
//   - NotReadableInputStreamException
//     Retryalble exception. Indicated issues while reading an input stream due
//     to the networking issues or connection drop on the client side.
//
//   - RetryableException
//     Retryable exception. In general indicates internal failure that can be fixed
//     by retry.
//
//   - IllegalArgumentException
//     Non-retryable exception, indicates client error (wrong argument passed to
//     API). See exception message for details.
//
//   - ThrottlingException
//     Increased rate over throttling limits. Can be retried with exponential backoff.
//
//   - KMSInvalidKeyUsageException
//     Non-retryable exception. Indicates the KMS key usage is incorrect. See exception
//     message for details.
//
//   - AccessDeniedException
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/backupstorage-2018-04-10/PutChunk
func (c *BackupStorage) PutChunk(input *PutChunkInput) (*PutChunkOutput, error) {
	req, out := c.PutChunkRequest(input)
	return out, req.Send()
}

// PutChunkWithContext is the same as PutChunk with the addition of
// the ability to pass a context and additional request options.
//
// See PutChunk for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *BackupStorage) PutChunkWithContext(ctx aws.Context, input *PutChunkInput, opts ...request.Option) (*PutChunkOutput, error) {
	req, out := c.PutChunkRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

const opPutObject = "PutObject"

// PutObjectRequest generates a "aws/request.Request" representing the
// client's request for the PutObject operation. The "output" return
// value will be populated with the request's response once the request completes
// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
//
// See PutObject for more information on using the PutObject
// API call, and error handling.
//
// This method is useful when you want to inject custom logic or configuration
// into the SDK's request lifecycle. Such as custom headers, or retry logic.
//
//	// Example sending a request using the PutObjectRequest method.
//	req, resp := client.PutObjectRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/backupstorage-2018-04-10/PutObject
func (c *BackupStorage) PutObjectRequest(input *PutObjectInput) (req *request.Request, output *PutObjectOutput) {
	op := &request.Operation{
		Name:       opPutObject,
		HTTPMethod: "PUT",
		HTTPPath:   "/backup-jobs/{jobId}/object/{objectName}/put-object",
	}

	if input == nil {
		input = &PutObjectInput{}
	}

	output = &PutObjectOutput{}
	req = c.newRequest(op, input, output)
	req.Handlers.Sign.Remove(v4.SignRequestHandler)
	handler := v4.BuildNamedHandler("v4.CustomSignerHandler", v4.WithUnsignedPayload)
	req.Handlers.Sign.PushFrontNamed(handler)
	return
}

// PutObject API operation for AWS Backup Storage.
//
// Upload object that can store object metadata String and data blob in single
// API call using inline chunk field.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for AWS Backup Storage's
// API operation PutObject for usage and error information.
//
// Returned Error Types:
//
//   - ServiceUnavailableException
//     Retryable exception, indicates internal server error.
//
//   - ServiceInternalException
//     Deprecated. To be removed from the model.
//
//   - NotReadableInputStreamException
//     Retryalble exception. Indicated issues while reading an input stream due
//     to the networking issues or connection drop on the client side.
//
//   - RetryableException
//     Retryable exception. In general indicates internal failure that can be fixed
//     by retry.
//
//   - IllegalArgumentException
//     Non-retryable exception, indicates client error (wrong argument passed to
//     API). See exception message for details.
//
//   - ThrottlingException
//     Increased rate over throttling limits. Can be retried with exponential backoff.
//
//   - KMSInvalidKeyUsageException
//     Non-retryable exception. Indicates the KMS key usage is incorrect. See exception
//     message for details.
//
//   - AccessDeniedException
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/backupstorage-2018-04-10/PutObject
func (c *BackupStorage) PutObject(input *PutObjectInput) (*PutObjectOutput, error) {
	req, out := c.PutObjectRequest(input)
	return out, req.Send()
}

// PutObjectWithContext is the same as PutObject with the addition of
// the ability to pass a context and additional request options.
//
// See PutObject for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *BackupStorage) PutObjectWithContext(ctx aws.Context, input *PutObjectInput, opts ...request.Option) (*PutObjectOutput, error) {
	req, out := c.PutObjectRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

const opStartObject = "StartObject"

// StartObjectRequest generates a "aws/request.Request" representing the
// client's request for the StartObject operation. The "output" return
// value will be populated with the request's response once the request completes
// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
//
// See StartObject for more information on using the StartObject
// API call, and error handling.
//
// This method is useful when you want to inject custom logic or configuration
// into the SDK's request lifecycle. Such as custom headers, or retry logic.
//
//	// Example sending a request using the StartObjectRequest method.
//	req, resp := client.StartObjectRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/backupstorage-2018-04-10/StartObject
func (c *BackupStorage) StartObjectRequest(input *StartObjectInput) (req *request.Request, output *StartObjectOutput) {
	op := &request.Operation{
		Name:       opStartObject,
		HTTPMethod: "PUT",
		HTTPPath:   "/backup-jobs/{jobId}/object/{objectName}",
	}

	if input == nil {
		input = &StartObjectInput{}
	}

	output = &StartObjectOutput{}
	req = c.newRequest(op, input, output)
	return
}

// StartObject API operation for AWS Backup Storage.
//
// Start upload containing one or many chunks.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for AWS Backup Storage's
// API operation StartObject for usage and error information.
//
// Returned Error Types:
//
//   - ServiceUnavailableException
//     Retryable exception, indicates internal server error.
//
//   - ServiceInternalException
//     Deprecated. To be removed from the model.
//
//   - RetryableException
//     Retryable exception. In general indicates internal failure that can be fixed
//     by retry.
//
//   - IllegalArgumentException
//     Non-retryable exception, indicates client error (wrong argument passed to
//     API). See exception message for details.
//
//   - ResourceNotFoundException
//     Non-retryable exception. Attempted to make an operation on non-existing or
//     expired resource.
//
//   - DataAlreadyExistsException
//     Non-retryable exception. Attempted to create already existing object or chunk.
//     This message contains a checksum of already presented data.
//
//   - ThrottlingException
//     Increased rate over throttling limits. Can be retried with exponential backoff.
//
//   - AccessDeniedException
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/backupstorage-2018-04-10/StartObject
func (c *BackupStorage) StartObject(input *StartObjectInput) (*StartObjectOutput, error) {
	req, out := c.StartObjectRequest(input)
	return out, req.Send()
}

// StartObjectWithContext is the same as StartObject with the addition of
// the ability to pass a context and additional request options.
//
// See StartObject for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *BackupStorage) StartObjectWithContext(ctx aws.Context, input *StartObjectInput, opts ...request.Option) (*StartObjectOutput, error) {
	req, out := c.StartObjectRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

type AccessDeniedException struct {
	_            struct{}                  `type:"structure"`
	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`

	Message_ *string `locationName:"Message" type:"string"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s AccessDeniedException) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s AccessDeniedException) GoString() string {
	return s.String()
}

func newErrorAccessDeniedException(v protocol.ResponseMetadata) error {
	return &AccessDeniedException{
		RespMetadata: v,
	}
}

// Code returns the exception type name.
func (s *AccessDeniedException) Code() string {
	return "AccessDeniedException"
}

// Message returns the exception's message.
func (s *AccessDeniedException) Message() string {
	if s.Message_ != nil {
		return *s.Message_
	}
	return ""
}

// OrigErr always returns nil, satisfies awserr.Error interface.
func (s *AccessDeniedException) OrigErr() error {
	return nil
}

func (s *AccessDeniedException) Error() string {
	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
}

// Status code returns the HTTP status code for the request's response error.
func (s *AccessDeniedException) StatusCode() int {
	return s.RespMetadata.StatusCode
}

// RequestID returns the service's response RequestID for request.
func (s *AccessDeniedException) RequestID() string {
	return s.RespMetadata.RequestID
}

// Object
type BackupObject struct {
	_ struct{} `type:"structure"`

	// Number of chunks in object
	ChunksCount *int64 `type:"long"`

	// Metadata string associated with the Object
	MetadataString *string `type:"string"`

	// Object name
	//
	// Name is a required field
	Name *string `type:"string" required:"true"`

	// Object checksum
	//
	// ObjectChecksum is a required field
	ObjectChecksum *string `type:"string" required:"true"`

	// Checksum algorithm
	//
	// ObjectChecksumAlgorithm is a required field
	ObjectChecksumAlgorithm *string `type:"string" required:"true" enum:"SummaryChecksumAlgorithm"`

	// Object token
	//
	// ObjectToken is a required field
	ObjectToken *string `type:"string" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s BackupObject) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s BackupObject) GoString() string {
	return s.String()
}

// SetChunksCount sets the ChunksCount field's value.
func (s *BackupObject) SetChunksCount(v int64) *BackupObject {
	s.ChunksCount = &v
	return s
}

// SetMetadataString sets the MetadataString field's value.
func (s *BackupObject) SetMetadataString(v string) *BackupObject {
	s.MetadataString = &v
	return s
}

// SetName sets the Name field's value.
func (s *BackupObject) SetName(v string) *BackupObject {
	s.Name = &v
	return s
}

// SetObjectChecksum sets the ObjectChecksum field's value.
func (s *BackupObject) SetObjectChecksum(v string) *BackupObject {
	s.ObjectChecksum = &v
	return s
}

// SetObjectChecksumAlgorithm sets the ObjectChecksumAlgorithm field's value.
func (s *BackupObject) SetObjectChecksumAlgorithm(v string) *BackupObject {
	s.ObjectChecksumAlgorithm = &v
	return s
}

// SetObjectToken sets the ObjectToken field's value.
func (s *BackupObject) SetObjectToken(v string) *BackupObject {
	s.ObjectToken = &v
	return s
}

// Chunk
type Chunk struct {
	_ struct{} `type:"structure"`

	// Chunk checksum
	//
	// Checksum is a required field
	Checksum *string `type:"string" required:"true"`

	// Checksum algorithm
	//
	// ChecksumAlgorithm is a required field
	ChecksumAlgorithm *string `type:"string" required:"true" enum:"DataChecksumAlgorithm"`

	// Chunk token
	//
	// ChunkToken is a required field
	ChunkToken *string `type:"string" required:"true"`

	// Chunk index
	//
	// Index is a required field
	Index *int64 `type:"long" required:"true"`

	// Chunk length
	//
	// Length is a required field
	Length *int64 `type:"long" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s Chunk) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s Chunk) GoString() string {
	return s.String()
}

// SetChecksum sets the Checksum field's value.
func (s *Chunk) SetChecksum(v string) *Chunk {
	s.Checksum = &v
	return s
}

// SetChecksumAlgorithm sets the ChecksumAlgorithm field's value.
func (s *Chunk) SetChecksumAlgorithm(v string) *Chunk {
	s.ChecksumAlgorithm = &v
	return s
}

// SetChunkToken sets the ChunkToken field's value.
func (s *Chunk) SetChunkToken(v string) *Chunk {
	s.ChunkToken = &v
	return s
}

// SetIndex sets the Index field's value.
func (s *Chunk) SetIndex(v int64) *Chunk {
	s.Index = &v
	return s
}

// SetLength sets the Length field's value.
func (s *Chunk) SetLength(v int64) *Chunk {
	s.Length = &v
	return s
}

// Non-retryable exception. Attempted to create already existing object or chunk.
// This message contains a checksum of already presented data.
type DataAlreadyExistsException struct {
	_            struct{}                  `type:"structure"`
	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`

	// Data checksum used
	Checksum *string `type:"string"`

	// Checksum algorithm used
	ChecksumAlgorithm *string `type:"string"`

	Message_ *string `locationName:"Message" type:"string"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DataAlreadyExistsException) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DataAlreadyExistsException) GoString() string {
	return s.String()
}

func newErrorDataAlreadyExistsException(v protocol.ResponseMetadata) error {
	return &DataAlreadyExistsException{
		RespMetadata: v,
	}
}

// Code returns the exception type name.
func (s *DataAlreadyExistsException) Code() string {
	return "DataAlreadyExistsException"
}

// Message returns the exception's message.
func (s *DataAlreadyExistsException) Message() string {
	if s.Message_ != nil {
		return *s.Message_
	}
	return ""
}

// OrigErr always returns nil, satisfies awserr.Error interface.
func (s *DataAlreadyExistsException) OrigErr() error {
	return nil
}

func (s *DataAlreadyExistsException) Error() string {
	return fmt.Sprintf("%s: %s\n%s", s.Code(), s.Message(), s.String())
}

// Status code returns the HTTP status code for the request's response error.
func (s *DataAlreadyExistsException) StatusCode() int {
	return s.RespMetadata.StatusCode
}

// RequestID returns the service's response RequestID for request.
func (s *DataAlreadyExistsException) RequestID() string {
	return s.RespMetadata.RequestID
}

type DeleteObjectInput struct {
	_ struct{} `type:"structure" nopayload:"true"`

	// Backup job Id for the in-progress backup.
	//
	// BackupJobId is a required field
	BackupJobId *string `location:"uri" locationName:"jobId" type:"string" required:"true"`

	// The name of the Object.
	//
	// ObjectName is a required field
	ObjectName *string `location:"uri" locationName:"objectName" type:"string" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DeleteObjectInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DeleteObjectInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *DeleteObjectInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "DeleteObjectInput"}
	if s.BackupJobId == nil {
		invalidParams.Add(request.NewErrParamRequired("BackupJobId"))
	}
	if s.BackupJobId != nil && len(*s.BackupJobId) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("BackupJobId", 1))
	}
	if s.ObjectName == nil {
		invalidParams.Add(request.NewErrParamRequired("ObjectName"))
	}
	if s.ObjectName != nil && len(*s.ObjectName) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("ObjectName", 1))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetBackupJobId sets the BackupJobId field's value.
func (s *DeleteObjectInput) SetBackupJobId(v string) *DeleteObjectInput {
	s.BackupJobId = &v
	return s
}

// SetObjectName sets the ObjectName field's value.
func (s *DeleteObjectInput) SetObjectName(v string) *DeleteObjectInput {
	s.ObjectName = &v
	return s
}

type DeleteObjectOutput struct {
	_ struct{} `type:"structure"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DeleteObjectOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DeleteObjectOutput) GoString() string {
	return s.String()
}

type GetChunkInput struct {
	_ struct{} `type:"structure" nopayload:"true"`

	// Chunk token
	//
	// ChunkToken is a required field
	ChunkToken *string `location:"uri" locationName:"chunkToken" type:"string" required:"true"`

	// Storage job id
	//
	// StorageJobId is a required field
	StorageJobId *string `location:"uri" locationName:"jobId" type:"string" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s GetChunkInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s GetChunkInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *GetChunkInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "GetChunkInput"}
	if s.ChunkToken == nil {
		invalidParams.Add(request.NewErrParamRequired("ChunkToken"))
	}
	if s.ChunkToken != nil && len(*s.ChunkToken) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("ChunkToken", 1))
	}
	if s.StorageJobId == nil {
		invalidParams.Add(request.NewErrParamRequired("StorageJobId"))
	}
	if s.StorageJobId != nil && len(*s.StorageJobId) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("StorageJobId", 1))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetChunkToken sets the ChunkToken field's value.
func (s *GetChunkInput) SetChunkToken(v string) *GetChunkInput {
	s.ChunkToken = &v
	return s
}

// SetStorageJobId sets the StorageJobId field's value.
func (s *GetChunkInput) SetStorageJobId(v string) *GetChunkInput {
	s.StorageJobId = &v
	return s
}

type GetChunkOutput struct {
	_ struct{} `type:"structure" payload:"Data"`

	// Data checksum
	//
	// Checksum is a required field
	Checksum *string `location:"header" locationName:"x-amz-checksum" type:"string" required:"true"`

	// Checksum algorithm
	//
	// ChecksumAlgorithm is a required field
	ChecksumAlgorithm *string `location:"header" locationName:"x-amz-checksum-algorithm" type:"string" required:"true" enum:"DataChecksumAlgorithm"`

	// Chunk data
	//
	// Data is a required field
	Data io.ReadCloser `type:"blob" required:"true"`

	// Data length
	//
	// Length is a required field
	Length *int64 `location:"header" locationName:"x-amz-data-length" type:"long" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s GetChunkOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s GetChunkOutput) GoString() string {
	return s.String()
}

// SetChecksum sets the Checksum field's value.
func (s *GetChunkOutput) SetChecksum(v string) *GetChunkOutput {
	s.Checksum = &v
	return s
}

// SetChecksumAlgorithm sets the ChecksumAlgorithm field's value.
func (s *GetChunkOutput) SetChecksumAlgorithm(v string) *GetChunkOutput {
	s.ChecksumAlgorithm = &v
	return s
}

// SetData sets the Data field's value.
func (s *GetChunkOutput) SetData(v io.ReadCloser) *GetChunkOutput {
	s.Data = v
	return s
}

// SetLength sets the Length field's value.
func (s *GetChunkOutput) SetLength(v int64) *GetChunkOutput {
	s.Length = &v
	return s
}

type GetObjectMetadataInput struct {
	_ struct{} `type:"structure" nopayload:"true"`

	// Object token.
	//
	// ObjectToken is a required field
	ObjectToken *string `location:"uri" locationName:"objectToken" type:"string" required:"true"`

	// Backup job id for the in-progress backup.
	//
	// StorageJobId is a required field
	StorageJobId *string `location:"uri" locationName:"jobId" type:"string" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s GetObjectMetadataInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s GetObjectMetadataInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *GetObjectMetadataInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "GetObjectMetadataInput"}
	if s.ObjectToken == nil {
		invalidParams.Add(request.NewErrParamRequired("ObjectToken"))
	}
	if s.ObjectToken != nil && len(*s.ObjectToken) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("ObjectToken", 1))
	}
	if s.StorageJobId == nil {
		invalidParams.Add(request.NewErrParamRequired("StorageJobId"))
	}
	if s.StorageJobId != nil && len(*s.StorageJobId) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("StorageJobId", 1))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetObjectToken sets the ObjectToken field's value.
func (s *GetObjectMetadataInput) SetObjectToken(v string) *GetObjectMetadataInput {
	s.ObjectToken = &v
	return s
}

// SetStorageJobId sets the StorageJobId field's value.
func (s *GetObjectMetadataInput) SetStorageJobId(v string) *GetObjectMetadataInput {
	s.StorageJobId = &v
	return s
}

type GetObjectMetadataOutput struct {
	_ struct{} `type:"structure" payload:"MetadataBlob"`

	// Metadata blob.
	MetadataBlob io.ReadCloser `type:"blob"`

	// MetadataBlob checksum.
	MetadataBlobChecksum *string `location:"header" locationName:"x-amz-checksum" type:"string"`

	// Checksum algorithm.
	MetadataBlobChecksumAlgorithm *string `location:"header" locationName:"x-amz-checksum-algorithm" type:"string" enum:"DataChecksumAlgorithm"`

	// The size of MetadataBlob.
	MetadataBlobLength *int64 `location:"header" locationName:"x-amz-data-length" type:"long"`

	// Metadata string.
	MetadataString *string `location:"header" locationName:"x-amz-metadata-string" type:"string"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s GetObjectMetadataOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s GetObjectMetadataOutput) GoString() string {
	return s.String()
}

// SetMetadataBlob sets the MetadataBlob field's value.
func (s *GetObjectMetadataOutput) SetMetadataBlob(v io.ReadCloser) *GetObjectMetadataOutput {
	s.MetadataBlob = v
	return s
}

// SetMetadataBlobChecksum sets the MetadataBlobChecksum field's value.
func (s *GetObjectMetadataOutput) SetMetadataBlobChecksum(v string) *GetObjectMetadataOutput {
	s.MetadataBlobChecksum = &v
	return s
}

// SetMetadataBlobChecksumAlgorithm sets the MetadataBlobChecksumAlgorithm field's value.
func (s *GetObjectMetadataOutput) SetMetadataBlobChecksumAlgorithm(v string) *GetObjectMetadataOutput {
	s.MetadataBlobChecksumAlgorithm = &v
	return s
}

// SetMetadataBlobLength sets the MetadataBlobLength field's value.
func (s *GetObjectMetadataOutput) SetMetadataBlobLength(v int64) *GetObjectMetadataOutput {
	s.MetadataBlobLength = &v
	return s
}

// SetMetadataString sets the MetadataString field's value.
func (s *GetObjectMetadataOutput) SetMetadataString(v string) *GetObjectMetadataOutput {
	s.MetadataString = &v
	return s
}

// Non-retryable exception, indicates client error (wrong argument passed to
// API). See exception message for details.
type IllegalArgumentException struct {
	_            struct{}                  `type:"structure"`
	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`

	Message_ *string `locationName:"Message" type:"string"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s IllegalArgumentException) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s IllegalArgumentException) GoString() string {
	return s.String()
}

func newErrorIllegalArgumentException(v protocol.ResponseMetadata) error {
	return &IllegalArgumentException{
		RespMetadata: v,
	}
}

// Code returns the exception type name.
func (s *IllegalArgumentException) Code() string {
	return "IllegalArgumentException"
}

// Message returns the exception's message.
func (s *IllegalArgumentException) Message() string {
	if s.Message_ != nil {
		return *s.Message_
	}
	return ""
}

// OrigErr always returns nil, satisfies awserr.Error interface.
func (s *IllegalArgumentException) OrigErr() error {
	return nil
}

func (s *IllegalArgumentException) Error() string {
	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
}

// Status code returns the HTTP status code for the request's response error.
func (s *IllegalArgumentException) StatusCode() int {
	return s.RespMetadata.StatusCode
}

// RequestID returns the service's response RequestID for request.
func (s *IllegalArgumentException) RequestID() string {
	return s.RespMetadata.RequestID
}

// Non-retryable exception. Indicates the KMS key usage is incorrect. See exception
// message for details.
type KMSInvalidKeyUsageException struct {
	_            struct{}                  `type:"structure"`
	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`

	Message_ *string `locationName:"Message" type:"string"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s KMSInvalidKeyUsageException) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s KMSInvalidKeyUsageException) GoString() string {
	return s.String()
}

func newErrorKMSInvalidKeyUsageException(v protocol.ResponseMetadata) error {
	return &KMSInvalidKeyUsageException{
		RespMetadata: v,
	}
}

// Code returns the exception type name.
func (s *KMSInvalidKeyUsageException) Code() string {
	return "KMSInvalidKeyUsageException"
}

// Message returns the exception's message.
func (s *KMSInvalidKeyUsageException) Message() string {
	if s.Message_ != nil {
		return *s.Message_
	}
	return ""
}

// OrigErr always returns nil, satisfies awserr.Error interface.
func (s *KMSInvalidKeyUsageException) OrigErr() error {
	return nil
}

func (s *KMSInvalidKeyUsageException) Error() string {
	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
}

// Status code returns the HTTP status code for the request's response error.
func (s *KMSInvalidKeyUsageException) StatusCode() int {
	return s.RespMetadata.StatusCode
}

// RequestID returns the service's response RequestID for request.
func (s *KMSInvalidKeyUsageException) RequestID() string {
	return s.RespMetadata.RequestID
}

type ListChunksInput struct {
	_ struct{} `type:"structure" nopayload:"true"`

	// Maximum number of chunks
	MaxResults *int64 `location:"querystring" locationName:"max-results" min:"1" type:"integer"`

	// Pagination token
	NextToken *string `location:"querystring" locationName:"next-token" type:"string"`

	// Object token
	//
	// ObjectToken is a required field
	ObjectToken *string `location:"uri" locationName:"objectToken" type:"string" required:"true"`

	// Storage job id
	//
	// StorageJobId is a required field
	StorageJobId *string `location:"uri" locationName:"jobId" type:"string" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ListChunksInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ListChunksInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *ListChunksInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "ListChunksInput"}
	if s.MaxResults != nil && *s.MaxResults < 1 {
		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
	}
	if s.ObjectToken == nil {
		invalidParams.Add(request.NewErrParamRequired("ObjectToken"))
	}
	if s.ObjectToken != nil && len(*s.ObjectToken) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("ObjectToken", 1))
	}
	if s.StorageJobId == nil {
		invalidParams.Add(request.NewErrParamRequired("StorageJobId"))
	}
	if s.StorageJobId != nil && len(*s.StorageJobId) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("StorageJobId", 1))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetMaxResults sets the MaxResults field's value.
func (s *ListChunksInput) SetMaxResults(v int64) *ListChunksInput {
	s.MaxResults = &v
	return s
}

// SetNextToken sets the NextToken field's value.
func (s *ListChunksInput) SetNextToken(v string) *ListChunksInput {
	s.NextToken = &v
	return s
}

// SetObjectToken sets the ObjectToken field's value.
func (s *ListChunksInput) SetObjectToken(v string) *ListChunksInput {
	s.ObjectToken = &v
	return s
}

// SetStorageJobId sets the StorageJobId field's value.
func (s *ListChunksInput) SetStorageJobId(v string) *ListChunksInput {
	s.StorageJobId = &v
	return s
}

type ListChunksOutput struct {
	_ struct{} `type:"structure"`

	// List of chunks
	//
	// ChunkList is a required field
	ChunkList []*Chunk `type:"list" required:"true"`

	// Pagination token
	NextToken *string `type:"string"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ListChunksOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ListChunksOutput) GoString() string {
	return s.String()
}

// SetChunkList sets the ChunkList field's value.
func (s *ListChunksOutput) SetChunkList(v []*Chunk) *ListChunksOutput {
	s.ChunkList = v
	return s
}

// SetNextToken sets the NextToken field's value.
func (s *ListChunksOutput) SetNextToken(v string) *ListChunksOutput {
	s.NextToken = &v
	return s
}

type ListObjectsInput struct {
	_ struct{} `type:"structure" nopayload:"true"`

	// (Optional) Created after filter
	CreatedAfter *time.Time `location:"querystring" locationName:"created-after" type:"timestamp"`

	// (Optional) Created before filter
	CreatedBefore *time.Time `location:"querystring" locationName:"created-before" type:"timestamp"`

	// Maximum objects count
	MaxResults *int64 `location:"querystring" locationName:"max-results" min:"1" type:"integer"`

	// Pagination token
	NextToken *string `location:"querystring" locationName:"next-token" type:"string"`

	// Optional, specifies the starting Object name to list from. Ignored if NextToken
	// is not NULL
	StartingObjectName *string `location:"querystring" locationName:"starting-object-name" type:"string"`

	// Optional, specifies the starting Object prefix to list from. Ignored if NextToken
	// is not NULL
	StartingObjectPrefix *string `location:"querystring" locationName:"starting-object-prefix" type:"string"`

	// Storage job id
	//
	// StorageJobId is a required field
	StorageJobId *string `location:"uri" locationName:"jobId" type:"string" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ListObjectsInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ListObjectsInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *ListObjectsInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "ListObjectsInput"}
	if s.MaxResults != nil && *s.MaxResults < 1 {
		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
	}
	if s.StorageJobId == nil {
		invalidParams.Add(request.NewErrParamRequired("StorageJobId"))
	}
	if s.StorageJobId != nil && len(*s.StorageJobId) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("StorageJobId", 1))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetCreatedAfter sets the CreatedAfter field's value.
func (s *ListObjectsInput) SetCreatedAfter(v time.Time) *ListObjectsInput {
	s.CreatedAfter = &v
	return s
}

// SetCreatedBefore sets the CreatedBefore field's value.
func (s *ListObjectsInput) SetCreatedBefore(v time.Time) *ListObjectsInput {
	s.CreatedBefore = &v
	return s
}

// SetMaxResults sets the MaxResults field's value.
func (s *ListObjectsInput) SetMaxResults(v int64) *ListObjectsInput {
	s.MaxResults = &v
	return s
}

// SetNextToken sets the NextToken field's value.
func (s *ListObjectsInput) SetNextToken(v string) *ListObjectsInput {
	s.NextToken = &v
	return s
}

// SetStartingObjectName sets the StartingObjectName field's value.
func (s *ListObjectsInput) SetStartingObjectName(v string) *ListObjectsInput {
	s.StartingObjectName = &v
	return s
}

// SetStartingObjectPrefix sets the StartingObjectPrefix field's value.
func (s *ListObjectsInput) SetStartingObjectPrefix(v string) *ListObjectsInput {
	s.StartingObjectPrefix = &v
	return s
}

// SetStorageJobId sets the StorageJobId field's value.
func (s *ListObjectsInput) SetStorageJobId(v string) *ListObjectsInput {
	s.StorageJobId = &v
	return s
}

type ListObjectsOutput struct {
	_ struct{} `type:"structure"`

	// Pagination token
	NextToken *string `type:"string"`

	// Object list
	//
	// ObjectList is a required field
	ObjectList []*BackupObject `type:"list" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ListObjectsOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ListObjectsOutput) GoString() string {
	return s.String()
}

// SetNextToken sets the NextToken field's value.
func (s *ListObjectsOutput) SetNextToken(v string) *ListObjectsOutput {
	s.NextToken = &v
	return s
}

// SetObjectList sets the ObjectList field's value.
func (s *ListObjectsOutput) SetObjectList(v []*BackupObject) *ListObjectsOutput {
	s.ObjectList = v
	return s
}

// Retryalble exception. Indicated issues while reading an input stream due
// to the networking issues or connection drop on the client side.
type NotReadableInputStreamException struct {
	_            struct{}                  `type:"structure"`
	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`

	Message_ *string `locationName:"Message" type:"string"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s NotReadableInputStreamException) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s NotReadableInputStreamException) GoString() string {
	return s.String()
}

func newErrorNotReadableInputStreamException(v protocol.ResponseMetadata) error {
	return &NotReadableInputStreamException{
		RespMetadata: v,
	}
}

// Code returns the exception type name.
func (s *NotReadableInputStreamException) Code() string {
	return "NotReadableInputStreamException"
}

// Message returns the exception's message.
func (s *NotReadableInputStreamException) Message() string {
	if s.Message_ != nil {
		return *s.Message_
	}
	return ""
}

// OrigErr always returns nil, satisfies awserr.Error interface.
func (s *NotReadableInputStreamException) OrigErr() error {
	return nil
}

func (s *NotReadableInputStreamException) Error() string {
	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
}

// Status code returns the HTTP status code for the request's response error.
func (s *NotReadableInputStreamException) StatusCode() int {
	return s.RespMetadata.StatusCode
}

// RequestID returns the service's response RequestID for request.
func (s *NotReadableInputStreamException) RequestID() string {
	return s.RespMetadata.RequestID
}

type NotifyObjectCompleteInput struct {
	_ struct{} `type:"structure" payload:"MetadataBlob"`

	// Backup job Id for the in-progress backup
	//
	// BackupJobId is a required field
	BackupJobId *string `location:"uri" locationName:"jobId" type:"string" required:"true"`

	// Optional metadata associated with an Object. Maximum length is 4MB.
	//
	// To use an non-seekable io.Reader for this request wrap the io.Reader with
	// "aws.ReadSeekCloser". The SDK will not retry request errors for non-seekable
	// readers. This will allow the SDK to send the reader's payload as chunked
	// transfer encoding.
	MetadataBlob io.ReadSeeker `type:"blob"`

	// Checksum of MetadataBlob.
	MetadataBlobChecksum *string `location:"querystring" locationName:"metadata-checksum" type:"string"`

	// Checksum algorithm.
	MetadataBlobChecksumAlgorithm *string `location:"querystring" locationName:"metadata-checksum-algorithm" type:"string" enum:"DataChecksumAlgorithm"`

	// The size of MetadataBlob.
	MetadataBlobLength *int64 `location:"querystring" locationName:"metadata-blob-length" type:"long"`

	// Optional metadata associated with an Object. Maximum string length is 256
	// bytes.
	MetadataString *string `location:"querystring" locationName:"metadata-string" type:"string"`

	// Object checksum
	//
	// ObjectChecksum is a required field
	ObjectChecksum *string `location:"querystring" locationName:"checksum" type:"string" required:"true"`

	// Checksum algorithm
	//
	// ObjectChecksumAlgorithm is a required field
	ObjectChecksumAlgorithm *string `location:"querystring" locationName:"checksum-algorithm" type:"string" required:"true" enum:"SummaryChecksumAlgorithm"`

	// Upload Id for the in-progress upload
	//
	// UploadId is a required field
	UploadId *string `location:"uri" locationName:"uploadId" type:"string" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s NotifyObjectCompleteInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s NotifyObjectCompleteInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *NotifyObjectCompleteInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "NotifyObjectCompleteInput"}
	if s.BackupJobId == nil {
		invalidParams.Add(request.NewErrParamRequired("BackupJobId"))
	}
	if s.BackupJobId != nil && len(*s.BackupJobId) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("BackupJobId", 1))
	}
	if s.ObjectChecksum == nil {
		invalidParams.Add(request.NewErrParamRequired("ObjectChecksum"))
	}
	if s.ObjectChecksumAlgorithm == nil {
		invalidParams.Add(request.NewErrParamRequired("ObjectChecksumAlgorithm"))
	}
	if s.UploadId == nil {
		invalidParams.Add(request.NewErrParamRequired("UploadId"))
	}
	if s.UploadId != nil && len(*s.UploadId) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("UploadId", 1))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetBackupJobId sets the BackupJobId field's value.
func (s *NotifyObjectCompleteInput) SetBackupJobId(v string) *NotifyObjectCompleteInput {
	s.BackupJobId = &v
	return s
}

// SetMetadataBlob sets the MetadataBlob field's value.
func (s *NotifyObjectCompleteInput) SetMetadataBlob(v io.ReadSeeker) *NotifyObjectCompleteInput {
	s.MetadataBlob = v
	return s
}

// SetMetadataBlobChecksum sets the MetadataBlobChecksum field's value.
func (s *NotifyObjectCompleteInput) SetMetadataBlobChecksum(v string) *NotifyObjectCompleteInput {
	s.MetadataBlobChecksum = &v
	return s
}

// SetMetadataBlobChecksumAlgorithm sets the MetadataBlobChecksumAlgorithm field's value.
func (s *NotifyObjectCompleteInput) SetMetadataBlobChecksumAlgorithm(v string) *NotifyObjectCompleteInput {
	s.MetadataBlobChecksumAlgorithm = &v
	return s
}

// SetMetadataBlobLength sets the MetadataBlobLength field's value.
func (s *NotifyObjectCompleteInput) SetMetadataBlobLength(v int64) *NotifyObjectCompleteInput {
	s.MetadataBlobLength = &v
	return s
}

// SetMetadataString sets the MetadataString field's value.
func (s *NotifyObjectCompleteInput) SetMetadataString(v string) *NotifyObjectCompleteInput {
	s.MetadataString = &v
	return s
}

// SetObjectChecksum sets the ObjectChecksum field's value.
func (s *NotifyObjectCompleteInput) SetObjectChecksum(v string) *NotifyObjectCompleteInput {
	s.ObjectChecksum = &v
	return s
}

// SetObjectChecksumAlgorithm sets the ObjectChecksumAlgorithm field's value.
func (s *NotifyObjectCompleteInput) SetObjectChecksumAlgorithm(v string) *NotifyObjectCompleteInput {
	s.ObjectChecksumAlgorithm = &v
	return s
}

// SetUploadId sets the UploadId field's value.
func (s *NotifyObjectCompleteInput) SetUploadId(v string) *NotifyObjectCompleteInput {
	s.UploadId = &v
	return s
}

type NotifyObjectCompleteOutput struct {
	_ struct{} `type:"structure"`

	// Object checksum
	//
	// ObjectChecksum is a required field
	ObjectChecksum *string `type:"string" required:"true"`

	// Checksum algorithm
	//
	// ObjectChecksumAlgorithm is a required field
	ObjectChecksumAlgorithm *string `type:"string" required:"true" enum:"SummaryChecksumAlgorithm"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s NotifyObjectCompleteOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s NotifyObjectCompleteOutput) GoString() string {
	return s.String()
}

// SetObjectChecksum sets the ObjectChecksum field's value.
func (s *NotifyObjectCompleteOutput) SetObjectChecksum(v string) *NotifyObjectCompleteOutput {
	s.ObjectChecksum = &v
	return s
}

// SetObjectChecksumAlgorithm sets the ObjectChecksumAlgorithm field's value.
func (s *NotifyObjectCompleteOutput) SetObjectChecksumAlgorithm(v string) *NotifyObjectCompleteOutput {
	s.ObjectChecksumAlgorithm = &v
	return s
}

type PutChunkInput struct {
	_ struct{} `type:"structure" payload:"Data"`

	// Backup job Id for the in-progress backup.
	//
	// BackupJobId is a required field
	BackupJobId *string `location:"uri" locationName:"jobId" type:"string" required:"true"`

	// Data checksum
	//
	// Checksum is a required field
	Checksum *string `location:"querystring" locationName:"checksum" type:"string" required:"true"`

	// Checksum algorithm
	//
	// ChecksumAlgorithm is a required field
	ChecksumAlgorithm *string `location:"querystring" locationName:"checksum-algorithm" type:"string" required:"true" enum:"DataChecksumAlgorithm"`

	// Describes this chunk's position relative to the other chunks
	//
	// ChunkIndex is a required field
	ChunkIndex *int64 `location:"uri" locationName:"chunkIndex" type:"long" required:"true"`

	// Data to be uploaded
	//
	// To use an non-seekable io.Reader for this request wrap the io.Reader with
	// "aws.ReadSeekCloser". The SDK will not retry request errors for non-seekable
	// readers. This will allow the SDK to send the reader's payload as chunked
	// transfer encoding.
	//
	// Data is a required field
	Data io.ReadSeeker `type:"blob" required:"true"`

	// Data length
	//
	// Length is a required field
	Length *int64 `location:"querystring" locationName:"length" type:"long" required:"true"`

	// Upload Id for the in-progress upload.
	//
	// UploadId is a required field
	UploadId *string `location:"uri" locationName:"uploadId" type:"string" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s PutChunkInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s PutChunkInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *PutChunkInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "PutChunkInput"}
	if s.BackupJobId == nil {
		invalidParams.Add(request.NewErrParamRequired("BackupJobId"))
	}
	if s.BackupJobId != nil && len(*s.BackupJobId) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("BackupJobId", 1))
	}
	if s.Checksum == nil {
		invalidParams.Add(request.NewErrParamRequired("Checksum"))
	}
	if s.ChecksumAlgorithm == nil {
		invalidParams.Add(request.NewErrParamRequired("ChecksumAlgorithm"))
	}
	if s.ChunkIndex == nil {
		invalidParams.Add(request.NewErrParamRequired("ChunkIndex"))
	}
	if s.Data == nil {
		invalidParams.Add(request.NewErrParamRequired("Data"))
	}
	if s.Length == nil {
		invalidParams.Add(request.NewErrParamRequired("Length"))
	}
	if s.UploadId == nil {
		invalidParams.Add(request.NewErrParamRequired("UploadId"))
	}
	if s.UploadId != nil && len(*s.UploadId) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("UploadId", 1))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetBackupJobId sets the BackupJobId field's value.
func (s *PutChunkInput) SetBackupJobId(v string) *PutChunkInput {
	s.BackupJobId = &v
	return s
}

// SetChecksum sets the Checksum field's value.
func (s *PutChunkInput) SetChecksum(v string) *PutChunkInput {
	s.Checksum = &v
	return s
}

// SetChecksumAlgorithm sets the ChecksumAlgorithm field's value.
func (s *PutChunkInput) SetChecksumAlgorithm(v string) *PutChunkInput {
	s.ChecksumAlgorithm = &v
	return s
}

// SetChunkIndex sets the ChunkIndex field's value.
func (s *PutChunkInput) SetChunkIndex(v int64) *PutChunkInput {
	s.ChunkIndex = &v
	return s
}

// SetData sets the Data field's value.
func (s *PutChunkInput) SetData(v io.ReadSeeker) *PutChunkInput {
	s.Data = v
	return s
}

// SetLength sets the Length field's value.
func (s *PutChunkInput) SetLength(v int64) *PutChunkInput {
	s.Length = &v
	return s
}

// SetUploadId sets the UploadId field's value.
func (s *PutChunkInput) SetUploadId(v string) *PutChunkInput {
	s.UploadId = &v
	return s
}

type PutChunkOutput struct {
	_ struct{} `type:"structure"`

	// Chunk checksum
	//
	// ChunkChecksum is a required field
	ChunkChecksum *string `type:"string" required:"true"`

	// Checksum algorithm
	//
	// ChunkChecksumAlgorithm is a required field
	ChunkChecksumAlgorithm *string `type:"string" required:"true" enum:"DataChecksumAlgorithm"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s PutChunkOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s PutChunkOutput) GoString() string {
	return s.String()
}

// SetChunkChecksum sets the ChunkChecksum field's value.
func (s *PutChunkOutput) SetChunkChecksum(v string) *PutChunkOutput {
	s.ChunkChecksum = &v
	return s
}

// SetChunkChecksumAlgorithm sets the ChunkChecksumAlgorithm field's value.
func (s *PutChunkOutput) SetChunkChecksumAlgorithm(v string) *PutChunkOutput {
	s.ChunkChecksumAlgorithm = &v
	return s
}

type PutObjectInput struct {
	_ struct{} `type:"structure" payload:"InlineChunk"`

	// Backup job Id for the in-progress backup.
	//
	// BackupJobId is a required field
	BackupJobId *string `location:"uri" locationName:"jobId" type:"string" required:"true"`

	// Inline chunk data to be uploaded.
	//
	// To use an non-seekable io.Reader for this request wrap the io.Reader with
	// "aws.ReadSeekCloser". The SDK will not retry request errors for non-seekable
	// readers. This will allow the SDK to send the reader's payload as chunked
	// transfer encoding.
	InlineChunk io.ReadSeeker `type:"blob"`

	// Inline chunk checksum
	InlineChunkChecksum *string `location:"querystring" locationName:"checksum" type:"string"`

	// Inline chunk checksum algorithm
	InlineChunkChecksumAlgorithm *string `location:"querystring" locationName:"checksum-algorithm" type:"string"`

	// Length of the inline chunk data.
	InlineChunkLength *int64 `location:"querystring" locationName:"length" type:"long"`

	// Store user defined metadata like backup checksum, disk ids, restore metadata
	// etc.
	MetadataString *string `location:"querystring" locationName:"metadata-string" type:"string"`

	// object checksum
	ObjectChecksum *string `location:"querystring" locationName:"object-checksum" type:"string"`

	// object checksum algorithm
	ObjectChecksumAlgorithm *string `location:"querystring" locationName:"object-checksum-algorithm" type:"string" enum:"SummaryChecksumAlgorithm"`

	// The name of the Object to be uploaded.
	//
	// ObjectName is a required field
	ObjectName *string `location:"uri" locationName:"objectName" type:"string" required:"true"`

	// Throw an exception if Object name is already exist.
	ThrowOnDuplicate *bool `location:"querystring" locationName:"throwOnDuplicate" type:"boolean"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s PutObjectInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s PutObjectInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *PutObjectInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "PutObjectInput"}
	if s.BackupJobId == nil {
		invalidParams.Add(request.NewErrParamRequired("BackupJobId"))
	}
	if s.BackupJobId != nil && len(*s.BackupJobId) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("BackupJobId", 1))
	}
	if s.ObjectName == nil {
		invalidParams.Add(request.NewErrParamRequired("ObjectName"))
	}
	if s.ObjectName != nil && len(*s.ObjectName) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("ObjectName", 1))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetBackupJobId sets the BackupJobId field's value.
func (s *PutObjectInput) SetBackupJobId(v string) *PutObjectInput {
	s.BackupJobId = &v
	return s
}

// SetInlineChunk sets the InlineChunk field's value.
func (s *PutObjectInput) SetInlineChunk(v io.ReadSeeker) *PutObjectInput {
	s.InlineChunk = v
	return s
}

// SetInlineChunkChecksum sets the InlineChunkChecksum field's value.
func (s *PutObjectInput) SetInlineChunkChecksum(v string) *PutObjectInput {
	s.InlineChunkChecksum = &v
	return s
}

// SetInlineChunkChecksumAlgorithm sets the InlineChunkChecksumAlgorithm field's value.
func (s *PutObjectInput) SetInlineChunkChecksumAlgorithm(v string) *PutObjectInput {
	s.InlineChunkChecksumAlgorithm = &v
	return s
}

// SetInlineChunkLength sets the InlineChunkLength field's value.
func (s *PutObjectInput) SetInlineChunkLength(v int64) *PutObjectInput {
	s.InlineChunkLength = &v
	return s
}

// SetMetadataString sets the MetadataString field's value.
func (s *PutObjectInput) SetMetadataString(v string) *PutObjectInput {
	s.MetadataString = &v
	return s
}

// SetObjectChecksum sets the ObjectChecksum field's value.
func (s *PutObjectInput) SetObjectChecksum(v string) *PutObjectInput {
	s.ObjectChecksum = &v
	return s
}

// SetObjectChecksumAlgorithm sets the ObjectChecksumAlgorithm field's value.
func (s *PutObjectInput) SetObjectChecksumAlgorithm(v string) *PutObjectInput {
	s.ObjectChecksumAlgorithm = &v
	return s
}

// SetObjectName sets the ObjectName field's value.
func (s *PutObjectInput) SetObjectName(v string) *PutObjectInput {
	s.ObjectName = &v
	return s
}

// SetThrowOnDuplicate sets the ThrowOnDuplicate field's value.
func (s *PutObjectInput) SetThrowOnDuplicate(v bool) *PutObjectInput {
	s.ThrowOnDuplicate = &v
	return s
}

type PutObjectOutput struct {
	_ struct{} `type:"structure"`

	// Inline chunk checksum
	//
	// InlineChunkChecksum is a required field
	InlineChunkChecksum *string `type:"string" required:"true"`

	// Inline chunk checksum algorithm
	//
	// InlineChunkChecksumAlgorithm is a required field
	InlineChunkChecksumAlgorithm *string `type:"string" required:"true" enum:"DataChecksumAlgorithm"`

	// object checksum
	//
	// ObjectChecksum is a required field
	ObjectChecksum *string `type:"string" required:"true"`

	// object checksum algorithm
	//
	// ObjectChecksumAlgorithm is a required field
	ObjectChecksumAlgorithm *string `type:"string" required:"true" enum:"SummaryChecksumAlgorithm"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s PutObjectOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s PutObjectOutput) GoString() string {
	return s.String()
}

// SetInlineChunkChecksum sets the InlineChunkChecksum field's value.
func (s *PutObjectOutput) SetInlineChunkChecksum(v string) *PutObjectOutput {
	s.InlineChunkChecksum = &v
	return s
}

// SetInlineChunkChecksumAlgorithm sets the InlineChunkChecksumAlgorithm field's value.
func (s *PutObjectOutput) SetInlineChunkChecksumAlgorithm(v string) *PutObjectOutput {
	s.InlineChunkChecksumAlgorithm = &v
	return s
}

// SetObjectChecksum sets the ObjectChecksum field's value.
func (s *PutObjectOutput) SetObjectChecksum(v string) *PutObjectOutput {
	s.ObjectChecksum = &v
	return s
}

// SetObjectChecksumAlgorithm sets the ObjectChecksumAlgorithm field's value.
func (s *PutObjectOutput) SetObjectChecksumAlgorithm(v string) *PutObjectOutput {
	s.ObjectChecksumAlgorithm = &v
	return s
}

// Non-retryable exception. Attempted to make an operation on non-existing or
// expired resource.
type ResourceNotFoundException struct {
	_            struct{}                  `type:"structure"`
	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`

	Message_ *string `locationName:"Message" type:"string"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ResourceNotFoundException) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ResourceNotFoundException) GoString() string {
	return s.String()
}

func newErrorResourceNotFoundException(v protocol.ResponseMetadata) error {
	return &ResourceNotFoundException{
		RespMetadata: v,
	}
}

// Code returns the exception type name.
func (s *ResourceNotFoundException) Code() string {
	return "ResourceNotFoundException"
}

// Message returns the exception's message.
func (s *ResourceNotFoundException) Message() string {
	if s.Message_ != nil {
		return *s.Message_
	}
	return ""
}

// OrigErr always returns nil, satisfies awserr.Error interface.
func (s *ResourceNotFoundException) OrigErr() error {
	return nil
}

func (s *ResourceNotFoundException) Error() string {
	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
}

// Status code returns the HTTP status code for the request's response error.
func (s *ResourceNotFoundException) StatusCode() int {
	return s.RespMetadata.StatusCode
}

// RequestID returns the service's response RequestID for request.
func (s *ResourceNotFoundException) RequestID() string {
	return s.RespMetadata.RequestID
}

// Retryable exception. In general indicates internal failure that can be fixed
// by retry.
type RetryableException struct {
	_            struct{}                  `type:"structure"`
	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`

	Message_ *string `locationName:"Message" type:"string"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s RetryableException) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s RetryableException) GoString() string {
	return s.String()
}

func newErrorRetryableException(v protocol.ResponseMetadata) error {
	return &RetryableException{
		RespMetadata: v,
	}
}

// Code returns the exception type name.
func (s *RetryableException) Code() string {
	return "RetryableException"
}

// Message returns the exception's message.
func (s *RetryableException) Message() string {
	if s.Message_ != nil {
		return *s.Message_
	}
	return ""
}

// OrigErr always returns nil, satisfies awserr.Error interface.
func (s *RetryableException) OrigErr() error {
	return nil
}

func (s *RetryableException) Error() string {
	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
}

// Status code returns the HTTP status code for the request's response error.
func (s *RetryableException) StatusCode() int {
	return s.RespMetadata.StatusCode
}

// RequestID returns the service's response RequestID for request.
func (s *RetryableException) RequestID() string {
	return s.RespMetadata.RequestID
}

// Deprecated. To be removed from the model.
type ServiceInternalException struct {
	_            struct{}                  `type:"structure"`
	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`

	Message_ *string `locationName:"Message" type:"string"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ServiceInternalException) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ServiceInternalException) GoString() string {
	return s.String()
}

func newErrorServiceInternalException(v protocol.ResponseMetadata) error {
	return &ServiceInternalException{
		RespMetadata: v,
	}
}

// Code returns the exception type name.
func (s *ServiceInternalException) Code() string {
	return "ServiceInternalException"
}

// Message returns the exception's message.
func (s *ServiceInternalException) Message() string {
	if s.Message_ != nil {
		return *s.Message_
	}
	return ""
}

// OrigErr always returns nil, satisfies awserr.Error interface.
func (s *ServiceInternalException) OrigErr() error {
	return nil
}

func (s *ServiceInternalException) Error() string {
	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
}

// Status code returns the HTTP status code for the request's response error.
func (s *ServiceInternalException) StatusCode() int {
	return s.RespMetadata.StatusCode
}

// RequestID returns the service's response RequestID for request.
func (s *ServiceInternalException) RequestID() string {
	return s.RespMetadata.RequestID
}

// Retryable exception, indicates internal server error.
type ServiceUnavailableException struct {
	_            struct{}                  `type:"structure"`
	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`

	Message_ *string `locationName:"Message" type:"string"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ServiceUnavailableException) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ServiceUnavailableException) GoString() string {
	return s.String()
}

func newErrorServiceUnavailableException(v protocol.ResponseMetadata) error {
	return &ServiceUnavailableException{
		RespMetadata: v,
	}
}

// Code returns the exception type name.
func (s *ServiceUnavailableException) Code() string {
	return "ServiceUnavailableException"
}

// Message returns the exception's message.
func (s *ServiceUnavailableException) Message() string {
	if s.Message_ != nil {
		return *s.Message_
	}
	return ""
}

// OrigErr always returns nil, satisfies awserr.Error interface.
func (s *ServiceUnavailableException) OrigErr() error {
	return nil
}

func (s *ServiceUnavailableException) Error() string {
	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
}

// Status code returns the HTTP status code for the request's response error.
func (s *ServiceUnavailableException) StatusCode() int {
	return s.RespMetadata.StatusCode
}

// RequestID returns the service's response RequestID for request.
func (s *ServiceUnavailableException) RequestID() string {
	return s.RespMetadata.RequestID
}

type StartObjectInput struct {
	_ struct{} `type:"structure"`

	// Backup job Id for the in-progress backup
	//
	// BackupJobId is a required field
	BackupJobId *string `location:"uri" locationName:"jobId" type:"string" required:"true"`

	// Name for the object.
	//
	// ObjectName is a required field
	ObjectName *string `location:"uri" locationName:"objectName" type:"string" required:"true"`

	// Throw an exception if Object name is already exist.
	ThrowOnDuplicate *bool `type:"boolean"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s StartObjectInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s StartObjectInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *StartObjectInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "StartObjectInput"}
	if s.BackupJobId == nil {
		invalidParams.Add(request.NewErrParamRequired("BackupJobId"))
	}
	if s.BackupJobId != nil && len(*s.BackupJobId) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("BackupJobId", 1))
	}
	if s.ObjectName == nil {
		invalidParams.Add(request.NewErrParamRequired("ObjectName"))
	}
	if s.ObjectName != nil && len(*s.ObjectName) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("ObjectName", 1))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetBackupJobId sets the BackupJobId field's value.
func (s *StartObjectInput) SetBackupJobId(v string) *StartObjectInput {
	s.BackupJobId = &v
	return s
}

// SetObjectName sets the ObjectName field's value.
func (s *StartObjectInput) SetObjectName(v string) *StartObjectInput {
	s.ObjectName = &v
	return s
}

// SetThrowOnDuplicate sets the ThrowOnDuplicate field's value.
func (s *StartObjectInput) SetThrowOnDuplicate(v bool) *StartObjectInput {
	s.ThrowOnDuplicate = &v
	return s
}

type StartObjectOutput struct {
	_ struct{} `type:"structure"`

	// Upload Id for a given upload.
	//
	// UploadId is a required field
	UploadId *string `type:"string" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s StartObjectOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s StartObjectOutput) GoString() string {
	return s.String()
}

// SetUploadId sets the UploadId field's value.
func (s *StartObjectOutput) SetUploadId(v string) *StartObjectOutput {
	s.UploadId = &v
	return s
}

// Increased rate over throttling limits. Can be retried with exponential backoff.
type ThrottlingException struct {
	_            struct{}                  `type:"structure"`
	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`

	Message_ *string `locationName:"Message" type:"string"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ThrottlingException) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ThrottlingException) GoString() string {
	return s.String()
}

func newErrorThrottlingException(v protocol.ResponseMetadata) error {
	return &ThrottlingException{
		RespMetadata: v,
	}
}

// Code returns the exception type name.
func (s *ThrottlingException) Code() string {
	return "ThrottlingException"
}

// Message returns the exception's message.
func (s *ThrottlingException) Message() string {
	if s.Message_ != nil {
		return *s.Message_
	}
	return ""
}

// OrigErr always returns nil, satisfies awserr.Error interface.
func (s *ThrottlingException) OrigErr() error {
	return nil
}

func (s *ThrottlingException) Error() string {
	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
}

// Status code returns the HTTP status code for the request's response error.
func (s *ThrottlingException) StatusCode() int {
	return s.RespMetadata.StatusCode
}

// RequestID returns the service's response RequestID for request.
func (s *ThrottlingException) RequestID() string {
	return s.RespMetadata.RequestID
}

const (
	// DataChecksumAlgorithmSha256 is a DataChecksumAlgorithm enum value
	DataChecksumAlgorithmSha256 = "SHA256"
)

// DataChecksumAlgorithm_Values returns all elements of the DataChecksumAlgorithm enum
func DataChecksumAlgorithm_Values() []string {
	return []string{
		DataChecksumAlgorithmSha256,
	}
}

const (
	// SummaryChecksumAlgorithmSummary is a SummaryChecksumAlgorithm enum value
	SummaryChecksumAlgorithmSummary = "SUMMARY"
)

// SummaryChecksumAlgorithm_Values returns all elements of the SummaryChecksumAlgorithm enum
func SummaryChecksumAlgorithm_Values() []string {
	return []string{
		SummaryChecksumAlgorithmSummary,
	}
}
© 2026 GrazzMean
Beegazpacho


Let’s  Start  Your  Online  Journey  with  Beegazpacho 

Welcome to Beegazpacho,
where creativity meets strategy,
and innovation drives success.


Contact
Now


OUR CLIENTS

WhatsApp-Image-2021-12-06.png
Untitled-design-11.png
niaf-logo.png
20220406-163308-scaled.jpg
karchi-logo.png
20220405-171252.png
20220405-171309.png
20220321-161603.png
20220321-161611.png
20220321-161628.png
20220321-161244.png
20220321-161256.png
20220321-161450.png
20220321-161205.png
20220226-170222.png
20220321-161051.png
20211202-170852.png
Untitled-design-9
pidilite-png-logo-colour
logo-black-e1706125740216-qisosldqhzgcaerhdt6n4t3m4s50jr0iik48z0h5vk
Fraikin-Dayim-logo-1
hpcl-logo-2-1
services

Transforming Ideas into
Success

.01
Digital Marketing

We drive growth through data-driven strategies and cutting-edge techniques.

Learn More

.02
SEO

Improve your online visibility and rank higher on search engines with our expert SEO services.

Learn More

.03
Website Designing

We design websites that are not only visually stunning but also user-centric, ensuring seamless navigation and enhanced user experience.

Learn More

.04
App Development

Our apps are crafted to be intuitive, engaging, and functional, providing your users with an exceptional mobile experience.

Learn More

.05
Social Media Ads

Target the right audience with precision and creativity to maximize engagement and conversions.

Learn More

.06
Google Ads

Maximize ROI with precision-targeted campaigns on Google’s powerful ad platform.

Learn More

.07
Google My Business

Optimize your local presence with strategies that put your business on the map and attract more customers.

Learn More

.08
Graphic Designing

Our designs tell your brand’s story in a visually compelling way.

Learn More

.09
3D Videos

Bring your product to life with immersive and dynamic 3D explainer videos.

Learn More

about BEEGAZPACHO

creating special Things
For special brands

Join the ranks of successful brands by partnering with Beegazpacho

00+

Happy Customer

00+

Continents

Our vision is not just to be a service provider but to be your partner in growth. We see ourselves as an extension of your team, working tirelessly to ensure that your brand not only meets its goals but surpasses them.

Explore
more

Our Recent Work

Crafted with Passion and Precision

Connect now


Web Design
Design, Development & Identity

Logo Design
Design, Development & Identity

Creative Brand design
Design, Development & Identity

Product Design Marketing
Design, Development & Identity

DIGITAL MARKETING
SEO
WEBSITE DESIGNING
APP DEVELOPMENT
SOCIAL MEDIA ADS
GOOGLE ADS
GOOGLE MY BUSINESS
GRAPHIC DESINING
3D VIDEOS
Client Stories

Hear It from Those Who Know Us Best

Our clients’ success stories speak volumes about our commitment to excellence. Don’t just take our word for it—hear directly from the brands we’ve partnered with. Their testimonials highlight our ability to bring visions to life and create a lasting impact on their businesses.

“Beegazpacho feels like an extension of our team. Their content marketing and social media expertise have elevated our brand. They listen, adapt, and always deliver on time. We look forward to continuing this partnership.”

— Sarah Williams

Head of Marketing, GreenPlanet Apparel

“Beegazpacho’s data-driven strategies helped us improve our online ads, optimize our website, and enhance branding. We’ve seen great ROI and increased visibility. Their professionalism is unmatched.”

— Arvind Shah

CEO, InnovateTech Solutions

“Partnering with Beegazpacho has been a game-changer for our brand. Their creative ad campaigns and SEO services have boosted our online presence and significantly increased leads and sales. We couldn’t ask for a better partner!”

— Rina Kapoor

Marketing Director, Luxury Home Interiors

“Beegazpacho feels like an extension of our team. Their content marketing and social media expertise have elevated our brand. They listen, adapt, and always deliver on time. We look forward to continuing this partnership.”

— Sarah Williams

Head of Marketing, GreenPlanet Apparel

“Beegazpacho’s data-driven strategies helped us improve our online ads, optimize our website, and enhance branding. We’ve seen great ROI and increased visibility. Their professionalism is unmatched.”

— Arvind Shah

CEO, InnovateTech Solutions

“Partnering with Beegazpacho has been a game-changer for our brand. Their creative ad campaigns and SEO services have boosted our online presence and significantly increased leads and sales. We couldn’t ask for a better partner!”

— Rina Kapoor

Marketing Director, Luxury Home Interiors