Skip to content

Commit 89b9dc2

Browse files
Adds support for cross-account ingestion for push-based sources. This includes resource policies for sharing pipelines across accounts and features for managing pipeline endpoints which enable accessing pipelines across different VPCs, including VPCs in other accounts.
1 parent 6c1991b commit 89b9dc2

File tree

58 files changed

+7130
-16
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

58 files changed

+7130
-16
lines changed

generator/ServiceModels/osis/osis-2022-01-01.api.json

Lines changed: 353 additions & 0 deletions
Large diffs are not rendered by default.

generator/ServiceModels/osis/osis-2022-01-01.docs.json

Lines changed: 166 additions & 3 deletions
Large diffs are not rendered by default.

generator/ServiceModels/osis/osis-2022-01-01.normal.json

Lines changed: 465 additions & 3 deletions
Large diffs are not rendered by default.

generator/ServiceModels/osis/osis-2022-01-01.paginators.json

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,17 @@
11
{
22
"pagination": {
3+
"ListPipelineEndpointConnections": {
4+
"input_token": "NextToken",
5+
"output_token": "NextToken",
6+
"limit_key": "MaxResults",
7+
"result_key": "PipelineEndpointConnections"
8+
},
9+
"ListPipelineEndpoints": {
10+
"input_token": "NextToken",
11+
"output_token": "NextToken",
12+
"limit_key": "MaxResults",
13+
"result_key": "PipelineEndpoints"
14+
},
315
"ListPipelines": {
416
"input_token": "NextToken",
517
"output_token": "NextToken",

sdk/code-analysis/ServiceAnalysis/OSIS/Generated/PropertyValueRules.xml

Lines changed: 145 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,12 +25,42 @@
2525
<max>2048</max>
2626
<pattern>^arn:(aws|aws\-cn|aws\-us\-gov|aws\-iso|aws\-iso\-b|aws\-iso\-e|aws\-iso\-f):iam::[0-9]+:role\/.*$</pattern>
2727
</property-value-rule>
28+
<property-value-rule>
29+
<property>Amazon.OSIS.Model.CreatePipelineEndpointRequest.PipelineArn</property>
30+
<min>46</min>
31+
<max>76</max>
32+
<pattern>^arn:(aws|aws\-cn|aws\-us\-gov|aws\-iso|aws\-iso\-b):osis:.+:pipeline\/.+$</pattern>
33+
</property-value-rule>
34+
<property-value-rule>
35+
<property>Amazon.OSIS.Model.CreatePipelineEndpointResponse.EndpointId</property>
36+
<min>3</min>
37+
<max>512</max>
38+
<pattern>^[a-zA-Z0-9][a-zA-Z0-9-_]+$</pattern>
39+
</property-value-rule>
40+
<property-value-rule>
41+
<property>Amazon.OSIS.Model.CreatePipelineEndpointResponse.PipelineArn</property>
42+
<min>46</min>
43+
<max>76</max>
44+
<pattern>^arn:(aws|aws\-cn|aws\-us\-gov|aws\-iso|aws\-iso\-b):osis:.+:pipeline\/.+$</pattern>
45+
</property-value-rule>
2846
<property-value-rule>
2947
<property>Amazon.OSIS.Model.DeletePipelineRequest.PipelineName</property>
3048
<min>3</min>
3149
<max>28</max>
3250
<pattern>[a-z][a-z0-9\-]+</pattern>
3351
</property-value-rule>
52+
<property-value-rule>
53+
<property>Amazon.OSIS.Model.DeletePipelineEndpointRequest.EndpointId</property>
54+
<min>3</min>
55+
<max>512</max>
56+
<pattern>^[a-zA-Z0-9][a-zA-Z0-9-_]+$</pattern>
57+
</property-value-rule>
58+
<property-value-rule>
59+
<property>Amazon.OSIS.Model.DeleteResourcePolicyRequest.ResourceArn</property>
60+
<min>46</min>
61+
<max>76</max>
62+
<pattern>^arn:(aws|aws\-cn|aws\-us\-gov|aws\-iso|aws\-iso\-b):osis:.+:pipeline\/.+$</pattern>
63+
</property-value-rule>
3464
<property-value-rule>
3565
<property>Amazon.OSIS.Model.GetPipelineRequest.PipelineName</property>
3666
<min>3</min>
@@ -47,6 +77,57 @@
4777
<max>28</max>
4878
<pattern>[a-z][a-z0-9\-]+</pattern>
4979
</property-value-rule>
80+
<property-value-rule>
81+
<property>Amazon.OSIS.Model.GetResourcePolicyRequest.ResourceArn</property>
82+
<min>46</min>
83+
<max>76</max>
84+
<pattern>^arn:(aws|aws\-cn|aws\-us\-gov|aws\-iso|aws\-iso\-b):osis:.+:pipeline\/.+$</pattern>
85+
</property-value-rule>
86+
<property-value-rule>
87+
<property>Amazon.OSIS.Model.GetResourcePolicyResponse.Policy</property>
88+
<min>2</min>
89+
<max>204800</max>
90+
</property-value-rule>
91+
<property-value-rule>
92+
<property>Amazon.OSIS.Model.GetResourcePolicyResponse.ResourceArn</property>
93+
<min>46</min>
94+
<max>76</max>
95+
<pattern>^arn:(aws|aws\-cn|aws\-us\-gov|aws\-iso|aws\-iso\-b):osis:.+:pipeline\/.+$</pattern>
96+
</property-value-rule>
97+
<property-value-rule>
98+
<property>Amazon.OSIS.Model.ListPipelineEndpointConnectionsRequest.MaxResults</property>
99+
<min>1</min>
100+
<max>100</max>
101+
</property-value-rule>
102+
<property-value-rule>
103+
<property>Amazon.OSIS.Model.ListPipelineEndpointConnectionsRequest.NextToken</property>
104+
<min>0</min>
105+
<max>3000</max>
106+
<pattern>^([\s\S]*)$</pattern>
107+
</property-value-rule>
108+
<property-value-rule>
109+
<property>Amazon.OSIS.Model.ListPipelineEndpointConnectionsResponse.NextToken</property>
110+
<min>0</min>
111+
<max>3000</max>
112+
<pattern>^([\s\S]*)$</pattern>
113+
</property-value-rule>
114+
<property-value-rule>
115+
<property>Amazon.OSIS.Model.ListPipelineEndpointsRequest.MaxResults</property>
116+
<min>1</min>
117+
<max>100</max>
118+
</property-value-rule>
119+
<property-value-rule>
120+
<property>Amazon.OSIS.Model.ListPipelineEndpointsRequest.NextToken</property>
121+
<min>0</min>
122+
<max>3000</max>
123+
<pattern>^([\s\S]*)$</pattern>
124+
</property-value-rule>
125+
<property-value-rule>
126+
<property>Amazon.OSIS.Model.ListPipelineEndpointsResponse.NextToken</property>
127+
<min>0</min>
128+
<max>3000</max>
129+
<pattern>^([\s\S]*)$</pattern>
130+
</property-value-rule>
50131
<property-value-rule>
51132
<property>Amazon.OSIS.Model.ListPipelinesRequest.MaxResults</property>
52133
<min>1</min>
@@ -70,6 +151,40 @@
70151
<max>76</max>
71152
<pattern>^arn:(aws|aws\-cn|aws\-us\-gov|aws\-iso|aws\-iso\-b):osis:.+:pipeline\/.+$</pattern>
72153
</property-value-rule>
154+
<property-value-rule>
155+
<property>Amazon.OSIS.Model.PutResourcePolicyRequest.Policy</property>
156+
<min>2</min>
157+
<max>204800</max>
158+
</property-value-rule>
159+
<property-value-rule>
160+
<property>Amazon.OSIS.Model.PutResourcePolicyRequest.ResourceArn</property>
161+
<min>46</min>
162+
<max>76</max>
163+
<pattern>^arn:(aws|aws\-cn|aws\-us\-gov|aws\-iso|aws\-iso\-b):osis:.+:pipeline\/.+$</pattern>
164+
</property-value-rule>
165+
<property-value-rule>
166+
<property>Amazon.OSIS.Model.PutResourcePolicyResponse.Policy</property>
167+
<min>2</min>
168+
<max>204800</max>
169+
</property-value-rule>
170+
<property-value-rule>
171+
<property>Amazon.OSIS.Model.PutResourcePolicyResponse.ResourceArn</property>
172+
<min>46</min>
173+
<max>76</max>
174+
<pattern>^arn:(aws|aws\-cn|aws\-us\-gov|aws\-iso|aws\-iso\-b):osis:.+:pipeline\/.+$</pattern>
175+
</property-value-rule>
176+
<property-value-rule>
177+
<property>Amazon.OSIS.Model.RevokePipelineEndpointConnectionsRequest.PipelineArn</property>
178+
<min>46</min>
179+
<max>76</max>
180+
<pattern>^arn:(aws|aws\-cn|aws\-us\-gov|aws\-iso|aws\-iso\-b):osis:.+:pipeline\/.+$</pattern>
181+
</property-value-rule>
182+
<property-value-rule>
183+
<property>Amazon.OSIS.Model.RevokePipelineEndpointConnectionsResponse.PipelineArn</property>
184+
<min>46</min>
185+
<max>76</max>
186+
<pattern>^arn:(aws|aws\-cn|aws\-us\-gov|aws\-iso|aws\-iso\-b):osis:.+:pipeline\/.+$</pattern>
187+
</property-value-rule>
73188
<property-value-rule>
74189
<property>Amazon.OSIS.Model.StartPipelineRequest.PipelineName</property>
75190
<min>3</min>
@@ -141,6 +256,36 @@
141256
<max>2048</max>
142257
<pattern>^arn:(aws|aws\-cn|aws\-us\-gov|aws\-iso|aws\-iso\-b|aws\-iso\-e|aws\-iso\-f):iam::[0-9]+:role\/.*$</pattern>
143258
</property-value-rule>
259+
<property-value-rule>
260+
<property>Amazon.OSIS.Model.PipelineEndpoint.EndpointId</property>
261+
<min>3</min>
262+
<max>512</max>
263+
<pattern>^[a-zA-Z0-9][a-zA-Z0-9-_]+$</pattern>
264+
</property-value-rule>
265+
<property-value-rule>
266+
<property>Amazon.OSIS.Model.PipelineEndpoint.PipelineArn</property>
267+
<min>46</min>
268+
<max>76</max>
269+
<pattern>^arn:(aws|aws\-cn|aws\-us\-gov|aws\-iso|aws\-iso\-b):osis:.+:pipeline\/.+$</pattern>
270+
</property-value-rule>
271+
<property-value-rule>
272+
<property>Amazon.OSIS.Model.PipelineEndpointConnection.EndpointId</property>
273+
<min>3</min>
274+
<max>512</max>
275+
<pattern>^[a-zA-Z0-9][a-zA-Z0-9-_]+$</pattern>
276+
</property-value-rule>
277+
<property-value-rule>
278+
<property>Amazon.OSIS.Model.PipelineEndpointConnection.PipelineArn</property>
279+
<min>46</min>
280+
<max>76</max>
281+
<pattern>^arn:(aws|aws\-cn|aws\-us\-gov|aws\-iso|aws\-iso\-b):osis:.+:pipeline\/.+$</pattern>
282+
</property-value-rule>
283+
<property-value-rule>
284+
<property>Amazon.OSIS.Model.PipelineEndpointConnection.VpcEndpointOwner</property>
285+
<min>12</min>
286+
<max>12</max>
287+
<pattern>^\\d{12}$</pattern>
288+
</property-value-rule>
144289
<property-value-rule>
145290
<property>Amazon.OSIS.Model.PipelineSummary.MaxUnits</property>
146291
<min>1</min>
Lines changed: 82 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,82 @@
1+
/*
2+
* Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
3+
*
4+
* Licensed under the Apache License, Version 2.0 (the "License").
5+
* You may not use this file except in compliance with the License.
6+
* A copy of the License is located at
7+
*
8+
* http://aws.amazon.com/apache2.0
9+
*
10+
* or in the "license" file accompanying this file. This file is distributed
11+
* on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either
12+
* express or implied. See the License for the specific language governing
13+
* permissions and limitations under the License.
14+
*/
15+
16+
/*
17+
* Do not modify this file. This file is generated from the osis-2022-01-01.normal.json service model.
18+
*/
19+
using System;
20+
using System.Collections.Generic;
21+
using System.Xml.Serialization;
22+
using System.Text;
23+
using System.IO;
24+
using System.Net;
25+
26+
using Amazon.Runtime;
27+
using Amazon.Runtime.Internal;
28+
29+
#pragma warning disable CS0612,CS0618,CS1570
30+
namespace Amazon.OSIS.Model
31+
{
32+
/// <summary>
33+
/// Container for the parameters to the CreatePipelineEndpoint operation.
34+
/// Creates a VPC endpoint for an OpenSearch Ingestion pipeline. Pipeline endpoints allow
35+
/// you to ingest data from your VPC into pipelines that you have access to.
36+
/// </summary>
37+
public partial class CreatePipelineEndpointRequest : AmazonOSISRequest
38+
{
39+
private string _pipelineArn;
40+
private PipelineEndpointVpcOptions _vpcOptions;
41+
42+
/// <summary>
43+
/// Gets and sets the property PipelineArn.
44+
/// <para>
45+
/// The Amazon Resource Name (ARN) of the pipeline to create the endpoint for.
46+
/// </para>
47+
/// </summary>
48+
[AWSProperty(Required=true, Min=46, Max=76)]
49+
public string PipelineArn
50+
{
51+
get { return this._pipelineArn; }
52+
set { this._pipelineArn = value; }
53+
}
54+
55+
// Check to see if PipelineArn property is set
56+
internal bool IsSetPipelineArn()
57+
{
58+
return this._pipelineArn != null;
59+
}
60+
61+
/// <summary>
62+
/// Gets and sets the property VpcOptions.
63+
/// <para>
64+
/// Container for the VPC configuration for the pipeline endpoint, including subnet IDs
65+
/// and security group IDs.
66+
/// </para>
67+
/// </summary>
68+
[AWSProperty(Required=true)]
69+
public PipelineEndpointVpcOptions VpcOptions
70+
{
71+
get { return this._vpcOptions; }
72+
set { this._vpcOptions = value; }
73+
}
74+
75+
// Check to see if VpcOptions property is set
76+
internal bool IsSetVpcOptions()
77+
{
78+
return this._vpcOptions != null;
79+
}
80+
81+
}
82+
}
Lines changed: 117 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,117 @@
1+
/*
2+
* Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
3+
*
4+
* Licensed under the Apache License, Version 2.0 (the "License").
5+
* You may not use this file except in compliance with the License.
6+
* A copy of the License is located at
7+
*
8+
* http://aws.amazon.com/apache2.0
9+
*
10+
* or in the "license" file accompanying this file. This file is distributed
11+
* on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either
12+
* express or implied. See the License for the specific language governing
13+
* permissions and limitations under the License.
14+
*/
15+
16+
/*
17+
* Do not modify this file. This file is generated from the osis-2022-01-01.normal.json service model.
18+
*/
19+
using System;
20+
using System.Collections.Generic;
21+
using System.Xml.Serialization;
22+
using System.Text;
23+
using System.IO;
24+
using System.Net;
25+
26+
using Amazon.Runtime;
27+
using Amazon.Runtime.Internal;
28+
29+
#pragma warning disable CS0612,CS0618,CS1570
30+
namespace Amazon.OSIS.Model
31+
{
32+
/// <summary>
33+
/// This is the response object from the CreatePipelineEndpoint operation.
34+
/// </summary>
35+
public partial class CreatePipelineEndpointResponse : AmazonWebServiceResponse
36+
{
37+
private string _endpointId;
38+
private string _pipelineArn;
39+
private PipelineEndpointStatus _status;
40+
private string _vpcId;
41+
42+
/// <summary>
43+
/// Gets and sets the property EndpointId.
44+
/// <para>
45+
/// The unique identifier of the pipeline endpoint.
46+
/// </para>
47+
/// </summary>
48+
[AWSProperty(Min=3, Max=512)]
49+
public string EndpointId
50+
{
51+
get { return this._endpointId; }
52+
set { this._endpointId = value; }
53+
}
54+
55+
// Check to see if EndpointId property is set
56+
internal bool IsSetEndpointId()
57+
{
58+
return this._endpointId != null;
59+
}
60+
61+
/// <summary>
62+
/// Gets and sets the property PipelineArn.
63+
/// <para>
64+
/// The Amazon Resource Name (ARN) of the pipeline associated with the endpoint.
65+
/// </para>
66+
/// </summary>
67+
[AWSProperty(Min=46, Max=76)]
68+
public string PipelineArn
69+
{
70+
get { return this._pipelineArn; }
71+
set { this._pipelineArn = value; }
72+
}
73+
74+
// Check to see if PipelineArn property is set
75+
internal bool IsSetPipelineArn()
76+
{
77+
return this._pipelineArn != null;
78+
}
79+
80+
/// <summary>
81+
/// Gets and sets the property Status.
82+
/// <para>
83+
/// The current status of the pipeline endpoint.
84+
/// </para>
85+
/// </summary>
86+
public PipelineEndpointStatus Status
87+
{
88+
get { return this._status; }
89+
set { this._status = value; }
90+
}
91+
92+
// Check to see if Status property is set
93+
internal bool IsSetStatus()
94+
{
95+
return this._status != null;
96+
}
97+
98+
/// <summary>
99+
/// Gets and sets the property VpcId.
100+
/// <para>
101+
/// The ID of the VPC where the pipeline endpoint was created.
102+
/// </para>
103+
/// </summary>
104+
public string VpcId
105+
{
106+
get { return this._vpcId; }
107+
set { this._vpcId = value; }
108+
}
109+
110+
// Check to see if VpcId property is set
111+
internal bool IsSetVpcId()
112+
{
113+
return this._vpcId != null;
114+
}
115+
116+
}
117+
}

0 commit comments

Comments
 (0)