// This file is auto-generated by @hey-api/openapi-ts

export const AbpLoginResultSchema = {
    type: 'object',
    properties: {
        result: {
            '$ref': '#/components/schemas/LoginResultType'
        },
        description: {
            type: 'string',
            nullable: true,
            readOnly: true
        }
    },
    additionalProperties: false
} as const;

export const AccessTypeEnumSchema = {
    enum: [1, 2, 3, 5],
    type: 'integer',
    format: 'int32',
    '说明：': '设备直连=1,网关接入=2,南向云接入=3,5G定制网=5'
} as const;

export const ActionApiDescriptionModelSchema = {
    type: 'object',
    properties: {
        uniqueName: {
            type: 'string',
            nullable: true
        },
        name: {
            type: 'string',
            nullable: true
        },
        httpMethod: {
            type: 'string',
            nullable: true
        },
        url: {
            type: 'string',
            nullable: true
        },
        supportedVersions: {
            type: 'array',
            items: {
                type: 'string'
            },
            nullable: true
        },
        parametersOnMethod: {
            type: 'array',
            items: {
                '$ref': '#/components/schemas/MethodParameterApiDescriptionModel'
            },
            nullable: true
        },
        parameters: {
            type: 'array',
            items: {
                '$ref': '#/components/schemas/ParameterApiDescriptionModel'
            },
            nullable: true
        },
        returnValue: {
            '$ref': '#/components/schemas/ReturnValueApiDescriptionModel'
        },
        allowAnonymous: {
            type: 'boolean',
            nullable: true
        },
        implementFrom: {
            type: 'string',
            nullable: true
        }
    },
    additionalProperties: false
} as const;

export const AddOrUpdateConnectionStringInputSchema = {
    type: 'object',
    properties: {
        id: {
            type: 'string',
            description: 'id',
            format: 'uuid'
        },
        name: {
            type: 'string',
            description: '连接字符串名称',
            nullable: true
        },
        value: {
            type: 'string',
            description: '连接字符串地址',
            nullable: true
        }
    },
    additionalProperties: false
} as const;

export const AddRoleToOrganizationUnitInputSchema = {
    type: 'object',
    properties: {
        roleId: {
            type: 'array',
            items: {
                type: 'string',
                format: 'uuid'
            },
            nullable: true
        },
        organizationUnitId: {
            type: 'string',
            format: 'uuid'
        }
    },
    additionalProperties: false
} as const;

export const AddUserToOrganizationUnitInputSchema = {
    type: 'object',
    properties: {
        userId: {
            type: 'array',
            items: {
                type: 'string',
                format: 'uuid'
            },
            nullable: true
        },
        organizationUnitId: {
            type: 'string',
            format: 'uuid'
        }
    },
    additionalProperties: false
} as const;

export const AggregateRouteConfigSchema = {
    type: 'object',
    properties: {
        routeKey: {
            type: 'string',
            nullable: true
        },
        parameter: {
            type: 'string',
            nullable: true
        },
        jsonPath: {
            type: 'string',
            nullable: true
        }
    },
    additionalProperties: false
} as const;

export const ApplicationApiDescriptionModelSchema = {
    type: 'object',
    properties: {
        modules: {
            type: 'object',
            additionalProperties: {
                '$ref': '#/components/schemas/ModuleApiDescriptionModel'
            },
            nullable: true
        },
        types: {
            type: 'object',
            additionalProperties: {
                '$ref': '#/components/schemas/TypeApiDescriptionModel'
            },
            nullable: true
        }
    },
    additionalProperties: false
} as const;

export const ApplicationApiDescriptionModelRequestDtoSchema = {
    type: 'object',
    properties: {
        includeTypes: {
            type: 'boolean'
        }
    },
    additionalProperties: false
} as const;

export const ApplicationAuthConfigurationDtoSchema = {
    type: 'object',
    properties: {
        grantedPolicies: {
            type: 'object',
            additionalProperties: {
                type: 'boolean'
            },
            nullable: true
        }
    },
    additionalProperties: false
} as const;

export const ApplicationConfigurationDtoSchema = {
    type: 'object',
    properties: {
        localization: {
            '$ref': '#/components/schemas/ApplicationLocalizationConfigurationDto'
        },
        auth: {
            '$ref': '#/components/schemas/ApplicationAuthConfigurationDto'
        },
        setting: {
            '$ref': '#/components/schemas/ApplicationSettingConfigurationDto'
        },
        currentUser: {
            '$ref': '#/components/schemas/CurrentUserDto'
        },
        features: {
            '$ref': '#/components/schemas/ApplicationFeatureConfigurationDto'
        },
        globalFeatures: {
            '$ref': '#/components/schemas/ApplicationGlobalFeatureConfigurationDto'
        },
        multiTenancy: {
            '$ref': '#/components/schemas/MultiTenancyInfoDto'
        },
        currentTenant: {
            '$ref': '#/components/schemas/CurrentTenantDto'
        },
        timing: {
            '$ref': '#/components/schemas/TimingDto'
        },
        clock: {
            '$ref': '#/components/schemas/ClockDto'
        },
        objectExtensions: {
            '$ref': '#/components/schemas/ObjectExtensionsDto'
        },
        extraProperties: {
            type: 'object',
            additionalProperties: {},
            nullable: true
        }
    },
    additionalProperties: false
} as const;

export const ApplicationConfigurationRequestOptionsSchema = {
    type: 'object',
    properties: {
        includeLocalizationResources: {
            type: 'boolean'
        }
    },
    additionalProperties: false
} as const;

export const ApplicationFeatureConfigurationDtoSchema = {
    type: 'object',
    properties: {
        values: {
            type: 'object',
            additionalProperties: {
                type: 'string',
                nullable: true
            },
            nullable: true
        }
    },
    additionalProperties: false
} as const;

export const ApplicationGlobalFeatureConfigurationDtoSchema = {
    type: 'object',
    properties: {
        enabledFeatures: {
            uniqueItems: true,
            type: 'array',
            items: {
                type: 'string'
            },
            nullable: true
        }
    },
    additionalProperties: false
} as const;

export const ApplicationLocalizationConfigurationDtoSchema = {
    type: 'object',
    properties: {
        values: {
            type: 'object',
            additionalProperties: {
                type: 'object',
                additionalProperties: {
                    type: 'string'
                }
            },
            nullable: true
        },
        resources: {
            type: 'object',
            additionalProperties: {
                '$ref': '#/components/schemas/ApplicationLocalizationResourceDto'
            },
            nullable: true
        },
        languages: {
            type: 'array',
            items: {
                '$ref': '#/components/schemas/LanguageInfo'
            },
            nullable: true
        },
        currentCulture: {
            '$ref': '#/components/schemas/CurrentCultureDto'
        },
        defaultResourceName: {
            type: 'string',
            nullable: true
        },
        languagesMap: {
            type: 'object',
            additionalProperties: {
                type: 'array',
                items: {
                    '$ref': '#/components/schemas/NameValue'
                }
            },
            nullable: true
        },
        languageFilesMap: {
            type: 'object',
            additionalProperties: {
                type: 'array',
                items: {
                    '$ref': '#/components/schemas/NameValue'
                }
            },
            nullable: true
        }
    },
    additionalProperties: false
} as const;

export const ApplicationLocalizationDtoSchema = {
    type: 'object',
    properties: {
        resources: {
            type: 'object',
            additionalProperties: {
                '$ref': '#/components/schemas/ApplicationLocalizationResourceDto'
            },
            nullable: true
        },
        currentCulture: {
            '$ref': '#/components/schemas/CurrentCultureDto'
        }
    },
    additionalProperties: false
} as const;

export const ApplicationLocalizationRequestDtoSchema = {
    required: ['cultureName'],
    type: 'object',
    properties: {
        cultureName: {
            minLength: 1,
            type: 'string'
        },
        onlyDynamics: {
            type: 'boolean'
        }
    },
    additionalProperties: false
} as const;

export const ApplicationLocalizationResourceDtoSchema = {
    type: 'object',
    properties: {
        texts: {
            type: 'object',
            additionalProperties: {
                type: 'string'
            },
            nullable: true
        },
        baseResources: {
            type: 'array',
            items: {
                type: 'string'
            },
            nullable: true
        }
    },
    additionalProperties: false
} as const;

export const ApplicationOidcConfigurationDtoSchema = {
    type: 'object',
    properties: {
        enabled: {
            type: 'boolean',
            description: '是否启用'
        },
        oidcConfiguration: {
            type: 'array',
            items: {
                '$ref': '#/components/schemas/OidcConfiguration'
            },
            nullable: true
        }
    },
    additionalProperties: false
} as const;

export const ApplicationSettingConfigurationDtoSchema = {
    type: 'object',
    properties: {
        values: {
            type: 'object',
            additionalProperties: {
                type: 'string',
                nullable: true
            },
            nullable: true
        }
    },
    additionalProperties: false
} as const;

export const AuthTypeEnumSchema = {
    enum: [1, 2, 3, 4, 6, 7, 8, 9],
    type: 'integer',
    format: 'int32',
    '说明：': '特征串认证=1,SM9认证=2,证书认证=3,IMEI认证=4,SM2认证=6,IPV6标识认证=7,HTTP基本认证=8,HTTP摘要认证=9'
} as const;

export const BatchCreateDeviceAggregationInputSchema = {
    required: ['addressList', 'ioTPlatform', 'ioTPlatformProductId'],
    type: 'object',
    properties: {
        addressList: {
            type: 'array',
            items: {
                type: 'string'
            },
            description: '表通信地址集合'
        },
        ioTPlatform: {
            '$ref': '#/components/schemas/IoTPlatformTypeEnum'
        },
        ioTPlatformProductId: {
            minLength: 1,
            type: 'string',
            description: '集中器在物联网平台中对应的产品Id'
        },
        deviceSourceTypeEnum: {
            '$ref': '#/components/schemas/DeviceSourceTypeEnum'
        }
    },
    additionalProperties: false,
    description: '批量创建设备信息'
} as const;

export const CTWingAccountInfoDtoSchema = {
    type: 'object',
    properties: {
        id: {
            type: 'string',
            format: 'uuid'
        },
        creationTime: {
            type: 'string',
            format: 'date-time'
        },
        creatorId: {
            type: 'string',
            format: 'uuid',
            nullable: true
        },
        lastModificationTime: {
            type: 'string',
            format: 'date-time',
            nullable: true
        },
        lastModifierId: {
            type: 'string',
            format: 'uuid',
            nullable: true
        },
        isDeleted: {
            type: 'boolean'
        },
        deleterId: {
            type: 'string',
            format: 'uuid',
            nullable: true
        },
        deletionTime: {
            type: 'string',
            format: 'date-time',
            nullable: true
        },
        tenantId: {
            type: 'string',
            description: '租户Id',
            format: 'uuid',
            nullable: true
        },
        remark: {
            type: 'string',
            description: '备注',
            nullable: true
        },
        osaCreatorId: {
            type: 'integer',
            description: '旧系统授权创建者Id',
            format: 'int32',
            nullable: true
        },
        osaLastModifierId: {
            type: 'integer',
            description: '旧系统授权最后修改者Id',
            format: 'int32',
            nullable: true
        },
        osaDeleterId: {
            type: 'integer',
            description: '旧系统授权最后删除者Id',
            format: 'int32',
            nullable: true
        },
        extraProperties: {
            type: 'object',
            additionalProperties: {},
            description: '扩展属性,用于存储自定义字段,JSON格式',
            nullable: true
        },
        accountName: {
            type: 'string',
            description: '账号名称',
            nullable: true
        },
        accountId: {
            type: 'string',
            description: '账号ID',
            nullable: true
        },
        appId: {
            type: 'string',
            description: '应用 ID，最小单位，唯一标识，因为一个账号下可能存在多个应用',
            nullable: true
        },
        appKey: {
            type: 'string',
            description: '应用 AppKey',
            nullable: true
        },
        appSecret: {
            type: 'string',
            description: '应用 AppSecret',
            nullable: true
        },
        platformTenantId: {
            type: 'string',
            description: '平台租户ID',
            nullable: true
        },
        communicationAddress: {
            type: 'string',
            description: '通讯服务地址',
            nullable: true
        },
        phoneNumber: {
            type: 'string',
            description: '手机号码',
            nullable: true
        },
        productCount: {
            type: 'integer',
            description: '产品数量',
            format: 'int32'
        }
    },
    additionalProperties: false,
    description: 'CTWing账号信息'
} as const;

export const CTWingAccountInfoDtoPagedResultDtoSchema = {
    type: 'object',
    properties: {
        items: {
            type: 'array',
            items: {
                '$ref': '#/components/schemas/CTWingAccountInfoDto'
            },
            nullable: true
        },
        totalCount: {
            type: 'integer',
            format: 'int64'
        }
    },
    additionalProperties: false
} as const;

export const CTWingAccountInsertInputSchema = {
    required: ['accountId', 'appId', 'appKey', 'appSecret', 'communicationAddress', 'phoneNumber', 'platformTenantId'],
    type: 'object',
    properties: {
        accountName: {
            type: 'string',
            description: '账号名称',
            nullable: true
        },
        accountId: {
            minLength: 1,
            type: 'string',
            description: '账号ID'
        },
        appId: {
            minLength: 1,
            type: 'string',
            description: '应用 ID，最小单位，唯一标识，因为一个账号下可能存在多个应用'
        },
        appKey: {
            minLength: 1,
            type: 'string',
            description: '应用 AppKey'
        },
        appSecret: {
            minLength: 1,
            type: 'string',
            description: '应用 AppSecret'
        },
        platformTenantId: {
            minLength: 1,
            type: 'string',
            description: '平台租户ID'
        },
        communicationAddress: {
            minLength: 1,
            type: 'string',
            description: '通讯服务地址'
        },
        phoneNumber: {
            minLength: 1,
            type: 'string',
            description: '手机号码'
        }
    },
    additionalProperties: false,
    description: '添加账号'
} as const;

export const CTWingAccountListInputSchema = {
    type: 'object',
    properties: {
        pageIndex: {
            type: 'integer',
            description: '当前页面.默认从1开始',
            format: 'int32'
        },
        pageSize: {
            type: 'integer',
            description: '每页多少条.每页显示多少记录',
            format: 'int32'
        },
        skipCount: {
            type: 'integer',
            description: '跳过多少条',
            format: 'int32',
            readOnly: true
        },
        sorting: {
            type: 'string',
            description: `排序
<example>
 name desc
</example>`,
            nullable: true
        },
        phoneNumber: {
            type: 'string',
            description: '手机号码',
            nullable: true
        },
        ctWingAccountId: {
            type: 'string',
            description: '账号ID',
            nullable: true
        }
    },
    additionalProperties: false,
    description: '账号列表输入参数'
} as const;

export const CTWingAccountModifyInputSchema = {
    required: ['accountId', 'appId', 'appKey', 'appSecret', 'communicationAddress', 'phoneNumber', 'platformTenantId'],
    type: 'object',
    properties: {
        accountName: {
            type: 'string',
            description: '账号名称',
            nullable: true
        },
        accountId: {
            minLength: 1,
            type: 'string',
            description: '账号ID'
        },
        appId: {
            minLength: 1,
            type: 'string',
            description: '应用 ID，最小单位，唯一标识，因为一个账号下可能存在多个应用'
        },
        appKey: {
            minLength: 1,
            type: 'string',
            description: '应用 AppKey'
        },
        appSecret: {
            minLength: 1,
            type: 'string',
            description: '应用 AppSecret'
        },
        platformTenantId: {
            minLength: 1,
            type: 'string',
            description: '平台租户ID'
        },
        communicationAddress: {
            minLength: 1,
            type: 'string',
            description: '通讯服务地址'
        },
        phoneNumber: {
            minLength: 1,
            type: 'string',
            description: '手机号码'
        },
        id: {
            type: 'string',
            description: '数据ID',
            format: 'uuid'
        }
    },
    additionalProperties: false,
    description: '修改账号信息'
} as const;

export const CTWingPrivateProductInfoDtoSchema = {
    type: 'object',
    properties: {
        id: {
            type: 'string',
            format: 'uuid'
        },
        creationTime: {
            type: 'string',
            format: 'date-time'
        },
        creatorId: {
            type: 'string',
            format: 'uuid',
            nullable: true
        },
        lastModificationTime: {
            type: 'string',
            format: 'date-time',
            nullable: true
        },
        lastModifierId: {
            type: 'string',
            format: 'uuid',
            nullable: true
        },
        isDeleted: {
            type: 'boolean'
        },
        deleterId: {
            type: 'string',
            format: 'uuid',
            nullable: true
        },
        deletionTime: {
            type: 'string',
            format: 'date-time',
            nullable: true
        },
        tenantId: {
            type: 'string',
            description: '租户Id',
            format: 'uuid',
            nullable: true
        },
        remark: {
            type: 'string',
            description: '备注',
            nullable: true
        },
        osaCreatorId: {
            type: 'integer',
            description: '旧系统授权创建者Id',
            format: 'int32',
            nullable: true
        },
        osaLastModifierId: {
            type: 'integer',
            description: '旧系统授权最后修改者Id',
            format: 'int32',
            nullable: true
        },
        osaDeleterId: {
            type: 'integer',
            description: '旧系统授权最后删除者Id',
            format: 'int32',
            nullable: true
        },
        extraProperties: {
            type: 'object',
            additionalProperties: {},
            description: '扩展属性,用于存储自定义字段,JSON格式',
            nullable: true
        },
        ctWingAccountId: {
            type: 'string',
            description: '账号ID',
            nullable: true
        },
        accountPhoneNumber: {
            type: 'string',
            description: '账户手机号',
            nullable: true
        },
        ctWingAccountName: {
            type: 'string',
            description: '账号名称',
            nullable: true
        },
        communicationAddress: {
            type: 'string',
            description: '通讯服务地址',
            nullable: true
        },
        masterKey: {
            type: 'string',
            description: 'OpenAPI 通信主密钥',
            nullable: true
        },
        featureAccesskey: {
            type: 'string',
            description: '设备访问密钥',
            nullable: true
        },
        ioTPlatformProductId: {
            type: 'string',
            description: '产品ID',
            nullable: true
        },
        productName: {
            type: 'string',
            description: '产品名称',
            nullable: true
        },
        protocol: {
            type: 'string',
            description: '通讯协议',
            nullable: true
        },
        productDesc: {
            type: 'string',
            description: '必填，产品描述',
            nullable: true
        },
        productType: {
            type: 'string',
            description: '必填，一级分类名，返回结果中，此字段名数据类型为Int类型',
            nullable: true
        },
        secondaryType: {
            type: 'string',
            description: '必填，二级分类名，返回结果中，此字段名数据类型为Int类型',
            nullable: true
        },
        thirdType: {
            type: 'string',
            description: '必填，三级分类名，返回结果中，此字段名数据类型为Int类型',
            nullable: true
        },
        nodeType: {
            '$ref': '#/components/schemas/ProductNodeTypeEnum'
        },
        accessType: {
            '$ref': '#/components/schemas/AccessTypeEnum'
        },
        networkType: {
            '$ref': '#/components/schemas/NetworkTypeEnum'
        },
        productProtocol: {
            '$ref': '#/components/schemas/ProductProtocolEnum'
        },
        authType: {
            '$ref': '#/components/schemas/AuthTypeEnum'
        },
        dataEncryption: {
            '$ref': '#/components/schemas/DataEncryptionEnum'
        },
        tupIsThrough: {
            '$ref': '#/components/schemas/TupIsThroughEnum'
        },
        tupDeviceModel: {
            type: 'string',
            description: '必填，设备型号',
            nullable: true
        },
        deviceCount: {
            type: 'integer',
            description: '设备数量',
            format: 'int32'
        },
        deviceThingModelFileId: {
            type: 'string',
            description: '设备物模型文件Id',
            nullable: true
        },
        deviceThingModelFileName: {
            type: 'string',
            description: '设备物模型文件名称',
            nullable: true
        },
        isEnabled: {
            type: 'boolean',
            description: '是否启用'
        }
    },
    additionalProperties: false,
    description: 'CTWing私有产品信息'
} as const;

export const CTWingPrivateProductInfoDtoPagedResultDtoSchema = {
    type: 'object',
    properties: {
        items: {
            type: 'array',
            items: {
                '$ref': '#/components/schemas/CTWingPrivateProductInfoDto'
            },
            nullable: true
        },
        totalCount: {
            type: 'integer',
            format: 'int64'
        }
    },
    additionalProperties: false
} as const;

export const CTWingPrivateProductInfoInsertInputSchema = {
    type: 'object',
    properties: {
        ctWingAccountId: {
            type: 'string',
            description: '账号ID',
            nullable: true
        },
        productName: {
            type: 'string',
            description: '产品名称',
            nullable: true
        },
        productDesc: {
            type: 'string',
            description: '必填，产品描述',
            nullable: true
        },
        deviceThingModelFileId: {
            type: 'string',
            description: '设备物模型文件Id',
            nullable: true
        },
        deviceThingModelFileName: {
            type: 'string',
            description: '设备物模型文件名称',
            nullable: true
        },
        tupDeviceModel: {
            type: 'string',
            description: '必填，设备型号',
            nullable: true
        }
    },
    additionalProperties: false,
    description: '添加私有产品信息'
} as const;

export const CTWingPrivateProductInfoListInputSchema = {
    type: 'object',
    properties: {
        pageIndex: {
            type: 'integer',
            description: '当前页面.默认从1开始',
            format: 'int32'
        },
        pageSize: {
            type: 'integer',
            description: '每页多少条.每页显示多少记录',
            format: 'int32'
        },
        skipCount: {
            type: 'integer',
            description: '跳过多少条',
            format: 'int32',
            readOnly: true
        },
        sorting: {
            type: 'string',
            description: `排序
<example>
 name desc
</example>`,
            nullable: true
        },
        ctWingAccountId: {
            type: 'string',
            description: 'CTWing账户Id',
            nullable: true
        },
        productName: {
            type: 'string',
            description: '产品名称',
            nullable: true
        },
        model: {
            type: 'string',
            description: '产品型号',
            nullable: true
        }
    },
    additionalProperties: false
} as const;

export const CTWingPrivateProductInfoModifyInputSchema = {
    type: 'object',
    properties: {
        ctWingAccountId: {
            type: 'string',
            description: '账号ID',
            nullable: true
        },
        productName: {
            type: 'string',
            description: '产品名称',
            nullable: true
        },
        productDesc: {
            type: 'string',
            description: '必填，产品描述',
            nullable: true
        },
        deviceThingModelFileId: {
            type: 'string',
            description: '设备物模型文件Id',
            nullable: true
        },
        deviceThingModelFileName: {
            type: 'string',
            description: '设备物模型文件名称',
            nullable: true
        },
        tupDeviceModel: {
            type: 'string',
            description: '必填，设备型号',
            nullable: true
        },
        id: {
            type: 'string',
            description: '数据ID',
            format: 'uuid'
        }
    },
    additionalProperties: false,
    description: 'CTWing 产品修改'
} as const;

export const ChangePasswordInputSchema = {
    required: ['newPassword'],
    type: 'object',
    properties: {
        currentPassword: {
            maxLength: 128,
            minLength: 0,
            type: 'string',
            nullable: true
        },
        newPassword: {
            maxLength: 128,
            minLength: 0,
            type: 'string'
        }
    },
    additionalProperties: false
} as const;

export const ClockDtoSchema = {
    type: 'object',
    properties: {
        kind: {
            type: 'string',
            nullable: true
        }
    },
    additionalProperties: false
} as const;

