Skip to content

Commit 36e88f9

Browse files
authored
Adds AWSPaginator attribute to methods in Paginator Factory interface
1 parent 94a1cec commit 36e88f9

File tree

6 files changed

+155
-13
lines changed

6 files changed

+155
-13
lines changed
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
{
2+
"core": {
3+
"changeLogMessages": [
4+
"Added pagination attribute for Paginator methods"
5+
],
6+
"type": "patch",
7+
"updateMinimum": true
8+
}
9+
}

generator/ServiceClientGeneratorLib/Generators/SourceFiles/ServicePaginatorFactoryInterface.cs

Lines changed: 36 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ namespace ServiceClientGenerator.Generators.SourceFiles
1818
/// Class to produce the template output
1919
/// </summary>
2020

21-
#line 1 "C:\codebase\v3\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\SourceFiles\ServicePaginatorFactoryInterface.tt"
21+
#line 1 "C:\git\aws-sdk-net\generator\ServiceClientGeneratorLib\Generators\SourceFiles\ServicePaginatorFactoryInterface.tt"
2222
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.TextTemplating", "17.0.0.0")]
2323
public partial class ServicePaginatorFactoryInterface : BaseGenerator
2424
{
@@ -29,37 +29,38 @@ public partial class ServicePaginatorFactoryInterface : BaseGenerator
2929
public override string TransformText()
3030
{
3131

32-
#line 6 "C:\codebase\v3\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\SourceFiles\ServicePaginatorFactoryInterface.tt"
32+
#line 6 "C:\git\aws-sdk-net\generator\ServiceClientGeneratorLib\Generators\SourceFiles\ServicePaginatorFactoryInterface.tt"
3333

3434
AddLicenseHeader();
3535

3636

3737
#line default
3838
#line hidden
39-
this.Write("\r\n#pragma warning disable CS0612,CS0618\r\nnamespace ");
39+
this.Write("using Amazon.Runtime.Internal;\r\n\r\n#pragma warning disable CS0612,CS0618\r\nnamespac" +
40+
"e ");
4041

41-
#line 11 "C:\codebase\v3\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\SourceFiles\ServicePaginatorFactoryInterface.tt"
42+
#line 12 "C:\git\aws-sdk-net\generator\ServiceClientGeneratorLib\Generators\SourceFiles\ServicePaginatorFactoryInterface.tt"
4243
this.Write(this.ToStringHelper.ToStringWithCulture(this.Config.Namespace));
4344

4445
#line default
4546
#line hidden
4647
this.Write(".Model\r\n{\r\n /// <summary>\r\n /// Paginators for the ");
4748

48-
#line 14 "C:\codebase\v3\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\SourceFiles\ServicePaginatorFactoryInterface.tt"
49+
#line 15 "C:\git\aws-sdk-net\generator\ServiceClientGeneratorLib\Generators\SourceFiles\ServicePaginatorFactoryInterface.tt"
4950
this.Write(this.ToStringHelper.ToStringWithCulture(this.Config.ServiceNameRoot));
5051

5152
#line default
5253
#line hidden
5354
this.Write(" service\r\n ///</summary>\r\n public interface I");
5455

55-
#line 16 "C:\codebase\v3\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\SourceFiles\ServicePaginatorFactoryInterface.tt"
56+
#line 17 "C:\git\aws-sdk-net\generator\ServiceClientGeneratorLib\Generators\SourceFiles\ServicePaginatorFactoryInterface.tt"
5657
this.Write(this.ToStringHelper.ToStringWithCulture(this.Config.ServiceNameRoot));
5758

5859
#line default
5960
#line hidden
6061
this.Write("PaginatorFactory\r\n {\r\n");
6162

62-
#line 18 "C:\codebase\v3\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\SourceFiles\ServicePaginatorFactoryInterface.tt"
63+
#line 19 "C:\git\aws-sdk-net\generator\ServiceClientGeneratorLib\Generators\SourceFiles\ServicePaginatorFactoryInterface.tt"
6364

6465
foreach(var operation in this.Config.ServiceModel.Operations)
6566
{
@@ -71,35 +72,57 @@ public override string TransformText()
7172
#line hidden
7273
this.Write("\r\n /// <summary>\r\n /// Paginator for ");
7374

74-
#line 26 "C:\codebase\v3\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\SourceFiles\ServicePaginatorFactoryInterface.tt"
75+
#line 27 "C:\git\aws-sdk-net\generator\ServiceClientGeneratorLib\Generators\SourceFiles\ServicePaginatorFactoryInterface.tt"
7576
this.Write(this.ToStringHelper.ToStringWithCulture(operation.Name));
7677

7778
#line default
7879
#line hidden
79-
this.Write(" operation\r\n ///</summary>\r\n I");
80+
this.Write(" operation\r\n ///</summary>\r\n [AWSPaginator(\r\n InputToken" +
81+
" = new[] { ");
8082

81-
#line 28 "C:\codebase\v3\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\SourceFiles\ServicePaginatorFactoryInterface.tt"
83+
#line 30 "C:\git\aws-sdk-net\generator\ServiceClientGeneratorLib\Generators\SourceFiles\ServicePaginatorFactoryInterface.tt"
84+
this.Write(this.ToStringHelper.ToStringWithCulture(string.Join(",", operation.Paginators.InputTokens.Select(x => "\"" + x.PropertyName + "\""))));
85+
86+
#line default
87+
#line hidden
88+
this.Write(" },\r\n ");
89+
90+
#line 31 "C:\git\aws-sdk-net\generator\ServiceClientGeneratorLib\Generators\SourceFiles\ServicePaginatorFactoryInterface.tt"
91+
this.Write(this.ToStringHelper.ToStringWithCulture(operation.Paginators.LimitKey != null ? $"LimitKey = \"{operation.Paginators.LimitKey.PropertyName}\"," : ""));
92+
93+
#line default
94+
#line hidden
95+
this.Write("\r\n OutputToken = new[] { ");
96+
97+
#line 32 "C:\git\aws-sdk-net\generator\ServiceClientGeneratorLib\Generators\SourceFiles\ServicePaginatorFactoryInterface.tt"
98+
this.Write(this.ToStringHelper.ToStringWithCulture(string.Join(",", operation.Paginators.OutputTokens.Select(x => "\"" + x.PropertyName + "\""))));
99+
100+
#line default
101+
#line hidden
102+
this.Write(" }\r\n )]\r\n I");
103+
104+
#line 34 "C:\git\aws-sdk-net\generator\ServiceClientGeneratorLib\Generators\SourceFiles\ServicePaginatorFactoryInterface.tt"
82105
this.Write(this.ToStringHelper.ToStringWithCulture(operation.Name));
83106

84107
#line default
85108
#line hidden
86109
this.Write("Paginator ");
87110

88-
#line 28 "C:\codebase\v3\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\SourceFiles\ServicePaginatorFactoryInterface.tt"
111+
#line 34 "C:\git\aws-sdk-net\generator\ServiceClientGeneratorLib\Generators\SourceFiles\ServicePaginatorFactoryInterface.tt"
89112
this.Write(this.ToStringHelper.ToStringWithCulture(operation.Name));
90113

91114
#line default
92115
#line hidden
93116
this.Write("(");
94117

95-
#line 28 "C:\codebase\v3\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\SourceFiles\ServicePaginatorFactoryInterface.tt"
118+
#line 34 "C:\git\aws-sdk-net\generator\ServiceClientGeneratorLib\Generators\SourceFiles\ServicePaginatorFactoryInterface.tt"
96119
this.Write(this.ToStringHelper.ToStringWithCulture(operation.Name));
97120

98121
#line default
99122
#line hidden
100123
this.Write("Request request);\r\n");
101124

102-
#line 29 "C:\codebase\v3\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\SourceFiles\ServicePaginatorFactoryInterface.tt"
125+
#line 35 "C:\git\aws-sdk-net\generator\ServiceClientGeneratorLib\Generators\SourceFiles\ServicePaginatorFactoryInterface.tt"
103126

104127
}
105128
}

generator/ServiceClientGeneratorLib/Generators/SourceFiles/ServicePaginatorFactoryInterface.tt

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66
<#
77
AddLicenseHeader();
88
#>
9+
using Amazon.Runtime.Internal;
910

1011
#pragma warning disable CS0612,CS0618
1112
namespace <#=this.Config.Namespace#>.Model
@@ -25,6 +26,11 @@ foreach(var operation in this.Config.ServiceModel.Operations)
2526
/// <summary>
2627
/// Paginator for <#=operation.Name#> operation
2728
///</summary>
29+
[AWSPaginator(
30+
InputToken = new[] { <#= string.Join(",", operation.Paginators.InputTokens.Select(x => "\"" + x.PropertyName + "\"")) #> },
31+
<#= operation.Paginators.LimitKey != null ? $"LimitKey = \"{operation.Paginators.LimitKey.PropertyName}\"," : "" #>
32+
OutputToken = new[] { <#= string.Join(",", operation.Paginators.OutputTokens.Select(x => "\"" + x.PropertyName + "\"")) #> }
33+
)]
2834
I<#=operation.Name#>Paginator <#=operation.Name#>(<#=operation.Name#>Request request);
2935
<#
3036
}
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
using System;
2+
3+
namespace Amazon.Runtime.Internal
4+
{
5+
[AttributeUsage(AttributeTargets.Method)]
6+
public sealed class AWSPaginatorAttribute : Attribute
7+
{
8+
public string[] InputToken { get; set; }
9+
public string LimitKey { get; set; }
10+
public string[] OutputToken { get; set; }
11+
}
12+
}

sdk/src/Services/AccessAnalyzer/Generated/Model/_bcl45+netstandard/IAccessAnalyzerPaginatorFactory.cs

Lines changed: 56 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@
1616
/*
1717
* Do not modify this file. This file is generated from the accessanalyzer-2019-11-01.normal.json service model.
1818
*/
19+
using Amazon.Runtime.Internal;
1920

2021
#pragma warning disable CS0612,CS0618
2122
namespace Amazon.AccessAnalyzer.Model
@@ -29,56 +30,111 @@ public interface IAccessAnalyzerPaginatorFactory
2930
/// <summary>
3031
/// Paginator for GetFindingRecommendation operation
3132
///</summary>
33+
[AWSPaginator(
34+
InputToken = new[] { "NextToken" },
35+
LimitKey = "MaxResults",
36+
OutputToken = new[] { "NextToken" }
37+
)]
3238
IGetFindingRecommendationPaginator GetFindingRecommendation(GetFindingRecommendationRequest request);
3339

3440
/// <summary>
3541
/// Paginator for GetFindingV2 operation
3642
///</summary>
43+
[AWSPaginator(
44+
InputToken = new[] { "NextToken" },
45+
LimitKey = "MaxResults",
46+
OutputToken = new[] { "NextToken" }
47+
)]
3748
IGetFindingV2Paginator GetFindingV2(GetFindingV2Request request);
3849

3950
/// <summary>
4051
/// Paginator for ListAccessPreviewFindings operation
4152
///</summary>
53+
[AWSPaginator(
54+
InputToken = new[] { "NextToken" },
55+
LimitKey = "MaxResults",
56+
OutputToken = new[] { "NextToken" }
57+
)]
4258
IListAccessPreviewFindingsPaginator ListAccessPreviewFindings(ListAccessPreviewFindingsRequest request);
4359

4460
/// <summary>
4561
/// Paginator for ListAccessPreviews operation
4662
///</summary>
63+
[AWSPaginator(
64+
InputToken = new[] { "NextToken" },
65+
LimitKey = "MaxResults",
66+
OutputToken = new[] { "NextToken" }
67+
)]
4768
IListAccessPreviewsPaginator ListAccessPreviews(ListAccessPreviewsRequest request);
4869

4970
/// <summary>
5071
/// Paginator for ListAnalyzedResources operation
5172
///</summary>
73+
[AWSPaginator(
74+
InputToken = new[] { "NextToken" },
75+
LimitKey = "MaxResults",
76+
OutputToken = new[] { "NextToken" }
77+
)]
5278
IListAnalyzedResourcesPaginator ListAnalyzedResources(ListAnalyzedResourcesRequest request);
5379

5480
/// <summary>
5581
/// Paginator for ListAnalyzers operation
5682
///</summary>
83+
[AWSPaginator(
84+
InputToken = new[] { "NextToken" },
85+
LimitKey = "MaxResults",
86+
OutputToken = new[] { "NextToken" }
87+
)]
5788
IListAnalyzersPaginator ListAnalyzers(ListAnalyzersRequest request);
5889

5990
/// <summary>
6091
/// Paginator for ListArchiveRules operation
6192
///</summary>
93+
[AWSPaginator(
94+
InputToken = new[] { "NextToken" },
95+
LimitKey = "MaxResults",
96+
OutputToken = new[] { "NextToken" }
97+
)]
6298
IListArchiveRulesPaginator ListArchiveRules(ListArchiveRulesRequest request);
6399

64100
/// <summary>
65101
/// Paginator for ListFindings operation
66102
///</summary>
103+
[AWSPaginator(
104+
InputToken = new[] { "NextToken" },
105+
LimitKey = "MaxResults",
106+
OutputToken = new[] { "NextToken" }
107+
)]
67108
IListFindingsPaginator ListFindings(ListFindingsRequest request);
68109

69110
/// <summary>
70111
/// Paginator for ListFindingsV2 operation
71112
///</summary>
113+
[AWSPaginator(
114+
InputToken = new[] { "NextToken" },
115+
LimitKey = "MaxResults",
116+
OutputToken = new[] { "NextToken" }
117+
)]
72118
IListFindingsV2Paginator ListFindingsV2(ListFindingsV2Request request);
73119

74120
/// <summary>
75121
/// Paginator for ListPolicyGenerations operation
76122
///</summary>
123+
[AWSPaginator(
124+
InputToken = new[] { "NextToken" },
125+
LimitKey = "MaxResults",
126+
OutputToken = new[] { "NextToken" }
127+
)]
77128
IListPolicyGenerationsPaginator ListPolicyGenerations(ListPolicyGenerationsRequest request);
78129

79130
/// <summary>
80131
/// Paginator for ValidatePolicy operation
81132
///</summary>
133+
[AWSPaginator(
134+
InputToken = new[] { "NextToken" },
135+
LimitKey = "MaxResults",
136+
OutputToken = new[] { "NextToken" }
137+
)]
82138
IValidatePolicyPaginator ValidatePolicy(ValidatePolicyRequest request);
83139
}
84140
}

