/
api_op_CreatePortfolioShare.go
151 lines (124 loc) · 4.52 KB
/
api_op_CreatePortfolioShare.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT.
package servicecatalog
import (
"context"
"github.com/aws/aws-sdk-go-v2/aws"
"github.com/aws/aws-sdk-go-v2/internal/awsutil"
)
type CreatePortfolioShareInput struct {
_ struct{} `type:"structure"`
// The language code.
//
// * en - English (default)
//
// * jp - Japanese
//
// * zh - Chinese
AcceptLanguage *string `type:"string"`
// The AWS account ID. For example, 123456789012.
AccountId *string `type:"string"`
// The organization node to whom you are going to share. If OrganizationNode
// is passed in, PortfolioShare will be created for the node and its children
// (when applies), and a PortfolioShareToken will be returned in the output
// in order for the administrator to monitor the status of the PortfolioShare
// creation process.
OrganizationNode *OrganizationNode `type:"structure"`
// The portfolio identifier.
//
// PortfolioId is a required field
PortfolioId *string `min:"1" type:"string" required:"true"`
}
// String returns the string representation
func (s CreatePortfolioShareInput) String() string {
return awsutil.Prettify(s)
}
// Validate inspects the fields of the type to determine if they are valid.
func (s *CreatePortfolioShareInput) Validate() error {
invalidParams := aws.ErrInvalidParams{Context: "CreatePortfolioShareInput"}
if s.PortfolioId == nil {
invalidParams.Add(aws.NewErrParamRequired("PortfolioId"))
}
if s.PortfolioId != nil && len(*s.PortfolioId) < 1 {
invalidParams.Add(aws.NewErrParamMinLen("PortfolioId", 1))
}
if invalidParams.Len() > 0 {
return invalidParams
}
return nil
}
type CreatePortfolioShareOutput struct {
_ struct{} `type:"structure"`
// The portfolio share unique identifier. This will only be returned if portfolio
// is shared to an organization node.
PortfolioShareToken *string `min:"1" type:"string"`
}
// String returns the string representation
func (s CreatePortfolioShareOutput) String() string {
return awsutil.Prettify(s)
}
const opCreatePortfolioShare = "CreatePortfolioShare"
// CreatePortfolioShareRequest returns a request value for making API operation for
// AWS Service Catalog.
//
// Shares the specified portfolio with the specified account or organization
// node. Shares to an organization node can only be created by the master account
// of an organization or by a delegated administrator. You can share portfolios
// to an organization, an organizational unit, or a specific account.
//
// Note that if a delegated admin is de-registered, they can no longer create
// portfolio shares.
//
// AWSOrganizationsAccess must be enabled in order to create a portfolio share
// to an organization node.
//
// // Example sending a request using CreatePortfolioShareRequest.
// req := client.CreatePortfolioShareRequest(params)
// resp, err := req.Send(context.TODO())
// if err == nil {
// fmt.Println(resp)
// }
//
// Please also see https://docs.aws.amazon.com/goto/WebAPI/servicecatalog-2015-12-10/CreatePortfolioShare
func (c *Client) CreatePortfolioShareRequest(input *CreatePortfolioShareInput) CreatePortfolioShareRequest {
op := &aws.Operation{
Name: opCreatePortfolioShare,
HTTPMethod: "POST",
HTTPPath: "/",
}
if input == nil {
input = &CreatePortfolioShareInput{}
}
req := c.newRequest(op, input, &CreatePortfolioShareOutput{})
return CreatePortfolioShareRequest{Request: req, Input: input, Copy: c.CreatePortfolioShareRequest}
}
// CreatePortfolioShareRequest is the request type for the
// CreatePortfolioShare API operation.
type CreatePortfolioShareRequest struct {
*aws.Request
Input *CreatePortfolioShareInput
Copy func(*CreatePortfolioShareInput) CreatePortfolioShareRequest
}
// Send marshals and sends the CreatePortfolioShare API request.
func (r CreatePortfolioShareRequest) Send(ctx context.Context) (*CreatePortfolioShareResponse, error) {
r.Request.SetContext(ctx)
err := r.Request.Send()
if err != nil {
return nil, err
}
resp := &CreatePortfolioShareResponse{
CreatePortfolioShareOutput: r.Request.Data.(*CreatePortfolioShareOutput),
response: &aws.Response{Request: r.Request},
}
return resp, nil
}
// CreatePortfolioShareResponse is the response type for the
// CreatePortfolioShare API operation.
type CreatePortfolioShareResponse struct {
*CreatePortfolioShareOutput
response *aws.Response
}
// SDKResponseMetdata returns the response metadata for the
// CreatePortfolioShare request.
func (r *CreatePortfolioShareResponse) SDKResponseMetdata() *aws.Response {
return r.response
}