Skip to content

Commit 1c95590

Browse files
AWS Systems Manager for SAP added support for registration and discovery of distributed ABAP applications
1 parent 3a0f51c commit 1c95590

File tree

8 files changed

+306
-1
lines changed

8 files changed

+306
-1
lines changed

generator/ServiceModels/ssm-sap/ssm-sap-2018-05-10.api.json

Lines changed: 21 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -525,6 +525,25 @@
525525
"type":"list",
526526
"member":{"shape":"ComponentId"}
527527
},
528+
"ComponentInfo":{
529+
"type":"structure",
530+
"required":[
531+
"ComponentType",
532+
"Sid",
533+
"Ec2InstanceId"
534+
],
535+
"members":{
536+
"ComponentType":{"shape":"ComponentType"},
537+
"Sid":{"shape":"SID"},
538+
"Ec2InstanceId":{"shape":"InstanceId"}
539+
}
540+
},
541+
"ComponentInfoList":{
542+
"type":"list",
543+
"member":{"shape":"ComponentInfo"},
544+
"max":5,
545+
"min":0
546+
},
528547
"ComponentStatus":{
529548
"type":"string",
530549
"enum":[
@@ -1085,7 +1104,8 @@
10851104
"Sid":{"shape":"SID"},
10861105
"Tags":{"shape":"TagMap"},
10871106
"Credentials":{"shape":"ApplicationCredentialList"},
1088-
"DatabaseArn":{"shape":"SsmSapArn"}
1107+
"DatabaseArn":{"shape":"SsmSapArn"},
1108+
"ComponentsInfo":{"shape":"ComponentInfoList"}
10891109
}
10901110
},
10911111
"RegisterApplicationOutput":{

generator/ServiceModels/ssm-sap/ssm-sap-2018-05-10.docs.json

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -200,6 +200,18 @@
200200
"Component$ChildComponents": "<p>The child components of a highly available environment. For example, in a highly available SAP on AWS workload, the child component consists of the primary and secondar instances.</p>"
201201
}
202202
},
203+
"ComponentInfo": {
204+
"base": "<p>This is information about the component of your SAP application, such as Web Dispatcher.</p>",
205+
"refs": {
206+
"ComponentInfoList$member": null
207+
}
208+
},
209+
"ComponentInfoList": {
210+
"base": null,
211+
"refs": {
212+
"RegisterApplicationInput$ComponentsInfo": "<p>This is an optional parameter for component details to which the SAP ABAP application is attached, such as Web Dispatcher.</p> <p>This is an array of ApplicationComponent objects. You may input 0 to 5 items.</p>"
213+
}
214+
},
203215
"ComponentStatus": {
204216
"base": null,
205217
"refs": {
@@ -222,6 +234,7 @@
222234
"base": null,
223235
"refs": {
224236
"Component$ComponentType": "<p>The type of the component.</p>",
237+
"ComponentInfo$ComponentType": "<p>This string is the type of the component.</p> <p>Accepted value is <code>WD</code>.</p>",
225238
"ComponentSummary$ComponentType": "<p>The type of the component.</p>"
226239
}
227240
},
@@ -429,6 +442,7 @@
429442
"InstanceId": {
430443
"base": null,
431444
"refs": {
445+
"ComponentInfo$Ec2InstanceId": "<p>This is the Amazon EC2 instance on which your SAP component is running.</p> <p>Accepted values are alphanumeric.</p>",
432446
"InstanceList$member": null
433447
}
434448
},
@@ -700,6 +714,7 @@
700714
"base": null,
701715
"refs": {
702716
"Component$Sid": "<p>The SAP System Identifier of the application component.</p>",
717+
"ComponentInfo$Sid": "<p>This string is the SAP System ID of the component.</p> <p>Accepted values are alphanumeric.</p>",
703718
"RegisterApplicationInput$Sid": "<p>The System ID of the application.</p>"
704719
}
705720
},