export const ControllerApiDescriptionModelSchema = {
    type: 'object',
    properties: {
        controllerName: {
            type: 'string',
            nullable: true
        },
        controllerGroupName: {
            type: 'string',
            nullable: true
        },
        isRemoteService: {
            type: 'boolean'
        },
        isIntegrationService: {
            type: 'boolean'
        },
        apiVersion: {
            type: 'string',
            nullable: true
        },
        type: {
            type: 'string',
            nullable: true
        },
        interfaces: {
            type: 'array',
            items: {
                '$ref': '#/components/schemas/ControllerInterfaceApiDescriptionModel'
            },
            nullable: true
        },
        actions: {
            type: 'object',
            additionalProperties: {
                '$ref': '#/components/schemas/ActionApiDescriptionModel'
            },
            nullable: true
        }
    },
    additionalProperties: false
} as const;

export const ControllerInterfaceApiDescriptionModelSchema = {
    type: 'object',
    properties: {
        type: {
            type: 'string',
            nullable: true
        },
        name: {
            type: 'string',
            nullable: true
        },
        methods: {
            type: 'array',
            items: {
                '$ref': '#/components/schemas/InterfaceMethodApiDescriptionModel'
            },
            nullable: true
        }
    },
    additionalProperties: false
} as const;

export const CopyAnotherProductInputSchema = {
    type: 'object',
    properties: {
        ioTPlatform: {
            '$ref': '#/components/schemas/IoTPlatformTypeEnum'
        },
        ioTPlatformProductId: {
            type: 'string',
            description: '平台产品ID',
            nullable: true
        }
    },
    additionalProperties: false,
    description: '根据数据ID复制已存在物模型信息'
} as const;

export const CopyStandardThingModelInputSchema = {
    type: 'object',
    properties: {
        filedType: {
            type: 'string',
            description: '物联网平台中对应产品物模型属性或者事件类型 JiShe.ServicePro.Core.DataDictionaryTypeConst',
            nullable: true
        },
        ioTPlatform: {
            '$ref': '#/components/schemas/IoTPlatformTypeEnum'
        },
        ioTPlatformProductId: {
            type: 'string',
            description: '平台产品ID',
            nullable: true
        },
        dataDictionaries: {
            type: 'array',
            items: {
                '$ref': '#/components/schemas/DataDictionaryDetailInfoDto'
            },
            description: '标准物模型集合',
            nullable: true
        }
    },
    additionalProperties: false,
    description: '复制标准物模型'
} as const;

export const CreateDataDictinaryDetailInputSchema = {
    type: 'object',
    properties: {
        id: {
            type: 'string',
            format: 'uuid'
        },
        code: {
            type: 'string',
            nullable: true
        },
        displayText: {
            type: 'string',
            nullable: true
        },
        description: {
            type: 'string',
            nullable: true
        },
        order: {
            type: 'integer',
            format: 'int32'
        },
        extendedAttribute: {
            type: 'string',
            description: '扩展属性',
            nullable: true
        }
    },
    additionalProperties: false
} as const;

export const CreateDataDictinaryInputSchema = {
    type: 'object',
    properties: {
        code: {
            type: 'string',
            nullable: true
        },
        displayText: {
            type: 'string',
            nullable: true
        },
        description: {
            type: 'string',
            nullable: true
        }
    },
    additionalProperties: false
} as const;

export const CreateDeviceAggregationInputSchema = {
    required: ['deviceAddress', 'ioTPlatform', 'ioTPlatformProductId'],
    type: 'object',
    properties: {
        deviceAddress: {
            minLength: 1,
            type: 'string',
            description: '表通信地址'
        },
        ioTPlatform: {
            '$ref': '#/components/schemas/IoTPlatformTypeEnum'
        },
        ioTPlatformProductId: {
            minLength: 1,
            type: 'string',
            description: '设备在物联网平台中对应的产品Id'
        },
        deviceSourceTypeEnum: {
            '$ref': '#/components/schemas/DeviceSourceTypeEnum'
        }
    },
    additionalProperties: false,
    description: '设备聚合新增设备'
} as const;

export const CreateLanguageInputSchema = {
    type: 'object',
    properties: {
        cultureName: {
            type: 'string',
            description: '语言名称',
            nullable: true
        },
        uiCultureName: {
            type: 'string',
            description: 'Ui语言名称',
            nullable: true
        },
        displayName: {
            type: 'string',
            description: '显示名称',
            nullable: true
        },
        flagIcon: {
            type: 'string',
            description: '图标',
            nullable: true
        },
        isEnabled: {
            type: 'boolean',
            description: '是否启用'
        }
    },
    additionalProperties: false,
    description: '创建语言'
} as const;

export const CreateLanguageTextInputSchema = {
    type: 'object',
    properties: {
        resourceName: {
            type: 'string',
            description: '资源名称',
            nullable: true
        },
        cultureName: {
            type: 'string',
            description: '语言名称',
            nullable: true
        },
        name: {
            type: 'string',
            description: '名称',
            nullable: true
        },
        value: {
            type: 'string',
            description: '值',
            nullable: true
        }
    },
    additionalProperties: false,
    description: '创建语言文本'
} as const;

export const CreateMenuInputSchema = {
    required: ['hideInMenu', 'keepAlive', 'name', 'order', 'path', 'title'],
    type: 'object',
    properties: {
        parentId: {
            type: 'string',
            format: 'uuid',
            nullable: true
        },
        name: {
            minLength: 1,
            type: 'string',
            description: '唯一编码'
        },
        title: {
            minLength: 1,
            type: 'string',
            description: '标题'
        },
        displayTitle: {
            type: 'string',
            description: '标题',
            nullable: true
        },
        icon: {
            type: 'string',
            description: '图标',
            nullable: true
        },
        keepAlive: {
            type: 'boolean',
            description: '是否缓存'
        },
        hideInMenu: {
            type: 'boolean',
            description: '是否显示'
        },
        order: {
            type: 'integer',
            description: '排序',
            format: 'int32'
        },
        path: {
            minLength: 1,
            type: 'string',
            description: '路由地址'
        },
        menuType: {
            '$ref': '#/components/schemas/MenuType'
        },
        openType: {
            '$ref': '#/components/schemas/OpenType'
        },
        url: {
            type: 'string',
            description: '内外链地址',
            nullable: true
        },
        component: {
            type: 'string',
            description: '组件地址',
            nullable: true
        },
        enabled: {
            type: 'boolean',
            description: '是否启用'
        },
        policy: {
            type: 'string',
            description: '权限',
            nullable: true
        }
    },
    additionalProperties: false,
    description: '创建菜单'
} as const;

export const CreateOrganizationUnitInputSchema = {
    type: 'object',
    properties: {
        displayName: {
            type: 'string',
            nullable: true
        },
        parentId: {
            type: 'string',
            format: 'uuid',
            nullable: true
        }
    },
    additionalProperties: false
} as const;

export const CreateTextTemplateInputSchema = {
    required: ['code', 'content', 'cultureName', 'name'],
    type: 'object',
    properties: {
        name: {
            minLength: 1,
            type: 'string',
            description: '名称'
        },
        code: {
            minLength: 1,
            type: 'string',
            description: '编码'
        },
        content: {
            minLength: 1,
            type: 'string',
            description: '内容'
        },
        cultureName: {
            minLength: 1,
            type: 'string',
            description: '语言'
        }
    },
    additionalProperties: false,
    description: '创建模板'
} as const;

export const CreateThingModelInputSchema = {
    type: 'object',
    properties: {
        ioTPlatform: {
            '$ref': '#/components/schemas/IoTPlatformTypeEnum'
        },
        ioTPlatformProductId: {
            type: 'string',
            description: '物联网平台中对应的产品Id',
            nullable: true
        },
        filedType: {
            type: 'string',
            description: '物联网平台中对应产品物模型属性或者事件类型 JiShe.ServicePro.Core.DataDictionaryTypeConst',
            nullable: true
        },
        ioTPlatformRawFieldName: {
            type: 'string',
            description: '物联网平台中对应的产品物模型属性或者事件名称',
            nullable: true
        },
        standardFieldName: {
            type: 'string',
            description: '管理后台产品标准的物模型属性或者事件名称',
            nullable: true
        },
        standardFieldValueType: {
            type: 'string',
            description: '标准物模型字段值类型',
            nullable: true
        },
        standardFieldDisplayName: {
            type: 'string',
            description: '标准物模型字段显示名称',
            nullable: true
        },
        isValueNeedConvert: {
            type: 'boolean',
            description: '是否需要值类型转换'
        }
    },
    additionalProperties: false
} as const;

export const CurrentCultureDtoSchema = {
    type: 'object',
    properties: {
        displayName: {
            type: 'string',
            nullable: true
        },
        englishName: {
            type: 'string',
            nullable: true
        },
        threeLetterIsoLanguageName: {
            type: 'string',
            nullable: true
        },
        twoLetterIsoLanguageName: {
            type: 'string',
            nullable: true
        },
        isRightToLeft: {
            type: 'boolean'
        },
        cultureName: {
            type: 'string',
            nullable: true
        },
        name: {
            type: 'string',
            nullable: true
        },
        nativeName: {
            type: 'string',
            nullable: true
        },
        dateTimeFormat: {
            '$ref': '#/components/schemas/DateTimeFormatDto'
        }
    },
    additionalProperties: false
} as const;

export const CurrentTenantDtoSchema = {
    type: 'object',
    properties: {
        id: {
            type: 'string',
            format: 'uuid',
            nullable: true
        },
        name: {
            type: 'string',
            nullable: true
        },
        isAvailable: {
            type: 'boolean'
        }
    },
    additionalProperties: false
} as const;

export const CurrentUserDtoSchema = {
    type: 'object',
    properties: {
        isAuthenticated: {
            type: 'boolean'
        },
        id: {
            type: 'string',
            format: 'uuid',
            nullable: true
        },
        tenantId: {
            type: 'string',
            format: 'uuid',
            nullable: true
        },
        impersonatorUserId: {
            type: 'string',
            format: 'uuid',
            nullable: true
        },
        impersonatorTenantId: {
            type: 'string',
            format: 'uuid',
            nullable: true
        },
        impersonatorUserName: {
            type: 'string',
            nullable: true
        },
        impersonatorTenantName: {
            type: 'string',
            nullable: true
        },
        userName: {
            type: 'string',
            nullable: true
        },
        name: {
            type: 'string',
            nullable: true
        },
        surName: {
            type: 'string',
            nullable: true
        },
        email: {
            type: 'string',
            nullable: true
        },
        emailVerified: {
            type: 'boolean'
        },
        phoneNumber: {
            type: 'string',
            nullable: true
        },
        phoneNumberVerified: {
            type: 'boolean'
        },
        roles: {
            type: 'array',
            items: {
                type: 'string'
            },
            nullable: true
        },
        sessionId: {
            type: 'string',
            nullable: true
        }
    },
    additionalProperties: false
} as const;

export const DataDictionaryDetailInfoDtoSchema = {
    type: 'object',
    properties: {
        dataDictionaryId: {
            type: 'string',
            description: '所属字典Id',
            format: 'uuid'
        },
        dataDictionaryName: {
            type: 'string',
            description: '所属字典名称',
            nullable: true
        },
        dataDictionaryCode: {
            type: 'string',
            description: '字典编码',
            nullable: true
        },
        code: {
            type: 'string',
            description: '字典明细编码',
            nullable: true
        },
        order: {
            type: 'integer',
            description: '展现列表时排序用',
            format: 'int32'
        },
        displayText: {
            type: 'string',
            description: '显示名',
            nullable: true
        },
        description: {
            type: 'string',
            description: '描述',
            nullable: true
        },
        isEnabled: {
            type: 'boolean',
            description: '启/停用(默认启用)'
        },
        extendedAttribute: {
            type: 'string',
            description: '扩展属性',
            nullable: true
        }
    },
    additionalProperties: false,
    description: '数据字典详情信息'
} as const;

export const DataEncryptionEnumSchema = {
    enum: [1, 2, 3, 4, 5, 6],
    type: 'integer',
    description: '数据加密方式',
    format: 'int32',
    '说明：': 'sm1=1,sm2=2,sm4=3,dtls=4,明文（只支持MQTT/LWM2M）=5,量子加密=6'
} as const;

export const DateTimeFormatDtoSchema = {
    type: 'object',
    properties: {
        calendarAlgorithmType: {
            type: 'string',
            nullable: true
        },
        dateTimeFormatLong: {
            type: 'string',
            nullable: true
        },
        shortDatePattern: {
            type: 'string',
            nullable: true
        },
        fullDateTimePattern: {
            type: 'string',
            nullable: true
        },
        dateSeparator: {
            type: 'string',
            nullable: true
        },
        shortTimePattern: {
            type: 'string',
            nullable: true
        },
        longTimePattern: {
            type: 'string',
            nullable: true
        }
    },
    additionalProperties: false
} as const;

export const DeleteConnectionStringInputSchema = {
    type: 'object',
    properties: {
        name: {
            type: 'string',
            description: '连接字符串名称',
            nullable: true
        },
        tenantId: {
            type: 'string',
            description: '租户id',
            format: 'uuid'
        }
    },
    additionalProperties: false
} as const;

export const DeleteDataDictionaryDetailInputSchema = {
    type: 'object',
    properties: {
        dataDictionaryId: {
            type: 'string',
            format: 'uuid'
        },
        dataDictionayDetailId: {
            type: 'string',
            format: 'uuid'
        }
    },
    additionalProperties: false
} as const;

export const DeleteFeatureInputSchema = {
    type: 'object',
    properties: {
        providerName: {
            type: 'string',
            nullable: true
        },
        providerKey: {
            type: 'string',
            nullable: true
        }
    },
    additionalProperties: false
} as const;

export const DeleteFileObjectInputSchema = {
    type: 'object',
    properties: {
        id: {
            type: 'string',
            description: '文件Id',
            format: 'uuid'
        }
    },
    additionalProperties: false,
    description: '删除文件'
} as const;

export const DeleteLanguageInputSchema = {
    type: 'object',
    properties: {
        id: {
            type: 'string',
            description: '语言Id',
            format: 'uuid'
        }
    },
    additionalProperties: false,
    description: '删除语言'
} as const;

export const DeleteMenuInputSchema = {
    type: 'object',
    properties: {
        id: {
            type: 'string',
            description: '菜单Id',
            format: 'uuid'
        }
    },
    additionalProperties: false,
    description: '删除菜单'
} as const;

export const DeleteMessageInputSchema = {
    type: 'object',
    properties: {
        id: {
            type: 'string',
            format: 'uuid'
        },
        receiverUserId: {
            type: 'string',
            description: '接受者Id',
            format: 'uuid',
            nullable: true
        }
    },
    additionalProperties: false
} as const;

export const DeleteTextTemplateInputSchema = {
    type: 'object',
    properties: {
        id: {
            type: 'string',
            description: '模板Id',
            format: 'uuid'
        }
    },
    additionalProperties: false,
    description: '删除模板'
} as const;

export const DeviceCommandForApiInputSchema = {
    required: ['commandContent'],
    type: 'object',
    properties: {
        id: {
            type: 'string',
            format: 'uuid'
        },
        commandContent: {
            minLength: 1,
            type: 'string',
            description: '设备在物联网平台中发送的命令内容，JSON格式'
        },
        deviceType: {
            '$ref': '#/components/schemas/DeviceTypeEnum'
        },
        telemetryType: {
            '$ref': '#/components/schemas/DeviceTelemetryCommandTypeEnum'
        }
    },
    additionalProperties: false,
    description: '设备命令'
} as const;

export const DeviceManagementInfoDtoSchema = {
    type: 'object',
    properties: {
        id: {
            type: 'string',
            format: 'uuid'
        },
        creationTime: {
            type: 'string',
            format: 'date-time'
        },
        creatorId: {
            type: 'string',
            format: 'uuid',
            nullable: true
        },
        lastModificationTime: {
            type: 'string',
            format: 'date-time',
            nullable: true
        },
        lastModifierId: {
            type: 'string',
            format: 'uuid',
            nullable: true
        },
        isDeleted: {
            type: 'boolean'
        },
        deleterId: {
            type: 'string',
            format: 'uuid',
            nullable: true
        },
        deletionTime: {
            type: 'string',
            format: 'date-time',
            nullable: true
        },
        tenantId: {
            type: 'string',
            description: '租户Id',
            format: 'uuid',
            nullable: true
        },
        remark: {
            type: 'string',
            description: '备注',
            nullable: true
        },
        osaCreatorId: {
            type: 'integer',
            description: '旧系统授权创建者Id',
            format: 'int32',
            nullable: true
        },
        osaLastModifierId: {
            type: 'integer',
            description: '旧系统授权最后修改者Id',
            format: 'int32',
            nullable: true
        },
        osaDeleterId: {
            type: 'integer',
            description: '旧系统授权最后删除者Id',
            format: 'int32',
            nullable: true
        },
        extraProperties: {
            type: 'object',
            additionalProperties: {},
            description: '扩展属性,用于存储自定义字段,JSON格式',
            nullable: true
        },
        deviceName: {
            type: 'string',
            description: '设备名称',
            nullable: true
        },
        deviceAddress: {
            type: 'string',
            description: '设备地址',
            nullable: true
        },
        ioTPlatform: {
            '$ref': '#/components/schemas/IoTPlatformTypeEnum'
        },
        ioTPlatformName: {
            type: 'string',
            description: '物联网平台类型,默认没有指定',
            nullable: true,
            readOnly: true
        },
        ioTPlatformDeviceOpenInfo: {
            type: 'string',
            description: '物联网平台中对应的设备Id或者名称',
            nullable: true
        },
        platformPassword: {
            type: 'string',
            description: '物联网平台设备密码',
            nullable: true
        },
        ioTPlatformProductId: {
            type: 'string',
            description: '物联网平台中对应的产品Id',
            nullable: true
        },
        ioTPlatformProductName: {
            type: 'string',
            description: '物联网平台中对应的产品Name',
            nullable: true
        },
        ioTPlatformAccountId: {
            type: 'string',
            description: '物联网平台中对应的账号Id',
            nullable: true
        },
        accountPhoneNumber: {
            type: 'string',
            description: '账户手机号',
            nullable: true
        },
        ioTPlatformResponse: {
            type: 'string',
            description: '物联网平台返回的响应信息',
            nullable: true
        },
        isPlatformPushSuccess: {
            type: 'boolean',
            description: '物联网平台推送是否成功'
        },
        deviceOnlineStatus: {
            '$ref': '#/components/schemas/DeviceOnlineStatusEnum'
        },
        deviceOnlineStatusName: {
            type: 'string',
            description: '设备在线状态',
            nullable: true,
            readOnly: true
        },
        lastOnlineTime: {
            type: 'string',
            description: '最后在线时间',
            format: 'date-time',
            nullable: true
        },
        lastOfflineTime: {
            type: 'string',
            description: '最后离线时间',
            format: 'date-time',
            nullable: true
        },
        deviceSourceTypeEnum: {
            '$ref': '#/components/schemas/DeviceSourceTypeEnum'
        },
        deviceSourceTypeName: {
            type: 'string',
            description: '设备来源类型',
            nullable: true,
            readOnly: true
        }
    },
    additionalProperties: false
} as const;

export const DeviceManagementInfoDtoPagedResultDtoSchema = {
    type: 'object',
    properties: {
        items: {
            type: 'array',
            items: {
                '$ref': '#/components/schemas/DeviceManagementInfoDto'
            },
            nullable: true
        },
        totalCount: {
            type: 'integer',
            format: 'int64'
        }
    },
    additionalProperties: false
} as const;

export const DeviceOnlineStatusEnumSchema = {
    enum: [1, 2],
    type: 'integer',
    description: '设备在线状态',
    format: 'int32',
    '说明：': '在线=1,离线=2'
} as const;

export const DeviceSourceTypeEnumSchema = {
    enum: [1, 2, 3, 4, 5, 6],
    type: 'integer',
    description: '设备来源类型枚举',
    format: 'int32',
    '说明：': '管理后台=1,生产车间=2,CTWing推送=3,OneNET推送=4,预付费业务系统推送=5,能耗业务系统推送=6'
} as const;

export const DeviceTableModelDataInfoPageInputSchema = {
    type: 'object',
    properties: {
        pageIndex: {
            type: 'integer',
            description: '当前页面.默认从1开始',
            format: 'int32'
        },
        pageSize: {
            type: 'integer',
            description: '每页多少条.每页显示多少记录',
            format: 'int32'
        },
        skipCount: {
            type: 'integer',
            description: '跳过多少条',
            format: 'int32',
            readOnly: true
        },
        sorting: {
            type: 'string',
            description: `排序
<example>
 name desc
</example>`,
            nullable: true
        },
        ioTDataType: {
            type: 'string',
            description: '数据类型',
            nullable: true
        },
        deviceType: {
            '$ref': '#/components/schemas/DeviceTypeEnum'
        },
        deviceAddress: {
            type: 'string',
            description: '设备ID,数据生成者，例如集中器ID,电表ID、水表ID、流量计ID、传感器ID等',
            nullable: true
        },
        startCreationTime: {
            type: 'string',
            description: '开始创建时间',
            format: 'date-time',
            nullable: true
        },
        endCreationTime: {
            type: 'string',
            description: '结束创建时间',
            format: 'date-time',
            nullable: true
        },
        isNeedPaging: {
            type: 'boolean',
            description: '是否需要分页， 默认为true'
        }
    },
    additionalProperties: false,
    description: '设备数据表模型信息入参'
} as const;

export const DeviceTableModelDataInfoPageOutputSchema = {
    type: 'object',
    properties: {
        systemName: {
            type: 'string',
            description: '系统名称',
            nullable: true
        },
        ioTDataType: {
            type: 'string',
            description: '数据类型',
            nullable: true
        },
        deviceType: {
            type: 'string',
            description: '设备类型集中器、电表、水表、流量计、传感器等',
            nullable: true
        },
        deviceId: {
            type: 'string',
            description: '设备ID,数据生成者，例如集中器ID,电表ID、水表ID、流量计ID、传感器ID等',
            nullable: true
        },
        timestamps: {
            type: 'integer',
            description: '时标',
            format: 'int64'
        },
        devicePath: {
            type: 'string',
            description: '设备路径,树模型使用，表模型会在数据插入的时候直接获取继承类的名称作为表明',
            nullable: true
        },
        times: {
            type: 'string',
            description: '时标',
            format: 'date-time',
            readOnly: true
        }
    },
    additionalProperties: false,
    description: '设备数据表模型信息输出'
} as const;

export const DeviceTableModelDataInfoPageOutputPagedResultDtoSchema = {
    type: 'object',
    properties: {
        items: {
            type: 'array',
            items: {
                '$ref': '#/components/schemas/DeviceTableModelDataInfoPageOutput'
            },
            nullable: true
        },
        totalCount: {
            type: 'integer',
            format: 'int64'
        }
    },
    additionalProperties: false
} as const;

export const DeviceTelemetryCommandTypeEnumSchema = {
    enum: [1, 2],
    type: 'integer',
    description: '设备数据包命令类型枚举',
    format: 'int32',
    '说明：': '阀控=1,抄读=2'
} as const;

