Skip to content

Commit 815c7a7

Browse files
committed
chore: refactor code and add custom ruleset
1 parent 3605e29 commit 815c7a7

File tree

11 files changed

+267
-97
lines changed

11 files changed

+267
-97
lines changed

private/my-local-model-schema/src/XYZServiceClient.ts

Lines changed: 4 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -13,11 +13,8 @@ import {
1313
import { getContentLengthPlugin } from "@smithy/middleware-content-length";
1414
import {
1515
type EndpointInputConfig,
16-
type EndpointRequiredInputConfig,
17-
type EndpointRequiredResolvedConfig,
1816
type EndpointResolvedConfig,
1917
resolveEndpointConfig,
20-
resolveEndpointRequiredConfig,
2118
} from "@smithy/middleware-endpoint";
2219
import {
2320
type RetryInputConfig,
@@ -199,7 +196,6 @@ export type XYZServiceClientConfigType = Partial<__SmithyConfiguration<__HttpHan
199196
ClientDefaults &
200197
RetryInputConfig &
201198
EndpointInputConfig<EndpointParameters> &
202-
EndpointRequiredInputConfig &
203199
EventStreamSerdeInputConfig &
204200
HttpAuthSchemeInputConfig &
205201
ClientInputEndpointParameters;
@@ -218,7 +214,6 @@ export type XYZServiceClientResolvedConfigType = __SmithyResolvedConfiguration<_
218214
RuntimeExtensionsConfig &
219215
RetryResolvedConfig &
220216
EndpointResolvedConfig<EndpointParameters> &
221-
EndpointRequiredResolvedConfig &
222217
EventStreamSerdeResolvedConfig &
223218
HttpAuthSchemeResolvedConfig &
224219
ClientResolvedEndpointParameters;
@@ -251,11 +246,10 @@ export class XYZServiceClient extends __Client<
251246
let _config_1 = resolveClientEndpointParameters(_config_0);
252247
let _config_2 = resolveRetryConfig(_config_1);
253248
let _config_3 = resolveEndpointConfig(_config_2);
254-
let _config_4 = resolveEndpointRequiredConfig(_config_3);
255-
let _config_5 = resolveEventStreamSerdeConfig(_config_4);
256-
let _config_6 = resolveHttpAuthSchemeConfig(_config_5);
257-
let _config_7 = resolveRuntimeExtensions(_config_6, configuration?.extensions || []);
258-
this.config = _config_7;
249+
let _config_4 = resolveEventStreamSerdeConfig(_config_3);
250+
let _config_5 = resolveHttpAuthSchemeConfig(_config_4);
251+
let _config_6 = resolveRuntimeExtensions(_config_5, configuration?.extensions || []);
252+
this.config = _config_6;
259253
this.middlewareStack.use(getSchemaSerdePlugin(this.config));
260254
this.middlewareStack.use(getRetryPlugin(this.config));
261255
this.middlewareStack.use(getContentLengthPlugin(this.config));
Lines changed: 31 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,29 +1,57 @@
11
// smithy-typescript generated code
2-
import { type Endpoint, type EndpointV2, EndpointParameters as __EndpointParameters, Provider } from "@smithy/types";
2+
import type { Endpoint, EndpointParameters as __EndpointParameters, EndpointV2, Provider } from "@smithy/types";
33

44
/**
55
* @public
66
*/
77
export interface ClientInputEndpointParameters {
8+
clientContextParams?: {
9+
apiKey?: string | undefined | Provider<string | undefined>;
10+
customParam?: string | undefined | Provider<string | undefined>;
11+
};
812
endpoint?: string | Provider<string> | Endpoint | Provider<Endpoint> | EndpointV2 | Provider<EndpointV2>;
13+
apiKey?: string | undefined | Provider<string | undefined>;
14+
customParam?: string | undefined | Provider<string | undefined>;
915
}
1016

11-
export type ClientResolvedEndpointParameters = Omit<ClientInputEndpointParameters, "endpoint"> & {
17+
export type ClientResolvedEndpointParameters = Omit<
18+
ClientInputEndpointParameters,
19+
"endpoint" | "clientContextParams"
20+
> & {
1221
defaultSigningName: string;
22+
clientContextParams: {
23+
apiKey?: string | undefined | Provider<string | undefined>;
24+
customParam?: string | undefined | Provider<string | undefined>;
25+
};
1326
};
1427

28+
/**
29+
* @internal
30+
*/
31+
const clientContextParamDefaults = {
32+
apiKey: "default-api-key",
33+
customParam: "default-custom-value",
34+
} as const;
35+
1536
export const resolveClientEndpointParameters = <T>(
1637
options: T & ClientInputEndpointParameters
1738
): T & ClientResolvedEndpointParameters => {
1839
return Object.assign(options, {
40+
apiKey: options.apiKey ?? "default-api-key",
41+
customParam: options.customParam ?? "default-custom-value",
1942
defaultSigningName: "",
43+
clientContextParams: Object.assign(clientContextParamDefaults, options.clientContextParams),
2044
});
2145
};
2246

2347
export const commonParams = {
48+
apiKey: { type: "clientContextParams", name: "apiKey" },
49+
customParam: { type: "clientContextParams", name: "customParam" },
2450
endpoint: { type: "builtInParams", name: "endpoint" },
2551
} as const;
2652

2753
export interface EndpointParameters extends __EndpointParameters {
28-
endpoint?: string | undefined;
54+
endpoint: string;
55+
apiKey?: string | undefined;
56+
customParam?: string | undefined;
2957
}

private/my-local-model-schema/src/endpoint/ruleset.ts

Lines changed: 19 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -5,34 +5,33 @@ export const ruleSet: RuleSetObject = {
55
version: "1.0",
66
parameters: {
77
endpoint: {
8-
type: "string",
98
builtIn: "SDK::Endpoint",
10-
documentation: "Endpoint used for making requests. Should be formatted as a URI.",
9+
required: true,
10+
documentation: "The endpoint used to send the request.",
11+
type: "String",
12+
},
13+
apiKey: {
14+
type: "String",
15+
required: true,
16+
default: "default-api-key",
17+
documentation: "API key for service authentication",
18+
},
19+
customParam: {
20+
type: "String",
21+
required: true,
22+
default: "default-custom-value",
23+
documentation: "Custom parameter for testing",
1124
},
1225
},
1326
rules: [
1427
{
15-
conditions: [
16-
{
17-
fn: "isSet",
18-
argv: [
19-
{
20-
ref: "endpoint",
21-
},
22-
],
23-
},
24-
],
28+
conditions: [],
2529
endpoint: {
26-
url: {
27-
ref: "endpoint",
28-
},
30+
url: "{endpoint}",
31+
properties: {},
32+
headers: {},
2933
},
3034
type: "endpoint",
3135
},
32-
{
33-
conditions: [],
34-
error: "(default endpointRuleSet) endpoint is not set - you must configure an endpoint.",
35-
type: "error",
36-
},
3736
],
3837
};

private/my-local-model/src/XYZServiceClient.ts

Lines changed: 4 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -12,11 +12,8 @@ import {
1212
import { getContentLengthPlugin } from "@smithy/middleware-content-length";
1313
import {
1414
type EndpointInputConfig,
15-
type EndpointRequiredInputConfig,
16-
type EndpointRequiredResolvedConfig,
1715
type EndpointResolvedConfig,
1816
resolveEndpointConfig,
19-
resolveEndpointRequiredConfig,
2017
} from "@smithy/middleware-endpoint";
2118
import {
2219
type RetryInputConfig,
@@ -185,7 +182,6 @@ export type XYZServiceClientConfigType = Partial<__SmithyConfiguration<__HttpHan
185182
ClientDefaults &
186183
RetryInputConfig &
187184
EndpointInputConfig<EndpointParameters> &
188-
EndpointRequiredInputConfig &
189185
EventStreamSerdeInputConfig &
190186
HttpAuthSchemeInputConfig &
191187
ClientInputEndpointParameters;
@@ -204,7 +200,6 @@ export type XYZServiceClientResolvedConfigType = __SmithyResolvedConfiguration<_
204200
RuntimeExtensionsConfig &
205201
RetryResolvedConfig &
206202
EndpointResolvedConfig<EndpointParameters> &
207-
EndpointRequiredResolvedConfig &
208203
EventStreamSerdeResolvedConfig &
209204
HttpAuthSchemeResolvedConfig &
210205
ClientResolvedEndpointParameters;
@@ -237,11 +232,10 @@ export class XYZServiceClient extends __Client<
237232
let _config_1 = resolveClientEndpointParameters(_config_0);
238233
let _config_2 = resolveRetryConfig(_config_1);
239234
let _config_3 = resolveEndpointConfig(_config_2);
240-
let _config_4 = resolveEndpointRequiredConfig(_config_3);
241-
let _config_5 = resolveEventStreamSerdeConfig(_config_4);
242-
let _config_6 = resolveHttpAuthSchemeConfig(_config_5);
243-
let _config_7 = resolveRuntimeExtensions(_config_6, configuration?.extensions || []);
244-
this.config = _config_7;
235+
let _config_4 = resolveEventStreamSerdeConfig(_config_3);
236+
let _config_5 = resolveHttpAuthSchemeConfig(_config_4);
237+
let _config_6 = resolveRuntimeExtensions(_config_5, configuration?.extensions || []);
238+
this.config = _config_6;
245239
this.middlewareStack.use(getRetryPlugin(this.config));
246240
this.middlewareStack.use(getContentLengthPlugin(this.config));
247241
this.middlewareStack.use(
Lines changed: 31 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,29 +1,57 @@
11
// smithy-typescript generated code
2-
import { type Endpoint, type EndpointV2, EndpointParameters as __EndpointParameters, Provider } from "@smithy/types";
2+
import type { Endpoint, EndpointParameters as __EndpointParameters, EndpointV2, Provider } from "@smithy/types";
33

44
/**
55
* @public
66
*/
77
export interface ClientInputEndpointParameters {
8+
clientContextParams?: {
9+
apiKey?: string | undefined | Provider<string | undefined>;
10+
customParam?: string | undefined | Provider<string | undefined>;
11+
};
812
endpoint?: string | Provider<string> | Endpoint | Provider<Endpoint> | EndpointV2 | Provider<EndpointV2>;
13+
apiKey?: string | undefined | Provider<string | undefined>;
14+
customParam?: string | undefined | Provider<string | undefined>;
915
}
1016

11-
export type ClientResolvedEndpointParameters = Omit<ClientInputEndpointParameters, "endpoint"> & {
17+
export type ClientResolvedEndpointParameters = Omit<
18+
ClientInputEndpointParameters,
19+
"endpoint" | "clientContextParams"
20+
> & {
1221
defaultSigningName: string;
22+
clientContextParams: {
23+
apiKey?: string | undefined | Provider<string | undefined>;
24+
customParam?: string | undefined | Provider<string | undefined>;
25+
};
1326
};
1427

28+
/**
29+
* @internal
30+
*/
31+
const clientContextParamDefaults = {
32+
apiKey: "default-api-key",
33+
customParam: "default-custom-value",
34+
} as const;
35+
1536
export const resolveClientEndpointParameters = <T>(
1637
options: T & ClientInputEndpointParameters
1738
): T & ClientResolvedEndpointParameters => {
1839
return Object.assign(options, {
40+
apiKey: options.apiKey ?? "default-api-key",
41+
customParam: options.customParam ?? "default-custom-value",
1942
defaultSigningName: "",
43+
clientContextParams: Object.assign(clientContextParamDefaults, options.clientContextParams),
2044
});
2145
};
2246

2347
export const commonParams = {
48+
apiKey: { type: "clientContextParams", name: "apiKey" },
49+
customParam: { type: "clientContextParams", name: "customParam" },
2450
endpoint: { type: "builtInParams", name: "endpoint" },
2551
} as const;
2652

2753
export interface EndpointParameters extends __EndpointParameters {
28-
endpoint?: string | undefined;
54+
endpoint: string;
55+
apiKey?: string | undefined;
56+
customParam?: string | undefined;
2957
}

private/my-local-model/src/endpoint/ruleset.ts

Lines changed: 19 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -5,34 +5,33 @@ export const ruleSet: RuleSetObject = {
55
version: "1.0",
66
parameters: {
77
endpoint: {
8-
type: "string",
98
builtIn: "SDK::Endpoint",
10-
documentation: "Endpoint used for making requests. Should be formatted as a URI.",
9+
required: true,
10+
documentation: "The endpoint used to send the request.",
11+
type: "String",
12+
},
13+
apiKey: {
14+
type: "String",
15+
required: true,
16+
default: "default-api-key",
17+
documentation: "API key for service authentication",
18+
},
19+
customParam: {
20+
type: "String",
21+
required: true,
22+
default: "default-custom-value",
23+
documentation: "Custom parameter for testing",
1124
},
1225
},
1326
rules: [
1427
{
15-
conditions: [
16-
{
17-
fn: "isSet",
18-
argv: [
19-
{
20-
ref: "endpoint",
21-
},
22-
],
23-
},
24-
],
28+
conditions: [],
2529
endpoint: {
26-
url: {
27-
ref: "endpoint",
28-
},
30+
url: "{endpoint}",
31+
properties: {},
32+
headers: {},
2933
},
3034
type: "endpoint",
3135
},
32-
{
33-
conditions: [],
34-
error: "(default endpointRuleSet) endpoint is not set - you must configure an endpoint.",
35-
type: "error",
36-
},
3736
],
3837
};

private/smithy-rpcv2-cbor-schema/src/endpoint/EndpointParameters.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
// smithy-typescript generated code
2-
import { type Endpoint, type EndpointV2, EndpointParameters as __EndpointParameters, Provider } from "@smithy/types";
2+
import type { Endpoint, EndpointParameters as __EndpointParameters, EndpointV2, Provider } from "@smithy/types";
33

44
/**
55
* @public

private/smithy-rpcv2-cbor/src/endpoint/EndpointParameters.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
// smithy-typescript generated code
2-
import { type Endpoint, type EndpointV2, EndpointParameters as __EndpointParameters, Provider } from "@smithy/types";
2+
import type { Endpoint, EndpointParameters as __EndpointParameters, EndpointV2, Provider } from "@smithy/types";
33

44
/**
55
* @public

0 commit comments

Comments
 (0)