generator/ServiceModels/ssm-sap/ssm-sap-2018-05-10.normal.json

Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -680,6 +680,35 @@
680680
"type":"list",
681681
"member":{"shape":"ComponentId"}
682682
},
683+
"ComponentInfo":{
684+
"type":"structure",
685+
"required":[
686+
"ComponentType",
687+
"Sid",
688+
"Ec2InstanceId"
689+
],
690+
"members":{
691+
"ComponentType":{
692+
"shape":"ComponentType",
693+
"documentation":"<p>This string is the type of the component.</p> <p>Accepted value is <code>WD</code>.</p>"
694+
},
695+
"Sid":{
696+
"shape":"SID",
697+
"documentation":"<p>This string is the SAP System ID of the component.</p> <p>Accepted values are alphanumeric.</p>"
698+
},
699+
"Ec2InstanceId":{
700+
"shape":"InstanceId",
701+
"documentation":"<p>This is the Amazon EC2 instance on which your SAP component is running.</p> <p>Accepted values are alphanumeric.</p>"
702+
}
703+
},
704+
"documentation":"<p>This is information about the component of your SAP application, such as Web Dispatcher.</p>"
705+
},
706+
"ComponentInfoList":{
707+
"type":"list",
708+
"member":{"shape":"ComponentInfo"},
709+
"max":5,
710+
"min":0
711+
},
683712
"ComponentStatus":{
684713
"type":"string",
685714
"enum":[
@@ -1612,6 +1641,10 @@
16121641
"DatabaseArn":{
16131642
"shape":"SsmSapArn",
16141643
"documentation":"<p>The Amazon Resource Name of the SAP HANA database.</p>"
1644+
},
1645+
"ComponentsInfo":{
1646+
"shape":"ComponentInfoList",
1647+
"documentation":"<p>This is an optional parameter for component details to which the SAP ABAP application is attached, such as Web Dispatcher.</p> <p>This is an array of ApplicationComponent objects. You may input 0 to 5 items.</p>"
16151648
}
16161649
}
16171650
},

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

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -309,6 +309,14 @@
309309
<property>Amazon.SsmSap.Model.Component.SystemNumber</property>
310310
<pattern>[0-9]{2}</pattern>
311311
</property-value-rule>
312+
<property-value-rule>
313+
<property>Amazon.SsmSap.Model.ComponentInfo.Ec2InstanceId</property>
314+
<pattern>i-[\w\d]{8}$|^i-[\w\d]{17}</pattern>
315+
</property-value-rule>
316+
<property-value-rule>
317+
<property>Amazon.SsmSap.Model.ComponentInfo.Sid</property>
318+
<pattern>[A-Z][A-Z0-9]{2}</pattern>
319+
</property-value-rule>
312320
<property-value-rule>
313321
<property>Amazon.SsmSap.Model.ComponentSummary.ApplicationId</property>
314322
<min>1</min>
Lines changed: 111 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,111 @@
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 ssm-sap-2018-05-10.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.SsmSap.Model
31+
{
32+
/// <summary>
33+
/// This is information about the component of your SAP application, such as Web Dispatcher.
34+
/// </summary>
35+
public partial class ComponentInfo
36+
{
37+
private ComponentType _componentType;
38+
private string _ec2InstanceId;
39+
private string _sid;
40+
41+
/// <summary>
42+
/// Gets and sets the property ComponentType.
43+
/// <para>
44+
/// This string is the type of the component.
45+
/// </para>
46+
///
47+
/// <para>
48+
/// Accepted value is <c>WD</c>.
49+
/// </para>
50+
/// </summary>
51+
[AWSProperty(Required=true)]
52+
public ComponentType ComponentType
53+
{
54+
get { return this._componentType; }
55+
set { this._componentType = value; }
56+
}
57+
58+
// Check to see if ComponentType property is set
59+
internal bool IsSetComponentType()
60+
{
61+
return this._componentType != null;
62+
}
63+
64+
/// <summary>
65+
/// Gets and sets the property Ec2InstanceId.
66+
/// <para>
67+
/// This is the Amazon EC2 instance on which your SAP component is running.
68+
/// </para>
69+
///
70+
/// <para>
71+
/// Accepted values are alphanumeric.
72+
/// </para>
73+
/// </summary>
74+
[AWSProperty(Required=true)]
75+
public string Ec2InstanceId
76+
{
77+
get { return this._ec2InstanceId; }
78+
set { this._ec2InstanceId = value; }
79+
}
80+
81+
// Check to see if Ec2InstanceId property is set
82+
internal bool IsSetEc2InstanceId()
83+
{
84+
return this._ec2InstanceId != null;
85+
}
86+
87+
/// <summary>
88+
/// Gets and sets the property Sid.
89+
/// <para>
90+
/// This string is the SAP System ID of the component.
91+
/// </para>
92+
///
93+
/// <para>
94+
/// Accepted values are alphanumeric.
95+
/// </para>
96+
/// </summary>
97+
[AWSProperty(Required=true)]
98+
public string Sid
99+
{
100+
get { return this._sid; }
101+
set { this._sid = value; }
102+
}
103+
104+
// Check to see if Sid property is set
105+
internal bool IsSetSid()
106+
{
107+
return this._sid != null;
108+
}
109+
110+
}
111+
}
Lines changed: 77 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,77 @@
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 ssm-sap-2018-05-10.normal.json service model.
18+
*/
19+
using System;
20+
using System.Collections.Generic;
21+
using System.Globalization;
22+
using System.IO;
23+
using System.Text;
24+
using System.Xml.Serialization;
25+
26+
using Amazon.SsmSap.Model;
27+
using Amazon.Runtime;
28+
using Amazon.Runtime.Internal;
29+
using Amazon.Runtime.Internal.Transform;
30+
using Amazon.Runtime.Internal.Util;
31+
using ThirdParty.Json.LitJson;
32+
33+
#pragma warning disable CS0612,CS0618
34+
namespace Amazon.SsmSap.Model.Internal.MarshallTransformations
35+
{
36+
/// <summary>
37+
/// ComponentInfo Marshaller
38+
/// </summary>
39+
public class ComponentInfoMarshaller : IRequestMarshaller<ComponentInfo, JsonMarshallerContext>
40+
{
41+
/// <summary>
42+
/// Unmarshaller the response from the service to the response class.
43+
/// </summary>
44+
/// <param name="requestObject"></param>
45+
/// <param name="context"></param>
46+
/// <returns></returns>
47+
public void Marshall(ComponentInfo requestObject, JsonMarshallerContext context)
48+
{
49+
if(requestObject == null)
50+
return;
51+
if(requestObject.IsSetComponentType())
52+
{
53+
context.Writer.WritePropertyName("ComponentType");
54+
context.Writer.Write(requestObject.ComponentType);
55+
}
56+
57+
if(requestObject.IsSetEc2InstanceId())
58+
{
59+
context.Writer.WritePropertyName("Ec2InstanceId");
60+
context.Writer.Write(requestObject.Ec2InstanceId);
61+
}
62+
63+
if(requestObject.IsSetSid())
64+
{
65+
context.Writer.WritePropertyName("Sid");
66+
context.Writer.Write(requestObject.Sid);
67+
}
68+
69+
}
70+
71+
/// <summary>
72+
/// Singleton Marshaller.
73+
/// </summary>
74+
public readonly static ComponentInfoMarshaller Instance = new ComponentInfoMarshaller();
75+
76+
}
77+
}