export const DeviceThingModelInfoDtoSchema = {
    type: 'object',
    properties: {
        id: {
            type: 'string',
            format: 'uuid'
        },
        creationTime: {
            type: 'string',
            format: 'date-time'
        },
        creatorId: {
            type: 'string',
            format: 'uuid',
            nullable: true
        },
        lastModificationTime: {
            type: 'string',
            format: 'date-time',
            nullable: true
        },
        lastModifierId: {
            type: 'string',
            format: 'uuid',
            nullable: true
        },
        isDeleted: {
            type: 'boolean'
        },
        deleterId: {
            type: 'string',
            format: 'uuid',
            nullable: true
        },
        deletionTime: {
            type: 'string',
            format: 'date-time',
            nullable: true
        },
        tenantId: {
            type: 'string',
            description: '租户Id',
            format: 'uuid',
            nullable: true
        },
        remark: {
            type: 'string',
            description: '备注',
            nullable: true
        },
        osaCreatorId: {
            type: 'integer',
            description: '旧系统授权创建者Id',
            format: 'int32',
            nullable: true
        },
        osaLastModifierId: {
            type: 'integer',
            description: '旧系统授权最后修改者Id',
            format: 'int32',
            nullable: true
        },
        osaDeleterId: {
            type: 'integer',
            description: '旧系统授权最后删除者Id',
            format: 'int32',
            nullable: true
        },
        extraProperties: {
            type: 'object',
            additionalProperties: {},
            description: '扩展属性,用于存储自定义字段,JSON格式',
            nullable: true
        },
        ioTPlatform: {
            '$ref': '#/components/schemas/IoTPlatformTypeEnum'
        },
        ioTPlatformProductId: {
            type: 'string',
            description: '物联网平台中对应的产品Id',
            nullable: true
        },
        filedType: {
            type: 'string',
            description: '物联网平台中对应产品物模型属性或者事件类型 JiShe.ServicePro.Core.DataDictionaryTypeConst',
            nullable: true
        },
        ioTPlatformRawFieldName: {
            type: 'string',
            description: '物联网平台中对应的产品物模型属性或者事件名称',
            nullable: true
        },
        standardFieldName: {
            type: 'string',
            description: '管理后台产品标准的物模型属性或者事件名称',
            nullable: true
        },
        standardFieldValueType: {
            type: 'string',
            description: '标准物模型字段值类型',
            nullable: true
        },
        standardFieldDisplayName: {
            type: 'string',
            description: '标准物模型字段显示名称',
            nullable: true
        },
        isValueNeedConvert: {
            type: 'boolean',
            description: '是否需要值类型转换'
        }
    },
    additionalProperties: false
} as const;

export const DeviceThingModelInfoDtoPagedResultDtoSchema = {
    type: 'object',
    properties: {
        items: {
            type: 'array',
            items: {
                '$ref': '#/components/schemas/DeviceThingModelInfoDto'
            },
            nullable: true
        },
        totalCount: {
            type: 'integer',
            format: 'int64'
        }
    },
    additionalProperties: false
} as const;

export const DeviceTreeModelDataInfoInputSchema = {
    type: 'object',
    properties: {
        pageIndex: {
            type: 'integer',
            description: '当前页面.默认从1开始',
            format: 'int32'
        },
        pageSize: {
            type: 'integer',
            description: '每页多少条.每页显示多少记录',
            format: 'int32'
        },
        skipCount: {
            type: 'integer',
            description: '跳过多少条',
            format: 'int32',
            readOnly: true
        },
        sorting: {
            type: 'string',
            description: `排序
<example>
 name desc
</example>`,
            nullable: true
        },
        ioTDataType: {
            type: 'string',
            description: '数据类型',
            nullable: true
        },
        deviceType: {
            '$ref': '#/components/schemas/DeviceTypeEnum'
        },
        deviceAddress: {
            type: 'string',
            description: '设备ID,数据生成者，例如集中器ID,电表ID、水表ID、流量计ID、传感器ID等',
            nullable: true
        },
        startCreationTime: {
            type: 'string',
            description: '开始创建时间',
            format: 'date-time',
            nullable: true
        },
        endCreationTime: {
            type: 'string',
            description: '结束创建时间',
            format: 'date-time',
            nullable: true
        },
        isNeedPaging: {
            type: 'boolean',
            description: '是否需要分页， 默认为true'
        }
    },
    additionalProperties: false,
    description: '设备树模型数据信息查询入参'
} as const;

export const DeviceTypeEnumSchema = {
    enum: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11],
    type: 'integer',
    description: `表计类型
电表= 1,水表= 2,燃气表= 3,热能表= 4,水表流量计=5，燃气表流量计=6`,
    format: 'int32',
    '说明：': '电表=1,水表=2,燃气表=3,热能表=4,水表流量计=5,燃气表流量计=6,特殊电表=7,传感器=8,采集器=9,集中器=10,电机保护器=11'
} as const;

export const DisabledTwoFactorInputSchema = {
    required: ['code'],
    type: 'object',
    properties: {
        code: {
            minLength: 1,
            type: 'string',
            description: '验证码'
        }
    },
    additionalProperties: false
} as const;

export const DownloadFileObjectInputSchema = {
    type: 'object',
    properties: {
        id: {
            type: 'string',
            description: '文件Id',
            format: 'uuid'
        }
    },
    additionalProperties: false
} as const;

export const EnabledTwoFactorInputSchema = {
    required: ['code', 'secret'],
    type: 'object',
    properties: {
        code: {
            minLength: 1,
            type: 'string',
            description: '验证码'
        },
        secret: {
            minLength: 1,
            type: 'string',
            description: '密钥'
        }
    },
    additionalProperties: false
} as const;

export const EntityChangeTypeSchema = {
    enum: [0, 1, 2],
    type: 'integer',
    format: 'int32',
    '说明：': 'Created=0,Updated=1,Deleted=2'
} as const;

export const EntityExtensionDtoSchema = {
    type: 'object',
    properties: {
        properties: {
            type: 'object',
            additionalProperties: {
                '$ref': '#/components/schemas/ExtensionPropertyDto'
            },
            nullable: true
        },
        configuration: {
            type: 'object',
            additionalProperties: {},
            nullable: true
        }
    },
    additionalProperties: false
} as const;

export const ExtensionEnumDtoSchema = {
    type: 'object',
    properties: {
        fields: {
            type: 'array',
            items: {
                '$ref': '#/components/schemas/ExtensionEnumFieldDto'
            },
            nullable: true
        },
        localizationResource: {
            type: 'string',
            nullable: true
        }
    },
    additionalProperties: false
} as const;

export const ExtensionEnumFieldDtoSchema = {
    type: 'object',
    properties: {
        name: {
            type: 'string',
            nullable: true
        },
        value: {
            nullable: true
        }
    },
    additionalProperties: false
} as const;

export const ExtensionPropertyApiCreateDtoSchema = {
    type: 'object',
    properties: {
        isAvailable: {
            type: 'boolean'
        }
    },
    additionalProperties: false
} as const;

export const ExtensionPropertyApiDtoSchema = {
    type: 'object',
    properties: {
        onGet: {
            '$ref': '#/components/schemas/ExtensionPropertyApiGetDto'
        },
        onCreate: {
            '$ref': '#/components/schemas/ExtensionPropertyApiCreateDto'
        },
        onUpdate: {
            '$ref': '#/components/schemas/ExtensionPropertyApiUpdateDto'
        }
    },
    additionalProperties: false
} as const;

export const ExtensionPropertyApiGetDtoSchema = {
    type: 'object',
    properties: {
        isAvailable: {
            type: 'boolean'
        }
    },
    additionalProperties: false
} as const;

export const ExtensionPropertyApiUpdateDtoSchema = {
    type: 'object',
    properties: {
        isAvailable: {
            type: 'boolean'
        }
    },
    additionalProperties: false
} as const;

export const ExtensionPropertyAttributeDtoSchema = {
    type: 'object',
    properties: {
        typeSimple: {
            type: 'string',
            nullable: true
        },
        config: {
            type: 'object',
            additionalProperties: {},
            nullable: true
        }
    },
    additionalProperties: false
} as const;

export const ExtensionPropertyDtoSchema = {
    type: 'object',
    properties: {
        type: {
            type: 'string',
            nullable: true
        },
        typeSimple: {
            type: 'string',
            nullable: true
        },
        displayName: {
            '$ref': '#/components/schemas/LocalizableStringDto'
        },
        api: {
            '$ref': '#/components/schemas/ExtensionPropertyApiDto'
        },
        ui: {
            '$ref': '#/components/schemas/ExtensionPropertyUiDto'
        },
        policy: {
            '$ref': '#/components/schemas/ExtensionPropertyPolicyDto'
        },
        attributes: {
            type: 'array',
            items: {
                '$ref': '#/components/schemas/ExtensionPropertyAttributeDto'
            },
            nullable: true
        },
        configuration: {
            type: 'object',
            additionalProperties: {},
            nullable: true
        },
        defaultValue: {
            nullable: true
        }
    },
    additionalProperties: false
} as const;

export const ExtensionPropertyFeaturePolicyDtoSchema = {
    type: 'object',
    properties: {
        features: {
            type: 'array',
            items: {
                type: 'string'
            },
            nullable: true
        },
        requiresAll: {
            type: 'boolean'
        }
    },
    additionalProperties: false
} as const;

export const ExtensionPropertyGlobalFeaturePolicyDtoSchema = {
    type: 'object',
    properties: {
        features: {
            type: 'array',
            items: {
                type: 'string'
            },
            nullable: true
        },
        requiresAll: {
            type: 'boolean'
        }
    },
    additionalProperties: false
} as const;

export const ExtensionPropertyPermissionPolicyDtoSchema = {
    type: 'object',
    properties: {
        permissionNames: {
            type: 'array',
            items: {
                type: 'string'
            },
            nullable: true
        },
        requiresAll: {
            type: 'boolean'
        }
    },
    additionalProperties: false
} as const;

export const ExtensionPropertyPolicyDtoSchema = {
    type: 'object',
    properties: {
        globalFeatures: {
            '$ref': '#/components/schemas/ExtensionPropertyGlobalFeaturePolicyDto'
        },
        features: {
            '$ref': '#/components/schemas/ExtensionPropertyFeaturePolicyDto'
        },
        permissions: {
            '$ref': '#/components/schemas/ExtensionPropertyPermissionPolicyDto'
        }
    },
    additionalProperties: false
} as const;

export const ExtensionPropertyUiDtoSchema = {
    type: 'object',
    properties: {
        onTable: {
            '$ref': '#/components/schemas/ExtensionPropertyUiTableDto'
        },
        onCreateForm: {
            '$ref': '#/components/schemas/ExtensionPropertyUiFormDto'
        },
        onEditForm: {
            '$ref': '#/components/schemas/ExtensionPropertyUiFormDto'
        },
        lookup: {
            '$ref': '#/components/schemas/ExtensionPropertyUiLookupDto'
        }
    },
    additionalProperties: false
} as const;

export const ExtensionPropertyUiFormDtoSchema = {
    type: 'object',
    properties: {
        isVisible: {
            type: 'boolean'
        }
    },
    additionalProperties: false
} as const;

export const ExtensionPropertyUiLookupDtoSchema = {
    type: 'object',
    properties: {
        url: {
            type: 'string',
            nullable: true
        },
        resultListPropertyName: {
            type: 'string',
            nullable: true
        },
        displayPropertyName: {
            type: 'string',
            nullable: true
        },
        valuePropertyName: {
            type: 'string',
            nullable: true
        },
        filterParamName: {
            type: 'string',
            nullable: true
        }
    },
    additionalProperties: false
} as const;

export const ExtensionPropertyUiTableDtoSchema = {
    type: 'object',
    properties: {
        isVisible: {
            type: 'boolean'
        }
    },
    additionalProperties: false
} as const;

export const FeatureDtoSchema = {
    type: 'object',
    properties: {
        name: {
            type: 'string',
            nullable: true
        },
        displayName: {
            type: 'string',
            nullable: true
        },
        value: {
            type: 'string',
            nullable: true
        },
        provider: {
            '$ref': '#/components/schemas/FeatureProviderDto'
        },
        description: {
            type: 'string',
            nullable: true
        },
        valueType: {
            '$ref': '#/components/schemas/IStringValueType'
        },
        depth: {
            type: 'integer',
            format: 'int32'
        },
        parentName: {
            type: 'string',
            nullable: true
        }
    },
    additionalProperties: false
} as const;

export const FeatureGroupDtoSchema = {
    type: 'object',
    properties: {
        name: {
            type: 'string',
            nullable: true
        },
        displayName: {
            type: 'string',
            nullable: true
        },
        features: {
            type: 'array',
            items: {
                '$ref': '#/components/schemas/FeatureDto'
            },
            nullable: true
        }
    },
    additionalProperties: false
} as const;

export const FeatureProviderDtoSchema = {
    type: 'object',
    properties: {
        name: {
            type: 'string',
            nullable: true
        },
        key: {
            type: 'string',
            nullable: true
        }
    },
    additionalProperties: false
} as const;

export const FileAggregateRouteSchema = {
    type: 'object',
    properties: {
        routeKeys: {
            type: 'array',
            items: {
                type: 'string'
            },
            nullable: true
        },
        routeKeysConfig: {
            type: 'array',
            items: {
                '$ref': '#/components/schemas/AggregateRouteConfig'
            },
            nullable: true
        },
        upstreamPathTemplate: {
            type: 'string',
            nullable: true
        },
        upstreamHost: {
            type: 'string',
            nullable: true
        },
        routeIsCaseSensitive: {
            type: 'boolean'
        },
        aggregator: {
            type: 'string',
            nullable: true
        },
        upstreamHttpMethod: {
            type: 'array',
            items: {
                type: 'string'
            },
            nullable: true,
            readOnly: true
        },
        priority: {
            type: 'integer',
            format: 'int32'
        }
    },
    additionalProperties: false
} as const;

export const FileAuthenticationOptionsSchema = {
    type: 'object',
    properties: {
        authenticationProviderKey: {
            type: 'string',
            nullable: true
        },
        allowedScopes: {
            type: 'array',
            items: {
                type: 'string'
            },
            nullable: true
        }
    },
    additionalProperties: false
} as const;

export const FileCacheOptionsSchema = {
    type: 'object',
    properties: {
        ttlSeconds: {
            type: 'integer',
            format: 'int32'
        },
        region: {
            type: 'string',
            nullable: true
        }
    },
    additionalProperties: false
} as const;

export const FileConfigurationSchema = {
    type: 'object',
    properties: {
        routes: {
            type: 'array',
            items: {
                '$ref': '#/components/schemas/FileRoute'
            },
            nullable: true
        },
        dynamicRoutes: {
            type: 'array',
            items: {
                '$ref': '#/components/schemas/FileDynamicRoute'
            },
            nullable: true
        },
        aggregates: {
            type: 'array',
            items: {
                '$ref': '#/components/schemas/FileAggregateRoute'
            },
            nullable: true
        },
        globalConfiguration: {
            '$ref': '#/components/schemas/FileGlobalConfiguration'
        }
    },
    additionalProperties: false
} as const;

export const FileDynamicRouteSchema = {
    type: 'object',
    properties: {
        serviceName: {
            type: 'string',
            nullable: true
        },
        rateLimitRule: {
            '$ref': '#/components/schemas/FileRateLimitRule'
        },
        downstreamHttpVersion: {
            type: 'string',
            nullable: true
        }
    },
    additionalProperties: false
} as const;

export const FileGlobalConfigurationSchema = {
    type: 'object',
    properties: {
        requestIdKey: {
            type: 'string',
            nullable: true
        },
        serviceDiscoveryProvider: {
            '$ref': '#/components/schemas/FileServiceDiscoveryProvider'
        },
        rateLimitOptions: {
            '$ref': '#/components/schemas/FileRateLimitOptions'
        },
        qoSOptions: {
            '$ref': '#/components/schemas/FileQoSOptions'
        },
        baseUrl: {
            type: 'string',
            nullable: true
        },
        loadBalancerOptions: {
            '$ref': '#/components/schemas/FileLoadBalancerOptions'
        },
        downstreamScheme: {
            type: 'string',
            nullable: true
        },
        httpHandlerOptions: {
            '$ref': '#/components/schemas/FileHttpHandlerOptions'
        },
        downstreamHttpVersion: {
            type: 'string',
            nullable: true
        }
    },
    additionalProperties: false
} as const;

export const FileHostAndPortSchema = {
    type: 'object',
    properties: {
        host: {
            type: 'string',
            nullable: true
        },
        port: {
            type: 'integer',
            format: 'int32'
        }
    },
    additionalProperties: false
} as const;

export const FileHttpHandlerOptionsSchema = {
    type: 'object',
    properties: {
        allowAutoRedirect: {
            type: 'boolean'
        },
        useCookieContainer: {
            type: 'boolean'
        },
        useTracing: {
            type: 'boolean'
        },
        useProxy: {
            type: 'boolean'
        },
        maxConnectionsPerServer: {
            type: 'integer',
            format: 'int32'
        }
    },
    additionalProperties: false
} as const;

export const FileLoadBalancerOptionsSchema = {
    type: 'object',
    properties: {
        type: {
            type: 'string',
            nullable: true
        },
        key: {
            type: 'string',
            nullable: true
        },
        expiry: {
            type: 'integer',
            format: 'int32'
        }
    },
    additionalProperties: false
} as const;

export const FileObjectDtoSchema = {
    type: 'object',
    properties: {
        id: {
            type: 'string',
            description: '主键Id',
            format: 'uuid'
        },
        creationTime: {
            type: 'string',
            description: '创建时间',
            format: 'date-time'
        },
        fileSize: {
            type: 'integer',
            description: '文件大小',
            format: 'int64'
        },
        contentType: {
            type: 'string',
            description: '文件名称',
            nullable: true
        },
        fileName: {
            type: 'string',
            description: '文件名称',
            nullable: true
        }
    },
    additionalProperties: false,
    description: '文件'
} as const;

export const FileQoSOptionsSchema = {
    type: 'object',
    properties: {
        exceptionsAllowedBeforeBreaking: {
            type: 'integer',
            format: 'int32'
        },
        durationOfBreak: {
            type: 'integer',
            format: 'int32'
        },
        timeoutValue: {
            type: 'integer',
            format: 'int32'
        }
    },
    additionalProperties: false
} as const;

export const FileRateLimitOptionsSchema = {
    type: 'object',
    properties: {
        clientIdHeader: {
            type: 'string',
            nullable: true
        },
        quotaExceededMessage: {
            type: 'string',
            nullable: true
        },
        rateLimitCounterPrefix: {
            type: 'string',
            nullable: true
        },
        disableRateLimitHeaders: {
            type: 'boolean'
        },
        httpStatusCode: {
            type: 'integer',
            format: 'int32'
        }
    },
    additionalProperties: false
} as const;

export const FileRateLimitRuleSchema = {
    type: 'object',
    properties: {
        clientWhitelist: {
            type: 'array',
            items: {
                type: 'string'
            },
            nullable: true
        },
        enableRateLimiting: {
            type: 'boolean'
        },
        period: {
            type: 'string',
            nullable: true
        },
        periodTimespan: {
            type: 'number',
            format: 'double'
        },
        limit: {
            type: 'integer',
            format: 'int64'
        }
    },
    additionalProperties: false
} as const;

export const FileRouteSchema = {
    type: 'object',
    properties: {
        downstreamPathTemplate: {
            type: 'string',
            nullable: true
        },
        upstreamPathTemplate: {
            type: 'string',
            nullable: true
        },
        upstreamHttpMethod: {
            type: 'array',
            items: {
                type: 'string'
            },
            nullable: true
        },
        downstreamHttpMethod: {
            type: 'string',
            nullable: true
        },
        addHeadersToRequest: {
            type: 'object',
            additionalProperties: {
                type: 'string',
                nullable: true
            },
            nullable: true
        },
        upstreamHeaderTransform: {
            type: 'object',
            additionalProperties: {
                type: 'string',
                nullable: true
            },
            nullable: true
        },
        downstreamHeaderTransform: {
            type: 'object',
            additionalProperties: {
                type: 'string',
                nullable: true
            },
            nullable: true
        },
        addClaimsToRequest: {
            type: 'object',
            additionalProperties: {
                type: 'string',
                nullable: true
            },
            nullable: true
        },
        routeClaimsRequirement: {
            type: 'object',
            additionalProperties: {
                type: 'string',
                nullable: true
            },
            nullable: true
        },
        addQueriesToRequest: {
            type: 'object',
            additionalProperties: {
                type: 'string',
                nullable: true
            },
            nullable: true
        },
        changeDownstreamPathTemplate: {
            type: 'object',
            additionalProperties: {
                type: 'string',
                nullable: true
            },
            nullable: true
        },
        requestIdKey: {
            type: 'string',
            nullable: true
        },
        fileCacheOptions: {
            '$ref': '#/components/schemas/FileCacheOptions'
        },
        routeIsCaseSensitive: {
            type: 'boolean'
        },
        serviceName: {
            type: 'string',
            nullable: true
        },
        serviceNamespace: {
            type: 'string',
            nullable: true
        },
        downstreamScheme: {
            type: 'string',
            nullable: true
        },
        qoSOptions: {
            '$ref': '#/components/schemas/FileQoSOptions'
        },
        loadBalancerOptions: {
            '$ref': '#/components/schemas/FileLoadBalancerOptions'
        },
        rateLimitOptions: {
            '$ref': '#/components/schemas/FileRateLimitRule'
        },
        authenticationOptions: {
            '$ref': '#/components/schemas/FileAuthenticationOptions'
        },
        httpHandlerOptions: {
            '$ref': '#/components/schemas/FileHttpHandlerOptions'
        },
        downstreamHostAndPorts: {
            type: 'array',
            items: {
                '$ref': '#/components/schemas/FileHostAndPort'
            },
            nullable: true
        },
        upstreamHost: {
            type: 'string',
            nullable: true
        },
        key: {
            type: 'string',
            nullable: true
        },
        delegatingHandlers: {
            type: 'array',
            items: {
                type: 'string'
            },
            nullable: true
        },
        priority: {
            type: 'integer',
            format: 'int32'
        },
        timeout: {
            type: 'integer',
            format: 'int32'
        },
        dangerousAcceptAnyServerCertificateValidator: {
            type: 'boolean'
        },
        securityOptions: {
            '$ref': '#/components/schemas/FileSecurityOptions'
        },
        downstreamHttpVersion: {
            type: 'string',
            nullable: true
        }
    },
    additionalProperties: false
} as const;

export const FileSecurityOptionsSchema = {
    type: 'object',
    properties: {
        ipAllowedList: {
            type: 'array',
            items: {
                type: 'string'
            },
            nullable: true
        },
        ipBlockedList: {
            type: 'array',
            items: {
                type: 'string'
            },
            nullable: true
        }
    },
    additionalProperties: false
} as const;

export const FileServiceDiscoveryProviderSchema = {
    type: 'object',
    properties: {
        scheme: {
            type: 'string',
            nullable: true
        },
        host: {
            type: 'string',
            nullable: true
        },
        port: {
            type: 'integer',
            format: 'int32'
        },
        type: {
            type: 'string',
            nullable: true
        },
        token: {
            type: 'string',
            nullable: true
        },
        configurationKey: {
            type: 'string',
            nullable: true
        },
        pollingInterval: {
            type: 'integer',
            format: 'int32'
        },
        namespace: {
            type: 'string',
            nullable: true
        }
    },
    additionalProperties: false
} as const;

export const FindByUserNameInputSchema = {
    type: 'object',
    properties: {
        userName: {
            type: 'string',
            nullable: true
        }
    },
    additionalProperties: false
} as const;