sdk/src/Services/SimpleWorkflow/Generated/Model/_bcl45+netstandard/ISimpleWorkflowPaginatorFactory.cs

Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@
1616
/*
1717
* Do not modify this file. This file is generated from the swf-2012-01-25.normal.json service model.
1818
*/
19+
using Amazon.Runtime.Internal;
1920

2021
#pragma warning disable CS0612,CS0618
2122
namespace Amazon.SimpleWorkflow.Model
@@ -29,36 +30,71 @@ public interface ISimpleWorkflowPaginatorFactory
2930
/// <summary>
3031
/// Paginator for GetWorkflowExecutionHistory operation
3132
///</summary>
33+
[AWSPaginator(
34+
InputToken = new[] { "NextPageToken" },
35+
LimitKey = "MaximumPageSize",
36+
OutputToken = new[] { "History.NextPageToken" }
37+
)]
3238
IGetWorkflowExecutionHistoryPaginator GetWorkflowExecutionHistory(GetWorkflowExecutionHistoryRequest request);
3339

3440
/// <summary>
3541
/// Paginator for ListActivityTypes operation
3642
///</summary>
43+
[AWSPaginator(
44+
InputToken = new[] { "NextPageToken" },
45+
LimitKey = "MaximumPageSize",
46+
OutputToken = new[] { "ActivityTypeInfos.NextPageToken" }
47+
)]
3748
IListActivityTypesPaginator ListActivityTypes(ListActivityTypesRequest request);
3849