sdk/src/Services/SsmSap/Generated/Model/Internal/MarshallTransformations/RegisterApplicationRequestMarshaller.cs

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -79,6 +79,22 @@ public IRequest Marshall(RegisterApplicationRequest publicRequest)
7979
context.Writer.Write(publicRequest.ApplicationType);
8080
}
8181

82+
if(publicRequest.IsSetComponentsInfo())
83+
{
84+
context.Writer.WritePropertyName("ComponentsInfo");
85+
context.Writer.WriteArrayStart();
86+
foreach(var publicRequestComponentsInfoListValue in publicRequest.ComponentsInfo)
87+
{
88+
context.Writer.WriteObjectStart();
89+
90+
var marshaller = ComponentInfoMarshaller.Instance;
91+
marshaller.Marshall(publicRequestComponentsInfoListValue, context);
92+
93+
context.Writer.WriteObjectEnd();
94+
}
95+
context.Writer.WriteArrayEnd();
96+
}
97+
8298
if(publicRequest.IsSetCredentials())
8399
{
84100
context.Writer.WritePropertyName("Credentials");

sdk/src/Services/SsmSap/Generated/Model/RegisterApplicationRequest.cs

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -54,6 +54,7 @@ public partial class RegisterApplicationRequest : AmazonSsmSapRequest
5454
{
5555
private string _applicationId;
5656
private ApplicationType _applicationType;
57+
private List<ComponentInfo> _componentsInfo = AWSConfigs.InitializeCollections ? new List<ComponentInfo>() : null;
5758
private List<ApplicationCredential> _credentials = AWSConfigs.InitializeCollections ? new List<ApplicationCredential>() : null;
5859
private string _databaseArn;
5960
private List<string> _instances = AWSConfigs.InitializeCollections ? new List<string>() : null;
@@ -99,6 +100,30 @@ internal bool IsSetApplicationType()
99100
return this._applicationType != null;
100101
}
101102

103+
/// <summary>
104+
/// Gets and sets the property ComponentsInfo.
105+
/// <para>
106+
/// This is an optional parameter for component details to which the SAP ABAP application
107+
/// is attached, such as Web Dispatcher.
108+
/// </para>
109+
///
110+
/// <para>
111+
/// This is an array of ApplicationComponent objects. You may input 0 to 5 items.
112+
/// </para>
113+
/// </summary>
114+
[AWSProperty(Min=0, Max=5)]
115+
public List<ComponentInfo> ComponentsInfo
116+
{
117+
get { return this._componentsInfo; }
118+
set { this._componentsInfo = value; }
119+
}
120+
121+
// Check to see if ComponentsInfo property is set
122+
internal bool IsSetComponentsInfo()
123+
{
124+
return this._componentsInfo != null && (this._componentsInfo.Count > 0 || !AWSConfigs.InitializeCollections);
125+
}
126+
102127
/// <summary>
103128
/// Gets and sets the property Credentials.
104129
/// <para>

0 commit comments

Comments
 (0)