export const FindTenantByNameInputSchema = {
    type: 'object',
    properties: {
        name: {
            type: 'string',
            nullable: true
        }
    },
    additionalProperties: false
} as const;

export const FindTenantResultDtoSchema = {
    type: 'object',
    properties: {
        success: {
            type: 'boolean'
        },
        tenantId: {
            type: 'string',
            format: 'uuid',
            nullable: true
        },
        name: {
            type: 'string',
            nullable: true
        },
        normalizedName: {
            type: 'string',
            nullable: true
        },
        isActive: {
            type: 'boolean'
        }
    },
    additionalProperties: false
} as const;

export const GetFeatureListResultDtoSchema = {
    type: 'object',
    properties: {
        groups: {
            type: 'array',
            items: {
                '$ref': '#/components/schemas/FeatureGroupDto'
            },
            nullable: true
        }
    },
    additionalProperties: false
} as const;

export const GetFeatureListResultInputSchema = {
    type: 'object',
    properties: {
        providerName: {
            type: 'string',
            nullable: true
        },
        providerKey: {
            type: 'string',
            nullable: true
        }
    },
    additionalProperties: false
} as const;

export const GetMenuTreeMetaOutputSchema = {
    type: 'object',
    properties: {
        title: {
            type: 'string',
            nullable: true
        },
        displayTitle: {
            type: 'string',
            nullable: true
        },
        icon: {
            type: 'string',
            description: '图标',
            nullable: true
        },
        order: {
            type: 'integer',
            description: '排序',
            format: 'int32'
        },
        keepAlive: {
            type: 'boolean',
            description: '是否缓存'
        },
        hideInMenu: {
            type: 'boolean',
            description: '是否显示'
        },
        link: {
            type: 'string',
            description: '外链地址',
            nullable: true
        },
        iframeSrc: {
            type: 'string',
            description: '内链地址',
            nullable: true
        }
    },
    additionalProperties: false
} as const;

export const GetMenuTreeOutputSchema = {
    type: 'object',
    properties: {
        id: {
            type: 'string',
            format: 'uuid'
        },
        parentId: {
            type: 'string',
            format: 'uuid',
            nullable: true
        },
        name: {
            type: 'string',
            description: '名称',
            nullable: true
        },
        path: {
            type: 'string',
            nullable: true
        },
        component: {
            type: 'string',
            nullable: true
        },
        enabled: {
            type: 'boolean'
        },
        meta: {
            '$ref': '#/components/schemas/GetMenuTreeMetaOutput'
        },
        children: {
            type: 'array',
            items: {
                '$ref': '#/components/schemas/GetMenuTreeOutput'
            },
            nullable: true
        }
    },
    additionalProperties: false
} as const;

export const GetOrganizationUnitRoleInputSchema = {
    type: 'object',
    properties: {
        pageIndex: {
            type: 'integer',
            description: '当前页面.默认从1开始',
            format: 'int32'
        },
        pageSize: {
            type: 'integer',
            description: '每页多少条.每页显示多少记录',
            format: 'int32'
        },
        skipCount: {
            type: 'integer',
            description: '跳过多少条',
            format: 'int32',
            readOnly: true
        },
        sorting: {
            type: 'string',
            description: `排序
<example>
 name desc
</example>`,
            nullable: true
        },
        organizationUnitId: {
            type: 'string',
            format: 'uuid'
        }
    },
    additionalProperties: false
} as const;

export const GetOrganizationUnitRoleOutputSchema = {
    type: 'object',
    properties: {
        id: {
            type: 'string',
            format: 'uuid'
        },
        name: {
            type: 'string',
            nullable: true
        }
    },
    additionalProperties: false
} as const;

export const GetOrganizationUnitRoleOutputPagedResultDtoSchema = {
    type: 'object',
    properties: {
        items: {
            type: 'array',
            items: {
                '$ref': '#/components/schemas/GetOrganizationUnitRoleOutput'
            },
            nullable: true
        },
        totalCount: {
            type: 'integer',
            format: 'int64'
        }
    },
    additionalProperties: false
} as const;

export const GetOrganizationUnitUserInputSchema = {
    type: 'object',
    properties: {
        pageIndex: {
            type: 'integer',
            description: '当前页面.默认从1开始',
            format: 'int32'
        },
        pageSize: {
            type: 'integer',
            description: '每页多少条.每页显示多少记录',
            format: 'int32'
        },
        skipCount: {
            type: 'integer',
            description: '跳过多少条',
            format: 'int32',
            readOnly: true
        },
        sorting: {
            type: 'string',
            description: `排序
<example>
 name desc
</example>`,
            nullable: true
        },
        organizationUnitId: {
            type: 'string',
            format: 'uuid'
        },
        filter: {
            type: 'string',
            nullable: true
        }
    },
    additionalProperties: false
} as const;

export const GetOrganizationUnitUserOutputSchema = {
    type: 'object',
    properties: {
        id: {
            type: 'string',
            format: 'uuid'
        },
        userName: {
            type: 'string',
            nullable: true
        },
        email: {
            type: 'string',
            nullable: true
        }
    },
    additionalProperties: false
} as const;

export const GetOrganizationUnitUserOutputPagedResultDtoSchema = {
    type: 'object',
    properties: {
        items: {
            type: 'array',
            items: {
                '$ref': '#/components/schemas/GetOrganizationUnitUserOutput'
            },
            nullable: true
        },
        totalCount: {
            type: 'integer',
            format: 'int64'
        }
    },
    additionalProperties: false
} as const;

export const GetPermissionInputSchema = {
    type: 'object',
    properties: {
        providerName: {
            type: 'string',
            nullable: true
        },
        providerKey: {
            type: 'string',
            nullable: true
        }
    },
    additionalProperties: false
} as const;

export const GetQRCodeOutputSchema = {
    type: 'object',
    properties: {
        qrCode: {
            type: 'string',
            description: 'base64 二维码',
            format: 'byte',
            nullable: true
        },
        secret: {
            type: 'string',
            description: '密钥',
            nullable: true
        }
    },
    additionalProperties: false
} as const;

export const GetUnAddRoleInputSchema = {
    type: 'object',
    properties: {
        pageIndex: {
            type: 'integer',
            description: '当前页面.默认从1开始',
            format: 'int32'
        },
        pageSize: {
            type: 'integer',
            description: '每页多少条.每页显示多少记录',
            format: 'int32'
        },
        skipCount: {
            type: 'integer',
            description: '跳过多少条',
            format: 'int32',
            readOnly: true
        },
        sorting: {
            type: 'string',
            description: `排序
<example>
 name desc
</example>`,
            nullable: true
        },
        organizationUnitId: {
            type: 'string',
            format: 'uuid'
        },
        filter: {
            type: 'string',
            nullable: true
        }
    },
    additionalProperties: false
} as const;

export const GetUnAddRoleOutputSchema = {
    type: 'object',
    properties: {
        id: {
            type: 'string',
            format: 'uuid'
        },
        name: {
            type: 'string',
            nullable: true
        }
    },
    additionalProperties: false
} as const;

export const GetUnAddRoleOutputPagedResultDtoSchema = {
    type: 'object',
    properties: {
        items: {
            type: 'array',
            items: {
                '$ref': '#/components/schemas/GetUnAddRoleOutput'
            },
            nullable: true
        },
        totalCount: {
            type: 'integer',
            format: 'int64'
        }
    },
    additionalProperties: false
} as const;

export const GetUnAddUserInputSchema = {
    type: 'object',
    properties: {
        pageIndex: {
            type: 'integer',
            description: '当前页面.默认从1开始',
            format: 'int32'
        },
        pageSize: {
            type: 'integer',
            description: '每页多少条.每页显示多少记录',
            format: 'int32'
        },
        skipCount: {
            type: 'integer',
            description: '跳过多少条',
            format: 'int32',
            readOnly: true
        },
        sorting: {
            type: 'string',
            description: `排序
<example>
 name desc
</example>`,
            nullable: true
        },
        organizationUnitId: {
            type: 'string',
            format: 'uuid'
        },
        filter: {
            type: 'string',
            nullable: true
        }
    },
    additionalProperties: false
} as const;

export const GetUnAddUserOutputSchema = {
    type: 'object',
    properties: {
        id: {
            type: 'string',
            format: 'uuid'
        },
        userName: {
            type: 'string',
            nullable: true
        },
        email: {
            type: 'string',
            nullable: true
        }
    },
    additionalProperties: false
} as const;

export const GetUnAddUserOutputPagedResultDtoSchema = {
    type: 'object',
    properties: {
        items: {
            type: 'array',
            items: {
                '$ref': '#/components/schemas/GetUnAddUserOutput'
            },
            nullable: true
        },
        totalCount: {
            type: 'integer',
            format: 'int64'
        }
    },
    additionalProperties: false
} as const;

export const HttpDataResultSchema = {
    type: 'object',
    properties: {
        code: {
            '$ref': '#/components/schemas/ResponeResultEnum'
        },
        msg: {
            type: 'string',
            description: '详细描述',
            nullable: true
        },
        success: {
            type: 'boolean',
            description: `是否获取到数据或者逻辑处理成功
服务内部判断状态采用此属性`
        },
        timestamp: {
            type: 'integer',
            description: '时间戳(毫秒)',
            format: 'int64',
            readOnly: true
        },
        nonce: {
            type: 'string',
            description: '用于计算签名字符的随机串',
            nullable: true
        },
        signature: {
            type: 'string',
            description: '加密签名，用以校验推送客户端身份合法性，校验方法见实例验证',
            nullable: true
        },
        locationCode: {
            type: 'integer',
            description: `位置编码，主要用于接口请求逻辑定位
使用时必须保证每个请求中不重复出现`,
            format: 'int32'
        },
        extras: {
            type: 'string',
            description: '扩展信息',
            nullable: true
        }
    },
    additionalProperties: false,
    description: 'HTTP 请求返回结果'
} as const;

export const HttpStatusCodeSchema = {
    enum: [100, 101, 102, 103, 200, 201, 202, 203, 204, 205, 206, 207, 208, 226, 300, 301, 302, 303, 304, 305, 306, 307, 308, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 421, 422, 423, 424, 426, 428, 429, 431, 451, 500, 501, 502, 503, 504, 505, 506, 507, 508, 510, 511],
    type: 'integer',
    format: 'int32',
    '说明：': 'Continue=100,SwitchingProtocols=101,Processing=102,EarlyHints=103,OK=200,Created=201,Accepted=202,NonAuthoritativeInformation=203,NoContent=204,ResetContent=205,PartialContent=206,MultiStatus=207,AlreadyReported=208,IMUsed=226,MultipleChoices=300,MultipleChoices=300,MovedPermanently=301,MovedPermanently=301,Found=302,Found=302,SeeOther=303,SeeOther=303,NotModified=304,UseProxy=305,Unused=306,RedirectKeepVerb=307,RedirectKeepVerb=307,PermanentRedirect=308,BadRequest=400,Unauthorized=401,PaymentRequired=402,Forbidden=403,NotFound=404,MethodNotAllowed=405,NotAcceptable=406,ProxyAuthenticationRequired=407,RequestTimeout=408,Conflict=409,Gone=410,LengthRequired=411,PreconditionFailed=412,RequestEntityTooLarge=413,RequestUriTooLong=414,UnsupportedMediaType=415,RequestedRangeNotSatisfiable=416,ExpectationFailed=417,MisdirectedRequest=421,UnprocessableEntity=422,UnprocessableEntity=422,Locked=423,FailedDependency=424,UpgradeRequired=426,PreconditionRequired=428,TooManyRequests=429,RequestHeaderFieldsTooLarge=431,UnavailableForLegalReasons=451,InternalServerError=500,NotImplemented=501,BadGateway=502,ServiceUnavailable=503,GatewayTimeout=504,HttpVersionNotSupported=505,VariantAlsoNegotiates=506,InsufficientStorage=507,LoopDetected=508,NotExtended=510,NetworkAuthenticationRequired=511'
} as const;

export const IStringValueTypeSchema = {
    type: 'object',
    properties: {
        name: {
            type: 'string',
            nullable: true,
            readOnly: true
        },
        properties: {
            type: 'object',
            additionalProperties: {
                nullable: true
            },
            nullable: true,
            readOnly: true
        },
        validator: {
            '$ref': '#/components/schemas/IValueValidator'
        }
    },
    additionalProperties: false
} as const;

export const IValueValidatorSchema = {
    type: 'object',
    properties: {
        name: {
            type: 'string',
            nullable: true,
            readOnly: true
        },
        properties: {
            type: 'object',
            additionalProperties: {
                nullable: true
            },
            nullable: true,
            readOnly: true
        }
    },
    additionalProperties: false
} as const;

export const IanaTimeZoneSchema = {
    type: 'object',
    properties: {
        timeZoneName: {
            type: 'string',
            nullable: true
        }
    },
    additionalProperties: false
} as const;

export const IdInputSchema = {
    type: 'object',
    properties: {
        id: {
            type: 'string',
            format: 'uuid'
        }
    },
    additionalProperties: false
} as const;

export const IdentityRoleCreateDtoSchema = {
    required: ['name'],
    type: 'object',
    properties: {
        extraProperties: {
            type: 'object',
            additionalProperties: {},
            nullable: true,
            readOnly: true
        },
        name: {
            maxLength: 256,
            minLength: 0,
            type: 'string'
        },
        isDefault: {
            type: 'boolean'
        },
        isPublic: {
            type: 'boolean'
        }
    },
    additionalProperties: false
} as const;

export const IdentityRoleDtoSchema = {
    type: 'object',
    properties: {
        extraProperties: {
            type: 'object',
            additionalProperties: {},
            nullable: true,
            readOnly: true
        },
        id: {
            type: 'string',
            format: 'uuid'
        },
        name: {
            type: 'string',
            nullable: true
        },
        isDefault: {
            type: 'boolean'
        },
        isStatic: {
            type: 'boolean'
        },
        isPublic: {
            type: 'boolean'
        },
        concurrencyStamp: {
            type: 'string',
            nullable: true
        },
        creationTime: {
            type: 'string',
            format: 'date-time'
        }
    },
    additionalProperties: false
} as const;

export const IdentityRoleDtoListResultDtoSchema = {
    type: 'object',
    properties: {
        items: {
            type: 'array',
            items: {
                '$ref': '#/components/schemas/IdentityRoleDto'
            },
            nullable: true
        }
    },
    additionalProperties: false
} as const;

export const IdentityRoleDtoPagedResultDtoSchema = {
    type: 'object',
    properties: {
        items: {
            type: 'array',
            items: {
                '$ref': '#/components/schemas/IdentityRoleDto'
            },
            nullable: true
        },
        totalCount: {
            type: 'integer',
            format: 'int64'
        }
    },
    additionalProperties: false
} as const;

export const IdentityRoleUpdateDtoSchema = {
    required: ['name'],
    type: 'object',
    properties: {
        extraProperties: {
            type: 'object',
            additionalProperties: {},
            nullable: true,
            readOnly: true
        },
        name: {
            maxLength: 256,
            minLength: 0,
            type: 'string'
        },
        isDefault: {
            type: 'boolean'
        },
        isPublic: {
            type: 'boolean'
        },
        concurrencyStamp: {
            type: 'string',
            nullable: true
        }
    },
    additionalProperties: false
} as const;

export const IdentityUserCreateDtoSchema = {
    required: ['email', 'password', 'userName'],
    type: 'object',
    properties: {
        extraProperties: {
            type: 'object',
            additionalProperties: {},
            nullable: true,
            readOnly: true
        },
        userName: {
            maxLength: 256,
            minLength: 0,
            type: 'string'
        },
        name: {
            maxLength: 64,
            minLength: 0,
            type: 'string',
            nullable: true
        },
        surname: {
            maxLength: 64,
            minLength: 0,
            type: 'string',
            nullable: true
        },
        email: {
            maxLength: 256,
            minLength: 0,
            type: 'string',
            format: 'email'
        },
        phoneNumber: {
            maxLength: 16,
            minLength: 0,
            type: 'string',
            nullable: true
        },
        isActive: {
            type: 'boolean'
        },
        lockoutEnabled: {
            type: 'boolean'
        },
        roleNames: {
            type: 'array',
            items: {
                type: 'string'
            },
            nullable: true
        },
        password: {
            maxLength: 128,
            minLength: 0,
            type: 'string'
        }
    },
    additionalProperties: false
} as const;

export const IdentityUserDtoSchema = {
    type: 'object',
    properties: {
        extraProperties: {
            type: 'object',
            additionalProperties: {},
            nullable: true,
            readOnly: true
        },
        id: {
            type: 'string',
            format: 'uuid'
        },
        creationTime: {
            type: 'string',
            format: 'date-time'
        },
        creatorId: {
            type: 'string',
            format: 'uuid',
            nullable: true
        },
        lastModificationTime: {
            type: 'string',
            format: 'date-time',
            nullable: true
        },
        lastModifierId: {
            type: 'string',
            format: 'uuid',
            nullable: true
        },
        isDeleted: {
            type: 'boolean'
        },
        deleterId: {
            type: 'string',
            format: 'uuid',
            nullable: true
        },
        deletionTime: {
            type: 'string',
            format: 'date-time',
            nullable: true
        },
        tenantId: {
            type: 'string',
            format: 'uuid',
            nullable: true
        },
        userName: {
            type: 'string',
            nullable: true
        },
        name: {
            type: 'string',
            nullable: true
        },
        surname: {
            type: 'string',
            nullable: true
        },
        email: {
            type: 'string',
            nullable: true
        },
        emailConfirmed: {
            type: 'boolean'
        },
        phoneNumber: {
            type: 'string',
            nullable: true
        },
        phoneNumberConfirmed: {
            type: 'boolean'
        },
        isActive: {
            type: 'boolean'
        },
        lockoutEnabled: {
            type: 'boolean'
        },
        accessFailedCount: {
            type: 'integer',
            format: 'int32'
        },
        lockoutEnd: {
            type: 'string',
            format: 'date-time',
            nullable: true
        },
        concurrencyStamp: {
            type: 'string',
            nullable: true
        },
        entityVersion: {
            type: 'integer',
            format: 'int32'
        },
        lastPasswordChangeTime: {
            type: 'string',
            format: 'date-time',
            nullable: true
        }
    },
    additionalProperties: false
} as const;

export const IdentityUserUpdateDtoSchema = {
    required: ['email', 'userName'],
    type: 'object',
    properties: {
        extraProperties: {
            type: 'object',
            additionalProperties: {},
            nullable: true,
            readOnly: true
        },
        userName: {
            maxLength: 256,
            minLength: 0,
            type: 'string'
        },
        name: {
            maxLength: 64,
            minLength: 0,
            type: 'string',
            nullable: true
        },
        surname: {
            maxLength: 64,
            minLength: 0,
            type: 'string',
            nullable: true
        },
        email: {
            maxLength: 256,
            minLength: 0,
            type: 'string',
            format: 'email'
        },
        phoneNumber: {
            maxLength: 16,
            minLength: 0,
            type: 'string',
            nullable: true
        },
        isActive: {
            type: 'boolean'
        },
        lockoutEnabled: {
            type: 'boolean'
        },
        roleNames: {
            type: 'array',
            items: {
                type: 'string'
            },
            nullable: true
        },
        password: {
            maxLength: 128,
            minLength: 0,
            type: 'string',
            nullable: true
        },
        concurrencyStamp: {
            type: 'string',
            nullable: true
        }
    },
    additionalProperties: false
} as const;

export const InterfaceMethodApiDescriptionModelSchema = {
    type: 'object',
    properties: {
        name: {
            type: 'string',
            nullable: true
        },
        parametersOnMethod: {
            type: 'array',
            items: {
                '$ref': '#/components/schemas/MethodParameterApiDescriptionModel'
            },
            nullable: true
        },
        returnValue: {
            '$ref': '#/components/schemas/ReturnValueApiDescriptionModel'
        }
    },
    additionalProperties: false
} as const;

export const IoTDBDynamicObjectPagedResultDtoSchema = {
    type: 'object',
    properties: {
        items: {
            type: 'array',
            items: {
                type: 'object',
                additionalProperties: {},
                description: '设备动态数据模型'
            },
            nullable: true
        },
        totalCount: {
            type: 'integer',
            format: 'int64'
        }
    },
    additionalProperties: false
} as const;

export const IoTPlatformTypeEnumSchema = {
    enum: [1, 2],
    type: 'integer',
    description: '物联网平台类型枚举',
    format: 'int32',
    '说明：': '电信CTWing=1,移动OneNET=2'
} as const;

export const LanguageInfoSchema = {
    type: 'object',
    properties: {
        cultureName: {
            type: 'string',
            nullable: true
        },
        uiCultureName: {
            type: 'string',
            nullable: true
        },
        displayName: {
            type: 'string',
            nullable: true
        },
        twoLetterISOLanguageName: {
            type: 'string',
            nullable: true,
            readOnly: true
        }
    },
    additionalProperties: false
} as const;

export const LocalizableStringDtoSchema = {
    type: 'object',
    properties: {
        name: {
            type: 'string',
            nullable: true
        },
        resource: {
            type: 'string',
            nullable: true
        }
    },
    additionalProperties: false
} as const;

export const LockUserInputSchema = {
    type: 'object',
    properties: {
        userId: {
            type: 'string',
            format: 'uuid'
        },
        locked: {
            type: 'boolean'
        }
    },
    additionalProperties: false
} as const;

export const Login2FAInputSchema = {
    type: 'object',
    properties: {
        name: {
            type: 'string',
            description: '用户名或者邮箱',
            nullable: true
        },
        password: {
            type: 'string',
            description: '密码',
            nullable: true
        },
        code: {
            type: 'string',
            description: '双因素验证码',
            nullable: true
        }
    },
    additionalProperties: false,
    description: '登录'
} as const;

export const LoginInputSchema = {
    type: 'object',
    properties: {
        name: {
            type: 'string',
            description: '用户名或者邮箱',
            nullable: true
        },
        password: {
            type: 'string',
            description: '密码',
            nullable: true
        }
    },
    additionalProperties: false,
    description: '登录'
} as const;

export const LoginOidcInputSchema = {
    required: ['code', 'state'],
    type: 'object',
    properties: {
        code: {
            minLength: 1,
            type: 'string',
            description: 'code'
        },
        state: {
            minLength: 1,
            type: 'string',
            description: 'Provider'
        }
    },
    additionalProperties: false,
    description: '登录'
} as const;

export const LoginOutputSchema = {
    type: 'object',
    properties: {
        id: {
            type: 'string',
            format: 'uuid'
        },
        name: {
            type: 'string',
            nullable: true
        },
        userName: {
            type: 'string',
            nullable: true
        },
        token: {
            type: 'string',
            nullable: true
        },
        refreshToken: {
            type: 'string',
            nullable: true
        },
        roles: {
            type: 'array',
            items: {
                type: 'string'
            },
            nullable: true
        }
    },
    additionalProperties: false
} as const;

export const LoginResultTypeSchema = {
    enum: [1, 2, 3, 4, 5],
    type: 'integer',
    format: 'int32',
    '说明：': 'Success=1,InvalidUserNameOrPassword=2,NotAllowed=3,LockedOut=4,RequiresTwoFactor=5'
} as const;

export const MenuTypeSchema = {
    enum: [10, 20],
    type: 'integer',
    description: '菜单类型',
    format: 'int32',
    '说明：': '目录=10,菜单=20'
} as const;

