/* * 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 { return new Array( `$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 { return new Array( { 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 { return new Array( `$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 { return new Array( { topic: `$aws/certificates/create/json/accepted`, deserializer: deserializeCreateKeysAndCertificateResponse, }, { topic: `$aws/certificates/create/json/rejected`, deserializer: deserializeV2ErrorResponse, }, ); } function buildRegisterThingSubscriptions(request: any) : Array { let typedRequest: model.RegisterThingRequest = request; return new Array( `$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 { let typedRequest: model.RegisterThingRequest = request; return new Array( { 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 { return new Map([ ["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 { return new Map([ ]); } 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 void> { return new Map 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; }