aws-iot-device-sdk-v2
Version:
NodeJS API for the AWS IoT service
260 lines (197 loc) • 9.64 kB
text/typescript
/*
* Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
* SPDX-License-Identifier: Apache-2.0.
*
* This file is generated
*/
import * as model from "./model";
import {fromUtf8, toUtf8} from "@aws-sdk/util-utf8-browser";
import * as model_validation_utils from "../mqtt_request_response_utils";
import * as mqtt_request_response_utils from "../mqtt_request_response_utils";
function normalizeCreateCertificateFromCsrRequest(value: model.CreateCertificateFromCsrRequest) : any {
let normalizedValue : any = {};
if (value.certificateSigningRequest) {
normalizedValue.certificateSigningRequest = value.certificateSigningRequest;
}
return normalizedValue;
}
function buildCreateCertificateFromCsrRequestPayload(request: any) : ArrayBuffer {
let value = normalizeCreateCertificateFromCsrRequest(request as model.CreateCertificateFromCsrRequest);
return fromUtf8(JSON.stringify(value));
}
function applyCorrelationTokenToCreateCertificateFromCsrRequest(request: any) : [any, string | undefined] {
return [request, undefined];
}
function normalizeCreateKeysAndCertificateRequest(value: model.CreateKeysAndCertificateRequest) : any {
let normalizedValue : any = {};
return normalizedValue;
}
function buildCreateKeysAndCertificateRequestPayload(request: any) : ArrayBuffer {
let value = normalizeCreateKeysAndCertificateRequest(request as model.CreateKeysAndCertificateRequest);
return fromUtf8(JSON.stringify(value));
}
function applyCorrelationTokenToCreateKeysAndCertificateRequest(request: any) : [any, string | undefined] {
return [request, undefined];
}
function normalizeRegisterThingRequest(value: model.RegisterThingRequest) : any {
let normalizedValue : any = {};
if (value.certificateOwnershipToken) {
normalizedValue.certificateOwnershipToken = value.certificateOwnershipToken;
}
if (value.parameters) {
normalizedValue.parameters = value.parameters;
}
return normalizedValue;
}
function buildRegisterThingRequestPayload(request: any) : ArrayBuffer {
let value = normalizeRegisterThingRequest(request as model.RegisterThingRequest);
return fromUtf8(JSON.stringify(value));
}
function applyCorrelationTokenToRegisterThingRequest(request: any) : [any, string | undefined] {
return [request, undefined];
}
function buildCreateCertificateFromCsrSubscriptions(request: any) : Array<string> {
return new Array<string>(
`$aws/certificates/create-from-csr/json/accepted`,
`$aws/certificates/create-from-csr/json/rejected`,
);
}
function buildCreateCertificateFromCsrPublishTopic(request: any) : string {
return `$aws/certificates/create-from-csr/json`;
}
function buildCreateCertificateFromCsrResponsePaths(request: any) : Array<mqtt_request_response_utils.RequestResponsePath> {
return new Array<mqtt_request_response_utils.RequestResponsePath>(
{
topic: `$aws/certificates/create-from-csr/json/accepted`,
deserializer: deserializeCreateCertificateFromCsrResponse,
},
{
topic: `$aws/certificates/create-from-csr/json/rejected`,
deserializer: deserializeV2ErrorResponse,
},
);
}
function buildCreateKeysAndCertificateSubscriptions(request: any) : Array<string> {
return new Array<string>(
`$aws/certificates/create/json/accepted`,
`$aws/certificates/create/json/rejected`,
);
}
function buildCreateKeysAndCertificatePublishTopic(request: any) : string {
return `$aws/certificates/create/json`;
}
function buildCreateKeysAndCertificateResponsePaths(request: any) : Array<mqtt_request_response_utils.RequestResponsePath> {
return new Array<mqtt_request_response_utils.RequestResponsePath>(
{
topic: `$aws/certificates/create/json/accepted`,
deserializer: deserializeCreateKeysAndCertificateResponse,
},
{
topic: `$aws/certificates/create/json/rejected`,
deserializer: deserializeV2ErrorResponse,
},
);
}
function buildRegisterThingSubscriptions(request: any) : Array<string> {
let typedRequest: model.RegisterThingRequest = request;
return new Array<string>(
`$aws/provisioning-templates/${typedRequest.templateName}/provision/json/accepted`,
`$aws/provisioning-templates/${typedRequest.templateName}/provision/json/rejected`,
);
}
function buildRegisterThingPublishTopic(request: any) : string {
let typedRequest: model.RegisterThingRequest = request;
return `$aws/provisioning-templates/${typedRequest.templateName}/provision/json`;
}
function buildRegisterThingResponsePaths(request: any) : Array<mqtt_request_response_utils.RequestResponsePath> {
let typedRequest: model.RegisterThingRequest = request;
return new Array<mqtt_request_response_utils.RequestResponsePath>(
{
topic: `$aws/provisioning-templates/${typedRequest.templateName}/provision/json/accepted`,
deserializer: deserializeRegisterThingResponse,
},
{
topic: `$aws/provisioning-templates/${typedRequest.templateName}/provision/json/rejected`,
deserializer: deserializeV2ErrorResponse,
},
);
}
function deserializeCreateCertificateFromCsrResponse(payload: ArrayBuffer) : any {
const payload_text = toUtf8(new Uint8Array(payload));
return JSON.parse(payload_text);
}
function deserializeCreateKeysAndCertificateResponse(payload: ArrayBuffer) : any {
const payload_text = toUtf8(new Uint8Array(payload));
return JSON.parse(payload_text);
}
function deserializeRegisterThingResponse(payload: ArrayBuffer) : any {
const payload_text = toUtf8(new Uint8Array(payload));
return JSON.parse(payload_text);
}
function deserializeV2ErrorResponse(payload: ArrayBuffer) : any {
const payload_text = toUtf8(new Uint8Array(payload));
return JSON.parse(payload_text);
}
function createRequestResponseOperationServiceModelMap() : Map<string, mqtt_request_response_utils.RequestResponseOperationModel> {
return new Map<string, mqtt_request_response_utils.RequestResponseOperationModel>([
["createCertificateFromCsr", {
inputShapeName: "CreateCertificateFromCsrRequest",
payloadTransformer: buildCreateCertificateFromCsrRequestPayload,
subscriptionGenerator: buildCreateCertificateFromCsrSubscriptions,
responsePathGenerator: buildCreateCertificateFromCsrResponsePaths,
publishTopicGenerator: buildCreateCertificateFromCsrPublishTopic,
correlationTokenApplicator: applyCorrelationTokenToCreateCertificateFromCsrRequest,
}],
["createKeysAndCertificate", {
inputShapeName: "CreateKeysAndCertificateRequest",
payloadTransformer: buildCreateKeysAndCertificateRequestPayload,
subscriptionGenerator: buildCreateKeysAndCertificateSubscriptions,
responsePathGenerator: buildCreateKeysAndCertificateResponsePaths,
publishTopicGenerator: buildCreateKeysAndCertificatePublishTopic,
correlationTokenApplicator: applyCorrelationTokenToCreateKeysAndCertificateRequest,
}],
["registerThing", {
inputShapeName: "RegisterThingRequest",
payloadTransformer: buildRegisterThingRequestPayload,
subscriptionGenerator: buildRegisterThingSubscriptions,
responsePathGenerator: buildRegisterThingResponsePaths,
publishTopicGenerator: buildRegisterThingPublishTopic,
correlationTokenApplicator: applyCorrelationTokenToRegisterThingRequest,
}],
]);
}
function createStreamingOperationServiceModelMap() : Map<string, mqtt_request_response_utils.StreamingOperationModel> {
return new Map<string, mqtt_request_response_utils.StreamingOperationModel>([
]);
}
function validateCreateCertificateFromCsrRequest(value: any) : void {
// @ts-ignore
let typedValue : model.CreateCertificateFromCsrRequest = value;
model_validation_utils.validateValueAsString(value.certificateSigningRequest, 'certificateSigningRequest');
}
function validateCreateKeysAndCertificateRequest(value: any) : void {
// @ts-ignore
let typedValue : model.CreateKeysAndCertificateRequest = value;
}
function validateRegisterThingRequest(value: any) : void {
// @ts-ignore
let typedValue : model.RegisterThingRequest = value;
model_validation_utils.validateValueAsTopicSegment(value.templateName, 'templateName');
model_validation_utils.validateValueAsString(value.certificateOwnershipToken, 'certificateOwnershipToken');
model_validation_utils.validateValueAsOptionalMap(value.parameters, model_validation_utils.validateValueAsString, model_validation_utils.validateValueAsString, 'parameters');
}
function createValidatorMap() : Map<string, (value: any) => void> {
return new Map<string, (value: any) => void>([
["CreateCertificateFromCsrRequest", validateCreateCertificateFromCsrRequest],
["CreateKeysAndCertificateRequest", validateCreateKeysAndCertificateRequest],
["RegisterThingRequest", validateRegisterThingRequest],
]);
}
export function makeServiceModel() : mqtt_request_response_utils.RequestResponseServiceModel {
let model : mqtt_request_response_utils.RequestResponseServiceModel = {
requestResponseOperations: createRequestResponseOperationServiceModelMap(),
streamingOperations: createStreamingOperationServiceModelMap(),
shapeValidators: createValidatorMap()
};
return model;
}