export const MessageLevelSchema = {
    enum: [10, 20, 30],
    type: 'integer',
    description: '消息等级',
    format: 'int32',
    '说明：': '警告=10,正常=20,错误=30'
} as const;

export const MessageTypeSchema = {
    enum: [10, 20],
    type: 'integer',
    description: '消息类型',
    format: 'int32',
    '说明：': '广播消息=10,普通文本消息=20'
} as const;

export const MeterReadingPacketInfoPageInputSchema = {
    type: 'object',
    properties: {
        pageIndex: {
            type: 'integer',
            description: '当前页面.默认从1开始',
            format: 'int32'
        },
        pageSize: {
            type: 'integer',
            description: '每页多少条.每页显示多少记录',
            format: 'int32'
        },
        skipCount: {
            type: 'integer',
            description: '跳过多少条',
            format: 'int32',
            readOnly: true
        },
        sorting: {
            type: 'string',
            description: `排序
<example>
 name desc
</example>`,
            nullable: true
        },
        ioTDataType: {
            type: 'string',
            description: '数据类型',
            nullable: true
        },
        deviceType: {
            '$ref': '#/components/schemas/DeviceTypeEnum'
        },
        deviceAddress: {
            type: 'string',
            description: '设备ID,数据生成者，例如集中器ID,电表ID、水表ID、流量计ID、传感器ID等',
            nullable: true
        },
        startCreationTime: {
            type: 'string',
            description: '开始创建时间',
            format: 'date-time',
            nullable: true
        },
        endCreationTime: {
            type: 'string',
            description: '结束创建时间',
            format: 'date-time',
            nullable: true
        },
        isNeedPaging: {
            type: 'boolean',
            description: '是否需要分页， 默认为true'
        },
        ioTPlatformDeviceOpenInfo: {
            type: 'string',
            description: '物联网平台设备ID',
            nullable: true
        }
    },
    additionalProperties: false,
    description: '分页查询输入'
} as const;

export const MeterReadingPacketInfoPageOutputSchema = {
    type: 'object',
    properties: {
        dataBaseName: {
            type: 'string',
            description: '数据库名称，用于构建存储路径,来自系统配置',
            nullable: true
        },
        ioTDataType: {
            type: 'string',
            description: `数据类型，用于构建存储路径
 JiShe.ServicePro.Consts.IoTDBDataTypeConst`,
            nullable: true
        },
        deviceType: {
            type: 'string',
            description: `设备类型集中器、电表、水表、流量计、传感器等,用于构建存储路径
JiShe.ServicePro.Enums.DeviceTypeEnum`,
            nullable: true
        },
        deviceAddress: {
            type: 'string',
            description: '设备地址,数据生成者，例如集中器地址,电表地址、水表地址、流量计地址、传感器地址等',
            nullable: true
        },
        timestamps: {
            type: 'integer',
            description: '时标，也就是业务时间戳，单位毫秒,必须通过DateTimeOffset获取',
            format: 'int64'
        },
        formattedTimestamps: {
            type: 'string',
            description: '时标格式化以后的本地时间',
            format: 'date-time',
            readOnly: true
        },
        timestampStr: {
            type: 'string',
            description: '字符串格式时标',
            nullable: true,
            readOnly: true
        },
        devicePath: {
            type: 'string',
            description: '设备路径,树模型使用，表模型会在数据插入的时候直接获取继承类的名称作为表明',
            nullable: true
        },
        ioTPlatformProductId: {
            type: 'string',
            description: '物联网平台产品Id',
            nullable: true
        },
        ioTPlatformDeviceOpenInfo: {
            type: 'string',
            description: '物联网平台设备ID',
            nullable: true
        },
        ioTPlatformProductName: {
            type: 'string',
            description: '物联网平台中对应的产品Name',
            nullable: true
        },
        ioTPlatformAccountId: {
            type: 'string',
            description: '物联网平台中对应的账号Id',
            nullable: true
        },
        accountPhoneNumber: {
            type: 'string',
            description: '账户手机号',
            nullable: true
        },
        messageType: {
            type: 'string',
            description: '消息类型',
            nullable: true
        },
        issueRawMessage: {
            type: 'string',
            description: '下发消息体原始内容',
            nullable: true
        },
        issuePayload: {
            type: 'string',
            description: '下发消息体',
            nullable: true
        },
        responseRawMessage: {
            type: 'string',
            description: '下发结果原始内容',
            nullable: true
        },
        responsePayload: {
            type: 'string',
            description: '下发结果',
            nullable: true
        },
        telemetrySource: {
            type: 'integer',
            description: '遥测指令来源',
            format: 'int32'
        },
        telemetrySourceName: {
            type: 'string',
            description: '遥测指令来源',
            nullable: true,
            readOnly: true
        },
        ioTPlatform: {
            type: 'integer',
            description: `设备指令发送平台 
IoTPlatformTypeEnum`,
            format: 'int32'
        },
        ioTPlatformName: {
            type: 'string',
            description: '设备指令发送平台',
            nullable: true,
            readOnly: true
        }
    },
    additionalProperties: false,
    description: '分页查询输出'
} as const;

export const MeterReadingPacketInfoPageOutputPagedResultDtoSchema = {
    type: 'object',
    properties: {
        items: {
            type: 'array',
            items: {
                '$ref': '#/components/schemas/MeterReadingPacketInfoPageOutput'
            },
            nullable: true
        },
        totalCount: {
            type: 'integer',
            format: 'int64'
        }
    },
    additionalProperties: false
} as const;

export const MethodParameterApiDescriptionModelSchema = {
    type: 'object',
    properties: {
        name: {
            type: 'string',
            nullable: true
        },
        typeAsString: {
            type: 'string',
            nullable: true
        },
        type: {
            type: 'string',
            nullable: true
        },
        typeSimple: {
            type: 'string',
            nullable: true
        },
        isOptional: {
            type: 'boolean'
        },
        defaultValue: {
            nullable: true
        }
    },
    additionalProperties: false
} as const;

export const ModuleApiDescriptionModelSchema = {
    type: 'object',
    properties: {
        rootPath: {
            type: 'string',
            nullable: true
        },
        remoteServiceName: {
            type: 'string',
            nullable: true
        },
        controllers: {
            type: 'object',
            additionalProperties: {
                '$ref': '#/components/schemas/ControllerApiDescriptionModel'
            },
            nullable: true
        }
    },
    additionalProperties: false
} as const;

export const ModuleExtensionDtoSchema = {
    type: 'object',
    properties: {
        entities: {
            type: 'object',
            additionalProperties: {
                '$ref': '#/components/schemas/EntityExtensionDto'
            },
            nullable: true
        },
        configuration: {
            type: 'object',
            additionalProperties: {},
            nullable: true
        }
    },
    additionalProperties: false
} as const;

export const MultiTenancyInfoDtoSchema = {
    type: 'object',
    properties: {
        isEnabled: {
            type: 'boolean'
        }
    },
    additionalProperties: false
} as const;

export const MyProfileOutputSchema = {
    type: 'object',
    properties: {
        tenantId: {
            type: 'string',
            format: 'uuid',
            nullable: true
        },
        userName: {
            type: 'string',
            nullable: true
        },
        name: {
            type: 'string',
            nullable: true
        },
        surname: {
            type: 'string',
            nullable: true
        },
        email: {
            type: 'string',
            nullable: true
        },
        phoneNumber: {
            type: 'string',
            nullable: true
        },
        isActive: {
            type: 'boolean'
        },
        twoFactorEnabled: {
            type: 'boolean'
        }
    },
    additionalProperties: false
} as const;

export const NameValueSchema = {
    type: 'object',
    properties: {
        name: {
            type: 'string',
            nullable: true
        },
        value: {
            type: 'string',
            nullable: true
        }
    },
    additionalProperties: false
} as const;

export const NeedChangePasswordOutputSchema = {
    type: 'object',
    properties: {
        needChangePassword: {
            type: 'boolean'
        },
        message: {
            type: 'string',
            nullable: true
        }
    },
    additionalProperties: false
} as const;

export const NetworkTypeEnumSchema = {
    enum: [1, 2, 3, 4, 5, 6],
    type: 'integer',
    description: '网络类型',
    format: 'int32',
    '说明：': 'WIFI=1,移动蜂窝数据=2,NB-IoT=3,以太网=4,蓝牙=5,ZigBee=6'
} as const;

export const NodeTypeEnumSchema = {
    enum: [1, 2, 3],
    type: 'integer',
    format: 'int32',
    '说明：': '直连设备=1,网关设备=2,子设备=3'
} as const;

export const ObjectExtensionsDtoSchema = {
    type: 'object',
    properties: {
        modules: {
            type: 'object',
            additionalProperties: {
                '$ref': '#/components/schemas/ModuleExtensionDto'
            },
            nullable: true
        },
        enums: {
            type: 'object',
            additionalProperties: {
                '$ref': '#/components/schemas/ExtensionEnumDto'
            },
            nullable: true
        }
    },
    additionalProperties: false
} as const;

export const OidcConfigurationSchema = {
    type: 'object',
    properties: {
        enabled: {
            type: 'boolean',
            description: '是否启用'
        },
        type: {
            type: 'string',
            description: '类型',
            nullable: true
        },
        clientId: {
            type: 'string',
            description: 'client_id',
            nullable: true
        },
        clientName: {
            type: 'string',
            description: '应用名称',
            nullable: true
        },
        icon: {
            type: 'string',
            description: '应用图标',
            nullable: true
        },
        authUri: {
            type: 'string',
            description: '认证地址',
            nullable: true
        }
    },
    additionalProperties: false
} as const;

export const OneNETAccountInfoDtoSchema = {
    type: 'object',
    properties: {
        id: {
            type: 'string',
            format: 'uuid'
        },
        creationTime: {
            type: 'string',
            format: 'date-time'
        },
        creatorId: {
            type: 'string',
            format: 'uuid',
            nullable: true
        },
        lastModificationTime: {
            type: 'string',
            format: 'date-time',
            nullable: true
        },
        lastModifierId: {
            type: 'string',
            format: 'uuid',
            nullable: true
        },
        isDeleted: {
            type: 'boolean'
        },
        deleterId: {
            type: 'string',
            format: 'uuid',
            nullable: true
        },
        deletionTime: {
            type: 'string',
            format: 'date-time',
            nullable: true
        },
        tenantId: {
            type: 'string',
            description: '租户Id',
            format: 'uuid',
            nullable: true
        },
        remark: {
            type: 'string',
            description: '备注',
            nullable: true
        },
        osaCreatorId: {
            type: 'integer',
            description: '旧系统授权创建者Id',
            format: 'int32',
            nullable: true
        },
        osaLastModifierId: {
            type: 'integer',
            description: '旧系统授权最后修改者Id',
            format: 'int32',
            nullable: true
        },
        osaDeleterId: {
            type: 'integer',
            description: '旧系统授权最后删除者Id',
            format: 'int32',
            nullable: true
        },
        extraProperties: {
            type: 'object',
            additionalProperties: {},
            description: '扩展属性,用于存储自定义字段,JSON格式',
            nullable: true
        },
        accountName: {
            type: 'string',
            description: '账号名称',
            nullable: true
        },
        oneNETAccountId: {
            type: 'string',
            description: '账号ID',
            nullable: true
        },
        phoneNumber: {
            type: 'string',
            description: '手机号码',
            nullable: true
        },
        accountAccesskey: {
            type: 'string',
            description: '账户通信密钥，平台可以重置密钥',
            nullable: true
        },
        productCount: {
            type: 'integer',
            description: '产品数量',
            format: 'int32'
        }
    },
    additionalProperties: false
} as const;

export const OneNETAccountInfoDtoPagedResultDtoSchema = {
    type: 'object',
    properties: {
        items: {
            type: 'array',
            items: {
                '$ref': '#/components/schemas/OneNETAccountInfoDto'
            },
            nullable: true
        },
        totalCount: {
            type: 'integer',
            format: 'int64'
        }
    },
    additionalProperties: false
} as const;

export const OneNETProductInfoDtoSchema = {
    type: 'object',
    properties: {
        id: {
            type: 'string',
            format: 'uuid'
        },
        creationTime: {
            type: 'string',
            format: 'date-time'
        },
        creatorId: {
            type: 'string',
            format: 'uuid',
            nullable: true
        },
        lastModificationTime: {
            type: 'string',
            format: 'date-time',
            nullable: true
        },
        lastModifierId: {
            type: 'string',
            format: 'uuid',
            nullable: true
        },
        isDeleted: {
            type: 'boolean'
        },
        deleterId: {
            type: 'string',
            format: 'uuid',
            nullable: true
        },
        deletionTime: {
            type: 'string',
            format: 'date-time',
            nullable: true
        },
        tenantId: {
            type: 'string',
            description: '租户Id',
            format: 'uuid',
            nullable: true
        },
        remark: {
            type: 'string',
            description: '备注',
            nullable: true
        },
        osaCreatorId: {
            type: 'integer',
            description: '旧系统授权创建者Id',
            format: 'int32',
            nullable: true
        },
        osaLastModifierId: {
            type: 'integer',
            description: '旧系统授权最后修改者Id',
            format: 'int32',
            nullable: true
        },
        osaDeleterId: {
            type: 'integer',
            description: '旧系统授权最后删除者Id',
            format: 'int32',
            nullable: true
        },
        extraProperties: {
            type: 'object',
            additionalProperties: {},
            description: '扩展属性,用于存储自定义字段,JSON格式',
            nullable: true
        },
        oneNETAccountId: {
            type: 'string',
            description: 'OneNET账户Id',
            nullable: true
        },
        accountPhoneNumber: {
            type: 'string',
            description: '账户手机号',
            nullable: true
        },
        oneNETAccountName: {
            type: 'string',
            description: 'OneNET账户',
            nullable: true
        },
        ioTPlatformProductId: {
            type: 'string',
            description: '物联网平台对应的产品Id',
            nullable: true
        },
        productName: {
            type: 'string',
            description: '产品名称',
            nullable: true
        },
        productAccesskey: {
            type: 'string',
            description: '产品访问密钥',
            nullable: true
        },
        deviceThingModelFileId: {
            type: 'string',
            description: '设备物模型文件Id',
            nullable: true
        },
        deviceThingModelFileName: {
            type: 'string',
            description: '设备物模型文件名称',
            nullable: true
        },
        isEnabled: {
            type: 'boolean',
            description: '是否启用'
        },
        accessProtocol: {
            type: 'integer',
            description: '接入协议',
            format: 'int32'
        },
        dataProtocol: {
            type: 'integer',
            description: '数据协议',
            format: 'int32'
        },
        nodeType: {
            '$ref': '#/components/schemas/NodeTypeEnum'
        },
        productCreateTime: {
            type: 'string',
            description: '产品创建时间',
            format: 'date-time'
        },
        productUpdateTime: {
            type: 'string',
            description: '最近修改时间',
            format: 'date-time'
        },
        network: {
            type: 'string',
            description: '联网方式',
            nullable: true
        },
        manufacturer: {
            type: 'string',
            description: '产品厂商',
            nullable: true
        },
        model: {
            type: 'string',
            description: '产品型号',
            nullable: true
        },
        brand: {
            type: 'string',
            description: '产品品牌',
            nullable: true
        },
        status: {
            '$ref': '#/components/schemas/ProductStatusEnum'
        },
        ownDeviceCount: {
            type: 'integer',
            description: '自有设备总数',
            format: 'int32'
        },
        onlineDeviceCount: {
            type: 'integer',
            description: '在线设备总数',
            format: 'int32'
        },
        offlineDeviceCount: {
            type: 'integer',
            description: '离线设备数',
            format: 'int32'
        },
        notActiveDeviceCount: {
            type: 'integer',
            description: '未激活设备数',
            format: 'int32'
        },
        communicationAddress: {
            type: 'string',
            description: '通讯服务地址',
            nullable: true
        },
        communicationAddressTLS: {
            type: 'string',
            description: 'TLS通讯服务地址',
            nullable: true
        }
    },
    additionalProperties: false
} as const;

export const OneNETProductInfoDtoPagedResultDtoSchema = {
    type: 'object',
    properties: {
        items: {
            type: 'array',
            items: {
                '$ref': '#/components/schemas/OneNETProductInfoDto'
            },
            nullable: true
        },
        totalCount: {
            type: 'integer',
            format: 'int64'
        }
    },
    additionalProperties: false
} as const;

export const OneNetAccountInsertInputSchema = {
    required: ['accountAccesskey', 'accountName', 'oneNETAccountId', 'phoneNumber'],
    type: 'object',
    properties: {
        accountName: {
            minLength: 1,
            type: 'string',
            description: '账号名称'
        },
        oneNETAccountId: {
            minLength: 1,
            type: 'string',
            description: '账号ID'
        },
        phoneNumber: {
            minLength: 1,
            pattern: '^1[3-9]\\d{9}$',
            type: 'string',
            description: '手机号码'
        },
        accountAccesskey: {
            minLength: 1,
            type: 'string',
            description: '账户通信密钥，平台可以重置密钥'
        }
    },
    additionalProperties: false
} as const;

export const OneNetAccountListInputSchema = {
    type: 'object',
    properties: {
        pageIndex: {
            type: 'integer',
            description: '当前页面.默认从1开始',
            format: 'int32'
        },
        pageSize: {
            type: 'integer',
            description: '每页多少条.每页显示多少记录',
            format: 'int32'
        },
        skipCount: {
            type: 'integer',
            description: '跳过多少条',
            format: 'int32',
            readOnly: true
        },
        sorting: {
            type: 'string',
            description: `排序
<example>
 name desc
</example>`,
            nullable: true
        },
        phoneNumber: {
            type: 'string',
            description: '手机号码',
            nullable: true
        },
        oneNETAccountId: {
            type: 'string',
            description: '账号ID',
            nullable: true
        }
    },
    additionalProperties: false
} as const;

export const OneNetAccountModifyInputSchema = {
    required: ['accountAccesskey', 'accountName', 'phoneNumber'],
    type: 'object',
    properties: {
        id: {
            type: 'string',
            description: 'Id',
            format: 'uuid'
        },
        accountName: {
            minLength: 1,
            type: 'string',
            description: '账号名称'
        },
        phoneNumber: {
            minLength: 1,
            pattern: '^1[3-9]\\d{9}$',
            type: 'string',
            description: '手机号码'
        },
        accountAccesskey: {
            minLength: 1,
            type: 'string',
            description: '账户通信密钥，平台可以重置密钥'
        }
    },
    additionalProperties: false
} as const;

export const OneNetProductInfoInsertInputSchema = {
    required: ['communicationAddress', 'ioTPlatformProductId', 'oneNETAccountId', 'productAccesskey'],
    type: 'object',
    properties: {
        oneNETAccountId: {
            minLength: 1,
            type: 'string',
            description: 'OneNET 账号ID'
        },
        ioTPlatformProductId: {
            minLength: 1,
            type: 'string',
            description: '物联网平台对应的产品Id'
        },
        productAccesskey: {
            minLength: 1,
            type: 'string',
            description: '产品访问密钥'
        },
        communicationAddress: {
            minLength: 1,
            type: 'string',
            description: '通讯服务地址'
        },
        communicationAddressTLS: {
            type: 'string',
            description: 'TLS通讯服务地址',
            nullable: true
        },
        deviceThingModelFileId: {
            type: 'string',
            description: '设备物模型文件Id',
            nullable: true
        },
        deviceThingModelFileName: {
            type: 'string',
            description: '设备物模型文件名称',
            nullable: true
        }
    },
    additionalProperties: false
} as const;

export const OneNetProductInfoListInputSchema = {
    type: 'object',
    properties: {
        pageIndex: {
            type: 'integer',
            description: '当前页面.默认从1开始',
            format: 'int32'
        },
        pageSize: {
            type: 'integer',
            description: '每页多少条.每页显示多少记录',
            format: 'int32'
        },
        skipCount: {
            type: 'integer',
            description: '跳过多少条',
            format: 'int32',
            readOnly: true
        },
        sorting: {
            type: 'string',
            description: `排序
<example>
 name desc
</example>`,
            nullable: true
        },
        oneNETAccountId: {
            type: 'string',
            description: 'OneNET账户Id',
            nullable: true
        },
        productName: {
            type: 'string',
            description: '产品名称',
            nullable: true
        },
        model: {
            type: 'string',
            description: '产品型号',
            nullable: true
        }
    },
    additionalProperties: false
} as const;

export const OneNetProductInfoModifyInputSchema = {
    required: ['communicationAddress', 'ioTPlatformProductId', 'oneNETAccountId', 'productAccesskey'],
    type: 'object',
    properties: {
        id: {
            type: 'string',
            description: '产品数据ID',
            format: 'uuid'
        },
        oneNETAccountId: {
            minLength: 1,
            type: 'string',
            description: 'OneNET 账号ID'
        },
        ioTPlatformProductId: {
            minLength: 1,
            type: 'string',
            description: '物联网平台对应的产品Id'
        },
        productAccesskey: {
            minLength: 1,
            type: 'string',
            description: '产品访问密钥'
        },
        communicationAddress: {
            minLength: 1,
            type: 'string',
            description: '通讯服务地址'
        },
        communicationAddressTLS: {
            type: 'string',
            description: 'TLS通讯服务地址',
            nullable: true
        },
        deviceThingModelFileId: {
            type: 'string',
            description: '设备物模型文件Id',
            nullable: true
        },
        deviceThingModelFileName: {
            type: 'string',
            description: '设备物模型文件名称',
            nullable: true
        }
    },
    additionalProperties: false,
    description: '修改OneNET产品'
} as const;

export const OpenApiRequestSchema = {
    type: 'object',
    properties: {
        nonce: {
            type: 'string',
            description: '用于计算签名字符的随机串',
            nullable: true
        },
        signature: {
            type: 'string',
            description: '加密签名，用以校验推送客户端身份合法性，校验方法见实例验证',
            nullable: true
        },
        time: {
            type: 'integer',
            description: '签名有效期（毫秒）',
            format: 'int64'
        },
        msg: {
            type: 'string',
            description: '消息内容，JSON字符串,具体的设备相关信息',
            nullable: true
        }
    },
    additionalProperties: false,
    description: '开放接口请求入参，所有外部接口请求参数'
} as const;

export const OpenTypeSchema = {
    enum: [10, 20, 30, 40],
    type: 'integer',
    description: '打开类型',
    format: 'int32',
    '说明：': '无=10,组件=20,内链=30,外链=40'
} as const;

export const PageDeviceInputSchema = {
    type: 'object',
    properties: {
        pageIndex: {
            type: 'integer',
            description: '当前页面.默认从1开始',
            format: 'int32'
        },
        pageSize: {
            type: 'integer',
            description: '每页多少条.每页显示多少记录',
            format: 'int32'
        },
        skipCount: {
            type: 'integer',
            description: '跳过多少条',
            format: 'int32',
            readOnly: true
        },
        sorting: {
            type: 'string',
            description: `排序
<example>
 name desc
</example>`,
            nullable: true
        },
        deviceAddress: {
            type: 'string',
            description: '设备地址',
            nullable: true
        },
        ioTPlatform: {
            '$ref': '#/components/schemas/IoTPlatformTypeEnum'
        },
        ioTPlatformDeviceOpenInfo: {
            type: 'string',
            description: '物联网平台中对应的设备Id或者名称',
            nullable: true
        },
        searchKeyword: {
            type: 'string',
            description: '搜索关键字',
            nullable: true
        }
    },
    additionalProperties: false
} as const;