3950
/// <summary>
4051
/// Paginator for ListClosedWorkflowExecutions operation
4152
///</summary>
53+
[AWSPaginator(
54+
InputToken = new[] { "NextPageToken" },
55+
LimitKey = "MaximumPageSize",
56+
OutputToken = new[] { "WorkflowExecutionInfos.NextPageToken" }
57+
)]
4258
IListClosedWorkflowExecutionsPaginator ListClosedWorkflowExecutions(ListClosedWorkflowExecutionsRequest request);
4359

4460
/// <summary>
4561
/// Paginator for ListDomains operation
4662
///</summary>
63+
[AWSPaginator(
64+
InputToken = new[] { "NextPageToken" },
65+
LimitKey = "MaximumPageSize",
66+
OutputToken = new[] { "DomainInfos.NextPageToken" }
67+
)]
4768
IListDomainsPaginator ListDomains(ListDomainsRequest request);
4869

4970
/// <summary>
5071
/// Paginator for ListOpenWorkflowExecutions operation
5172
///</summary>
73+
[AWSPaginator(
74+
InputToken = new[] { "NextPageToken" },
75+
LimitKey = "MaximumPageSize",
76+
OutputToken = new[] { "WorkflowExecutionInfos.NextPageToken" }
77+
)]
5278
IListOpenWorkflowExecutionsPaginator ListOpenWorkflowExecutions(ListOpenWorkflowExecutionsRequest request);
5379

5480
/// <summary>
5581
/// Paginator for ListWorkflowTypes operation
5682
///</summary>
83+
[AWSPaginator(
84+
InputToken = new[] { "NextPageToken" },
85+
LimitKey = "MaximumPageSize",
86+
OutputToken = new[] { "WorkflowTypeInfos.NextPageToken" }
87+
)]
5788
IListWorkflowTypesPaginator ListWorkflowTypes(ListWorkflowTypesRequest request);
5889

5990
/// <summary>
6091
/// Paginator for PollForDecisionTask operation
6192
///</summary>
93+
[AWSPaginator(
94+
InputToken = new[] { "NextPageToken" },
95+
LimitKey = "MaximumPageSize",
96+
OutputToken = new[] { "DecisionTask.NextPageToken" }
97+
)]
6298
IPollForDecisionTaskPaginator PollForDecisionTask(PollForDecisionTaskRequest request);
6399
}
64100
}

0 commit comments

Comments
 (0)