1// Code generated by smithy-go-codegen DO NOT EDIT.
2
3package pi
4
5import (
6	"context"
7	"fmt"
8	"github.com/aws/aws-sdk-go-v2/service/pi/types"
9	smithy "github.com/aws/smithy-go"
10	"github.com/aws/smithy-go/middleware"
11)
12
13type validateOpDescribeDimensionKeys struct {
14}
15
16func (*validateOpDescribeDimensionKeys) ID() string {
17	return "OperationInputValidation"
18}
19
20func (m *validateOpDescribeDimensionKeys) HandleInitialize(ctx context.Context, in middleware.InitializeInput, next middleware.InitializeHandler) (
21	out middleware.InitializeOutput, metadata middleware.Metadata, err error,
22) {
23	input, ok := in.Parameters.(*DescribeDimensionKeysInput)
24	if !ok {
25		return out, metadata, fmt.Errorf("unknown input parameters type %T", in.Parameters)
26	}
27	if err := validateOpDescribeDimensionKeysInput(input); err != nil {
28		return out, metadata, err
29	}
30	return next.HandleInitialize(ctx, in)
31}
32
33type validateOpGetDimensionKeyDetails struct {
34}
35
36func (*validateOpGetDimensionKeyDetails) ID() string {
37	return "OperationInputValidation"
38}
39
40func (m *validateOpGetDimensionKeyDetails) HandleInitialize(ctx context.Context, in middleware.InitializeInput, next middleware.InitializeHandler) (
41	out middleware.InitializeOutput, metadata middleware.Metadata, err error,
42) {
43	input, ok := in.Parameters.(*GetDimensionKeyDetailsInput)
44	if !ok {
45		return out, metadata, fmt.Errorf("unknown input parameters type %T", in.Parameters)
46	}
47	if err := validateOpGetDimensionKeyDetailsInput(input); err != nil {
48		return out, metadata, err
49	}
50	return next.HandleInitialize(ctx, in)
51}
52
53type validateOpGetResourceMetrics struct {
54}
55
56func (*validateOpGetResourceMetrics) ID() string {
57	return "OperationInputValidation"
58}
59
60func (m *validateOpGetResourceMetrics) HandleInitialize(ctx context.Context, in middleware.InitializeInput, next middleware.InitializeHandler) (
61	out middleware.InitializeOutput, metadata middleware.Metadata, err error,
62) {
63	input, ok := in.Parameters.(*GetResourceMetricsInput)
64	if !ok {
65		return out, metadata, fmt.Errorf("unknown input parameters type %T", in.Parameters)
66	}
67	if err := validateOpGetResourceMetricsInput(input); err != nil {
68		return out, metadata, err
69	}
70	return next.HandleInitialize(ctx, in)
71}
72
73func addOpDescribeDimensionKeysValidationMiddleware(stack *middleware.Stack) error {
74	return stack.Initialize.Add(&validateOpDescribeDimensionKeys{}, middleware.After)
75}
76
77func addOpGetDimensionKeyDetailsValidationMiddleware(stack *middleware.Stack) error {
78	return stack.Initialize.Add(&validateOpGetDimensionKeyDetails{}, middleware.After)
79}
80
81func addOpGetResourceMetricsValidationMiddleware(stack *middleware.Stack) error {
82	return stack.Initialize.Add(&validateOpGetResourceMetrics{}, middleware.After)
83}
84
85func validateDimensionGroup(v *types.DimensionGroup) error {
86	if v == nil {
87		return nil
88	}
89	invalidParams := smithy.InvalidParamsError{Context: "DimensionGroup"}
90	if v.Group == nil {
91		invalidParams.Add(smithy.NewErrParamRequired("Group"))
92	}
93	if invalidParams.Len() > 0 {
94		return invalidParams
95	} else {
96		return nil
97	}
98}
99
100func validateMetricQuery(v *types.MetricQuery) error {
101	if v == nil {
102		return nil
103	}
104	invalidParams := smithy.InvalidParamsError{Context: "MetricQuery"}
105	if v.Metric == nil {
106		invalidParams.Add(smithy.NewErrParamRequired("Metric"))
107	}
108	if v.GroupBy != nil {
109		if err := validateDimensionGroup(v.GroupBy); err != nil {
110			invalidParams.AddNested("GroupBy", err.(smithy.InvalidParamsError))
111		}
112	}
113	if invalidParams.Len() > 0 {
114		return invalidParams
115	} else {
116		return nil
117	}
118}
119
120func validateMetricQueryList(v []types.MetricQuery) error {
121	if v == nil {
122		return nil
123	}
124	invalidParams := smithy.InvalidParamsError{Context: "MetricQueryList"}
125	for i := range v {
126		if err := validateMetricQuery(&v[i]); err != nil {
127			invalidParams.AddNested(fmt.Sprintf("[%d]", i), err.(smithy.InvalidParamsError))
128		}
129	}
130	if invalidParams.Len() > 0 {
131		return invalidParams
132	} else {
133		return nil
134	}
135}
136
137func validateOpDescribeDimensionKeysInput(v *DescribeDimensionKeysInput) error {
138	if v == nil {
139		return nil
140	}
141	invalidParams := smithy.InvalidParamsError{Context: "DescribeDimensionKeysInput"}
142	if len(v.ServiceType) == 0 {
143		invalidParams.Add(smithy.NewErrParamRequired("ServiceType"))
144	}
145	if v.Identifier == nil {
146		invalidParams.Add(smithy.NewErrParamRequired("Identifier"))
147	}
148	if v.StartTime == nil {
149		invalidParams.Add(smithy.NewErrParamRequired("StartTime"))
150	}
151	if v.EndTime == nil {
152		invalidParams.Add(smithy.NewErrParamRequired("EndTime"))
153	}
154	if v.Metric == nil {
155		invalidParams.Add(smithy.NewErrParamRequired("Metric"))
156	}
157	if v.GroupBy == nil {
158		invalidParams.Add(smithy.NewErrParamRequired("GroupBy"))
159	} else if v.GroupBy != nil {
160		if err := validateDimensionGroup(v.GroupBy); err != nil {
161			invalidParams.AddNested("GroupBy", err.(smithy.InvalidParamsError))
162		}
163	}
164	if v.PartitionBy != nil {
165		if err := validateDimensionGroup(v.PartitionBy); err != nil {
166			invalidParams.AddNested("PartitionBy", err.(smithy.InvalidParamsError))
167		}
168	}
169	if invalidParams.Len() > 0 {
170		return invalidParams
171	} else {
172		return nil
173	}
174}
175
176func validateOpGetDimensionKeyDetailsInput(v *GetDimensionKeyDetailsInput) error {
177	if v == nil {
178		return nil
179	}
180	invalidParams := smithy.InvalidParamsError{Context: "GetDimensionKeyDetailsInput"}
181	if len(v.ServiceType) == 0 {
182		invalidParams.Add(smithy.NewErrParamRequired("ServiceType"))
183	}
184	if v.Identifier == nil {
185		invalidParams.Add(smithy.NewErrParamRequired("Identifier"))
186	}
187	if v.Group == nil {
188		invalidParams.Add(smithy.NewErrParamRequired("Group"))
189	}
190	if v.GroupIdentifier == nil {
191		invalidParams.Add(smithy.NewErrParamRequired("GroupIdentifier"))
192	}
193	if invalidParams.Len() > 0 {
194		return invalidParams
195	} else {
196		return nil
197	}
198}
199
200func validateOpGetResourceMetricsInput(v *GetResourceMetricsInput) error {
201	if v == nil {
202		return nil
203	}
204	invalidParams := smithy.InvalidParamsError{Context: "GetResourceMetricsInput"}
205	if len(v.ServiceType) == 0 {
206		invalidParams.Add(smithy.NewErrParamRequired("ServiceType"))
207	}
208	if v.Identifier == nil {
209		invalidParams.Add(smithy.NewErrParamRequired("Identifier"))
210	}
211	if v.MetricQueries == nil {
212		invalidParams.Add(smithy.NewErrParamRequired("MetricQueries"))
213	} else if v.MetricQueries != nil {
214		if err := validateMetricQueryList(v.MetricQueries); err != nil {
215			invalidParams.AddNested("MetricQueries", err.(smithy.InvalidParamsError))
216		}
217	}
218	if v.StartTime == nil {
219		invalidParams.Add(smithy.NewErrParamRequired("StartTime"))
220	}
221	if v.EndTime == nil {
222		invalidParams.Add(smithy.NewErrParamRequired("EndTime"))
223	}
224	if invalidParams.Len() > 0 {
225		return invalidParams
226	} else {
227		return nil
228	}
229}
230