export const PageFileObjectInputSchema = {
    type: 'object',
    properties: {
        pageIndex: {
            type: 'integer',
            description: '当前页面.默认从1开始',
            format: 'int32'
        },
        pageSize: {
            type: 'integer',
            description: '每页多少条.每页显示多少记录',
            format: 'int32'
        },
        skipCount: {
            type: 'integer',
            description: '跳过多少条',
            format: 'int32',
            readOnly: true
        },
        sorting: {
            type: 'string',
            description: `排序
<example>
 name desc
</example>`,
            nullable: true
        },
        startCreationTime: {
            type: 'string',
            description: '开始创建时间',
            format: 'date-time',
            nullable: true
        },
        endCreationTime: {
            type: 'string',
            description: '结束创建时间',
            format: 'date-time',
            nullable: true
        },
        fileName: {
            type: 'string',
            description: '文件名称',
            nullable: true
        }
    },
    additionalProperties: false,
    description: '分页查询文件'
} as const;

export const PageFileObjectOutputSchema = {
    type: 'object',
    properties: {
        id: {
            type: 'string',
            description: '文件Id',
            format: 'uuid'
        },
        fileSize: {
            type: 'integer',
            description: '文件大小',
            format: 'int64'
        },
        beautifySize: {
            type: 'string',
            nullable: true,
            readOnly: true
        },
        contentType: {
            type: 'string',
            description: '文件名称',
            nullable: true
        },
        fileName: {
            type: 'string',
            description: '文件名称',
            nullable: true
        },
        creationTime: {
            type: 'string',
            description: '创建时间',
            format: 'date-time'
        }
    },
    additionalProperties: false,
    description: '分页查询文件'
} as const;

export const PageFileObjectOutputPagedResultDtoSchema = {
    type: 'object',
    properties: {
        items: {
            type: 'array',
            items: {
                '$ref': '#/components/schemas/PageFileObjectOutput'
            },
            nullable: true
        },
        totalCount: {
            type: 'integer',
            format: 'int64'
        }
    },
    additionalProperties: false
} as const;

export const PageIdentityUserOutputSchema = {
    type: 'object',
    properties: {
        extraProperties: {
            type: 'object',
            additionalProperties: {},
            nullable: true,
            readOnly: true
        },
        id: {
            type: 'string',
            format: 'uuid'
        },
        creationTime: {
            type: 'string',
            format: 'date-time'
        },
        creatorId: {
            type: 'string',
            format: 'uuid',
            nullable: true
        },
        lastModificationTime: {
            type: 'string',
            format: 'date-time',
            nullable: true
        },
        lastModifierId: {
            type: 'string',
            format: 'uuid',
            nullable: true
        },
        isDeleted: {
            type: 'boolean'
        },
        deleterId: {
            type: 'string',
            format: 'uuid',
            nullable: true
        },
        deletionTime: {
            type: 'string',
            format: 'date-time',
            nullable: true
        },
        tenantId: {
            type: 'string',
            format: 'uuid',
            nullable: true
        },
        userName: {
            type: 'string',
            nullable: true
        },
        name: {
            type: 'string',
            nullable: true
        },
        surname: {
            type: 'string',
            nullable: true
        },
        email: {
            type: 'string',
            nullable: true
        },
        emailConfirmed: {
            type: 'boolean'
        },
        phoneNumber: {
            type: 'string',
            nullable: true
        },
        phoneNumberConfirmed: {
            type: 'boolean'
        },
        isActive: {
            type: 'boolean'
        },
        lockoutEnabled: {
            type: 'boolean'
        },
        accessFailedCount: {
            type: 'integer',
            format: 'int32'
        },
        lockoutEnd: {
            type: 'string',
            format: 'date-time',
            nullable: true
        },
        concurrencyStamp: {
            type: 'string',
            nullable: true
        },
        entityVersion: {
            type: 'integer',
            format: 'int32'
        },
        lastPasswordChangeTime: {
            type: 'string',
            format: 'date-time',
            nullable: true
        },
        twoFactorEnabled: {
            type: 'boolean',
            description: '是否开启双因素验证码'
        }
    },
    additionalProperties: false
} as const;

export const PageIdentityUserOutputPagedResultDtoSchema = {
    type: 'object',
    properties: {
        items: {
            type: 'array',
            items: {
                '$ref': '#/components/schemas/PageIdentityUserOutput'
            },
            nullable: true
        },
        totalCount: {
            type: 'integer',
            format: 'int64'
        }
    },
    additionalProperties: false
} as const;

export const PageLanguageInputSchema = {
    type: 'object',
    properties: {
        pageIndex: {
            type: 'integer',
            description: '当前页面.默认从1开始',
            format: 'int32'
        },
        pageSize: {
            type: 'integer',
            description: '每页多少条.每页显示多少记录',
            format: 'int32'
        },
        skipCount: {
            type: 'integer',
            description: '跳过多少条',
            format: 'int32',
            readOnly: true
        },
        sorting: {
            type: 'string',
            description: `排序
<example>
 name desc
</example>`,
            nullable: true
        },
        filter: {
            type: 'string',
            nullable: true
        }
    },
    additionalProperties: false,
    description: '创建语言'
} as const;

export const PageLanguageOutputSchema = {
    type: 'object',
    properties: {
        id: {
            type: 'string',
            description: '语言Id',
            format: 'uuid'
        },
        cultureName: {
            type: 'string',
            description: '语言名称',
            nullable: true
        },
        uiCultureName: {
            type: 'string',
            description: 'Ui语言名称',
            nullable: true
        },
        displayName: {
            type: 'string',
            description: '显示名称',
            nullable: true
        },
        flagIcon: {
            type: 'string',
            description: '图标',
            nullable: true
        },
        isEnabled: {
            type: 'boolean',
            description: '是否启用'
        },
        creationTime: {
            type: 'string',
            description: '创建时间',
            format: 'date-time'
        },
        isDefault: {
            type: 'boolean',
            description: '是否是默认语言'
        }
    },
    additionalProperties: false,
    description: '创建语言'
} as const;

export const PageLanguageOutputPagedResultDtoSchema = {
    type: 'object',
    properties: {
        items: {
            type: 'array',
            items: {
                '$ref': '#/components/schemas/PageLanguageOutput'
            },
            nullable: true
        },
        totalCount: {
            type: 'integer',
            format: 'int64'
        }
    },
    additionalProperties: false
} as const;

export const PageLanguageTextInputSchema = {
    type: 'object',
    properties: {
        pageIndex: {
            type: 'integer',
            description: '当前页面.默认从1开始',
            format: 'int32'
        },
        pageSize: {
            type: 'integer',
            description: '每页多少条.每页显示多少记录',
            format: 'int32'
        },
        skipCount: {
            type: 'integer',
            description: '跳过多少条',
            format: 'int32',
            readOnly: true
        },
        sorting: {
            type: 'string',
            description: `排序
<example>
 name desc
</example>`,
            nullable: true
        },
        cultureName: {
            type: 'string',
            description: '语言',
            nullable: true
        },
        resourceName: {
            type: 'string',
            description: '资源',
            nullable: true
        },
        filter: {
            type: 'string',
            description: '查询条件 name or value',
            nullable: true
        }
    },
    additionalProperties: false,
    description: '创建语言文本'
} as const;

export const PageLanguageTextOutputSchema = {
    type: 'object',
    properties: {
        resourceName: {
            type: 'string',
            description: '资源名称',
            nullable: true
        },
        name: {
            type: 'string',
            description: '名称',
            nullable: true
        },
        value: {
            type: 'string',
            description: '值',
            nullable: true
        }
    },
    additionalProperties: false,
    description: '创建语言文本'
} as const;

export const PageLanguageTextOutputPagedResultDtoSchema = {
    type: 'object',
    properties: {
        items: {
            type: 'array',
            items: {
                '$ref': '#/components/schemas/PageLanguageTextOutput'
            },
            nullable: true
        },
        totalCount: {
            type: 'integer',
            format: 'int64'
        }
    },
    additionalProperties: false
} as const;

export const PageMenuInputSchema = {
    type: 'object',
    properties: {
        pageIndex: {
            type: 'integer',
            description: '当前页面.默认从1开始',
            format: 'int32'
        },
        pageSize: {
            type: 'integer',
            description: '每页多少条.每页显示多少记录',
            format: 'int32'
        },
        skipCount: {
            type: 'integer',
            description: '跳过多少条',
            format: 'int32',
            readOnly: true
        },
        sorting: {
            type: 'string',
            description: `排序
<example>
 name desc
</example>`,
            nullable: true
        },
        startCreationTime: {
            type: 'string',
            description: '开始创建时间',
            format: 'date-time',
            nullable: true
        },
        endCreationTime: {
            type: 'string',
            description: '结束创建时间',
            format: 'date-time',
            nullable: true
        }
    },
    additionalProperties: false,
    description: '分页查询菜单'
} as const;

export const PageMenuOutputSchema = {
    type: 'object',
    properties: {
        id: {
            type: 'string',
            description: '菜单Id',
            format: 'uuid'
        },
        parentId: {
            type: 'string',
            format: 'uuid',
            nullable: true
        },
        name: {
            type: 'string',
            description: '唯一编码',
            nullable: true
        },
        localizationTitle: {
            type: 'string',
            description: '标题',
            nullable: true
        },
        displayTitle: {
            type: 'string',
            description: '标题',
            nullable: true
        },
        title: {
            type: 'string',
            description: '标题',
            nullable: true
        },
        icon: {
            type: 'string',
            description: '图标',
            nullable: true
        },
        keepAlive: {
            type: 'boolean',
            description: '是否缓存'
        },
        hideInMenu: {
            type: 'boolean',
            description: '是否显示'
        },
        order: {
            type: 'integer',
            description: '排序',
            format: 'int32'
        },
        path: {
            type: 'string',
            description: '路由/接口地址',
            nullable: true
        },
        menuType: {
            '$ref': '#/components/schemas/MenuType'
        },
        menuTypeDescription: {
            type: 'string',
            nullable: true,
            readOnly: true
        },
        openType: {
            '$ref': '#/components/schemas/OpenType'
        },
        openTypeDescription: {
            type: 'string',
            nullable: true,
            readOnly: true
        },
        url: {
            type: 'string',
            description: '内外链地址',
            nullable: true
        },
        component: {
            type: 'string',
            description: '组件地址',
            nullable: true
        },
        creationTime: {
            type: 'string',
            description: '创建时间',
            format: 'date-time'
        },
        enabled: {
            type: 'boolean',
            description: '是否启用'
        },
        policy: {
            type: 'string',
            description: '权限',
            nullable: true
        }
    },
    additionalProperties: false,
    description: '分页查询菜单'
} as const;

export const PageMenuOutputPagedResultDtoSchema = {
    type: 'object',
    properties: {
        items: {
            type: 'array',
            items: {
                '$ref': '#/components/schemas/PageMenuOutput'
            },
            nullable: true
        },
        totalCount: {
            type: 'integer',
            format: 'int64'
        }
    },
    additionalProperties: false
} as const;

export const PageTenantConnectionStringInputSchema = {
    type: 'object',
    properties: {
        id: {
            type: 'string',
            description: '租户id',
            format: 'uuid'
        },
        name: {
            type: 'string',
            description: '连接字符串名称',
            nullable: true
        },
        value: {
            type: 'string',
            description: '连接字符串地址',
            nullable: true
        }
    },
    additionalProperties: false
} as const;

export const PageTenantConnectionStringOutputSchema = {
    type: 'object',
    properties: {
        tenantId: {
            type: 'string',
            description: '租户id',
            format: 'uuid'
        },
        name: {
            type: 'string',
            description: '连接字符串名称',
            nullable: true
        },
        value: {
            type: 'string',
            description: '连接字符串地址',
            nullable: true
        }
    },
    additionalProperties: false
} as const;

export const PageTenantConnectionStringOutputPagedResultDtoSchema = {
    type: 'object',
    properties: {
        items: {
            type: 'array',
            items: {
                '$ref': '#/components/schemas/PageTenantConnectionStringOutput'
            },
            nullable: true
        },
        totalCount: {
            type: 'integer',
            format: 'int64'
        }
    },
    additionalProperties: false
} as const;

export const PageTextTemplateInputSchema = {
    type: 'object',
    properties: {
        pageIndex: {
            type: 'integer',
            description: '当前页面.默认从1开始',
            format: 'int32'
        },
        pageSize: {
            type: 'integer',
            description: '每页多少条.每页显示多少记录',
            format: 'int32'
        },
        skipCount: {
            type: 'integer',
            description: '跳过多少条',
            format: 'int32',
            readOnly: true
        },
        sorting: {
            type: 'string',
            description: `排序
<example>
 name desc
</example>`,
            nullable: true
        },
        name: {
            type: 'string',
            description: '名称',
            nullable: true
        },
        code: {
            type: 'string',
            description: '编码',
            nullable: true
        },
        content: {
            type: 'string',
            description: '内容',
            nullable: true
        },
        startCreationTime: {
            type: 'string',
            description: '开始创建时间',
            format: 'date-time',
            nullable: true
        },
        endCreationTime: {
            type: 'string',
            description: '结束创建时间',
            format: 'date-time',
            nullable: true
        }
    },
    additionalProperties: false,
    description: '分页查询模板'
} as const;

export const PageTextTemplateOutputSchema = {
    type: 'object',
    properties: {
        id: {
            type: 'string',
            description: '模板Id',
            format: 'uuid'
        },
        name: {
            type: 'string',
            description: '名称',
            nullable: true
        },
        code: {
            type: 'string',
            description: '编码',
            nullable: true
        },
        content: {
            type: 'string',
            description: '内容',
            nullable: true
        },
        cultureName: {
            type: 'string',
            description: '语言',
            nullable: true
        },
        creationTime: {
            type: 'string',
            description: '创建时间',
            format: 'date-time'
        }
    },
    additionalProperties: false,
    description: '分页查询模板'
} as const;

export const PageTextTemplateOutputPagedResultDtoSchema = {
    type: 'object',
    properties: {
        items: {
            type: 'array',
            items: {
                '$ref': '#/components/schemas/PageTextTemplateOutput'
            },
            nullable: true
        },
        totalCount: {
            type: 'integer',
            format: 'int64'
        }
    },
    additionalProperties: false
} as const;

export const PageThingModelInputSchema = {
    type: 'object',
    properties: {
        pageIndex: {
            type: 'integer',
            description: '当前页面.默认从1开始',
            format: 'int32'
        },
        pageSize: {
            type: 'integer',
            description: '每页多少条.每页显示多少记录',
            format: 'int32'
        },
        skipCount: {
            type: 'integer',
            description: '跳过多少条',
            format: 'int32',
            readOnly: true
        },
        sorting: {
            type: 'string',
            description: `排序
<example>
 name desc
</example>`,
            nullable: true
        },
        ioTPlatform: {
            '$ref': '#/components/schemas/IoTPlatformTypeEnum'
        },
        searchKeyword: {
            type: 'string',
            description: '搜索关键字',
            nullable: true
        },
        ioTPlatformProductId: {
            type: 'string',
            description: '物联网平台中对应的产品Id',
            nullable: true
        },
        filedType: {
            type: 'string',
            description: '物联网平台中对应产品物模型属性或者事件类型 JiShe.ServicePro.Core.DataDictionaryTypeConst',
            nullable: true
        },
        searchKeyWords: {
            type: 'string',
            description: '搜索关键词',
            nullable: true
        }
    },
    additionalProperties: false
} as const;

export const PagingAuditLogActionOutputSchema = {
    type: 'object',
    properties: {
        id: {
            type: 'string',
            format: 'uuid'
        },
        tenantId: {
            type: 'string',
            format: 'uuid',
            nullable: true
        },
        auditLogId: {
            type: 'string',
            format: 'uuid'
        },
        serviceName: {
            type: 'string',
            nullable: true
        },
        methodName: {
            type: 'string',
            nullable: true
        },
        parameters: {
            type: 'string',
            nullable: true
        },
        executionTime: {
            type: 'string',
            nullable: true
        },
        executionDuration: {
            type: 'integer',
            format: 'int32'
        },
        extraProperties: {
            type: 'object',
            additionalProperties: {},
            nullable: true
        }
    },
    additionalProperties: false
} as const;

export const PagingAuditLogInputSchema = {
    type: 'object',
    properties: {
        pageIndex: {
            type: 'integer',
            description: '当前页面.默认从1开始',
            format: 'int32'
        },
        pageSize: {
            type: 'integer',
            description: '每页多少条.每页显示多少记录',
            format: 'int32'
        },
        skipCount: {
            type: 'integer',
            description: '跳过多少条',
            format: 'int32',
            readOnly: true
        },
        sorting: {
            type: 'string',
            description: '排序',
            nullable: true
        },
        startTime: {
            type: 'string',
            description: '开始时间',
            format: 'date-time',
            nullable: true
        },
        endTime: {
            type: 'string',
            description: '结束时间',
            format: 'date-time',
            nullable: true
        },
        httpMethod: {
            type: 'string',
            description: '请求方法',
            nullable: true
        },
        url: {
            type: 'string',
            description: '请求地址',
            nullable: true
        },
        userId: {
            type: 'string',
            description: '用户Id',
            format: 'uuid',
            nullable: true
        },
        userName: {
            type: 'string',
            description: '用户名',
            nullable: true
        },
        applicationName: {
            type: 'string',
            description: '应用程序名称',
            nullable: true
        },
        correlationId: {
            type: 'string',
            description: 'RequestId',
            nullable: true
        },
        maxExecutionDuration: {
            type: 'integer',
            description: '最大执行时间',
            format: 'int32',
            nullable: true
        },
        minExecutionDuration: {
            type: 'integer',
            description: '最小执行时间',
            format: 'int32',
            nullable: true
        },
        hasException: {
            type: 'boolean',
            description: '是否有异常',
            nullable: true
        },
        httpStatusCode: {
            '$ref': '#/components/schemas/HttpStatusCode'
        },
        clientIpAddress: {
            type: 'string',
            description: '客户端IP',
            nullable: true
        }
    },
    additionalProperties: false
} as const;

export const PagingAuditLogOutputSchema = {
    type: 'object',
    properties: {
        applicationName: {
            type: 'string',
            nullable: true
        },
        userId: {
            type: 'string',
            format: 'uuid',
            nullable: true
        },
        userName: {
            type: 'string',
            nullable: true
        },
        tenantId: {
            type: 'string',
            format: 'uuid',
            nullable: true
        },
        tenantName: {
            type: 'string',
            nullable: true
        },
        impersonatorUserId: {
            type: 'string',
            format: 'uuid',
            nullable: true
        },
        impersonatorTenantId: {
            type: 'string',
            format: 'uuid',
            nullable: true
        },
        executionTime: {
            type: 'string',
            nullable: true
        },
        executionDuration: {
            type: 'integer',
            format: 'int32'
        },
        clientIpAddress: {
            type: 'string',
            nullable: true
        },
        clientName: {
            type: 'string',
            nullable: true
        },
        clientId: {
            type: 'string',
            nullable: true
        },
        correlationId: {
            type: 'string',
            nullable: true
        },
        browserInfo: {
            type: 'string',
            nullable: true
        },
        httpMethod: {
            type: 'string',
            nullable: true
        },
        url: {
            type: 'string',
            nullable: true
        },
        exceptions: {
            type: 'string',
            nullable: true
        },
        comments: {
            type: 'string',
            nullable: true
        },
        httpStatusCode: {
            type: 'integer',
            format: 'int32',
            nullable: true
        },
        entityChanges: {
            type: 'array',
            items: {
                '$ref': '#/components/schemas/PagingEntityChangeOutput'
            },
            nullable: true
        },
        actions: {
            type: 'array',
            items: {
                '$ref': '#/components/schemas/PagingAuditLogActionOutput'
            },
            nullable: true
        }
    },
    additionalProperties: false
} as const;

export const PagingAuditLogOutputPagedResultDtoSchema = {
    type: 'object',
    properties: {
        items: {
            type: 'array',
            items: {
                '$ref': '#/components/schemas/PagingAuditLogOutput'
            },
            nullable: true
        },
        totalCount: {
            type: 'integer',
            format: 'int64'
        }
    },
    additionalProperties: false
} as const;

export const PagingDataDictionaryDetailInputSchema = {
    type: 'object',
    properties: {
        pageIndex: {
            type: 'integer',
            description: '当前页面.默认从1开始',
            format: 'int32'
        },
        pageSize: {
            type: 'integer',
            description: '每页多少条.每页显示多少记录',
            format: 'int32'
        },
        skipCount: {
            type: 'integer',
            description: '跳过多少条',
            format: 'int32',
            readOnly: true
        },
        sorting: {
            type: 'string',
            description: `排序
<example>
 name desc
</example>`,
            nullable: true
        },
        dataDictionaryId: {
            type: 'string',
            format: 'uuid'
        },
        filter: {
            type: 'string',
            nullable: true
        }
    },
    additionalProperties: false
} as const;

export const PagingDataDictionaryDetailOutputSchema = {
    type: 'object',
    properties: {
        id: {
            type: 'string',
            format: 'uuid'
        },
        dataDictionaryId: {
            type: 'string',
            description: '所属字典Id',
            format: 'uuid'
        },
        code: {
            type: 'string',
            description: '字典明细编码',
            nullable: true
        },
        order: {
            type: 'integer',
            description: '展现列表时排序用',
            format: 'int32'
        },
        displayText: {
            type: 'string',
            description: '英文显示名',
            nullable: true
        },
        description: {
            type: 'string',
            description: '描述',
            nullable: true
        },
        extendedAttribute: {
            type: 'string',
            description: '扩展属性',
            nullable: true
        },
        isEnabled: {
            type: 'boolean',
            description: '启/停用(默认启用)'
        }
    },
    additionalProperties: false
} as const;

export const PagingDataDictionaryDetailOutputPagedResultDtoSchema = {
    type: 'object',
    properties: {
        items: {
            type: 'array',
            items: {
                '$ref': '#/components/schemas/PagingDataDictionaryDetailOutput'
            },
            nullable: true
        },
        totalCount: {
            type: 'integer',
            format: 'int64'
        }
    },
    additionalProperties: false
} as const;

export const PagingDataDictionaryInputSchema = {
    type: 'object',
    properties: {
        pageIndex: {
            type: 'integer',
            description: '当前页面.默认从1开始',
            format: 'int32'
        },
        pageSize: {
            type: 'integer',
            description: '每页多少条.每页显示多少记录',
            format: 'int32'
        },
        skipCount: {
            type: 'integer',
            description: '跳过多少条',
            format: 'int32',
            readOnly: true
        },
        sorting: {
            type: 'string',
            description: `排序
<example>
 name desc
</example>`,
            nullable: true
        },
        filter: {
            type: 'string',
            nullable: true
        }
    },
    additionalProperties: false
} as const;

export const PagingDataDictionaryOutputSchema = {
    type: 'object',
    properties: {
        id: {
            type: 'string',
            format: 'uuid'
        },
        code: {
            type: 'string',
            description: '字典编码',
            nullable: true
        },
        displayText: {
            type: 'string',
            description: '显示名',
            nullable: true
        },
        description: {
            type: 'string',
            description: '描述',
            nullable: true
        }
    },
    additionalProperties: false
} as const;

export const PagingDataDictionaryOutputPagedResultDtoSchema = {
    type: 'object',
    properties: {
        items: {
            type: 'array',
            items: {
                '$ref': '#/components/schemas/PagingDataDictionaryOutput'
            },
            nullable: true
        },
        totalCount: {
            type: 'integer',
            format: 'int64'
        }
    },
    additionalProperties: false
} as const;

