import { Bytes } from "@zwave-js/shared";
import * as v from "@zwave-js/core/validation";
export function validateArgs_UserCredentialCCAPI_setUser() {
    return (__decoratedMethod, { kind }) => {
        if (kind === "method") {
            return function setUser(options) {
                v.assert(v.oneOf({ kind: "parameter", name: "options" }, "UserCredentialCCUserSetOptions", v.allOf({ kind: "parameter", name: "options" }, undefined, v.object({ kind: "parameter", name: "options" }, '<anonymous object>', { "userId": v.primitive({ kind: "property", name: "userId" }, "number") }), v.object({ kind: "parameter", name: "options" }, '<anonymous object>', { "operationType": v.oneOf({ kind: "property", name: "operationType" }, undefined, v.literal({ kind: "property", name: "operationType" }, 0), v.literal({ kind: "property", name: "operationType" }, 1)), "active": v.optional({ kind: "property", name: "active" }, v.primitive({ kind: "property", name: "active" }, "boolean")), "credentialRule": v.optional({ kind: "property", name: "credentialRule" }, v.oneOf({ kind: "property", name: "credentialRule" }, undefined, v.literal({ kind: "property", name: "credentialRule" }, 1), v.literal({ kind: "property", name: "credentialRule" }, 2), v.literal({ kind: "property", name: "credentialRule" }, 3))), "nameEncoding": v.optional({ kind: "property", name: "nameEncoding" }, v.oneOf({ kind: "property", name: "nameEncoding" }, undefined, v.literal({ kind: "property", name: "nameEncoding" }, 0), v.literal({ kind: "property", name: "nameEncoding" }, 1), v.literal({ kind: "property", name: "nameEncoding" }, 2))), "userName": v.optional({ kind: "property", name: "userName" }, v.primitive({ kind: "property", name: "userName" }, "string")) }), v.object({ kind: "parameter", name: "options" }, '<anonymous object>', { "userType": v.literal({ kind: "property", name: "userType" }, 7), "expiringTimeoutMinutes": v.primitive({ kind: "property", name: "expiringTimeoutMinutes" }, "number") })), v.allOf({ kind: "parameter", name: "options" }, undefined, v.object({ kind: "parameter", name: "options" }, '<anonymous object>', { "userId": v.primitive({ kind: "property", name: "userId" }, "number") }), v.object({ kind: "parameter", name: "options" }, '<anonymous object>', { "operationType": v.oneOf({ kind: "property", name: "operationType" }, undefined, v.literal({ kind: "property", name: "operationType" }, 0), v.literal({ kind: "property", name: "operationType" }, 1)), "active": v.optional({ kind: "property", name: "active" }, v.primitive({ kind: "property", name: "active" }, "boolean")), "credentialRule": v.optional({ kind: "property", name: "credentialRule" }, v.oneOf({ kind: "property", name: "credentialRule" }, undefined, v.literal({ kind: "property", name: "credentialRule" }, 1), v.literal({ kind: "property", name: "credentialRule" }, 2), v.literal({ kind: "property", name: "credentialRule" }, 3))), "nameEncoding": v.optional({ kind: "property", name: "nameEncoding" }, v.oneOf({ kind: "property", name: "nameEncoding" }, undefined, v.literal({ kind: "property", name: "nameEncoding" }, 0), v.literal({ kind: "property", name: "nameEncoding" }, 1), v.literal({ kind: "property", name: "nameEncoding" }, 2))), "userName": v.optional({ kind: "property", name: "userName" }, v.primitive({ kind: "property", name: "userName" }, "string")) }), v.object({ kind: "parameter", name: "options" }, '<anonymous object>', { "userType": v.optional({ kind: "property", name: "userType" }, v.oneOf({ kind: "property", name: "userType" }, undefined, v.literal({ kind: "property", name: "userType" }, 0), v.literal({ kind: "property", name: "userType" }, 3), v.literal({ kind: "property", name: "userType" }, 4), v.literal({ kind: "property", name: "userType" }, 5), v.literal({ kind: "property", name: "userType" }, 6), v.literal({ kind: "property", name: "userType" }, 9))), "expiringTimeoutMinutes": v.undefined({ kind: "property", name: "expiringTimeoutMinutes" }) })), v.allOf({ kind: "parameter", name: "options" }, undefined, v.object({ kind: "parameter", name: "options" }, '<anonymous object>', { "userId": v.primitive({ kind: "property", name: "userId" }, "number") }), v.object({ kind: "parameter", name: "options" }, '<anonymous object>', { "operationType": v.literal({ kind: "property", name: "operationType" }, 2), "userType": v.undefined({ kind: "property", name: "userType" }), "active": v.undefined({ kind: "property", name: "active" }), "credentialRule": v.undefined({ kind: "property", name: "credentialRule" }), "expiringTimeoutMinutes": v.undefined({ kind: "property", name: "expiringTimeoutMinutes" }), "nameEncoding": v.undefined({ kind: "property", name: "nameEncoding" }), "userName": v.undefined({ kind: "property", name: "userName" }) })))(options));
                return __decoratedMethod.call(this, options);
            };
        }
    };
}
export function validateArgs_UserCredentialCCAPI_getUser() {
    return (__decoratedMethod, { kind }) => {
        if (kind === "method") {
            return function getUser(userId) {
                v.assert(v.primitive({ kind: "parameter", name: "userId" }, "number")(userId));
                return __decoratedMethod.call(this, userId);
            };
        }
    };
}
export function validateArgs_UserCredentialCCAPI_setCredential() {
    return (__decoratedMethod, { kind }) => {
        if (kind === "method") {
            return function setCredential(options) {
                v.assert(v.oneOf({ kind: "parameter", name: "options" }, "UserCredentialCCCredentialSetOptions", v.allOf({ kind: "parameter", name: "options" }, undefined, v.object({ kind: "parameter", name: "options" }, '<anonymous object>', { "userId": v.primitive({ kind: "property", name: "userId" }, "number"), "credentialType": v.enum({ kind: "property", name: "credentialType" }, "UserCredentialType"), "credentialSlot": v.primitive({ kind: "property", name: "credentialSlot" }, "number") }), v.object({ kind: "parameter", name: "options" }, '<anonymous object>', { "operationType": v.oneOf({ kind: "property", name: "operationType" }, undefined, v.literal({ kind: "property", name: "operationType" }, 0), v.literal({ kind: "property", name: "operationType" }, 1)), "credentialData": v.class({ kind: "property", name: "credentialData" }, "Bytes", Bytes) })), v.allOf({ kind: "parameter", name: "options" }, undefined, v.object({ kind: "parameter", name: "options" }, '<anonymous object>', { "userId": v.primitive({ kind: "property", name: "userId" }, "number"), "credentialType": v.enum({ kind: "property", name: "credentialType" }, "UserCredentialType"), "credentialSlot": v.primitive({ kind: "property", name: "credentialSlot" }, "number") }), v.object({ kind: "parameter", name: "options" }, '<anonymous object>', { "operationType": v.literal({ kind: "property", name: "operationType" }, 2), "credentialData": v.undefined({ kind: "property", name: "credentialData" }) })))(options));
                return __decoratedMethod.call(this, options);
            };
        }
    };
}
export function validateArgs_UserCredentialCCAPI_getCredential() {
    return (__decoratedMethod, { kind }) => {
        if (kind === "method") {
            return function getCredential(userId, credentialType, credentialSlot) {
                v.assert(v.primitive({ kind: "parameter", name: "userId" }, "number")(userId), v.enum({ kind: "parameter", name: "credentialType" }, "UserCredentialType")(credentialType), v.primitive({ kind: "parameter", name: "credentialSlot" }, "number")(credentialSlot));
                return __decoratedMethod.call(this, userId, credentialType, credentialSlot);
            };
        }
    };
}
export function validateArgs_UserCredentialCCAPI_startCredentialLearn() {
    return (__decoratedMethod, { kind }) => {
        if (kind === "method") {
            return function startCredentialLearn(options) {
                v.assert(v.object({ kind: "parameter", name: "options" }, 'UserCredentialCCCredentialLearnStartOptions', { "userId": v.primitive({ kind: "property", name: "userId" }, "number"), "credentialType": v.enum({ kind: "property", name: "credentialType" }, "UserCredentialType"), "credentialSlot": v.primitive({ kind: "property", name: "credentialSlot" }, "number"), "operationType": v.enum({ kind: "property", name: "operationType" }, "UserCredentialOperationType"), "learnTimeout": v.primitive({ kind: "property", name: "learnTimeout" }, "number") })(options));
                return __decoratedMethod.call(this, options);
            };
        }
    };
}
export function validateArgs_UserCredentialCCAPI_setUserCredentialAssociation() {
    return (__decoratedMethod, { kind }) => {
        if (kind === "method") {
            return function setUserCredentialAssociation(options) {
                v.assert(v.object({ kind: "parameter", name: "options" }, 'UserCredentialCCAssociationSetOptions', { "credentialType": v.enum({ kind: "property", name: "credentialType" }, "UserCredentialType"), "credentialSlot": v.primitive({ kind: "property", name: "credentialSlot" }, "number"), "destinationUserId": v.primitive({ kind: "property", name: "destinationUserId" }, "number") })(options));
                return __decoratedMethod.call(this, options);
            };
        }
    };
}
export function validateArgs_UserCredentialCCAPI_getUserChecksum() {
    return (__decoratedMethod, { kind }) => {
        if (kind === "method") {
            return function getUserChecksum(userId) {
                v.assert(v.primitive({ kind: "parameter", name: "userId" }, "number")(userId));
                return __decoratedMethod.call(this, userId);
            };
        }
    };
}
export function validateArgs_UserCredentialCCAPI_getCredentialChecksum() {
    return (__decoratedMethod, { kind }) => {
        if (kind === "method") {
            return function getCredentialChecksum(credentialType) {
                v.assert(v.enum({ kind: "parameter", name: "credentialType" }, "UserCredentialType")(credentialType));
                return __decoratedMethod.call(this, credentialType);
            };
        }
    };
}
export function validateArgs_UserCredentialCCAPI_setAdminPinCode() {
    return (__decoratedMethod, { kind }) => {
        if (kind === "method") {
            return function setAdminPinCode(options) {
                v.assert(v.object({ kind: "parameter", name: "options" }, 'UserCredentialCCAdminPinCodeSetOptions', { "pinCode": v.primitive({ kind: "property", name: "pinCode" }, "string") })(options));
                return __decoratedMethod.call(this, options);
            };
        }
    };
}
export function validateArgs_UserCredentialCCAPI_setKeyLockerEntry() {
    return (__decoratedMethod, { kind }) => {
        if (kind === "method") {
            return function setKeyLockerEntry(options) {
                v.assert(v.oneOf({ kind: "parameter", name: "options" }, "UserCredentialCCKeyLockerEntrySetOptions", v.allOf({ kind: "parameter", name: "options" }, undefined, v.object({ kind: "parameter", name: "options" }, '<anonymous object>', { "entryType": v.literal({ kind: "property", name: "entryType" }, 1), "entrySlot": v.primitive({ kind: "property", name: "entrySlot" }, "number") }), v.object({ kind: "parameter", name: "options" }, '<anonymous object>', { "operationType": v.oneOf({ kind: "property", name: "operationType" }, undefined, v.literal({ kind: "property", name: "operationType" }, 0), v.literal({ kind: "property", name: "operationType" }, 1)), "entryData": v.class({ kind: "property", name: "entryData" }, "Bytes", Bytes) })), v.allOf({ kind: "parameter", name: "options" }, undefined, v.object({ kind: "parameter", name: "options" }, '<anonymous object>', { "entryType": v.literal({ kind: "property", name: "entryType" }, 1), "entrySlot": v.primitive({ kind: "property", name: "entrySlot" }, "number") }), v.object({ kind: "parameter", name: "options" }, '<anonymous object>', { "operationType": v.literal({ kind: "property", name: "operationType" }, 2), "entryData": v.undefined({ kind: "property", name: "entryData" }) })))(options));
                return __decoratedMethod.call(this, options);
            };
        }
    };
}
export function validateArgs_UserCredentialCCAPI_getKeyLockerEntry() {
    return (__decoratedMethod, { kind }) => {
        if (kind === "method") {
            return function getKeyLockerEntry(entryType, entrySlot) {
                v.assert(v.literal({ kind: "parameter", name: "entryType" }, 1)(entryType), v.primitive({ kind: "parameter", name: "entrySlot" }, "number")(entrySlot));
                return __decoratedMethod.call(this, entryType, entrySlot);
            };
        }
    };
}
export function validateArgs_UserCredentialCCAPI_sendUserCapabilitiesReport() {
    return (__decoratedMethod, { kind }) => {
        if (kind === "method") {
            return function sendUserCapabilitiesReport(options) {
                v.assert(v.object({ kind: "parameter", name: "options" }, 'UserCredentialCCUserCapabilitiesReportOptions', { "numberOfSupportedUsers": v.primitive({ kind: "property", name: "numberOfSupportedUsers" }, "number"), "supportedCredentialRules": v.array({ kind: "property", name: "supportedCredentialRules" }, 'UserCredentialRule', v.enum({ kind: "item", name: "supportedCredentialRules" }, "UserCredentialRule")), "maxUserNameLength": v.primitive({ kind: "property", name: "maxUserNameLength" }, "number"), "supportsUserSchedule": v.primitive({ kind: "property", name: "supportsUserSchedule" }, "boolean"), "supportsAllUsersChecksum": v.primitive({ kind: "property", name: "supportsAllUsersChecksum" }, "boolean"), "supportsUserChecksum": v.primitive({ kind: "property", name: "supportsUserChecksum" }, "boolean"), "supportedUserNameEncodings": v.array({ kind: "property", name: "supportedUserNameEncodings" }, 'UserCredentialNameEncoding', v.enum({ kind: "item", name: "supportedUserNameEncodings" }, "UserCredentialNameEncoding")), "supportedUserTypes": v.array({ kind: "property", name: "supportedUserTypes" }, 'UserCredentialUserType', v.enum({ kind: "item", name: "supportedUserTypes" }, "UserCredentialUserType")) })(options));
                return __decoratedMethod.call(this, options);
            };
        }
    };
}
export function validateArgs_UserCredentialCCAPI_sendCredentialCapabilitiesReport() {
    return (__decoratedMethod, { kind }) => {
        if (kind === "method") {
            return function sendCredentialCapabilitiesReport(options) {
                v.assert(v.object({ kind: "parameter", name: "options" }, 'UserCredentialCCCredentialCapabilitiesReportOptions', { "supportsCredentialChecksum": v.primitive({ kind: "property", name: "supportsCredentialChecksum" }, "boolean"), "supportsAdminCode": v.primitive({ kind: "property", name: "supportsAdminCode" }, "boolean"), "supportsAdminCodeDeactivation": v.primitive({ kind: "property", name: "supportsAdminCodeDeactivation" }, "boolean"), "credentialTypes": v.class({ kind: "property", name: "credentialTypes" }, "Map", Map) })(options));
                return __decoratedMethod.call(this, options);
            };
        }
    };
}
export function validateArgs_UserCredentialCCAPI_sendKeyLockerCapabilitiesReport() {
    return (__decoratedMethod, { kind }) => {
        if (kind === "method") {
            return function sendKeyLockerCapabilitiesReport(options) {
                v.assert(v.object({ kind: "parameter", name: "options" }, 'UserCredentialCCKeyLockerCapabilitiesReportOptions', { "keyLockerCapabilities": v.class({ kind: "property", name: "keyLockerCapabilities" }, "Map", Map) })(options));
                return __decoratedMethod.call(this, options);
            };
        }
    };
}
export function validateArgs_UserCredentialCCAPI_sendUserReport() {
    return (__decoratedMethod, { kind }) => {
        if (kind === "method") {
            return function sendUserReport(options) {
                v.assert(v.oneOf({ kind: "parameter", name: "options" }, "UserCredentialCCUserReportOptions", v.allOf({ kind: "parameter", name: "options" }, undefined, v.object({ kind: "parameter", name: "options" }, '<anonymous object>', { "modifierType": v.enum({ kind: "property", name: "modifierType" }, "UserCredentialModifierType"), "modifierNodeId": v.primitive({ kind: "property", name: "modifierNodeId" }, "number"), "userId": v.primitive({ kind: "property", name: "userId" }, "number"), "userType": v.enum({ kind: "property", name: "userType" }, "UserCredentialUserType"), "active": v.primitive({ kind: "property", name: "active" }, "boolean"), "credentialRule": v.enum({ kind: "property", name: "credentialRule" }, "UserCredentialRule"), "expiringTimeoutMinutes": v.primitive({ kind: "property", name: "expiringTimeoutMinutes" }, "number"), "nameEncoding": v.enum({ kind: "property", name: "nameEncoding" }, "UserCredentialNameEncoding"), "userName": v.primitive({ kind: "property", name: "userName" }, "string") }), v.object({ kind: "parameter", name: "options" }, '<anonymous object>', { "reportType": v.literal({ kind: "property", name: "reportType" }, 4), "nextUserId": v.primitive({ kind: "property", name: "nextUserId" }, "number") })), v.allOf({ kind: "parameter", name: "options" }, undefined, v.object({ kind: "parameter", name: "options" }, '<anonymous object>', { "modifierType": v.enum({ kind: "property", name: "modifierType" }, "UserCredentialModifierType"), "modifierNodeId": v.primitive({ kind: "property", name: "modifierNodeId" }, "number"), "userId": v.primitive({ kind: "property", name: "userId" }, "number"), "userType": v.enum({ kind: "property", name: "userType" }, "UserCredentialUserType"), "active": v.primitive({ kind: "property", name: "active" }, "boolean"), "credentialRule": v.enum({ kind: "property", name: "credentialRule" }, "UserCredentialRule"), "expiringTimeoutMinutes": v.primitive({ kind: "property", name: "expiringTimeoutMinutes" }, "number"), "nameEncoding": v.enum({ kind: "property", name: "nameEncoding" }, "UserCredentialNameEncoding"), "userName": v.primitive({ kind: "property", name: "userName" }, "string") }), v.object({ kind: "parameter", name: "options" }, '<anonymous object>', { "reportType": v.oneOf({ kind: "property", name: "reportType" }, undefined, v.literal({ kind: "property", name: "reportType" }, 0), v.literal({ kind: "property", name: "reportType" }, 1), v.literal({ kind: "property", name: "reportType" }, 2), v.literal({ kind: "property", name: "reportType" }, 3), v.literal({ kind: "property", name: "reportType" }, 5), v.literal({ kind: "property", name: "reportType" }, 6), v.literal({ kind: "property", name: "reportType" }, 7)), "nextUserId": v.undefined({ kind: "property", name: "nextUserId" }) })))(options));
                return __decoratedMethod.call(this, options);
            };
        }
    };
}
export function validateArgs_UserCredentialCCAPI_sendCredentialReport() {
    return (__decoratedMethod, { kind }) => {
        if (kind === "method") {
            return function sendCredentialReport(options) {
                v.assert(v.oneOf({ kind: "parameter", name: "options" }, "UserCredentialCCCredentialReportOptions", v.allOf({ kind: "parameter", name: "options" }, undefined, v.object({ kind: "parameter", name: "options" }, '<anonymous object>', { "userId": v.primitive({ kind: "property", name: "userId" }, "number"), "credentialType": v.enum({ kind: "property", name: "credentialType" }, "UserCredentialType"), "credentialSlot": v.primitive({ kind: "property", name: "credentialSlot" }, "number"), "modifierType": v.enum({ kind: "property", name: "modifierType" }, "UserCredentialModifierType"), "modifierNodeId": v.primitive({ kind: "property", name: "modifierNodeId" }, "number") }), v.object({ kind: "parameter", name: "options" }, '<anonymous object>', { "credentialReadBack": v.literal({ kind: "property", name: "credentialReadBack" }, true), "credentialData": v.class({ kind: "property", name: "credentialData" }, "Bytes", Bytes) }), v.object({ kind: "parameter", name: "options" }, '<anonymous object>', { "reportType": v.literal({ kind: "property", name: "reportType" }, 4), "nextCredentialType": v.enum({ kind: "property", name: "nextCredentialType" }, "UserCredentialType"), "nextCredentialSlot": v.primitive({ kind: "property", name: "nextCredentialSlot" }, "number") })), v.allOf({ kind: "parameter", name: "options" }, undefined, v.object({ kind: "parameter", name: "options" }, '<anonymous object>', { "userId": v.primitive({ kind: "property", name: "userId" }, "number"), "credentialType": v.enum({ kind: "property", name: "credentialType" }, "UserCredentialType"), "credentialSlot": v.primitive({ kind: "property", name: "credentialSlot" }, "number"), "modifierType": v.enum({ kind: "property", name: "modifierType" }, "UserCredentialModifierType"), "modifierNodeId": v.primitive({ kind: "property", name: "modifierNodeId" }, "number") }), v.object({ kind: "parameter", name: "options" }, '<anonymous object>', { "credentialReadBack": v.literal({ kind: "property", name: "credentialReadBack" }, true), "credentialData": v.class({ kind: "property", name: "credentialData" }, "Bytes", Bytes) }), v.object({ kind: "parameter", name: "options" }, '<anonymous object>', { "reportType": v.oneOf({ kind: "property", name: "reportType" }, undefined, v.literal({ kind: "property", name: "reportType" }, 0), v.literal({ kind: "property", name: "reportType" }, 1), v.literal({ kind: "property", name: "reportType" }, 2), v.literal({ kind: "property", name: "reportType" }, 3), v.literal({ kind: "property", name: "reportType" }, 5), v.literal({ kind: "property", name: "reportType" }, 6), v.literal({ kind: "property", name: "reportType" }, 7), v.literal({ kind: "property", name: "reportType" }, 8), v.literal({ kind: "property", name: "reportType" }, 9), v.literal({ kind: "property", name: "reportType" }, 10)), "nextCredentialType": v.undefined({ kind: "property", name: "nextCredentialType" }), "nextCredentialSlot": v.undefined({ kind: "property", name: "nextCredentialSlot" }) })), v.allOf({ kind: "parameter", name: "options" }, undefined, v.object({ kind: "parameter", name: "options" }, '<anonymous object>', { "userId": v.primitive({ kind: "property", name: "userId" }, "number"), "credentialType": v.enum({ kind: "property", name: "credentialType" }, "UserCredentialType"), "credentialSlot": v.primitive({ kind: "property", name: "credentialSlot" }, "number"), "modifierType": v.enum({ kind: "property", name: "modifierType" }, "UserCredentialModifierType"), "modifierNodeId": v.primitive({ kind: "property", name: "modifierNodeId" }, "number") }), v.object({ kind: "parameter", name: "options" }, '<anonymous object>', { "credentialReadBack": v.literal({ kind: "property", name: "credentialReadBack" }, false), "credentialData": v.undefined({ kind: "property", name: "credentialData" }) }), v.object({ kind: "parameter", name: "options" }, '<anonymous object>', { "reportType": v.literal({ kind: "property", name: "reportType" }, 4), "nextCredentialType": v.enum({ kind: "property", name: "nextCredentialType" }, "UserCredentialType"), "nextCredentialSlot": v.primitive({ kind: "property", name: "nextCredentialSlot" }, "number") })), v.allOf({ kind: "parameter", name: "options" }, undefined, v.object({ kind: "parameter", name: "options" }, '<anonymous object>', { "userId": v.primitive({ kind: "property", name: "userId" }, "number"), "credentialType": v.enum({ kind: "property", name: "credentialType" }, "UserCredentialType"), "credentialSlot": v.primitive({ kind: "property", name: "credentialSlot" }, "number"), "modifierType": v.enum({ kind: "property", name: "modifierType" }, "UserCredentialModifierType"), "modifierNodeId": v.primitive({ kind: "property", name: "modifierNodeId" }, "number") }), v.object({ kind: "parameter", name: "options" }, '<anonymous object>', { "credentialReadBack": v.literal({ kind: "property", name: "credentialReadBack" }, false), "credentialData": v.undefined({ kind: "property", name: "credentialData" }) }), v.object({ kind: "parameter", name: "options" }, '<anonymous object>', { "reportType": v.oneOf({ kind: "property", name: "reportType" }, undefined, v.literal({ kind: "property", name: "reportType" }, 0), v.literal({ kind: "property", name: "reportType" }, 1), v.literal({ kind: "property", name: "reportType" }, 2), v.literal({ kind: "property", name: "reportType" }, 3), v.literal({ kind: "property", name: "reportType" }, 5), v.literal({ kind: "property", name: "reportType" }, 6), v.literal({ kind: "property", name: "reportType" }, 7), v.literal({ kind: "property", name: "reportType" }, 8), v.literal({ kind: "property", name: "reportType" }, 9), v.literal({ kind: "property", name: "reportType" }, 10)), "nextCredentialType": v.undefined({ kind: "property", name: "nextCredentialType" }), "nextCredentialSlot": v.undefined({ kind: "property", name: "nextCredentialSlot" }) })))(options));
                return __decoratedMethod.call(this, options);
            };
        }
    };
}
export function validateArgs_UserCredentialCCAPI_sendCredentialLearnReport() {
    return (__decoratedMethod, { kind }) => {
        if (kind === "method") {
            return function sendCredentialLearnReport(options) {
                v.assert(v.object({ kind: "parameter", name: "options" }, 'UserCredentialCCCredentialLearnReportOptions', { "learnStatus": v.enum({ kind: "property", name: "learnStatus" }, "UserCredentialLearnStatus"), "userId": v.primitive({ kind: "property", name: "userId" }, "number"), "credentialType": v.enum({ kind: "property", name: "credentialType" }, "UserCredentialType"), "credentialSlot": v.primitive({ kind: "property", name: "credentialSlot" }, "number"), "stepsRemaining": v.primitive({ kind: "property", name: "stepsRemaining" }, "number") })(options));
                return __decoratedMethod.call(this, options);
            };
        }
    };
}
export function validateArgs_UserCredentialCCAPI_sendUserCredentialAssociationReport() {
    return (__decoratedMethod, { kind }) => {
        if (kind === "method") {
            return function sendUserCredentialAssociationReport(options) {
                v.assert(v.object({ kind: "parameter", name: "options" }, 'UserCredentialCCAssociationReportOptions', { "credentialType": v.enum({ kind: "property", name: "credentialType" }, "UserCredentialType"), "credentialSlot": v.primitive({ kind: "property", name: "credentialSlot" }, "number"), "destinationUserId": v.primitive({ kind: "property", name: "destinationUserId" }, "number"), "status": v.primitive({ kind: "property", name: "status" }, "number") })(options));
                return __decoratedMethod.call(this, options);
            };
        }
    };
}
export function validateArgs_UserCredentialCCAPI_sendAllUsersChecksumReport() {
    return (__decoratedMethod, { kind }) => {
        if (kind === "method") {
            return function sendAllUsersChecksumReport(options) {
                v.assert(v.object({ kind: "parameter", name: "options" }, 'UserCredentialCCAllUsersChecksumReportOptions', { "checksum": v.primitive({ kind: "property", name: "checksum" }, "number") })(options));
                return __decoratedMethod.call(this, options);
            };
        }
    };
}
export function validateArgs_UserCredentialCCAPI_sendUserChecksumReport() {
    return (__decoratedMethod, { kind }) => {
        if (kind === "method") {
            return function sendUserChecksumReport(options) {
                v.assert(v.object({ kind: "parameter", name: "options" }, 'UserCredentialCCUserChecksumReportOptions', { "userId": v.primitive({ kind: "property", name: "userId" }, "number"), "checksum": v.primitive({ kind: "property", name: "checksum" }, "number") })(options));
                return __decoratedMethod.call(this, options);
            };
        }
    };
}
export function validateArgs_UserCredentialCCAPI_sendCredentialChecksumReport() {
    return (__decoratedMethod, { kind }) => {
        if (kind === "method") {
            return function sendCredentialChecksumReport(options) {
                v.assert(v.object({ kind: "parameter", name: "options" }, 'UserCredentialCCCredentialChecksumReportOptions', { "credentialType": v.enum({ kind: "property", name: "credentialType" }, "UserCredentialType"), "checksum": v.primitive({ kind: "property", name: "checksum" }, "number") })(options));
                return __decoratedMethod.call(this, options);
            };
        }
    };
}
export function validateArgs_UserCredentialCCAPI_sendAdminPinCodeReport() {
    return (__decoratedMethod, { kind }) => {
        if (kind === "method") {
            return function sendAdminPinCodeReport(options) {
                v.assert(v.object({ kind: "parameter", name: "options" }, 'UserCredentialCCAdminPinCodeReportOptions', { "operationResult": v.enum({ kind: "property", name: "operationResult" }, "UserCredentialAdminCodeOperationResult"), "pinCode": v.primitive({ kind: "property", name: "pinCode" }, "string") })(options));
                return __decoratedMethod.call(this, options);
            };
        }
    };
}
export function validateArgs_UserCredentialCCAPI_sendKeyLockerEntryReport() {
    return (__decoratedMethod, { kind }) => {
        if (kind === "method") {
            return function sendKeyLockerEntryReport(options) {
                v.assert(v.object({ kind: "parameter", name: "options" }, 'UserCredentialCCKeyLockerEntryReportOptions', { "occupied": v.primitive({ kind: "property", name: "occupied" }, "boolean"), "entryType": v.literal({ kind: "property", name: "entryType" }, 1), "entrySlot": v.primitive({ kind: "property", name: "entrySlot" }, "number") })(options));
                return __decoratedMethod.call(this, options);
            };
        }
    };
}
//# sourceMappingURL=UserCredentialCC._validateArgs.js.map