lib/v20190719/models.rb



# frozen_string_literal: true

# Copyright (c) 2017-2018 THL A29 Limited, a Tencent company. All Rights Reserved.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
#    http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.

module TencentCloud
  module Cfs
    module V20190719
      # 快照策略信息
      class AutoSnapshotPolicyInfo < TencentCloud::Common::AbstractModel
        # @param AutoSnapshotPolicyId: 快照策略ID
        # @type AutoSnapshotPolicyId: String
        # @param PolicyName: 快照策略ID
        # @type PolicyName: String
        # @param CreationTime: 快照策略创建时间
        # @type CreationTime: String
        # @param FileSystemNums: 关联的文件系统个数
        # @type FileSystemNums: Integer
        # @param DayOfWeek: 快照定期备份在一星期哪一天
        # @type DayOfWeek: String
        # @param Hour: 快照定期备份在一天的哪一小时
        # @type Hour: String
        # @param IsActivated: 是否激活定期快照功能
        # @type IsActivated: Integer
        # @param NextActiveTime: 下一次触发快照时间
        # @type NextActiveTime: String
        # @param Status: 快照策略状态
        # @type Status: String
        # @param AppId: 帐号ID
        # @type AppId: Integer
        # @param AliveDays: 保留时间
        # @type AliveDays: Integer
        # @param RegionName: 地域
        # @type RegionName: String
        # @param FileSystems: 文件系统信息
        # @type FileSystems: Array

        attr_accessor :AutoSnapshotPolicyId, :PolicyName, :CreationTime, :FileSystemNums, :DayOfWeek, :Hour, :IsActivated, :NextActiveTime, :Status, :AppId, :AliveDays, :RegionName, :FileSystems
        
        def initialize(autosnapshotpolicyid=nil, policyname=nil, creationtime=nil, filesystemnums=nil, dayofweek=nil, hour=nil, isactivated=nil, nextactivetime=nil, status=nil, appid=nil, alivedays=nil, regionname=nil, filesystems=nil)
          @AutoSnapshotPolicyId = autosnapshotpolicyid
          @PolicyName = policyname
          @CreationTime = creationtime
          @FileSystemNums = filesystemnums
          @DayOfWeek = dayofweek
          @Hour = hour
          @IsActivated = isactivated
          @NextActiveTime = nextactivetime
          @Status = status
          @AppId = appid
          @AliveDays = alivedays
          @RegionName = regionname
          @FileSystems = filesystems
        end

        def deserialize(params)
          @AutoSnapshotPolicyId = params['AutoSnapshotPolicyId']
          @PolicyName = params['PolicyName']
          @CreationTime = params['CreationTime']
          @FileSystemNums = params['FileSystemNums']
          @DayOfWeek = params['DayOfWeek']
          @Hour = params['Hour']
          @IsActivated = params['IsActivated']
          @NextActiveTime = params['NextActiveTime']
          @Status = params['Status']
          @AppId = params['AppId']
          @AliveDays = params['AliveDays']
          @RegionName = params['RegionName']
          unless params['FileSystems'].nil?
            @FileSystems = []
            params['FileSystems'].each do |i|
              filesystembypolicy_tmp = FileSystemByPolicy.new
              filesystembypolicy_tmp.deserialize(i)
              @FileSystems << filesystembypolicy_tmp
            end
          end
        end
      end

      # 版本控制-协议详情
      class AvailableProtoStatus < TencentCloud::Common::AbstractModel
        # @param SaleStatus: 售卖状态。可选值有 sale_out 售罄、saling可售、no_saling不可销售
        # @type SaleStatus: String
        # @param Protocol: 协议类型。可选值有 NFS、CIFS
        # @type Protocol: String

        attr_accessor :SaleStatus, :Protocol
        
        def initialize(salestatus=nil, protocol=nil)
          @SaleStatus = salestatus
          @Protocol = protocol
        end

        def deserialize(params)
          @SaleStatus = params['SaleStatus']
          @Protocol = params['Protocol']
        end
      end

      # 版本控制-区域数组
      class AvailableRegion < TencentCloud::Common::AbstractModel
        # @param Region: 区域名称,如“ap-beijing”
        # @type Region: String
        # @param RegionName: 区域名称,如“bj”
        # @type RegionName: String
        # @param RegionStatus: 区域可用情况,当区域内至少有一个可用区处于可售状态时,取值为AVAILABLE,否则为UNAVAILABLE
        # @type RegionStatus: String
        # @param Zones: 可用区数组
        # @type Zones: Array
        # @param RegionCnName: 区域中文名称,如“广州”
        # @type RegionCnName: String

        attr_accessor :Region, :RegionName, :RegionStatus, :Zones, :RegionCnName
        
        def initialize(region=nil, regionname=nil, regionstatus=nil, zones=nil, regioncnname=nil)
          @Region = region
          @RegionName = regionname
          @RegionStatus = regionstatus
          @Zones = zones
          @RegionCnName = regioncnname
        end

        def deserialize(params)
          @Region = params['Region']
          @RegionName = params['RegionName']
          @RegionStatus = params['RegionStatus']
          unless params['Zones'].nil?
            @Zones = []
            params['Zones'].each do |i|
              availablezone_tmp = AvailableZone.new
              availablezone_tmp.deserialize(i)
              @Zones << availablezone_tmp
            end
          end
          @RegionCnName = params['RegionCnName']
        end
      end

      # 版本控制-类型数组
      class AvailableType < TencentCloud::Common::AbstractModel
        # @param Protocols: 协议与售卖详情
        # @type Protocols: Array
        # @param Type: 存储类型。返回值中 SD 为标准型存储、HP 为性能型存储
        # @type Type: String
        # @param Prepayment: 是否支持预付费。返回值中 true 为支持、false 为不支持
        # @type Prepayment: Boolean

        attr_accessor :Protocols, :Type, :Prepayment
        
        def initialize(protocols=nil, type=nil, prepayment=nil)
          @Protocols = protocols
          @Type = type
          @Prepayment = prepayment
        end

        def deserialize(params)
          unless params['Protocols'].nil?
            @Protocols = []
            params['Protocols'].each do |i|
              availableprotostatus_tmp = AvailableProtoStatus.new
              availableprotostatus_tmp.deserialize(i)
              @Protocols << availableprotostatus_tmp
            end
          end
          @Type = params['Type']
          @Prepayment = params['Prepayment']
        end
      end

      # 版本控制-可用区数组
      class AvailableZone < TencentCloud::Common::AbstractModel
        # @param Zone: 可用区名称
        # @type Zone: String
        # @param ZoneId: 可用区ID
        # @type ZoneId: Integer
        # @param ZoneCnName: 可用区中文名称
        # @type ZoneCnName: String
        # @param Types: Type数组
        # @type Types: Array
        # @param ZoneName: 可用区中英文名称
        # @type ZoneName: String

        attr_accessor :Zone, :ZoneId, :ZoneCnName, :Types, :ZoneName
        
        def initialize(zone=nil, zoneid=nil, zonecnname=nil, types=nil, zonename=nil)
          @Zone = zone
          @ZoneId = zoneid
          @ZoneCnName = zonecnname
          @Types = types
          @ZoneName = zonename
        end

        def deserialize(params)
          @Zone = params['Zone']
          @ZoneId = params['ZoneId']
          @ZoneCnName = params['ZoneCnName']
          unless params['Types'].nil?
            @Types = []
            params['Types'].each do |i|
              availabletype_tmp = AvailableType.new
              availabletype_tmp.deserialize(i)
              @Types << availabletype_tmp
            end
          end
          @ZoneName = params['ZoneName']
        end
      end

      # BindAutoSnapshotPolicy请求参数结构体
      class BindAutoSnapshotPolicyRequest < TencentCloud::Common::AbstractModel
        # @param AutoSnapshotPolicyId: 快照策略ID
        # @type AutoSnapshotPolicyId: String
        # @param FileSystemIds: 文件系统列表
        # @type FileSystemIds: String

        attr_accessor :AutoSnapshotPolicyId, :FileSystemIds
        
        def initialize(autosnapshotpolicyid=nil, filesystemids=nil)
          @AutoSnapshotPolicyId = autosnapshotpolicyid
          @FileSystemIds = filesystemids
        end

        def deserialize(params)
          @AutoSnapshotPolicyId = params['AutoSnapshotPolicyId']
          @FileSystemIds = params['FileSystemIds']
        end
      end

      # BindAutoSnapshotPolicy返回参数结构体
      class BindAutoSnapshotPolicyResponse < TencentCloud::Common::AbstractModel
        # @param AutoSnapshotPolicyId: 快照策略ID
        # @type AutoSnapshotPolicyId: String
        # @param RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        # @type RequestId: String

        attr_accessor :AutoSnapshotPolicyId, :RequestId
        
        def initialize(autosnapshotpolicyid=nil, requestid=nil)
          @AutoSnapshotPolicyId = autosnapshotpolicyid
          @RequestId = requestid
        end

        def deserialize(params)
          @AutoSnapshotPolicyId = params['AutoSnapshotPolicyId']
          @RequestId = params['RequestId']
        end
      end

      # CreateAutoSnapshotPolicy请求参数结构体
      class CreateAutoSnapshotPolicyRequest < TencentCloud::Common::AbstractModel
        # @param DayOfWeek: 快照重复日期,星期一到星期日
        # @type DayOfWeek: String
        # @param Hour: 快照重复时间点
        # @type Hour: String
        # @param PolicyName: 策略名称
        # @type PolicyName: String
        # @param AliveDays: 快照保留时长
        # @type AliveDays: Integer

        attr_accessor :DayOfWeek, :Hour, :PolicyName, :AliveDays
        
        def initialize(dayofweek=nil, hour=nil, policyname=nil, alivedays=nil)
          @DayOfWeek = dayofweek
          @Hour = hour
          @PolicyName = policyname
          @AliveDays = alivedays
        end

        def deserialize(params)
          @DayOfWeek = params['DayOfWeek']
          @Hour = params['Hour']
          @PolicyName = params['PolicyName']
          @AliveDays = params['AliveDays']
        end
      end

      # CreateAutoSnapshotPolicy返回参数结构体
      class CreateAutoSnapshotPolicyResponse < TencentCloud::Common::AbstractModel
        # @param AutoSnapshotPolicyId: 快照策略ID
        # @type AutoSnapshotPolicyId: String
        # @param RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        # @type RequestId: String

        attr_accessor :AutoSnapshotPolicyId, :RequestId
        
        def initialize(autosnapshotpolicyid=nil, requestid=nil)
          @AutoSnapshotPolicyId = autosnapshotpolicyid
          @RequestId = requestid
        end

        def deserialize(params)
          @AutoSnapshotPolicyId = params['AutoSnapshotPolicyId']
          @RequestId = params['RequestId']
        end
      end

      # CreateCfsFileSystem请求参数结构体
      class CreateCfsFileSystemRequest < TencentCloud::Common::AbstractModel
        # @param Zone: 可用区名称,例如ap-beijing-1,请参考 [概览](https://cloud.tencent.com/document/product/582/13225) 文档中的地域与可用区列表
        # @type Zone: String
        # @param NetInterface: 网络类型,可选值为 VPC,BASIC,CCN;其中 VPC 为私有网络,BASIC 为基础网络, CCN 为云联网,Turbo系列当前必须选择云联网。目前基础网络已逐渐淘汰,不推荐使用。
        # @type NetInterface: String
        # @param PGroupId: 权限组 ID,通用标准型和性能型必填,turbo系列请填写pgroupbasic
        # @type PGroupId: String
        # @param Protocol: 文件系统协议类型, 值为 NFS、CIFS、TURBO ; 若留空则默认为 NFS协议,turbo系列必须选择turbo,不支持NFS、CIFS
        # @type Protocol: String
        # @param StorageType: 文件系统存储类型,默认值为 SD ;其中 SD 为通用标准型标准型存储, HP为通用性能型存储, TB为turbo标准型, TP 为turbo性能型。
        # @type StorageType: String
        # @param VpcId: 私有网络(VPC) ID,若网络类型选择的是VPC,该字段为必填。
        # @type VpcId: String
        # @param SubnetId: 子网 ID,若网络类型选择的是VPC,该字段为必填。
        # @type SubnetId: String
        # @param MountIP: 指定IP地址,仅VPC网络支持;若不填写、将在该子网下随机分配 IP,Turbo系列当前不支持指定
        # @type MountIP: String
        # @param FsName: 用户自定义文件系统名称
        # @type FsName: String
        # @param ResourceTags: 文件系统标签
        # @type ResourceTags: Array
        # @param ClientToken: 用于保证请求幂等性的字符串。该字符串由客户生成,需保证不同请求之间唯一,最大值不超过64个ASCII字符。若不指定该参数,则无法保证请求的幂等性。用于保证请求幂等性的字符串失效时间为2小时。
        # @type ClientToken: String
        # @param CcnId: 云联网ID, 若网络类型选择的是CCN,该字段为必填
        # @type CcnId: String
        # @param CidrBlock: 云联网中CFS使用的网段, 若网络类型选择的是Ccn,该字段为必填,且不能和Ccn中已经绑定的网段冲突
        # @type CidrBlock: String
        # @param Capacity: 文件系统容量,turbo系列必填,单位为GiB。 turbo标准型单位GB,起售40TiB,即40960 GiB;扩容步长20TiB,即20480 GiB。turbo性能型起售20TiB,即20480 GiB;扩容步长10TiB,10240 GiB。
        # @type Capacity: Integer

        attr_accessor :Zone, :NetInterface, :PGroupId, :Protocol, :StorageType, :VpcId, :SubnetId, :MountIP, :FsName, :ResourceTags, :ClientToken, :CcnId, :CidrBlock, :Capacity
        
        def initialize(zone=nil, netinterface=nil, pgroupid=nil, protocol=nil, storagetype=nil, vpcid=nil, subnetid=nil, mountip=nil, fsname=nil, resourcetags=nil, clienttoken=nil, ccnid=nil, cidrblock=nil, capacity=nil)
          @Zone = zone
          @NetInterface = netinterface
          @PGroupId = pgroupid
          @Protocol = protocol
          @StorageType = storagetype
          @VpcId = vpcid
          @SubnetId = subnetid
          @MountIP = mountip
          @FsName = fsname
          @ResourceTags = resourcetags
          @ClientToken = clienttoken
          @CcnId = ccnid
          @CidrBlock = cidrblock
          @Capacity = capacity
        end

        def deserialize(params)
          @Zone = params['Zone']
          @NetInterface = params['NetInterface']
          @PGroupId = params['PGroupId']
          @Protocol = params['Protocol']
          @StorageType = params['StorageType']
          @VpcId = params['VpcId']
          @SubnetId = params['SubnetId']
          @MountIP = params['MountIP']
          @FsName = params['FsName']
          unless params['ResourceTags'].nil?
            @ResourceTags = []
            params['ResourceTags'].each do |i|
              taginfo_tmp = TagInfo.new
              taginfo_tmp.deserialize(i)
              @ResourceTags << taginfo_tmp
            end
          end
          @ClientToken = params['ClientToken']
          @CcnId = params['CcnId']
          @CidrBlock = params['CidrBlock']
          @Capacity = params['Capacity']
        end
      end

      # CreateCfsFileSystem返回参数结构体
      class CreateCfsFileSystemResponse < TencentCloud::Common::AbstractModel
        # @param CreationTime: 文件系统创建时间
        # @type CreationTime: String
        # @param CreationToken: 用户自定义文件系统名称
        # @type CreationToken: String
        # @param FileSystemId: 文件系统 ID
        # @type FileSystemId: String
        # @param LifeCycleState: 文件系统状态,可能出现状态包括:“creating”  创建中, “create_failed” 创建失败, “available” 可用, “unserviced” 不可用, “upgrading” 升级中, “deleting” 删除中。
        # @type LifeCycleState: String
        # @param SizeByte: 文件系统已使用容量大小,单位为 Byte
        # @type SizeByte: Integer
        # @param ZoneId: 可用区 ID
        # @type ZoneId: Integer
        # @param FsName: 用户自定义文件系统名称
        # @type FsName: String
        # @param Encrypted: 文件系统是否加密
        # @type Encrypted: Boolean
        # @param RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        # @type RequestId: String

        attr_accessor :CreationTime, :CreationToken, :FileSystemId, :LifeCycleState, :SizeByte, :ZoneId, :FsName, :Encrypted, :RequestId
        
        def initialize(creationtime=nil, creationtoken=nil, filesystemid=nil, lifecyclestate=nil, sizebyte=nil, zoneid=nil, fsname=nil, encrypted=nil, requestid=nil)
          @CreationTime = creationtime
          @CreationToken = creationtoken
          @FileSystemId = filesystemid
          @LifeCycleState = lifecyclestate
          @SizeByte = sizebyte
          @ZoneId = zoneid
          @FsName = fsname
          @Encrypted = encrypted
          @RequestId = requestid
        end

        def deserialize(params)
          @CreationTime = params['CreationTime']
          @CreationToken = params['CreationToken']
          @FileSystemId = params['FileSystemId']
          @LifeCycleState = params['LifeCycleState']
          @SizeByte = params['SizeByte']
          @ZoneId = params['ZoneId']
          @FsName = params['FsName']
          @Encrypted = params['Encrypted']
          @RequestId = params['RequestId']
        end
      end

      # CreateCfsPGroup请求参数结构体
      class CreateCfsPGroupRequest < TencentCloud::Common::AbstractModel
        # @param Name: 权限组名称,1-64个字符且只能为中文,字母,数字,下划线或横线
        # @type Name: String
        # @param DescInfo: 权限组描述信息,1-255个字符
        # @type DescInfo: String

        attr_accessor :Name, :DescInfo
        
        def initialize(name=nil, descinfo=nil)
          @Name = name
          @DescInfo = descinfo
        end

        def deserialize(params)
          @Name = params['Name']
          @DescInfo = params['DescInfo']
        end
      end

      # CreateCfsPGroup返回参数结构体
      class CreateCfsPGroupResponse < TencentCloud::Common::AbstractModel
        # @param PGroupId: 权限组 ID
        # @type PGroupId: String
        # @param Name: 权限组名字
        # @type Name: String
        # @param DescInfo: 权限组描述信息
        # @type DescInfo: String
        # @param BindCfsNum: 已经与该权限组绑定的文件系统个数
        # @type BindCfsNum: Integer
        # @param CDate: 权限组创建时间
        # @type CDate: String
        # @param RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        # @type RequestId: String

        attr_accessor :PGroupId, :Name, :DescInfo, :BindCfsNum, :CDate, :RequestId
        
        def initialize(pgroupid=nil, name=nil, descinfo=nil, bindcfsnum=nil, cdate=nil, requestid=nil)
          @PGroupId = pgroupid
          @Name = name
          @DescInfo = descinfo
          @BindCfsNum = bindcfsnum
          @CDate = cdate
          @RequestId = requestid
        end

        def deserialize(params)
          @PGroupId = params['PGroupId']
          @Name = params['Name']
          @DescInfo = params['DescInfo']
          @BindCfsNum = params['BindCfsNum']
          @CDate = params['CDate']
          @RequestId = params['RequestId']
        end
      end

      # CreateCfsRule请求参数结构体
      class CreateCfsRuleRequest < TencentCloud::Common::AbstractModel
        # @param PGroupId: 权限组 ID
        # @type PGroupId: String
        # @param AuthClientIp: 可以填写单个 IP 或者单个网段,例如 10.1.10.11 或者 10.10.1.0/24。默认来访地址为*表示允许所有。同时需要注意,此处需填写 CVM 的内网 IP。
        # @type AuthClientIp: String
        # @param Priority: 规则优先级,参数范围1-100。 其中 1 为最高,100为最低
        # @type Priority: Integer
        # @param RWPermission: 读写权限, 值为 RO、RW;其中 RO 为只读,RW 为读写,不填默认为只读
        # @type RWPermission: String
        # @param UserPermission: 用户权限,值为 all_squash、no_all_squash、root_squash、no_root_squash。其中all_squash为所有访问用户都会被映射为匿名用户或用户组;no_all_squash为访问用户会先与本机用户匹配,匹配失败后再映射为匿名用户或用户组;root_squash为将来访的root用户映射为匿名用户或用户组;no_root_squash为来访的root用户保持root帐号权限。不填默认为root_squash。
        # @type UserPermission: String

        attr_accessor :PGroupId, :AuthClientIp, :Priority, :RWPermission, :UserPermission
        
        def initialize(pgroupid=nil, authclientip=nil, priority=nil, rwpermission=nil, userpermission=nil)
          @PGroupId = pgroupid
          @AuthClientIp = authclientip
          @Priority = priority
          @RWPermission = rwpermission
          @UserPermission = userpermission
        end

        def deserialize(params)
          @PGroupId = params['PGroupId']
          @AuthClientIp = params['AuthClientIp']
          @Priority = params['Priority']
          @RWPermission = params['RWPermission']
          @UserPermission = params['UserPermission']
        end
      end

      # CreateCfsRule返回参数结构体
      class CreateCfsRuleResponse < TencentCloud::Common::AbstractModel
        # @param RuleId: 规则 ID
        # @type RuleId: String
        # @param PGroupId: 权限组 ID
        # @type PGroupId: String
        # @param AuthClientIp: 客户端 IP
        # @type AuthClientIp: String
        # @param RWPermission: 读写权限
        # @type RWPermission: String
        # @param UserPermission: 用户权限
        # @type UserPermission: String
        # @param Priority: 优先级
        # @type Priority: Integer
        # @param RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        # @type RequestId: String

        attr_accessor :RuleId, :PGroupId, :AuthClientIp, :RWPermission, :UserPermission, :Priority, :RequestId
        
        def initialize(ruleid=nil, pgroupid=nil, authclientip=nil, rwpermission=nil, userpermission=nil, priority=nil, requestid=nil)
          @RuleId = ruleid
          @PGroupId = pgroupid
          @AuthClientIp = authclientip
          @RWPermission = rwpermission
          @UserPermission = userpermission
          @Priority = priority
          @RequestId = requestid
        end

        def deserialize(params)
          @RuleId = params['RuleId']
          @PGroupId = params['PGroupId']
          @AuthClientIp = params['AuthClientIp']
          @RWPermission = params['RWPermission']
          @UserPermission = params['UserPermission']
          @Priority = params['Priority']
          @RequestId = params['RequestId']
        end
      end

      # CreateCfsSnapshot请求参数结构体
      class CreateCfsSnapshotRequest < TencentCloud::Common::AbstractModel
        # @param FileSystemId: 文件系统id
        # @type FileSystemId: String
        # @param SnapshotName: 快照名称
        # @type SnapshotName: String
        # @param ResourceTags: 快照标签
        # @type ResourceTags: Array

        attr_accessor :FileSystemId, :SnapshotName, :ResourceTags
        
        def initialize(filesystemid=nil, snapshotname=nil, resourcetags=nil)
          @FileSystemId = filesystemid
          @SnapshotName = snapshotname
          @ResourceTags = resourcetags
        end

        def deserialize(params)
          @FileSystemId = params['FileSystemId']
          @SnapshotName = params['SnapshotName']
          unless params['ResourceTags'].nil?
            @ResourceTags = []
            params['ResourceTags'].each do |i|
              taginfo_tmp = TagInfo.new
              taginfo_tmp.deserialize(i)
              @ResourceTags << taginfo_tmp
            end
          end
        end
      end

      # CreateCfsSnapshot返回参数结构体
      class CreateCfsSnapshotResponse < TencentCloud::Common::AbstractModel
        # @param SnapshotId: 文件系统快照id
        # @type SnapshotId: String
        # @param RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        # @type RequestId: String

        attr_accessor :SnapshotId, :RequestId
        
        def initialize(snapshotid=nil, requestid=nil)
          @SnapshotId = snapshotid
          @RequestId = requestid
        end

        def deserialize(params)
          @SnapshotId = params['SnapshotId']
          @RequestId = params['RequestId']
        end
      end

      # DeleteAutoSnapshotPolicy请求参数结构体
      class DeleteAutoSnapshotPolicyRequest < TencentCloud::Common::AbstractModel
        # @param AutoSnapshotPolicyId: 快照策略ID
        # @type AutoSnapshotPolicyId: String

        attr_accessor :AutoSnapshotPolicyId
        
        def initialize(autosnapshotpolicyid=nil)
          @AutoSnapshotPolicyId = autosnapshotpolicyid
        end

        def deserialize(params)
          @AutoSnapshotPolicyId = params['AutoSnapshotPolicyId']
        end
      end

      # DeleteAutoSnapshotPolicy返回参数结构体
      class DeleteAutoSnapshotPolicyResponse < TencentCloud::Common::AbstractModel
        # @param AutoSnapshotPolicyId: 快照策略ID
        # @type AutoSnapshotPolicyId: String
        # @param RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        # @type RequestId: String

        attr_accessor :AutoSnapshotPolicyId, :RequestId
        
        def initialize(autosnapshotpolicyid=nil, requestid=nil)
          @AutoSnapshotPolicyId = autosnapshotpolicyid
          @RequestId = requestid
        end

        def deserialize(params)
          @AutoSnapshotPolicyId = params['AutoSnapshotPolicyId']
          @RequestId = params['RequestId']
        end
      end

      # DeleteCfsFileSystem请求参数结构体
      class DeleteCfsFileSystemRequest < TencentCloud::Common::AbstractModel
        # @param FileSystemId: 文件系统 ID。说明,进行删除文件系统操作前需要先调用 DeleteMountTarget 接口删除该文件系统的挂载点,否则会删除失败。
        # @type FileSystemId: String

        attr_accessor :FileSystemId
        
        def initialize(filesystemid=nil)
          @FileSystemId = filesystemid
        end

        def deserialize(params)
          @FileSystemId = params['FileSystemId']
        end
      end

      # DeleteCfsFileSystem返回参数结构体
      class DeleteCfsFileSystemResponse < TencentCloud::Common::AbstractModel
        # @param RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        # @type RequestId: String

        attr_accessor :RequestId
        
        def initialize(requestid=nil)
          @RequestId = requestid
        end

        def deserialize(params)
          @RequestId = params['RequestId']
        end
      end

      # DeleteCfsPGroup请求参数结构体
      class DeleteCfsPGroupRequest < TencentCloud::Common::AbstractModel
        # @param PGroupId: 权限组 ID
        # @type PGroupId: String

        attr_accessor :PGroupId
        
        def initialize(pgroupid=nil)
          @PGroupId = pgroupid
        end

        def deserialize(params)
          @PGroupId = params['PGroupId']
        end
      end

      # DeleteCfsPGroup返回参数结构体
      class DeleteCfsPGroupResponse < TencentCloud::Common::AbstractModel
        # @param PGroupId: 权限组 ID
        # @type PGroupId: String
        # @param AppId: 用户 ID
        # @type AppId: Integer
        # @param RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        # @type RequestId: String

        attr_accessor :PGroupId, :AppId, :RequestId
        
        def initialize(pgroupid=nil, appid=nil, requestid=nil)
          @PGroupId = pgroupid
          @AppId = appid
          @RequestId = requestid
        end

        def deserialize(params)
          @PGroupId = params['PGroupId']
          @AppId = params['AppId']
          @RequestId = params['RequestId']
        end
      end

      # DeleteCfsRule请求参数结构体
      class DeleteCfsRuleRequest < TencentCloud::Common::AbstractModel
        # @param PGroupId: 权限组 ID
        # @type PGroupId: String
        # @param RuleId: 规则 ID
        # @type RuleId: String

        attr_accessor :PGroupId, :RuleId
        
        def initialize(pgroupid=nil, ruleid=nil)
          @PGroupId = pgroupid
          @RuleId = ruleid
        end

        def deserialize(params)
          @PGroupId = params['PGroupId']
          @RuleId = params['RuleId']
        end
      end

      # DeleteCfsRule返回参数结构体
      class DeleteCfsRuleResponse < TencentCloud::Common::AbstractModel
        # @param RuleId: 规则 ID
        # @type RuleId: String
        # @param PGroupId: 权限组 ID
        # @type PGroupId: String
        # @param RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        # @type RequestId: String

        attr_accessor :RuleId, :PGroupId, :RequestId
        
        def initialize(ruleid=nil, pgroupid=nil, requestid=nil)
          @RuleId = ruleid
          @PGroupId = pgroupid
          @RequestId = requestid
        end

        def deserialize(params)
          @RuleId = params['RuleId']
          @PGroupId = params['PGroupId']
          @RequestId = params['RequestId']
        end
      end

      # DeleteCfsSnapshot请求参数结构体
      class DeleteCfsSnapshotRequest < TencentCloud::Common::AbstractModel
        # @param SnapshotId: 文件系统快照id
        # @type SnapshotId: String
        # @param SnapshotIds: 需要删除的文件文件系统快照ID 列表,快照ID,跟ID列表至少填一项
        # @type SnapshotIds: Array

        attr_accessor :SnapshotId, :SnapshotIds
        
        def initialize(snapshotid=nil, snapshotids=nil)
          @SnapshotId = snapshotid
          @SnapshotIds = snapshotids
        end

        def deserialize(params)
          @SnapshotId = params['SnapshotId']
          @SnapshotIds = params['SnapshotIds']
        end
      end

      # DeleteCfsSnapshot返回参数结构体
      class DeleteCfsSnapshotResponse < TencentCloud::Common::AbstractModel
        # @param SnapshotId: 文件系统ID
        # @type SnapshotId: String
        # @param RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        # @type RequestId: String

        attr_accessor :SnapshotId, :RequestId
        
        def initialize(snapshotid=nil, requestid=nil)
          @SnapshotId = snapshotid
          @RequestId = requestid
        end

        def deserialize(params)
          @SnapshotId = params['SnapshotId']
          @RequestId = params['RequestId']
        end
      end

      # DeleteMountTarget请求参数结构体
      class DeleteMountTargetRequest < TencentCloud::Common::AbstractModel
        # @param FileSystemId: 文件系统 ID
        # @type FileSystemId: String
        # @param MountTargetId: 挂载点 ID
        # @type MountTargetId: String

        attr_accessor :FileSystemId, :MountTargetId
        
        def initialize(filesystemid=nil, mounttargetid=nil)
          @FileSystemId = filesystemid
          @MountTargetId = mounttargetid
        end

        def deserialize(params)
          @FileSystemId = params['FileSystemId']
          @MountTargetId = params['MountTargetId']
        end
      end

      # DeleteMountTarget返回参数结构体
      class DeleteMountTargetResponse < TencentCloud::Common::AbstractModel
        # @param RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        # @type RequestId: String

        attr_accessor :RequestId
        
        def initialize(requestid=nil)
          @RequestId = requestid
        end

        def deserialize(params)
          @RequestId = params['RequestId']
        end
      end

      # DeleteUserQuota请求参数结构体
      class DeleteUserQuotaRequest < TencentCloud::Common::AbstractModel
        # @param FileSystemId: 文件系统 ID
        # @type FileSystemId: String
        # @param UserType: 指定配额类型,包括Uid、Gid
        # @type UserType: String
        # @param UserId: UID/GID信息
        # @type UserId: String

        attr_accessor :FileSystemId, :UserType, :UserId
        
        def initialize(filesystemid=nil, usertype=nil, userid=nil)
          @FileSystemId = filesystemid
          @UserType = usertype
          @UserId = userid
        end

        def deserialize(params)
          @FileSystemId = params['FileSystemId']
          @UserType = params['UserType']
          @UserId = params['UserId']
        end
      end

      # DeleteUserQuota返回参数结构体
      class DeleteUserQuotaResponse < TencentCloud::Common::AbstractModel
        # @param RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        # @type RequestId: String

        attr_accessor :RequestId
        
        def initialize(requestid=nil)
          @RequestId = requestid
        end

        def deserialize(params)
          @RequestId = params['RequestId']
        end
      end

      # DescribeAutoSnapshotPolicies请求参数结构体
      class DescribeAutoSnapshotPoliciesRequest < TencentCloud::Common::AbstractModel
        # @param AutoSnapshotPolicyId: 快照策略ID
        # @type AutoSnapshotPolicyId: String
        # @param Offset: 分页码
        # @type Offset: Integer
        # @param Limit: 页面长
        # @type Limit: Integer
        # @param Filters: 过滤条件
        # @type Filters: Array
        # @param Order: 升序,降序
        # @type Order: String
        # @param OrderField: 排序字段
        # @type OrderField: String

        attr_accessor :AutoSnapshotPolicyId, :Offset, :Limit, :Filters, :Order, :OrderField
        
        def initialize(autosnapshotpolicyid=nil, offset=nil, limit=nil, filters=nil, order=nil, orderfield=nil)
          @AutoSnapshotPolicyId = autosnapshotpolicyid
          @Offset = offset
          @Limit = limit
          @Filters = filters
          @Order = order
          @OrderField = orderfield
        end

        def deserialize(params)
          @AutoSnapshotPolicyId = params['AutoSnapshotPolicyId']
          @Offset = params['Offset']
          @Limit = params['Limit']
          unless params['Filters'].nil?
            @Filters = []
            params['Filters'].each do |i|
              filter_tmp = Filter.new
              filter_tmp.deserialize(i)
              @Filters << filter_tmp
            end
          end
          @Order = params['Order']
          @OrderField = params['OrderField']
        end
      end

      # DescribeAutoSnapshotPolicies返回参数结构体
      class DescribeAutoSnapshotPoliciesResponse < TencentCloud::Common::AbstractModel
        # @param TotalCount: 快照策略总个数
        # @type TotalCount: Integer
        # @param AutoSnapshotPolicies: 快照策略信息
        # @type AutoSnapshotPolicies: Array
        # @param RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        # @type RequestId: String

        attr_accessor :TotalCount, :AutoSnapshotPolicies, :RequestId
        
        def initialize(totalcount=nil, autosnapshotpolicies=nil, requestid=nil)
          @TotalCount = totalcount
          @AutoSnapshotPolicies = autosnapshotpolicies
          @RequestId = requestid
        end

        def deserialize(params)
          @TotalCount = params['TotalCount']
          unless params['AutoSnapshotPolicies'].nil?
            @AutoSnapshotPolicies = []
            params['AutoSnapshotPolicies'].each do |i|
              autosnapshotpolicyinfo_tmp = AutoSnapshotPolicyInfo.new
              autosnapshotpolicyinfo_tmp.deserialize(i)
              @AutoSnapshotPolicies << autosnapshotpolicyinfo_tmp
            end
          end
          @RequestId = params['RequestId']
        end
      end

      # DescribeAvailableZoneInfo请求参数结构体
      class DescribeAvailableZoneInfoRequest < TencentCloud::Common::AbstractModel

        
        def initialize()
        end

        def deserialize(params)
        end
      end

      # DescribeAvailableZoneInfo返回参数结构体
      class DescribeAvailableZoneInfoResponse < TencentCloud::Common::AbstractModel
        # @param RegionZones: 各可用区的资源售卖情况以及支持的存储类型、存储协议等信息
        # @type RegionZones: Array
        # @param RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        # @type RequestId: String

        attr_accessor :RegionZones, :RequestId
        
        def initialize(regionzones=nil, requestid=nil)
          @RegionZones = regionzones
          @RequestId = requestid
        end

        def deserialize(params)
          unless params['RegionZones'].nil?
            @RegionZones = []
            params['RegionZones'].each do |i|
              availableregion_tmp = AvailableRegion.new
              availableregion_tmp.deserialize(i)
              @RegionZones << availableregion_tmp
            end
          end
          @RequestId = params['RequestId']
        end
      end

      # DescribeCfsFileSystemClients请求参数结构体
      class DescribeCfsFileSystemClientsRequest < TencentCloud::Common::AbstractModel
        # @param FileSystemId: 文件系统 ID。
        # @type FileSystemId: String

        attr_accessor :FileSystemId
        
        def initialize(filesystemid=nil)
          @FileSystemId = filesystemid
        end

        def deserialize(params)
          @FileSystemId = params['FileSystemId']
        end
      end

      # DescribeCfsFileSystemClients返回参数结构体
      class DescribeCfsFileSystemClientsResponse < TencentCloud::Common::AbstractModel
        # @param ClientList: 客户端列表
        # @type ClientList: Array
        # @param RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        # @type RequestId: String

        attr_accessor :ClientList, :RequestId
        
        def initialize(clientlist=nil, requestid=nil)
          @ClientList = clientlist
          @RequestId = requestid
        end

        def deserialize(params)
          unless params['ClientList'].nil?
            @ClientList = []
            params['ClientList'].each do |i|
              filesystemclient_tmp = FileSystemClient.new
              filesystemclient_tmp.deserialize(i)
              @ClientList << filesystemclient_tmp
            end
          end
          @RequestId = params['RequestId']
        end
      end

      # DescribeCfsFileSystems请求参数结构体
      class DescribeCfsFileSystemsRequest < TencentCloud::Common::AbstractModel
        # @param FileSystemId: 文件系统 ID
        # @type FileSystemId: String
        # @param VpcId: 私有网络(VPC) ID
        # @type VpcId: String
        # @param SubnetId: 子网 ID
        # @type SubnetId: String

        attr_accessor :FileSystemId, :VpcId, :SubnetId
        
        def initialize(filesystemid=nil, vpcid=nil, subnetid=nil)
          @FileSystemId = filesystemid
          @VpcId = vpcid
          @SubnetId = subnetid
        end

        def deserialize(params)
          @FileSystemId = params['FileSystemId']
          @VpcId = params['VpcId']
          @SubnetId = params['SubnetId']
        end
      end

      # DescribeCfsFileSystems返回参数结构体
      class DescribeCfsFileSystemsResponse < TencentCloud::Common::AbstractModel
        # @param FileSystems: 文件系统信息
        # @type FileSystems: Array
        # @param TotalCount: 文件系统总数
        # @type TotalCount: Integer
        # @param RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        # @type RequestId: String

        attr_accessor :FileSystems, :TotalCount, :RequestId
        
        def initialize(filesystems=nil, totalcount=nil, requestid=nil)
          @FileSystems = filesystems
          @TotalCount = totalcount
          @RequestId = requestid
        end

        def deserialize(params)
          unless params['FileSystems'].nil?
            @FileSystems = []
            params['FileSystems'].each do |i|
              filesysteminfo_tmp = FileSystemInfo.new
              filesysteminfo_tmp.deserialize(i)
              @FileSystems << filesysteminfo_tmp
            end
          end
          @TotalCount = params['TotalCount']
          @RequestId = params['RequestId']
        end
      end

      # DescribeCfsPGroups请求参数结构体
      class DescribeCfsPGroupsRequest < TencentCloud::Common::AbstractModel

        
        def initialize()
        end

        def deserialize(params)
        end
      end

      # DescribeCfsPGroups返回参数结构体
      class DescribeCfsPGroupsResponse < TencentCloud::Common::AbstractModel
        # @param PGroupList: 权限组信息列表
        # @type PGroupList: Array
        # @param RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        # @type RequestId: String

        attr_accessor :PGroupList, :RequestId
        
        def initialize(pgrouplist=nil, requestid=nil)
          @PGroupList = pgrouplist
          @RequestId = requestid
        end

        def deserialize(params)
          unless params['PGroupList'].nil?
            @PGroupList = []
            params['PGroupList'].each do |i|
              pgroupinfo_tmp = PGroupInfo.new
              pgroupinfo_tmp.deserialize(i)
              @PGroupList << pgroupinfo_tmp
            end
          end
          @RequestId = params['RequestId']
        end
      end

      # DescribeCfsRules请求参数结构体
      class DescribeCfsRulesRequest < TencentCloud::Common::AbstractModel
        # @param PGroupId: 权限组 ID
        # @type PGroupId: String

        attr_accessor :PGroupId
        
        def initialize(pgroupid=nil)
          @PGroupId = pgroupid
        end

        def deserialize(params)
          @PGroupId = params['PGroupId']
        end
      end

      # DescribeCfsRules返回参数结构体
      class DescribeCfsRulesResponse < TencentCloud::Common::AbstractModel
        # @param RuleList: 权限组规则列表
        # @type RuleList: Array
        # @param RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        # @type RequestId: String

        attr_accessor :RuleList, :RequestId
        
        def initialize(rulelist=nil, requestid=nil)
          @RuleList = rulelist
          @RequestId = requestid
        end

        def deserialize(params)
          unless params['RuleList'].nil?
            @RuleList = []
            params['RuleList'].each do |i|
              pgroupruleinfo_tmp = PGroupRuleInfo.new
              pgroupruleinfo_tmp.deserialize(i)
              @RuleList << pgroupruleinfo_tmp
            end
          end
          @RequestId = params['RequestId']
        end
      end

      # DescribeCfsServiceStatus请求参数结构体
      class DescribeCfsServiceStatusRequest < TencentCloud::Common::AbstractModel

        
        def initialize()
        end

        def deserialize(params)
        end
      end

      # DescribeCfsServiceStatus返回参数结构体
      class DescribeCfsServiceStatusResponse < TencentCloud::Common::AbstractModel
        # @param CfsServiceStatus: 该用户当前 CFS 服务的状态,none 为未开通,creating 为开通中,created 为已开通
        # @type CfsServiceStatus: String
        # @param RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        # @type RequestId: String

        attr_accessor :CfsServiceStatus, :RequestId
        
        def initialize(cfsservicestatus=nil, requestid=nil)
          @CfsServiceStatus = cfsservicestatus
          @RequestId = requestid
        end

        def deserialize(params)
          @CfsServiceStatus = params['CfsServiceStatus']
          @RequestId = params['RequestId']
        end
      end

      # DescribeCfsSnapshotOverview请求参数结构体
      class DescribeCfsSnapshotOverviewRequest < TencentCloud::Common::AbstractModel

        
        def initialize()
        end

        def deserialize(params)
        end
      end

      # DescribeCfsSnapshotOverview返回参数结构体
      class DescribeCfsSnapshotOverviewResponse < TencentCloud::Common::AbstractModel
        # @param StatisticsList: 统计信息
        # @type StatisticsList: Array
        # @param RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        # @type RequestId: String

        attr_accessor :StatisticsList, :RequestId
        
        def initialize(statisticslist=nil, requestid=nil)
          @StatisticsList = statisticslist
          @RequestId = requestid
        end

        def deserialize(params)
          unless params['StatisticsList'].nil?
            @StatisticsList = []
            params['StatisticsList'].each do |i|
              snapshotstatistics_tmp = SnapshotStatistics.new
              snapshotstatistics_tmp.deserialize(i)
              @StatisticsList << snapshotstatistics_tmp
            end
          end
          @RequestId = params['RequestId']
        end
      end

      # DescribeCfsSnapshots请求参数结构体
      class DescribeCfsSnapshotsRequest < TencentCloud::Common::AbstractModel
        # @param FileSystemId: 文件系统ID
        # @type FileSystemId: String
        # @param SnapshotId: 快照ID
        # @type SnapshotId: String
        # @param Offset: 分页起始位置
        # @type Offset: Integer
        # @param Limit: 页面长度
        # @type Limit: Integer
        # @param Filters: 过滤条件
        # @type Filters: Array
        # @param OrderField: 排序取值
        # @type OrderField: String
        # @param Order: 排序 升序或者降序
        # @type Order: String

        attr_accessor :FileSystemId, :SnapshotId, :Offset, :Limit, :Filters, :OrderField, :Order
        
        def initialize(filesystemid=nil, snapshotid=nil, offset=nil, limit=nil, filters=nil, orderfield=nil, order=nil)
          @FileSystemId = filesystemid
          @SnapshotId = snapshotid
          @Offset = offset
          @Limit = limit
          @Filters = filters
          @OrderField = orderfield
          @Order = order
        end

        def deserialize(params)
          @FileSystemId = params['FileSystemId']
          @SnapshotId = params['SnapshotId']
          @Offset = params['Offset']
          @Limit = params['Limit']
          unless params['Filters'].nil?
            @Filters = []
            params['Filters'].each do |i|
              filter_tmp = Filter.new
              filter_tmp.deserialize(i)
              @Filters << filter_tmp
            end
          end
          @OrderField = params['OrderField']
          @Order = params['Order']
        end
      end

      # DescribeCfsSnapshots返回参数结构体
      class DescribeCfsSnapshotsResponse < TencentCloud::Common::AbstractModel
        # @param TotalCount: 总个数
        # @type TotalCount: Integer
        # @param Snapshots: 快照信息描述
        # @type Snapshots: Array
        # @param TotalSize: 快照列表快照汇总
        # @type TotalSize: Integer
        # @param RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        # @type RequestId: String

        attr_accessor :TotalCount, :Snapshots, :TotalSize, :RequestId
        
        def initialize(totalcount=nil, snapshots=nil, totalsize=nil, requestid=nil)
          @TotalCount = totalcount
          @Snapshots = snapshots
          @TotalSize = totalsize
          @RequestId = requestid
        end

        def deserialize(params)
          @TotalCount = params['TotalCount']
          unless params['Snapshots'].nil?
            @Snapshots = []
            params['Snapshots'].each do |i|
              snapshotinfo_tmp = SnapshotInfo.new
              snapshotinfo_tmp.deserialize(i)
              @Snapshots << snapshotinfo_tmp
            end
          end
          @TotalSize = params['TotalSize']
          @RequestId = params['RequestId']
        end
      end

      # DescribeMountTargets请求参数结构体
      class DescribeMountTargetsRequest < TencentCloud::Common::AbstractModel
        # @param FileSystemId: 文件系统 ID
        # @type FileSystemId: String

        attr_accessor :FileSystemId
        
        def initialize(filesystemid=nil)
          @FileSystemId = filesystemid
        end

        def deserialize(params)
          @FileSystemId = params['FileSystemId']
        end
      end

      # DescribeMountTargets返回参数结构体
      class DescribeMountTargetsResponse < TencentCloud::Common::AbstractModel
        # @param MountTargets: 挂载点详情
        # @type MountTargets: Array
        # @param NumberOfMountTargets: 挂载点数量
        # @type NumberOfMountTargets: Integer
        # @param RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        # @type RequestId: String

        attr_accessor :MountTargets, :NumberOfMountTargets, :RequestId
        
        def initialize(mounttargets=nil, numberofmounttargets=nil, requestid=nil)
          @MountTargets = mounttargets
          @NumberOfMountTargets = numberofmounttargets
          @RequestId = requestid
        end

        def deserialize(params)
          unless params['MountTargets'].nil?
            @MountTargets = []
            params['MountTargets'].each do |i|
              mountinfo_tmp = MountInfo.new
              mountinfo_tmp.deserialize(i)
              @MountTargets << mountinfo_tmp
            end
          end
          @NumberOfMountTargets = params['NumberOfMountTargets']
          @RequestId = params['RequestId']
        end
      end

      # DescribeSnapshotOperationLogs请求参数结构体
      class DescribeSnapshotOperationLogsRequest < TencentCloud::Common::AbstractModel
        # @param SnapshotId: 文件系统快照ID
        # @type SnapshotId: String
        # @param StartTime: 起始时间
        # @type StartTime: String
        # @param EndTime: 结束时间
        # @type EndTime: String

        attr_accessor :SnapshotId, :StartTime, :EndTime
        
        def initialize(snapshotid=nil, starttime=nil, endtime=nil)
          @SnapshotId = snapshotid
          @StartTime = starttime
          @EndTime = endtime
        end

        def deserialize(params)
          @SnapshotId = params['SnapshotId']
          @StartTime = params['StartTime']
          @EndTime = params['EndTime']
        end
      end

      # DescribeSnapshotOperationLogs返回参数结构体
      class DescribeSnapshotOperationLogsResponse < TencentCloud::Common::AbstractModel
        # @param SnapshotId: 快照ID
        # @type SnapshotId: String
        # @param SnapshotOperates: 操作日志
        # @type SnapshotOperates: Array
        # @param RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        # @type RequestId: String

        attr_accessor :SnapshotId, :SnapshotOperates, :RequestId
        
        def initialize(snapshotid=nil, snapshotoperates=nil, requestid=nil)
          @SnapshotId = snapshotid
          @SnapshotOperates = snapshotoperates
          @RequestId = requestid
        end

        def deserialize(params)
          @SnapshotId = params['SnapshotId']
          unless params['SnapshotOperates'].nil?
            @SnapshotOperates = []
            params['SnapshotOperates'].each do |i|
              snapshotoperatelog_tmp = SnapshotOperateLog.new
              snapshotoperatelog_tmp.deserialize(i)
              @SnapshotOperates << snapshotoperatelog_tmp
            end
          end
          @RequestId = params['RequestId']
        end
      end

      # DescribeUserQuota请求参数结构体
      class DescribeUserQuotaRequest < TencentCloud::Common::AbstractModel
        # @param FileSystemId: 文件系统 ID
        # @type FileSystemId: String
        # @param Filters: 过滤条件。
        # <br><li>UserType - Array of String - 是否必填:否 -(过滤条件)按配额类型过滤。(Uid| Gid )
        # <br><li>UserId - Array of String - 是否必填:否 -(过滤条件)按UID/GID过滤。
        # @type Filters: Array
        # @param Offset: Offset 分页码
        # @type Offset: Integer
        # @param Limit: Limit 页面大小
        # @type Limit: Integer

        attr_accessor :FileSystemId, :Filters, :Offset, :Limit
        
        def initialize(filesystemid=nil, filters=nil, offset=nil, limit=nil)
          @FileSystemId = filesystemid
          @Filters = filters
          @Offset = offset
          @Limit = limit
        end

        def deserialize(params)
          @FileSystemId = params['FileSystemId']
          unless params['Filters'].nil?
            @Filters = []
            params['Filters'].each do |i|
              filter_tmp = Filter.new
              filter_tmp.deserialize(i)
              @Filters << filter_tmp
            end
          end
          @Offset = params['Offset']
          @Limit = params['Limit']
        end
      end

      # DescribeUserQuota返回参数结构体
      class DescribeUserQuotaResponse < TencentCloud::Common::AbstractModel
        # @param TotalCount: UserQuota条目总数
        # @type TotalCount: Integer
        # @param UserQuotaInfo: UserQuota条目
        # @type UserQuotaInfo: Array
        # @param RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        # @type RequestId: String

        attr_accessor :TotalCount, :UserQuotaInfo, :RequestId
        
        def initialize(totalcount=nil, userquotainfo=nil, requestid=nil)
          @TotalCount = totalcount
          @UserQuotaInfo = userquotainfo
          @RequestId = requestid
        end

        def deserialize(params)
          @TotalCount = params['TotalCount']
          unless params['UserQuotaInfo'].nil?
            @UserQuotaInfo = []
            params['UserQuotaInfo'].each do |i|
              userquota_tmp = UserQuota.new
              userquota_tmp.deserialize(i)
              @UserQuotaInfo << userquota_tmp
            end
          end
          @RequestId = params['RequestId']
        end
      end

      # 绑定快照策略的文件系统信息
      class FileSystemByPolicy < TencentCloud::Common::AbstractModel
        # @param CreationToken: 文件系统名称
        # @type CreationToken: String
        # @param FileSystemId: 文件系统ID
        # @type FileSystemId: String
        # @param SizeByte: 文件系统大小
        # @type SizeByte: Integer
        # @param StorageType: 存储类型
        # @type StorageType: String
        # @param TotalSnapshotSize: 快照总大小
        # @type TotalSnapshotSize: Integer
        # @param CreationTime: 文件系统创建时间
        # @type CreationTime: String
        # @param ZoneId: 文件系统所在区ID
        # @type ZoneId: Integer

        attr_accessor :CreationToken, :FileSystemId, :SizeByte, :StorageType, :TotalSnapshotSize, :CreationTime, :ZoneId
        
        def initialize(creationtoken=nil, filesystemid=nil, sizebyte=nil, storagetype=nil, totalsnapshotsize=nil, creationtime=nil, zoneid=nil)
          @CreationToken = creationtoken
          @FileSystemId = filesystemid
          @SizeByte = sizebyte
          @StorageType = storagetype
          @TotalSnapshotSize = totalsnapshotsize
          @CreationTime = creationtime
          @ZoneId = zoneid
        end

        def deserialize(params)
          @CreationToken = params['CreationToken']
          @FileSystemId = params['FileSystemId']
          @SizeByte = params['SizeByte']
          @StorageType = params['StorageType']
          @TotalSnapshotSize = params['TotalSnapshotSize']
          @CreationTime = params['CreationTime']
          @ZoneId = params['ZoneId']
        end
      end

      # 文件系统客户端信息
      class FileSystemClient < TencentCloud::Common::AbstractModel
        # @param CfsVip: 文件系统IP地址
        # @type CfsVip: String
        # @param ClientIp: 客户端IP地址
        # @type ClientIp: String
        # @param VpcId: 文件系统所属VPCID
        # @type VpcId: String
        # @param Zone: 可用区名称,例如ap-beijing-1,请参考 概览文档中的地域与可用区列表
        # @type Zone: String
        # @param ZoneName: 可用区中文名称
        # @type ZoneName: String
        # @param MountDirectory: 该文件系统被挂载到客户端上的路径信息
        # @type MountDirectory: String

        attr_accessor :CfsVip, :ClientIp, :VpcId, :Zone, :ZoneName, :MountDirectory
        
        def initialize(cfsvip=nil, clientip=nil, vpcid=nil, zone=nil, zonename=nil, mountdirectory=nil)
          @CfsVip = cfsvip
          @ClientIp = clientip
          @VpcId = vpcid
          @Zone = zone
          @ZoneName = zonename
          @MountDirectory = mountdirectory
        end

        def deserialize(params)
          @CfsVip = params['CfsVip']
          @ClientIp = params['ClientIp']
          @VpcId = params['VpcId']
          @Zone = params['Zone']
          @ZoneName = params['ZoneName']
          @MountDirectory = params['MountDirectory']
        end
      end

      # 文件系统基本信息
      class FileSystemInfo < TencentCloud::Common::AbstractModel
        # @param CreationTime: 创建时间
        # @type CreationTime: String
        # @param CreationToken: 用户自定义名称
        # @type CreationToken: String
        # @param FileSystemId: 文件系统 ID
        # @type FileSystemId: String
        # @param LifeCycleState: 文件系统状态
        # @type LifeCycleState: String
        # @param SizeByte: 文件系统已使用容量
        # @type SizeByte: Integer
        # @param SizeLimit: 文件系统最大空间限制
        # @type SizeLimit: Integer
        # @param ZoneId: 区域 ID
        # @type ZoneId: Integer
        # @param Zone: 区域名称
        # @type Zone: String
        # @param Protocol: 文件系统协议类型
        # @type Protocol: String
        # @param StorageType: 文件系统存储类型
        # @type StorageType: String
        # @param StorageResourcePkg: 文件系统绑定的预付费存储包
        # @type StorageResourcePkg: String
        # @param BandwidthResourcePkg: 文件系统绑定的预付费带宽包(暂未支持)
        # @type BandwidthResourcePkg: String
        # @param PGroup: 文件系统绑定权限组信息
        # @type PGroup: :class:`Tencentcloud::Cfs.v20190719.models.PGroup`
        # @param FsName: 用户自定义名称
        # @type FsName: String
        # @param Encrypted: 文件系统是否加密
        # @type Encrypted: Boolean
        # @param KmsKeyId: 加密所使用的密钥,可以为密钥的 ID 或者 ARN
        # @type KmsKeyId: String
        # @param AppId: 应用ID
        # @type AppId: Integer
        # @param BandwidthLimit: 文件系统吞吐上限,吞吐上限是根据文件系统当前已使用存储量、绑定的存储资源包以及吞吐资源包一同确定
        # @type BandwidthLimit: Float
        # @param Capacity: 文件系统总容量
        # @type Capacity: Integer
        # @param Tags: 文件系统标签列表
        # @type Tags: Array

        attr_accessor :CreationTime, :CreationToken, :FileSystemId, :LifeCycleState, :SizeByte, :SizeLimit, :ZoneId, :Zone, :Protocol, :StorageType, :StorageResourcePkg, :BandwidthResourcePkg, :PGroup, :FsName, :Encrypted, :KmsKeyId, :AppId, :BandwidthLimit, :Capacity, :Tags
        
        def initialize(creationtime=nil, creationtoken=nil, filesystemid=nil, lifecyclestate=nil, sizebyte=nil, sizelimit=nil, zoneid=nil, zone=nil, protocol=nil, storagetype=nil, storageresourcepkg=nil, bandwidthresourcepkg=nil, pgroup=nil, fsname=nil, encrypted=nil, kmskeyid=nil, appid=nil, bandwidthlimit=nil, capacity=nil, tags=nil)
          @CreationTime = creationtime
          @CreationToken = creationtoken
          @FileSystemId = filesystemid
          @LifeCycleState = lifecyclestate
          @SizeByte = sizebyte
          @SizeLimit = sizelimit
          @ZoneId = zoneid
          @Zone = zone
          @Protocol = protocol
          @StorageType = storagetype
          @StorageResourcePkg = storageresourcepkg
          @BandwidthResourcePkg = bandwidthresourcepkg
          @PGroup = pgroup
          @FsName = fsname
          @Encrypted = encrypted
          @KmsKeyId = kmskeyid
          @AppId = appid
          @BandwidthLimit = bandwidthlimit
          @Capacity = capacity
          @Tags = tags
        end

        def deserialize(params)
          @CreationTime = params['CreationTime']
          @CreationToken = params['CreationToken']
          @FileSystemId = params['FileSystemId']
          @LifeCycleState = params['LifeCycleState']
          @SizeByte = params['SizeByte']
          @SizeLimit = params['SizeLimit']
          @ZoneId = params['ZoneId']
          @Zone = params['Zone']
          @Protocol = params['Protocol']
          @StorageType = params['StorageType']
          @StorageResourcePkg = params['StorageResourcePkg']
          @BandwidthResourcePkg = params['BandwidthResourcePkg']
          unless params['PGroup'].nil?
            @PGroup = PGroup.new
            @PGroup.deserialize(params['PGroup'])
          end
          @FsName = params['FsName']
          @Encrypted = params['Encrypted']
          @KmsKeyId = params['KmsKeyId']
          @AppId = params['AppId']
          @BandwidthLimit = params['BandwidthLimit']
          @Capacity = params['Capacity']
          unless params['Tags'].nil?
            @Tags = []
            params['Tags'].each do |i|
              taginfo_tmp = TagInfo.new
              taginfo_tmp.deserialize(i)
              @Tags << taginfo_tmp
            end
          end
        end
      end

      # 条件过滤
      class Filter < TencentCloud::Common::AbstractModel
        # @param Values: 值
        # @type Values: Array
        # @param Name: 名称
        # @type Name: String

        attr_accessor :Values, :Name
        
        def initialize(values=nil, name=nil)
          @Values = values
          @Name = name
        end

        def deserialize(params)
          @Values = params['Values']
          @Name = params['Name']
        end
      end

      # 挂载点信息
      class MountInfo < TencentCloud::Common::AbstractModel
        # @param FileSystemId: 文件系统 ID
        # @type FileSystemId: String
        # @param MountTargetId: 挂载点 ID
        # @type MountTargetId: String
        # @param IpAddress: 挂载点 IP
        # @type IpAddress: String
        # @param FSID: 挂载根目录
        # @type FSID: String
        # @param LifeCycleState: 挂载点状态
        # @type LifeCycleState: String
        # @param NetworkInterface: 网络类型
        # @type NetworkInterface: String
        # @param VpcId: 私有网络 ID
        # @type VpcId: String
        # @param VpcName: 私有网络名称
        # @type VpcName: String
        # @param SubnetId: 子网 Id
        # @type SubnetId: String
        # @param SubnetName: 子网名称
        # @type SubnetName: String
        # @param CcnID: CFS Turbo使用的云联网ID
        # @type CcnID: String
        # @param CidrBlock: 云联网中CFS Turbo使用的网段
        # @type CidrBlock: String

        attr_accessor :FileSystemId, :MountTargetId, :IpAddress, :FSID, :LifeCycleState, :NetworkInterface, :VpcId, :VpcName, :SubnetId, :SubnetName, :CcnID, :CidrBlock
        
        def initialize(filesystemid=nil, mounttargetid=nil, ipaddress=nil, fsid=nil, lifecyclestate=nil, networkinterface=nil, vpcid=nil, vpcname=nil, subnetid=nil, subnetname=nil, ccnid=nil, cidrblock=nil)
          @FileSystemId = filesystemid
          @MountTargetId = mounttargetid
          @IpAddress = ipaddress
          @FSID = fsid
          @LifeCycleState = lifecyclestate
          @NetworkInterface = networkinterface
          @VpcId = vpcid
          @VpcName = vpcname
          @SubnetId = subnetid
          @SubnetName = subnetname
          @CcnID = ccnid
          @CidrBlock = cidrblock
        end

        def deserialize(params)
          @FileSystemId = params['FileSystemId']
          @MountTargetId = params['MountTargetId']
          @IpAddress = params['IpAddress']
          @FSID = params['FSID']
          @LifeCycleState = params['LifeCycleState']
          @NetworkInterface = params['NetworkInterface']
          @VpcId = params['VpcId']
          @VpcName = params['VpcName']
          @SubnetId = params['SubnetId']
          @SubnetName = params['SubnetName']
          @CcnID = params['CcnID']
          @CidrBlock = params['CidrBlock']
        end
      end

      # 文件系统绑定权限组信息
      class PGroup < TencentCloud::Common::AbstractModel
        # @param PGroupId: 权限组ID
        # @type PGroupId: String
        # @param Name: 权限组名称
        # @type Name: String

        attr_accessor :PGroupId, :Name
        
        def initialize(pgroupid=nil, name=nil)
          @PGroupId = pgroupid
          @Name = name
        end

        def deserialize(params)
          @PGroupId = params['PGroupId']
          @Name = params['Name']
        end
      end

      # 权限组数组
      class PGroupInfo < TencentCloud::Common::AbstractModel
        # @param PGroupId: 权限组ID
        # @type PGroupId: String
        # @param Name: 权限组名称
        # @type Name: String
        # @param DescInfo: 描述信息
        # @type DescInfo: String
        # @param CDate: 创建时间
        # @type CDate: String
        # @param BindCfsNum: 关联文件系统个数
        # @type BindCfsNum: Integer

        attr_accessor :PGroupId, :Name, :DescInfo, :CDate, :BindCfsNum
        
        def initialize(pgroupid=nil, name=nil, descinfo=nil, cdate=nil, bindcfsnum=nil)
          @PGroupId = pgroupid
          @Name = name
          @DescInfo = descinfo
          @CDate = cdate
          @BindCfsNum = bindcfsnum
        end

        def deserialize(params)
          @PGroupId = params['PGroupId']
          @Name = params['Name']
          @DescInfo = params['DescInfo']
          @CDate = params['CDate']
          @BindCfsNum = params['BindCfsNum']
        end
      end

      # 权限组规则列表
      class PGroupRuleInfo < TencentCloud::Common::AbstractModel
        # @param RuleId: 规则ID
        # @type RuleId: String
        # @param AuthClientIp: 允许访问的客户端IP
        # @type AuthClientIp: String
        # @param RWPermission: 读写权限, ro为只读,rw为读写
        # @type RWPermission: String
        # @param UserPermission: 用户权限。其中all_squash为所有访问用户都会被映射为匿名用户或用户组;no_all_squash为访问用户会先与本机用户匹配,匹配失败后再映射为匿名用户或用户组;root_squash为将来访的root用户映射为匿名用户或用户组;no_root_squash为来访的root用户保持root帐号权限。
        # @type UserPermission: String
        # @param Priority: 规则优先级,1-100。 其中 1 为最高,100为最低
        # @type Priority: Integer

        attr_accessor :RuleId, :AuthClientIp, :RWPermission, :UserPermission, :Priority
        
        def initialize(ruleid=nil, authclientip=nil, rwpermission=nil, userpermission=nil, priority=nil)
          @RuleId = ruleid
          @AuthClientIp = authclientip
          @RWPermission = rwpermission
          @UserPermission = userpermission
          @Priority = priority
        end

        def deserialize(params)
          @RuleId = params['RuleId']
          @AuthClientIp = params['AuthClientIp']
          @RWPermission = params['RWPermission']
          @UserPermission = params['UserPermission']
          @Priority = params['Priority']
        end
      end

      # SetUserQuota请求参数结构体
      class SetUserQuotaRequest < TencentCloud::Common::AbstractModel
        # @param FileSystemId: 文件系统 ID
        # @type FileSystemId: String
        # @param UserType: 指定配额类型,包括Uid、Gid
        # @type UserType: String
        # @param UserId: UID/GID信息
        # @type UserId: String
        # @param CapacityHardLimit: 容量硬限制,单位GiB
        # @type CapacityHardLimit: Integer
        # @param FileHardLimit: 文件硬限制,单位个
        # @type FileHardLimit: Integer

        attr_accessor :FileSystemId, :UserType, :UserId, :CapacityHardLimit, :FileHardLimit
        
        def initialize(filesystemid=nil, usertype=nil, userid=nil, capacityhardlimit=nil, filehardlimit=nil)
          @FileSystemId = filesystemid
          @UserType = usertype
          @UserId = userid
          @CapacityHardLimit = capacityhardlimit
          @FileHardLimit = filehardlimit
        end

        def deserialize(params)
          @FileSystemId = params['FileSystemId']
          @UserType = params['UserType']
          @UserId = params['UserId']
          @CapacityHardLimit = params['CapacityHardLimit']
          @FileHardLimit = params['FileHardLimit']
        end
      end

      # SetUserQuota返回参数结构体
      class SetUserQuotaResponse < TencentCloud::Common::AbstractModel
        # @param RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        # @type RequestId: String

        attr_accessor :RequestId
        
        def initialize(requestid=nil)
          @RequestId = requestid
        end

        def deserialize(params)
          @RequestId = params['RequestId']
        end
      end

      # SignUpCfsService请求参数结构体
      class SignUpCfsServiceRequest < TencentCloud::Common::AbstractModel

        
        def initialize()
        end

        def deserialize(params)
        end
      end

      # SignUpCfsService返回参数结构体
      class SignUpCfsServiceResponse < TencentCloud::Common::AbstractModel
        # @param CfsServiceStatus: 该用户当前 CFS 服务的状态,creating 是开通中,created 是已开通
        # @type CfsServiceStatus: String
        # @param RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        # @type RequestId: String

        attr_accessor :CfsServiceStatus, :RequestId
        
        def initialize(cfsservicestatus=nil, requestid=nil)
          @CfsServiceStatus = cfsservicestatus
          @RequestId = requestid
        end

        def deserialize(params)
          @CfsServiceStatus = params['CfsServiceStatus']
          @RequestId = params['RequestId']
        end
      end

      # 快照信息
      class SnapshotInfo < TencentCloud::Common::AbstractModel
        # @param CreationTime: 创建快照时间
        # @type CreationTime: String
        # @param SnapshotName: 快照名称
        # @type SnapshotName: String
        # @param SnapshotId: 快照ID
        # @type SnapshotId: String
        # @param Status: 快照状态
        # @type Status: String
        # @param RegionName: 地域名称
        # @type RegionName: String
        # @param FileSystemId: 文件系统ID
        # @type FileSystemId: String
        # @param Size: 快照大小
        # @type Size: Integer
        # @param AliveDay: 保留时长天
        # @type AliveDay: Integer
        # @param Percent: 快照进度
        # @type Percent: Integer
        # @param AppId: 帐号ID
        # @type AppId: Integer
        # @param DeleteTime: 快照删除时间
        # @type DeleteTime: String
        # @param FsName: 文件系统名称
        # @type FsName: String
        # @param Tags: 快照标签
        # @type Tags: Array

        attr_accessor :CreationTime, :SnapshotName, :SnapshotId, :Status, :RegionName, :FileSystemId, :Size, :AliveDay, :Percent, :AppId, :DeleteTime, :FsName, :Tags
        
        def initialize(creationtime=nil, snapshotname=nil, snapshotid=nil, status=nil, regionname=nil, filesystemid=nil, size=nil, aliveday=nil, percent=nil, appid=nil, deletetime=nil, fsname=nil, tags=nil)
          @CreationTime = creationtime
          @SnapshotName = snapshotname
          @SnapshotId = snapshotid
          @Status = status
          @RegionName = regionname
          @FileSystemId = filesystemid
          @Size = size
          @AliveDay = aliveday
          @Percent = percent
          @AppId = appid
          @DeleteTime = deletetime
          @FsName = fsname
          @Tags = tags
        end

        def deserialize(params)
          @CreationTime = params['CreationTime']
          @SnapshotName = params['SnapshotName']
          @SnapshotId = params['SnapshotId']
          @Status = params['Status']
          @RegionName = params['RegionName']
          @FileSystemId = params['FileSystemId']
          @Size = params['Size']
          @AliveDay = params['AliveDay']
          @Percent = params['Percent']
          @AppId = params['AppId']
          @DeleteTime = params['DeleteTime']
          @FsName = params['FsName']
          unless params['Tags'].nil?
            @Tags = []
            params['Tags'].each do |i|
              taginfo_tmp = TagInfo.new
              taginfo_tmp.deserialize(i)
              @Tags << taginfo_tmp
            end
          end
        end
      end

      # 快照操作日志
      class SnapshotOperateLog < TencentCloud::Common::AbstractModel
        # @param Action: 操作类型
        # @type Action: String
        # @param ActionTime: 操作时间
        # @type ActionTime: String
        # @param ActionName: 操作名称
        # @type ActionName: String
        # @param Operator: 操作者
        # @type Operator: String
        # @param Result: 结果
        # @type Result: Integer

        attr_accessor :Action, :ActionTime, :ActionName, :Operator, :Result
        
        def initialize(action=nil, actiontime=nil, actionname=nil, operator=nil, result=nil)
          @Action = action
          @ActionTime = actiontime
          @ActionName = actionname
          @Operator = operator
          @Result = result
        end

        def deserialize(params)
          @Action = params['Action']
          @ActionTime = params['ActionTime']
          @ActionName = params['ActionName']
          @Operator = params['Operator']
          @Result = params['Result']
        end
      end

      # 文件系统快照统计
      class SnapshotStatistics < TencentCloud::Common::AbstractModel
        # @param Region: 地域
        # @type Region: String
        # @param SnapshotNumber: 快照总个数
        # @type SnapshotNumber: Integer
        # @param SnapshotSize: 快照总容量
        # @type SnapshotSize: Integer

        attr_accessor :Region, :SnapshotNumber, :SnapshotSize
        
        def initialize(region=nil, snapshotnumber=nil, snapshotsize=nil)
          @Region = region
          @SnapshotNumber = snapshotnumber
          @SnapshotSize = snapshotsize
        end

        def deserialize(params)
          @Region = params['Region']
          @SnapshotNumber = params['SnapshotNumber']
          @SnapshotSize = params['SnapshotSize']
        end
      end

      # Tag信息单元
      class TagInfo < TencentCloud::Common::AbstractModel
        # @param TagKey: 标签键
        # @type TagKey: String
        # @param TagValue: 标签值
        # @type TagValue: String

        attr_accessor :TagKey, :TagValue
        
        def initialize(tagkey=nil, tagvalue=nil)
          @TagKey = tagkey
          @TagValue = tagvalue
        end

        def deserialize(params)
          @TagKey = params['TagKey']
          @TagValue = params['TagValue']
        end
      end

      # UnbindAutoSnapshotPolicy请求参数结构体
      class UnbindAutoSnapshotPolicyRequest < TencentCloud::Common::AbstractModel
        # @param FileSystemIds: 需要解绑的文件系统ID列表,用"," 分割
        # @type FileSystemIds: String
        # @param AutoSnapshotPolicyId: 解绑的快照ID
        # @type AutoSnapshotPolicyId: String

        attr_accessor :FileSystemIds, :AutoSnapshotPolicyId
        
        def initialize(filesystemids=nil, autosnapshotpolicyid=nil)
          @FileSystemIds = filesystemids
          @AutoSnapshotPolicyId = autosnapshotpolicyid
        end

        def deserialize(params)
          @FileSystemIds = params['FileSystemIds']
          @AutoSnapshotPolicyId = params['AutoSnapshotPolicyId']
        end
      end

      # UnbindAutoSnapshotPolicy返回参数结构体
      class UnbindAutoSnapshotPolicyResponse < TencentCloud::Common::AbstractModel
        # @param AutoSnapshotPolicyId: 快照策略ID
        # @type AutoSnapshotPolicyId: String
        # @param RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        # @type RequestId: String

        attr_accessor :AutoSnapshotPolicyId, :RequestId
        
        def initialize(autosnapshotpolicyid=nil, requestid=nil)
          @AutoSnapshotPolicyId = autosnapshotpolicyid
          @RequestId = requestid
        end

        def deserialize(params)
          @AutoSnapshotPolicyId = params['AutoSnapshotPolicyId']
          @RequestId = params['RequestId']
        end
      end

      # UpdateAutoSnapshotPolicy请求参数结构体
      class UpdateAutoSnapshotPolicyRequest < TencentCloud::Common::AbstractModel
        # @param AutoSnapshotPolicyId: 快照策略ID
        # @type AutoSnapshotPolicyId: String
        # @param PolicyName: 快照策略名称
        # @type PolicyName: String
        # @param DayOfWeek: 快照定期备份在一星期哪一天
        # @type DayOfWeek: String
        # @param Hour: 快照定期备份在一天的哪一小时
        # @type Hour: String
        # @param AliveDays: 快照保留日期
        # @type AliveDays: Integer
        # @param IsActivated: 是否激活定期快照功能
        # @type IsActivated: Integer

        attr_accessor :AutoSnapshotPolicyId, :PolicyName, :DayOfWeek, :Hour, :AliveDays, :IsActivated
        
        def initialize(autosnapshotpolicyid=nil, policyname=nil, dayofweek=nil, hour=nil, alivedays=nil, isactivated=nil)
          @AutoSnapshotPolicyId = autosnapshotpolicyid
          @PolicyName = policyname
          @DayOfWeek = dayofweek
          @Hour = hour
          @AliveDays = alivedays
          @IsActivated = isactivated
        end

        def deserialize(params)
          @AutoSnapshotPolicyId = params['AutoSnapshotPolicyId']
          @PolicyName = params['PolicyName']
          @DayOfWeek = params['DayOfWeek']
          @Hour = params['Hour']
          @AliveDays = params['AliveDays']
          @IsActivated = params['IsActivated']
        end
      end

      # UpdateAutoSnapshotPolicy返回参数结构体
      class UpdateAutoSnapshotPolicyResponse < TencentCloud::Common::AbstractModel
        # @param AutoSnapshotPolicyId: 快照策略ID
        # @type AutoSnapshotPolicyId: String
        # @param RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        # @type RequestId: String

        attr_accessor :AutoSnapshotPolicyId, :RequestId
        
        def initialize(autosnapshotpolicyid=nil, requestid=nil)
          @AutoSnapshotPolicyId = autosnapshotpolicyid
          @RequestId = requestid
        end

        def deserialize(params)
          @AutoSnapshotPolicyId = params['AutoSnapshotPolicyId']
          @RequestId = params['RequestId']
        end
      end

      # UpdateCfsFileSystemName请求参数结构体
      class UpdateCfsFileSystemNameRequest < TencentCloud::Common::AbstractModel
        # @param FileSystemId: 文件系统 ID
        # @type FileSystemId: String
        # @param FsName: 用户自定义文件系统名称
        # @type FsName: String

        attr_accessor :FileSystemId, :FsName
        
        def initialize(filesystemid=nil, fsname=nil)
          @FileSystemId = filesystemid
          @FsName = fsname
        end

        def deserialize(params)
          @FileSystemId = params['FileSystemId']
          @FsName = params['FsName']
        end
      end

      # UpdateCfsFileSystemName返回参数结构体
      class UpdateCfsFileSystemNameResponse < TencentCloud::Common::AbstractModel
        # @param CreationToken: 用户自定义文件系统名称
        # @type CreationToken: String
        # @param FileSystemId: 文件系统ID
        # @type FileSystemId: String
        # @param FsName: 用户自定义文件系统名称
        # @type FsName: String
        # @param RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        # @type RequestId: String

        attr_accessor :CreationToken, :FileSystemId, :FsName, :RequestId
        
        def initialize(creationtoken=nil, filesystemid=nil, fsname=nil, requestid=nil)
          @CreationToken = creationtoken
          @FileSystemId = filesystemid
          @FsName = fsname
          @RequestId = requestid
        end

        def deserialize(params)
          @CreationToken = params['CreationToken']
          @FileSystemId = params['FileSystemId']
          @FsName = params['FsName']
          @RequestId = params['RequestId']
        end
      end

      # UpdateCfsFileSystemPGroup请求参数结构体
      class UpdateCfsFileSystemPGroupRequest < TencentCloud::Common::AbstractModel
        # @param PGroupId: 权限组 ID
        # @type PGroupId: String
        # @param FileSystemId: 文件系统 ID
        # @type FileSystemId: String

        attr_accessor :PGroupId, :FileSystemId
        
        def initialize(pgroupid=nil, filesystemid=nil)
          @PGroupId = pgroupid
          @FileSystemId = filesystemid
        end

        def deserialize(params)
          @PGroupId = params['PGroupId']
          @FileSystemId = params['FileSystemId']
        end
      end

      # UpdateCfsFileSystemPGroup返回参数结构体
      class UpdateCfsFileSystemPGroupResponse < TencentCloud::Common::AbstractModel
        # @param PGroupId: 权限组 ID
        # @type PGroupId: String
        # @param FileSystemId: 文件系统 ID
        # @type FileSystemId: String
        # @param RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        # @type RequestId: String

        attr_accessor :PGroupId, :FileSystemId, :RequestId
        
        def initialize(pgroupid=nil, filesystemid=nil, requestid=nil)
          @PGroupId = pgroupid
          @FileSystemId = filesystemid
          @RequestId = requestid
        end

        def deserialize(params)
          @PGroupId = params['PGroupId']
          @FileSystemId = params['FileSystemId']
          @RequestId = params['RequestId']
        end
      end

      # UpdateCfsFileSystemSizeLimit请求参数结构体
      class UpdateCfsFileSystemSizeLimitRequest < TencentCloud::Common::AbstractModel
        # @param FsLimit: 文件系统容量限制大小,输入范围0-1073741824, 单位为GB;其中输入值为0时,表示不限制文件系统容量。
        # @type FsLimit: Integer
        # @param FileSystemId: 文件系统ID,目前仅支持标准型文件系统。
        # @type FileSystemId: String

        attr_accessor :FsLimit, :FileSystemId
        
        def initialize(fslimit=nil, filesystemid=nil)
          @FsLimit = fslimit
          @FileSystemId = filesystemid
        end

        def deserialize(params)
          @FsLimit = params['FsLimit']
          @FileSystemId = params['FileSystemId']
        end
      end

      # UpdateCfsFileSystemSizeLimit返回参数结构体
      class UpdateCfsFileSystemSizeLimitResponse < TencentCloud::Common::AbstractModel
        # @param RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        # @type RequestId: String

        attr_accessor :RequestId
        
        def initialize(requestid=nil)
          @RequestId = requestid
        end

        def deserialize(params)
          @RequestId = params['RequestId']
        end
      end

      # UpdateCfsPGroup请求参数结构体
      class UpdateCfsPGroupRequest < TencentCloud::Common::AbstractModel
        # @param PGroupId: 权限组 ID
        # @type PGroupId: String
        # @param Name: 权限组名称,1-64个字符且只能为中文,字母,数字,下划线或横线
        # @type Name: String
        # @param DescInfo: 权限组描述信息,1-255个字符
        # @type DescInfo: String

        attr_accessor :PGroupId, :Name, :DescInfo
        
        def initialize(pgroupid=nil, name=nil, descinfo=nil)
          @PGroupId = pgroupid
          @Name = name
          @DescInfo = descinfo
        end

        def deserialize(params)
          @PGroupId = params['PGroupId']
          @Name = params['Name']
          @DescInfo = params['DescInfo']
        end
      end

      # UpdateCfsPGroup返回参数结构体
      class UpdateCfsPGroupResponse < TencentCloud::Common::AbstractModel
        # @param PGroupId: 权限组ID
        # @type PGroupId: String
        # @param Name: 权限组名称
        # @type Name: String
        # @param DescInfo: 描述信息
        # @type DescInfo: String
        # @param RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        # @type RequestId: String

        attr_accessor :PGroupId, :Name, :DescInfo, :RequestId
        
        def initialize(pgroupid=nil, name=nil, descinfo=nil, requestid=nil)
          @PGroupId = pgroupid
          @Name = name
          @DescInfo = descinfo
          @RequestId = requestid
        end

        def deserialize(params)
          @PGroupId = params['PGroupId']
          @Name = params['Name']
          @DescInfo = params['DescInfo']
          @RequestId = params['RequestId']
        end
      end

      # UpdateCfsRule请求参数结构体
      class UpdateCfsRuleRequest < TencentCloud::Common::AbstractModel
        # @param PGroupId: 权限组 ID
        # @type PGroupId: String
        # @param RuleId: 规则 ID
        # @type RuleId: String
        # @param AuthClientIp: 可以填写单个 IP 或者单个网段,例如 10.1.10.11 或者 10.10.1.0/24。默认来访地址为*表示允许所有。同时需要注意,此处需填写 CVM 的内网 IP。
        # @type AuthClientIp: String
        # @param RWPermission: 读写权限, 值为RO、RW;其中 RO 为只读,RW 为读写,不填默认为只读
        # @type RWPermission: String
        # @param UserPermission: 用户权限,值为all_squash、no_all_squash、root_squash、no_root_squash。其中all_squash为所有访问用户都会被映射为匿名用户或用户组;no_all_squash为访问用户会先与本机用户匹配,匹配失败后再映射为匿名用户或用户组;root_squash为将来访的root用户映射为匿名用户或用户组;no_root_squash为来访的root用户保持root帐号权限。不填默认为root_squash。
        # @type UserPermission: String
        # @param Priority: 规则优先级,参数范围1-100。 其中 1 为最高,100为最低
        # @type Priority: Integer

        attr_accessor :PGroupId, :RuleId, :AuthClientIp, :RWPermission, :UserPermission, :Priority
        
        def initialize(pgroupid=nil, ruleid=nil, authclientip=nil, rwpermission=nil, userpermission=nil, priority=nil)
          @PGroupId = pgroupid
          @RuleId = ruleid
          @AuthClientIp = authclientip
          @RWPermission = rwpermission
          @UserPermission = userpermission
          @Priority = priority
        end

        def deserialize(params)
          @PGroupId = params['PGroupId']
          @RuleId = params['RuleId']
          @AuthClientIp = params['AuthClientIp']
          @RWPermission = params['RWPermission']
          @UserPermission = params['UserPermission']
          @Priority = params['Priority']
        end
      end

      # UpdateCfsRule返回参数结构体
      class UpdateCfsRuleResponse < TencentCloud::Common::AbstractModel
        # @param PGroupId: 权限组 ID
        # @type PGroupId: String
        # @param RuleId: 规则 ID
        # @type RuleId: String
        # @param AuthClientIp: 允许访问的客户端 IP 或者 IP 段
        # @type AuthClientIp: String
        # @param RWPermission: 读写权限
        # @type RWPermission: String
        # @param UserPermission: 用户权限
        # @type UserPermission: String
        # @param Priority: 优先级
        # @type Priority: Integer
        # @param RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        # @type RequestId: String

        attr_accessor :PGroupId, :RuleId, :AuthClientIp, :RWPermission, :UserPermission, :Priority, :RequestId
        
        def initialize(pgroupid=nil, ruleid=nil, authclientip=nil, rwpermission=nil, userpermission=nil, priority=nil, requestid=nil)
          @PGroupId = pgroupid
          @RuleId = ruleid
          @AuthClientIp = authclientip
          @RWPermission = rwpermission
          @UserPermission = userpermission
          @Priority = priority
          @RequestId = requestid
        end

        def deserialize(params)
          @PGroupId = params['PGroupId']
          @RuleId = params['RuleId']
          @AuthClientIp = params['AuthClientIp']
          @RWPermission = params['RWPermission']
          @UserPermission = params['UserPermission']
          @Priority = params['Priority']
          @RequestId = params['RequestId']
        end
      end

      # UpdateCfsSnapshotAttribute请求参数结构体
      class UpdateCfsSnapshotAttributeRequest < TencentCloud::Common::AbstractModel
        # @param SnapshotId: 文件系统快照ID
        # @type SnapshotId: String
        # @param SnapshotName: 文件系统快照名称
        # @type SnapshotName: String
        # @param AliveDays: 文件系统快照保留天数
        # @type AliveDays: Integer

        attr_accessor :SnapshotId, :SnapshotName, :AliveDays
        
        def initialize(snapshotid=nil, snapshotname=nil, alivedays=nil)
          @SnapshotId = snapshotid
          @SnapshotName = snapshotname
          @AliveDays = alivedays
        end

        def deserialize(params)
          @SnapshotId = params['SnapshotId']
          @SnapshotName = params['SnapshotName']
          @AliveDays = params['AliveDays']
        end
      end

      # UpdateCfsSnapshotAttribute返回参数结构体
      class UpdateCfsSnapshotAttributeResponse < TencentCloud::Common::AbstractModel
        # @param SnapshotId: 文件系统快照ID
        # @type SnapshotId: String
        # @param RequestId: 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
        # @type RequestId: String

        attr_accessor :SnapshotId, :RequestId
        
        def initialize(snapshotid=nil, requestid=nil)
          @SnapshotId = snapshotid
          @RequestId = requestid
        end

        def deserialize(params)
          @SnapshotId = params['SnapshotId']
          @RequestId = params['RequestId']
        end
      end

      # 文件系统配额信息
      class UserQuota < TencentCloud::Common::AbstractModel
        # @param UserType: 指定配额类型,包括Uid、Gid
        # @type UserType: String
        # @param UserId: UID/GID信息
        # @type UserId: String
        # @param CapacityHardLimit: 容量硬限制,单位GiB
        # @type CapacityHardLimit: Integer
        # @param FileHardLimit: 文件硬限制,单位个
        # @type FileHardLimit: Integer
        # @param FileSystemId: 文件系统ID
        # @type FileSystemId: String

        attr_accessor :UserType, :UserId, :CapacityHardLimit, :FileHardLimit, :FileSystemId
        
        def initialize(usertype=nil, userid=nil, capacityhardlimit=nil, filehardlimit=nil, filesystemid=nil)
          @UserType = usertype
          @UserId = userid
          @CapacityHardLimit = capacityhardlimit
          @FileHardLimit = filehardlimit
          @FileSystemId = filesystemid
        end

        def deserialize(params)
          @UserType = params['UserType']
          @UserId = params['UserId']
          @CapacityHardLimit = params['CapacityHardLimit']
          @FileHardLimit = params['FileHardLimit']
          @FileSystemId = params['FileSystemId']
        end
      end

    end
  end
end