export const PagingEntityChangeOutputSchema = {
    type: 'object',
    properties: {
        id: {
            type: 'string',
            format: 'uuid'
        },
        auditLogId: {
            type: 'string',
            format: 'uuid'
        },
        tenantId: {
            type: 'string',
            format: 'uuid',
            nullable: true
        },
        changeTime: {
            type: 'string',
            nullable: true
        },
        changeType: {
            '$ref': '#/components/schemas/EntityChangeType'
        },
        changeTypeDescription: {
            type: 'string',
            nullable: true
        },
        entityTenantId: {
            type: 'string',
            format: 'uuid',
            nullable: true
        },
        entityId: {
            type: 'string',
            nullable: true
        },
        entityTypeFullName: {
            type: 'string',
            nullable: true
        },
        propertyChanges: {
            type: 'array',
            items: {
                '$ref': '#/components/schemas/PagingEntityPropertyChangeOutput'
            },
            nullable: true
        },
        extraProperties: {
            type: 'object',
            additionalProperties: {},
            nullable: true
        }
    },
    additionalProperties: false
} as const;

export const PagingEntityPropertyChangeOutputSchema = {
    type: 'object',
    properties: {
        id: {
            type: 'string',
            format: 'uuid'
        },
        tenantId: {
            type: 'string',
            format: 'uuid',
            nullable: true
        },
        entityChangeId: {
            type: 'string',
            format: 'uuid'
        },
        newValue: {
            type: 'string',
            nullable: true
        },
        originalValue: {
            type: 'string',
            nullable: true
        },
        propertyName: {
            type: 'string',
            nullable: true
        },
        propertyTypeFullName: {
            type: 'string',
            nullable: true
        }
    },
    additionalProperties: false
} as const;

export const PagingIdentitySecurityLogInputSchema = {
    type: 'object',
    properties: {
        pageIndex: {
            type: 'integer',
            description: '当前页面.默认从1开始',
            format: 'int32'
        },
        pageSize: {
            type: 'integer',
            description: '每页多少条.每页显示多少记录',
            format: 'int32'
        },
        skipCount: {
            type: 'integer',
            description: '跳过多少条',
            format: 'int32',
            readOnly: true
        },
        sorting: {
            type: 'string',
            description: '排序',
            nullable: true
        },
        startTime: {
            type: 'string',
            description: '开始时间',
            format: 'date-time',
            nullable: true
        },
        endTime: {
            type: 'string',
            description: '结束时间',
            format: 'date-time',
            nullable: true
        },
        identity: {
            type: 'string',
            nullable: true
        },
        action: {
            type: 'string',
            description: '请求地址',
            nullable: true
        },
        userId: {
            type: 'string',
            description: '用户Id',
            format: 'uuid',
            nullable: true
        },
        userName: {
            type: 'string',
            description: '用户名',
            nullable: true
        },
        applicationName: {
            type: 'string',
            description: '应用程序名称',
            nullable: true
        },
        correlationId: {
            type: 'string',
            description: 'RequestId',
            nullable: true
        },
        clientId: {
            type: 'string',
            description: 'ClientId',
            nullable: true
        }
    },
    additionalProperties: false
} as const;

export const PagingIdentitySecurityLogOutputSchema = {
    type: 'object',
    properties: {
        id: {
            type: 'string',
            format: 'uuid'
        },
        tenantId: {
            type: 'string',
            format: 'uuid',
            nullable: true
        },
        applicationName: {
            type: 'string',
            nullable: true
        },
        identity: {
            type: 'string',
            nullable: true
        },
        action: {
            type: 'string',
            nullable: true
        },
        userId: {
            type: 'string',
            format: 'uuid',
            nullable: true
        },
        userName: {
            type: 'string',
            nullable: true
        },
        tenantName: {
            type: 'string',
            nullable: true
        },
        clientId: {
            type: 'string',
            nullable: true
        },
        correlationId: {
            type: 'string',
            nullable: true
        },
        clientIpAddress: {
            type: 'string',
            nullable: true
        },
        browserInfo: {
            type: 'string',
            nullable: true
        },
        creationTime: {
            type: 'string',
            format: 'date-time'
        }
    },
    additionalProperties: false
} as const;

export const PagingIdentitySecurityLogOutputPagedResultDtoSchema = {
    type: 'object',
    properties: {
        items: {
            type: 'array',
            items: {
                '$ref': '#/components/schemas/PagingIdentitySecurityLogOutput'
            },
            nullable: true
        },
        totalCount: {
            type: 'integer',
            format: 'int64'
        }
    },
    additionalProperties: false
} as const;

export const PagingNotificationInputSchema = {
    type: 'object',
    properties: {
        pageIndex: {
            type: 'integer',
            description: '当前页面.默认从1开始',
            format: 'int32'
        },
        pageSize: {
            type: 'integer',
            description: '每页多少条.每页显示多少记录',
            format: 'int32'
        },
        skipCount: {
            type: 'integer',
            description: '跳过多少条',
            format: 'int32',
            readOnly: true
        },
        sorting: {
            type: 'string',
            description: `排序
<example>
 name desc
</example>`,
            nullable: true
        },
        title: {
            type: 'string',
            description: '标题',
            nullable: true
        },
        content: {
            type: 'string',
            description: '内容',
            nullable: true
        },
        senderUserId: {
            type: 'string',
            description: '发送者Id',
            format: 'uuid',
            nullable: true
        },
        senderUserName: {
            type: 'string',
            description: '发送者名称',
            nullable: true
        },
        receiverUserId: {
            type: 'string',
            description: '接受者Id',
            format: 'uuid',
            nullable: true
        },
        receiverUserName: {
            type: 'string',
            description: '接受者名称',
            nullable: true
        },
        read: {
            type: 'boolean',
            description: '是否已读',
            nullable: true
        },
        startReadTime: {
            type: 'string',
            description: '已读开始时间',
            format: 'date-time',
            nullable: true
        },
        endReadTime: {
            type: 'string',
            description: '已读结束时间',
            format: 'date-time',
            nullable: true
        },
        messageType: {
            '$ref': '#/components/schemas/MessageType'
        },
        messageLevel: {
            '$ref': '#/components/schemas/MessageLevel'
        }
    },
    additionalProperties: false
} as const;

export const PagingNotificationOutputSchema = {
    type: 'object',
    properties: {
        id: {
            type: 'string',
            format: 'uuid'
        },
        tenantId: {
            type: 'string',
            description: '租户id',
            format: 'uuid',
            nullable: true
        },
        title: {
            type: 'string',
            description: '消息标题',
            nullable: true
        },
        content: {
            type: 'string',
            description: '消息内容',
            nullable: true
        },
        messageType: {
            '$ref': '#/components/schemas/MessageType'
        },
        messageTypeName: {
            type: 'string',
            nullable: true,
            readOnly: true
        },
        messageLevel: {
            '$ref': '#/components/schemas/MessageLevel'
        },
        messageLevelName: {
            type: 'string',
            nullable: true,
            readOnly: true
        },
        senderUserId: {
            type: 'string',
            description: '发送人',
            format: 'uuid'
        },
        senderUserName: {
            type: 'string',
            description: '发送人用户名',
            nullable: true
        },
        receiveUserId: {
            type: 'string',
            description: `订阅人
消息类型是广播消息时，订阅人为空`,
            format: 'uuid',
            nullable: true
        },
        receiveUserName: {
            type: 'string',
            description: `接收人用户名
消息类型是广播消息时，订接收人用户名为空`,
            nullable: true
        },
        read: {
            type: 'boolean',
            description: '是否已读'
        },
        readTime: {
            type: 'string',
            description: '已读时间',
            format: 'date-time',
            nullable: true
        },
        creationTime: {
            type: 'string',
            format: 'date-time'
        }
    },
    additionalProperties: false
} as const;

export const PagingNotificationOutputPagedResultDtoSchema = {
    type: 'object',
    properties: {
        items: {
            type: 'array',
            items: {
                '$ref': '#/components/schemas/PagingNotificationOutput'
            },
            nullable: true
        },
        totalCount: {
            type: 'integer',
            format: 'int64'
        }
    },
    additionalProperties: false
} as const;

export const PagingNotificationSubscriptionInputSchema = {
    type: 'object',
    properties: {
        pageIndex: {
            type: 'integer',
            description: '当前页面.默认从1开始',
            format: 'int32'
        },
        pageSize: {
            type: 'integer',
            description: '每页多少条.每页显示多少记录',
            format: 'int32'
        },
        skipCount: {
            type: 'integer',
            description: '跳过多少条',
            format: 'int32',
            readOnly: true
        },
        sorting: {
            type: 'string',
            description: `排序
<example>
 name desc
</example>`,
            nullable: true
        },
        notificationId: {
            type: 'string',
            format: 'uuid'
        },
        receiverUserId: {
            type: 'string',
            description: '接受者Id',
            format: 'uuid',
            nullable: true
        },
        receiverUserName: {
            type: 'string',
            description: '接受者名称',
            nullable: true
        },
        read: {
            type: 'boolean',
            description: '是否已读',
            nullable: true
        },
        startReadTime: {
            type: 'string',
            description: '已读开始时间',
            format: 'date-time',
            nullable: true
        },
        endReadTime: {
            type: 'string',
            description: '已读结束时间',
            format: 'date-time',
            nullable: true
        }
    },
    additionalProperties: false
} as const;

export const PagingNotificationSubscriptionOutputSchema = {
    type: 'object',
    properties: {
        id: {
            type: 'string',
            format: 'uuid'
        },
        tenantId: {
            type: 'string',
            description: '租户id',
            format: 'uuid',
            nullable: true
        },
        notificationId: {
            type: 'string',
            description: '消息Id',
            format: 'uuid'
        },
        receiveUserId: {
            type: 'string',
            description: '接收人id',
            format: 'uuid'
        },
        receiveUserName: {
            type: 'string',
            description: '接收人用户名',
            nullable: true
        },
        read: {
            type: 'boolean',
            description: '是否已读'
        },
        readTime: {
            type: 'string',
            description: '已读时间',
            format: 'date-time'
        },
        title: {
            type: 'string',
            description: '消息标题',
            nullable: true
        },
        content: {
            type: 'string',
            description: '消息内容',
            nullable: true
        },
        messageType: {
            '$ref': '#/components/schemas/MessageType'
        },
        messageTypeName: {
            type: 'string',
            nullable: true,
            readOnly: true
        },
        messageLevel: {
            '$ref': '#/components/schemas/MessageLevel'
        },
        messageLevelName: {
            type: 'string',
            nullable: true,
            readOnly: true
        },
        senderUserId: {
            type: 'string',
            description: '发送人',
            format: 'uuid'
        },
        senderUserName: {
            type: 'string',
            description: '发送人用户名',
            nullable: true
        }
    },
    additionalProperties: false
} as const;

export const PagingNotificationSubscriptionOutputPagedResultDtoSchema = {
    type: 'object',
    properties: {
        items: {
            type: 'array',
            items: {
                '$ref': '#/components/schemas/PagingNotificationSubscriptionOutput'
            },
            nullable: true
        },
        totalCount: {
            type: 'integer',
            format: 'int64'
        }
    },
    additionalProperties: false
} as const;

export const PagingRoleListInputSchema = {
    type: 'object',
    properties: {
        pageIndex: {
            type: 'integer',
            description: '当前页面.默认从1开始',
            format: 'int32'
        },
        pageSize: {
            type: 'integer',
            description: '每页多少条.每页显示多少记录',
            format: 'int32'
        },
        skipCount: {
            type: 'integer',
            description: '跳过多少条',
            format: 'int32',
            readOnly: true
        },
        sorting: {
            type: 'string',
            description: `排序
<example>
 name desc
</example>`,
            nullable: true
        },
        filter: {
            type: 'string',
            nullable: true
        }
    },
    additionalProperties: false
} as const;

export const PagingTenantInputSchema = {
    type: 'object',
    properties: {
        pageIndex: {
            type: 'integer',
            description: '当前页面.默认从1开始',
            format: 'int32'
        },
        pageSize: {
            type: 'integer',
            description: '每页多少条.每页显示多少记录',
            format: 'int32'
        },
        skipCount: {
            type: 'integer',
            description: '跳过多少条',
            format: 'int32',
            readOnly: true
        },
        sorting: {
            type: 'string',
            description: `排序
<example>
 name desc
</example>`,
            nullable: true
        },
        filter: {
            type: 'string',
            nullable: true
        }
    },
    additionalProperties: false
} as const;

export const PagingUserListInputSchema = {
    type: 'object',
    properties: {
        pageIndex: {
            type: 'integer',
            description: '当前页面.默认从1开始',
            format: 'int32'
        },
        pageSize: {
            type: 'integer',
            description: '每页多少条.每页显示多少记录',
            format: 'int32'
        },
        skipCount: {
            type: 'integer',
            description: '跳过多少条',
            format: 'int32',
            readOnly: true
        },
        sorting: {
            type: 'string',
            description: `排序
<example>
 name desc
</example>`,
            nullable: true
        },
        filter: {
            type: 'string',
            description: '关键字',
            nullable: true
        }
    },
    additionalProperties: false
} as const;

export const ParameterApiDescriptionModelSchema = {
    type: 'object',
    properties: {
        nameOnMethod: {
            type: 'string',
            nullable: true
        },
        name: {
            type: 'string',
            nullable: true
        },
        jsonName: {
            type: 'string',
            nullable: true
        },
        type: {
            type: 'string',
            nullable: true
        },
        typeSimple: {
            type: 'string',
            nullable: true
        },
        isOptional: {
            type: 'boolean'
        },
        defaultValue: {
            nullable: true
        },
        constraintTypes: {
            type: 'array',
            items: {
                type: 'string'
            },
            nullable: true
        },
        bindingSourceId: {
            type: 'string',
            nullable: true
        },
        descriptorName: {
            type: 'string',
            nullable: true
        }
    },
    additionalProperties: false
} as const;

export const PermissionOutputSchema = {
    type: 'object',
    properties: {
        grants: {
            type: 'array',
            items: {
                type: 'string'
            },
            nullable: true
        },
        allGrants: {
            type: 'array',
            items: {
                type: 'string'
            },
            nullable: true
        },
        permissions: {
            type: 'array',
            items: {
                '$ref': '#/components/schemas/PermissionTreeDto'
            },
            nullable: true
        }
    },
    additionalProperties: false
} as const;

export const PermissionTreeDtoSchema = {
    type: 'object',
    properties: {
        title: {
            type: 'string',
            nullable: true
        },
        key: {
            type: 'string',
            nullable: true
        },
        children: {
            type: 'array',
            items: {
                '$ref': '#/components/schemas/PermissionTreeDto'
            },
            nullable: true
        }
    },
    additionalProperties: false
} as const;

export const ProductNodeTypeEnumSchema = {
    enum: [1, 2],
    type: 'integer',
    description: '产品节点类型',
    format: 'int32',
    '说明：': 'Device=1,Gateway=2'
} as const;

export const ProductProtocolEnumSchema = {
    enum: [1, 2, 3, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30],
    type: 'integer',
    description: '产品协议',
    format: 'int32',
    '说明：': 'tlink=1,MQTT=2,LWM2M=3,HTTP=5,JT/T808=6,TCP=7,TCP私有=8,UDP私有=9,MQTT(网关设备)=10,南向云对接=11,MQTT(网关子设备协议)=12,蓝牙(网关子设备协议)=13,ZigBee(网关子设备协议)=14,其他(网关子设备协议)=15,Modbus=16,gb28181=17,GA/T1400=18,ehome=19,UDP=20,TR069=21,GBT_26875_2011=22,银通TCP=23,COAP协议=24,FACP人脸门禁协议=25,ACCP协议=26,FIIA协议=27,SnapEx协议=28,CameraV协议=29,AIVP协议=30'
} as const;

export const ProductStatusEnumSchema = {
    enum: [1, 2, 3, 4, 5],
    type: 'integer',
    description: '开发状态枚举',
    format: 'int32',
    '说明：': '开发中=1,审核中=2,审核未通过=3,已发布=4,已下架=5'
} as const;

export const PropertyApiDescriptionModelSchema = {
    type: 'object',
    properties: {
        name: {
            type: 'string',
            nullable: true
        },
        jsonName: {
            type: 'string',
            nullable: true
        },
        type: {
            type: 'string',
            nullable: true
        },
        typeSimple: {
            type: 'string',
            nullable: true
        },
        isRequired: {
            type: 'boolean'
        },
        minLength: {
            type: 'integer',
            format: 'int32',
            nullable: true
        },
        maxLength: {
            type: 'integer',
            format: 'int32',
            nullable: true
        },
        minimum: {
            type: 'string',
            nullable: true
        },
        maximum: {
            type: 'string',
            nullable: true
        },
        regex: {
            type: 'string',
            nullable: true
        }
    },
    additionalProperties: false
} as const;

export const QueryCTWingAepReceiveMessageInputSchema = {
    type: 'object',
    properties: {
        pageIndex: {
            type: 'integer',
            description: '当前页面.默认从1开始',
            format: 'int32'
        },
        pageSize: {
            type: 'integer',
            description: '每页多少条.每页显示多少记录',
            format: 'int32'
        },
        skipCount: {
            type: 'integer',
            description: '跳过多少条',
            format: 'int32',
            readOnly: true
        },
        sorting: {
            type: 'string',
            description: `排序
<example>
 name desc
</example>`,
            nullable: true
        },
        ioTDataType: {
            type: 'string',
            description: '数据类型',
            nullable: true
        },
        deviceType: {
            '$ref': '#/components/schemas/DeviceTypeEnum'
        },
        deviceAddress: {
            type: 'string',
            description: '设备ID,数据生成者，例如集中器ID,电表ID、水表ID、流量计ID、传感器ID等',
            nullable: true
        },
        startCreationTime: {
            type: 'string',
            description: '开始创建时间',
            format: 'date-time',
            nullable: true
        },
        endCreationTime: {
            type: 'string',
            description: '结束创建时间',
            format: 'date-time',
            nullable: true
        },
        isNeedPaging: {
            type: 'boolean',
            description: '是否需要分页， 默认为true'
        },
        ioTPlatformDeviceOpenInfo: {
            type: 'string',
            description: '物联网平台设备ID',
            nullable: true
        }
    },
    additionalProperties: false,
    description: '查询CTWing接收消息'
} as const;

export const QueryCTWingAepReceiveMessageOutputSchema = {
    type: 'object',
    properties: {
        dataBaseName: {
            type: 'string',
            description: '数据库名称，用于构建存储路径,来自系统配置',
            nullable: true
        },
        ioTDataType: {
            type: 'string',
            description: `数据类型，用于构建存储路径
 JiShe.ServicePro.Consts.IoTDBDataTypeConst`,
            nullable: true
        },
        deviceType: {
            type: 'string',
            description: `设备类型集中器、电表、水表、流量计、传感器等,用于构建存储路径
JiShe.ServicePro.Enums.DeviceTypeEnum`,
            nullable: true
        },
        deviceAddress: {
            type: 'string',
            description: '设备地址,数据生成者，例如集中器地址,电表地址、水表地址、流量计地址、传感器地址等',
            nullable: true
        },
        timestamps: {
            type: 'integer',
            description: '时标，也就是业务时间戳，单位毫秒,必须通过DateTimeOffset获取',
            format: 'int64'
        },
        formattedTimestamps: {
            type: 'string',
            description: '时标格式化以后的本地时间',
            format: 'date-time',
            readOnly: true
        },
        timestampStr: {
            type: 'string',
            description: '字符串格式时标',
            nullable: true,
            readOnly: true
        },
        devicePath: {
            type: 'string',
            description: '设备路径,树模型使用，表模型会在数据插入的时候直接获取继承类的名称作为表明',
            nullable: true
        },
        platformTenantId: {
            type: 'string',
            description: '物联网平台租户Id',
            nullable: true
        },
        productId: {
            type: 'string',
            description: '物联网平台产品Id',
            nullable: true
        },
        serviceId: {
            type: 'string',
            description: '物联网平台服务Id',
            nullable: true
        },
        ioTPlatformDeviceOpenInfo: {
            type: 'string',
            description: '物联网平台设备ID',
            nullable: true
        },
        messageType: {
            type: 'string',
            description: '消息类型',
            nullable: true
        },
        protocol: {
            type: 'string',
            description: '通信协议',
            nullable: true
        },
        focusAddress: {
            type: 'string',
            description: '集中器地址',
            nullable: true
        },
        meterAddress: {
            type: 'string',
            description: '表地址',
            nullable: true
        },
        rawMessage: {
            type: 'string',
            description: '消息上报原始内容',
            nullable: true
        },
        receivedPayload: {
            type: 'string',
            description: '消息上报结果,主要是用于存储上报原始数据通过处理后的结果，并非报文解析结果',
            nullable: true
        },
        receivedTimestamps: {
            type: 'integer',
            description: '消息上报时间，单位毫秒，不是当前系统中的纳秒',
            format: 'int64'
        },
        formattedReceivedTimestamps: {
            type: 'string',
            description: '时标格式化以后的本地时间',
            format: 'date-time',
            readOnly: true
        },
        imsi: {
            type: 'string',
            description: 'IMSI',
            nullable: true
        },
        imei: {
            type: 'string',
            description: 'IMEI',
            nullable: true
        }
    },
    additionalProperties: false,
    description: '查询CTWing接收消息'
} as const;

export const QueryCTWingAepReceiveMessageOutputPagedResultDtoSchema = {
    type: 'object',
    properties: {
        items: {
            type: 'array',
            items: {
                '$ref': '#/components/schemas/QueryCTWingAepReceiveMessageOutput'
            },
            nullable: true
        },
        totalCount: {
            type: 'integer',
            format: 'int64'
        }
    },
    additionalProperties: false
} as const;

export const QueryOneNETReceiveMessageInputSchema = {
    type: 'object',
    properties: {
        pageIndex: {
            type: 'integer',
            description: '当前页面.默认从1开始',
            format: 'int32'
        },
        pageSize: {
            type: 'integer',
            description: '每页多少条.每页显示多少记录',
            format: 'int32'
        },
        skipCount: {
            type: 'integer',
            description: '跳过多少条',
            format: 'int32',
            readOnly: true
        },
        sorting: {
            type: 'string',
            description: `排序
<example>
 name desc
</example>`,
            nullable: true
        },
        ioTDataType: {
            type: 'string',
            description: '数据类型',
            nullable: true
        },
        deviceType: {
            '$ref': '#/components/schemas/DeviceTypeEnum'
        },
        deviceAddress: {
            type: 'string',
            description: '设备ID,数据生成者，例如集中器ID,电表ID、水表ID、流量计ID、传感器ID等',
            nullable: true
        },
        startCreationTime: {
            type: 'string',
            description: '开始创建时间',
            format: 'date-time',
            nullable: true
        },
        endCreationTime: {
            type: 'string',
            description: '结束创建时间',
            format: 'date-time',
            nullable: true
        },
        isNeedPaging: {
            type: 'boolean',
            description: '是否需要分页， 默认为true'
        },
        ioTPlatformDeviceOpenInfo: {
            type: 'string',
            description: '物联网平台设备ID',
            nullable: true
        }
    },
    additionalProperties: false,
    description: '查询OneNET接收消息'
} as const;

