github.com/aavshr/aws-sdk-go@v1.41.3/private/model/api/s3manger_input.go (about)

     1  //go:build codegen
     2  // +build codegen
     3  
     4  package api
     5  
     6  import (
     7  	"bytes"
     8  	"fmt"
     9  	"text/template"
    10  )
    11  
    12  // S3ManagerUploadInputGoCode returns the Go code for the S3 Upload Manager's
    13  // input structure.
    14  func S3ManagerUploadInputGoCode(a *API) string {
    15  	if v := a.PackageName(); v != "s3" {
    16  		panic(fmt.Sprintf("unexpected API model %s", v))
    17  	}
    18  
    19  	s, ok := a.Shapes["PutObjectInput"]
    20  	if !ok {
    21  		panic(fmt.Sprintf("unable to find PutObjectInput shape in S3 model"))
    22  	}
    23  
    24  	a.resetImports()
    25  	a.AddImport("io")
    26  	a.AddImport("time")
    27  
    28  	var w bytes.Buffer
    29  	if err := s3managerUploadInputTmpl.Execute(&w, s); err != nil {
    30  		panic(fmt.Sprintf("failed to execute %s template, %v",
    31  			s3managerUploadInputTmpl.Name(), err))
    32  	}
    33  
    34  	return a.importsGoCode() + w.String()
    35  }
    36  
    37  var s3managerUploadInputTmpl = template.Must(
    38  	template.New("s3managerUploadInputTmpl").
    39  		Funcs(template.FuncMap{
    40  			"GetDeprecatedMsg": getDeprecatedMessage,
    41  		}).
    42  		Parse(s3managerUploadInputTmplDef),
    43  )
    44  
    45  const s3managerUploadInputTmplDef = `
    46  // UploadInput provides the input parameters for uploading a stream or buffer
    47  // to an object in an Amazon S3 bucket. This type is similar to the s3
    48  // package's PutObjectInput with the exception that the Body member is an
    49  // io.Reader instead of an io.ReadSeeker.
    50  type UploadInput struct {
    51  	_ struct{} {{ .GoTags true false }}
    52  
    53  	{{ range $name, $ref := $.MemberRefs -}}
    54  		{{ if eq $name "Body" }}
    55  			// The readable body payload to send to S3.
    56  			Body io.Reader
    57  		{{ else if eq $name "ContentLength" }}
    58  			{{/* S3 Upload Manager does not use modeled content length */}}
    59  		{{ else }}
    60  			{{ $isBlob := $.WillRefBeBase64Encoded $name -}}
    61  			{{ $isRequired := $.IsRequired $name -}}
    62  			{{ $doc := $ref.Docstring -}}
    63  
    64  			{{ if $doc -}}
    65  				{{ $doc }}
    66  				{{ if $ref.Deprecated -}}
    67  				//
    68  				// Deprecated: {{ GetDeprecatedMsg $ref.DeprecatedMsg $name }}
    69  				{{ end -}}
    70  			{{ end -}}
    71  			{{ if $isBlob -}}
    72  				{{ if $doc -}}
    73  					//
    74  				{{ end -}}
    75  				// {{ $name }} is automatically base64 encoded/decoded by the SDK.
    76  			{{ end -}}
    77  			{{ if $isRequired -}}
    78  				{{ if or $doc $isBlob -}}
    79  					//
    80  				{{ end -}}
    81  				// {{ $name }} is a required field
    82  			{{ end -}}
    83  			{{ $name }} {{ $.GoStructType $name $ref }} {{ $ref.GoTags false $isRequired }}
    84  		{{ end }}
    85  	{{ end }}
    86  }
    87  `