export const QueryOneNETReceiveMessageOutputSchema = {
    type: 'object',
    properties: {
        dataBaseName: {
            type: 'string',
            description: '数据库名称，用于构建存储路径,来自系统配置',
            nullable: true
        },
        ioTDataType: {
            type: 'string',
            description: `数据类型，用于构建存储路径
 JiShe.ServicePro.Consts.IoTDBDataTypeConst`,
            nullable: true
        },
        deviceType: {
            type: 'string',
            description: `设备类型集中器、电表、水表、流量计、传感器等,用于构建存储路径
JiShe.ServicePro.Enums.DeviceTypeEnum`,
            nullable: true
        },
        deviceAddress: {
            type: 'string',
            description: '设备地址,数据生成者，例如集中器地址,电表地址、水表地址、流量计地址、传感器地址等',
            nullable: true
        },
        timestamps: {
            type: 'integer',
            description: '时标，也就是业务时间戳，单位毫秒,必须通过DateTimeOffset获取',
            format: 'int64'
        },
        formattedTimestamps: {
            type: 'string',
            description: '时标格式化以后的本地时间',
            format: 'date-time',
            readOnly: true
        },
        timestampStr: {
            type: 'string',
            description: '字符串格式时标',
            nullable: true,
            readOnly: true
        },
        devicePath: {
            type: 'string',
            description: '设备路径,树模型使用，表模型会在数据插入的时候直接获取继承类的名称作为表明',
            nullable: true
        },
        productId: {
            type: 'string',
            description: '物联网平台产品Id',
            nullable: true
        },
        ioTPlatformDeviceOpenInfo: {
            type: 'string',
            description: '物联网平台设备ID',
            nullable: true
        },
        messageType: {
            type: 'string',
            description: '消息类型',
            nullable: true
        },
        protocol: {
            type: 'string',
            description: '通信协议',
            nullable: true
        },
        focusAddress: {
            type: 'string',
            description: '集中器地址',
            nullable: true
        },
        meterAddress: {
            type: 'string',
            description: '表地址',
            nullable: true
        },
        rawMessage: {
            type: 'string',
            description: '消息上报原始内容',
            nullable: true
        },
        receivedPayload: {
            type: 'string',
            description: '消息上报结果,主要是用于存储上报原始数据通过处理后的结果，并非报文解析结果',
            nullable: true
        },
        receivedTimestamps: {
            type: 'integer',
            description: '消息上报时间，单位毫秒，不是当前系统中的纳秒',
            format: 'int64'
        },
        formattedReceivedTimestamps: {
            type: 'string',
            description: '时标格式化以后的本地时间',
            format: 'date-time',
            readOnly: true
        },
        isEncrypted: {
            type: 'boolean',
            description: '是否加密'
        },
        plaintextMessage: {
            type: 'string',
            description: '明文消息，加密推送情况下才有',
            nullable: true
        }
    },
    additionalProperties: false,
    description: '查询OneNET接收消息'
} as const;

export const QueryOneNETReceiveMessageOutputPagedResultDtoSchema = {
    type: 'object',
    properties: {
        items: {
            type: 'array',
            items: {
                '$ref': '#/components/schemas/QueryOneNETReceiveMessageOutput'
            },
            nullable: true
        },
        totalCount: {
            type: 'integer',
            format: 'int64'
        }
    },
    additionalProperties: false
} as const;

export const RefreshTokenInputSchema = {
    required: ['refreshToken'],
    type: 'object',
    properties: {
        userId: {
            type: 'string',
            format: 'uuid'
        },
        refreshToken: {
            minLength: 1,
            type: 'string'
        }
    },
    additionalProperties: false
} as const;

export const RefreshTokenOutputSchema = {
    type: 'object',
    properties: {
        success: {
            type: 'boolean'
        },
        message: {
            type: 'string',
            nullable: true
        },
        token: {
            type: 'string',
            nullable: true
        },
        refreshToken: {
            type: 'string',
            nullable: true
        }
    },
    additionalProperties: false
} as const;

export const RemoteServiceErrorInfoSchema = {
    type: 'object',
    properties: {
        code: {
            type: 'string',
            nullable: true
        },
        message: {
            type: 'string',
            nullable: true
        },
        details: {
            type: 'string',
            nullable: true
        },
        data: {
            type: 'object',
            additionalProperties: {},
            nullable: true
        },
        validationErrors: {
            type: 'array',
            items: {
                '$ref': '#/components/schemas/RemoteServiceValidationErrorInfo'
            },
            nullable: true
        }
    },
    additionalProperties: false
} as const;

export const RemoteServiceErrorResponseSchema = {
    type: 'object',
    properties: {
        error: {
            '$ref': '#/components/schemas/RemoteServiceErrorInfo'
        }
    },
    additionalProperties: false
} as const;

export const RemoteServiceValidationErrorInfoSchema = {
    type: 'object',
    properties: {
        message: {
            type: 'string',
            nullable: true
        },
        members: {
            type: 'array',
            items: {
                type: 'string'
            },
            nullable: true
        }
    },
    additionalProperties: false
} as const;

export const RemoteStreamContentSchema = {
    type: 'object',
    properties: {
        fileName: {
            type: 'string',
            nullable: true
        },
        contentType: {
            type: 'string',
            nullable: true
        },
        contentLength: {
            type: 'integer',
            format: 'int64',
            nullable: true,
            readOnly: true
        }
    },
    additionalProperties: false
} as const;

export const RemoveRoleToOrganizationUnitInputSchema = {
    type: 'object',
    properties: {
        roleId: {
            type: 'string',
            format: 'uuid'
        },
        organizationUnitId: {
            type: 'string',
            format: 'uuid'
        }
    },
    additionalProperties: false
} as const;

export const RemoveUserToOrganizationUnitInputSchema = {
    type: 'object',
    properties: {
        userId: {
            type: 'string',
            format: 'uuid'
        },
        organizationUnitId: {
            type: 'string',
            format: 'uuid'
        }
    },
    additionalProperties: false
} as const;

export const ResetPasswordInputSchema = {
    required: ['password'],
    type: 'object',
    properties: {
        userId: {
            type: 'string',
            format: 'uuid'
        },
        password: {
            maxLength: 128,
            minLength: 0,
            type: 'string'
        }
    },
    additionalProperties: false
} as const;

export const ResetTwoFactorInputSchema = {
    type: 'object',
    properties: {
        userId: {
            type: 'string',
            format: 'uuid'
        }
    },
    additionalProperties: false
} as const;

export const ResponeResultEnumSchema = {
    enum: [0, 1, 2, 3, 4, 5, 6, 200, 201, 400, 401, 403, 404, 500, 503, 504, 10421, -102, -101],
    type: 'integer',
    description: '响应结果枚举',
    format: 'int32',
    '说明：': 'Success=0,Fail=1,LoginOut=2,TimeOut=3,Exception=4,NotAllowed=5,NotLoggedIn=6,OK=200,NoData=201,BadRequest=400,Unauthorized=401,Forbidden=403,NotFound=404,AepInternalError=500,ServiceUnavailable=503,AsyncService=504,DeviceNotOnline=10421,HandlerException=-102,HandlerFail=-101'
} as const;

export const ReturnValueApiDescriptionModelSchema = {
    type: 'object',
    properties: {
        type: {
            type: 'string',
            nullable: true
        },
        typeSimple: {
            type: 'string',
            nullable: true
        }
    },
    additionalProperties: false
} as const;

export const SelectResultSchema = {
    type: 'object',
    properties: {
        key: {
            type: 'string',
            description: '下拉框 键',
            nullable: true
        },
        value: {
            type: 'string',
            description: '下拉框 值',
            nullable: true
        },
        secondValue: {
            type: 'string',
            description: '下拉框 值2',
            nullable: true
        },
        thirdValue: {
            description: '下拉框 值3',
            nullable: true
        }
    },
    additionalProperties: false,
    description: '下拉框选项元素'
} as const;

export const SelectResultListInputSchema = {
    required: ['typeName'],
    type: 'object',
    properties: {
        typeName: {
            minLength: 1,
            type: 'string',
            description: '类型名称'
        },
        thirdAttributeTypeName: {
            type: 'string',
            description: '第三级类型',
            nullable: true
        }
    },
    additionalProperties: false,
    description: '获取下拉框数据'
} as const;

export const SendBroadCastMessageInputSchema = {
    type: 'object',
    properties: {
        title: {
            type: 'string',
            description: '消息标题',
            nullable: true
        },
        content: {
            type: 'string',
            description: '消息内容',
            nullable: true
        }
    },
    additionalProperties: false
} as const;

export const SendCommonMessageInputSchema = {
    type: 'object',
    properties: {
        title: {
            type: 'string',
            description: '消息标题',
            nullable: true
        },
        content: {
            type: 'string',
            description: '消息内容',
            nullable: true
        },
        receiveUserId: {
            type: 'string',
            description: '发送人',
            format: 'uuid'
        },
        receiveUserName: {
            type: 'string',
            description: '发送人名称',
            nullable: true
        }
    },
    additionalProperties: false
} as const;

export const ServiceProApplicationConfigurationDtoSchema = {
    type: 'object',
    properties: {
        oidcConfiguration: {
            '$ref': '#/components/schemas/ApplicationOidcConfigurationDto'
        },
        multiTenancy: {
            '$ref': '#/components/schemas/MultiTenancyInfoDto'
        }
    },
    additionalProperties: false
} as const;

export const SetBatchReadInputSchema = {
    type: 'object',
    properties: {
        ids: {
            type: 'array',
            items: {
                type: 'string',
                format: 'uuid'
            },
            nullable: true
        }
    },
    additionalProperties: false
} as const;

export const SetDataDictinaryDetailInputSchema = {
    required: ['isEnabled'],
    type: 'object',
    properties: {
        dataDictionaryId: {
            type: 'string',
            format: 'uuid'
        },
        dataDictionayDetailId: {
            type: 'string',
            format: 'uuid'
        },
        isEnabled: {
            type: 'boolean'
        }
    },
    additionalProperties: false
} as const;

export const SetReadInputSchema = {
    type: 'object',
    properties: {
        id: {
            type: 'string',
            format: 'uuid'
        }
    },
    additionalProperties: false
} as const;

export const SettingItemOutputSchema = {
    type: 'object',
    properties: {
        name: {
            type: 'string',
            description: '名称',
            nullable: true
        },
        displayName: {
            type: 'string',
            description: '显示名称',
            nullable: true
        },
        description: {
            type: 'string',
            description: '描述',
            nullable: true
        },
        value: {
            type: 'string',
            description: '值',
            nullable: true
        },
        type: {
            type: 'string',
            description: '前端控件类型',
            nullable: true
        }
    },
    additionalProperties: false
} as const;

export const SettingOutputSchema = {
    type: 'object',
    properties: {
        group: {
            type: 'string',
            description: '分组',
            nullable: true
        },
        groupDisplayName: {
            type: 'string',
            description: '分组显示名称',
            nullable: true
        },
        settingItemOutput: {
            type: 'array',
            items: {
                '$ref': '#/components/schemas/SettingItemOutput'
            },
            nullable: true
        }
    },
    additionalProperties: false
} as const;

export const StringIdInputSchema = {
    type: 'object',
    properties: {
        id: {
            type: 'string',
            nullable: true
        }
    },
    additionalProperties: false
} as const;

export const StringStringFromSelectorSchema = {
    type: 'object',
    properties: {
        value: {
            type: 'string',
            nullable: true,
            readOnly: true
        },
        label: {
            type: 'string',
            nullable: true,
            readOnly: true
        }
    },
    additionalProperties: false
} as const;

export const TenantCreateDtoSchema = {
    required: ['adminEmailAddress', 'adminPassword', 'name'],
    type: 'object',
    properties: {
        extraProperties: {
            type: 'object',
            additionalProperties: {},
            nullable: true,
            readOnly: true
        },
        name: {
            maxLength: 64,
            minLength: 0,
            type: 'string'
        },
        adminEmailAddress: {
            maxLength: 256,
            minLength: 1,
            type: 'string',
            format: 'email'
        },
        adminPassword: {
            maxLength: 128,
            minLength: 1,
            type: 'string'
        }
    },
    additionalProperties: false
} as const;

export const TenantDtoSchema = {
    type: 'object',
    properties: {
        extraProperties: {
            type: 'object',
            additionalProperties: {},
            nullable: true,
            readOnly: true
        },
        id: {
            type: 'string',
            format: 'uuid'
        },
        name: {
            type: 'string',
            nullable: true
        },
        concurrencyStamp: {
            type: 'string',
            nullable: true
        }
    },
    additionalProperties: false
} as const;

export const TenantDtoPagedResultDtoSchema = {
    type: 'object',
    properties: {
        items: {
            type: 'array',
            items: {
                '$ref': '#/components/schemas/TenantDto'
            },
            nullable: true
        },
        totalCount: {
            type: 'integer',
            format: 'int64'
        }
    },
    additionalProperties: false
} as const;

export const TimeZoneSchema = {
    type: 'object',
    properties: {
        iana: {
            '$ref': '#/components/schemas/IanaTimeZone'
        },
        windows: {
            '$ref': '#/components/schemas/WindowsTimeZone'
        }
    },
    additionalProperties: false
} as const;

export const TimingDtoSchema = {
    type: 'object',
    properties: {
        timeZone: {
            '$ref': '#/components/schemas/TimeZone'
        }
    },
    additionalProperties: false
} as const;

export const TreeOutputSchema = {
    type: 'object',
    properties: {
        title: {
            type: 'string',
            nullable: true
        },
        key: {
            type: 'string',
            format: 'uuid'
        },
        children: {
            type: 'array',
            items: {
                '$ref': '#/components/schemas/TreeOutput'
            },
            nullable: true
        }
    },
    additionalProperties: false
} as const;

export const TupIsThroughEnumSchema = {
    enum: [0, 1, 2],
    type: 'integer',
    description: '数据解析方式',
    format: 'int32',
    '说明：': '透传=0,非透传=1,脚本解析=2'
} as const;

export const TypeApiDescriptionModelSchema = {
    type: 'object',
    properties: {
        baseType: {
            type: 'string',
            nullable: true
        },
        isEnum: {
            type: 'boolean'
        },
        enumNames: {
            type: 'array',
            items: {
                type: 'string'
            },
            nullable: true
        },
        enumValues: {
            type: 'array',
            items: {},
            nullable: true
        },
        genericArguments: {
            type: 'array',
            items: {
                type: 'string'
            },
            nullable: true
        },
        properties: {
            type: 'array',
            items: {
                '$ref': '#/components/schemas/PropertyApiDescriptionModel'
            },
            nullable: true
        }
    },
    additionalProperties: false
} as const;

export const UpdateDataDictinaryInputSchema = {
    type: 'object',
    properties: {
        id: {
            type: 'string',
            format: 'uuid'
        },
        code: {
            type: 'string',
            nullable: true
        },
        displayText: {
            type: 'string',
            nullable: true
        },
        description: {
            type: 'string',
            nullable: true
        }
    },
    additionalProperties: false
} as const;

export const UpdateDetailInputSchema = {
    type: 'object',
    properties: {
        dataDictionaryId: {
            type: 'string',
            format: 'uuid'
        },
        id: {
            type: 'string',
            format: 'uuid'
        },
        displayText: {
            type: 'string',
            nullable: true
        },
        description: {
            type: 'string',
            nullable: true
        },
        order: {
            type: 'integer',
            format: 'int32'
        }
    },
    additionalProperties: false
} as const;

export const UpdateFeatureDtoSchema = {
    type: 'object',
    properties: {
        name: {
            type: 'string',
            nullable: true
        },
        value: {
            type: 'string',
            nullable: true
        }
    },
    additionalProperties: false
} as const;

export const UpdateFeatureInputSchema = {
    type: 'object',
    properties: {
        providerName: {
            type: 'string',
            nullable: true
        },
        providerKey: {
            type: 'string',
            nullable: true
        },
        updateFeaturesDto: {
            '$ref': '#/components/schemas/UpdateFeaturesDto'
        }
    },
    additionalProperties: false
} as const;

export const UpdateFeaturesDtoSchema = {
    type: 'object',
    properties: {
        features: {
            type: 'array',
            items: {
                '$ref': '#/components/schemas/UpdateFeatureDto'
            },
            nullable: true
        }
    },
    additionalProperties: false
} as const;

export const UpdateLanguageInputSchema = {
    type: 'object',
    properties: {
        id: {
            type: 'string',
            description: '语言Id',
            format: 'uuid'
        },
        cultureName: {
            type: 'string',
            description: '语言名称',
            nullable: true
        },
        uiCultureName: {
            type: 'string',
            description: 'Ui语言名称',
            nullable: true
        },
        displayName: {
            type: 'string',
            description: '显示名称',
            nullable: true
        },
        flagIcon: {
            type: 'string',
            description: '图标',
            nullable: true
        },
        isEnabled: {
            type: 'boolean',
            description: '是否启用'
        }
    },
    additionalProperties: false,
    description: '删除语言'
} as const;

export const UpdateLanguageTextInputSchema = {
    required: ['cultureName', 'name', 'resourceName', 'value'],
    type: 'object',
    properties: {
        resourceName: {
            minLength: 1,
            type: 'string',
            description: '资源名称'
        },
        cultureName: {
            minLength: 1,
            type: 'string',
            description: '语言名称'
        },
        name: {
            minLength: 1,
            type: 'string',
            description: '名称'
        },
        value: {
            minLength: 1,
            type: 'string',
            description: '值'
        }
    },
    additionalProperties: false,
    description: '删除语言文本'
} as const;

export const UpdateMenuInputSchema = {
    required: ['hideInMenu', 'keepAlive', 'name', 'order', 'path', 'title'],
    type: 'object',
    properties: {
        id: {
            type: 'string',
            description: '菜单Id',
            format: 'uuid'
        },
        name: {
            minLength: 1,
            type: 'string',
            description: '唯一编码'
        },
        title: {
            minLength: 1,
            type: 'string',
            description: '标题'
        },
        icon: {
            type: 'string',
            description: '图标',
            nullable: true
        },
        keepAlive: {
            type: 'boolean',
            description: '是否缓存'
        },
        hideInMenu: {
            type: 'boolean',
            description: '是否显示'
        },
        order: {
            type: 'integer',
            description: '排序',
            format: 'int32'
        },
        path: {
            minLength: 1,
            type: 'string',
            description: '路由地址'
        },
        menuType: {
            '$ref': '#/components/schemas/MenuType'
        },
        openType: {
            '$ref': '#/components/schemas/OpenType'
        },
        url: {
            type: 'string',
            description: '内外链地址',
            nullable: true
        },
        component: {
            type: 'string',
            description: '组件地址',
            nullable: true
        },
        enabled: {
            type: 'boolean'
        },
        policy: {
            type: 'string',
            description: '权限',
            nullable: true
        }
    },
    additionalProperties: false,
    description: '更新菜单'
} as const;

export const UpdateOrganizationUnitInputSchema = {
    type: 'object',
    properties: {
        displayName: {
            type: 'string',
            nullable: true
        },
        id: {
            type: 'string',
            format: 'uuid'
        }
    },
    additionalProperties: false
} as const;

export const UpdatePermissionDtoSchema = {
    type: 'object',
    properties: {
        name: {
            type: 'string',
            nullable: true
        },
        isGranted: {
            type: 'boolean'
        }
    },
    additionalProperties: false
} as const;

export const UpdatePermissionsDtoSchema = {
    type: 'object',
    properties: {
        permissions: {
            type: 'array',
            items: {
                '$ref': '#/components/schemas/UpdatePermissionDto'
            },
            nullable: true
        }
    },
    additionalProperties: false
} as const;

export const UpdateRoleInputSchema = {
    type: 'object',
    properties: {
        roleId: {
            type: 'string',
            format: 'uuid'
        },
        roleInfo: {
            '$ref': '#/components/schemas/IdentityRoleUpdateDto'
        }
    },
    additionalProperties: false
} as const;

export const UpdateRolePermissionsInputSchema = {
    type: 'object',
    properties: {
        providerName: {
            type: 'string',
            nullable: true
        },
        providerKey: {
            type: 'string',
            nullable: true
        },
        updatePermissionsDto: {
            '$ref': '#/components/schemas/UpdatePermissionsDto'
        }
    },
    additionalProperties: false
} as const;

export const UpdateSettingInputSchema = {
    type: 'object',
    properties: {
        values: {
            type: 'object',
            additionalProperties: {
                type: 'string',
                nullable: true
            },
            nullable: true
        }
    },
    additionalProperties: false
} as const;

export const UpdateTenantInputSchema = {
    type: 'object',
    properties: {
        id: {
            type: 'string',
            format: 'uuid'
        },
        name: {
            type: 'string',
            nullable: true
        }
    },
    additionalProperties: false
} as const;

export const UpdateTextTemplateInputSchema = {
    required: ['code', 'content', 'cultureName', 'name'],
    type: 'object',
    properties: {
        id: {
            type: 'string',
            description: '模板Id',
            format: 'uuid'
        },
        name: {
            minLength: 1,
            type: 'string',
            description: '名称'
        },
        code: {
            minLength: 1,
            type: 'string',
            description: '编码'
        },
        content: {
            minLength: 1,
            type: 'string',
            description: '内容'
        },
        cultureName: {
            minLength: 1,
            type: 'string',
            description: '语言'
        }
    },
    additionalProperties: false,
    description: '更新模板'
} as const;

export const UpdateThingModelInputSchema = {
    type: 'object',
    properties: {
        ioTPlatform: {
            '$ref': '#/components/schemas/IoTPlatformTypeEnum'
        },
        ioTPlatformProductId: {
            type: 'string',
            description: '物联网平台中对应的产品Id',
            nullable: true
        },
        filedType: {
            type: 'string',
            description: '物联网平台中对应产品物模型属性或者事件类型 JiShe.ServicePro.Core.DataDictionaryTypeConst',
            nullable: true
        },
        ioTPlatformRawFieldName: {
            type: 'string',
            description: '物联网平台中对应的产品物模型属性或者事件名称',
            nullable: true
        },
        standardFieldName: {
            type: 'string',
            description: '管理后台产品标准的物模型属性或者事件名称',
            nullable: true
        },
        standardFieldValueType: {
            type: 'string',
            description: '标准物模型字段值类型',
            nullable: true
        },
        standardFieldDisplayName: {
            type: 'string',
            description: '标准物模型字段显示名称',
            nullable: true
        },
        isValueNeedConvert: {
            type: 'boolean',
            description: '是否需要值类型转换'
        },
        id: {
            type: 'string',
            format: 'uuid'
        }
    },
    additionalProperties: false
} as const;

export const UpdateUserInputSchema = {
    type: 'object',
    properties: {
        userId: {
            type: 'string',
            format: 'uuid'
        },
        userInfo: {
            '$ref': '#/components/schemas/IdentityUserUpdateDto'
        }
    },
    additionalProperties: false
} as const;

export const UserLoginInfoSchema = {
    required: ['password', 'userNameOrEmailAddress'],
    type: 'object',
    properties: {
        userNameOrEmailAddress: {
            maxLength: 255,
            minLength: 0,
            type: 'string'
        },
        password: {
            maxLength: 32,
            minLength: 0,
            type: 'string',
            format: 'password'
        },
        rememberMe: {
            type: 'boolean'
        }
    },
    additionalProperties: false
} as const;

export const WindowsTimeZoneSchema = {
    type: 'object',
    properties: {
        timeZoneId: {
            type: 'string',
            nullable: true
        }
    },
    additionalProperties: false
} as const;